How-to: Change the Colour Palette for the Puck & more (NHL '94)
The Journey
I couldn't stop thinking about this. I obsessed over the code for a few hours and eventually got too frustrated, so I went for a short walk. When I sat back down I looked at my notes again, and it hit me…
Assume, for arguments sake, that the puck tiles are referenced using a 16 column grid, and similar syntax to the other major tile groups.
Seeing as the puck tiles are amidst the sprite tiles, let's assume that the very first sprite tile is x000.
Counting from this registration point, that would mean that the code that references the puck tiles, would likely be specified as "02F5" to "02FC."
Doing a search for "02F5" yields only two results, and the first result is followed by "02F6," six-bytes later, and then "02F7" six-bytes, after that, etc.
The next two bytes after these potential tile references are either "0000" or "0800". If you don't know what this means, read this post to understand.
There's more here than just the puck. I believe that using this logic to navigate this section of code has untapped potential to modify some previously out of reach elements. So far, the quick tests I've done have seemed to support that notion.
I make no claims that this is complete, but I have the elusive "Home Team Colour" puck seemingly working right now. I'll leave the rest up to whoever can take on the next leg of the journey. I'm done my quest for now.
Home Team Coloured Puck
0xA1670
00 to 40
0xA1678
00 to 40
0xA1680
00 to 40
0xA1688
08 to 48
0xA1690
00 to 40
0xA1698
00 to 40
0xA16A0
08 to 48
0xA16A8
08 to 48
0xA16B0
08 to 48
0xA16B8
08 to 48
Resources
If you don't understand what this code is doing, check out this post which will teach you the basics, and so much more.