diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index b67c55fcfef..5ca23ad9667 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -12,25 +12,25 @@ Current Compatibility notes (GD-rom games only) |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| |romname | Pl(s) | Rot | Test | Boot | Game | Control Type | Notes | |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| -|gundmgd | 1 | H | Yes | Yes | Yes | twin-joystick with 4+6 buttons | | -|sfz3ugd | 2 | H | Yes | Yes | No | joystick with 6 buttons | Spurious irq on ARM7 prg / broken timings | +|gundmgd | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | | +|sfz3ugd | 2 | H | Yes | Yes | No | joystick with 6 buttons | Hangs after pressing start | |cvsgd | 2 | H | Yes | Yes | Yes | joystick with 4 buttons | 2 + 2 extra buttons | -|gundmxgd | 1 | H | Yes | Yes | Yes | twin-joystick with 4+6 buttons | | +|gundmxgd | 1 | H | Yes | Yes | Yes | joystick with 4+6 buttons | | |cvs2gd | 2 | H | Yes | Yes | Yes | joystick with 6 buttons | | -|ikaruga | 2 | V | Yes | Yes | No | joystick with 2 buttons? | Broken i/o / timings | +|ikaruga | 2 | V | Yes | Yes | Yes | joystick with 3 buttons? | | |ggxx | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | | |moeru | 2 | H | No | No | No | joystick with 3 buttons? | Broken i/o, stuck at the "now loading" msg | -|chocomk | 2 | H | No? | Yes | Yes? | joystick with 3 buttons? | Broken i/o? | +|chocomk | 2 | H | Yes | Yes | Yes | joystick with 3 buttons? | | |quizqgd | 2 | V | Yes | Yes | Yes | joystick(?) with 4 buttons | | |ggxxrl | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | | -|tetkiwam | 2 | H | No | No | No | joystick with 3 buttons? | | -|shikgam2 | 2 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | +|tetkiwam | 2 | H | No | No | No | joystick with 3 buttons? | Black screen, tests the SCIF (UART) regs? | +|shikgam2 | 2 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o, crashes on the proper gameplay | |usagui | 1 | H | Yes | Yes | No | mahjong panel | | -|bdrdown | 2 | H | Yes | Yes | No? | joystick with 3 buttons? | Broken i/o in test mode | +|bdrdown | 2 | H | Yes | Yes | Yes | joystick with 3 buttons? | | |psyvar2 | 1 | V | No | No | No | joystick with 3 buttons? | | |cfield | 1? | H | No? | Yes | No | joystick with 3 buttons? | Broken i/o | |trizeal | 2 | V | No | No | No | joystick with 3 buttons? | | -|meltybld | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | +|meltybld | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | |senko | 2 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |senkoo | 2 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |ss2005 | 1 | H | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | @@ -40,14 +40,14 @@ Current Compatibility notes (GD-rom games only) |undefeat | 2 | V | No | No | No | joystick with 3 buttons? | Stuck at the "now loading" msg | |trgheart | 1 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |jingystm | 2 | H | Yes | Yes | No | joystick with 4 buttons? | Broken i/o | -|meltyb | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | -|meltyba | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract with wrong mask | +|meltyb | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | +|meltyba | 2 | H | No? | Yes | No? | joystick with 4 buttons? | Crashes in attract/gameplay with wrong mask | |karous | 1 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o | |takoron | 2 | H | Yes | Yes | Yes | joystick with 3 buttons | | -------------------------------------------------------------------------------------------------------------------------------------- |confmiss | 2 | H | Yes | Yes | No | lightgun | | |sprtjam | 2 | H | Yes | Yes | Yes | joystick with 2 buttons | | -|slashout | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | Needs to map the extra button | +|slashout | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | | |spkrbtl | 2 | H | Yes | Yes | No | joystick with 4 buttons | Crashes when loading the gameplay | |monkeyba | 1 | H | Yes | Yes | No | ad stick | Crashes when loading the gameplay | |dygolf | 2 | H | No | No | No | trackball + 4 buttons | Moans about the jvs settings | @@ -1057,6 +1057,7 @@ ADDRESS_MAP_END * Input ports */ +/* for now we hardwire a joystick + 6 buttons for every game.*/ static INPUT_PORTS_START( naomi ) PORT_START("IN0") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") @@ -1070,6 +1071,9 @@ static INPUT_PORTS_START( naomi ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_START("IN2") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_START("IN3") PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) @@ -1080,6 +1084,9 @@ static INPUT_PORTS_START( naomi ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_START("IN4") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_START("COINS") @@ -4310,7 +4317,7 @@ Peripheral String 0000000 Product Number GDT-0010C Version V4.000 Release Date 20040608 -Manufacturer ID +Manufacturer ID TOC DISC Track Start Sector End Sector Track Size @@ -4343,7 +4350,7 @@ Peripheral String 0000000 Product Number GDT-0017B Version V3.001 Release Date 20041102 -Manufacturer ID +Manufacturer ID TOC DISC Track Start Sector End Sector Track Size diff --git a/src/mame/machine/dc.c b/src/mame/machine/dc.c index e35ca8d9b89..93c332baeb8 100644 --- a/src/mame/machine/dc.c +++ b/src/mame/machine/dc.c @@ -124,6 +124,7 @@ UINT32 dc_coin_counts[2]; static UINT32 maple_regs[0x100/4]; static UINT32 dc_rtcregister[4]; static UINT32 g1bus_regs[0x100/4]; +static UINT32 g2bus_regs[0x100/4]; UINT8 maple0x86data1[0x80]; static UINT8 maple0x86data2[0x400]; static emu_timer *dc_rtc_timer; @@ -805,14 +806,14 @@ WRITE64_HANDLER( dc_g1_ctrl_w ) dat = (UINT32)(data >> shift); old = g1bus_regs[reg]; - g1bus_regs[reg] = dat; // 5f6c00+reg*4=dat + g1bus_regs[reg] = dat; // 5f7400+reg*4=dat mame_printf_verbose("G1CTRL: [%08x=%x] write %llx to %x, mask %llx\n", 0x5f7400+reg*4, dat, data, offset, mem_mask); switch (reg) { case SB_GDST: - if (!(old & 1) && (dat & 1)) // 0 -> 1 + if (dat & 1 && g1bus_regs[SB_GDEN] == 1) // 0 -> 1 { - if ((g1bus_regs[SB_GDEN] == 0) || (g1bus_regs[SB_GDDIR] == 0)) + if (g1bus_regs[SB_GDDIR] == 0) { mame_printf_verbose("G1CTRL: unsupported transfer\n"); return; @@ -842,14 +843,14 @@ READ64_HANDLER( dc_g2_ctrl_r ) reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); mame_printf_verbose("G2CTRL: Unmapped read %08x\n", 0x5f7800+reg*4); - return 0; + return (UINT64)g2bus_regs[reg] << shift; } WRITE64_HANDLER( dc_g2_ctrl_w ) { int reg; UINT64 shift; - UINT32 dat; + UINT32 dat,old; static struct { UINT32 aica_addr; UINT32 root_addr; @@ -862,6 +863,10 @@ WRITE64_HANDLER( dc_g2_ctrl_w ) reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); dat = (UINT32)(data >> shift); + old = g2bus_regs[reg]; + + g2bus_regs[reg] = dat; // 5f7800+reg*4=dat + switch (reg) { /*AICA Address register*/ @@ -921,9 +926,8 @@ WRITE64_HANDLER( dc_g2_ctrl_w ) wave_dma.root_addr = src; wave_dma.size = 0; wave_dma.flag = (wave_dma.indirect & 1) ? 1 : 0; - wave_dma.start = 0; - - //TODO: signal irq there + wave_dma.start = g2bus_regs[SB_ADST] = 0; + dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_AICA; } break; }