mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Some note updates
This commit is contained in:
parent
168ab9c7bc
commit
f6ce2582b7
@ -36,10 +36,26 @@
|
|||||||
|
|
||||||
Fix 32X support (not used by any arcade systems?)
|
Fix 32X support (not used by any arcade systems?)
|
||||||
- this seems to require far greater sync and timing accuracy on rom / ram access than MAME can provide
|
- this seems to require far greater sync and timing accuracy on rom / ram access than MAME can provide
|
||||||
- World Series Baseball 95 (and others) are odd, they write data to the normal DRAM framebuffer
|
- split NTSC / PAL drivers
|
||||||
expecting it to act like the 'overwrite area' (where 00 bytes ignored) this can't be right..
|
- 36greatju: missing backup ram, has issues with golfer select due of that
|
||||||
|
- afterbju: black screen, has a bug with Master SH-2 code snippet at 060037f8 (R0 should be 0x3ff but it's instead 0x3fff****)
|
||||||
|
- bcracers: write to undefined PWM register?
|
||||||
|
- cosmiccp: black screen, Master SH-2 stalls on a RTS? (unchecked)
|
||||||
|
- eccodemo: black screen after the Sega logo, faulty comms check
|
||||||
|
- fifa96 / nbajamte: dies on the gameplay, waiting for a comm change that never occurs;
|
||||||
|
- nbajamte: missing I2C hookup, startup fails due of that (same I2C type as plain MD version);
|
||||||
|
- nflquart: black screen, missing h irq?
|
||||||
|
- sangoku4: black screen after the Sega logo
|
||||||
|
- sharrierju: black screen;
|
||||||
|
- soulstar: hangs almost soon, it just plays the BGM and shows a galaxy background;
|
||||||
|
- tempo: intro is too fast, mostly noticeable with the PWM sound that cuts off too early when it gets to the title screen;
|
||||||
|
- tmek: gameplay is clearly too fast
|
||||||
|
- vfju: dies when a match starts or when attempts to enter into attract mode, master SH-2 jumps to a misaligned vector;
|
||||||
|
- vham: Master SH-2 crashes when entering into gameplay
|
||||||
|
- vrdxu: no 3d gfxs
|
||||||
|
- wwfraw: writes fb data to the cart area and expects it to be read back, kludging the cart area to be writeable makes the 32x gfxs to appear
|
||||||
|
- wwfwre: no 32x gfxs
|
||||||
|
- xmen: black screen after that you choose the level
|
||||||
|
|
||||||
Add PicoDrive support (not arcade)
|
Add PicoDrive support (not arcade)
|
||||||
|
|
||||||
@ -2428,12 +2444,12 @@ static WRITE16_HANDLER( _32x_68k_dram_w )
|
|||||||
|
|
||||||
static READ16_HANDLER( _32x_68k_dram_overwrite_r )
|
static READ16_HANDLER( _32x_68k_dram_overwrite_r )
|
||||||
{
|
{
|
||||||
return _32x_access_dram[offset+0x10000];
|
return _32x_access_dram[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( _32x_68k_dram_overwrite_w )
|
static WRITE16_HANDLER( _32x_68k_dram_overwrite_w )
|
||||||
{
|
{
|
||||||
COMBINE_DATA(&_32x_access_dram[offset+0x10000]);
|
//COMBINE_DATA(&_32x_access_dram[offset+0x10000]);
|
||||||
|
|
||||||
if (ACCESSING_BITS_8_15)
|
if (ACCESSING_BITS_8_15)
|
||||||
{
|
{
|
||||||
@ -2570,7 +2586,7 @@ static READ16_HANDLER( _32x_dreq_common_r )
|
|||||||
printf("Fifo block a isn't filled!\n");
|
printf("Fifo block a isn't filled!\n");
|
||||||
|
|
||||||
if (current_fifo_readblock == fifo_block_b && !fifo_block_b_full)
|
if (current_fifo_readblock == fifo_block_b && !fifo_block_b_full)
|
||||||
printf("Fifo block b isn't filled!\n");
|
printf("%08x Fifo block b isn't filled!\n",cpu_get_pc(space->cpu));
|
||||||
|
|
||||||
|
|
||||||
if (current_fifo_read_pos==4)
|
if (current_fifo_read_pos==4)
|
||||||
@ -2617,8 +2633,8 @@ static WRITE16_HANDLER( _32x_dreq_common_w )
|
|||||||
case 0x02/2: // a1510a / 400a
|
case 0x02/2: // a1510a / 400a
|
||||||
dreq_src_addr[offset&1] = ((offset&1) == 0) ? (data & 0xff) : (data & 0xfffe);
|
dreq_src_addr[offset&1] = ((offset&1) == 0) ? (data & 0xff) : (data & 0xfffe);
|
||||||
|
|
||||||
if((dreq_src_addr[0]<<16)|dreq_src_addr[1])
|
//if((dreq_src_addr[0]<<16)|dreq_src_addr[1])
|
||||||
printf("DREQ set SRC = %08x\n",(dreq_src_addr[0]<<16)|dreq_src_addr[1]);
|
// printf("DREQ set SRC = %08x\n",(dreq_src_addr[0]<<16)|dreq_src_addr[1]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2626,8 +2642,8 @@ static WRITE16_HANDLER( _32x_dreq_common_w )
|
|||||||
case 0x06/2: // a1510e / 400e
|
case 0x06/2: // a1510e / 400e
|
||||||
dreq_dst_addr[offset&1] = ((offset&1) == 0) ? (data & 0xff) : (data & 0xffff);
|
dreq_dst_addr[offset&1] = ((offset&1) == 0) ? (data & 0xff) : (data & 0xffff);
|
||||||
|
|
||||||
if((dreq_dst_addr[0]<<16)|dreq_dst_addr[1])
|
//if((dreq_dst_addr[0]<<16)|dreq_dst_addr[1])
|
||||||
printf("DREQ set DST = %08x\n",(dreq_dst_addr[0]<<16)|dreq_dst_addr[1]);
|
// printf("DREQ set DST = %08x\n",(dreq_dst_addr[0]<<16)|dreq_dst_addr[1]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -3212,7 +3228,7 @@ static WRITE16_HANDLER( _32x_common_vdp_regs_w )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0a/2:
|
case 0x0a/2:
|
||||||
// bit 0 is the framebuffer select;
|
// bit 0 is the framebuffer select, change is delayed until vblank;
|
||||||
_32x_a1518a_reg = (_32x_a1518a_reg & 0xfffe) | (data & 1);
|
_32x_a1518a_reg = (_32x_a1518a_reg & 0xfffe) | (data & 1);
|
||||||
|
|
||||||
if (_32x_a1518a_reg & 1)
|
if (_32x_a1518a_reg & 1)
|
||||||
@ -3643,9 +3659,9 @@ static ADDRESS_MAP_START( sh2_main_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x04020000, 0x0403ffff) AM_READWRITE(_32x_sh2_framebuffer_overwrite_dram_r, _32x_sh2_framebuffer_overwrite_dram_w)
|
AM_RANGE(0x04020000, 0x0403ffff) AM_READWRITE(_32x_sh2_framebuffer_overwrite_dram_r, _32x_sh2_framebuffer_overwrite_dram_w)
|
||||||
|
|
||||||
AM_RANGE(0x06000000, 0x0603ffff) AM_RAM AM_SHARE("share10")
|
AM_RANGE(0x06000000, 0x0603ffff) AM_RAM AM_SHARE("share10")
|
||||||
AM_RANGE(0x02000000, 0x023fffff) AM_RAM AM_REGION("gamecart_sh2", 0) // program is writeable (wwfraw)
|
AM_RANGE(0x02000000, 0x023fffff) AM_ROM AM_REGION("gamecart_sh2", 0) // program is writeable (wwfraw)
|
||||||
|
|
||||||
AM_RANGE(0x22000000, 0x223fffff) AM_RAM AM_REGION("gamecart_sh2", 0) // cart mirror (fifa96)
|
AM_RANGE(0x22000000, 0x223fffff) AM_ROM AM_REGION("gamecart_sh2", 0) // cart mirror (fifa96)
|
||||||
|
|
||||||
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM
|
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -3672,9 +3688,9 @@ static ADDRESS_MAP_START( sh2_slave_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x04020000, 0x0403ffff) AM_READWRITE(_32x_sh2_framebuffer_overwrite_dram_r, _32x_sh2_framebuffer_overwrite_dram_w)
|
AM_RANGE(0x04020000, 0x0403ffff) AM_READWRITE(_32x_sh2_framebuffer_overwrite_dram_r, _32x_sh2_framebuffer_overwrite_dram_w)
|
||||||
|
|
||||||
AM_RANGE(0x06000000, 0x0603ffff) AM_RAM AM_SHARE("share10")
|
AM_RANGE(0x06000000, 0x0603ffff) AM_RAM AM_SHARE("share10")
|
||||||
AM_RANGE(0x02000000, 0x023fffff) AM_RAM AM_REGION("gamecart_sh2", 0) // program is writeable (wwfraw)
|
AM_RANGE(0x02000000, 0x023fffff) AM_ROM AM_REGION("gamecart_sh2", 0) // program is writeable (wwfraw)
|
||||||
|
|
||||||
AM_RANGE(0x22000000, 0x223fffff) AM_RAM AM_REGION("gamecart_sh2", 0) // cart mirror (fifa96)
|
AM_RANGE(0x22000000, 0x223fffff) AM_ROM AM_REGION("gamecart_sh2", 0) // cart mirror (fifa96)
|
||||||
|
|
||||||
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM
|
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -6301,11 +6317,26 @@ static TIMER_DEVICE_CALLBACK( scanline_timer_callback )
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (megadrive_vblank_flag>=224)
|
#if 0
|
||||||
megadrive_vblank_flag = 1;
|
if(_32x_is_connected)
|
||||||
|
{
|
||||||
|
if (genesis_scanline_counter >= megadrive_irq6_scanline)
|
||||||
|
{
|
||||||
|
_32x_a1518a_reg = (_32x_a1518a_reg & 0xfffe) | (_32x_fb_swap & 1);
|
||||||
|
|
||||||
if (megadrive_vblank_flag>=236)
|
if (_32x_fb_swap & 1)
|
||||||
megadrive_vblank_flag = 0;
|
{
|
||||||
|
_32x_access_dram = _32x_dram0;
|
||||||
|
_32x_display_dram = _32x_dram1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_32x_display_dram = _32x_dram0;
|
||||||
|
_32x_access_dram = _32x_dram1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// if (genesis_scanline_counter==0) irq4counter = MEGADRIVE_REG0A_HINT_VALUE;
|
// if (genesis_scanline_counter==0) irq4counter = MEGADRIVE_REG0A_HINT_VALUE;
|
||||||
// irq4counter = MEGADRIVE_REG0A_HINT_VALUE;
|
// irq4counter = MEGADRIVE_REG0A_HINT_VALUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user