From 96186eba5d5bbc011f913e8e63ba2e3bebba81ba Mon Sep 17 00:00:00 2001 From: notaz Date: Tue, 12 Jul 2011 01:29:22 +0300 Subject: [PATCH] drc: redo fastboot hack relying on PC to check if we already exited was a bad idea, as cc_interrupt stuff updates the PC already. --- libpcsxcore/new_dynarec/new_dynarec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index ab90fda3..6f45cfc5 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -10988,10 +10988,14 @@ int new_recompile_block(int addr) #ifdef PCSX if (start == 0x80030000) { // nasty hack for fastbios thing + // override block entry to this code instr_addr0_override=(u_int)out; emit_movimm(start,0); - emit_readword((int)&pcaddr,1); + // abuse io address var as a flag that we + // have already returned here once + emit_readword((int)&address,1); emit_writeword(0,(int)&pcaddr); + emit_writeword(0,(int)&address); emit_cmp(0,1); emit_jne((int)new_dyna_leave); } -- 2.39.5