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.

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.

Share on other sites

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 : ).

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.

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.

ah, nice action.

- 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 : ).

wow... all the way back to 1917! averages based on decades? I guess I'll see if/when I get this thing running.

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 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)

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 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.

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.

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!

Share this post

Link to post

Share on other sites

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!

Share on other sites

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!

Share on other sites

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.

Share this post

Link to post

Share on other sites

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)

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

Share this post

Link to post

Share on other sites

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.

Share this post

Link to post

Share on other sites

... 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.

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.