If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Evolution: Eternal Dungeons

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Evolution: Eternal Dungeons

Also known as: Shinkisekai Evolution: Hateshinai Dungeon (JP)
Developer: Sting
Publisher: Entertainment Software Publishing
Platform: Neo Geo Pocket Color
Released in JP: 2000
Released in EU: 2000


DevTextIcon.png This game has hidden development-related text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

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

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Someone familiar with the game should review comments
Japan Evolution-JP-NGP-DebugMenuEntry.png Evolution-JP-NGP-DebugMenu.png
Europe Evolution-NGP-DebugMenuEntry.png Evolution-NGP-DebugMenu.png

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
0xd91f = 1b 00 fc 3f
0x1ffc00 = c1 18 48 3e 80 1d a3 9c 20 1b 23 d9 20
0xdabb = 1b 00 fc 3f
0x1ffc00 = c1 18 48 3e 80 1d a3 9c 20 1b bf da 20

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

Evolution-NGP-DebugMenu-01-Town.png

OP-ATO  // After OP
TRAN-P

DGN

Evolution-NGP-DebugMenu-02-Dgn.png

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

Evolution-NGP-DebugMenu-03-Clear.png

SHIPEV

Evolution-NGP-DebugMenu-04-ShipEv.png Evolution-NGP-DebugMenu-04-ShipEv-01.png

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

Evolution-NGP-DebugMenu-08-Flag.png

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 EVOLUTION NP
Europe EVOLUTION US

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.