Xentor's Domain

I think, therefore I have too much free time.

Home

Quotes

Software

XenSoft


XenSoft GTA3 Mission Decompiler

Download Current Version (v0.0.7 PRE-ALPHA)

Contents:

  1. Requirements
  2. Downloadable Files
  3. Change Log
  4. To-Do List for Improvements
  5. Overview
  6. How to Use
  7. Known Bugs and Solutions
  8. Contact Info
  9. TECHNICAL: The Inner Workings of MAIN.SCM
Current Project Phase: Implementing Features tweaking

Requirements:

[Back to Top]

Downloadable Files:

XenSoft GTA3 Mission Decompiler v0.0.7 PRE-ALPHA (Download)
Required Definition File (Directory)
This is a link to a directory on CtlAltDel's website where you can download the updated definition file, scm.ini
Bookmark Files (Lists of bookmarks you can import into XSGMD)
(Right-click on them and pick 'Save As')
[Back to Top]

Change Log:

v0.0.7 PRE-ALPHA
  • Fixed bug where output.txt could not be 'browsed' for in options dialog
  • Options dialog now defaults to last-used directory
  • Fixed bug in bookmarks where read-only lists could be added to
  • Added search form
  • Implemented OpCode search
  • Bookmark list now auto-selects newly-added list
  • Implemented Variable search
v0.0.6 PRE-ALPHA
  • Optimized parameter translation
  • Viewer now displays parameters of unknown opcodes
  • Optimized GXT Loader (Almost instant!)
v0.0.5 PRE-ALPHA
  • Fixed thread bug, where non-existent 80th was displayed
  • Added custom bookmark lists
  • Added ability to load/save bookmarks
  • Fixed bookmark list bugs
  • Added back/forward buttons (Like history in a web-browser, to go back after following jumps
  • Misc small fixes
v0.0.4 PRE-ALPHA
  • Added preliminary bookmark functionality. Segment 3 threads are automatically marked, ability to add your own will come soon.
  • Added info display panel with details about each opcode. Still buggy.
  • Fixed minor errors
  • Decompiler no longer outputs to text. This feature will be back in later versions.
v0.0.3 PRE-ALPHA
  • Fixed resize bug where second scrollbar would be visible in viewer
  • Addresses referenced by segment 3 threads are now shown in orange with an orange line above them
  • Selected address is now shown in aqua
  • Code Viewer remembers now remembers selected address when it is scrolled out of view
  • Code Viewer now responds correctly to Up/Down arrows and PgUp/PgDn
  • You can now hit 'J' while a jump-type statement is selected to jump to the destination
  • Added option to Unload SCM from memory.
  • Added toolbar duplicating some menu commands. Back/Forward buttons are not functional yet.
  • Improved handling of menu/toolbar actions
v0.0.2 PRE-ALPHA
  • Removed GT3 load/save capability (Too slow)
  • Optimized memory usage (Now uses only 30MB)
  • XSGMD now loads GXT and model data from the IDE and GXT files included in GTA3, and no longer requires extracted text files.
  • Instructions with unknown opcodes or variables are now shown in red.
  • (Ignore the gray panel on the bottom. It's not finished yet)
  • Various bug-fixes in decompiler regarding jump addresses, variable/timer display, etc.
v0.0.1 PRE-ALPHA
  • Initial Release
[Back to Top]

To-Do List for Improvements:

Many FeaturesIn Progress

[Back to Top]

Overview:

XenSoft GTA3 Mission Decompiler is, as the title suggests, a decompiler for the mission file (main.scm) of Grand Theft Auto 3. On top of that, it includes a built-in viewer that, when complete, will have advanced color-coding, search capabilities, bookmarks, labels, and anything else that seems useful. This program is my own work, but I cannot take credit for the logic behind it. A few dedicated fans and programmers have been working for a long time to figure out the exact structure of the mission file, so that the modding community can start building custom missions for GTA3. The main contributors to this effort are (As listed in the scm.ini file): CtlAltDel, CyQ, idle, gequinn, and galax. Without them, none of this would be possible. Great work, guys!

XSGMD (Nice abbreviation, huh?) is my small contribution to the effort, designed to provide a faster decompiler under Microsoft Windows, and a capable and specialized viewer for the decompiled code, to make it slightly easier to decrypt the infamous main.scm.

Features Will Include:
  • Built-In decompilers/decoders for SCM, GXT, and IDE
  • Color-coded viewer to highlight important codes and jump destinations
  • Extended information display (When you click an opcode, a docked toolwindow will display detailed information
  • Ability to search for all occurences of a particular opcode or variable
  • Bookmark certain locations in the file, to keep track of important spots
  • Import a label file to replace important addresses with labels for easier translation
  • Ability to copy a block of code to the clipboard as text
  • Fully-customizable color scheme

[Back to Top]

How to use:

  • Start XSGMD by double-clicking the EXE file
  • The first time you run it, you'll need to configure it. Click the Options menu and pick File Paths. Set the location of each of the important files (2 of them are output files, so shouldn't exist yet)
  • Click File -> Load MAIN.SCM, to begin decompiling. The actual decoding took about 5 seconds on my P3-1GHz, and it takes another 5-10 seconds to save the object file. The other intermediate operations were nearly instant for me.
  • Click Windows -> Code Viewer to begin browsing the code. Use the scrollbar to navigate through the file. Arrows and PgUp/PgDn will be implemented shortly.
  • Enjoy!

[Back to Top]

Known Bugs and Solutions:

  • Plenty, but it's still in production
[Back to Top]

Contact Info:

Any suggestions, ideas, etc, can be sent to:

E-mail:
Xentor@usa.net
ICQ: 178793 (WWW Pager and EmailExpress disabled)
AOL IM: Xentor
IRC: irc.webchat.org (6667), in #gta3 and #gta3mods

If you want to help crack Main.scm, feel free to drop by the above IRC channel and get involved! You can find more info in the editing section of the GTA3.com Forums


Created by Xentor (Xentor@usa.net)
100% Made in Pico!