A way to view the PSO source code

mortisfons

Member
Guildcard
5555
I was wondering if there was some way to view the code of PSO. Been trying to make a game inspired by PSO and would like to see how certain things are handled like the targeting system for your abilities/action bar.
 
You can load the exe in Ghidra or your favorite RE tool to get disassembly and/or literal decomp. The game was written in C++ and built with some aggressive optimization which bloats some code.

Other versions of the game have class names in the executable which make finding constructors for some classes pretty easy. But afaik it's much harder to debug those other versions to actually find classes/functions where you know nothing about them.
 
So how have Ephinea made their changes to the game? Plus I have heard Sodaboy wrote a bunch of the server code that a bunch of the private servers use now, or something similar.
 
So how have Ephinea made their changes to the game? Plus I have heard Sodaboy wrote a bunch of the server code that a bunch of the private servers use now, or something similar.
psobb.exe was modified to load ephinea.dll at startup. That DLL patches the game when it's loaded. Patches are a mix of simply changing values (HUD element positioning for example), assembly patches (overwriting instructions to do something else, typically jumping to code in the DLL's address space), and wrapping or changing addresses of function calls to go into the DLL instead.

There's an open source patching project on github with various patches.

Yes, this server and a couple others are based on software written by Sodaboy. But that project is outdated and no longer found on the forums. Refer to this thread for more details. You can probably find a github repository for Tethealla somewhere if you search well enough, but it's not supported here so you'd need to get help from other sources.

Anyway, the source code for the game was never released by Sega. The best you'll get is disassembly or literal decomp. There is a binary matching decomp project for one of the Gamecube versions, but that project has one contributor and will probably take years to get beyond some of the game's well-understood classes and areas (THeap, TObject, TProtocol, implemented packet handlers, quest engine).
 
Last edited:
There is a binary matching decomp project for one of the Gamecube versions, but that project has one contributor and will probably take years to get beyond some of the game's well-understood classes and areas (THeap, TObject, TProtocol, implemented packet handlers, quest engine).

what project is the binary matching decomp one?

Other versions of the game have class names in the executable which make finding constructors for some classes pretty easy. But afaik it's much harder to debug those other versions to actually find classes/functions where you know nothing about them.
what are those other versions?

Sorry to pester you about the sources, but taking a look at projects with some of the code already identified would make getting a foothold in the codebase significantly easier.
 
Well thanks for the information you've given so far. I was hoping to not have to reverse engineer the game to find out how certain mechanics work. Though I'll begin diving into that process tomorrow and take a look at the decomp or something.
 
Back
Top