smozoma Posted April 22, 2010 Report Share Posted April 22, 2010 Dervin10 made this a couple years ago. really useful. You can create a CSV file (which can be opened with excel) of the players in a ROM. then you can change the skills of the players and import the players from the CSV back into the ROM. It works with NHL 94 (and maybe 93?), but as Cam Kneely points out, you can use NOSE to copy rosters from a different game into an NHL 94 ROM, and extract from there. A couple usage notes: 1: do not change the order of the players 2: do not change the player names, positions, or teams. You can only change the skills/attributes. Installation 1: Download and unzip to wherever you want: NHL_Hockey_Roster_Tool.zip 2: Also, this requires the .NET framework. I think version 2.0 will work, but if not, try version 1.1 (if you need to install the framework, can you please tell me which one works so i can update this to be more accurate? thanks) Source Code Dennis has provided the source code. Also included is his SRM file editor (which would allow you to fake User Records on an emulator, if you so wished to do...) NHL_Hockey_Roster_Tool.src.zip Quote Link to comment Share on other sites More sharing options...
dman72 Posted April 22, 2010 Report Share Posted April 22, 2010 Dervin10 made this a couple years ago. really useful.You can create a CSV file (which can be opened with excel) of the players in a ROM. then you can change the skills of the players and import the players from the CSV back into the ROM. A couple usage notes: 1: do not change the order of the players 2: do not change the player names, positions, or teams. You can only change the skills/attributes. Installation 1: Download and unzip to wherever you want: NHL_Hockey_Roster_Tool.zip 2: Also, this requires the .NET framework. I think version 2.0 will work, but if not, try version 1.1 (if you need to install the framework, can you please tell me which one works so i can update this to be more accurate? thanks) Worked like a charm on the first pass, I didn't need to install framework. Thanks again. 1 Quote Link to comment Share on other sites More sharing options...
PixelDragon Posted January 16, 2011 Report Share Posted January 16, 2011 Great tool ! Quote Link to comment Share on other sites More sharing options...
CamKneely Posted February 28, 2012 Report Share Posted February 28, 2012 The extractor only works with 94 roms...but if you use NOSE to copy the rosters over from other roms to 94, it will work. 1 Quote Link to comment Share on other sites More sharing options...
smozoma Posted February 28, 2012 Author Report Share Posted February 28, 2012 The extractor only works with 94 roms...but if you use NOSE to copy the rosters over from other roms to 94, it will work. Excellent tip.. wouldn't have thought of that! Quote Link to comment Share on other sites More sharing options...
CamKneely Posted February 28, 2012 Report Share Posted February 28, 2012 Thanks. Yeah, I thought I was looking at hours and hours of finger-breaking labor...luckily I thought of this. Quote Link to comment Share on other sites More sharing options...
PixelDragon Posted November 8, 2012 Report Share Posted November 8, 2012 The extractor only works with 94 roms...but if you use NOSE to copy the rosters over from other roms to 94, it will work. Can you explain in detail how you manage that ? I'm trying to copy the rosters from nhl 91 to nhl 94... Quote Link to comment Share on other sites More sharing options...
smozoma Posted November 8, 2012 Author Report Share Posted November 8, 2012 i've never tried it but I think this is how: open 2 instances of NOSE (2 NOSE windows..) open a ROM in each NOSE copy/paste stuff between windows i have no idea which versions of EA NHL can be copied between, though Quote Link to comment Share on other sites More sharing options...
PlabaxV2 Posted November 9, 2012 Report Share Posted November 9, 2012 i've never tried it but I think this is how: open 2 instances of NOSE (2 NOSE windows..) open a ROM in each NOSE copy/paste stuff between windows i have no idea which versions of EA NHL can be copied between, though I have got it to work with 94-97 Rom bases. On a side note, the players are rated differently in 96 and 97 but NOSE will calculate the results for you Quote Link to comment Share on other sites More sharing options...
PixelDragon Posted November 9, 2012 Report Share Posted November 9, 2012 i've never tried it but I think this is how: open 2 instances of NOSE (2 NOSE windows..) open a ROM in each NOSE copy/paste stuff between windows i have no idea which versions of EA NHL can be copied between, though That's what I tried to do... but the number of players in the teams are not the same... You copy and past, or just past the attributes ? You delete or create some players first, for having the exact match ? Quote Link to comment Share on other sites More sharing options...
PlabaxV2 Posted November 9, 2012 Report Share Posted November 9, 2012 (edited) That's what I tried to do... but the number of players in the teams are not the same... You copy and past, or just past the attributes ? You delete or create some players first, for having the exact match ? Yes, you can delete some players, and to make sure you have the same amount of forwards and defense you can adjust the ''Forwards'' number above the rosters in the ''Players'' window. Edited November 9, 2012 by PlabaxV2 Quote Link to comment Share on other sites More sharing options...
aqualizard Posted February 10, 2016 Report Share Posted February 10, 2016 When I used this tool to export the new VHL ROM to a CSV, it leaves out some players? (Well at least one: Ovechkin. But I figure if there is one left out, perhaps there are more?)The vast majority of players, which it does export, are in tact and uncorrupted.Any reason why some players would fail to export?The ROM usd is "NHL16v8.bin" from http://forum.nhl94.com/index.php/topic/17330-nhl16-rom-midseason-update-by-skip/ Quote Link to comment Share on other sites More sharing options...
Quadruple Deke Posted February 10, 2016 Report Share Posted February 10, 2016 When I used this tool to export the new VHL ROM to a CSV, it leaves out some players? (Well at least one: Ovechkin. But I figure if there is one left out, perhaps there are more?) The vast majority of players, which it does export, are in tact and uncorrupted. Any reason why some players would fail to export? The ROM usd is "NHL16v8.bin" from http://forum.nhl94.com/index.php/topic/17330-nhl16-rom-midseason-update-by-skip/ I just checked and it worked fine. Did you change the number of teams from 28 to 30? Quote Link to comment Share on other sites More sharing options...
aqualizard Posted February 10, 2016 Report Share Posted February 10, 2016 I just checked and it worked fine. Did you change the number of teams from 28 to 30? I did not. That was the problem! Thanks! Do I just leave "TeamOffset Hex" at "30E"? (I did, but want to make sure.) Thanks a lot, QD! Quote Link to comment Share on other sites More sharing options...
AtomicRaven Posted July 4, 2016 Report Share Posted July 4, 2016 Hey guys, Is there a way to get the actual PlayerId's as far as Gens is concerned? The ones spit out of the excel don't seem to match what Gens is outputting. I'm working on parsing the save games for exhibition matches. Thanks Raven Quote Link to comment Share on other sites More sharing options...
Premium Posted July 4, 2016 Report Share Posted July 4, 2016 (edited) I think the 'actual' IDs of the players are team specific and the number is the slot of the player on the team (starting with 0 and going from G-->F-->D, or the same order the program extracts, like an index)For example, BOS would have Moog as 0, Blue as 1, Oates as 2, Poulin as 3, or CGY would have Vernon as 0, Reese as 1, Nieuwendyk as 2, Reichel as 3 and so on. --------------------------------- So, if using a database... it would probably look like: Get PLAYER where TEAM is the team of the player and PLAYERINDEX is the "ID" from the uploader If you were extracting a goal scored by Adam Oates, the extractor would search for the player on Boston with an index of 2, who is Oates. Edited July 5, 2016 by Premium Quote Link to comment Share on other sites More sharing options...
chaos Posted July 5, 2016 Report Share Posted July 5, 2016 I think the 'actual' IDs of the players are team specific and the number is the slot of the player on the team (starting with 1 and going from G-->F-->D, or the same order the program extracts, like an index) For example, BOS would have Moog as 1, Blue as 2, Oates as 3, Poulin as 4, or CGY would have Vernon as 1, Reese as 2, Nieuwendyk as 3, Reichel as 4 and so on. --------------------------------- So, if using a database... it would probably look like: Get PLAYER where TEAM is the team of the player and PLAYERINDEX is the "ID" from the uploader If you were extracting a goal scored by Adam Oates, the extractor would search for the player on Boston with an index of 3, who is Oates. The first player is the 0 offset. So, in Plabax's example, if it says the 03 for player who scored, it would actually be Poulin and not Oates. If you are making your own stat extractor, the easiest way would be to have the rosters and team order already extracted and saved in a DB. Upload the game, pull all the game stats (SP1, GP1, SP2, GP2, etc), and player stats (G,A, Chks, TOI, etc), using the team order and roster with offsets to pull the right data for the right team/player, then check the scoring summary and penalty summary. When going through the scoring and penalty summaries, you can use the DB roster with offset to figure out who scored, assisted, got a penalty, etc for displaying purposes in the box score. You would also use the summaries to decide if it was a PP or SH or EV goal, type of assist, PIM for each player, and add that data in the DB if you desire. Quote Link to comment Share on other sites More sharing options...
Premium Posted July 5, 2016 Report Share Posted July 5, 2016 The first player is the 0 offset. Thank you, I couldn't remember. Quote Link to comment Share on other sites More sharing options...
AtomicRaven Posted July 5, 2016 Report Share Posted July 5, 2016 (edited) Hey guys, Thanks for the responses and help! I get it now and have the player data flowing nicely into the db. Raven Edited July 5, 2016 by AtomicRaven Quote Link to comment Share on other sites More sharing options...
smozoma Posted January 30, 2020 Author Report Share Posted January 30, 2020 Source code zip added Quote Link to comment Share on other sites More sharing options...
Stefan Posted May 21, 2020 Report Share Posted May 21, 2020 Is there some way to transfer the players and their ratings from a genesis Rom to an snes one, as opposed to manually copying it? Quote Link to comment Share on other sites More sharing options...
smozoma Posted May 21, 2020 Author Report Share Posted May 21, 2020 7 minutes ago, Stefan said: Is there some way to transfer the players and their ratings from a genesis Rom to an snes one, as opposed to manually copying it? I think the data format is pretty much identical. So you could manually copy/paste the data using a hex editor. Double-check this first with an original Sega ROM and original SNES ROM, as there may be a few differences. But I think if you look for say Wayne Gretzky in both ROMs, you'll see his data is mostly (if not completely) the same. The one thing that I wouldn' tbe surprised is different is the name length counter (which is the 2 bytes preceding the player name), the bytes might be reversed between Sega/SNES ROMs Quote Link to comment Share on other sites More sharing options...
Stefan Posted May 21, 2020 Report Share Posted May 21, 2020 (edited) Okay. I guess where I'd be confused is that I'm copying an updated genesis roster to a snes roster so wayne gretzky wont be on the genesis one... Yeah, I tried copying Boston Bruins from Sega to SNES and it totally didn't work. Any way I could copy the CSV data over from the spreadsheet? Edited May 21, 2020 by Stefan Quote Link to comment Share on other sites More sharing options...
Stefan Posted May 21, 2020 Report Share Posted May 21, 2020 I figure it would be easy to copy over the info from the Genesis to SNES CSV but the formatting is different for each one, and there's different cells for each of them. Quote Link to comment Share on other sites More sharing options...
von Ozbourne Posted May 27, 2023 Report Share Posted May 27, 2023 Figure it's about time I ask about this. I can export just fine, but any time I try to import, even if it's just re-importing the unchanged file I literally just exported mere seconds ago, I get this. Full details: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.IndexOutOfRangeException: Index was outside the bounds of the array. at NHL_Hockey_Roster_Tool.MainForm.ImportToolStripMenuItem_Click(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8762 (QFE.050727-8700) CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll ---------------------------------------- NHL Hockey Roster Tool Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Users/Me/Desktop/STUFF/games/NHL%20MODS/EA%20NHL94/tools/NHL%20Hockey%20Roster%20Tool.exe ---------------------------------------- Microsoft.VisualBasic Assembly Version: 8.0.0.0 Win32 Version: 8.0.50727.5483 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8770 (QFE.050727-8700) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5491 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5495 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Runtime.Remoting Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8771 (QFE.050727-8700) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll ---------------------------------------- System.Xml Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5494 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box. Anyone with any idea what's going on here? And more importantly, how I can stop it from doing this and start working as intended instead? Quote Link to comment Share on other sites More sharing options...
AdamCatalyst Posted May 27, 2023 Report Share Posted May 27, 2023 unfortunately I can’t read Windows-speak, but if you ZIP your roster tool install folder and send it to me, I can try something. Also send a ROM that fails. Quote Link to comment Share on other sites More sharing options...
smozoma Posted May 27, 2023 Author Report Share Posted May 27, 2023 Quote System.IndexOutOfRangeException: Index was outside the bounds of the array. Some number somewhere was too big... I wonder if the tool doesn't work with 32-team ROMs... Or 0-15 attribute ROMs... something like that. Quote Link to comment Share on other sites More sharing options...
von Ozbourne Posted May 28, 2023 Report Share Posted May 28, 2023 13 hours ago, smozoma said: Some number somewhere was too big... I wonder if the tool doesn't work with 32-team ROMs... Or 0-15 attribute ROMs... something like that. This is something I wondered about. I was hoping to use 0-15 in this case, although I had the same problem with 0-6. Didn't think about the number of teams being an issue. Although I think[?] I was encountering errors with the 30-team too. I will try to test. Worse comes to worse, I guess if it works on the OG ROM, I could always copy/paste it in batches. Still quicker than doing everyone by hand. 19 hours ago, AdamCatalyst said: unfortunately I can’t read Windows-speak, but if you ZIP your roster tool install folder and send it to me, I can try something. Also send a ROM that fails. I can't say I'm that good at translating Windows to English either, but I can do that if you're willing to look at it. I did kind of move on for now so I'm not quite prepared to do that right away though. Quote Link to comment Share on other sites More sharing options...
AdamCatalyst Posted May 28, 2023 Report Share Posted May 28, 2023 It works fine for me with 32-teams, 0-15 ratings. Make sure that you’re setting the number of teams correctly in the Roster tool on export and import. Quote Link to comment Share on other sites More sharing options...
von Ozbourne Posted May 28, 2023 Report Share Posted May 28, 2023 2 hours ago, AdamCatalyst said: It works fine for me with 32-teams, 0-15 ratings. Make sure that you’re setting the number of teams correctly in the Roster tool on export and import. Of course had the correct number of teams. I'm not an idiot. Although I did notice that I was using the hex letter instead of the number for the player weights [never said I was smart either] Sadly this moment of inspiration wasn't the droid I was looking for. I did test on an original 26-team ROM and it seemed to work. I even got it to work on a 32-team team ROM, exporting 26 teams [so it skipped the last six] and then re-importing the resulting .csv data to a new 32-team ROM. This saved as a new .bin file just fine. So I obviously tried to take this one step further and exported a default 26-team ROM and then edited all of the player attributes to a rating of one. Saved the .csv. Tried to import it back to the original ROM and it worked fine. Keep ruling out variables. Export a 32-team ROM, re-import to that same ROM, saved as a new .bin file. Hmm, it's working this time... Okay, next step open the .csv in notepad. Edit the top player to a bunch of 1s. Rinse and repeat. This works too. Okay, open in notepad again. Edit the first team to be a bunch of random numbers from 1-15. [This particular ROM is still using 0-6] Import still works and new file saved. Okay, open in OpenOffice [because I never paid for Excel and it's a long story] type in some 1s for that first skater again and save. Go back to import and.... WHAT!! ARE YOU BLOODY KIDDING ME!! <many muttered expletives deleted> So yeah... apparently OpenOffice is taking that .csv file, and even though it saves as a .csv file that opens just fine in notepad and whatever, it's doing something to it that .csv file the Import tool simply does not like. Why this even happens is well beyond my pay grade and completely stupid and arbitrary and stupid. Just a minute... The story was about to end there in a huff when I decided to try one last thing before hitting submit. I opened an original clean exported .csv file side by side with an edited .csv file and that's when I finally noticed it. The unedited export, when opened in notepad has tab delimiters represented by the common comma. OpenOffice saves it's tab delimiters as commas holding periods over their heads like they're John bloody Cusack or something. So I opened the spreadsheet as a text doc and gave it a semi-colonoscopy and pasted that into a new text file, saved as a new .csv file, and what do you know. Commas man. Probably would have been less grumpy about this whole situation if I didn't miss lunch trying to figure it out... 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.