Difference between revisions of "Dragon Warrior IV:ROM map"

From Data Crystal
Jump to: navigation, search
(Created page with "{{rommap|game=Dragon Warrior IV}} {{stub}} ===Bank 08: (20000)=== *$8229 = Table with three possible base addresses for graphics tile data ** Value 0x8000 (used with ROM ban...")
 
Line 11: Line 11:
  
 
*Tile Numbers:
 
*Tile Numbers:
** Byte 0: yyyAAxxx
+
** Byte 0: yyyAAXXX
 
** Byte 1: xxxxxxxx
 
** Byte 1: xxxxxxxx
 
*** yyy = Smoothing flags for front-facing tiles
 
*** yyy = Smoothing flags for front-facing tiles
 
*** AA = Attribute data (which Color palette to use)
 
*** AA = Attribute data (which Color palette to use)
*** xxxxxxxxxxx Tile number (Used as index into table $A80D)
+
*** XXXxxxxxxxx Tile number (Used as index into table $A80D)
  
 
*$A80D = Table of tiles, three bytes per entry
 
*$A80D = Table of tiles, three bytes per entry
Line 27: Line 27:
 
Multiply Physical Tile Number by 16, add Base Address from table $8229 depending on graphic page value. ($8000, $7F01, or $8E14), choose either Rom Bank 0C or 0D.  That gives the source address of the tile graphics.
 
Multiply Physical Tile Number by 16, add Base Address from table $8229 depending on graphic page value. ($8000, $7F01, or $8E14), choose either Rom Bank 0C or 0D.  That gives the source address of the tile graphics.
  
==Bank 0C: (30000)===
+
===Bank 0C: (30000)===
 
* $8000: Map Tile Graphics.  Used when the game wants the tile graphics from page 0
 
* $8000: Map Tile Graphics.  Used when the game wants the tile graphics from page 0
==Bank 0D: (34000)===
+
===Bank 0D: (34000)===
 
* $8001: Map Tile graphics.  Used when the game wants tile graphics from page 1
 
* $8001: Map Tile graphics.  Used when the game wants tile graphics from page 1
 
* $9F14: Map Tile graphics.  Used when the game wants tile graphics from page 2
 
* $9F14: Map Tile graphics.  Used when the game wants tile graphics from page 2
Line 35: Line 35:
 
* $BE44: Empty space
 
* $BE44: Empty space
 
* $BFD4: End of empty space, some other code or data
 
* $BFD4: End of empty space, some other code or data
==Bank 0E: (38000)===
+
===Bank 0E: (38000)===
 
* $8097: Character sprite graphics
 
* $8097: Character sprite graphics
 
* $BAD7: end of character sprite graphics, some other code or data
 
* $BAD7: end of character sprite graphics, some other code or data

Revision as of 14:32, 2 April 2021

Bank 08: (20000)

  • $8229 = Table with three possible base addresses for graphics tile data
    • Value 0x8000 (used with ROM bank 0C)
    • Value 0x7F01 (used with ROM bank 0D)
    • Value 0x9E14 (used with ROM bank 0D)
  • Memory around $8B9B (find this): Tile Numbers (TODO)
  • Tile Numbers:
    • Byte 0: yyyAAXXX
    • Byte 1: xxxxxxxx
      • yyy = Smoothing flags for front-facing tiles
      • AA = Attribute data (which Color palette to use)
      • XXXxxxxxxxx Tile number (Used as index into table $A80D)
  • $A80D = Table of tiles, three bytes per entry
    • Byte 0: Low byte of physical tile number
    • Byte 1: AAAABBCC
      • AAAA = ??? Flags for which VRAM tiles are unique or duplicated
      • BB = Which graphics page to read the tile graphics from
      • CC = High two bits of physical tile number
    • Byte 2: Tile Behavior (empty space, walls, water, stairs, etc...) See: Dragon_Warrior_IV/Tile_Behaviors

Multiply Physical Tile Number by 16, add Base Address from table $8229 depending on graphic page value. ($8000, $7F01, or $8E14), choose either Rom Bank 0C or 0D. That gives the source address of the tile graphics.

Bank 0C: (30000)

  • $8000: Map Tile Graphics. Used when the game wants the tile graphics from page 0

Bank 0D: (34000)

  • $8001: Map Tile graphics. Used when the game wants tile graphics from page 1
  • $9F14: Map Tile graphics. Used when the game wants tile graphics from page 2
  • $B304: Character sprite graphics
  • $BE44: Empty space
  • $BFD4: End of empty space, some other code or data

Bank 0E: (38000)

  • $8097: Character sprite graphics
  • $BAD7: end of character sprite graphics, some other code or data