|
||||||||||||||
Under the Microscope: Thunder Force V Sample ROMIn this edition we’re looking at Thunder Force V Sample ROM , a demo disc for Thunder Force V . It normally lets you play a single stage, but there’s data for much more. I made a patch that unlocks everything — get it from SegaXtreme . The demo build is from about six weeks before the final one. It’s noticeably unfinished:
Here’s a video of how it looks in action: In this article we’ll look at how to lift the demo restrictions and compare this build with the final game. Technical details: fixing mode selectOne thing you’ll notice about the demo is that it prevents you from selecting OPTION on the title screen. Your only choice is GAME START , which takes you directly into stage 1. This is in contrast to the final game, which lets you choose which stage to play first. The code that blocks the mode select cursor from working is in the function at 0602a658 . The logic is something like this pseudo-Python: if (pressed_button == UP_BUTTON) or (pressed_button == DOWN_BUTTON): if demo_restriction_flags & 0x01 == 0x01: play_sfx(RESTRICTED) else: cursor += 1 play_sfx(CURSOR_MOVED)The trick is to change the value of the variable I’m calling demo_restriction_flags , which lives at 06078b7c . That gets set to 0x0f when the game is initializing itself. This patch prevents that from happening: 0601002a e000 # Don't set any restrictions That lets us access the Options screen. It’s somewhat different from the final version: The configuration screen has fewer settings. And it has different names for things — Window main instead of Window disp , Window sub instead of Window type . The patch also unlocks the Course Select screen. It’s totally different from the final version: It doesn’t actually work, however. In the final version you can choose which order you play the first three stages in. But in this demo build, you always start with stage 1. There’s not an obvious patch to fix this; the stage selection logic looks to be unfinished. Technical details: advancing stagesWhen you normally play this demo, finishing stage 1 takes you to this “coming soon” screen. It advertises the game and its “Special Pack,” which included an audio CD. The function at 0602e112 is what’s kicking us out of normal gameplay. We can make the game keep going with this patch, which skips over the extra demo logic: 0602e1ea 8929 # Branch past the reset Now we’re playing prototype stage 2! It’s very clearly unfinished: the background looks really bad compared to the final version’s. There are also fewer (and different enemies), and no boss. Does the lack of boss means this is the end of the line? No! You can press X+Y+Z to self-destruct and advance to the next stage. Normally the game would show you the “coming soon” screen, but the patch above prevents that from happening. Prototype build differencesThe following stages also have notable differences from the final version. Stage 3 has unfinished graphics: Stage 4 looks better, but it’s totally empty! Remember to self destruct with X+Y+Z to advance. Stages 5 and 6 are playable, but 7 is empty too (you can see these in the video above). Interestingly, this demo has a hidden “Stage 0” (index 07 ) that’s not in the final version. It’s just a black void: There are lots of other differences:
I also spotted that the demo has a Tecno Soft logo screen that’s different from the final game’s: There’s a debug menu in this build that’s not in the final version. Its entry point is at 0602e92a . I couldn’t get it to actually function, but this is what it looks like: OutroMany thanks to ManoNegra for pointing me at this demo disc, and for testing the patch and identifying differences. For more of the Under the Microscope series, see my archive here at SHIRO!. And for even more retro game reverse engineering, see my Substack newsletter .
|
||||||||||||||