mikage-emu / mikage-dev
- вторник, 31 декабря 2024 г. в 00:00:02
Mikage Developer Edition
CMake and Conan 2 are required to build Mikage.
mkdir build
cd build
conan install .. -of . --build=missing
(add -s build_type=Debug
for Debug builds)cmake -DCMAKE_BUILD_TYPE=Release .. -G Ninja -DCMAKE_PREFIX_PATH=`realpath .`
ninja
Some dependencies may be provided by system packages instead of building them
via Conan. To enable this behavior, add the following to your Conan profile
(~/.conan2/profiles/default
):
[platform_requires]
boost/1.80.0
cryptopp/8.5.0
sdl/2.0.20
range-v3/0.11.0
catch2/2.13.7
libunwind/1.8.0
For the first launch, three things must be set up:
aes_keys.txt
must be placed in the build
folderGiven any game with an update partition, steps 2 and 3 can be done by running:
cd build && source conanrun.sh && ./source/mikage game.cci --bootstrap_nand --launch_menu
NOTE: Currently, this probably requires a game of the EU region. Patching
SecureInfo_A
by hand after bootstrapping may work, too.
Once set up, it's sufficient to run ./source/mikage game.cci
or ./source/mikage --launch_menu
.
You'll need to source conanrun.sh
to set up library directories.
Individual processes may be debugged through an embedded GDB remote server over
network port 12345. To enable it, pass --debug
and --attach_to_process <pid>
when launching Mikage. After startup, connect via gdb using tar ext :12345
,
wait until Mikage prints a message about waiting for the debugger attach, then
type attach <PID>
in the gdb shell. Note that a gdb build for ARM targets may
be necessary to do this. Debuggers other than gdb may work but are untested.
Processes running in the emulated kernel can be introspected through a simple debug console available via telnet on port 12347.