-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Decompiling Tips OllyDbg
Here are some tips you might find that come in handy while decompiling the game. See also Decompiling Tips IDA as a lot of those tips will be the same. Currently it is preferred to use IDA but if you want to use OllyDbg here are a few tips. I would suggest using version 2.01 as it makes it a bit easier to read. Unlike with IDA you don't have any offsets labelled and there is no handy database to add on that will give them. You will have to decompile the code first and then trawl through the C libraries to see if an offset has been identified. You can use OllyDbg to debug original RCT2 code and at the same time debug a decompiled C function. This is very handy for working out bugs.
Olly is not nearly as powerful as IDA but it does have its features.
The most important command when using Olly is CTRL+G this can be used to jump to a specified address. When you want to decompile a function first find out the address and then type it into the box. This will move you to the first line of the function.
You can use Olly to search for specific strings. To do this click the M
button and right click at the top and search for the string. When the string has been found you can right click it and search for any references. This can be used as a way to jump between debugging the .dll file and the .exe. You will find that some of my (duncanspumpkin) code whilst it is being worked on contains random strings. I use them to ensure I can place a breakpoint before jumping back to .exe code (RCT2_CALLPROC).
- Home
- FAQ & Common Issues
- Roadmap
- Installation
- Building
- Features
- Development
- Benchmarking & stress testing OpenRCT2
- Coding Style
- Commit Messages
- Overall program structure
- Data Structures
- CSS1.DAT
- Custom Music and Ride Music Objects
- Game Actions
- G1 Elements Layout
- game.cfg structure
- Maps
- Music Cleanup
- Objects
- Official extended scenery set
- Peep AI
- Peep Sprite Type
- RCT1 ride and vehicle types and their RCT2 equivalents
- RCT12_MAX_SOMETHING versus MAX_SOMETHING
- Ride rating calculation
- SV6 Ride Structure
- Settings in config.ini
- Sizes and angles in the game world
- Sprite List csg1.dat
- Sprite List g1.dat
- Strings used in RCT1
- Strings used in the game
- TD6 format
- Terminology
- Track Data
- Track Designs
- Track drawers, RTDs and vehicle types
- Track types
- Vehicle Sprite Layout
- Widget colours
- Debugging OpenRCT2 on macOS
- OpenGL renderer
- Rebase and Sync fork with OpenRCT2
- Release Checklist
- Replay System
- Using minidumps from crash reports
- Using Track Block Get Previous
- History
- Testing