mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-10-26 16:29:37 -04:00
fixes for big endian (mostly mcd)
This commit is contained in:
parent
567c41ff2a
commit
0d8d97f87c
4 changed files with 13 additions and 11 deletions
|
|
@ -205,10 +205,10 @@ void m68k_reg_write8(u32 a, u32 d)
|
|||
|
||||
goto write_comm;
|
||||
case 6:
|
||||
Pico_mcd->bios[0x72 + 1] = d; // simple hint vector changer
|
||||
Pico_mcd->bios[MEM_BE2(0x72)] = d; // simple hint vector changer
|
||||
return;
|
||||
case 7:
|
||||
Pico_mcd->bios[0x72] = d;
|
||||
Pico_mcd->bios[MEM_BE2(0x73)] = d;
|
||||
elprintf(EL_CDREGS, "hint vector set to %04x%04x",
|
||||
((u16 *)Pico_mcd->bios)[0x70/2], ((u16 *)Pico_mcd->bios)[0x72/2]);
|
||||
return;
|
||||
|
|
@ -277,7 +277,7 @@ u32 s68k_poll_detect(u32 a, u32 d)
|
|||
|
||||
#define READ_FONT_DATA(basemask) \
|
||||
{ \
|
||||
unsigned int fnt = *(unsigned int *)(Pico_mcd->s68k_regs + 0x4c); \
|
||||
unsigned int fnt = CPU_LE4(*(u32 *)(Pico_mcd->s68k_regs + 0x4c)); \
|
||||
unsigned int col0 = (fnt >> 8) & 0x0f, col1 = (fnt >> 12) & 0x0f; \
|
||||
if (fnt & (basemask << 0)) d = col1 ; else d = col0; \
|
||||
if (fnt & (basemask << 1)) d |= col1 << 4; else d |= col0 << 4; \
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ void pcd_pcm_sync(unsigned int to)
|
|||
}
|
||||
|
||||
addr = ch->addr;
|
||||
inc = *(unsigned short *)&ch->regs[2];
|
||||
inc = ch->regs[2] + (ch->regs[3]<<8);
|
||||
mul_l = ((int)ch->regs[0] * (ch->regs[1] & 0xf)) >> (5+1);
|
||||
mul_r = ((int)ch->regs[0] * (ch->regs[1] >> 4)) >> (5+1);
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ void pcd_pcm_sync(unsigned int to)
|
|||
// test for loop signal
|
||||
if (smp == 0xff)
|
||||
{
|
||||
addr = *(unsigned short *)&ch->regs[4]; // loop_addr
|
||||
addr = ch->regs[4] + (ch->regs[5]<<8); // loop_addr
|
||||
smp = Pico_mcd->pcm_ram[addr];
|
||||
addr <<= PCM_STEP_SHIFT;
|
||||
if (smp == 0xff)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue