Spy Hunter

From NES Hacker Wiki
Revision as of 14:57, 23 April 2016 by TheAlmightyGuru (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Spy Hunter is the NES port of the arcade game. It is a driving shoot-em-up meant to simulate a get-away chase. You will face traditional "spy" enemies on the road like tire slashers, bulletproof bullies, limos who shoot at you, and helicopters who drop bombs on you. You also get equipped with powerful spy gear like machine guns, smoke screens, oil slicks, and missiles.

Easy Cheats

Icon Addr Val Cmp Description
Icon-Lives.png AD8C 08 00 Start With 9 Lives
Icon-Lives-Infinite.png 0111 03 - Infinite Lives
Icon-Ammo-Infinite.png 0163 FF - Infinite Oil Slick (Upon pickup)
Icon-Ammo-Infinite.png 0150 FF - Infinite Smoke Screen (Upon pickup)
Icon-Ammo-Infinite.png 06BE FF - Infinite Missiles (Upon pickup)
Icon-Powerup.png 00C6 00 - No Enemy Cars
Icon-Powerup.png 06A7 04 - No Helicopters
Icon-Powerup.png 00C5 00 - No Civilian Cars
Icon-Powerup.png 0698 01 - No Water Slicks
Icon-Time.png AD07 0F 07 Slower Timer
Icon-Time.png AD07 3F 07 Super Slow Timer
Icon-Challenge.png 00C6 00 04 More Enemy Cars (Don't use "No civilian cars")
Icon-Challenge.png AD07 00 07 Faster Timer
How do I use these?

North America

Spy Hunter.png

Memory Addresses

0081 - Player Screen Pos Y
0083 - Player Screen Pos X
0084 - Car status
	00 - Idle/Driving Straight
	01 - Accelerating
	02 - Slow turn Right
	03 - Slow turn Left
	04 - Spinning
	05 - Driving on the shoulder
	06 - Wreckage

00B0 - Bridge Count (Increments each time you cross a double bridge).
00C2 - Number of enemy or civilian cars on the screen [Read Only]
00C5 - Max number of civilian cars on the screen at once. 
00C6 - Max number of enemy cars on the screen at once. (00-03)
00E2 - Speed (00-1F)
00E5 - Movement amount when turning (00 - Normal, 12 - Icy Roads)
00F7 - Controller 1 Poll
0111 - Lives
011B - Free time: 9xx		Note: As soon as you earn a free life, your free time won't save you any more.
011C - Free time: x9x
011D - Free time: xx9 
0123 - Score: 9xxxxxx
0124 - Score: x9xxxxx
0125 - Score: xx9xxxx
0126 - Score: xxx9xxx
0127 - Score: xxxx9xx
0128 - Score: xxxxx9x
0150 - Smoke Screen amount (03 on pick-up)
0163 - Oil Slick amount (FF on pick-up)

Note: Pressing Select rotates the values of these three items depending on how many you have (0168).
0165 - Item #1 (1 - Oil, 2 - Smoke, 3 - Missiles)
0166 - Item #2 (1 - Oil, 2 - Smoke, 3 - Missiles)
0167 - Item #3 (1 - Oil, 2 - Smoke, 3 - Missiles)
0168 - Item Total
Note: Each item number must be set and the amount must be above zero for this to do anything.

017B - Map Position on larger section
017C - Map Position on section
017D - Map Position on large section

0698 - Water Slick Respawn Delay
0699 - Water Slick Status
	00 - Respawning
	01 - Exists
	02-0F - Splashing
069A - Water Slick Y Position
069B - Water Slick On Screen Flag
069C - Water Slick X Position

06A7 - Helicopter Status
	00 - Invisible
	01 - Flying Forward
	02 - Hovering
	03 - Flying Back
	04 - Leaving
06A9 - Number of bombs left for a helicopter to drop (set to 0 and the helicopter will leave)
06AD - Helicopter Respawn Delay x1
06AE - Helicopter Respawn Delay x256 (Comes every 0x20 cycles)

06BE - Missile amount		(03 on pick-up)
0700 - Car 1 type
0701 - Car 1 Y position
0703 - Car 1 X position
0706 - Car 1 Flag (00 - Off, 80 - On) (Limo On = pistol out, Slasher On = Spikes out, etc.)
0710 - Car 2 (Same values as Car 1)
0720 - Car 3
0730 - Car 4
0740 - Car 5
0750 - Car 6
0760 - Car 7
0770 - Car 8
0780 - Car 1 Flags

Car Types

00 - None
01 - Motorcycle
02 - Blue Car
03 - Red Car
04 - Tire Slasher
05 - Bulletproof Bully
06 - Limo
0A - Red Truck

Max Cars On Screen Table

There are two 17-byte tables which list the max number of cars on the screen at the same time. The offset comes from the number of double-bridges the player has crossed (000B).
9BB5 - 01 02 01 02 01 02 01 02 01 01 02 01 01 02 02 02 02
9BC6 - 01 01 01 01 02 01 02 02 02 02 02 02 04 04 03 03 03


Code

Lose a Life

ROM Address: 1D7
81C7:CE 11 01  DEC $0111       ; Decrease Lives
81CA:AD 11 01  LDA $0111       ; 
81CD:C9 FF     CMP #$FF        ; Compare lives to -1
81CF:D0 06     BNE $81D7       ; 
81D1:20 60 B4  JSR $B460       ; Yup, outta lives.
81D4:4C 45 81  JMP $8145       ; 

Text

Not much text, just the opening screens and the score and game over message.

00=0
01=1
02=2
03=3
04=4
05=5
06=6
07=7
08=8
09=9
0A=A
0B=B
0C=C
0D=D
0E=E
0F=F
10=G
11=H
12=I
13=J
14=K
15=L
16=M
17=N
18=O
19=P
1A=Q
1B=R
1C=S
1D=T
1E=U
1F=V
20=W
21=X
22=Y
23=Z
24=©
25=.
FD=<
FE=>
FF=