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
Icache emulation from PCSX Redux + Senquack changes from PCSX4ALL (#198)
[pcsx_rearmed.git]
/
libpcsxcore
/
psxhw.c
diff --git
a/libpcsxcore/psxhw.c
b/libpcsxcore/psxhw.c
index
ebdff87
..
84ce2f7
100644
(file)
--- a/
libpcsxcore/psxhw.c
+++ b/
libpcsxcore/psxhw.c
@@
-44,7
+44,7
@@
void psxHwReset() {
u8 psxHwRead8(u32 add) {
unsigned char hard;
u8 psxHwRead8(u32 add) {
unsigned char hard;
- switch (add) {
+ switch (add
& 0x1fffffff
) {
case 0x1f801040: hard = sioRead8();break;
\r
#ifdef ENABLE_SIO1API
case 0x1f801050: hard = SIO1_readData8(); break;
\r
case 0x1f801040: hard = sioRead8();break;
\r
#ifdef ENABLE_SIO1API
case 0x1f801050: hard = SIO1_readData8(); break;
\r
@@
-70,7
+70,7
@@
u8 psxHwRead8(u32 add) {
u16 psxHwRead16(u32 add) {
unsigned short hard;
u16 psxHwRead16(u32 add) {
unsigned short hard;
- switch (add) {
+ switch (add
& 0x1fffffff
) {
#ifdef PSXHW_LOG
case 0x1f801070: PSXHW_LOG("IREG 16bit read %x\n", psxHu16(0x1070));
return psxHu16(0x1070);
#ifdef PSXHW_LOG
case 0x1f801070: PSXHW_LOG("IREG 16bit read %x\n", psxHu16(0x1070));
return psxHu16(0x1070);
@@
-204,7
+204,7
@@
u16 psxHwRead16(u32 add) {
u32 psxHwRead32(u32 add) {
u32 hard;
u32 psxHwRead32(u32 add) {
u32 hard;
- switch (add) {
+ switch (add
& 0x1fffffff
) {
case 0x1f801040:
hard = sioRead8();
hard |= sioRead8() << 8;
case 0x1f801040:
hard = sioRead8();
hard |= sioRead8() << 8;
@@
-355,7
+355,7
@@
u32 psxHwRead32(u32 add) {
}
void psxHwWrite8(u32 add, u8 value) {
}
void psxHwWrite8(u32 add, u8 value) {
- switch (add) {
+ switch (add
& 0x1fffffff
) {
case 0x1f801040: sioWrite8(value); break;
\r
#ifdef ENABLE_SIO1API
case 0x1f801050: SIO1_writeData8(value); break;
\r
case 0x1f801040: sioWrite8(value); break;
\r
#ifdef ENABLE_SIO1API
case 0x1f801050: SIO1_writeData8(value); break;
\r
@@
-379,7
+379,7
@@
void psxHwWrite8(u32 add, u8 value) {
}
void psxHwWrite16(u32 add, u16 value) {
}
void psxHwWrite16(u32 add, u16 value) {
- switch (add) {
+ switch (add
& 0x1fffffff
) {
case 0x1f801040:
sioWrite8((unsigned char)value);
sioWrite8((unsigned char)(value>>8));
case 0x1f801040:
sioWrite8((unsigned char)value);
sioWrite8((unsigned char)(value>>8));
@@
-431,7
+431,7
@@
void psxHwWrite16(u32 add, u16 value) {
#endif
if (Config.Sio) psxHu16ref(0x1070) |= SWAPu16(0x80);
if (Config.SpuIrq) psxHu16ref(0x1070) |= SWAPu16(0x200);
#endif
if (Config.Sio) psxHu16ref(0x1070) |= SWAPu16(0x80);
if (Config.SpuIrq) psxHu16ref(0x1070) |= SWAPu16(0x200);
- psxHu16ref(0x1070) &= SWAPu16(
(psxHu16(0x1074) & value)
);
+ psxHu16ref(0x1070) &= SWAPu16(
value
);
return;
case 0x1f801074:
return;
case 0x1f801074:
@@
-493,7
+493,7
@@
void psxHwWrite16(u32 add, u16 value) {
default:
if (add>=0x1f801c00 && add<0x1f801e00) {
default:
if (add>=0x1f801c00 && add<0x1f801e00) {
-
SPU_writeRegister(add, valu
e);
+
SPU_writeRegister(add, value, psxRegs.cycl
e);
return;
}
return;
}
@@
-518,7
+518,7
@@
void psxHwWrite16(u32 add, u16 value) {
}
void psxHwWrite32(u32 add, u32 value) {
}
void psxHwWrite32(u32 add, u32 value) {
- switch (add) {
+ switch (add
& 0x1fffffff
) {
case 0x1f801040:
sioWrite8((unsigned char)value);
sioWrite8((unsigned char)((value&0xff) >> 8));
case 0x1f801040:
sioWrite8((unsigned char)value);
sioWrite8((unsigned char)((value&0xff) >> 8));
@@
-546,7
+546,7
@@
void psxHwWrite32(u32 add, u32 value) {
#endif
if (Config.Sio) psxHu32ref(0x1070) |= SWAPu32(0x80);
if (Config.SpuIrq) psxHu32ref(0x1070) |= SWAPu32(0x200);
#endif
if (Config.Sio) psxHu32ref(0x1070) |= SWAPu32(0x80);
if (Config.SpuIrq) psxHu32ref(0x1070) |= SWAPu32(0x200);
- psxHu32ref(0x1070) &= SWAPu32(
(psxHu32(0x1074) & value)
);
+ psxHu32ref(0x1070) &= SWAPu32(
value
);
return;
case 0x1f801074:
#ifdef PSXHW_LOG
return;
case 0x1f801074:
#ifdef PSXHW_LOG
@@
-747,8
+747,8
@@
void psxHwWrite32(u32 add, u32 value) {
default:
// Dukes of Hazard 2 - car engine noise
if (add>=0x1f801c00 && add<0x1f801e00) {
default:
// Dukes of Hazard 2 - car engine noise
if (add>=0x1f801c00 && add<0x1f801e00) {
- SPU_writeRegister(add, value&0xffff);
- SPU_writeRegister(add + 2, value>>16);
+ SPU_writeRegister(add, value&0xffff
, psxRegs.cycle
);
+ SPU_writeRegister(add + 2, value>>16
, psxRegs.cycle
);
return;
}
return;
}
@@
-764,6
+764,6
@@
void psxHwWrite32(u32 add, u32 value) {
#endif
}
#endif
}
-int psxHwFreeze(
gzFile
f, int Mode) {
+int psxHwFreeze(
void *
f, int Mode) {
return 0;
}
return 0;
}