Jump to content
bruddog

Question for GRG about last byte small helmet pointers

Recommended Posts

I reversed engineered your graphics hack to figure out where the small helmet and large helmet pointers are. However I'm confused about how the last byte for the small helmets works. It seems to control both the helmet pallete set used as well as what sprite overlay to use(i.e Chicago C, Falcons symbol, etc). Also is there any way to change which pallette set that the overlay uses? I can probably figure it out eventually but just figure its faster to ask sicne you must already know.

Share this post


Link to post
Share on other sites

I know that your post is directed towards GRG, but I figured I'd reply with what I know, since I've been messing around with mini helmets a lot lately.

You actually didn't have to reverse engineer anything, since GRG already posted information about mini helmet pointers here.

You said you already figured out the first four bytes, but I'll go over everything for the benefit of others in the forum. The hex data for the helmets start at offset 23BC6 and end at 23C51. Each team is assigned 5 bytes, each byte made up of two hex digits. For those technically challenged, this means that each team is assigned 10 hex digits. Here are the default hex data from the original TSB ROM:

BUF: 94 95 96 8B 00

IND: 88 89 8A 8B 00

MIA: C0 C1 AB 83 07

NE: 90 99 9A 9B 00

NYJ: BC BD 97 8B 3B

CIN: A8 A9 AA 8B 01

CLE: CC CD CE 00 09

HOU: 98 99 9A 9B 00

PIT: 8F 89 8A 8B 0D

DEN: 9E 9F A2 8B 00

KC: 9C 9D 97 8B 00

RAI: B0 B1 B2 9B 01

SD: BA BB 82 83 02

SEA: 86 87 82 83 10

WAS: 93 A1 A2 8B 16

NYG: A0 A1 A2 8B 00

PHI: BE BF 97 00 1B

PHX: 8C 8D 8E 83 1C

DAL: 80 81 82 83 00

CHI: 8F 89 8A 8B 21

DET: 84 85 82 83 00

GB: A3 A7 B7 9B 27

MIN: D2 D3 00 00 2A

TB: AE AF B3 83 2D

SF: A4 A5 A6 83 30

RAM: B4 B5 B6 83 02

NO: AC AD A2 8B 31

ATL: 8F 89 8A 8B 35

The first byte (two hex digits) corresponds to the pointer for the upper-left helmet tile (where most, if not all, of the logo is located), the second byte corresponds to the pointer for the upper-right helmet tile, the third byte corresponds to the pointer for the lower-left helmet tile, and the fourth byte corresponds to the pointer for the lower-right helmet tile, or facemask. Some teams share tiles since parts of their helmets are the same. For instance, both Buffalo and Indianapolis use identical facemasks, so both of their fourth byte values are 8B, the same facemask tile. Hex value 00 points to a blank tile, which may seem strange, until you understand how the fifth byte works. The fifth byte for each team corresponds to the palette used, the tile overlay or underlay (if any, more on this later), and other special enhancements such as overlayed stripes and/or facemasks. Here is a list of fifth byte values followed by explanations on what each does:

00 - changes palette to transparent, red, blue/gray, and white

01 - changes palette to transparent, gray, orange, and black

02 - changes palette to transparent, white, dark blue, and yellow

03 - changes palette to transparent, dark green, aqua blue, and white

04 - same as 00, but overlays the Miami Dolpins' logo tile (1 tile)

05 - same as 01, but overlays the Miami Dolpins' logo tile (1 tile)

06 - same as 02, but overlays the Miami Dolpins' logo tile (1 tile)

07 - same as 03, but overlays the Miami Dolpins' logo tile (1 tile)

08 - same as 00, but gives the overall helmet a white stripe across the top and a white facemask (like what the CLE helmet uses)

09 - same as 01, but gives the overall helmet a white stripe across the top and a white facemask (like what the CLE helmet uses)

0A - same as 02, but gives the overall helmet a white stripe across the top and a white facemask (like what the CLE helmet uses)

0B - same as 03, but gives the overall helmet a white stripe across the top and a white facemask (like what the CLE helmet uses)

0C - same as 00, but overlays the Pittsburgh Steelers' logo tiles (2 tiles)

0D - same as 01, but overlays the Pittsburgh Steelers' logo tiles (2 tiles)

0E - same as 02, but overlays the Pittsburgh Steelers' logo tiles (2 tiles)

0F - same as 03, but overlays the Pittsburgh Steelers' logo tiles (2 tiles)

10 - same as 00, but overlays the Seattle Seahawks' logo tile (1 tile)

11 - same as 01, but overlays the Seattle Seahawks' logo tile (1 tile)

12 - same as 02, but overlays the Seattle Seahawks' logo tile (1 tile)

13 - same as 03, but overlays the Seattle Seahawks' logo tile (1 tile)

14 - same as 00, except creates a red helmet background, then underlays the Washington Redskins' logo tile (1 tile)*

15 - same as 01, except creates a red helmet background, then underlays the Washington Redskins' logo tile (1 tile)*

16 - same as 02, except creates a red helmet background, then underlays the Washington Redskins' logo tile (1 tile)*

17 - same as 03, except creates a red helmet background, then underlays the Washington Redskins' logo tile (1 tile)*

18 - same as 00, but overlays the Philadelphia Eagles' logo tiles (2 tiles) and gives the helmet a blue/gray facemask

19 - same as 01, but overlays the Philadelphia Eagles' logo tiles (2 tiles) and gives the helmet a blue/gray facemask

1A - same as 02, but overlays the Philadelphia Eagles' logo tiles (2 tiles) and gives the helmet a blue/gray facemask

1B - same as 03, but overlays the Philadelphia Eagles' logo tiles (2 tiles) and gives the helmet a blue/gray facemask

1C - same as 00, but overlays the Phoenix Cardinals' logo tile (1 tile)

1D - same as 01, but overlays the Phoenix Cardinals' logo tile (1 tile)

1E - same as 02, but overlays the Phoenix Cardinals' logo tile (1 tile)

1F - same as 03, but overlays the Phoenix Cardinals' logo tile (1 tile)

20 - same as 00, but overlays the Chicago Bears' logo tile (1 tile)

21 - same as 01, but overlays the Chicago Bears' logo tile (1 tile)

22 - same as 02, but overlays the Chicago Bears' logo tile (1 tile)

23 - same as 03, but overlays the Chicago Bears' logo tile (1 tile)

24 - same as 00, except creates a yellow helmet background

25 - same as 01, except creates a yellow helmet background

26 - same as 02, except creates a yellow helmet background

27 - same as 03, except creates a yellow helmet background

28 - same as 00, except creates a purple helmet background

29 - same as 01, except creates a purple helmet background

2A - same as 02, except creates a purple helmet background

2B - same as 03, except creates a purple helmet background

2C - same as 00, except creates a white helmet background

2D - same as 01, except creates a white helmet background

2E - same as 02, except creates a white helmet background

2F - same as 03, except creates a white helmet background

30 - appears to be the same as 24

31 - appears to be the same as 25

32 - appears to be the same as 26

33 - appears to be the same as 27

34 - same as 00, but overlays the Atlanta Falcons' logo tile (1 tile)

35 - same as 01, but overlays the Atlanta Falcons' logo tile (1 tile)

36 - same as 02, but overlays the Atlanta Falcons' logo tile (1 tile)

37 - same as 03, but overlays the Atlanta Falcons' logo tile (1 tile)

38 - same as 00, but gives the helmet a black facemask

39 - same as 01, but gives the helmet a black facemask

3A - same as 02, but gives the helmet a black facemask

3B - same as 03, but gives the helmet a black facemask

3C - same as 00, but causes distortion in many other tiles

3D - same as 01, but causes distortion in many other tiles

3E - same as 02, but causes distortion in many other tiles

3F - same as 03, but causes distortion in many other tiles

After 3F, it appears the hex values simply repeat themselves, with 40 being the same as 00 and so on. If someone wants to test this all the way to FF, be my guest.

Now about the tile overlays. I don't know how to change the palettes for the logo tiles yet, but I have figured out what the palettes are for each team logo tile overlay:

MIA: transparent, red, black, orange

PIT: transparent, yellow, red, white

SEA: transparent, blue/gray, green, purple

WAS: this is a wierd one, I'll talk about later

PHI: transparent, blue/gray, green, purple

PHX: transparent, red, black, orange

CHI: transparent, red, black, orange

ATL: transparent, white, gray, white

OK, now about the Washington Redskins logo colors. Recall that I said fifth byte hex values 14 through 17 actually underlay the tiles instead of overlay them. This is admitedly very confusing. What happens is when a fifth byte hex value is 14 through 17, a red helmet background is first layed out, then the helmet tiles are overlayed on top of it, then the Washington Redskins' logo tile is inserted in a strange way. If a pixel in the logo tile is of the first color in the palette, then no overlay occurs, making its color transparent. If a pixel in the logo tile is of the second color in the palette, then overlay only occurs if the pixel it would overlay in the helmet tile is transparent, and its color would then be red. If a pixel in the logo tile is of the third color in the palette, then overlay occurs regardless and its color is black. If a pixel in the logo tile is of the fourth color in the palette, then overlay only occurs if the pixel it would overlay in the helmet tile is transparent, and its color would then be orange.

I don't expect many to understand the above paragraph simply by reading it. My advice to those who don't understand is to experiment with the Washington Redskins helmet tiles and logo tile using Tile Layer Pro and a hex editor, then you'll see what I mean.

One last note about the helmet tiles. It appears that any tile between pointer 80 and D3 can be referenced in the first four bytes. For instance, if you changed Buffalo's first four bytes to 94 94 94 94, then you would see a wierd pattern on the team data screen where all four corners of the helmet would resemble the upper-left corner. This is especially helpful when you are editing helmets and you need to create a tile for the upper-right part of the helmet but the only tile you have free is for an unused facemask tile. Simply change the facemask tile to resemble the upper-left part of the helmet you wish to create, then point to it using a hex editor.

I hope this post was helpful, and that most people are able to wade all the way through it.

Share this post


Link to post
Share on other sites

I think I had dug up that post before in a search but mus not have scrolled to the bottom or something. Dumb of me.

Thanks man. You confirmed my thought that the last byte had to be a combination of pallete and overlay. And you got into my next question of where the logo palletes are located. Not that it matters all that much. More info to add to the hacking guidebook.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×