I've written some code that extends the functionality of PS2SDK's ERL library. (FYI, an ERL is a relocatable ELF similar to an IOP IRX.) In particular, I've added the ability to relocate an ERL at a specific memory address (ERLs are relocated at a dynamic memory address by default.)
At the moment, I'm trying to get my patch into the official PS2SDK:
http://forums.ps2dev.org/viewtopic.php?t=11701
EDIT: My patch made it into the homebrew PS2SDK.
Here is a sample project that demonstrates how to use the new *_to_addr functions.
What this means to Artemis:
I've integrated the new ERL functions into Artemis' cheat engine manager. I'm proud to say that we are now able to relocate the cheat engine at any memory address in user space.
The address can be configured by the boot loader or a custom code type. There will be a default engine ERL statically linked into the main ELF, but you can also load other engines from ERL files at will. It is even possible to have multiple engines running concurrently, provided they're placed at different memory locations.
Of course, this is not limited to the cheat engine. We can use it for the debugger code and other things too.
http://forums.ps2dev.org/viewtopic.php?t=11701
EDIT: My patch made it into the homebrew PS2SDK.
Here is a sample project that demonstrates how to use the new *_to_addr functions.
What this means to Artemis:
I've integrated the new ERL functions into Artemis' cheat engine manager. I'm proud to say that we are now able to relocate the cheat engine at any memory address in user space.

The address can be configured by the boot loader or a custom code type. There will be a default engine ERL statically linked into the main ELF, but you can also load other engines from ERL files at will. It is even possible to have multiple engines running concurrently, provided they're placed at different memory locations.
Of course, this is not limited to the cheat engine. We can use it for the debugger code and other things too.
).
Comment