mirror of
https://github.com/libretro/RetroArch
synced 2025-04-17 20:43:10 +00:00
Merge pull request #5836 from QuarkTheAwesome/wiiu-exception
[WiiU] Exception handler fixes - coreinit offsets now working
This commit is contained in:
commit
96987e7cac
@ -90,8 +90,7 @@ void __attribute__((__noreturn__)) exception_cb(OSContext* ctx, OSExceptionType
|
||||
|
||||
/* First up, the pretty header that tells you wtf just happened */
|
||||
if (type == OS_EXCEPTION_TYPE_DSI) {
|
||||
/* Exception type and offending instruction location
|
||||
Also initializes exception_msgbuf, use buf_add from now on */
|
||||
/* Exception type and offending instruction location */
|
||||
buf_add("DSI: Instr at %08" PRIX32, ctx->srr0);
|
||||
/* Was this a read or a write? */
|
||||
if (ctx->dsisr & DSISR_WRITE_ATTEMPTED) {
|
||||
@ -216,6 +215,12 @@ void exception_print_symbol(uint32_t addr) {
|
||||
/* Try for a base address */
|
||||
void* libAddr;
|
||||
OSDynLoad_Acquire(symbolName, &libAddr);
|
||||
/* Special case for coreinit; which has broken handles */
|
||||
if (!strcmp(symbolName, "coreinit.rpl")) {
|
||||
void* PPCExit_addr;
|
||||
OSDynLoad_FindExport(libAddr, 0, "__PPCExit", &PPCExit_addr);
|
||||
libAddr = PPCExit_addr - 0x180;
|
||||
}
|
||||
*seperator = '|';
|
||||
/* We got one! */
|
||||
if (libAddr) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user