OPEN LEVEL SELECTION HACK FOR TEMPEST
Created by Josh McCormick Oct 8, 1999
=====================================

Here's a gift for Eric Clayberg and every other Tempest freak out there.
Courtesy: Tempest Code Project http://arcade.gameshop.com/tempest-sw

Would you like for Tempest to allow you to select any level you want (up to 81, the green level), any time you play, regardless of score? Get out your hex editor, folks. It is easy. Yes, it works in MAME and the real thing, regardless of ROM versions.

Make a backup copy of the ROMs. (No, I'm serious!) Open up the ROM file "136002.113". Go to offset #CD (that's byte 205 for you decimal folks). You should see the numbers (in hexadecimal) "90" followed by an "FA". That's 6502 machine language for a conditional branch statement.

We want to change this to a NOP (no-operation) statement so it slips right through the loop that determines the highest level you can select. Change the two numbers to (hexadecimal) "EA" followed by an "EA". Save the changes. Make sure you've done it right by pulling up the game in MAME. You should get a warning that rom 136002.113 has the WRONG CRC, and that it found "a9000137". If you get a different CRC number, start over using your backup copy. (You *did* make one, right?)

Play the game. Make sure it works correctly. If it does, you're *go* to burn a new ROM with the hacked code, if you so choose. NOTE: The code has been updated to clear the CRC checksum in self test mode.

For the curious assembler programmer types, here's the code you are playing with:

; LEVEL SELECTION CODE BEGINS HERE

90C4

AD:26 01

LDA:abs

$0126

; See what level the player is

90C7

A2:1C

LDX:imm

#1C

; permitted to restart on, and

90C9

CA:

DEX:imp

X=X-1

; look it up on the starting

90CA

DD:FE 91

CMP:abs,x

$91FE,X

; level table list.

90CD

90:FA

BCC:rel

Branch->$90C9

; X = # of menu choices on

       

; the selection screen.

 

Here's the table of levels to choose from (poorly formatted):
Convert to decimal and add "1" for the actual level number.

91FE

00:

DATA

; Data used by $90C4 and $9187.

91FF

02:

DATA

; This table contains a list of

9200

04:

DATA

; the valid levels that a user

9201

06:08

DATA

; is able to start on. The

9203

0A:

DATA

; highest starting level is

9204

0C:

DATA

; decimal 81 (#50 + 1).

9205

0E:10 13

DATA

 

9208

15:17

DATA

 

920A

19:1B 1E

DATA

 

920D

20:23 27

DATA

 

9210

2B:

DATA

 

9211

2E:30 33

DATA

 

9214

37:

DATA

 

9215

3B:

DATA

 

9216

3E:40 48

DATA

 

9219

50:FF

DATA

 

Enjoy!

 
mail
last updated: September 15, 2004