Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

ethan (3163)

  reversethis-{ed. ... rap.nov.olissat}

Being a 25-year old chap living in the western-most town of Germany. Stuying communication and information science and being a huge fan of XS-related things.

Journal of ethan (3163)

Thursday April 22, 2004
02:14 PM

Reverse engineering from scratch

[ #18436 ]

For some reason I am a huge fan of a very old DOS game, namely EASPORT's NHL93. As WindowsME is the last Windows version
which can run the game without emulators, I'll keep it around for another few years.

There are a number of things however that aren't quite right with this game. For instance, players hardly get any penalties. And when they do, the difference between aggressive and not so aggressive players is too small (Tie Domi simply must sit on the bench far more often than, say, Pierre Turgeon).

Each player has 15 attributes attached to himself (shoothand and 14 numeric values describing his strong and weak points in the range of 0 and 100). I know that these values can be higher than 100 because there is one player (it must be a bug in the program), that has an endurance of 370 and indeed, the line he's playing on hardly fatigues at all. Now my idea was to figure out where and how the player ratings are saved among the many data files that belong to a season.

My first attempt was running the game on Linux under dosbox and do a strace on it. That showed me which files are read but the signal-to-noise ratio rendered this approach pretty useless.

Instead I am now opening the files in a hex-editor, change a few bytes and see what changes in the game. As I have never done such a thing before, it is a bit of a tedious work. But with that and Perl (which I use to read and unpack a file when I think I have identified something) I was able to decipher the way the game stores the teams's schedules. It's an easy 6-byte record per game (first two bytes are month/day, third byte home team, forth byte away team and two bytes (0xFF 0xFF) used as record separators). Figuring out that took me around half an hour.

Too bad that this was not the information I was looking for so my search continues now.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Get EA's NHL 2004 or something. :)
    • I also have NHL 2003 which was alright (besides 1997, 1998, 1999 and 2000). 2004...well, maybe I'll get hold on that unexpectedly. ;-)

      The recent EASPORT games certainly look awesome and are fun to play. But oddly enough, for me they are still no match for NHL93. I am playing this game in a rather odd way, I have to say. I am controlling all teams in my league, playing one third of each two teams in a game myself and have the last third be played by the computer.

      This (and some other of my beloved rules) is