371 lines
8.3 KiB
Plaintext
371 lines
8.3 KiB
Plaintext
#GAME NAME: Dragon Warrior II (U) [!].nes
|
|
|
|
// list of additional table files switched into from some block's #TABLE:
|
|
#SUB TABLE: credits.tbl
|
|
#SUB TABLE: cursor.tbl
|
|
#SUB TABLE: heights.tbl
|
|
#SUB TABLE: menu.tbl
|
|
#SUB TABLE: menu_links.tbl
|
|
#SUB TABLE: pos.tbl
|
|
#SUB TABLE: pos2.tbl
|
|
#SUB TABLE: widths.tbl
|
|
|
|
// if you need to edit it, the dictionary for the main script is at $B49B-$B686, with the entry lengths stored at $B44B-$B49A
|
|
#BLOCK NAME: Main Script Part 1
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $B762
|
|
#POINTER TABLE STOP: $B7BD
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 16
|
|
#AUTO JUMP START: $17FE7
|
|
#AUTO JUMP STOP: $B7C2
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $C010
|
|
#TABLE: dw2_script.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// bank swap
|
|
#BLOCK NAME: Main Script Part 2
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $B7BE
|
|
#POINTER TABLE STOP: $B7C1
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 16
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10
|
|
#TABLE: dw2_script.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// Note that the original game uses " DETOXICATE " instead of " DETOXICATE[line]" and abcde will combine DETOXICATE's trailing space with " UNCURSE[line]"'s leading space into a single " " token (<$82> instead of <$81><$81>), but DW2's menu code doesn't handle those the same way when they terminate a menu line, so you'll want to edit that line before re-inserting it.
|
|
#BLOCK NAME: Menus
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $7652
|
|
#POINTER TABLE STOP: $76E5
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#SCRIPT STOP: $7F20
|
|
#SORT OUTPUT BY STRING ADDRESS: Yes
|
|
#STRINGS END AT NEXT POINTER: Yes
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: -$3FF0
|
|
#TABLE: menu_params.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// pointer points 1 byte before data, relying on X > 0; string length is set at $3EDBE
|
|
#BLOCK NAME: "ADVENTURE LOG", stored backwards
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $3EDC4
|
|
#POINTER TABLE STOP: $3EDC5
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#SCRIPT STOP: $3EDDC
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $30011
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Prologue
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1CAB1
|
|
#POINTER TABLE STOP: $1CAB2
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $14010
|
|
#TABLE: spacer.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: End Credits
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $242AE
|
|
#POINTER TABLE STOP: $242AF
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $1C010
|
|
//#SCRIPT STOP: $247D5
|
|
#TABLE: credits_spacer.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Monster Counts
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $BF0A
|
|
#POINTER TABLE STOP: $BF0B
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 8
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Direction Names
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1925E
|
|
#POINTER TABLE STOP: $1925F
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 4
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Prince of Cannock Names
|
|
#TYPE: FIXED_STRING
|
|
#STRING LENGTH: 64
|
|
#STRING END: No
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1AD13
|
|
#POINTER TABLE STOP: $1AD14
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Princess of Moonbrooke Names
|
|
#TYPE: FIXED_STRING
|
|
#STRING LENGTH: 64
|
|
#STRING END: No
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1AD31
|
|
#POINTER TABLE STOP: $1AD32
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Items 1 Line 1
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18032
|
|
#POINTER TABLE STOP: $18033
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 32
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Items 2 Line 1
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18040
|
|
#POINTER TABLE STOP: $18041
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 32
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Items 1 Line 2
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18034
|
|
#POINTER TABLE STOP: $18035
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 32
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Items 2 Line 2
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18042
|
|
#POINTER TABLE STOP: $18043
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 32
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Spells
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18036
|
|
#POINTER TABLE STOP: $18037
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 32
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// pluralization code: 0x01C805 - 0x01C8F1
|
|
// -ngo -> -ngo
|
|
// -f -> -ves (not used)
|
|
// -y -> -ies
|
|
// -i -> -ies
|
|
// -rus -> -rii, -s -> -ses
|
|
// -ch -> -ches, -sh -> -shes
|
|
// -man -> -men, -Man -> -Men
|
|
// -mouse -> -mice, -Mouse -> -Mice
|
|
// -dead -> -dead
|
|
// - -> -s
|
|
|
|
#BLOCK NAME: Monsters 1 Line 1
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18038
|
|
#POINTER TABLE STOP: $18039
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 50
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Monsters 2 Line 1
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18044
|
|
#POINTER TABLE STOP: $18045
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 33
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Monsters 1 Line 2
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1803A
|
|
#POINTER TABLE STOP: $1803B
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 50
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Monsters 2 Line 2
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $18046
|
|
#POINTER TABLE STOP: $18047
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 33
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
#BLOCK NAME: Crests
|
|
#TYPE: NORMAL
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $19C36
|
|
#POINTER TABLE STOP: $19C37
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#STRINGS PER POINTER: 3
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// stuff used for redrawing sections of the main COMMAND menu when switching between EQUIP windows
|
|
#BLOCK NAME: COMMAND menu partial redraw (the actually used version)
|
|
#TYPE: FIXED_STRING && FIXED_LINE
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $3F90D
|
|
#POINTER TABLE STOP: $3F90E
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $30010
|
|
#STRING LENGTH: $40
|
|
#STRING END: No
|
|
#LINE LENGTH: 4
|
|
#LINE END: No
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|
|
|
|
// same as above, but called during battle where there is no COMMAND menu; completely useless?
|
|
#BLOCK NAME: COMMAND menu partial redraw (the useless version)
|
|
#TYPE: FIXED_STRING && FIXED_LINE
|
|
#METHOD: POINTER_RELATIVE
|
|
#POINTER ENDIAN: LITTLE
|
|
#POINTER TABLE START: $1803C
|
|
#POINTER TABLE STOP: $1803D
|
|
#POINTER SIZE: $02
|
|
#POINTER SPACE: $00
|
|
#ATLAS PTRS: Yes
|
|
#BASE POINTER: $10010
|
|
#STRING LENGTH: $40
|
|
#STRING END: No
|
|
#LINE LENGTH: 4
|
|
#LINE END: No
|
|
#TABLE: dw2.tbl
|
|
#COMMENTS: Both
|
|
#END BLOCK
|