Super C

From NES Hacker Wiki
Revision as of 22:13, 21 April 2012 by Novazero (talk | contribs) (Easy Cheats)
Jump to: navigation, search

Super C is the sequel to Contra. Like its predecessor, it is a run-and-gun where you blast away an endless supply of alien soldiers through 8 areas. The perspective switches in a couple levels from the typical side-view platformer to the top-down 8-directional runner. At the end of each area is a boss to fight. Some areas also have mini bosses.

Easy Cheats

See the guide on Easy Cheats to find out how to use these.

0053 - 0A - P1 Infinite Lives
00D4 - FF - P1 Always Invincible
00B8 - 82 - P1 Always Has Spray
00B8 - 84 - P1 Always Has Flame Thrower
00B8 - 81 - P1 Always Has Machine Gun
00B8 - 83 - P1 Always Has Laser
00B8 - 85 - P1 Always Has Charged Flame Thrower (Not normally possible)
00B8 - 86 - P1 Always Has Flame Thrower Explosion (Not normally possible)

0054 - 0A - P2 Infinite Lives
00D5 - FF - P2 Always Invincible
00B9 - 82 - P2 Always Has Spray
00B9 - 84 - P2 Always Has Flame Thrower
00B9 - 81 - P2 Always Has Machine Gun
00B9 - 83 - P2 Always Has Laser
00B9 - 85 - P2 Always Has Charged Flame Thrower (Not normally possible)
00B9 - 86 - P2 Always Has Flame Thrower Explosion (Not normally possible)

0059 - 0A - Infinite Continues

North America

Super C.png

Memory Addresses

0022 - Number of players
0050 - Area
0053 - P1 Lives / Selected Item in Sound Test
0054 - P2 Lives / Top Item in Sound Test
0059 - Continues
005B - Program loop counter ?
00A0 - P1 Status
	00 - Game Over
	01 - Loading / High Score
	02 - Active / Area Ending / Game End
	03 - Hit
	04 - Dying
	05 - Dead
	06 - Start of Game
	07 - Falling out of helicopter
	08 - End of Area
00A1 - P2 Status
00AC - P1 Direction Flag
	00 - Not Moving
	01 - Moving Right
	FF - Moving Left
00B8 - P1 Weapon
	00 - Regular
	01 - Machine Gun
	02 - Spray
	03 - Laser
	04 - Flame Thrower
	05 - Charged Flame Thrower
	06 - Charged Flame Thrower Explosion
	+80 - Rapid Fire
00B9 - P2 Weapon

00BA - P1 Direction
	00 - Up
	01 - Up-Right
	02 - Right
	03 - Down-Right
	05 - Down
	09 - Down-Left
	0A - Left
	0B - Up-Left

00A8 - P1 Y Delta

00C4 - P1 Invincibility Timeout
00C5 - P2 Invincibility Timeout
00D4 - P1 Invincibility Timeout From Power Up
00D5 - P2 Invincibility Timeout From Power Up

00F3 - P1 Joystick Poll
00F4 - P2 Joystick Poll
00F7 - P1 Joystick Poll
00F8 - P2 Joystick Poll

0100-010B - Stack

0110-01EF - Sound Memory

01F0-01FF - Stack 2nd Half

0200-02FF - Screen Memory
0303-0338 - Palette

03E0-03FF - Palette

0400-04FF - Name Table

0508-0515 - Enemy Graphic Lookup
0518 - P1 Sprite Frame
0519 - P2 Sprite Frame

0522-052F - Enemy Y
0532 - P1 Y
0533 - P2 Y

053C-0549 - Enemy X
054C - P1 X
054D - P2 X

0556-0563 - Enemy Palette
0566 - P1 Palette
0567 - P2 Palette

Note: Players share some of the same memory when the spray gun is used.
0568-0577 - P1/P2 Bullets Graphic Lookup (See Graphic Lookup Table)
0578-0587 - P1/P2 Bullets Y
0588-0597 - P1/P2 Bullets X
0598-05A7 - P1/P2 Bullets Unknown Variable
05A8-05B7 - P1/P2 Bullets Flag
05B8-05C7 - P1/P2 Bullets Unknown Variable
05C8-05D7 - P1/P2 Bullets Unknown Variable
05D8-05E7 - P1/P2 Bullets Unknown Variable (only used on spray and machine gun)
0608-0617 - P1/P2 Bullets Direction flag?
0618-0627 - P1/P2 Bullets X Delta
0628-0637 - P1/P2 Bullets Counter
0638-0647 - P1/P2 Bullets Unknown Variable
0648-0657 - P1/P2 Bullets Direction When Fired
	00 - Right
	01 - Down-Right
	02 - Down
	03 - Down-Left
	04 - Left
	05 - Up-Left
	06 - Up
	07 - Up-Right
0658-0667 - P1/P2 Bullets Y Delta

0668-0675 - Enemy Statuses
0676-0683 - Enemy HP
0684-0691 - Enemy Unknown flag, changes while dying
0692-069F - Enemy Unknown flag, changes while dying
06A0-06AD - Enemy Unknown flag, changes while dying
06AE-06BB - Enemy Y Delta
06BC-06C9 - Enemy Unknown flag
06CA-06D7 - Enemy Unknown flag
06D8-06E5 - Enemy Type (See Table)
06E6-06F3 - Enemy Death Delay (how long they will recoil before exploding)

07E0 - High Score: xxxx990
07E1 - High Score: xx99xx0
07E2 - High Score: 99xxxx0
07E3 - P1 Score: xxxx990
07E4 - P1 Score: xx99xx0
07E5 - P1 Score: 99xxxx0
07E6 - P2 Score: xxxx990
07E7 - P2 Score: xx99xx0
07E8 - P2 Score: 99xxxx0

07EC - Flag for Right, Left, Up, Down, A, B cheat code

Graphic Lookup

00 - No Graphic
01 - No Graphic
02 - Small Explosion
03 - Flame Thrower Bullet
04 - Bullet Hitting Wall
05 - Regular Bullet
06 - Spray Bullet
07 - Item Container
08 - Item Container - M
09 - Item Container - S
0A - Item Container - L
0B - Item Container - F
0C - Item Container - R
0D - Item Container - B
0E - Item Container - Bomb
0F - Large Explosion 1
10 - Large Explosion 2
11 - Large Explosion 3
12 - Sphere Explosion
13 - Sphere Explosion Dissipating 1
14 - Sphere Explosion Dissipating 2
14 - Sphere Explosion Dissipating 2
15 - Laser Bullet Vertical
16 - Laser Bullet Horizontal
17 - Laser Bullet Diagonal Right
18 - Laser Bullet Diagonal Left
19 - Machine Gun Bullet
1A - Charged Machine Bun Bullet
1B - Enemy Soldier Running 1
1C - Enemy Soldier Running 2
1D - Enemy Soldier Running 3
1E - Enemy Soldier Running 4
1F - Enemy Soldier Running 5
20 - Enemy Soldier Jumping
21 - Enemy Soldier Shooting
22 - Glitch
23 - Sniper Shooting Up
24 - Sniper Shooting Straight
25 - Sniper Shooting Down
26 - Prone Shooter
27 - Grenade Thrower 1
28 - Grenade Thrower 2
29 - Grenade 1
2A - Grenade 2
2B - Grenade 3
2C - Grenade 4
2E - Grenade 5
2F - Grenade 6
30 - Grenade 7
31 - Glitch
...

Enemy Types

00 - Power Up
01 - Power Up Container
02 - Wall Turret Bullet (Area 1) / Helicopter Bullet (Area 1) / Wall Turret Bullet (Area 3)
03 - Soldier (Area 1, 3, 4, 7, 8) / Shooting Soldier (Area 1, 3, 4)
04 - Wall Power Up (Area 5)
05 - Grenade Hurler (Area 1)
06 - Grenade (Area 1)
07 - Prone Shooter (Area 1, 3)
08 - Unused
09 - Sniper (Area 1, 3, 4, 5)
0A - 4-Way Turret (Area 4) / Wall Turret (Area 5)
0B - Ground Turret (Area 5)
0C - Explosion
0D - Wall (Area 2, 6)
0E - Enemy Bullet
0F - Grenade Thrower Behind Wall (Area 1)
10 - Soldier Spawn Point (Area 1, 3)
11 - Unused
12 - Unused
13 - Unused
14 - Unused
15 - Unused
16 - Unused
17 - Unused
18 - Unused
19 - Unused
1A - Unused
1B - Unused
1C - Unused
1D - Unused
1E - Unused
1F - Unused
20 - Wall Turret (Area 1)
21 - Helicopter (Area 1)
22 - Helicopter Turret (Area 1)
23 - Helicopter Target (Area 1)
24 - Crab (Area 6)
25 - Tracked Turret (Area 4)
26 - Tree Sniper (Area 3)
27 - Ground Turret (Area 3)
28 - Mortar Cannon (Area 3)
29 - Mortar Ball (Area 3)
2A - Fetus Bubbles (Area 8)
2B - Eye Snake (Area 8)
2C - ?
2D - Collapsing Ceiling (Area 4)
2E - Large Tank (Area 2)
2F - Boulder (Area 5)
30 - Large Tank Bullet (Area 2)
31 - Seeking Bubbles (Area 4)
32 - Robot Turret (Area 5)
33 - Robot Turret Bullet (Area 5)
34 - Flying Soldier (Area 5)
35 - Spider (Area 5)
36 - Tank Taser (Area 2)
37 - Blue Spiders (Area 8)
38 - Unused
39 - Moving Floor (Area 4)
3A - Babalu Bullet (Area 3)
3B - Spitter (Area 7)
3C - Spitter Bullet (Area 7)
3D - Face Hugger Plant (Area 7)
3E - Face Hugger (Area 7)
3F - ?
40 - Bird Soldier (Area 4)
41 - Bird Soldier Door (Area 4)
42 - ?
43 - Laser Turret (Area 4)
44 - ?
45 - Wall Mouth (Area 8)
46 - Wall Mouth Spider (Area 8)
47 - Head Turret (Area 8)
48 - Head Turret Bullet (Area 8)
49 - Crushing Ceiling (Area 8)
4A - Unused
4B - Wall Boss (Area 3)
4C - Unused
4D - Unused
4E - Babalu (Area 3)
4F - Unused
50 - Wall Turret (Area 3)
51 - Skull Boss (Area 7)
52 - Fire Ring Producer (Area 7)
53 - Slime Producer (Area 7)
54 - Fire Ring (Area 7)
55 - Skull Boss Spiders (Area 7)
56 - Slime (Area 7)
57 - Unused
58 - Soldier Door (Area 5)
59 - Skeleton Hover Boss (Area 5)
5A - Skull (Area 5)
5B - Rotating Turret (Area 2)
5C - Sniper (Area 2)
5D - Giant Mouth (Area 6)
5E - ? (Area 6)
5F - Spinning Heads (Area 6)
60 - Spineys (Area 6)
61 - Spineys from Boss (Area 6)
62 - ?
63 - Soldier/Shooting Soldier (Area 2)
64 - Baby Boss (Area 6)
65 - Daddy Boss
66 - Snake (Area 6)
67 - Unused
68 - Daddy Boss Bullets (Area 6)
69 - Tank Gunner Boss (Area 2)
6A - Tank Gunner (Area 2)
6B - Bubble (Area 4)
6C - Bubble Vent (Area 4)
6D - Final Boss (Area 8)
6E - Crumbling Rock (Area 8)
70 - Baby Boss ? (Area 6)
71 - Daddy Boss ? (Area 6)
72 - Unused
73 - Unused
74 - Unused
75 - Unused
76 - Unused
77 - Unused
78 - Unused
79 - Unused
7A - Unused
7B - Unused
7C - Unused
7D - Unused
7E - Unused
7F - Nothing


Code

Start of Game

ROM Address: 1E592
E582:A9 00     LDA #$00	; Load Area: $00
E584:85 50     STA $0050	; Set Area ($0050)
E586:A9 00     LDA #$00
E588:85 A0     STA $00A0
E58C:A9 02     LDA #$02	; Load Continues: $02
E58E:85 59     STA $0059	; Set Continues ($0059)
E590:A5 22     LDA $0022	; Load the number of players ($0022)
E592:85 20     STA $0020
E594:A6 20     LDX $0020	; Set X to the number of players
E596:A9 01     LDA #$01
E598:95 A0     STA $A0,X	; Clear Player Status
E59A:A9 00     LDA #$00
E59C:95 CA     STA $CA,X
E59E:95 C4     STA $C4,X	; Clear Invincibility Time Power Up
E5A0:95 B8     STA $B8,X	; Clear Weapon
E5A2:A9 02     LDA #$02	; Load Starting Lives: $02
E5A4:AC EC 07  LDY $07EC
E5A7:F0 02     BEQ $E5AB
E5A9:A9 09     LDA #$09	; If cheat code is set, Load Starting Lives: $09
E5AB:95 53     STA $53,X	; Set Starting Lives
E5AD:A9 30     LDA #$30
E5AF:95 55     STA $55,X	; ? ($0055) is set to $30
E5B1:A9 00     LDA #$00
E5B3:95 57     STA $57,X
E5B5:CA        DEX
E5B6:10 DE     BPL $E596	; Loop X (number of players)
E5B8:A9 00     LDA #$00
E5BA:A0 05     LDY #$05
E5BC:99 E3 07  STA $07E3,Y	; Clear player scores (07E3-07E8)
E5BF:88        DEY
E5C0:10 FA     BPL $E5BC
E5C2:60        RTS

Lose a Life

ROM Address: 594
8584:D6 53     DEC $53,X	; Decrease lives (X is player, 0 - P1, 1 - P2)
8586:F6 A0     INC $A0,X	; Increase the player's status
8588:60        RTS

Jump Height

ROM Address: 739
8729:B9 50 88  LDA $8850,Y	; Load from $8850, which is $FB (Note: Anything less than $FA causes problems)
872C:95 A8     STA $A8,X	; Store the value into the player's Y Delta value

Invincibility Timeout

ROM Address: 4C7
84B7:B5 C4     LDA $C4,X	; Load current invincibility timeout (X is player, 0 - P1, 1 - P2)
84B9:F0 02     BEQ $84BD	; If invincibility timeout has reached zero, skip ahead
84BB:D6 C4     DEC $C4,X	; Decrease invincibility timeout
84BD:B5 D4     LDA $D4,X	; Load current invincibility power up 
84BF:F0 08     BEQ $84C9	; If invincibility power up has reached zero, skip ahead
84C1:A5 5B     LDA $005B	; 
84C3:29 03     AND #$03	; AND program counter so we only decrease invincibility power up every 4 loops
84C5:D0 02     BNE $84C9	; 
84C7:D6 D4     DEC $D4,X	; Decrease invincibility power up timeout
84C9:60        RTS

Reset an Enemy

ROM Address: 1F761
F751:A9 00     LDA #$00	; X is the memory offset for the enemy 00-0D.
F753:9D 68 06  STA $0668,X	; Status
F756:9D 76 06  STA $0676,X	; Hit Points
F759:9D 1E 07  STA $071E,X	; ?
F75C:9D 08 05  STA $0508,X	; Graphic Lookup
F75F:9D 56 05  STA $0556,X	; Palette
F762:9D 8E 07  STA $078E,X	; ?
F765:9D 9C 07  STA $079C,X	; ?
F768:9D 22 05  STA $0522,X	; Y Position
F76B:9D 84 06  STA $0684,X	; ?
F76E:9D 92 06  STA $0692,X	; ?
F771:9D A0 06  STA $06A0,X	; ?
F774:9D BC 06  STA $06BC,X	; ?
F777:9D AE 06  STA $06AE,X	; Y Delta
F77A:9D CA 06  STA $06CA,X	; ?
F77D:9D E6 06  STA $06E6,X	; Enemy Explode Delay
F780:9D F4 06  STA $06F4,X	; ?
F783:9D 10 07  STA $0710,X	; ?
F786:9D 02 07  STA $0702,X	; ?
F789:9D 2C 07  STA $072C,X	; ?
F78C:9D 48 07  STA $0748,X	; ?
F78F:9D 56 07  STA $0756,X	; ?
F792:9D 64 07  STA $0764,X	; ?
F795:9D 72 07  STA $0772,X	; ?
F798:9D 80 07  STA $0780,X	; ?
F79B:60        RTS

Text

The common NES zero-based table where numbers start at 0 and letters start at A. There are a couple of symbols at the end.

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


Japan

Super Gryzor.png

The Japanese title is Super Gryzor.

Europe

Probotector 2 - Return of the Evil Forces.png