Dragon Warrior II (NES)/ROM map

From Data Crystal
< Dragon Warrior II (NES)
Revision as of 19:00, 7 July 2019 by Abw (talk | contribs) (replacing pluralization extract with link to full disassembly)
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Dragon Warrior II (NES).

Dragon Quest II

* 0x02D9B to 0x????? = font, 1BPP.
* 0x1402B to 0x17D4C = dialogues. 0x14798 - beginning.
* 0x180C4 to 0x18E12 = menus and referential bank. Equipments, items, monsters, magic and complements.
* 0x1B730 to 0x1B8D7 = passwords.
* 0x1BC5C to 0x1BC81 = character's naming.
* 0x1BFB9 to 0x1BFF8 = standard names, better yet, some parts.

Dragon Warrior II

Overview

* 0x07652 to 0x076E5 = Menu pointers.
* 0x076E6 to 0x07F20 = Menu text. See Menu Format and Menu Table.
* 0x0B44B to 0x0B686 = Dictionary for main script.
* 0x0B762 to 0x0B7C1 = Main script pointers. Each pointer points at a blob of 16 concatenated strings.
* 0x0B7C2 to 0x0BE0F = Main script part 2 (continued from 0x17FE6).
* 0x0BF1D to 0x0BF44 = Words for monster counts.
* 0x14010 to 0x17FE6 = Main script part 1 (continued at 0xB7C2).
* 0x18032 to 0x18033 = Item list part 1, line 1 pointer.
* 0x18034 to 0x18035 = Item list part 1, line 2 pointer.
* 0x18036 to 0x18037 = Spell list pointer.
* 0x18038 to 0x18039 = Monster name list part 1, line 1 pointer.
* 0x1803A to 0x1803B = Monster name list part 1, line 2 pointer.
* 0x1803C to 0x1803D = Pointer to string used for partially redrawing the main COMMAND menu when switching between EQUIP sub-menus; only used in battle where there is no COMMAND menu
* 0x18040 to 0x18041 = Item list part 2, line 1 pointer.
* 0x18042 to 0x18043 = Item list part 2, line 2 pointer.
* 0x18044 to 0x18045 = Monster name list part 2, line 1 pointer.
* 0x18046 to 0x18047 = Monster name list part 2, line 2 pointer.
* 0x1925E to 0x1925F = Pointer to direction names
* 0x19260 to 0x19275 = Direction names (used by fortuneteller)
* 0x19C36 to 0x19C37 = Pointer to Sun/Water/Life Crest names
* 0x19F6F to 0x19F8F = Sun/Water/Life Crest names
* 0x1AD49 to 0x1AD88 = Prince of Cannock names.
* 0x1AD89 to 0x1ADC8 = Princess of Moonbrooke names.
* 0x1B2DA to 0x1B3CD = Item list part 1, line 1 text.
* 0x1B3CE to 0x1B4C1 = Item list part 2, line 1 text.
* 0x1B4C2 to 0x1B58B = Item list part 1, line 2 text.
* 0x1B58C to 0x1B633 = Item list part 2, line 2 text.
* 0x1B634 to 0x1B727 = Spell list text.
* 0x1B728 to 0x1B86D = Monster name list part 1, line 1 text.
* 0x1B86E to 0x1B954 = Monster name list part 2, line 1 text.
* 0x1B955 to 0x1B9E4 = Monster name list part 1, line 2 text.
* 0x1B9E5 to 0x1BA53 = Monster name list part 2, line 2 text.
* 0x1BA53 to 0x1BA92 = String used for partially redrawing the main COMMAND menu when switching between EQUIP sub-menus; only used in battle where there is no COMMAND menu
* 0x1C805 to 0x1C8F1 = Code for pluralizing monster names.
* 0x1CAC2 to 0x1CC21 = Prologue.
* 0x243B6 to 0x247D4 = End credits.
* 0x3EDBE to 0x3EDBE = Length of "ADVENTURE LOG" text
* 0x3EDC4 to 0x3EDC5 = Pointer to "ADVENTURE LOG" text
* 0x3EDCF to 0x3EDDC = "ADVENTURE LOG" text, stored backwards
* 0x3F90D to 0x3F90E = Pointer to string used for partially redrawing the main COMMAND menu when switching between EQUIP sub-menus
* 0x3F90F to 0x3F94E = String used for partially redrawing the main COMMAND menu when switching between EQUIP sub-menus

Menu Format

Menu string format is menu setup parameters + menu text, where the menu setup parameters are:

  • 1 byte menu type: bit 7 controls whether the menu has a cursor (1) or not (0), bit 6 controls whether the menu is linked to another menu via a displayed arrow in the top border (1; only set by the in-battle item menu) or not (0), bit 5 controls line spacing (1 = single spacing, 0 = double spacing)
  • 1 byte menu height: total height is this number of tiles x 2
  • 1 byte menu width: number of tiles x 1
  • 1 byte menu screen position: high nybble sets vertical position x 2, low nybble sets horizontal position x 2

If the menu has a cursor, then an additional two parameters are present:

  • 1 byte horizontal offset of second column cursor position relative to left edge of menu
  • 1 byte initial cursor position relative to top left menu corner; high nybble sets vertical position x 1, low nybble sets horizontal position x 1

If the menu is linked to another menu, then an additional parameter is present:

  • 1 byte index into the menu pointer table identifying which menu to show when the arrow in the top border is selected
Note for template.png
Note:
There is no dedicated end token for menu text; the game keeps printing data until the menu space (width x height as modified by line spacing) has been completely filled!


Disassembly

Commented Disassembly