Tecmo Super Bowl is a simple game to hack. Granted, hacking in 2-point conversions or turning TSB into a 7-on-7 streetfight takes some serious know-how, but the basics–changing player names and stats–is as simple as find/replace.
(Granted, you could also download the TSB Tool and gain instant godlike powers over the TSB ROM, but teach a man to fish, right?)
Let’s say you want to be QB Eagles1. All you’ll need is five minutes, a good debugging NES emulator such as FCEUX, and a (legally obtained) TSB rom. TSB is great because it stores player names, menu options, etc. in standard ASCII2 format. This means player names are stored in plain English. Boot TSB using FCEUX, then choose “Debug” → “Hex Editor.” The left two-thirds show TSB’s game code in hexadecimal. The right-hand column shows that hex code translated using the ASCII standard.
From this hex window, choose “View” → “ROM File,” and scroll down a bit. You’ll quickly find the names of every TSB player. Entering your own name (or Anna Kendrick’s) is as simple as clicking on the name in the right-hand column and typing in a new one3.
I told you it was easy.
Even for games that don’t use the ASCII standard, editing non-compressed text4 is a relative breeze. Open any ROM in FCEUX and pause on a screen with text. Opening the PPU Viewer (“Debug” → “PPU Viewer”) displays the game’s alphabet. Hovering over a letter will display its hex value in the ROM. Saving each letter and its corresponding hex value (A=80, B=81, etc) as a .tbl file in WordPad creates what is a called a “table file.” From the hex editor’s file menu, choose “load .tbl file,” and voila! All the game’s text appears in the right-hand column.
Congratulations, you can now edit text in 90% of all NES games. You can fill Peach’s notes in Super Mario Bros. 3 with enough filth to make 50 Shades of Grey seem like Dr. Seuss.
Hacking player attributes requires just a bit of know-how. Let’s say you feel bad for Eagles’ O-lineman Ron Solt and want to max out his power and quickness. The only trick here is knowing how TSB stores player data. Solt has 25 RS, 69 RP, 19 MS and 38 HP. Every stat in TSB is stored as a single hex number (or “bit”). To find that number, divide the stat by 6, round down to the nearest whole number and then subtract one. So Solt’s RP in TSB’s code is (69/6)-1, or 10. Since hexadecimal numbers 10-16 are written A-F, Solt’s 69 RP is an A in TSB’s hex. Using the same formula, his 25 RS is 3, his 19 MS is 2 and his 38 HP is 5.
Due to how TSB loads player data, the first two stats in every player’s page are swapped. Instead of the expected 3A 25, Solt’s stats in TSB’s hex are A3 25. Searching A3 25 in FCEUX’s hex editor will point you to players with 19 MS and 38 HP. Simply change A3 to FF, back out of Solt’s screen, and then return. If he now has 99’s, congrats! You’re a Tecmo Super Hacker. If not, find the next A3 25 and try again until you find Solt5.
By converting TSB stats to their single numbers and searching the hex, you can find and change any player in the game. And just for quick reference, here’s the chart of TSB player stats and their corresponding values in the game code:
Even more complex tasks such as graphics editing essentially boil down to translating to hex and swapping out values. Tecmo hacker extraordinaire Dave “Bruddog” Brude likens hacking to assembling a jigsaw puzzle. Names and stats are the edge pieces of the puzzle, relatively easy to find and snap together.
With FCEUX and just a few minutes, anyone can build the TSB team of their dreams.
1 Because, really, who doesn’t want to be QB Eagles?
2 ASCII stands for American Standard Code for Information Interchange. Since computers can only understand numbers, the ASCII standard translates code to alphanumeric content when needed.
3 For now, you’ll be limited to the length of the name you’re replacing.
4 Editing compressed text–which won’t simply appear in a hex editor–requires a decent understanding of computer programming and is a pain in the ass.
5 Just FYI, Ron Solt’s stats are at address 0x03798 – 0x0379A in TSB’s ROM.The third byte, 48, controls his player picture. For more complex players like QB Eagles, there are two bytes of stats (same as Ron Solt) one byte to control the player picture, and two more bytes of stats.