hide results

    Save Game Hacking Guide by mlindstr

    Version: 0.1a | Updated: 12/31/02 | Printable Version | Search This Guide

    12345678901234567890123456789012345678901234567890123456789012345678901234567890
    ------------------80 character margin makes GameFAQs happy :)-------------------
    
    VIRTUA TENNIS PC SAVEFILE HACKING GUIDE v0.1a
    December 31st, 2002
    Copyright 2002 by Markus Lindström. All rights reserved.
                      _
                     |_|
         _        _   _    _____    _______   _     _    ______
        | |      | | | |  |  __ |  |__   __| | |   | |  |  __  |
        |  \    /  | | |  | |__||     | |    | |   | |  | |  | |
         \  \  /  /  | |  |  _  |     | |    | |   | |  | |__| |
          \  \/  /   | |  | | \ \     | |    | |   | |  |  __  |
           \    /    | |  | |  \ \    | |    | |   | |  | |  | |
            \  /     | |  | |   \ \   | |    | |___| |  | |  | |     _
             \/      |_|  |_|    \_\  |_|    |_______|  |_|  |_|    |_|
                 _______    ________   ___       _    ___       _    _    ________
                |__   __|  |  ______| |   \     | |  |   \     | |  | |  |  ______|
                   | |     | |        | |\ \    | |  | |\ \    | |  | |  | |
                   | |     | |___     | | \ \   | |  | | \ \   | |  | |  | |______
                   | |     |  ___|    | |  \ \  | |  | |  \ \  | |  | |  |______  |
                   | |     | |        | |   \ \ | |  | |   \ \ | |  | |         | |
                   | |     | |______  | |    \ \| |  | |    \ \| |  | |   ______| |
                   |_|     |________| |_|     \___|  |_|     \___|  |_|  |________|
    
    =====
    INDEX
    =====
    
       I. History
      II. Introduction
     III. Needed stuff
      IV. Basic hex editing for dummies
       V. Important notes
      VI. The good stuff
     VII. Legal stuff
    VIII. Contact me, and other info
    
    ----------
    I. HISTORY
    ----------
    
    v0.1a December 31st, 2002
      -Minor mistakes fixed.
      -Adapted formatting to GameFAQs 80 char margin.
    
    v0.1 September 2nd, 2002
      -Initial release.
    
    ----------------
    II. INTRODUCTION
    ----------------
    
    Hi there folks!! Don't mind the ASCII art up there, it's my first ever... I hope
    you can excuse my urge to express myself artistically ;-) !! So... hum...
    Welcome to this VIRTUA TENNIS savefile hacking guide!! If you haven't heard about
    this game, you must've lived under some rock... Anyway, if you haven't played it
    yet, I warmly recommend it, because it's a true gaming masterpiece!!
    
    Some of you might remember that good ol' Super Tennis back in the 90s on the
    SNES, and how fun that game was... or that's my opinion anyway... Well, this
    game is slightly more axed towards arcade. This has both advantages and
    disadvantages, IMHO. Advantages are i.e. that anyone can learn to play this game
    pretty fast, due to its simple controls. And one glaring disadvantage is well...
    The fact that the controls are somewhat TOO simple... I don't mean the game's
    bad or anything, but you're basically limited to two buttons: hit and lob. If
    you're used to play Super Tennis where four different strokes were available,
    well, you're in for a surprise...
    
    Of course, there are ways of steering your strokes, such as pulling the
    controller in the opposite way you're hitting to make a weak shot, which is kind
    of useful on grass courts.
    
    So, what is this document made for, you may ask?
    
    Well, if you're here, you're either interested in experimenting with hex editing,
    like me, or you're looking for a way to cheat... Which isn't as honorable, if I
    may say :P.
    
    The game does offer a great challenge, but after timeless retries, anything can
    be beat. So please, just try to beat it by yourself first!!
    
    I haven't finished the game myself as of now, but I don't have all that much
    time to play right now, so that'll have to wait...
    
    Anyhoo, without further ado, let's get down to business...
    
    -----------------
    III. NEEDED STUFF
    -----------------
    
    Well well... As you might understand, you need Virtua Tennis installed on your
    PC... If you don't understand that, well... You might need some serious help.
    
    Next up, you'll need a hex editor. I personally use Hex Workshop, by Breakpoint
    Software, which can be downloaded at their website: http://www.bpsoft.com
    
    Now, just because I use it, doesn't mean you HAVE to, any hex editor will do!
    
    Oh... And you also need to run Virtua Tennis at least once so it generates its
    savefile, which is a file called VIRTUATENNIS in the game directory.
    
    ---------------------------------
    IV. BASIC HEX EDITING FOR DUMMIES
    ---------------------------------
    
    
    
    I'll be considering you use Hex Workshop for this introduction...
    Now, if you're used to hex editing, well... Just skip the damn section!!
    
    Anyhow, let's get started...
    
    I'm sure you all know size on our computers in measured in bytes.
    Well, load up a file in your hex editor, and you'll see lots of symbols, which
    range from 0 to 9 and A to F. Those are what we call HEXADECIMAL values, as
    opposed to DECIMAL, which are the common numbers 0 to 9.
    
    So... what does that really mean? Let me show you an example:
    In base 10, or decimal values, as you wish, we all know 9+1 equals 10.
    Well, in "hex" (as hexadecimal is abbreviated), 9+1 equals... A!!
    You might ask yourself what's going on here... But it really does make sense.
    
    In hex, the number 10 isn't the same 10 as in decimal, but actually 16!! If you
    look at the word "hexadecimal", and you know some basic greek, you'll understand
    it means something about sixteen...
    
    Well, in decimal, we have 10 basic integers, which are 0 to 9.
    In hex, we have 16 basic integers, which are 0 to 9 PLUS A to F.
    Add it all up, you'll see you have 16 integers.
    
    Got all that?
    
    If not well... sorry I can't make this any easier ;-)
    
    
    Now, back to our hex editor.
    Each pair of symbols represent a specific byte of the file.
    See that column to the left? That's what's called "offsets".
    What are offsets? They're the specific address of a byte in the file.
    
    Soooo... Still with me?
    
    Now, if you want to modify a specific byte in the file, you'll just have to
    look for the offset of the byte you want to change, and well, just put something
    else in its place... More about this further down, when I'll list the actual
    useful offsets.
    
    Now, let's just discuss one final thing: values a byte can take.
    I think you can figure this out by yourself: one byte is represented by two
    hexadecimal integers, the smallest value possible is thus 00, and the highest
    would be... yup, FF it is!
    
    If you've ever used a Pro Action Replay or GameShark on a console, I'm sure
    you've noticed this is a number that frequently comes into play...
    
    I think this is enough knowledge for you to be able to use this document.
    
    If you need anymore help, just contact me!!
    
    
    ------------------
    V. IMPORTANT NOTES
    ------------------
    
    IMPORTANT: The savefile is coded in little-endian, which means all values are
    reversed... What does this mean? Well, take a look at the clothing offset. If
    you wish to have all clothes, well, you'd likely put 0F FF FF FF from 0x14h to
    0x17h right? WRONG! In little-endian, that would give FF FF FF 0F instead!! The
    actual values shown in this guide are in big-endian, which would be the "normal"
    way, so you'll have to reverse them yourselves...
    
    IMPORTANT: The key to many things in this game's savefile is a specific pattern
    which seems to be used. Take a look at the clothing offset right underneath this
    note, for example. If you'd like to have Wear No. 1 and No. 12 available, you'll
    haveto add their values together, and put that final result at the clothing
    offset.
    
    In this example, Wear No.1 is 00 00 00 01, and No. 12 is 00 00 08 00.
    Add them together, you'll have 00 00 08 01.
    Wherever this kind of calculation is needed, I've put a star next to the values,
    as well as the value where everything is turned on.
    
    If you're unsure about hex calculations, just use the Windows Calculator!
    Put it in scientific mode, then HEX mode, and there you go...
    
    JUST DON'T FORGET TO REVERSE THE RESULTS!!
    I'll show it again, if you want to have No.1 and No.12, you'll
    have to put 01 08 00 00 starting at byte 0x14h, got that?
    
    ------------------
    VI. THE GOOD STUFF
    ------------------
    
    Oh, if you haven't found this out yet, the savefile's called VIRTUATENNIS, and
    it's placed in the game directory... You should backup your actual savefile
    before doing any changes though, as one single mistake could cause the game to
    crash, AND corrupt the savefile!
    
    Available clothing (4 bytes): 0x14h to 0x17h
    	*00000000: Original only
    	*00000001: Wear No. 1
    	*00000002: Wear No. 2
    	*00000004: Wear No. 3
    	*00000008: Wear No. 4
    	*00000010: Wear No. 5
    	*00000020: Wear No. 6
    	*00000040: Wear No. 7
    	*00000080: Wear No. 8
    	*00000100: Wear No. 9
    	*00000200: Wear No. 10
    	*00000400: Wear No. 11
    	*00000800: Wear No. 12
    	*00001000: Wear No. 13
    	*00002000: Wear No. 14
    	*00004000: Wear No. 15
    	*00008000: Wear No. 16
    	*00010000: Wear No. 17
    	*00020000: Wear No. 18
    	*00040000: Wear No. 19
    	*00080000: Wear No. 20
    	*00100000: Wear No. 21
    	*00200000: Wear No. 22
    	*00400000: Wear No. 23
    	*00800000: Wear No. 24
    	*01000000: Wear No. 25
    	*02000000: Wear No. 26
    	*04000000: Wear No. 27
    	*08000000: Wear No. 28
    	0FFFFFFF: All clothes available
    
    Available Virtua players in Arcade & Exhibition mode (1 byte): 0x19h
    	*01: Tinbergen (NED)
    	*02: Euler (SUI)
    	*04: Tesla (CRO)
    	*08: Altman (CAN)
    	*10: Singh (IND)
    	*20: Costa (BRA)
    	*40: Ventura (ITA)
    	*80: Inoue (JPN)
    	FF: All Virtua players available
    
    Available courts in Exhibition mode (1 byte): 0x1Dh
    	*0001: Australia Challenge (AUS)       |
    	*0002: French Cup (FRA)                |
    	*0004: US Super Tennis (USA)           +-> all needed!
    	*0008: Old England Championships (GBR) |
    	*0010: Sega Grand Match (USA)          |
    	*0020: Sweden Grand Prix (SWE)
    	*0040: Germany Men's Indoor (GER)
    	*0080: Russia Tennis Classic (RUS)
    	*0100: Spain International (ESP)
    	*0200: SPT Masters (JPN)
    	03FF: All courts unlocked
    
    Player used in World Circuit (1 byte): 0x10Ch
    	00: Courier (USA)
    	01: Pioline (FRA)
    	02: Henman (GBR)
    	03: Haas (GER)
    	04: Philipoussis (AUS) -- dummied picture, but WORKS!!
    	05: Moya (ESP)
    	06: Johansson (SWE)
    	07: Kafelnikov (RUS)
                                _
    	08: Tinbergen (NED)  |
    	09: Euler (SUI)      |
    	0A: Tesla (CRO)      |
    	0B: Altman (CAN)     |___ Yup, you can play
    	0C: Singh (IND)      |     with these guys too!
    	0D: Costa (BRA)      |
    	0E: Ventura (ITA)    |
    	0F: Inoue (JPN)     _|
    
    Doubles partner in World Circuit (1 byte): 0x10Dh
    	FF: No partner
    	00: Courier (USA)
    	01: Pioline (FRA)
    	02: Henman (GBR)
    	03: Haas (GER)
    	04: Philipoussis (AUS) -- dummied picture, but WORKS!!
    	05: Moya (ESP)
    	06: Johansson (SWE)
    	07: Kafelnikov (RUS)
    	08: Tinbergen (NED)
    	09: Euler (SUI)
    	0A: Tesla (CRO)
    	0B: Altman (CAN)
    	0C: Singh (IND)
    	0D: Costa (BRA)
    	0E: Ventura (ITA)
    	0F: Inoue (JPN)
    
    World Circuit Rank (1 byte): 0x10F
    	00: 300th	0C: 74th
    	01: 279th	0D: 60th
    	02: 258th	0E: 48th
    	03: 237th	0F: 37th
    	04: 216th	10: 32nd
    	05: 196th	11: 25th
    	06: 176th	12: 16th
    	07: 157th	13: 8th
    	08: 138th	14: 4th
    	09: 121st	15: 2nd
    	0A: 104th	16: 1st
    	0B: 88th
    
    --------------------------------
    VII. WORLD CIRCUIT LEVEL EDITING
    --------------------------------
    
    It gets a little more tricky here...
    The game uses 7 differents sets of 3 bytes to store information
    about levels in World Circuit mode.
    
    -The first byte (Availability) in each set is used to tell the game whether that
      level is available to the player, as in visible on the map.
    -The second one (Cleared) is used to tell the game whether the levels concerned
      have been cleared (duh).
    -And the last one (New! flag) is used to tell the game whether it should show
      that NEW! sign on the levels concerned.
    
    Confused yet?
    
    Another important note: Don't EVER put different levels of a same stage
    in the Availability bytes, because this will screw up your map navigation
    quite a bit... You'll see what I mean, should you try :p
    
    --------------------
    Level editing: Set 1
    --------------------
    Availability: EC
    Cleared: F4
    New flag: FC
    	*01: Lv.1 French Cup
    	*02: Lv.1 Drum Shooter
    	*04: Lv.2 French Cup
    	*08: Lv.2 Drum Shooter
    	*10: Lv.1 Germany Men's Indoor
    	*20: Lv.1 Russia Tennis Classic -- dummy, don't use!!
    	*40: Lv.2 Germany Men's Indoor
    	*80: Lv.1 Russia Tennis Classic -- dummy, don't use!!
    
    --------------------
    Level editing: Set 2
    --------------------
    Availability: ED
    Cleared: F5
    New flag: FD
    	*01: Lv.1 Old England Champiomships
    	*02: Lv.1 Return Ace
    	*04: Lv.2 Old England Championships
    	*08: Lv.2 Return Ace
    	*10: Lv.1 Sweden Grand Prix
    	*20: Lv.1 Smash Box
    	*40: Lv.2 Sweden Grand Prix
    	*80: Lv.2 Smash Box
    
    --------------------
    Level editing: Set 3
    --------------------
    Availability: EE
    Cleared: F6
    New flag: FE
    	*01: Lv.1 Russia Tennis Classic
    	*02: Lv.1 Bull's Eye
    	*04: Lv.2 Russia Tennis Classic
    	*08: Lv.2 Bull's Eye
    	*10: Lv.1 Australia Challenge
    	*20: Lv.1 Big Wall
    	*40: Lv.2 Australia Challenge
    	*80: Lv.2 Big Wall
    
    --------------------
    Level editing: Set 4
    --------------------
    Availability: EF
    Cleared: F7
    New flag: FF
    	*01: Lv.1 US Super Tennis
    	*02: Lv.1 Giant Ball
    	*04: Lv.2 US Super Tennis
    	*08: Lv.2 Giant Ball
    	*10: Lv.1 Spain International
    	*20: Lv.1 Cannon Ball
    	*40: Lv.2 Spain International
    	*80: Lv.2 Cannon Ball
    
    --------------------
    Level editing: Set 5
    --------------------
    Availability: F0
    Cleared: F8
    New flag: 0100
    	*01: Lv.3 US Super Tennis
    	*02: Lv.3 French Cup
    	*04: Lv.3 Old England Championships
    	*08: Lv.3 Australia Challenge
    	*10: Lv.4 SPT Masters
    	*20: Lv.4 Sega Grand Match
    	*40: Shop Pacific
    	*80: Shop Asia
    
    --------------------
    Level editing: Set 6
    --------------------
    Availability: F1
    Cleared: F9
    New flag: 0101
    	*01: Shop Cape
    	*02: Shop South
    	*04: Shop North
    	*08: Lv.3 Drum Shooter
    	*10: Lv.3 Pin Crusher
    	*20: Lv.3 Return Ace
    	*40: Lv.3 Smash Box
    	*80: Lv.3 Bull's Eye
    
    --------------------
    Level editing: Set 7
    --------------------
    Availability: F2
    Cleared: FA
    New! flag: 0102
    	*01: Lv.3 Big Wall
    	*02: N/A
    	*04: Lv.3 Cannon Ball
    
    ----------------
    VII. LEGAL STUFF
    ----------------
    
    Quote the Virtua Tennis PC website:
    
    >> Virtua Tennis is copyright of SEGA CORPORATION, 1999, 2000
    >> (c) SEGA / Hitmaker, 2000. All rights Reserved.
    >> Published by Empire Interactive.
    >> PC version developed by Strangelite.
    >> Empire is a registered trademark, the E logo is a trademark of Empire
    >> Interactive Europe Ltd. All rights reserved.
    
    Hmmm... I don't think people understand HALF of all that... But hey, better safe
    than sorry!!
    
    Oh, by the way, this guide? It's all my work, and well, I wouldn't be too happy
    to see this guide on unauthorized places...
    
    GameFAQs is the only authorized place as of now, and it'll probably stay that
    way, so PLEASE don't ask.
    
    --------------------------------
    VIII. CONTACT ME, AND OTHER INFO
    --------------------------------
    
    If you have any questions concerning this guide, or suggestions, please mail me
    at rrrrominet at hotmail dot com!!
    
    This guide is by no ways complete, and I'll continue to do some research when
    I'll have the time... Don't expect me to update this guide all that often,
    though!! But I'll give you my best shot ;-)
    
    
    ===========================
    END OF FILE
    ===========================