Jump to content
NHL'94 Forums


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by kingraph

  1. This ROM was ultimately used to release the Tucson Roadrunners 2024-25 schedule Thanks again for all the help to make this happen!
  2. CDL 09 Official ROM:CDL_season_09.bin 26 Drafted Teams of 12 players! Hot/Cold Reduced to "Warm/Cool". Boosts are limited to +1, 0, -1 vs original ROM -3, -2, -1, 0, 1, 2 1 minute penalties 12 second Penalty Shot Time (reduced from 25) Body Checks after whistle don't count in stats +/- stat added for boxscores Reduced time to switch to Manual Goalie Slightly Increased Goalie Roaming Range Boosted Goaltenders - All goalies get +1 to Agility and Stick/Glove Ratings, except Roy & Belfour 312 Updated Player Cards All 12 player cards cycle on start menu 26 Unique Teams Drafted by these rather dapper gentlemen: Eddie Belfour graces the cover in his Sharks uniform! Commissioner @chaos returns to the announcing action Updated menu screen featuring some familiar backgrounds from NHL '96 Pringles has sponsored CDL 09! ESPN remains the 3 stars of the game sponsor:
  3. I connected with @chaos on Discord and he helped confirm that the game logic described above is correct. So the implications that you guys are describing with regards to how often a matchup is selected, based on where the teams are located in the table, will also be correct.
  4. Instructions from 00011086 to 000110B8, comes up with a value in data register D0.
  5. This intrigued me, so I did a little research into how this works as I didn't see anything on the forums. From what I can tell, there definitely seems to be a random element. The code loads up the playoff draw table Then (apparently) a random number, always a multiple of 16, is added This essentially selects a random playoff draw from the 32 playoff draws from the table by creating that new offset. The game first checks if the Team 1 is less than 25 (which is 26 teams given we start at 0). This was the limit for "no all-star teams", which since has been hacked away to allow for all 30/32 teams to be selected. Game checks if Team 1 is listed in the playoff draw row, going incrementally from 1-16 If Team 1 isn't in that playoff draw (i.e. after 16 instances), it loads up the next playoff draw row and starts again Once Team 1 is found, if finds the opposing team and loads Team 2. I started the original '94 game from the beginning and traced 3-4 times from the start with Montreal and had different outcomes each time. Meaning, the entire sequence was the same, but the "random" assignment changed. I also selected the next team, NJ, and the random number changed again. So I can't confirm if the number is truly random, but the code where that number is generated is a lot of multiplication and the infamous $D066 RAM value is called, which from what I remember @chaosnoted is used in the RNG calcs. So I feel pretty confident that it's meant to be RNG, and I'm not going to decipher more of this .
  6. Current working ROM is here: AHL_24_beta_05.bin So incredibly grateful for the pixel Picasso @von Ozbourne and @smozoma's help. This could be a good base for anyone looking to complete an AHL ROM.
  7. Posting here for posterity: https://www.youtube.com/watch?v=HF449QxbBqQ
  8. I took some time to create a cover page that pays homage to the original. I will redo the AHL shield as I realized that an older logo that I just stuck in there. But anyway, more progress on this ROM. I'll post the template once all the team logos are incorporated.
  9. Ooooh, that looks amazing. I'd go with that one!
  10. Just to be clear -- though not posted, Hershey, Rockford and Milwaukee were previously done by me for other leagues: I'm keeping the OP updated as to what teams are left so we are not accidentally duplicating efforts
  11. Here's an alternative Admirals logo I found and used because the text was too much. I think it looks great And the ice logo (not asking for those here) was the name:
  12. I CAN'T BELIVE I MISSED THESE POSTS! I feel so dumb With regards to the text in logos, I agree, I have removed the text myself if I couldn't find a logo without text. Sometimes it's not so bad, like the Ice Hogs I say go for whatever you feel looks good!
  13. These are looking great even when I knocked off a color:
  14. I messed up - the first color is transparent, so also unusable. So it's really 9 colors plus black/white. My bad!
  15. This has been wonderful! Thank you @smozomaand @von Ozbourne! I wanted to let you know how much I appreciate your time and efforts so far! This project WILL be completed...I should have some time after this weekend to get out a ROM:
  16. I've added the teams in my OP -- looks like a few teams I have done previously. So there's a start!
  17. For team logos - one color will be white and one black. Then you have 10 other colors you can use. 4 are unusable as they are used for the home/visitor banner colors.
  18. An AHL team may be looking for a fun NHL'94 way to introduce their season via social media. In short, I think getting a base ROM with the AHL team logos set up is what would be needed as a start. There's no need for in depth player ratings, or even roster updates at this time. I personally don't have enough time on my plate to knock this out, so I'm seeing if there's anyone interested in collaborating. 32 teams, would be better if 4 people knocked out 8 teams each or even better 8 people did 4! You can PM me if interested or respond here. Abbotsford Canucks Bakersfield Condors Belleville Senators Bridgeport Islanders Calgary Wranglers Charlotte Checkers Chicago Wolves Cleveland Monsters Coachella Valley Firebirds Colorado Eagles Grand Rapids Griffins Hartford Wolf Pack Henderson Silver Knights Hershey Bears Iowa Wild Laval Rocket Lehigh Valley Phantoms Manitoba Moose Milwaukee Admirals Ontario Reign Providence Bruins Rochester Americans Rockford IceHogs San Diego Gulls San Jose Barracuda Springfield Thunderbirds Syracuse Crunch Texas Stars Toronto Marlies Tucson Roadrunners Utica Comets Wilkes-Barre/Scranton Penguins
  19. Is the goal crease that you want already done in other 94 ROMs? The reason I ask is it will likely be a matter of updating tiles, which I can help with. If not, drawing new creases could be quite an exercise. No idea about everdrive, I'd be googling no different than anyone else.
  20. FYI, the NHL Hockey Source code was released a few weeks ago. It's a GOLD mine of information. https://archive.org/details/nhl-hockey-source-code-sega-genesismegadrive If you hop back on the Discord, there's a bunch of discussion and updates happening there.
  21. Interesting! If I wanted to always call a penalty shot do you know if you can set the breakaway flag to essentially always be on? @Sebe_The_Legend asked for this in Sega, to make a 3v3 ROM with every penalty being a penalty shot. So this is great work that will be applicable to that hack!
  22. Love the work you've been doing and documenting. LOVE
  23. This thing is SWEET, thank you Chaos.
  24. This post will give you more information than you ever wanted to know about the 2nd splash screen ("High Score Productions") in the original NHL'94 ROM. It's a little more unique that it appears, and I'll also explain what @wboy did to make this particular image much easier to modify. The first thing to note is that the original splash is actually two images that are overlayed on top of a background. Image 1 is the High Score Logo (this is the exact image ripped from the ROM): And the 2nd image is "Mark Lesser Presents" You'd never really notice because the images don't actually overlap and the background used is black. Location The location of the first image is at offset: F4378. This is the header. The header is 10 bytes long, and the tiles will start right after. The first part is the header in green. The values are 00000DEA 00000E6A 006F. I will start with the right 2 bytes. 006F is the number of tiles (in hex) that will be loaded for the graphic, not necessarily how many will be used. It turns out all the tiles in this splash screen are used, but I mention this because that is sometimes not the case with other graphics. 006F is 111 tiles. The purple section (which I truncated), is the image data for those 111 tiles. This is much better seen in Tile Molester. Here is the graphic tiles (purple section) represented in Tile Molester. I added the red numbers as those are how the tiles are numbered in hex, and that will be referenced later. I will also explain how I got that palette information. Back to the header. The first 4 bytes provide an relative offset from the header to where the palette is located. The value "0DEA" in hex is 3,562 in decimal. This is how many bytes from the header to where you'd find the palette offset. Adding ODEA (3,562) to F4378 (1000312 in decimal) gives you F5162 (1003874). That's the starting location of the palette, which I highlighted in that greyish tone. For some reason in Tile Molester v0.16 you need to input the palette offset in decimal. In later versions like v20 you can just use the hex offset. So now we have the palette used in these graphics: Quick note on data length. One graphic tile uses up 32 bytes of data. So when you have 111 tiles, as we do above, that equates to 3,552 bytes of data. Adding 10 for the header to that number and we get 3,562, or 0DEA in hex, our first value in our header. The second value in our header is 00000E6A. This is the relative offset to get to the size of the image in width x length. The value is 128 bytes more than the first value, which is the length of our palette. The location is F51E2, you can do the same math if you like above. The size will be 2 bytes for width and 2 bytes for length. I highlighted this in orange, and the value is 000D 000D, which is 13x13. So now we know we have a 13x13 image (169 tiles) that will be filled up with the 111 tiles that are loaded. The next part of the data is the layout of those tiles. That's the part that I highlighted in blue. While you don't necessarily need to read this for this post, @AdamCatalyst did a wonderful job explaining tile layout code here: Understanding How Layouts Are Specified Fortunately this layout is very simple and I will explain the basics. The first digit in the tile layout tells us what palette color the tile will be colored in. 0 = Palette 01 2 = Palette 02 4 = Palette 03 6 = Palette 04 The next 3 digits will be the tile number in the selected graphic in hex. The TM screenshot I have above has the red hex value of the tiles overlayed as a reference. Note that the last actual tile is 6E (111th tile, we start at 00). I put the layout in a 13x13 spreadsheet to help visualize it a bit: So the first two tiles are "000" and they are using palette 01, so that's "0000". This is just a black tile and you can see that's the one most frequently repeated. In fact, that's the only repeated tile in this example. The next set of tiles used is actually a pretty clean row of tiles 01 through 08. Note the first digit is 4, which means we use palette 03 for all 8 of those tiles. , followed by three more black tiles ("0000"). The second row is actually pretty similar, two black tiles with a set of 8 tiles (09-10) in palette 3 , followed by 3 black. The 3rd row is where it gets more complicated. The first three tiles now start with 6, which is palette 4, and that is tiles 11-13 (6011 6012 6013). Then there is one tile using palette 3 again (4014), followed by 3 tiles using palette 4 (6015, 6016, 6017), two tiles using palette 2 (2018, 2019) and finishing with 4 tiles back to palette 4 (601A - 601D)!!! You can read through the rest and notice that this image is actually referencing all 4 palettes!!! When you put this all together you'll get this image: I recreated this tile by tile, so here are the tiles for anyone interested: High_Score_Tiles.zip The second image follows the same process and the information immediately follows the first image. I.e. the header of the 2nd image begins where the tile layout of the first image ends (F5338): lesser_tiles.zip How many actual colors are used? I don't quite understand why this splash is using all 4 palettes. My guess is this is a leftover from the previous ROMs, but that's just a hunch. Here's some more information on the colors/palettes: The 4 palettes (16 x 4 = 64 colors) have 33 unique colors between them. The image itself uses 28 distinct colors. Here's the pixel count of the 241 tiles (13x13 and 9x8) I am guessing it's possible to recreate this image using 2 palettes, but perhaps not? Also, others have recreated a single palette 16 color version that is virtually indistinguishable from the original given how close the color variations actually are. What about the rest of the screen? You may have noticed that the two images are not big enough to fit the entire screen! The splash screen is 40x28 tiles, and these two images are 13x13 and 9x8, which don't fit the entire screen. Here's how this splash screen actually works. The entire background is filled with the first tile, in the first palette "0000". If you alter that tile, like putting a smiley face, you can see the impact here: You will also notice that the background becomes the first layer. The high score and the mark lesser images lay on top of the background. How are the images positioned? Each image has a pointer that also includes an x,y offset position for the image. The pointer for the first image is located at FEDCE. The value you will find is BE0E 0300 247C 000F 4378. The right side is 000F4378, which is the location of our header! 247C is the instruction code the game uses, no need to get into that now. The two values after BE -- 0E and 03 are the x,y values where the image starts. So the High Score starts at 14 (0E in decimal) tiles from the left and 3 tiles from the top. You can count the happy faces from the left and top to confirm The other pointer is located at FEDFC and has a value of BE10 1000 247C 000F 5338 I moved both images to the left (0) and overlapped them. What's interesting is you'll notice that the Mark Lesser sits on top of the first image. So to summarize, the original 2nd splash has apparently 3 layers: Layer 1 - Single tile repeating in background (black) Layer 2 - High Score Image Layer 3 - Mark Lesser Presents Image How did @wboy "decompress" this screen? The first thing wboy did was to change the size of the High Score image to 1 tile. He actually left the original palette and tiles in the same location, but instead of loading 111 tiles, the game loads just 1 black tile, with one tile layout. Now for the 2nd image, he changed the pointer from the Mark Lesser Presents graphic to a new 40x28 graphic that starts in the top left corner. So the new pointer at FEDFC (the 2nd image) BE00 0000 247C 0010 902E Notice the 00 00 location and the pointer now has an offset to 0010902E. That's the location of the new header for the large 40x28 image. That location doesn't exist in the original because the original ROM is only 1MB. This location is in the expanded 2MB section. So what is really happening is the new 40x28 image is sitting in top of the 1 tile image, and on top of the background! So there you have it! More than you ever wanted to know about this 2nd splash screen
  • Create New...