bcrt2000 Posted February 16 Report Share Posted February 16 (edited) Hey all, I've created 3 new tools for NHL95 PC to extract in-game sprites, music & sounds. The sprite extractor leverages gfxpak to get the raw image data out of the PPV files before the sprites are converted to .raw (Photoshop RAW, not Camera RAW) and .bmp format. Note that the music & sound extractors are WIP and aren't perfect. Also note that these are all written in js so they should be very easy to modify & or reverse engineer for importing. Grab them here: https://github.com/abdulahmad/EA-NHL-Tools (each tool has it's own README with more info on it) Here's a sample of some of the extracted sprites: I've also created a few videos where I walk through how I figured out these file formats. It was originally intended for a fellow modder, but I feel like anyone who wants to know more about file format hacking can learn something. Here is a playlist of them: Just an FYI-- I used to be someone who modded the EA NHL PC games starting with NHL 95 and then NHL 98 all the way to NHL 06. If I recall correctly I was the first one who released modded rinks (under the pseudo name Chris and the group RTM but then later with my own name) and also figured out the Centre Ice file format. I have been sad to see threads from 2012-13 with people trying to figure out how mod NHL 95, so I figure I should publish as much as this info as possible. I am working on an Engine remake of NHL 94/95 in Unity so this is why I have been spending so much time hacking. I intend to make more tools soon-- the next one I'm looking to do is around palettes & extracting palettes from NHL 95 PC, and perhaps even 94 Genesis/SNES and have them in a format that can be applied to the extracted sprites and/or potentially even the ability to extract all the sprites with a specified palette. I also have started to create a document with information on all the file formats in NHL 95. I figure I will post that information in this thread as I spend more time on it, and also add it to EA NHL Tools github above. Edited February 16 by bcrt2000 1 2 Quote Link to comment Share on other sites More sharing options...
sparky9 Posted February 18 Report Share Posted February 18 On 2/16/2023 at 1:46 AM, bcrt2000 said: Hey all, I've created 3 new tools for NHL95 PC to extract in-game sprites, music & sounds. The sprite extractor leverages gfxpak to get the raw image data out of the PPV files before the sprites are converted to .raw (Photoshop RAW, not Camera RAW) and .bmp format. Note that the music & sound extractors are WIP and aren't perfect. Also note that these are all written in js so they should be very easy to modify & or reverse engineer for importing. Grab them here: https://github.com/abdulahmad/EA-NHL-Tools (each tool has it's own README with more info on it) Here's a sample of some of the extracted sprites: I've also created a few videos where I walk through how I figured out these file formats. It was originally intended for a fellow modder, but I feel like anyone who wants to know more about file format hacking can learn something. Here is a playlist of them: Just an FYI-- I used to be someone who modded the EA NHL PC games starting with NHL 95 and then NHL 98 all the way to NHL 06. If I recall correctly I was the first one who released modded rinks (under the pseudo name Chris and the group RTM but then later with my own name) and also figured out the Centre Ice file format. I have been sad to see threads from 2012-13 with people trying to figure out how mod NHL 95, so I figure I should publish as much as this info as possible. I am working on an Engine remake of NHL 94/95 in Unity so this is why I have been spending so much time hacking. I intend to make more tools soon-- the next one I'm looking to do is around palettes & extracting palettes from NHL 95 PC, and perhaps even 94 Genesis/SNES and have them in a format that can be applied to the extracted sprites and/or potentially even the ability to extract all the sprites with a specified palette. I also have started to create a document with information on all the file formats in NHL 95. I figure I will post that information in this thread as I spend more time on it, and also add it to EA NHL Tools github above. Nhl95 PC is my favorite sports PC game.I tried mod WHA https://forum.nhl94.com/index.php?/topic/19459-wha-73-74-nhl95pc-mod/ perhaps someone even liked it. I would welcome any improvements to this great game and I'm really looking forward to it. Quote Link to comment Share on other sites More sharing options...
bcrt2000 Posted February 23 Author Report Share Posted February 23 (edited) Finished the PAL-to-ACT tool to extract team palettes from the game so you can apply them to extracted sprites. It's available in the 0.4 WIP version. I need to update the QFS extractor so it is able to apply the correct palettes to all images extracted from the game (whereas gfxpak by default will only correctly apply a palette if the palette exists in the same QFS file) before I make 0.4 final. I may create a tool to reverse the process for 0.5 as I'm thinking about creating a team swap mod so that you'd be able to play with all 32 teams in NHL 95 PC-- albeit only 28 teams at a time in the game, and a script that you'd run at startup to choose which teams you want in the game. But at least you'd be able to play a playoffs with all of the teams you like, as well as a regular season with the 26 teams you'd like in that season. And the reason I'd want to reverse the process is that it's much easier to see how well your jersey is going to translate across all sprites if you can do it in Photoshop rather than in JED. Example of extracted palette applied to extracted sprites. Edited February 23 by bcrt2000 1 1 Quote Link to comment Share on other sites More sharing options...
bcrt2000 Posted February 26 Author Report Share Posted February 26 (edited) OK will try to add all the progress I've made since last post. Finished the QFS-To-BMP converter (available on my Github). It will extract almost all the image assets from the game with correct palettes automatically applied. Just need to look into one issue with the CTLogos. Started on an NHL95 Team Swap mod. Super WIP at this point. This won't expand the game to 32 teams in the traditional way like the Genesis ROM hacks have, but it will give you the ability to start the game with 26 of the 32 NHL Teams plus 2 of the 4. Just for simplicity sake the way it will probably work is that the UI will allow you to select 6 or 7 out of the 8 teams in each division to be able to play the game with. Will let you play a playoffs with the 16 teams you want to or a season with the 26 teams you want to. So far I'm quickly prototyping jersey designs in photoshop, created a shader of sorts in Photoshop based on how EA shaded sprites originally in NHL 95 so that I can just work with flat colours and apply the shading on top. Here's an example of how it works with Minnesota plus some prototype designs for other teams: I have also created a document which explains what parts of the .EXE have to be modified to expand the game from 26 to 32 teams. Not a priority for me but a starting point for anyone else. Created a document which explains how Centre Ices work and how to modify them. Documents the .TIL, .MAP and even some locations in the .EXE where this is all configured and how it all works. This may eventually turn into a Centre Ice exporter/importer (especially as I continue on the Team Swap mod, I'd probably want to have a tool). One thing I figured out after running the completed QFS-To-BMP tools is that the palettes used to create the team palettes in HOMEPALS/AWAYPALS.bin are actually stored in the HOMEPAL3/AWAYPAL3.QFS files. Here's how some of the sprites look like with it applied: Here's a comparison between the palette which was extracted via my PAL-To-ACT tools (left) versus the palettes from the QFS (right) Also added two more videos to my NHL 95 hacking series on youtube which go over how palettes work in the game, and what my workflow looks like when working with paletted sprites. And the second video goes over the Centre Ice format The next thing for me to work on is figuring out how to pull NHL 23 ratings + official '22-23 stats and put them in a format that I can both use for my engine remake, and the team swap mod. Edited February 26 by bcrt2000 2 Quote Link to comment Share on other sites More sharing options...
bcrt2000 Posted February 27 Author Report Share Posted February 27 Final release of v0.4 for https://github.com/abdulahmad/EA-NHL-Tools Release notes: 95 Team Swap Mod added (WIP), included prototype jerseys for NSH, CBJ, WPG, MIN, SEA, VGK, All-Star Teams Documentation on expanding NHL95 PC to 32 teams added First release of PAL-To-ACT First release of QFS-To-BMP (all images extracted with correct palettes) First release of Roster-Generator Split out SPIT-To-BMP from PPV-To-BMP Documentation on Centre Ice logos in TIL-To-BMP Added palette support to SPIT-To-BMP 1 1 Quote Link to comment Share on other sites More sharing options...
bcrt2000 Posted March 13 Author Report Share Posted March 13 I do have a work in progress rink-graphics importer, that should allow you to not just import Centre Ices, but also board ads & ice ads (both at centre ice & behind the nets), and this is pretty much the biggest piece of the puzzle before I can complete the NHL 95 32-team swap mod, but also felt like I was spending a little too much time on it compared to my engine remake, so I'm putting it on pause for now so that I can get back to coding the engine remake I've been working on. I also was just really busy with work the last few weeks so haven't really worked on much of anything, Want to get my feet wet on working on the game engine again, and then maybe in 2-3 weeks I'll circle back around to the rink graphics importer when I have time. 1 1 Quote Link to comment Share on other sites More sharing options...
Kiba Posted March 20 Report Share Posted March 20 @bcrt2000 thank you for this! Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted March 21 Report Share Posted March 21 I tried to extract MAINDESK.IFF into a WAV file, only for this error to pop up. Is there anything I can do? Quote Link to comment Share on other sites More sharing options...
smozoma Posted March 21 Report Share Posted March 21 6 minutes ago, Jlsegafan2001 said: I tried to extract MAINDESK.IFF into a WAV file, only for this error to pop up. Is there anything I can do? Looks like an error with the tool you're using (compilation error). Not installed correctly? Missing a dependency? Run the wrong way? (it errors out on the very first character) Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted March 22 Report Share Posted March 22 5 hours ago, smozoma said: Looks like an error with the tool you're using (compilation error). Not installed correctly? Missing a dependency? Run the wrong way? (it errors out on the very first character) 1) I downloaded it from releases, so THAT can't be the problem. 2) I installed Node, which didn't do anything. 3) I followed the instructions more carefully, and this was the result: "Conversion complete!" is misleading, as no .wav file called "output.wav" exists on my computer, as you can see here: In the readme, he says this: "To generate the base code I fed ChatGPT a 1985 whitepaper by an EA Employee on the .IFF format." Using ChatGPT as a base might have been the mistake that sealed the program's fate, as AI tends to not be very intelligent at all. Quote Link to comment Share on other sites More sharing options...
smozoma Posted March 22 Report Share Posted March 22 3 hours ago, Jlsegafan2001 said: 1) I downloaded it from releases, so THAT can't be the problem. 2) I installed Node, which didn't do anything. 3) I followed the instructions more carefully, and this was the result: "Conversion complete!" is misleading, as no .wav file called "output.wav" exists on my computer, as you can see here: In the readme, he says this: "To generate the base code I fed ChatGPT a 1985 whitepaper by an EA Employee on the .IFF format." Using ChatGPT as a base might have been the mistake that sealed the program's fate, as AI tends to not be very intelligent at all. So like I suggested, it wasn't installed correctly -- Node was missing. Also in the readme it says "This isn't perfect, doesn't work with every file. But will work with some of them at least." and discusses the known problems: "The code generated had some issues-- the header definition seemed wrong. This was a real quick & dirty tool to get out so I didn't spend enough time to understand if the documentation wasn't read properly by ChatGPT or if EA had changed the header definition by the time NHL 95 came out. Calculating the size of the destination file also seems to be incorrect. It's something I need to spend more time looking into." And without the chatGPT base, the tool might not even exist at all. Please read instructions carefully. I have had people tell me they don't help you because you are not careful enough and require too much guidance / hand-holding, and it becomes a "boy who cried wolf" situation so that when there actually IS a problem they just expect that you weren't careful so they don't bother trying to help. The people who make these tools are usually very busy, please respect their time by working more carefully. Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted March 22 Report Share Posted March 22 Here's proof that Node was installed. Alright... Quote Link to comment Share on other sites More sharing options...
smozoma Posted March 22 Report Share Posted March 22 33 minutes ago, Jlsegafan2001 said: Here's proof that Node was installed. Alright... Maybe I misunderstood your "2)" point, it sounded like you were saying you installed node after asking for help the first time, but it didn't fix the problem ("didn't do anything"). Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted March 22 Report Share Posted March 22 Yeah, I think it was a simple misunderstanding. 1 Quote Link to comment Share on other sites More sharing options...
smozoma Posted March 22 Report Share Posted March 22 What if you try other IFFs, do any work? The docs say that "some of them" will work Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted March 22 Report Share Posted March 22 I get very similar messages, but all that actually happens is a change in the date modified. Quote Link to comment Share on other sites More sharing options...
Drezz Posted Wednesday at 02:57 PM Report Share Posted Wednesday at 02:57 PM Not all of the headers in the IFF files are the same, so the script isn't set up to read them. It's still a WIP tool. Abdul works on the tool as he works on a particular section of the game. He'll update it when it comes time to access files in that particular part of the game. Quote Link to comment Share on other sites More sharing options...
Jlsegafan2001 Posted 19 hours ago Report Share Posted 19 hours ago Alright. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.