mirror of
https://github.com/holub/mame
synced 2025-10-08 09:30:17 +03:00
namcos23: timecrs2c reaches the test mode [O. Galibert]
This commit is contained in:
parent
10a044a144
commit
1d3eeaf769
@ -1303,7 +1303,7 @@ static READ16_HANDLER(s23_ctl_16_r)
|
|||||||
// 0100 set freezes gorgon
|
// 0100 set freezes gorgon
|
||||||
// 0004 unset freezes ss23 at the boot level
|
// 0004 unset freezes ss23 at the boot level
|
||||||
// 0002 unset skips the post on ss23
|
// 0002 unset skips the post on ss23
|
||||||
case 1: return 0x0006;
|
case 1: return 0x0004;
|
||||||
case 2: case 3: {
|
case 2: case 3: {
|
||||||
UINT16 res = ctl_inp_buffer[offset-2] & 0x800 ? 0xffff : 0x0000;
|
UINT16 res = ctl_inp_buffer[offset-2] & 0x800 ? 0xffff : 0x0000;
|
||||||
ctl_inp_buffer[offset-2] = (ctl_inp_buffer[offset-2] << 1) | 1;
|
ctl_inp_buffer[offset-2] = (ctl_inp_buffer[offset-2] << 1) | 1;
|
||||||
@ -1332,6 +1332,43 @@ static READ32_HANDLER(s23_ctl_32_r)
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static WRITE16_HANDLER(s23_c361_16_w)
|
||||||
|
{
|
||||||
|
switch(offset) {
|
||||||
|
default:
|
||||||
|
logerror("c361_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static READ16_HANDLER(s23_c361_16_r)
|
||||||
|
{
|
||||||
|
switch(offset) {
|
||||||
|
case 5: return video_screen_get_vpos(space->machine->primary_screen);
|
||||||
|
case 6: return video_screen_get_vblank(space->machine->primary_screen);
|
||||||
|
}
|
||||||
|
logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, cpu_get_pc(space->cpu), (unsigned int)cpu_get_reg(space->cpu, MIPS3_R31));
|
||||||
|
return 0xffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
static WRITE32_HANDLER(s23_c361_32_w)
|
||||||
|
{
|
||||||
|
if (ACCESSING_BITS_16_31)
|
||||||
|
s23_c361_16_w(space, offset*2, data >> 16, mem_mask >> 16);
|
||||||
|
if (ACCESSING_BITS_0_15)
|
||||||
|
s23_c361_16_w(space, offset*2+1, data, mem_mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
static READ32_HANDLER(s23_c361_32_r)
|
||||||
|
{
|
||||||
|
UINT32 data = 0;
|
||||||
|
if (ACCESSING_BITS_16_31)
|
||||||
|
data |= s23_c361_16_r(space, offset*2, mem_mask >> 16) << 16;
|
||||||
|
if (ACCESSING_BITS_0_15)
|
||||||
|
data |= s23_c361_16_r(space, offset*2+1, mem_mask);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
static INTERRUPT_GEN(s23_interrupt)
|
static INTERRUPT_GEN(s23_interrupt)
|
||||||
{
|
{
|
||||||
if(!ctl_vbl_active) {
|
if(!ctl_vbl_active) {
|
||||||
@ -1419,6 +1456,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( ss23_map, ADDRESS_SPACE_PROGRAM, 32 )
|
static ADDRESS_MAP_START( ss23_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||||
AM_RANGE(0x00000000, 0x003fffff) AM_RAM
|
AM_RANGE(0x00000000, 0x003fffff) AM_RAM
|
||||||
|
AM_RANGE(0x01000000, 0x010000ff) AM_READ( gorgon_magic_r )
|
||||||
AM_RANGE(0x02000000, 0x0200000f) AM_READWRITE( s23_c417_32_r, s23_c417_32_w )
|
AM_RANGE(0x02000000, 0x0200000f) AM_READWRITE( s23_c417_32_r, s23_c417_32_w )
|
||||||
AM_RANGE(0x04400000, 0x0440ffff) AM_RAM AM_BASE(&namcos23_shared_ram)
|
AM_RANGE(0x04400000, 0x0440ffff) AM_RAM AM_BASE(&namcos23_shared_ram)
|
||||||
AM_RANGE(0x04c3ff08, 0x04c3ff0b) AM_WRITE( s23_mcuen_w )
|
AM_RANGE(0x04c3ff08, 0x04c3ff0b) AM_WRITE( s23_mcuen_w )
|
||||||
@ -1428,14 +1466,14 @@ static ADDRESS_MAP_START( ss23_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x06800000, 0x06807fff) AM_READWRITE( s23_txtchar_r, s23_txtchar_w ) AM_BASE(&namcos23_charram) // text layer characters (shown as CGRAM in POST)
|
AM_RANGE(0x06800000, 0x06807fff) AM_READWRITE( s23_txtchar_r, s23_txtchar_w ) AM_BASE(&namcos23_charram) // text layer characters (shown as CGRAM in POST)
|
||||||
AM_RANGE(0x06804000, 0x0681dfff) AM_RAM
|
AM_RANGE(0x06804000, 0x0681dfff) AM_RAM
|
||||||
AM_RANGE(0x0681e000, 0x0681ffff) AM_READWRITE(namcos23_textram_r, namcos23_textram_w) AM_BASE(&namcos23_textram)
|
AM_RANGE(0x0681e000, 0x0681ffff) AM_READWRITE(namcos23_textram_r, namcos23_textram_w) AM_BASE(&namcos23_textram)
|
||||||
|
AM_RANGE(0x06820000, 0x0682000f) AM_READWRITE( s23_c361_32_r, s23_c361_32_w ) // C361
|
||||||
AM_RANGE(0x06a08000, 0x06a0ffff) AM_RAM // GAMMA (C404)
|
AM_RANGE(0x06a08000, 0x06a0ffff) AM_RAM // GAMMA (C404)
|
||||||
AM_RANGE(0x06a10000, 0x06a3ffff) AM_READWRITE(namcos23_paletteram_r, namcos23_paletteram_w) AM_BASE_GENERIC(paletteram)
|
AM_RANGE(0x06a10000, 0x06a3ffff) AM_READWRITE(namcos23_paletteram_r, namcos23_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||||
AM_RANGE(0x06820008, 0x0682000f) AM_READ( ss23_vstat_r ) // vblank status?
|
|
||||||
AM_RANGE(0x08000000, 0x08ffffff) AM_ROM AM_REGION("data", 0x0000000) AM_MIRROR(0x01000000) // data ROMs
|
AM_RANGE(0x08000000, 0x08ffffff) AM_ROM AM_REGION("data", 0x0000000) AM_MIRROR(0x01000000) // data ROMs
|
||||||
AM_RANGE(0x0a000000, 0x0affffff) AM_ROM AM_REGION("data", 0x1000000) AM_MIRROR(0x01000000)
|
AM_RANGE(0x0a000000, 0x0affffff) AM_ROM AM_REGION("data", 0x1000000) AM_MIRROR(0x01000000)
|
||||||
AM_RANGE(0x0c000000, 0x0c00001f) AM_READWRITE( s23_c412_32_r, s23_c412_32_w )
|
AM_RANGE(0x0c000000, 0x0c00001f) AM_READWRITE( s23_c412_32_r, s23_c412_32_w )
|
||||||
AM_RANGE(0x0c400000, 0x0c400007) AM_READWRITE( s23_c421_32_r, s23_c421_32_w )
|
AM_RANGE(0x0c400000, 0x0c400007) AM_READWRITE( s23_c421_32_r, s23_c421_32_w )
|
||||||
AM_RANGE(0x0d000000, 0x0d00000f) AM_READWRITE (s23_ctl_32_r, s23_ctl_32_w )
|
AM_RANGE(0x0d000000, 0x0d00000f) AM_READWRITE( s23_ctl_32_r, s23_ctl_32_w )
|
||||||
AM_RANGE(0x0fc00000, 0x0fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
|
AM_RANGE(0x0fc00000, 0x0fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
|
||||||
AM_RANGE(0x1fc00000, 0x1fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
|
AM_RANGE(0x1fc00000, 0x1fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
Loading…
Reference in New Issue
Block a user