Jump to content
NHL'94 Forums

kingraph

Admin
  • Posts

    5,902
  • Joined

  • Last visited

  • Days Won

    192

Everything posted by kingraph

  1. Depends. I think (pretty sure) the way the image "size" works with regards to the impact on memory is the number of tiles loaded for the image, not necessarily what is displayed. For example, let's say an image uses 100 tiles that are all displayed in a 10x10 layout. You then reduce the image to a 10x9 image (90 tiles) and make the remaining 10 unused tiles transparent. The displayed picture will be 90 tiles, but the game still loads all 100 tiles. No effective change to image size on the memory. If, however, you instruct the game (change the header) to load only 90 tiles and then display those 90 tiles, you've effectively changed the size of the image and freed up some memory. In that regard, you wouldn't even have to bother making the unused tiles transparent because they never get loaded to begin with.
  2. Interesting, I found a similar type of 8-byte pattern dealing with the Stanley Cup animation that @von Ozbourne mentioned above in my '95 ROM project. It was way-back-when, but here were my notes on how the 8-byte pattern in case you find this useful/correlates: https://forum.nhl94.com/index.php?/topic/18130-nhl95-expanded-rom-project/&do=findComment&comment=170815 Much of the coding I found in '95 worked in the same way as '94, so hopefully it helps. Side note - my goal for the particular piece of the project was to reduce the size of the image used for the cup as it was causing an overload of the banner image. I ended up shrinking the total size by just repeating the same 4 cup images, but technically the code was still changing images (i.e. spinning). So I never really changed it to a static image.
  3. Not only does this ROM looks SICK (those player photos...🤤), I absolutely love the style of your posts. The layout and attention to detail, so perfect, thank you.
  4. Also - you did ALL (?) the player cards? Not just starters...jeez!
  5. Wow this looks amazing!
  6. kingraph

    bloody head

    I know
  7. kingraph

    bloody head

    I think the post-whistle fighting only exists in NHL Hockey (i.e. "92"). I don't think you can have the head bleeding for the reasons you lay out. The head bleed happens on injury. And I've never seen that in '94 (tens of thousands of games) because once the player goes down for an injury, the puck doesn't go in the net. I've seen that on breakaways where the player gets the puck past the goalie, runs into the goalie causing an injury to himself, and the puck stops at the goal line
  8. Not sure what you are asking specifically, but generally leagues are all posted on nhl94online.com All, or at least most of the communication is done in the NHL'94 Discord these days - https://discord.gg/H7vrytU If you're not familiar, this is basically a giant chat room. You can log in through a browser if you don't want to or can't install the Discord App. In general, leagues usually have a regular season that lasts somewhere between 4-6 weeks. You find time to play your games by posting in Discord when you're available, or contacting your opponents via a direct message to arrange a date/time to play. It is pretty casual in that regard, most people are respectful of time commitments. I think the basic ask is if you're in a league to remain in communication to let everyone know what's happening. If you have a vacation/family/work/etc commitments, just let everyone know, but strive to complete your games. Then playoffs happen in a similar manner, though we try to get those done timely. What's pretty cool over the last few years is that a lot of people stream their games on Twitch, or have a 3rd person stream the game and commentate. It adds a lot of fun to the community. Hopefully that answers your question.
  9. @wboy's Player Card Tutorial confirms some answers to questions we had. When a graphic has the "0000 0000 0000 0000" in the header, this "instructs the game to use the standard palette and tile layout as seen in the first player card template". I believe the same for other graphics. Nice to know we had these answers nearly 19 years ago, lol, from the GOAT of '94 hacking! ––– PLAYER CARD DATA STRUCTURE ––– The first 10 bytes of every player card contains 4 bytes which store the offset (plus) value of the palette data, the next 4 bytes which store the offset (plus) value for the tile layout data, and finally the last 2 bytes that store the amount of tiles used by the player card. Immediately after (and also the offset used to correctly see the player card in TM) is the "3bpp linear" tile data. Its length is determined by the amount of tiles used by the player cards. The first player card in both year's ROMs is effectively the template used by the majority of player cards, all of which do not have any shared tiles. These player cards are easily identified as their header value always 00000000 00000000 0024. Setting the value 00000000 to either the palette offset (plus), or the tile layout offset (plus) instructs the game to use that standard palette and tile layout as seen in the first player card template. As these player cards use the template, they do not store any palette and tile layout data after the "3bpp linear" tile data. For the minimal amount of player cards with shared tiles, you will notice they each player card carries their own repeat of the palette data, and also their individual configuration for the tile layout data, as it needs to instruct the ROM which shared tile is repeated else where. This data is similar to the format used by the rink layout data, with values from 2000 though 2023 used to map out the layout of the tiles. The first 4 bytes of the tile layout data is always 0006 0006, most probably instructing ROM the player card is 6x6 tiles.
  10. I think the number of colors will be okay as the game displays 64 colors (4 palettes of 16). The trick, as you mention will be that the cards would have to share at least 8 colors with another part of the screen. And since the cards are displayed in multiple areas (start screen, matchups, player profile), I haven't even checked if those areas also have the same palette that can be used. Yes, and as Smoz said, it seems to be the size of the picture (i.e. number of unique tiles) rather than the layout. Sometimes I have found that a picture is actually loading more tiles than are actually used in the game. For example, you can see a picture that loads with 30 tiles, but the layout only references 28 of them. The other 2 are actually loaded, but never used. It sounds like that is what happened in your case. Now, if you were to load up a new picture with 31 tiles, that's where the RAM limitations may come into play. That's what I ran into on the banners in my '95 expansion hack. The banners, although only 2x16 displayed, is actually loading the entire 28 teams banner picture! Adding to that caused the RAM limits to hit.
  11. In my other tutorial referenced above, I explain that in the 4bpp format, each byte represents 2 pixels. Each of the digits in the byte represents what palette color the pixel will show. So to show 8 pixels, you would need 4 bytes. In the 3bpp format, the code to show 8 pixels is found in just 3 bytes, saving space! I wanted to see how this was done in the code and share in case anyone was curious. Every 4 pixels is represented by 1.5 bytes (3 hex numbers). This chart shows the value of each of the 4 pixels across the 8 colors (0-7): Depending on which palette colors are chosen for the 4 pixels, you just add up the values in the above chart to get your 3 digit hex number. So let's say the first four pixels were palette color 3 (600) palette color 7 (1C0) palette color 5 (028) palette color 2 (002) You would add those up to get 7EA (8+2=A, C+2=E, 6+1=7). So this does save a tremendous amount of space in something like player cards, as we mentioned above. To full flesh out the math on a single player card: There are 64 pixels in each tile, each player card is 6x6 tiles, so that's 2,304 pixels of information needed for every player card (6*6*64). In 3bpp format, you need 3 bytes for every 8 pixels, so that requires 864 bytes (2304/8*3). The same image in 4bpp would need 1,152 bytes (2,304/8*4), or 33% more bytes!
  12. Currently the lowest number on our records, with the exception of the 00001 Mark Lesser edition.
  13. It's be 33% more data for each player photo. So a 3bpp player photo takes up 864 bytes of data (36 tiles x 24 bytes/tile) whereas a 4bpp would be 36x32 or 1,152. There would still be room for the player cards, but I'm not sure if enough for 700+ or whatever some of the modern roster ROMs did. This is cool though...if I tinker around this more I'll post here to share.
  14. Reference for some more in depth reading: HOW TO "Decompress" Graphics in Sega Genesis The header for most graphics is * First 4 bytes are usually the data length of graphic in Hex, including the header 10 bytes. So in this case "0000 033A" is 826 bytes. * The next 4 bytes usually lead to the end of the palette location, or another 128 bytes more. "0000 03BA" is 954 (128 more). * The last 2 bytes represent the number of tiles in the graphic. In this case, I believe it's 22, which means the number of tiles used in the graphic is 34. Normally each tile uses 32 bytes of data. Tiles are 8x8 pixels and each 2 bytes represents a color. Because the player photos are coded in 3bpp, the size of each tile is only 24 bytes. So the total for this graphic is 34 tiles x 24 bytes = 816, plus 10 for the header and we get to 826 (033A). Then there is 128 bytes for the second section. What I actually THINK is happening is that the first part of the header gives the number of bytes to jump to the next offset where the palette starts. The next set of bytes jumps to the start of the layout (0006 0006) or 6x6. For player cards, the 0000 0000 0000 0000 in the headers would suggest that the game just uses the same palette and/or size. I notice the same with header logos that share a palette, the first and second parts of the header are the same as they share a palette. But the size is still included. My guess is in case there are shared tiles and the actual sizes are different. Having said all of that, to address your original question, if you wanted to increase the number of colors in player portraits you will first have to change the coding from 3bpp to 4bpp. Meaning, the game is coded to know that the player cards are graphics that use 3 bytes per pixel, which saves space. First you'd have to find and understand how that function in the game works, change it to 4bpp if possible, and then recode the player graphics to 4bpp format. I have no idea if it's possible, but this will be a pretty technical exercise.
  15. GDL has been replaced by CDL (Chaos Draft League), and TomKabs (along with most of the chatter) is in Discord these days.
  16. Man, I know @clockwise had done this hack (changing puck color to home team) in his ROM updates years back. I can't find the info though.
  17. This visual was money...made me laugh out loud.
  18. Thank you! Your clarity, organization, and helpfulness is off the charts. This is just beautiful work.
  19. Sorry, I did a fly by and didn't realize this was not '94 related.
  20. This is conjecture.
  21. https://discord.gg/sVebykMWbJ
  22. Also fun fact -- the "High Score" splash actually uses multiple palettes (that orange part in the globe) in the original ROM, so it's not possible to do a direct copy of that splash in the 30 team without slightly modifying. Not sure how you did it, but nobody would ever notice that nuance.
  23. For what it's worth, attached is the exact rip of the nhl and nhlpa shield from the game.
  24. The layout of the scoreboard logo is BDD44. I highlighted the tiles here: I also noticed that my original post had the incorrect palette. Or at least I believe the palette on the scoreboard logo is 776934 (2nd palette). The 3 stars and scoreboard have separate palette locations.
  25. My original favorite player for Sega was Russ Courtnall. And probably still is, but it's evolved over these years more into a love/hate relationship lol. My original feeling (almost 30 years ago???) was that he wasn't an all-star or top player in the game. He was this hidden gem on a team that was also not recognized as a top team (Dallas Stars). I prefer righty shots on the LW, and SPEED is the most valued attribute, so he was the perfect player. I always loved dominating with Russ and the Stars because it provided more legitimacy than winning with the Blackhawks, Red Wings, etc. When I stumbled into this community back in Spring'11, I used the Stars in Classic. Probably not a coincidence. Thanks to this community, I've amassed more knowledge about players and attributes than any normal person should know. And one thing that troubles me with Russ now is his poor stick handling skills (3 rated out of 6). Stick handling affects the ability of a player to handle a pass. So with Russ, you'll notice that many passes bounce off his skates. It's frustrating, and requires some patience and adjustments when you play with him. But since we go way back, I think I still have a soft spot for him and would be my favorite player for that reason. PLUS, @chaos got Russ to do a Cameo appearance for me to start CDL 05! As far as SNES, I stink and have no idea.
×
×
  • Create New...