Skip to content

dev_guide.md

mmvest edited this page Feb 7, 2025 · 2 revisions

Developers Guide

If you're interested in reverse engineering EQOA Frontiers or creating mods using FrontiersForge, this is the place to look!

Eventually there will be a more elaborate guide here likely explaining everything from the basic render loop to code styling.

What I've got for now are the primary tools I use for reverse engineering:

  • Cheat Engine – For memory scanning and data type dissection (useful for struct layouts, offsets, etc.).
  • PCSX2 Debugger – Used for memory scanning within the emulator's memory space and interfacing with the underlying MIPS processor.
  • Ghidra – A powerful decompiler for analyzing binaries.
  • Wireshark – Used for packet sniffing and network analysis.

Perhaps I'll split RE material into its own page eventually.

Understanding EEmem

PCSX2, since version 1.7 (I believe), exposes a variable called EEmem. This variable is a pointer to a pointer to emulated PCSX2 memory. When working with memory addresses in code, all addresses should be relative to *EEmem (the value located at EEmem) to ensure consistency across different sessions and memory layouts.

An example of using EEmem in CheatEngine to retrieve a value is shown below: image

Clone this wiki locally