The GameCube emulator only emulates the GameCube’s CPU and graphics pipeline. The actual games are recompiled to aarch64. It appears that Nintendo used some kind of automated tool to translate the game’s PPC assembly to aarch64 instead of recompiling from source. This means you can’t just drop in a ROM and bypass some kind of checks and balances. The ROM has to have a aarch64 counterpart in order to work. I believe the memory structure of the ROM is still maintained, so the aarch64 bit is really only for the CPU instructions.
It’s also likely that the emulator was only created to work with Sunshine and may not have full GameCube emulation, and instead it emulates everything that Sunshine uses.
It would be wiser to spend the time on Dolphin to get games to run smoothly rather than work on getting Hagi to work. But that’s my 2¢.
.data is still taken from the dol, the AOT recompiled code only has .text and resolved constants.
Func layouts change since it has some basic heurs like inlining funcs <= 48 opcodes etc.
Also your first sentence is just weird to say, it "actively" emulates the GPU and DSP, CPU emulation is achieved by remapping registers to their counterpart in the context structure, (this ends up purely in aarch64) in the llvm IR optimization pass and emitting that as code -> another compiler optimization pass
Yields on back branches, interrupts, etc..
Honestly probably easier to make that work than optimizing dolphin to run on 1020mhz... both are huge undertakings and months to years of work
--------------------- MERGED ---------------------------
It’s also likely that the emulator was only created to work with Sunshine
Also huge bs, the emu couldnt be farther away from being only created for sunshine.
Its tons of state-of-the-art stuff and should run almost all of the library.
I also found leftovers of a interpreter which isnt compiled in etc. (and would absolutely suck anyway
, use-case are games with self modifying code I guess tho)
As far I can tell it targets the whole fucking library, also for the use case where source code isnt available and compat should be great.