Jump to content
NHL'94 Forums

TOOL: NHL94 Image Updater (Genesis)


chaos

Recommended Posts

NHL94 Genesis ROM Image Updater version 0.3 (Current version)

Version 0.3 adds 32 team ROM functionality

This Python app will take image assets supplied, and import them into a Genesis NHL'94 ROM. It can also export the image assets from a Genesis NHL'94 ROM and store them in byte arrays. It is useful for exporting assets from a previous ROM and importing them into a new one.

The app is designed to either update or export the following image data:

  • Team Logo and Palette
  • Team Rink Logo and Palette (also the Home Jersey Palette)
  • Team Away Jersey Palette
  • Banner and Palettes

NOTE: The image data is in byte format. It can't be opened in any program other than a text editor.

There are 2 options to use:

Before running, please make sure the team names and rosters are already set in the ROM!!

  1. Extract Images
    • Choose a ROM, set the number of active teams, and click the Extract Images button. The app will output a folder with the ROMs name containing image assets for each team (listed by team abbreviation).
  2. Import Images
    • The program will use the image asset data located in the import folder (listed by team abbreviation). It will only import the image assets that are present in the folder, and the program will notify you of which teams in the ROM were updated, and which were not. Once done, it will ask you for a location and a name to save the modified ROM.

 

Workflow:

1 - Create a new ROM and set the rosters and team names using NOSE or similar. 

2 - Find the ROMs that have the image assets you would like to use in your ROM. You can find many ROMs on the forum from this post, or by looking in the league section of the forums - 

 

 

3 - Start the app. Load the ROM. Choose the ROM type (30 or 32 Team ROM), choose the number of active teams (ex: if you have only 12 teams in the ROM, choose 12) and click export. A message will pop up once complete. Look in the app's folder to find a folder with the ROMs name. Inside, each team's image assets will be separated in a folder with the respective team abbreviation. Continue exporting other ROMs if needed.

4 - Add the team folders you wish to use to the import folder located in the app's main folder (if there is no import folder, create a new folder with the name "import" (no quotes)). You only need to add the teams that you wish to change. You can also remove the data in the team's folder that you do not wish to update (for instance, if you only want to update the rink logo and palette, leave them in the folder, and delete the other files). 

5 - Load your new ROM into the app. Then, click the Import button. The app will notify you which teams were updated, and which teams were not. Then, it will prompt you to save the modified ROM. Afterwards, check in an emulator to make sure the image assets were transferred over.

 

Zip file contains a Windows executable. You can get the source code from my GitHub - https://github.com/Chaos81/nhl94-image-updater

 

 

Image_Updater_ver_0.3.zip

  • Love 1
  • Thanks 3
  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 1 month later...
On 3/5/2024 at 8:35 PM, NHL94user said:

How would I extract all 32 teams in a 32-team ROM?

I also am wondering this - assuming no support for 32 teams right now?\

Edit: I think I have this working with 32-teams with some edits to your code. I'll share once tested more.

Edited by Sean
Link to comment
Share on other sites

This will only work with 32 team ROMs since I'm not a great programmer and just swapped the offsets and raised the team limit, but it will work. Someone more talented could probably do some if-then stuff.

Thanks for making this super helpful tool @chaos!

32teamIU.zip

Link to comment
Share on other sites

20 hours ago, Sean said:

This will only work with 32 team ROMs since I'm not a great programmer and just swapped the offsets and raised the team limit, but it will work. Someone more talented could probably do some if-then stuff.

Thanks for making this super helpful tool @chaos!

32teamIU.zip 38.15 MB · 0 downloads

Thanks, Ill check it out, and add it to the GUI and stuff

Link to comment
Share on other sites

21 hours ago, Sean said:

This will only work with 32 team ROMs since I'm not a great programmer and just swapped the offsets and raised the team limit, but it will work. Someone more talented could probably do some if-then stuff.

Thanks for making this super helpful tool @chaos!

32teamIU.zip 38.15 MB · 0 downloads

Do you have the source code?

Link to comment
Share on other sites

6 hours ago, chaos said:

Do you have the source code?

Whoops - here you go: source.zip

Let me know if this is what you need. Has the modified scripts and so on.

Link to comment
Share on other sites

5 hours ago, Sean said:

Whoops - here you go: source.zip

Let me know if this is what you need. Has the modified scripts and so on.

This is perfect. I'll update the tool, thanks!

Link to comment
Share on other sites

I updated the app to version 0.3. This adds 32 team ROM support (thanks to @Sean for pushing this). Source code is also updated on GitHub

  • Love 1
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...
On 5/7/2024 at 9:26 PM, chaos said:

I updated the app to version 0.3. This adds 32 team ROM support (thanks to @Sean for pushing this). Source code is also updated on GitHub

On behalf of the Utah Mammoth / Yeti, I thank-you!

Worked just as advertised. My only suggestion would be to include a read-me with the EXE distro.

Now I see all my player photos are a mess. I've never been able to find a neat way to batch import them. If you were ever inclined to add such functionality, it would be greatly appreciated!

  • Love 1
Link to comment
Share on other sites

7 hours ago, AdamCatalyst said:

On behalf of the Utah Mammoth / Yeti, I thank-you!

Worked just as advertised. My only suggestion would be to include a read-me with the EXE distro.

Now I see all my player photos are a mess. I've never been able to find a neat way to batch import them. If you were ever inclined to add such functionality, it would be greatly appreciated!

@kingraphhas a nice spreadsheet I use for that. Works well

The help menu give you a workflow. But good idea! I will add that.

Link to comment
Share on other sites

I've never been able to get that spreadsheet to work for me. Perhaps I am trying to use it in a way that it wasn't intended. I want to be able import hundreds of updated images at once into a ROM, just like your tool handles it, with folder and filenames. Can that be done with the spreadsheet? 

I'm looking through your source code. I wish I knew Python any programming languages whatsoever. I feel like I could adapt this to do exactly what I want. Maybe I'll start by trying to sort out what I want in pseudo-code.

Link to comment
Share on other sites

42 minutes ago, AdamCatalyst said:

I've never been able to get that spreadsheet to work for me. Perhaps I am trying to use it in a way that it wasn't intended. I want to be able import hundreds of updated images at once into a ROM, just like your tool handles it, with folder and filenames. Can that be done with the spreadsheet? 

I'm looking through your source code. I wish I knew Python any programming languages whatsoever. I feel like I could adapt this to do exactly what I want. Maybe I'll start by trying to sort out what I want in pseudo-code.

I will work on adding this to the tool. I have wanted to do it in the past. Give me a few weeks to figure it out, I'll get it working.

I feel like this would be a proper way to import them:

- Photos named with first name_lastname, that are the correct size already, all in one folder

- The tool will load them into a space in a decompressed ROM

- The tool will look through the roster of the ROM, and set up the offsets for each player's photo

 

Let me know if there's anything else you think could be useful!

Link to comment
Share on other sites

That would be amazing!

Whatever you did for the core product worked perfectly for me, once I figured out I needed to create an "import" folder. I'll throw out some thoughts…

- most basic system wouldn't need names, and could follow exactly what you have done so far, using team abbreviations named folders and roster player numbers. So 00.png in the TOR folder is the Toronto's first goalie.

- I currently use a system with no folders or team names, where each team is assigned a number, so 28-00.png is Toronto's starting goalie image.

- A dream system would see that my roster has "Ilya Samsonov" specified as roster player 00 for TOR, and would grab the PNG with the matching player name.

In my TileM, I can then go to the bookmark for 28-00, and make a manual tweak to that image if I have to. A system where it just dumped all the images in the ROM, then adjusted the offsets for each players photo would be less desirable, but totally workable. Really anything you can do to enable a batch export and batch import of player photos will be a huge benefit.

Link to comment
Share on other sites

4 hours ago, AdamCatalyst said:

 

- A dream system would see that my roster has "Ilya Samsonov" specified as roster player 00 for TOR, and would grab the PNG with the matching player name.

 

This would be the idea. Because you can use a ROM that already has the player photos in it, and it can adjust accordingly, knowing the order of the photos it stored in the ROM already. It can store a list of which order to use from a previous ROM and you could select that list

Link to comment
Share on other sites

3 hours ago, AdamCatalyst said:

Paging @von Ozbourne. Speak now or forever hold your peace. 

Oh? I'll be honest. I haven't tried this out yet, but I tend to concentrate on iterating and testing a bunch of things individually.

I will say that I have settled on a naming convention of naming photos using the player's name as it appears in the game. That way I can copy the names out of NOSE and paste them in the import option in TM. And if they get traded, I can just copy/paste in the new spot without having to worry about the file needing to be renamed.

That said, for the high turnover tournaments like the Olympics and World Championships, I did raid the IIHF website and name the photo files in the format like "CAN16.png". The reference point being that the image is of the player on Team Canada who wore #16. Rather than the player for Canada occupying the 16th or 23rd roster spot. I am kind of curious if the tool can use that as a reference to pull from in these cases. [I am reminded of how I had Sebastian Aho and Sebastian Aho<invisible underscore character> in the game in order to differentiate them because having just names runs into the odd issue like this]

I will say that when I was trying out EARE more for the photos, I learned how each photo corresponds to an offset that can be put in anywhere in the order of rosters in the main menu/player cards. In theory, one could just put all of the photos in one big batch in alphabetical order, and then simply rearrange the order of offset link references [or whatever words be good] I did forget about this option eventually because it seemed like it could get fiddly once bubble players start getting called up and sent down.

The colour palettes and logos part is intriguing to me though. [even if I had already made a version of a ROM that shifted the teams around to leave the blank space under the "U"]

Link to comment
Share on other sites

  • 1 month later...

Friendly reminder to folks that if you use this, you likely also want to update the Organ Music Assignments in your ROM. Here is a tool that might help. 

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...