Logo
News
Menu News Editorials Reviews Best of Saturn Resources Magazine Netplay Friends
 
 
 

Under the Microscope: Hyper Duel & Blast Wind

In this edition I’ve got a couple of new cheat codes for some games from Technosoft:

  • Hyper Duel , the horizontal shoot-em-up that was released for Saturn in late 1996.
  • Blasy Wind , the vertical shoot-em-up that was released for Saturn in late 1997.

Both of these games have hidden “free play” modes. Normally they’re unlocked when you successfully complete the games. But I found cheat codes that enable them with special button sequences.

Details about the cheat codes and the reverse engineering involved in locating them are below!

Hyper Duel

Navigate to the Option > DIP Sw Assignments screen, hold L and R, and then enter this sequence:

(Holding L+R) Up, Right, Down, Left, A, Y, C, Start

You’ll hear a sound effect if you got it right, and the cursor will switch to highlight the fourth bank of dip switches. Use the arrow keys to navigate to #5 and press C to flip it on.

Once the switch is flipped, press B until you’ve left the DIP switch screen. When you come back to it, you’ll see that there’s a new choice under Credit : Freeplay .

This gives you unlimited credits, of course:

Blast Wind

Navigate to Option > DIP Switch . Then enter this sequence while holding hold L, R, A, C, and Y:

(Holding L+R+A+C+Y) Up, Left, Down, Right, X, B, Z, Start

As in Blast Wind , you’ll get a sound effect if you got it right and the cursor will move into the the fourth bank of DIP switches. Switch #5 also enables Freeplay in this game.

You now have as many continues as you need to get through the game:

Technical details

I knew from reading cheat sites ( like GameFAQs ) that both Hyper Duel and Blast Wind had unlockable settings. I wanted to figure out how those worked, so I used the Mednafen debugger to export memory snapshots while I was on the Options screens. I imported those snapshots into Ghidra using the SH-2 instruction set in order to look at the game’s code.

There are plenty of plaintext strings loaded in memory that are associated with the DIP Switch settings screen. For example, Blast Wind has:

0603365c "[C1EASY[C0/[C1NORMAL[C0/[C1HARD[C0/[C0VERY HARD" 060336bc "[C02[C0/[C13[C0/[C14[C0/[C15[C0/[C1FREEPLAY"

Tracing references to those strings leads to the function at 0602dc14 , which is the main handler for the DIP Switch settings screen. It has some logic that caught my eye:

I know from analyzing lots of Saturn games that checking whether the logical AND of a flags field and the value 0x88 is equal to 0x88 is “check whether L and R are being held.” That’s because most Saturn games represent R being held as 0x80 and L being held as 0x08 .

The function at 0602e620 does more checking of which buttons you’re holding. If you’ve also got A+C+Y held, it changes tthe counter at 06053086 when you press Up:

Down, Left, Right, X, B, Z, and Start also increment the counter. Once it 7, the function returns 1 . This signals that the cheat sequence has been entered successfully.

Very similar things are happening in Hyper Duel . The main function for the DIP switches screen is at 0602c156 . It also checks for L+R and then increments a counter (at 06050677 ) when you press a button in the sequence it’s checking for.

As far as I can tell, the only DIP switch that does anything in either game is #5. If you find otherwise, let me know!

Outro

Many thanks to everyone who played and wrote about my Sonic R patch last week! Which other Saturn games should I be modding? Give me your suggestions in the comments.

For more Saturn hacks and cheats, see the archive here at SHIRO!. And for more adventures in retro game reverse engineering, check out my blog over at Substack.


Bo Bayles
 

Rings of Saturn: 32bits.substack.com

 
 
Next Prev Go to top