|
|
To do:
|
What? Dreamcast is evolving! Dreamcast evolved into Neo Geo Pocket!
Sting's 32-bit dungeon crawler, Evolution, is divided by 2 for a handheld demake.
Debug Menu#
|
Japan |
|
|---|---|
|
Europe |
|
An additional in-game menu entry exists for debugging, but is disabled by default.
These entries are stored in a table containing sets of 3 addresses: label text, metadata, and description text (shown at the bottom box). Using the Europe version as an example, we can see that the debug entry would correspond to index 8 at 3e75f1 (note that its description address is null, so it uses the last selected entry's text):
; index 0
003e7591 70 7d 3e 00 addr s_RETURN_003e7d70
003e7595 5c 7d 3e 00 addr DAT_003e7d5c
003e7599 0f 76 3e 00 addr s_CLOSING_THE_COMMAND_MENU._003e760f
; index 1
003e759d 77 7d 3e 00 addr s_ITEM_003e7d77
003e75a1 38 77 3e 00 addr DAT_003e7738
003e75a5 2a 76 3e 00 addr s_YOU_CAN_USE_AND_DISCARD_ITEMS._003e762a
; index 2
003e75a9 7c 7d 3e 00 addr s_EQUIP_003e7d7c
003e75ad 3e 77 3e 00 addr DAT_003e773e
003e75b1 4a 76 3e 00 addr s_YOU_CAN_WEAR_AND_REMOVE_EQUIPMEN_003e764a
; index 3
003e75b5 82 7d 3e 00 addr s_SKILL_003e7d82
003e75b9 44 77 3e 00 addr DAT_003e7744
003e75bd 6f 76 3e 00 addr s_SPECIAL_TECHNIQUES_CAN_BE_LEARNE_003e766f
; index 4
003e75c1 88 7d 3e 00 addr s_STATUS_003e7d88
003e75c5 4a 77 3e 00 addr DAT_003e774a
003e75c9 93 76 3e 00 addr s_YOU_CAN_CHECK_YOUR_STATUS._003e7693
; index 5
003e75cd 8f 7d 3e 00 addr s_PARTY_003e7d8f
003e75d1 50 77 3e 00 addr s__WHAT_ARE_YOU_GOING_TO_DO?_003e7750
003e75d5 af 76 3e 00 addr s_YOU_CAN_CHANGE_THE_PARTY_ARRANGE_003e76af
; index 6
003e75d9 95 7d 3e 00 addr s_TALK_003e7d95
003e75dd 73 7b 3e 00 addr DAT_003e7b73
003e75e1 e3 76 3e 00 addr s_TALKING_TO_MEMBERS_IN_YOUR_PARTY_003e76e3
; index 7
003e75e5 9a 7d 3e 00 addr s_SAVE_003e7d9a
003e75e9 78 7b 3e 00 addr s__IS_IT_OKAY_TO_OVERWRITE_THE_SAV_003e7b78
003e75ed 06 77 3e 00 addr s_SAVING_GAME_DATA._003e7706
; index 8
003e75f1 9f 7d 3e 00 addr s_DEBUG_003e7d9f
003e75f5 0c 76 3e 00 addr DAT_003e760c
003e75f9 00 00 00 00 ddw 0h
At 5127 the current open menu's total number of entries is stored, but the in-game menu only goes up to 7, instead of 8. What happens here is that entries can be conditionally disabled based on some flags stored at 4800, and the debug entry flag is stored at 4818. These are checked by function 209ca3, and if its check fails, a carry bit isn't set, causing variable 5126 to be set:
0020dabb 1d a3 9c 20 call FUN_00209ca3
0020dabf 77 73 ff jrl C/ULT,FUN_0020d9e1::parse_menu_do_jmptbl
0020dac2 f1 26 51 ld (DAT_00005126),0x1
00 01
0020dac7 78 6b ff jrl T,FUN_0020d9e1::parse_menu_do_jmptbl
Afterwards, this variable causes subroutine 20dd30 to be executed, which clears the menu entry copied over from 3e75f1 to 5188. Finally, when the menu entries count is calculated in subroutine 20dcf1, it will stop at that cleared entry.
To restore the debug menu, we can always set the debug flag before calling the flag check function, by applying the following patch:
Japan |
Europe |
|---|---|
|
|
Disassembly for Europe version:
0020dabb 1b 00 fc 3f jp LAB_003ffc00
LAB_003ffc00
XREF[1]: parse_menu_entries_pre1:0020dabb
003ffc00 c1 18 48 or (DAT_00004818),0x80
3e 80
003ffc05 1d a3 9c 20 call is_menu_entry_enabled
003ffc09 1b bf da 20 jp LAB_0020dabf
OPEN#
N/A
TOWN#
OP-ATO // After OP
TRAN-P
DGN#
D-RET
BLIND // The first dungeon, "Blind"
DECENT // The second dungeon, "Descent"
HEVEN // The third dungeon, "Heaven"
SHADE // The fourth dungeon, "Shades"
SHEOL // The fifth dungeon, "Sheol"
DEEP
SHIP
CLEAR#
SHIPEV#
KANPAN // Deck
HOSO1
SENSYA // Tank
HOSO2
NIGE1 // Escape 1
ZAKO // Small Fry
NIGE2 // Escape 2
V-FORM
HOSO3
DORYOK // Cooperate
SOTIJA
OIKAKE // Pursuit
ROCK
HASI-1 // Bridge-1
HOGEKI // Bombardment
HASI-2 // Bridge-2
R-BOSS
DASSYU // Dash
EUGENE // Probably the final boss
WAKARE // Parting
NIGE-B // Escape-B
ENDING
JUKE#
N/A (There is a jukebox at the bar in town)
KIT#
N/A
STAFF#
Credits roll.
FLAG#
LV-UP
LV-SET
Y'S
PARTS // Likely allowed setting Cyframe (weapon) parts
BOOST
BOSS
PARTY
IRAI // Dispatch
M/L/G // Stands for Mag/Linear/Gre, a party formation
M/L/C // Stands for Mag/Linear/Chain, a party formation
M/L/P // Stands for Mag/Linear/Pepper, a party formation
MANDA // Mandasks, the Blind boss
MONO // Monograptus, the Descent boss
RAF // Rafflesian, the Heaven boss
SHEDE // Shadenischus, the Shades boss
PAN // Pannam Aohitori, the Sheol boss
Internal Names#
As in all Neo Geo Pocket/Color titles, both ROMs have an internal name in their headers at 24:
Japan |
|
|---|---|
Europe |
|
Assuming, as is likely, that these refer to Nippon and the United States, this would be nothing out of the ordinary... except that the game was never released in the US. This suggests an American launch had been expected during localization.
References#
|
The Evolution series | |
|---|---|
|
Neo Geo Pocket Color |
|
|
GameCube |
|