smozoma Posted September 3, 2010 Report Posted September 3, 2010 Here's a program that let's you apply a whole tonne of hacks to your ROMs! smozROMv100.zip - Windows (executable) smozROM.py - Linux, Mac (python 3 source code, depends on other files in the zip above) To use the program, simply drag-and-drop a ROM file onto smozROM.exe (after unzipping the zip file, of course) or smozROM.py. You'll be asked what hacks to apply (and forced to use the 2nd-assist bug and plus-minus hacks.. nyah), and then asked to name the new ROM file. If it doesn't work, try installing these and retrying it: vc 2008 redist sp1 vc 2010 redist v1.0 (Sept 2, 2010) Features: - Weight bug fix - 0-15 player ratings - Bodycheck statistics - Plus-minus (+/-) statistic *see below for how to extract stat - Base player weight modification for different years - Improved Three Stars rating formula - Edit Lines ratings consistency fixes - Checksum removal v1.0.1 (Oct 15, 2018) - smozROM.py updated only Changes: - Update code to work on Linux and Mac -- It also includes an update for NOSE so that NOSE can read the ROMs with the 0-15 ratings and base weight modification ratings. Read "NOSE Update.html" in the zip package. Tell me if there are any problems.. program crashes, ROM doesn't feel right, etc. * How to extract the +/- stat 1 Quote
mack Posted September 3, 2010 Report Posted September 3, 2010 I like like you. More than a friend. 1 Quote
trudatman Posted September 3, 2010 Report Posted September 3, 2010 (edited) pretty damned cool. oh, how I wish SNES was your preferred system... edit: this may have to do with the fact that I don't know what I'm doing when it comes to Genesis stuff, or it may be that I am running DarWine on a Mac to use this, or it may be that I need to seek out these specific files listed (if so, why not include them?), but, regardless, I'd like some guidance before I make things worse. thanks for your time. fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" (9.0.21022.8) fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" (9.0.21022.8) err:module:import_dll Library MSVCR90.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\python31.dll") not found err:module:import_dll Library python31.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe") not found err:module:import_dll Library msvcr90.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe" failed, status c0000135 Edited September 3, 2010 by trudatman Quote
smozoma Posted September 3, 2010 Author Report Posted September 3, 2010 pretty damned cool. oh, how I wish SNES was your preferred system... edit: this may have to do with the fact that I don't know what I'm doing when it comes to Genesis stuff, or it may be that I am running DarWine on a Mac to use this, or it may be that I need to seek out these specific files listed (if so, why not include them?), but, regardless, I'd like some guidance before I make things worse. thanks for your time. fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" (9.0.21022.8) fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" (9.0.21022.8) err:module:import_dll Library MSVCR90.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\python31.dll") not found err:module:import_dll Library python31.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe") not found err:module:import_dll Library msvcr90.dll (which is needed by L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\\Users\\tru\\Desktop\\games\\Fusion363i(2)\\smozROMv100\\smozROM.exe" failed, status c0000135 Might be a darwine problem.. Windows has those missing files by default I think (at least, no one else has had an issue so far?). Here are the extra files you need. I think you just need to put the files into the smozROM directory. Microsoft.VC90.CRT.zip If any windows guys report a similar problem, I'll include them in the main package. Quote
trudatman Posted September 3, 2010 Report Posted September 3, 2010 DAMN IT! the .exe is not something I can drag other files onto, nor can I rightclick the file and force it to open it with that .exe, because it needs to run through DarWine. AARGH! thanks, though. Quote
smozoma Posted September 3, 2010 Author Report Posted September 3, 2010 DAMN IT! the .exe is not something I can drag other files onto, nor can I rightclick the file and force it to open it with that .exe, because it needs to run through DarWine. AARGH! thanks, though. can you get command line functionality in the folder? (like terminal...) the command is >smozROM.exe romname.bin Quote
trudatman Posted September 3, 2010 Report Posted September 3, 2010 I have no clue what that means. Quote
smozoma Posted September 3, 2010 Author Report Posted September 3, 2010 I have no clue what that means. can't help you.. i haven't used a mac since 1988 when i drew pictures with a turtle. (nothing against macs.. i just haven't used one) Quote
trudatman Posted September 11, 2010 Report Posted September 11, 2010 - 0-15 player ratings - Base player weight modification for different years - Improved Three Stars rating formula - Edit Lines ratings consistency fixes - Checksum removal hoping you could explain those parts a bit, especially the 0-15 thing (what was it before?). does checksum removal fix the checksum or delete it, and if it deletes it, why is that better? thanks. Quote
smozoma Posted September 11, 2010 Author Report Posted September 11, 2010 hoping you could explain those parts a bit, especially the 0-15 thing (what was it before?). does checksum removal fix the checksum or delete it, and if it deletes it, why is that better? thanks. - 0-15 player ratings The original game rates player attributes on a 0-6 scale. To translate to a 0-99 scale, it multiplies the ratings by 18, then adds a random value from -9 to +8. (with a few special cases..) I hacked it so you can rate players on a scale from 0-15, so you can rates guys more accurately. - Base player weight modification for different years The original game rates players' weight from 0-15, then calculates their weight in pounds as 140+8*Wgt. But if you go back to the 1970s or earlier, guys weighed so much less than they do now, so if you make a ROM for way back when, guys are all rated really low in weight, so they move too quickly and there isn't variety. This hack changes the 140 to a different value that matches the usual weights of the era. I calculated correct values back to 1917, so if you want to create a ROM from back then.. guys won't all be 0-3 in weight : ). - Improved Three Stars rating formula It used to rate guys like this: goal: 11000 star points, assist: 10100, shutout: 75000 points, sv%:95%: 23000 pts, shot:10 (or 1000 if the game is tied). Not very exciting. I made it: goal: 11000, assist: 7000, shot: 500, check: 500, goal against goalie: -11000, shot against: 4000, shutout: 22000 (or something like that) It gives more interesting 3 stars. - Edit Lines ratings consistency fixes gone over this many times for you already. The Edit Lines ratings are inaccurate. I made a bunch of different hacks for fixing it (disabling the random bonus, or making them match) - Checksum removal The checksum is different from SNES where you're supposed to have one. On the Genesis, you don't need one. But for some reason, the programmers at EA decided to program one right into the game... and if the checksum is wrong, the game won't run (you'll just get a blank screen). So this removes the checksum calculating code. Quote
trudatman Posted September 11, 2010 Report Posted September 11, 2010 (edited) - 0-15 player ratingsThe original game rates player attributes on a 0-6 scale. To translate to a 0-99 scale, it multiplies the ratings by 18, then adds a random value from -9 to +8. (with a few special cases..) I hacked it so you can rate players on a scale from 0-15, so you can rates guys more accurately. ah, nice action. - Base player weight modification for different yearsThe original game rates players' weight from 0-15, then calculates their weight in pounds as 140+8*Wgt. But if you go back to the 1970s or earlier, guys weighed so much less than they do now, so if you make a ROM for way back when, guys are all rated really low in weight, so they move too quickly and there isn't variety. This hack changes the 140 to a different value that matches the usual weights of the era. I calculated correct values back to 1917, so if you want to create a ROM from back then.. guys won't all be 0-3 in weight : ). wow... all the way back to 1917! averages based on decades? I guess I'll see if/when I get this thing running.- Improved Three Stars rating formulaIt used to rate guys like this: goal: 11000 star points, assist: 10100, shutout: 75000 points, sv%:95%: 23000 pts, shot:10 (or 1000 if the game is tied). Not very exciting. I made it: goal: 11000, assist: 7000, shot: 500, check: 500, goal against goalie: -11000, shot against: 4000, shutout: 22000 (or something like that) It gives more interesting 3 stars. hmm... I never had many problems with the way the stars were calculated (assuming the SNES calculations are similar, which reads as about right), but I certainly understand the draw to tinkering with it (read: anything). do you feel like you have it nailed or is there anything you would/do consider adjusting? - Edit Lines ratings consistency fixesgone over this many times for you already. The Edit Lines ratings are inaccurate. I made a bunch of different hacks for fixing it (disabling the random bonus, or making them match) gotcha. I guess I thought this was something else. I hope you know that I very much appreciate the help you continue to provide. this place is full of smart and helpful folks. you are a resource and a friend... if you accept friends from the other side of the console aisle! - Checksum removalThe checksum is different from SNES where you're supposed to have one. On the Genesis, you don't need one. But for some reason, the programmers at EA decided to program one right into the game... and if the checksum is wrong, the game won't run (you'll just get a blank screen). So this removes the checksum calculating code. hmm... weird. again, thank you for all that you do. I wish the SNES crew had a code genius like you working on tools and resources for SNES ROMs. I'm trying to learn it all, but it comes slowly and I doubt I'll be making programs (guides, maybe, for concise and accurate manuals would certainly benefit the site) to help other hacking novices. well, I am plugging away at a Genesis ROM and running into plenty of barriers for every success. there have been successes, though... enough to demonstrate clearly that Genesis hacking is easier, if only by the .bin format's ease with tiling. blah, blah, blah... point is: thank you! edit: want to be clear that I don't downplay the assistance/guides/programs of those who do SNES hacking. point there was that we could always use more bright minds. Edited September 11, 2010 by trudatman Quote
trudatman Posted September 15, 2010 Report Posted September 15, 2010 just found out my Windows version is too old to use this or the other modifier. damn it! if I posted a file, would somebody be willing to run the ratings, stars and +/- things on it? that would be nice. holler! Quote
smozoma Posted September 15, 2010 Author Report Posted September 15, 2010 just found out my Windows version is too old to use this or the other modifier. damn it! if I posted a file, would somebody be willing to run the ratings, stars and +/- things on it? that would be nice. holler! attach it to a PM and send it and i'll do it (but i refuse to 'holler' ) Quote
trudatman Posted September 15, 2010 Report Posted September 15, 2010 thanks, buddy! working in NOSE right now. will send later, when I'm done with rosters and lines. very much appreciated. Quote
Xstioph Posted October 21, 2010 Report Posted October 21, 2010 Oh the stuff you can do on gens That's some fantastic stuff right there.. Especially love the individual hits thingy That's probably one of my most wanted features (after season mode). xot82 made me aware of it just a couple of days ago, I was stunned! I was looking through smozROM.py briefly to see if I thought it was at all possible to implement on SNES, but I don't know Hopefully xot82 can figure it out. I just haven't been hacking at all in over a year, and like three years since I did it to some extent.. :/ Did you figure out the individual hits, toi and +/- by yourself? Either way, very impressive! Quote
trudatman Posted October 21, 2010 Report Posted October 21, 2010 those hacked statistics are not shown in-game, but rather in some extractable packet for use with a statistics recorder of some sort. Quote
Xstioph Posted October 21, 2010 Report Posted October 21, 2010 those hacked statistics are not shown in-game, but rather in some extractable packet for use with a statistics recorder of some sort. Yes I know that (you could probably make so it's shown in-game as well though, instead of PIM or something like that).. And I've already got one of those (it would only be a matter of adding the new stuff to it), all I'm curious about is if it's possible to implement in a SNES rom at all. Quote
smozoma Posted October 22, 2010 Author Report Posted October 22, 2010 I was looking through smozROM.py briefly to see if I thought it was at all possible to implement on SNES, but I don't know Hopefully xot82 can figure it out. I just haven't been hacking at all in over a year, and like three years since I did it to some extent.. :/ Did you figure out the individual hits, toi and +/- by yourself? Either way, very impressive! These are code hacks, not data hacks, so it's not transferable to SNES. (they are different games, and on different systems, so the code is completely different, though it does roughly the same thing (make a hockey game..)) TOI was actually being recorded all along, I just stumbled across it. I don't know if it's in the SNES version or not. The game also actually recorded "checks for" for each player originally, in memory after goals, assists, shots, PIM (and then Checks For, which was not displayed). I modified it so it replaces PIM with checks for (which is why Checks For shows up in Player Stats if you apply the weight bug fix), and then checks against where the original checks for was. PIM is no longer recorded, so it must be calculated from the Penalty Summary in the stat extractor. Displaying +/- in-game is not going to happen for several reasons... 1) i'm not actually keeping a +/- score for each player, i'm just recording who was on the ice for each goal (so +/- is calculated by the stat extractor, not the hack code) 2) if i did calculate +/- in the hack and replace PIM with that, then we lose either Checks for or Checks Against. 3) The game doesn't know how to write negative numbers to the screen (but yes, I came up with the hacks myself the player ratings out of 15 instead of 6 was the hardest hack, requiring the most work) Quote
Xstioph Posted October 22, 2010 Report Posted October 22, 2010 (edited) These are code hacks, not data hacks, so it's not transferable to SNES. (they are different games, and on different systems, so the code is completely different, though it does roughly the same thing (make a hockey game..)) TOI was actually being recorded all along, I just stumbled across it. I don't know if it's in the SNES version or not. The game also actually recorded "checks for" for each player originally, in memory after goals, assists, shots, PIM (and then Checks For, which was not displayed). I modified it so it replaces PIM with checks for (which is why Checks For shows up in Player Stats if you apply the weight bug fix), and then checks against where the original checks for was. PIM is no longer recorded, so it must be calculated from the Penalty Summary in the stat extractor. Displaying +/- in-game is not going to happen for several reasons... 1) i'm not actually keeping a +/- score for each player, i'm just recording who was on the ice for each goal (so +/- is calculated by the stat extractor, not the hack code) 2) if i did calculate +/- in the hack and replace PIM with that, then we lose either Checks for or Checks Against. 3) The game doesn't know how to write negative numbers to the screen (but yes, I came up with the hacks myself the player ratings out of 15 instead of 6 was the hardest hack, requiring the most work) Hehe.. I didn't have high hopes, I just thought it would be worth a shot (to look through it and see what it was).. The hacks I've been doing have been pretty much straight up transferable, just switch little/big endian and some different offsets. Oh well, still great too see this stuff (even though it's for GENS, heh). With the skills some of you guys have, wouldn't you have been able to make an actual hockey game? It baffles me that there aren't any real like indie hockey games or something like that, not that I've heard of anyway. Edited October 22, 2010 by Xstioph Quote
JT_Dutch Posted October 25, 2010 Report Posted October 25, 2010 Displaying +/- in-game is not going to happen for several reasons... 1) i'm not actually keeping a +/- score for each player, i'm just recording who was on the ice for each goal (so +/- is calculated by the stat extractor, not the hack code) 2) if i did calculate +/- in the hack and replace PIM with that, then we lose either Checks for or Checks Against. 3) The game doesn't know how to write negative numbers to the screen ... What are your recommendations regarding a program that can extract these numbers? I'm using Donch's stat extractor for NHL '94 but I can't see any reference made to players on the ice when each goal is scored - nor can I see any reference to Time On Ice. Any help you can give me with this would be very much appreciated. Quote
smozoma Posted November 21, 2010 Author Report Posted November 21, 2010 ... What are your recommendations regarding a program that can extract these numbers? I'm using Donch's stat extractor for NHL '94 but I can't see any reference made to players on the ice when each goal is scored - nor can I see any reference to Time On Ice. Any help you can give me with this would be very much appreciated. I have added a link to the info about how to extract the +/- stat Quote
PixelDragon Posted December 6, 2010 Report Posted December 6, 2010 Hey, i have a crash, with window 7 Fatal Python error: cannot get zipimporter instance... Signature du problème : Nom d’événement de problème: APPCRASH Nom de l’application: smozROM.exe Version de l’application: 0.0.0.0 Horodatage de l’application: 4c4482bf Nom du module par défaut: python31.dll Version du module par défaut: 3.1.1150.1013 Horodateur du module par défaut: 4a897148 Code de l’exception: 40000015 Décalage de l’exception: 0008a2f5 Version du système: 6.1.7600.2.0.0.768.3 Identificateur de paramètres régionaux: 1036 Information supplémentaire n° 1: 6d83 Information supplémentaire n° 2: 6d8319bcb82f9c11c7c0a41405746fc7 Information supplémentaire n° 3: 8e19 Information supplémentaire n° 4: 8e19a438affb421ef7e4bf14da7f0e4d any ide ? thanks Quote
smozoma Posted December 6, 2010 Author Report Posted December 6, 2010 Wild guess since I have no ideas... Are you trying to run the file from inside a the zip? You need to extract all the files first. If that's not it, hit me up on AIM next time you see me and I'll try to figure it out with you. Quote
PixelDragon Posted December 6, 2010 Report Posted December 6, 2010 Wild guess since I have no ideas... Are you trying to run the file from inside a the zip? You need to extract all the files first. If that's not it, hit me up on AIM next time you see me and I'll try to figure it out with you. No that's not the prob... the files ware unzip... we talk on aim then... Quote
smozoma Posted December 7, 2010 Author Report Posted December 7, 2010 No that's not the prob... the files ware unzip... we talk on aim then... As a temporary workaround, if you want to bother, you can install Python (the programming/scripting language smozROM is written in) and run the program directly from the source code file. It's easy enough. Install Python v3 (Windows x86 MSI Installer or Windows X86-64 MSI Installer depending on if your computer is 64 bit or not (if you're not sure, try either one until it works!)). You just download the .msi file, double-click it, and follow the usual instructions. Instead of dragging-and-dropping a ROM onto smozROM.exe, you drag-and-drop a ROM onto smozROM.py, which is in the src folder. Quote
JT_Dutch Posted December 12, 2010 Report Posted December 12, 2010 - Improved Three Stars rating formula ... I've looked everywhere here for the offset hex that gives the three stars. Can anyone help me with this? Thanks in advance. Quote
smozoma Posted December 12, 2010 Author Report Posted December 12, 2010 ... I've looked everywhere here for the offset hex that gives the three stars. Can anyone help me with this? Thanks in advance. I'm pretty sure there isn't one. I think it's calculated and displayed on the fly. Quote
Seano7302 Posted July 24, 2013 Report Posted July 24, 2013 What do you mean by drag the file on to the exe file? It crashes when you do that. Quote
smozoma Posted July 24, 2013 Author Report Posted July 24, 2013 normal drag and drop. what error does it give? see post #26 here for a workaround (install python programming language, drag and drop onto the source file, instead of the .exe) Quote
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.