notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improve cue handling a bit
[picodrive.git]
/
pico
/
32x
/
memory.c
diff --git
a/pico/32x/memory.c
b/pico/32x/memory.c
index
3b12cbb
..
fd902dd
100644
(file)
--- a/
pico/32x/memory.c
+++ b/
pico/32x/memory.c
@@
-187,7
+187,7
@@
static u32 p32x_reg_read16(u32 a)
#else
if ((a & 0x30) == 0x20) {
static u32 dr2 = 0;
#else
if ((a & 0x30) == 0x20) {
static u32 dr2 = 0;
- unsigned int cycles = SekCyclesDone
T
();
+ unsigned int cycles = SekCyclesDone();
int comreg = 1 << (a & 0x0f) / 2;
// evil X-Men proto polls in a dbra loop and expects it to expire..
int comreg = 1 << (a & 0x0f) / 2;
// evil X-Men proto polls in a dbra loop and expects it to expire..
@@
-211,14
+211,14
@@
static u32 p32x_reg_read16(u32 a)
#endif
if (a == 2) { // INTM, INTS
#endif
if (a == 2) { // INTM, INTS
- unsigned int cycles = SekCyclesDone
T
();
+ unsigned int cycles = SekCyclesDone();
if (cycles - msh2.m68krcycles_done > 64)
p32x_sync_sh2s(cycles);
goto out;
}
if ((a & 0x30) == 0x30)
if (cycles - msh2.m68krcycles_done > 64)
p32x_sync_sh2s(cycles);
goto out;
}
if ((a & 0x30) == 0x30)
- return p32x_pwm_read16(a, NULL, SekCyclesDone
T
());
+ return p32x_pwm_read16(a, NULL, SekCyclesDone());
out:
return Pico32x.regs[a / 2];
out:
return Pico32x.regs[a / 2];
@@
-241,7
+241,7
@@
static void dreq0_write(u16 *r, u32 d)
r[6 / 2] &= ~P32XS_68S;
if ((Pico32x.dmac0_fifo_ptr & 3) == 0) {
r[6 / 2] &= ~P32XS_68S;
if ((Pico32x.dmac0_fifo_ptr & 3) == 0) {
- p32x_sync_sh2s(SekCyclesDone
T
());
+ p32x_sync_sh2s(SekCyclesDone());
p32x_dreq0_trigger();
}
}
p32x_dreq0_trigger();
}
}
@@
-272,7
+272,7
@@
static void p32x_reg_write8(u32 a, u32 d)
return;
case 0x03: // irq ctl
if ((d ^ r[0x02 / 2]) & 3) {
return;
case 0x03: // irq ctl
if ((d ^ r[0x02 / 2]) & 3) {
- int cycles = SekCyclesDone
T
();
+ int cycles = SekCyclesDone();
p32x_sync_sh2s(cycles);
r[0x02 / 2] = d & 3;
p32x_update_cmd_irq(NULL, cycles);
p32x_sync_sh2s(cycles);
r[0x02 / 2] = d & 3;
p32x_update_cmd_irq(NULL, cycles);
@@
-383,12
+383,12
@@
static void p32x_reg_write8(u32 a, u32 d)
case 0x3f:
return;
pwm_write:
case 0x3f:
return;
pwm_write:
- p32x_pwm_write16(a & ~1, d, NULL, SekCyclesDone
T
());
+ p32x_pwm_write16(a & ~1, d, NULL, SekCyclesDone());
return;
}
if ((a & 0x30) == 0x20) {
return;
}
if ((a & 0x30) == 0x20) {
- int cycles = SekCyclesDone
T
();
+ int cycles = SekCyclesDone();
int comreg;
if (REG8IN16(r, a) == d)
int comreg;
if (REG8IN16(r, a) == d)
@@
-448,13
+448,13
@@
static void p32x_reg_write16(u32 a, u32 d)
case 0x30: // PWM control
d = (r[a / 2] & ~0x0f) | (d & 0x0f);
r[a / 2] = d;
case 0x30: // PWM control
d = (r[a / 2] & ~0x0f) | (d & 0x0f);
r[a / 2] = d;
- p32x_pwm_write16(a, d, NULL, SekCyclesDone
T
());
+ p32x_pwm_write16(a, d, NULL, SekCyclesDone());
return;
}
// comm port
if ((a & 0x30) == 0x20) {
return;
}
// comm port
if ((a & 0x30) == 0x20) {
- int cycles = SekCyclesDone
T
();
+ int cycles = SekCyclesDone();
int comreg;
if (r[a / 2] == d)
int comreg;
if (r[a / 2] == d)
@@
-475,7
+475,7
@@
static void p32x_reg_write16(u32 a, u32 d)
}
// PWM
else if ((a & 0x30) == 0x30) {
}
// PWM
else if ((a & 0x30) == 0x30) {
- p32x_pwm_write16(a, d, NULL, SekCyclesDone
T
());
+ p32x_pwm_write16(a, d, NULL, SekCyclesDone());
return;
}
return;
}
@@
-1208,9
+1208,9
@@
static u32 sh2_read8_cs0(u32 a, SH2 *sh2)
// TODO: mirroring?
if (!sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_m))
// TODO: mirroring?
if (!sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_m))
- return Pico32xMem->sh2_rom_m[a ^ 1];
+ return Pico32xMem->sh2_rom_m
.b
[a ^ 1];
if (sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_s))
if (sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_s))
- return Pico32xMem->sh2_rom_s[a ^ 1];
+ return Pico32xMem->sh2_rom_s
.b
[a ^ 1];
if ((a & 0x3fe00) == 0x4200) {
d = Pico32xMem->pal[(a & 0x1ff) / 2];
if ((a & 0x3fe00) == 0x4200) {
d = Pico32xMem->pal[(a & 0x1ff) / 2];
@@
-1263,9
+1263,9
@@
static u32 sh2_read16_cs0(u32 a, SH2 *sh2)
}
if (!sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_m))
}
if (!sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_m))
- return
*(u16 *)(Pico32xMem->sh2_rom_m + a)
;
+ return
Pico32xMem->sh2_rom_m.w[a / 2]
;
if (sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_s))
if (sh2->is_slave && a < sizeof(Pico32xMem->sh2_rom_s))
- return
*(u16 *)(Pico32xMem->sh2_rom_s + a)
;
+ return
Pico32xMem->sh2_rom_s.w[a / 2]
;
if ((a & 0x3fe00) == 0x4200) {
d = Pico32xMem->pal[(a & 0x1ff) / 2];
if ((a & 0x3fe00) == 0x4200) {
d = Pico32xMem->pal[(a & 0x1ff) / 2];
@@
-1619,17
+1619,17
@@
static void get_bios(void)
// MSH2
if (p32x_bios_m != NULL) {
elprintf(EL_STATUS|EL_32X, "32x: using supplied master SH2 BIOS");
// MSH2
if (p32x_bios_m != NULL) {
elprintf(EL_STATUS|EL_32X, "32x: using supplied master SH2 BIOS");
- Byteswap(Pico32xMem->sh2_rom_m, p32x_bios_m, sizeof(Pico32xMem->sh2_rom_m));
+ Byteswap(
&
Pico32xMem->sh2_rom_m, p32x_bios_m, sizeof(Pico32xMem->sh2_rom_m));
}
else {
}
else {
- pl = (u32 *)Pico32xMem->sh2_rom_m;
+ pl = (u32 *)
&
Pico32xMem->sh2_rom_m;
// fill exception vector table to our trap address
for (i = 0; i < 128; i++)
pl[i] = HWSWAP(0x200);
// startup code
// fill exception vector table to our trap address
for (i = 0; i < 128; i++)
pl[i] = HWSWAP(0x200);
// startup code
- memcpy(
Pico32xMem->sh2_rom_m + 0x200
, msh2_code, sizeof(msh2_code));
+ memcpy(
&Pico32xMem->sh2_rom_m.b[0x200]
, msh2_code, sizeof(msh2_code));
// reset SP
pl[1] = pl[3] = HWSWAP(0x6040000);
// reset SP
pl[1] = pl[3] = HWSWAP(0x6040000);
@@
-1640,17
+1640,17
@@
static void get_bios(void)
// SSH2
if (p32x_bios_s != NULL) {
elprintf(EL_STATUS|EL_32X, "32x: using supplied slave SH2 BIOS");
// SSH2
if (p32x_bios_s != NULL) {
elprintf(EL_STATUS|EL_32X, "32x: using supplied slave SH2 BIOS");
- Byteswap(Pico32xMem->sh2_rom_s, p32x_bios_s, sizeof(Pico32xMem->sh2_rom_s));
+ Byteswap(
&
Pico32xMem->sh2_rom_s, p32x_bios_s, sizeof(Pico32xMem->sh2_rom_s));
}
else {
}
else {
- pl = (u32 *)Pico32xMem->sh2_rom_s;
+ pl = (u32 *)
&
Pico32xMem->sh2_rom_s;
// fill exception vector table to our trap address
for (i = 0; i < 128; i++)
pl[i] = HWSWAP(0x200);
// startup code
// fill exception vector table to our trap address
for (i = 0; i < 128; i++)
pl[i] = HWSWAP(0x200);
// startup code
- memcpy(
Pico32xMem->sh2_rom_s + 0x200
, ssh2_code, sizeof(ssh2_code));
+ memcpy(
&Pico32xMem->sh2_rom_s.b[0x200]
, ssh2_code, sizeof(ssh2_code));
// reset SP
pl[1] = pl[3] = HWSWAP(0x603f800);
// reset SP
pl[1] = pl[3] = HWSWAP(0x603f800);