Archive for January, 2010

Tecmo Super Bowl – Modifying the Pro-Bowl Rosters

Friday, January 15th, 2010

This post contains a brief discussion of how to modify a Tecmo Super Bowl (NES) ROM to be able to change the default Pro Bowl rosters.

This data was gathered using data/information from the Tecmo Repository. I used TSBM 1.3 from Emuware to change members on the Pro Bowl roster 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 used TSBM 1.3 to change the starting QB for AFC Pro Bowl team 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.

See my earlier post about modifying Tecmo Super Bowl (NES) for some screen-shots.

I changed the starting QB of the AFC Pro Bowl team from QB Bills to Frank Reich (Bills – QB1 to Bills – QB2). When I opened KDiff3 to see the changes, I noticed that x32854 was changed from x00 to x01. I then changed it from Frank Reich to Jeff George (Colts – QB1). Using KDiff3, I saw that x32853 was now x01, and x32854 was x00. I noticed that it looked like QB1 of the AFC Pro Bowl team was controlled by bytes x32853 and x32854. The first of the two bytes represented the team; the second of the two bytes represented the player.  The team slot values go from x00 (Buffalo Bills) to x1b (Atlanta Falcons). The player slot bytes went from x00 (QB1) to x1d (Punter).

Since each player on the Pro Bowl team is represented by 2 bytes, and there are 30 players on a squad, there are 60 bytes to make one Pro Bowl team. The AFC Pro Bowl starts at x32853. The NFC Pro Bowl team starts at x3288f.

Team Slot Values

  • x00 – Buffalo Bills
  • x01 – Indianapolis Colts
  • x02 – Miami Dolphins
  • x03 – New England Patriots
  • x04 – New York Jets
  • x05 – Cincinnati Bengals
  • x06 – Cleveland Browns
  • x07 – Houston Oilers
  • x08 – Pittsburgh Steelers
  • x09 – Denver Broncos
  • x0a – Kansas City Chiefs
  • x0b – Los Angeles Raiders
  • x0c – San Diego Chargers
  • x0d – Seattle Seahawks
  • x0e – Washington Redskins
  • x0f – New York Giants
  • x10 – Philadelphia Eagles
  • x11 – Phoenix Cardinals
  • x12 – Dallas Cowboys
  • x13 – Chicago Bears
  • x14 – Detroit Lions
  • x15 – Green Bay Packers
  • x16 – Minnesota Vikings
  • x17 – Tampa Bay Buccaneers
  • x18 – San Francisco 49ers
  • x19 – Los Angeles Rams
  • x1a – New Orleans Saints
  • x1b – Atlanta Falcons

Player Slot Values (Assume 2RB, 2WR, 1TE naming – Use Houston Oilers as example – naming does not match the Oilers)

  • x00 – QB1 (Warren Moon)
  • x01 – QB2 (Cody Carlson)
  • x02 – RB1 (Lorenzo White)
  • x03 – RB2 (Ernest Givins)
  • x04 – RB3 (Allen Pinkett)
  • x05 – RB4 (Victor Jones)
  • x06 – WR1 (Haywood Jeffries)
  • x07 – WR2 (Drew Hill)
  • x08 – WR3 (Doug Lloyd)
  • x09 – WR4 (Tony Jones)
  • x0a – TE1 (Curtis Duncan)
  • x0b – TE2 (Gerald McNeil)
  • x0c – C (Jay Pennison)
  • x0d – LG (Mike Munchak)
  • x0e – RG (Bruce Matthews)
  • x0f – LT (Don Maggs)
  • x10 – RT (Dean SteinKuhler)
  • x11 – RE (Sean Jones)
  • x12 – NT (Doug Smith)
  • x13 – LE (William Fuller)
  • x14 – ROLB (Johnny Meads)
  • x15 – RILB (Al Smith)
  • x16 – LILB (John Grimsley)
  • x17 – LOLB (Ray Childress)
  • x18 – RCB (Richard Johnson)
  • x19 – LCB (Chris Dishman)
  • x1a – FS (Terry Kinard)
  • x1b – SS (Bubba McDowell)
  • x1c – K (Tony Zendejas)
  • x1d – P (Greg Montgomery)

So, if we want to put P Greg Montgomery on the Pro Bowl, his two-byte value would be x07 x1d. The x07 for Houston Oilers, and the x1d for the Punter slot. If we wanted to make him the Punter on the AFC Pro Bowl team, we would go to the 59th and 60th bytes of the AFC Pro Bowl team (x3288d and x3288e).

So, to put P Greg Montgomery as the Punter on the AFC Pro Bowl team, we need to make x3288d have a value of x07, and x3288e needs a value of x1d. Theoretically, we could have Greg Montgomery play as the starting QB for the AFC Pro Bowl team if we put x07 x1d starting at x32853 (the QB1 slot of the AFC Pro Bowl team).

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

Thursday, January 14th, 2010

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!