Tecmo Super Bowl – Modifying the Default Kick Returners and Punt Returners

This post contains a brief discussion of how to modify a Tecmo Super Bowl (NES) ROM to be able to change the default kick returners and punt returners for the various teams.

This data was gathered using data/information from the Tecmo Repository. I used TSBToolSupreme to change default kick returner since this application had the functionality. I then used the hex editor, Translhextion, which I most likely downloaded from Zophar’s Domain.

I opened the original ROM in Translhextion and exported as “hexdump” to a text file. I then changed the default kick returner for the Buffalo Bills and applied my changes to a copy of the original ROM. I then opened my altered ROM in Translhextion and exported as “hexdump” to another text file. To see what changed, I used a “diff” program called KDiff3 (a free download) to compare the two text files.

Image of TSBToolSupreme. The ROM is loaded, and we are viewing the contents.

Image of TSBToolSupreme. The ROM is loaded, and we are viewing the contents. The highlighted value is what was changed from 'RB4' to 'RB3'

Translhextion_ExportAsHexDump

Using Translhextion to "Export as hexdump..."

KDiff_KRPR

Using KDiff3 to see the changes that were made

At this point, I did a search for x239d3 (which was another location where a value had been changed) on the Tecmo Repository message board. I was able to find a post by jstout that confirmed that this was the correct location.

There are two key locations in the ROM (which includes the 16 (x10) byte NES ROM header): x239d3 and x328D3.

  • x239d3 through x239EE (inclusive) represents the KR and PR for the 28 teams when loading the ROM or using “Data Reset” at the “Starter Screen”
  • x328d3 through x328EE (inclusive) represents the KR and PR for the 28 teams when using “Season Reset” at the “Schedule Screen”

The teams go in order: x239d3/x328d3 is Buffalo Bills through x239ee/x328ee is Atlanta Falcons (e.g. AFC East, AFC Central, AFC West, NFC East, NFC Central, NFC West).

One byte represents both the KR and PR. The first nibble represents the KR; the second nibble represents the PR. For example, at x239d3, the Buffalo Bills have a value of x59. The first nibble is ’5′ and the second nibble is ’9′. So, the KR is represented by ’5′, and the PR is represented by ’9′. The value here corresponds to the slot number on the roster.

  • QB1 is slot 0
  • QB2 is slot 1
  • RB1 is slot 2
  • RB2 is slot 3
  • RB3 is slot 4
  • RB4 is slot 5
  • WR1 is slot 6
  • WR2 is slot 7
  • WR3 is slot 8
  • WR4 is slot 9
  • TE1 is slot 10 (xa)
  • TE2 is slot 11 (xb)

The slot order is as we would see on the “Team Data” screen for a team.

So, the KR for the Buffalo Bills is represented by the first nibble of the byte at x239d3. The value there is ’5′. The value there represents the slot number on the roster. Slot 5 on the roster corresponds to RB4.

Also, the PR for the Buffalo Bills is represented by the second nibble of the byte at x239d3. The value there is ’9′. The there represents the slot number on the roster. Slot 9 on the roster corresponds to WR4.

If we change the value at x239d3 to be ‘x27′, we would see the KR as RB1 (Thurman Thomas) and the PR as WR2 (Andre Reed). Theoretically, we could put QB Bills as the KR and PR by changing the value to ‘x00′ at x239d3!

Tags:

Leave a Reply