Super C

From NES Hacker Wiki
Revision as of 07:37, 8 April 2017 by Novazero (talk | contribs) (Easy Cheats: Added Invulnerable, Clarified Invincible with (B Power Up))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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

Icon Addr Val Cmp Description
Icon-Lives.png E5A3 08 02 Start With 9 Lives (Both players)
Icon-Lives.png E5A3 62 02 Start With 99 Lives (Both players)
Icon-Lives-Infinite.png 0053 0A - P1 Infinite Lives
Icon-Lives-Infinite.png 0054 0A - P2 Infinite Lives
Icon-Invincible.png 00C4 FF - P1 Invulnerable
Icon-Invincible.png 00C5 FF - P2 Invulnerable
Icon-Invincible.png 00D4 FF - P1 Invincible (B Power Up)
Icon-Invincible.png 00D5 FF - P2 Invincible (B Power Up)
Icon-Weapon.png 00B8 82 - P1 Has Spray
Icon-Weapon.png 00B8 84 - P1 Has Flame Thrower
Icon-Weapon.png 00B8 81 - P1 Has Machine Gun
Icon-Weapon.png 00B8 83 - P1 Has Laser
Icon-Weapon.png 00B8 85 - P1 Has Charged Flame Thrower (Not normally possible)
Icon-Weapon.png 00B8 86 - P1 Has Flame Thrower Explosion (Not normally possible)
Icon-Weapon.png 00B9 82 - P2 Has Spray
Icon-Weapon.png 00B9 84 - P2 Has Flame Thrower
Icon-Weapon.png 00B9 81 - P2 Has Machine Gun
Icon-Weapon.png 00B9 83 - P2 Has Laser
Icon-Weapon.png 00B9 85 - P2 Has Charged Flame Thrower (Not normally possible)
Icon-Weapon.png 00B9 86 - P2 Has Flame Thrower Explosion (Not normally possible)
Icon-Continue.png 0059 0A - Infinite Continues
Icon-Challenge.png E5A3 00 02 Start With 1 Life (Both players)
Icon-Challenge.png 0053 00 - P1 Start With 1 Life, No 1-Ups
Icon-Challenge.png 0054 00 - P2 Start With 1 Life, No 1-Ups
Icon-Challenge.png 0059 00 - No Continues
Icon-Challenge.png 00B8 00 - P1 No Special Guns
Icon-Challenge.png 00B9 00 - P2 No Special Guns
Icon-Challenge.png 00D4 00 - P1 No Invincibility
Icon-Challenge.png 00D5 00 - P2 No Invincibility
How do I use these?

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

00A8 - P1 Y Delta

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

00C4 - P1 Invulnerability Timeout
00C5 - P2 Invulnerability Timeout
00D4 - P1 Invincibility Timeout From B Power Up
00D5 - P2 Invincibility Timeout From B 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