notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
spu: add a guard for "runaway" channels
[pcsx_rearmed.git]
/
libpcsxcore
/
mdec.c
diff --git
a/libpcsxcore/mdec.c
b/libpcsxcore/mdec.c
index
167a1cf
..
c0f2cfd
100644
(file)
--- a/
libpcsxcore/mdec.c
+++ b/
libpcsxcore/mdec.c
@@
-525,7
+525,7
@@
void psxDma0(u32 adr, u32 bcr, u32 chcr) {
break;
}
break;
}
-
MDECINDMA_INT(
size);
+
set_event(PSXINT_MDECINDMA,
size);
}
void mdec0Interrupt()
}
void mdec0Interrupt()
@@
-625,7
+625,7
@@
void psxDma1(u32 adr, u32 bcr, u32 chcr) {
}
/* define the power of mdec */
}
/* define the power of mdec */
-
MDECOUTDMA_INT(
words * MDEC_BIAS);
+
set_event(PSXINT_MDECOUTDMA,
words * MDEC_BIAS);
/* some CPU stalling */
psxRegs.cycle += words;
}
/* some CPU stalling */
psxRegs.cycle += words;
}
@@
-674,27
+674,26
@@
void mdec1Interrupt() {
}
int mdecFreeze(void *f, int Mode) {
}
int mdecFreeze(void *f, int Mode) {
- u8 *base = (u8 *)
&psxM[0x100000]
;
+ u8 *base = (u8 *)
psxM
;
u32 v;
gzfreeze(&mdec.reg0, sizeof(mdec.reg0));
gzfreeze(&mdec.reg1, sizeof(mdec.reg1));
u32 v;
gzfreeze(&mdec.reg0, sizeof(mdec.reg0));
gzfreeze(&mdec.reg1, sizeof(mdec.reg1));
- // old code used to save raw pointers..
v = (u8 *)mdec.rl - base;
gzfreeze(&v, sizeof(v));
v = (u8 *)mdec.rl - base;
gzfreeze(&v, sizeof(v));
- mdec.rl = (u16 *)(base + (v & 0xffffe));
+ mdec.rl = (u16 *)(base + (v & 0x
1
ffffe));
v = (u8 *)mdec.rl_end - base;
gzfreeze(&v, sizeof(v));
v = (u8 *)mdec.rl_end - base;
gzfreeze(&v, sizeof(v));
- mdec.rl_end = (u16 *)(base + (v & 0xffffe));
+ mdec.rl_end = (u16 *)(base + (v & 0x
1
ffffe));
v = 0;
if (mdec.block_buffer_pos)
v = 0;
if (mdec.block_buffer_pos)
- v = mdec.block_buffer_pos -
base
;
+ v = mdec.block_buffer_pos -
mdec.block_buffer
;
gzfreeze(&v, sizeof(v));
mdec.block_buffer_pos = 0;
gzfreeze(&v, sizeof(v));
mdec.block_buffer_pos = 0;
- if (v)
- mdec.block_buffer_pos =
base + (v & 0xfffff)
;
+ if (v
&& v < sizeof(mdec.block_buffer)
)
+ mdec.block_buffer_pos =
mdec.block_buffer
;
gzfreeze(&mdec.block_buffer, sizeof(mdec.block_buffer));
gzfreeze(&mdec.pending_dma1, sizeof(mdec.pending_dma1));
gzfreeze(&mdec.block_buffer, sizeof(mdec.block_buffer));
gzfreeze(&mdec.pending_dma1, sizeof(mdec.pending_dma1));