Tactics Ogre: Let Us Cling Together (SNES)/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Tactics Ogre: Let Us Cling Together (SNES).

$7E0036 - Buffer for $37 (Used at $80/B23B)
$7E0037 - Clear Bit 0: Freeze Idle Animations of Figures in Battle (Used at $80/B23B)
          Bit 1 decides if the first $10 Sprites in OAM get animated

$7E0039 - Storage for Value from the Table at$7F/DC00 - Related to the move possibilities view

$7E0047 - Display Status - Menu in Battle Always On? - 00 No, 01 Yes
$7E0048 - Cursor Move Type - 00 C, 01 A, 02 B, 04 D
$7E0049 - Cursor Move Speed - 00 Slow - 01 Medium - 02 Fast

$7E0057 - IN BATTLE - Menu Sound Effects - 00 Off - 01 On /// This has another purpose in the New Game process
 
$7E005A - Something like $7E005C, see $81/8040
$7E005B - Something like $7E005D, see $81/8040
$7E005C - Obviously a $7E address - LOW BYTE
$7E005D - Obviously a $7E address - HIGH BYTE

$7E0061 - IN BATTLE - Cursor Position - NW to SE Axis - Low Byte
$7E0062 - IN BATTLE - Cursor Position - NW to SE Axis - High Byte
$7E0063 - IN BATTLE - Cursor Position - NE to SW Axis - Low Byte
$7E0064 - IN BATTLE - Cursor Position - NE to SW Axis - High Byte
$7E0065 - IN BATTLE - Cursor Height

$7E00A1 - Joypad related, see $88/8061
$7E00A2 - FLAG REGISTER
        - Bit 0 set: At $80/96BA, $1700 isn't worked off
        - Bit 1 set: At $80/96BA, $16FE isn't worked off
        - Bit 3 clear: At $80/96BA, do $16FE instead of $1700

$7E00AA - At $82/E575, this contains the base address of the Tilemap entry data (on bank $7F)
$7E00AB - At $82/E575, this contains the base address of the Tilemap entry data (on bank $7F)

$7E00C1 - Load Index for $7000C2, see $81/820A
$7E00C2,x - Storage for the values in $7E005C, see $81/820A
$7E00C3,x - Storage for the values in $7E005D, see $81/820A

$7E00D8 - Very important Data Load Index from WRAM Bank $7E - Low Byte
$7E00D9 - Very important Data Load Index from WRAM Bank $7E - High Byte

$7E00F5 - $2140 Buffer
$7E00F6 - $2141 Buffer - In Battle, writing into this plays an sound effect
$7E00F7 - $2142 Buffer
 
$7E00FA - $2143 Buffer(?)

$7E0100 - OAM Buffer 1
$7E0320 - OAM Buffer 2
$7E0540 - Flag for OAM Update
$7E0541 - Number of free Sprites in OAM at$7E0320 (or vice versa)
$7E0542 - Number of free Sprites in OAM at$7E0100 (or vice versa)
$7E0543 - Number of used Sprites in OAM at$7E0100?
$7E0544 - Number of used Sprites in OAM at$7E0320???
$7E0545 - Contains the address of the OAM Buffer - Low Byte
$7E0546 - Contains the address of the OAM Buffer - High Byte
$7E0547 - Not empty, if Joypad 1 has inputs?
$7E0548 - Not empty, if Joypad 2 has inputs?
$7E0549 - Joypad 1 Inputs - Low Byte
$7E054A - Joypad 1 Inputs - High Byte
$7E054B - Joypad 2 Inputs - Low Byte
$7E054C - Joypad 2 Inputs - High Byte
$7E054D - Joypad 1 held buttons - Low Byte
$7E054E - Joypad 1 held buttons - High Byte
$7E054F - Joypad 2 held buttons - Low Byte
$7E0550 - Joypad 2 held buttons - High Byte
$7E0551 - Last frame's Joypad 1 Inputs - Low Byte
$7E0552 - Last frame's Joypad 1 Inputs - High Byte
$7E0553 - Last frame's Joypad 2 Inputs - Low Byte
$7E0554 - Last frame's Joypad 2 Inputs - High Byte
 
$7E0559 - Delay Counter for first movement

$7E055B - Joypad related, see $88/8061

$7E0561 - Joypad Inputs - Copy - Low Byte
$7E0562 - Joypad Inputs - Copy - High Byte
$7E0563 - Last frame's Joypad Inputs - Copy - Low Byte
$7E0564 - Last frame's Joypad Inputs - Copy - High Byte
$7E0565 - Joypad held buttons - Copy - Low Byte
$7E0566 - Joypad held buttons - Copy - High Byte

These are "filtered" Joypad Inputs. Inputs that get transfered in$567/8 are actually processed, additional frames with Button Pushs because you don't do frame-perfect inputs are stuff that gets filtered out, for example.
$7E0567 - Joypad Inputs - Copy of Copy - Low Byte
$7E0568 - Joypad Inputs - Copy of Copy - High Byte
 
$7E056A - $2100 Buffer (what is to input?)
$7E056B - $2105 Buffer (what is to input?)
$7E056C - $2101 Buffer (what is to input?)
$7E056D - $2107 Buffer (what is to input?)
$7E056E - $2108 Buffer (what is to input?)
$7E056F - $2109 Buffer (what is to input?)
$7E0570 - $210A Buffer (what is to input?)
$7E0571 - $210D Buffer (what is to input?) - Low Byte
$7E0572 - $210D Buffer (what is to input?) - High Byte
$7E0573 - $210E Buffer (what is to input?) - Low Byte
$7E0574 - $210E Buffer (what is to input?) - High Byte
$7E0575 - $210F Buffer (what is to input?) - Low Byte
$7E0576 - $210F Buffer (what is to input?) - High Byte
$7E0577 - $2110 Buffer (what is to input?) - Low Byte
$7E0578 - $2110 Buffer (what is to input?) - High Byte
$7E0579 - $2111 Buffer (what is to input?) - Low Byte
$7E057A - $2111 Buffer (what is to input?) - High Byte
$7E057B - $2112 Buffer (what is to input?) - Low Byte
$7E057C - $2112 Buffer (what is to input?) - High Byte
$7E057D - $2113 Buffer (what is to input?) - Low Byte
$7E057E - $2113 Buffer (what is to input?) - High Byte
$7E057F - $2114 Buffer (what is to input?) - Low Byte
$7E0580 - $2114 Buffer (what is to input?) - High Byte
$7E0581 - $2130 Buffer (what is to input?)
 
$7E0583 - $2132 Buffer (what is to input?) --- R?
$7E0584 - $2132 Buffer (what is to input?) --- G?
$7E0585 - $2132 Buffer (what is to input?) --- B?
$7E0586 - $420C Buffer?
$7E0587 - $2100 Buffer (for next frame?/what is currently in it?)
$7E0588 - $2101 Buffer (for next frame?/what is currently in it?)
$7E0589 - $2105 Buffer (for next frame?/what is currently in it?)
$7E058A - $2106 Buffer
$7E058B - $2107 Buffer (for next frame?/what is currently in it?)
$7E058C - $2108 Buffer (for next frame?/what is currently in it?)
$7E058D - $2109 Buffer (for next frame?/what is currently in it?)
$7E058E - $210A Buffer (for next frame?/what is currently in it?)
$7E058F - $210B Buffer (both input and info?)
$7E0590 - $210C Buffer (both input and info?)
$7E0591 - $210D Buffer (for next frame?) - Low Byte
$7E0592 - $210D Buffer (for next frame?) - High Byte
$7E0593 - $210E Buffer (for next frame?) - Low Byte
$7E0594 - $210E Buffer (for next frame?) - High Byte
$7E0595 - $210F Buffer (for next frame?) - Low Byte
$7E0596 - $210F Buffer (for next frame?) - High Byte
$7E0597 - $2110 Buffer (for next frame?) - Low Byte
$7E0598 - $2110 Buffer (for next frame?) - High Byte
$7E0599 - $2111 Buffer (for next frame?) - Low Byte
$7E059A - $2111 Buffer (for next frame?) - High Byte
$7E059B - $2112 Buffer (for next frame?) - Low Byte
$7E059C - $2112 Buffer (for next frame?) - High Byte
$7E059D - $2113 Buffer (for next frame?) - Low Byte
$7E059E - $2113 Buffer (for next frame?) - High Byte
$7E059F - $2114 Buffer (for next frame?) - Low Byte
$7E05A0 - $2114 Buffer (for next frame?) - High Byte
$7E05A1 - $2123 Buffer (Window BG1/2 Mask Settings)
$7E05A2 - $2124 Buffer (Window BG3/4 Mask Settings)
$7E05A3 - $2125 Buffer (Window OBJ/MATH Mask Settings)
$7E05A4 - $212A Buffer (Window 1/2 Mask Logic for BG1-4)
$7E05A5 - $212B Buffer (Window 1/2 Mask Logic for OBJ/MATH)
$7E05A6 - $212C Buffer (both input and info?)
$7E05A7 - $212D Buffer (both input and info?)
$7E05A8 - $212E Buffer (Window Area Main Screen Disable)
$7E05A9 - $212F Buffer (Window Area Sub Screen Disable)
$7E05AA - $2130 Buffer (for next frame?)
 
$7E05AC - $2132 Buffer (for next frame?) --- R?
$7E05AD - $2132 Buffer (for next frame?) --- G?
$7E05AE - $2132 Buffer (for next frame?) --- B?
 
$7E05AF - $4200 Buffer?
$7E05B0 - $420C Buffer?
 
$7E05B9 - Frame Counter?
 
$7E05BD - If bit 6 is set, it can force a CGRAM update at$80/B3D8
 
$7E05BF - Main Jump Table Index value
$7E05C0 - Jump Table Index value, maybe highly important!
 
$7E05C2 - Screen Fade Flag Register - bit 0 set: Fade In, bit 1 set: Fade Out
 
$7E05D9 - Place where a JSL-command is built, see$80/A1DF
$7E05DA - Place where a JSL-command is built, see$80/A1DF
$7E05DB - Place where a JSL-command is built, see$80/A1DF
$7E05DC - Place where a JSL-command is built, see$80/A1DF
$7E05DD - Place where a JSL-command is built, see$80/A1DF
$7E05DE - Place where a JSL-command is built, see$80/A1DF
$7E05DF - Place where a JSL-command is built, see$80/A1DF
$7E05E0 - Place where a JSL-command is built, see$80/A1DF
$7E05E1 - Place where a JSL-command is built, see$80/A1DF
$7E05E2 - Place where a JSL-command is built, see$80/A1DF
$7E05E3 - Place where a JSL-command is built, see$80/A1DF
$7E05E4 - Place where a JSL-command is built, see$80/A1DF
$7E05E5 - Place where a JSL-command is built, see$80/A1DF
$7E05E6 - Place where a JSL-command is built, see$80/A1DF
$7E05E7 - Place where a JSL-command is built, see$80/A1DF
$7E05E8 - Place where a JSL-command is built, see$80/A1DF
$7E05E9 - Place where a JSL-command is built, see$80/A1DF
$7E05EA - Place where a JSL-command is built, see$80/A1DF
$7E05EB - Place where a JSL-command is built, see$80/A1DF
$7E05EC - Place where a JSL-command is built, see$80/A1DF
$7E05ED - Place where a JSL-command is built, see$80/A1DF
$7E05EE - $4209 Buffer (for next frame?) (V Timer Low Byte)
$7E05EF - $420A Buffer (for next frame?) (V Timer High Byte)
$7E05F0 - $4209 Buffer (V Timer Low Byte)
$7E05F1 - $420A Buffer (V Timer High Byte)
 
$7E05F6 - Stack Pointer Buffer at$82/E0F6 - Low Byte
$7E05F7 - Stack Pointer Buffer at$82/E0F7 - Low Byte
 
$7E05FB - $210D Buffer (at$80/8A0A) - Low Byte
$7E05FC - $210D Buffer (at$80/8A0A) - High Byte
$7E05FD - $210E Buffer (at$80/8A0A) - Low Byte
$7E05FE - $210E Buffer (at$80/8A0A) - High Byte
$7E05FF - Distance where to scroll, X-axis - Low Byte
$7E0600 - Distance where to scroll, X-axis - High Byte
$7E0601 - Distance where to scroll, Y-axis - Low Byte
$7E0602 - Distance where to scroll, Y-axis - High Byte

Figure-related Tables

$700743,x - 16-bit values - Battle: GLOBAL X-Positions of the Figures on screen
$700783,x - 16-bit values - Battle: GLOBAL Y-Positions of the Figures on screen

$7E0883,x -  8-bit values - ? (used at $80/D1A7)

$7E08C4,x -  8-bit values - ? (used at $80/D1A7)

$7E0943,x -  8-bit values - Cursor Position - NW to SE Axis?
$7E0944,x -  8-bit values - Cursor Position - NE to SW Axis?

$700A03,x -  8-bit values - ? "7F"
$700A04,x -  8-bit values - Cursor Position - NW to SE Axis?
$700A43,x -  8-bit values - ? "7F"
$7E0A44,x -  8-bit values - Cursor Position - NE to SW Axis?
$7E0A83,x -  8-bit values - ? "00"
$7E0A84,x -  8-bit values - Figure Height (times two!?)?

$7E0CC3,x -  8-bit values - ? (used at $80/CF1D (related to $0E04,x))

$7E0E04,x -  8-bit values - ? (used at $80/CF1D (related to $0CC3,x), $80/D1A7)

$7E0E43,x -  8-bit values - ? (used at $80/CF1D)
$7E0E44,x -  8-bit values - ? (used at $80/CF1D)


$7E0EC5 - Data Size used VRAM DMA Pipeline Entries - Low Byte
$7E0EC6 - Data Size used VRAM DMA Pipeline Entries - High Byte
$7E0EC7 - Counter of used VRAM DMA Pipeline Entries

VRAM DMA Pipeline (Y is always 2 bytes)

$7E0EC9,y - VRAM DMA Pipeline:$4305 - 16 bit - Data Size
$7E0F89,y - VRAM DMA Pipeline:$4302 - 16 bit - Source Address
$7E1049,y - VRAM DMA Pipeline:$2116 - 16 bit - VRAM Destination
$7E1109,y - VRAM DMA Pipeline:$2115 -  8 bit - VRAM Settings
$7E110A,y - VRAM DMA Pipeline:$4304 -  8 bit - Source Bank
$7E11C9   - Number of the next free Animation VRAM DMA slot (this is a circular buffer with #$20 entries)
$7E11CA   - Number of the first used Animation VRAM DMA slot (this is a circular buffer with #$20 entries)

$7E1249 - Flag for CGRAM Update

CGRAM Buffer

$7E124B-$7E144A (At least in the intro section - maybe the position is flexible?)
$7E144B-$7E164A Another CGRAM Buffer? (See$9C/8C31)

$7E16BE - Load Index for Map related stuff at $82/DE25

$7E16C8 - Width of the Map on the NW-SE-Axis (#$04 = 3 rhombs wide)
$7E16C9 - Width of the Map on the NW-SE-Axis High Byte (always 00, for 16-bit arithmetics)
$7E16CA - Width of the Map on the NE-SW-Axis
$7E16CB - Width of the Map on the NE-SW-Axis High Byte (always 00, for 16-bit arithmetics)
$7E16CC - Width of the Map on the NW-SE-Axis??
$7E16CD - Width of the Map on the NW-SE-Axis?? High Byte (always 00, for 16-bit arithmetics)

$7E16FB - If <>#$00 at $80/B1EF, the program sets $16FC-1703 in $43x2/3
$7E16FC - Value for $4372 at $80/B1EF
$7E16FD - Value for $4373 at $80/B1EF
$7E16FE - Value for $4362 at $80/B1EF
$7E16FF - Value for $4363 at $80/B1EF
$7E1700 - Value for $4352 at $80/B1EF
$7E1701 - Value for $4353 at $80/B1EF
$7E1702 - Value for $4312 at $80/B1EF
$7E1703 - Value for $4313 at $80/B1EF

$7E1758 - Flag for MVN-Transfer on Bank $7E (0=Transfer, 1=off) see $80/91D1
$7E1759 - MVN-Transfer on Bank $7E, Source Address - LOW BYTE (see $80/91D1)
$7E175A - MVN-Transfer on Bank $7E, Source Address - HIGH BYTE (see $80/91D1)
$7E175B - MVN-Transfer on Bank $7E, Destination Address - LOW BYTE (see $80/91D1)
$7E175C - MVN-Transfer on Bank $7E, Destination Address - HIGH BYTE (see $80/91D1)

$7E175F - Flag for HDMA Window Mask (see $80/B135)
$7E1760 - Window Mask - HDMA Settings ($4340) (see $80/B135)
$7E1761 - Window Mask - HDMA Table Start Address ($4342) - LOW BYTE (see $80/B135)
$7E1762 - Window Mask - HDMA Table Start Address ($4342) - HIGH BYTE (see $80/B135)



(In-Battle?) Character Stats (taken from the first battle)
Everything written here counts as register for the FIRST figure. It's always the the next forty ($28) registers of the same kind for all the other figures on battle field.


$7E17AE - (8 bit) Character Sprite
$7E17AF - (8 bit) Character Class
$7E17D6 - (8 bit) Alignment (0 = N, 1 = L, 2 = C)
$7E17D7 - (8 bit) Element
$7E17FE - (8 bit) Level
$7E17FF - (8 bit) Exp
$7E1826 - (signed 11 bit or so) Current HP
$7E184E - (signed 11 bit or so) Max HP
$7E1876 - (signed 11 bit or so) Current MP
$7E189E - (signed 11 bit or so) Max MP
$7E18C6 - STR
$7E18EE - INT
$7E1916 - AGI
$7E193E - DEX
$7E1966 - VIT
$7E198E - MEN
$7E19B6 - (unsigned 8 bit) LUK
$7E19B7 - ???
$7E19DE - Status Effects(?)
$7E19DF - ???
$7E1A07 - ???
$7E1A2E - ???
$7E1A2F - Number
$7E1A56 - ??? Changes the color in the background of the figure in the menu
$7E1A57 - ???
$7E1A7E - Equipment UL Corner
$7E1A7F - Equipment UR Corner
$7E1AA6 - Equipment LL Corner
$7E1AA7 - Equipment LR Corner
$7E1ACE - Second Screen Item 1
$7E1ACF - Second Screen Item 2
$7E1AF6 - Second Screen Item 3
$7E1AF7 - Second Screen Item 4
$7E1B1E - Bonus/Malus on Equipment UL Corner
$7E1B1F - Bonus/Malus on Equipment UR Corner
$7E1B46 - Bonus/Malus on Equipment LL Corner
$7E1B47 - Bonus/Malus on Equipment LR Corner
$7E1B6E - Facing Direction?
$7E1B6F - AT (Turn order number?)
$7E1B96 - Current WT - Low Byte
$7E1B97 - Current WT - High Byte
$7E1BBE - ??? Low Byte
$7E1BBF - ??? High Byte
$7E1BE6 - ??? Low Byte
$7E1BE7 - ??? High Byte
$7E1C0E - ??? Low Byte
$7E1C0F - ??? High Byte
$7E1C36 - ??? Low Byte
$7E1C37 - ??? High Byte
$7E1C5E - ??? Low Byte
$7E1C5F - ??? High Byte
$7E1C86 - ??? Low Byte
$7E1C87 - ??? High Byte
$7E1CAE - ??? Low Byte
$7E1CAF - ??? High Byte
$7E1CD6 - Position from where the possible Movement is calculated - NW-SE-Axis
$7E1CD7 - Position from where the possible Movement is calculated - NE-SW-Axis
$7E1CFE - ??? Low Byte
$7E1CFF - ??? High Byte
$7E1D26 - Type - 00 Manual <>00 Guest?
$7E1D27 - ???
$7E1D4E - ??? Low Byte
$7E1D4F - ??? High Byte
$7E1DC6 - ???
$7E1DC7 - ???
$7E1D9E - ??? Low Byte
$7E1D9A - ??? High Byte
$7E1DC6 - ???
$7E1DC7 - ???
$7E1DEE - Move
$7E1EEF - ???
$7E1E16 - ???
$7E1E17 - ???
$7E1E3E - ? Related to the Animation Changing the value stops it
$7E1E94 - (16 bit) Address in WRAM for characters name, class and so on.

$7E3300 onwards - Buffer for Cinematic Direction Commands?

$7EBE4E-$7EBE74 - Some 16-bit values

$7ED2DF Data for subroutine at $80/D1A7
$7ED3DF Map of Number-of-Steps-to-use
$7EDBDF Map of ??? (#$96-#$94-#$92...)

$7F2000 VRAM Buffer of Battle BG1 Tilemap (gets transfered to$7FE000)

$7F5000 VRAM Buffer of Battle BG2 Tilemap (gets transfered to$7FEC00)

$7FC800 Step Map - Step Value per Rhomb
$7FCC00 Terrain Type Map - Only what the Battle Stat Menu Info says, not what the battle map shows!
$7FD000 ??? Map
$7FD400 "Object" Type Map - If there are bushes or something in the Battle Stat Menu
$7FD800 Height Map
$7FDC00 Map which Figure Stands where
$7FE000 VRAM Buffer of Battle BG1 Tilemap (gets transfered to VRAM)
$7FEC00 VRAM Buffer of Battle BG2 Tilemap (gets transfered to VRAM)
$7FF800-F839 ??? 3 byte