diff options
author | notaz | 2011-07-12 01:29:22 +0300 |
---|---|---|
committer | notaz | 2011-07-13 01:36:17 +0300 |
commit | 96186eba5d5bbc011f913e8e63ba2e3bebba81ba (patch) | |
tree | 31710a96fc1dfab0b1ee50707e2fc517e7ab05d9 | |
parent | 69d41dfb344005792a17a529fdd18219c4998842 (diff) | |
download | pcsx_rearmed-96186eba5d5bbc011f913e8e63ba2e3bebba81ba.tar.gz pcsx_rearmed-96186eba5d5bbc011f913e8e63ba2e3bebba81ba.tar.bz2 pcsx_rearmed-96186eba5d5bbc011f913e8e63ba2e3bebba81ba.zip |
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.
-rw-r--r-- | libpcsxcore/new_dynarec/new_dynarec.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index ab90fda..6f45cfc 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); } |