Before we discuss the "fix," we must acknowledge what Konami actually gave us. There is a legitimate way to get 30 lives in Super Contra, but it is not a start-up code. It is a Level Select + 30 Lives code.
To perform this, do the following on the title screen (where it says "Super C" or "Super Contra"):
Wait—did you just do the code twice? Yes.
If done correctly, you will see a stage number (0-7) blinking. Use Up/Down to choose your stage. Press Start. You now have 30 lives. However, there is a catch: You start with the standard rifle, not the S-Power.
This is the official "30 lives" mechanic, but it fails the "S-Power" part of the fix. You still have to survive long enough to find an S-Power icon, which usually sits right in the middle of a kill zone.
Super C (known as Super Contra in some regions) is a beloved NES classic, but players have long struggled with its infamous difficulty. While the original Contra featured the legendary Konami Code (Up, Up, Down, Down, Left, Right, Left, Right, B, A, Start) for 30 lives, many fans believe the same code should work in Super C. The truth is a bit more complicated—but there is a fix.
In Super Contra, the existence of a similar cheat code was highly anticipated. Gamers sought a way to make the game more manageable, given its steep difficulty curve. The code, often referred to as the "Super Contra S Power 30 Lives NES Fix," promised to alleviate some of that difficulty by granting players an additional 30 lives.
The code itself was not as universally known or documented as the original Konami Code, partly because it was specific to Super Contra and required precise input. However, once discovered, it revolutionized how players approached the game. The code was typically entered at the title screen and, when done correctly, allowed players to start their journey through the game with a significantly reduced risk of returning to the beginning.
The "Super Contra S Power 30 Lives NES Fix" represents more than just a cheat code; it's a piece of gaming history that encapsulates the spirit of the NES era. It symbolizes the ingenuity and perseverance of gamers who sought to enhance their experience with classic titles. For those who played Super Contra, discovering and utilizing this code was a rite of passage, offering a sense of accomplishment and a deeper appreciation for the game's design.
As gaming continues to evolve, the allure of retro games and their secrets remains strong. The nostalgia for classic titles and the challenges they posed continues to inspire new generations of gamers. The legend of the "Super Contra S Power 30 Lives NES Fix" and similar cheat codes serves as a reminder of the creative and communal aspects of gaming culture, ensuring that these classic games remain relevant and enjoyable, even decades after their initial release.
To get 30 lives and effectively "fix" the limited life count in the North American version of Super C
(the NES sequel to Contra), you need to use a specific button sequence that differs from the classic Konami code.
In the North American release, the standard code only grants 10 lives, while the same code in Japanese and European versions provides the full 30 lives. 1. Extra Lives Cheat Codes
The sequence must be entered at the Title Screen before the game begins.
North American Version (10 Lives):Right, Left, Down, Up, A, B, Start. super contra s power 30 lives nes fix
Japanese (Super Contra) & European (Probotector II) Versions (30 Lives):Right, Left, Down, Up, A, B, Start.(Note: Some Japanese versions may require just Right, Left, Down, Up, A + B.) 2. S-Power (Spread Shot) Advantage
While there is no single "cheat code" to permanently lock the Spread Shot (S) power-up, you can maintain it more easily using the life-buffer provided by the 30-lives fix.
Weapon Preservation: In Super C, you lose your current power-up upon death. Starting with 10 or 30 lives allows you more "mistakes" while holding the Spread Shot, which is widely considered the best weapon for clearing stages.
Two-Player Life Stealing: If you are playing with a partner and lose your Spread Shot along with your last life, you can "steal" a life from the other player by pressing A + B simultaneously while dead to get back in the action. 3. Additional Secret: Sound Test
If you want to verify your inputs are working or just listen to the soundtrack, you can access a hidden menu:
Sound Mode: At the title screen, hold A + B and press Start. NES Super Contra: Secret Extra Lives Trick!
The urban legend began on a flickering CRT in a basement in 1990. Toby, a ten-year-old with calloused thumbs, was convinced he’d found the "God Hex." He claimed that if you held Select and Start while blowing into the cartridge at a 45-degree angle, the title screen’s "30 Lives" cheat would evolve.
Thirty years later, an indie dev named Elias found Toby’s old cartridge at a garage sale. Scrawled on the back in Sharpie was a string of hexadecimal code: S-30-FIX-99.
When Elias plugged it into his modded NES, the game didn't just give him 30 lives; it gave him infinite ones, but at a cost. Every time Bill Rizer died and respawned, the screen glitched. The jungle grew darker. The alien bosses started whispering Elias’s own search history through the 8-bit speakers.
He realized the "Fix" wasn't a patch for the player—it was a patch for the game's villains. They were tired of losing to a cheat code. By the final stage, the screen went black, leaving only a single line of text:
"30 LIVES IS A CRUTCH. FINISH THE MISSION ON ONE, OR THE CARTRIDGE STAYS ON FOREVER."
Elias played for seventy-two hours straight, fueled by cold coffee and terror, knowing that if the red light on the console went out, he might just go out with it.
Should we delve into the specific gameplay mechanics of this haunted version, or do you want to see the secret ending Elias discovered?
In the annals of retro gaming, few topics spark as much nostalgic debate as the "30 Lives" discrepancy in Super Contra Before we discuss the "fix," we must acknowledge
(known as Super C on the NES). While the original Contra famously popularized the Konami Code (
) to grant 30 lives, its sequel introduced a "fix" that frustrated North American players for decades. The Discrepancy: 10 vs. 30 Lives
For the North American NES release of Super C, developers replaced the standard Konami Code with a new sequence: Right, Left, Down, Up, A, B, Start. However, this new code only grants 10 lives in the US version, whereas the exact same input provides the full 30 lives in the Japanese (Famicom) and European (PAL) versions. North American NES (Super C):
→,←,↓,↑,A,B,Startright arrow comma left arrow comma down arrow comma up arrow comma cap A comma cap B comma cap S t a r t = 10 Lives Japanese Famicom (Super Contra):
→,←,↓,↑,A,B,Startright arrow comma left arrow comma down arrow comma up arrow comma cap A comma cap B comma cap S t a r t = 30 Lives European NES (Probotector II):
→,←,↓,↑,A,B,Startright arrow comma left arrow comma down arrow comma up arrow comma cap A comma cap B comma cap S t a r t = 30 Lives The "Fix" and Cultural Impact
This reduction was likely a deliberate attempt by Konami to increase the game's difficulty for the US market, which was often perceived as preferring more "unforgiving" arcade-style challenges to extend playtime. In response, the modding community eventually developed "fixes" or patches to restore the 30-life count to the US version, bringing it in line with its international counterparts and its legendary predecessor. Summary of Codes for Super C (NES) NES Super Contra: Secret Extra Lives Trick!
Leo stared at the flickering CRT screen, the "Game Over" music mocking him for the tenth time that night. Super Contra on the NES was a masterpiece of cruelty, and he was down to his last cigarette and his last bit of patience.
He wasn’t just a gamer; he was a digital archeologist. He’d heard rumors on an old BBS forum about "Power 30"—not just the standard Konami code, but a legendary "S-Power" glitch that supposedly granted 30 lives and permanent Spread-gun fire.
He cracked his knuckles and pulled the cartridge. He didn’t just blow on the pins; he took a Q-tip and rubbing alcohol to the copper teeth until they gleamed. "Talk to me," he whispered.
He shoved the gray plastic slab back into the toaster-style NES. Click-clack.
Power on. The title screen surged to life with that iconic, driving bassline. Bill and Lance stood defiant against a backdrop of alien carnage. Leo didn't press Start. He waited for the demo to loop exactly three times.
On the fourth loop, just as the first alien soldier exploded into pixels, he entered the sequence: Right, Left, Down, Up, A, B, Start.
The screen didn't just flash; it hummed. A low-frequency vibration rattled his coffee mug. The "Super Contra" logo shifted from orange to a piercing, neon violet. He hit Start. Wait—did you just do the code twice
The jungle level loaded, but it was different. The music was faster, more aggressive. When Bill landed on the soil, he wasn't holding the standard pea-shooter. He was carrying a shimmering, translucent cannon. Leo tapped 'B'.
A wall of red orbs filled the screen. It wasn't just the Spread gun; it was every power-up combined. Fireballs spiraled within the spread, and the bullets tracked enemies with predatory heat-seeking logic.
He looked at the top left corner. The life counter didn't say 03. It showed a pulsing, golden 30.
Leo moved like a god. He didn't dodge the snipers; he erased them before they could pull the trigger. The bosses—the giant tank, the skeletal alien heart—melted in seconds under the "S-Power" barrage. He felt the controller heating up in his hands, the plastic softening, but he couldn't let go. He was seeing frames of animation that shouldn't exist, secret paths through the fortress walls that led into a digital void.
By the time he reached the final hive, the room was glowing with the violet light of the screen. He pulled the trigger one last time, the Spread-power shattering the alien brain into a thousand sparkling fragments. The screen went black. No credits. No "Congratulation."
Just one line of white text on the dark abyss:SYSTEM FIXED. LIVES REMAINING: 30. SEE YOU IN THE REAL WAR.
The NES clicked off. Leo sat in the dark, the smell of ozone lingering in the air. He looked at his hands—they were trembling. He reached for the console, but the cartridge slot was empty. The game was gone.
He walked to the window and looked out at the city. For a split second, the red lights of the skyscrapers looked exactly like the pulsing eyes of the alien snipers. He gripped the windowsill, his thumb instinctively twitching as if seeking a button. The fix worked. But the game wasn't over.
Should we explore a sequel where Leo finds the next "fixed" cartridge, or
Cheat codes have been a part of gaming culture since the early days of video games. On the NES, these codes were often discovered through community efforts, trial and error, and sometimes, through tips shared in gaming magazines. The most famous of these, perhaps, is the "Konami Code," which originated in the 1986 game "Contra." Entering the sequence Up, Up, Down, Down, Left, Right, Left, Right, B, A, Start would grant the player 30 extra lives. This code became a cultural phenomenon, symbolizing a kind of secret handshake between gamers.
In the pantheon of the Nintendo Entertainment System, few games commanded the raw, adrenaline-soaked respect of Super C. As the sequel to the legendary Contra, it promised more aliens, more bullets, and more opportunities for humiliating death. Yet, for the generation of gamers who cut their teeth on 8-bit difficulty, Super C presented a unique problem. The original Contra’s famous “Konami Code” (Up, Up, Down, Down, Left, Right, Left, Right, B, A, Start) had become a cultural life raft. But when players eagerly typed that sacred sequence into Super C, they were met with silence. No extra lives. No digital safety net. This wasn’t a bug; it was a deliberate fix. Analyzing this change reveals a fascinating dialogue between game designers and players about the nature of challenge, fairness, and the very definition of victory.
The first layer of this “fix” is a matter of technical and philosophical evolution. In the original Contra, the 30-lives code was arguably a concession. The game was notoriously brutal, with limited continues and hits that stripped your weapon power. The code lowered the barrier to entry, allowing casual players to see the alien heart of the game. However, by the time Super C launched in 1990, Konami had observed player behavior. Gamers had become proficient. The code, originally a debugging tool from the arcade game Gradius, had transformed from a secret into a crutch. By removing the 30-lives code from its original form, Konami issued a challenge: You’ve mastered the safety net. Now play the real game. The fix forced players to rely on the new “flame thrower” power-up and tighter level design, trusting that their muscle memory from the first game was enough.
Yet, the story doesn’t end with removal. The true genius of Super C’s “fix” lies in the alternate code. Konami didn’t remove the possibility of extra lives; they hid it behind a more demanding, context-sensitive input. The famous 30-life code for Super C is: Up, Up, Down, Down, Left, Right, Left, Right, B, A, A, B, Select, Start (for two players). This alteration is crucial. The extra “A, A, B” and the requirement to hit “Select” before “Start” transforms the code from a casual chant into a ritual. It requires precision. It requires memory. In essence, Konami fixed the original code by turning it into a reward for mastery, not a handout. You had to prove you deserved the lives by correctly executing a more complex sequence during the title screen—a meta-game before the game even began.
This “fix” also highlights a shift in the player-developer social contract. The original Contra code felt like a backdoor secret, a wink from the programmer. The Super C code feels like a puzzle. By altering the sequence, Konami forced players to communicate. Without the internet, the rumor mill churned: “I heard it’s B, A, A, B now.” “No, you have to hold Select.” This collaborative detective work rebuilt the aura of mystery that the original code had lost through overexposure. The 30 lives weren’t gone; they were simply hidden again, restoring the thrill of discovery. The fix didn’t lower the difficulty; it raised the stakes of secret-finding.
Ultimately, the “Super C 30 Lives NES fix” is a case study in how constraints breed creativity. By breaking the original Konami Code, Konami forced a generation of players to either play the game legitimately—learning the patterns of the overhead levels and the sprint to the Alien’s Lair—or to hunt for the new, more elusive truth. The fix ensured that Super C was not merely Contra 2.0; it was a distinct trial. For those who mastered the new code, the 30 lives felt earned, a tactical advantage rather than a cheat. For those who didn’t, they discovered that Super C without a net is a relentless, beautiful ballet of destruction. In breaking a sacred tradition, Konami fixed something more important than a line of code: they fixed the player’s courage.
testssl.sh is free and open source software. You can use it under the terms of GPLv2, please review the License before using it.
Development takes place at github. We're now @ 3.2.3 (stable) and 3.3dev.
There was a last release of 3.0.10 (oldstable) but that was the last one in the 3.0.x branch.
Supported will always be the current dev version and the version before (n-1 rule). As soon as the dev version becomes the stable release, this will be the n-1 version and receives bugfixes only. The dev version has historically not delivered really broken software (no facebook paradigm). Consider it like a rolling release: It'll definitely change-- that is the point of development-- things might break for you if you e.g. expect the output or features all to be the same. But other than that: The dev version itself won't break (TM).
3.2 is the stable branch. There was one final 3.0.10 release, a.k.a the old stable. If you need longer support for 3.0.x there's a possibility for paid maintenance support. We are focussing on 3.3dev, further development will take place in that branch. We aim to not break things badly but, as said, things will change. If you want to make use of new features like QUIC, TLS 1.3 0-RTT, newer SSLlabs rating, check for the Opossum vulnerability and more, you should consider this branch.
-testssl.sh is pretty much portable/compatible. It is working on every Linux, Mac OS X, FreeBSD distribution, on MSYS2/Cygwin (slow).
It is supposed also to work on any other unixoid systems.
A newer OpenSSL version (1.0) is recommended though. /bin/bash is a prerequisite –
otherwise there would be no sockets.
openssl <verify|ocsp|pkey> . In principle any OpenSSL or even LibreSSL can be used as a helper. It's recommended to
use the one supplied as it makes sure special tests or features like IPv6, proxy support, STARTTLS MySQL or PostgreSQL are supported. (The one supplied stems
originally from github.com/PeterMosmans/openssl. openssl-1.0.2k-chacha.pm.ipv6.Linux+FreeBSD.tar.gz is a Linux- and FreeBSD-only tarball. The directory openssl-1.0.2i-chacha.pm.ipv6.contributed/ contains contributed builds for ARM7l and Darwin binaries).
curl -L https://testssl.sh or wget -O - https://testssl.sh pulls the current stable code from here curl -L https://testssl.sh/dev/ or wget -O - https://testssl.sh/dev/ pulls the current development code from githubuserid@somehost:~ % testssl.sh
"testssl.sh [options] <URI>" or "testssl.sh <options>"
"testssl.sh <options>", where <options> is:
--help what you're looking at
-b, --banner displays banner + version of testssl.sh
-v, --version same as previous
-V, --local pretty print all local ciphers
-V, --local <pattern> which local ciphers with <pattern> are available? If pattern is not a number: word match
<pattern> is always an ignore case word pattern of cipher hexcode or any other string in the name, kx or bits
"testssl.sh <URI>", where <URI> is:
<URI> host|host:port|URL|URL:port port 443 is default, URL can only contain HTTPS protocol)
"testssl.sh [options] <URI>", where [options] is:
-t, --starttls <protocol> Does a default run against a STARTTLS enabled <protocol,
protocol is <ftp|smtp|lmtp|pop3|imap|xmpp|telnet|ldap|nntp|postgres|mysql>
--xmpphost <to_domain> For STARTTLS enabled XMPP it supplies the XML stream to-'' domain -- sometimes needed
--mx <domain/host> Tests MX records from high to low priority (STARTTLS, port 25)
--file/-iL <fname> Mass testing option: Reads one testssl.sh command line per line from <fname>.
Can be combined with --serial or --parallel. Implicitly turns on "--warnings batch".
Text format 1: Comments via # allowed, EOF signals end of <fname>
Text format 2: nmap output in greppable format (-oG), 1 port per line allowed
--mode <serial|parallel> Mass testing to be done serial (default) or parallel (--parallel is shortcut for the latter)
--warnings <batch|off> "batch" doesn't continue when a testing error is encountered, off continues and skips warnings
--connect-timeout <seconds> useful to avoid hangers. Max <seconds> to wait for the TCP socket connect to return
--openssl-timeout <seconds> useful to avoid hangers. Max <seconds> to wait before openssl connect will be terminated
single check as <options> ("testssl.sh URI" does everything except -E and -g):
-e, --each-cipher checks each local cipher remotely
-E, --cipher-per-proto checks those per protocol
-s, --std, --standard tests certain lists of cipher suites by strength
-p, --protocols checks TLS/SSL protocols (including SPDY/HTTP2)
-g, --grease tests several server implementation bugs like GREASE and size limitations
-S, --server-defaults displays the server's default picks and certificate info
-P, --server-preference displays the server's picks: protocol+cipher
-x, --single-cipher <pattern> tests matched <pattern> of ciphers
(if <pattern> not a number: word match)
-c, --client-simulation test client simulations, see which client negotiates with cipher and protocol
-h, --header, --headers tests HSTS, HPKP, server/app banner, security headers, cookie, reverse proxy, IPv4 address
-U, --vulnerable tests all (of the following) vulnerabilities (if applicable)
-H, --heartbleed tests for Heartbleed vulnerability
-I, --ccs, --ccs-injection tests for CCS injection vulnerability
-T, --ticketbleed tests for Ticketbleed vulnerability in BigIP loadbalancers
-BB, --robot tests for Return of Bleichenbacher's Oracle Threat (ROBOT) vulnerability
-R, --renegotiation tests for renegotiation vulnerabilities
-C, --compression, --crime tests for CRIME vulnerability (TLS compression issue)
-B, --breach tests for BREACH vulnerability (HTTP compression issue)
-O, --poodle tests for POODLE (SSL) vulnerability
-Z, --tls-fallback checks TLS_FALLBACK_SCSV mitigation
-W, --sweet32 tests 64 bit block ciphers (3DES, RC2 and IDEA): SWEET32 vulnerability
-A, --beast tests for BEAST vulnerability
-L, --lucky13 tests for LUCKY13
-F, --freak tests for FREAK vulnerability
-J, --logjam tests for LOGJAM vulnerability
-D, --drown tests for DROWN vulnerability
-f, --pfs, --fs, --nsa checks (perfect) forward secrecy settings
-4, --rc4, --appelbaum which RC4 ciphers are being offered?
tuning / connect options (most also can be preset via environment variables):
--fast omits some checks: using openssl for all ciphers (-e), show only first preferred cipher.
-9, --full includes tests for implementation bugs and cipher per protocol (could disappear)
--bugs enables the "-bugs" option of s_client, needed e.g. for some buggy F5s
--assume-http if protocol check fails it assumes HTTP protocol and enforces HTTP checks
--ssl-native fallback to checks with OpenSSL where sockets are normally used
--openssl <PATH> use this openssl binary (default: look in $PATH, $RUN_DIR of testssl.sh)
--proxy <host:port|auto> (experimental) proxy connects via <host:port>, auto: values from $env ($http(s)_proxy)
-6 also use IPv6. Works only with supporting OpenSSL version and IPv6 connectivity
--ip <ip> a) tests the supplied <ip> v4 or v6 address instead of resolving host(s) in URI
b) arg "one" means: just test the first DNS returns (useful for multiple IPs)
-n, --nodns <min|none> if "none": do not try any DNS lookups, "min" queries A, AAAA and MX records
--sneaky leave less traces in target logs: user agent, referer
--ids-friendly skips a few vulnerability checks which may cause IDSs to block the scanning IP
--phone-out allow to contact external servers for CRL download and querying OCSP responder
--add-ca <cafile> path to <cafile> or a comma separated list of CA files enables test against additional CAs.
--basicauth <user:pass> provide HTTP basic auth information.
output options (can also be preset via environment variables):
--quiet don't output the banner. By doing this you acknowledge usage terms normally appearing in the banner
--wide wide output for tests like RC4, BEAST. PFS also with hexcode, kx, strength, RFC name
--show-each for wide outputs: display all ciphers tested -- not only succeeded ones
--mapping <openssl| openssl: use the OpenSSL cipher suite name as the primary name cipher suite name form (default)
iana|rfc -> use the IANA/(RFC) cipher suite name as the primary name cipher suite name form
no-openssl| -> don't display the OpenSSL cipher suite name, display IANA/(RFC) names only
no-iana|no-rfc> -> don't display the IANA/(RFC) cipher suite name, display OpenSSL names only
--color <0|1|2|3> 0: no escape or other codes, 1: b/w escape codes, 2: color (default), 3: extra color (color all ciphers)
--colorblind swap green and blue in the output
--debug <0-6> 1: screen output normal but keeps debug output in /tmp/. 2-6: see "grep -A 5 '^DEBUG=' testssl.sh"
file output options (can also be preset via environment variables)
--log, --logging logs stdout to '${NODE}-p${port}${YYYYMMDD-HHMM}.log' in current working directory (cwd)
--logfile|-oL <logfile> logs stdout to 'dir/${NODE}-p${port}${YYYYMMDD-HHMM}.log'. If 'logfile' is a dir or to a specified 'logfile'
--json additional output of findings to flat JSON file '${NODE}-p${port}${YYYYMMDD-HHMM}.json' in cwd
--jsonfile|-oj <jsonfile> additional output to the specified flat JSON file or directory, similar to --logfile
--json-pretty additional JSON structured output of findings to a file '${NODE}-p${port}${YYYYMMDD-HHMM}.json' in cwd
--jsonfile-pretty|-oJ <jsonfile> additional JSON structured output to the specified file or directory, similar to --logfile
--csv additional output of findings to CSV file '${NODE}-p${port}${YYYYMMDD-HHMM}.csv' in cwd or directory
--csvfile|-oC <csvfile> additional output as CSV to the specified file or directory, similar to --logfile
--html additional output as HTML to file '${NODE}-p${port}${YYYYMMDD-HHMM}.html'
--htmlfile|-oH <htmlfile> additional output as HTML to the specified file or directory, similar to --logfile
--out(f,F)ile|-oa/-oA <fname> log to a LOG,JSON,CSV,HTML file (see nmap). -oA/-oa: pretty/flat JSON.
"auto" uses '${NODE}-p${port}${YYYYMMDD-HHMM}'. If fname if a dir uses 'dir/${NODE}-p${port}${YYYYMMDD-HHMM}'
--hints additional hints to findings
--severity <severity> severities with lower level will be filtered for CSV+JSON, possible values <LOW|MEDIUM|HIGH|CRITICAL>
--append if (non-empty) <logfile>, <csvfile>, <jsonfile> or <htmlfile> exists, append to file. Omits any header
--outprefix <fname_prefix> before '${NODE}.' above prepend <fname_prefix>
Options requiring a value can also be called with '=' e.g. testssl.sh -t=smtp --wide --openssl=/usr/bin/openssl <URI>.
<URI> always needs to be the last parameter.
userid@somehost:~ %
testssl.sh --starttls smtp <smtphost>.<tld>:587 testssl.sh --starttls ftp <ftphost>.<tld>:21 testssl.sh -t xmpp <jabberhost>.<tld>:5222 testssl.sh -t xmpp --xmpphost <XMPP domain> <jabberhost>.<tld>:5222 testssl.sh --starttls imap <imaphost>.<tld>:143The ports in those examples above are just the standard ports. Also here you're free to check any port. //refactor those, see e.g. https://content-security-policy.com/unsafe-hashes/ or just drop tis shit
3.2
3.0