|
||||||||||||||
Under the Microscope: Chaos ControlChaos Control is an on-rails shooting game from Infogrames. It was initially released in 1995 for Mac, PC, Philips CD-i, PlayStation, and Saturn. A second “remixed” version was released for Saturn in 1996. Cheat sites don’t seem to have anything useful for this game — as of the writing, GameFAQs just tells you about the text files and audio data on the Saturn CD. Does the game have any better secrets? Answer: yes! I found:
Details are below… Enable mirror mode (Saturn remix version)This cheat works for the Saturn PAL version of Chaos Control and for the NTSC-J reissue called Chaos Control Remix . Enter it on the mode select screen:
If you got it right, the name entry screen will appear. You’ve now got the high score! You’ll also be able to change the stages to their mirrored versions. Go to the Options screen and adjust the Level : You’ll see that everything is flipped horizontally if you use one of the “mirror” difficulty levels: Technical details : The function at 0600434c (PAL version) is reading input from both controllers. Its logic is something like this: def check_code_buttons_01(): # Look up which controller to check, then get that controller’s input. controller_idx = code_buttons_controller[code_counter_01] held_button_1 = inputs[controller_idx] # Only proceed if the buttons are released OR if the "in progress" # latch is open. if (held_button_1 == 0) or (code_in_progress_01 == 0): # Fetch the target button for the current step. target_button = code_buttons_00[code_counter_01] if (target_button & held_button_1) == 0: if held_button_1 == 0: # User let go of everything. Reset latch so we are ready for # input. code_in_progress_01 = 0 else: # User is pressing the wrong button. Reset! code_in_progress_01 = 0 code_counter_01 = 0 else: # The target button was pressed. Set the latch and advance the # sequence counter. code_in_progress_01 = 1 code_counter_01 = code_counter_01 + 1 # Completion check: Look at the next required button in the list. # If it is 0 (null), the sequence is complete. next_target = code_buttons_00[code_counter_01] if next_target == 0: code_counter_01 = 0 # Reset for next time return True return FalseThe code_data variable refers to this table of (controller, button) pairs: 06032464 0000 0008 # Controller 1, L button 06032468 0000 0080 # Controller 1, R button 0603246c 0001 0008 # Controller 2, L button 06032470 0001 0080 # Controller 2, R button 06032474 0001 0800 # Controller 2, Start button 06032478 0000 0800 # Controller 1, Start buttonAfter entering the code, the 4 byte value at 0603c058 is set to 00000001 . Invincibility (Saturn original version)The original Saturn version of Chaos Control , which was only released in Japan, doesn’t have the mirror modes in it. It has a different cheat code, though. Enter this sequence on the title screen: A, C, X, Z, B, Y, R, L You’ll be invincible after that; enemy fire won’t diminish your ship health. You can actually toggle this on and off by pressing and holding B for a moment, but why would you? Technical details : The game records your last 8 button presses in the array at at 06054d8c . The function at 06009254 checks that history against the sequence of button bit patterns at 06031c32 : 06031c32 0040 # A button 06031c34 0020 # C button 06031c36 0400 # X button 06031c38 0100 # Z button 06031c3a 0010 # B button 06031c3c 0200 # Y button 06031c3e 0800 # R button 06031c40 1000 # L buttonEntering the code sets the 2 byte value at 06031c42 to 0001 , which the game checks after you get hit. If it’s nonzero, it doesn’t take health away from your ship. OutroFor more on Saturn hacks and cheats, see the archive here at SHIRO!. I’ll be back with another article next week! For even more retro game reverse engineering adventures, check out my Rings of Saturn blog at Substack.
|
||||||||||||||