Thread: Help modifying an old game

  1. #1
    Registered User
    Join Date
    Dec 2010
    Posts
    7

    Help modifying an old game

    Hey!

    I have a very old football (soccer) management game entitled 'Championship Manager 93' which I would like to modify. The game itself is quite simple, heres a video of the gameplay to give you an idea:

    YouTube - Championship Manager ad

    You can download the game here:

    Megaupload: MEGAUPLOAD - The leading online storage and file delivery service
    RapidShare: http://rapidshare.com/files/439481783/cm93.rar

    Can anyone point me in the right direction on how I may modify the game please? (I'm completely new to programming).

    Thanks for your time.

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,661
    Modify it to do "what" - play chess?

    Modify to to run on "what" - I guess it was archaic DOS (from its size) and you want to to run on the latest Windows XYZ

    If all you're interested in is running it, then try DOSBox, an x86 emulator with DOS
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    Registered User
    Join Date
    Dec 2010
    Posts
    7
    I would like to modify:

    Player names
    Manager names
    Player attributes
    Team names
    Team colours
    Stadium names

    (for a start)

    Yes it's a DOS game that works on XP (however I run it in DosBox).

  4. #4
    Registered User
    Join Date
    Sep 2006
    Posts
    8,868
    I can't tell you much about it, from the game - it won't run without the right password (info) being given from the manual.

    To make the extensive changes you want, the question is, will the software allow you to make those changes even *if* you have the password info you need?

    If it won't, then don't bother. You don't have the source code here. The only changes you could make would be the one's that the program allows. (I'm taking for granted that you can't disassemble and modify the resulting data - I'm sure that's being realistic.)

    IMO, do yourself a favor and buy the updated version of the program. You'll save yourself a lot of frustration, and have a lot more fun - plus you'll be supporting a program and programmers, that you obviously enjoy playing/playing with their game.

  5. #5
    Registered User
    Join Date
    Dec 2010
    Posts
    7
    The password info is included (codes.txt).

    I already have several of the updated versions but I prefer this version. I have tried contacting the authors for the source code in the past but recieved no reply.

  6. #6
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    I'm guessing you're using this as abandonware, which doesn't necessarily mean it's legal for you to download or play, but I will pretend you are not violating any copyright issues in what you are doing. For the sake of argument then...

    Good luck getting the source code from a 17 year old game. Even if you can play the game legally, the source code is probably still copyrighted and companies generally don't like giving away proprietary stuff for free to some Joe Blow who feels like tinkering. Plus, they probably don't have it in some easy-to-access place. It's mostly likely archived somewhere that's too much hassle for them to get just because one random person wants to modify their game. Are you sure it's even written in C? How would you know without the source code?

    Most software licenses also specify that any reverse engineering, disassembly, etc is a violation of terms of use, so that option is technically out the window (plus it's incredibly difficult and time consuming).

    If you want to change this stuff, you might be able to do it without the source, but then it's not really a programming question. Sometimes I used to hack my saved game files for the original Civilizations using a hex editor (I used XTree Gold back in the day), but it still took a bit of work to figure out where the data was and what format it was in, at least initially. Once you determine where everything is and how it's stored, you could write a program with a UI to modify any number of game parameters.

  7. #7
    Registered User
    Join Date
    Dec 2010
    Posts
    7
    Thanks for your constructive reply Anduril.

    According to this article it is written in C.

    I do have a save game editor available for this game which enables me to edit some player attributes, but not all (idk if the editor could be modified or useful in finding out exactly where the data is that I need to change). I have tried a hex editor and I can see all the names and stuff, but I presume that changing the name 'John' to 'Dave' (for example) would change every player named John to Dave, so I think I need to find out where exactly in the file it puts a John Smith in Team A, rather than change the actual name data.
    Last edited by neljan; 12-27-2010 at 01:26 PM.

  8. #8
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    I have tried a hex editor and I can see all the names and stuff, but I presume that changing the name 'John' to 'Dave' (for example) would change every player named John to Dave
    Probably, not. It's more than likely they have a structure that represents each player, including a name field and his playing statistics, etc. Changing such an instance of John to Dave should only change that player. Changing the team he is on depends on how they store team info. I would assume (and hope, as a matter of design), that they made a team a list or collection of players (rather than making team an attribute of a player). But you probably wont find a list of player names or entire player objects (that would duplicate too much data, and people cared about conserving space in the olden days). There will probably be some sort of reference to a player object, like a numerical ID that you will have to correlate to some field in the stored player object.

    Quote Originally Posted by neljan View Post
    I do have a save game editor available for this game which enables me to edit some player attributes, but not all (idk if the editor could be modified or useful in finding out exactly where the data is that I need to change).
    If you can, you may want to dig into the source of that program (if you have it or can obtain it). They probably have structures that represent the various game objects like players, teams, etc which will give you great insight into how to the data is stored and how to modify it, and allow you to expand the feature set of the save game modifier. Do be careful though, there may be a reason they don't let you modify all aspects of a player. The formulas used for game calculation may expect certain values to fall within certain ranges, and going outside those ranges could result in anything from bogus game play (a super fast player acting slowly) to game crashes from bad math (floating point exceptions, div by zero, etc).

  9. #9
    ATH0 quzah's Avatar
    Join Date
    Oct 2001
    Posts
    14,826
    It doesn't really matter if it is written in C, unless they've provided the source code. Even then, having the source code doesn't meant that you'll be able to freely edit the data files, because while the data may be provided, their editors likely are not. Unless they decide to do something nice, like include the source, and just hard code all the values in arrays in said source, then you aren't going to be able to just open it up and start swapping names around.

    You may have to manually figure which file the information is, hope it's not check-summed (as above poster implied), and try to manually sort out the file format for yourself so you can tweak the data.


    Quzah.
    Hope is the first step on the road to disappointment.

  10. #10
    Registered User
    Join Date
    Dec 2010
    Posts
    7
    Can anyone recommend a forum where I can get some help with hex editing please?

    Thanks

  11. #11
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    I don't think you'll find a forum dedicated to general hex editor information. You could just try asking specific questions here, I'm sure somebody can help if I can't.

    Start by getting a decent hex editor. This appears to be a decent Windows one.

    It helps if you understand hexadecimal and endianness. It may also help if you understand ASCII or the British equivalent (if there is one) since it was developed in England.

    Tell us what you do and do not know and don't know so far, and ask some specific questions.

  12. #12
    Registered User
    Join Date
    Dec 2010
    Posts
    7
    I like you

    Ok so what I did was I copied the games SVGAME file (save game file) and then I altered some attributes of a particular player (using the editor I mentioned before) within the copy of the SVGAME file, so I now have 2 almost identical files apart from a few different attributes to one particular player. Then I used a hex comparison tool to help identify the part(s) I altered with the editor.

    Heres an image of the hex comparison tool and the player, highlighting one of the attributes I altered (his pace):

    http://i86.photobucket.com/albums/k9...comparison.gif

    What I would like to do next is try and change his character type. I should point out that the character - unlike his name - isn't just a word. The players character type has an effect on several aspects of the game, so I'd imagine that the important character data (A confident player = Extra morale points etc) are stored within the main program file(s) and the SVGAME file gathers the relevant data from those file(s) for that player. I say this because whenever you start a new game, around 50% of players get assigned a character type at random, thus when you save the game it must also store the players character type.

    So... any idea how I can find the values within the SVGAME file which represent this players character type? Would 'Word (HEX)' and 'DWord (HEX)' help me at all?

    Thanks again in advance for your time.

  13. #13
    ATH0 quzah's Avatar
    Join Date
    Oct 2001
    Posts
    14,826
    You are basically going to need to do a series of comparisons, to figure out the file format for yourself.

    1. Make a game, save, move the save file out some place.
    2. Make another game, with identical game choices, save with the same file name.

    Compare them. If they are identical, you're starting off good. Go back to step 2, but change one thing. Just one thing. Like one letter in the character's name, or one minor thing. Save again with the same file name. Compare again the original file, and the one with the latest change. Repeat until you have figured everything out.


    Quzah.
    Hope is the first step on the road to disappointment.

  14. #14
    and the Hat of Guessing tabstop's Avatar
    Join Date
    Nov 2007
    Posts
    14,336
    I would imagine that things like character types are stored via an enum (or the moral equivalent thereof) -- there's most likely a range of values that you can have and their labeled one through ... whatever.

    The way you're going about it, you'll want to start using diff.

  15. #15
    ATH0 quzah's Avatar
    Join Date
    Oct 2001
    Posts
    14,826
    Quote Originally Posted by tabstop View Post
    The way you're going about it, you'll want to start using diff.
    If you're on Windows, I recommend WinMerge.

    Quzah.
    Hope is the first step on the road to disappointment.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. how do the game engine and the api interact?
    By Shadow12345 in forum Game Programming
    Replies: 9
    Last Post: 12-08-2010, 12:08 AM
  2. Replies: 15
    Last Post: 10-20-2009, 09:39 AM
  3. Open Source / Semi Open source game idea. Help needed
    By CaptainPatent in forum Projects and Job Recruitment
    Replies: 10
    Last Post: 05-16-2007, 10:44 AM
  4. game engine advice?
    By stien in forum Game Programming
    Replies: 0
    Last Post: 01-23-2007, 03:46 PM
  5. My Maze Game --- A Few Questions
    By TechWins in forum Game Programming
    Replies: 18
    Last Post: 04-24-2002, 11:00 PM