Some Naomi tweakery.

This commit is contained in:
Angelo Salese 2009-04-04 18:01:13 +00:00
parent 9f14872359
commit b09944610a
2 changed files with 33 additions and 22 deletions

View File

@ -12,25 +12,25 @@ Current Compatibility notes (GD-rom games only)
|----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------|
|romname | Pl(s) | Rot | Test | Boot | Game | Control Type | Notes | |romname | Pl(s) | Rot | Test | Boot | Game | Control Type | Notes |
|----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------| |----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------|
|gundmgd | 1 | H | Yes | Yes | Yes | twin-joystick with 4+6 buttons | | |gundmgd | 1 | H | Yes | Yes | Yes | joystick with 4 buttons | |
|sfz3ugd | 2 | H | Yes | Yes | No | joystick with 6 buttons | Spurious irq on ARM7 prg / broken timings | |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 | |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 | | |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 | | |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 | |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 | | |quizqgd | 2 | V | Yes | Yes | Yes | joystick(?) with 4 buttons | |
|ggxxrl | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | | |ggxxrl | 2 | H | Yes | Yes | Yes | joystick with 5 buttons | |
|tetkiwam | 2 | H | No | No | No | joystick with 3 buttons? | | |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 | |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 | | |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? | | |psyvar2 | 1 | V | No | No | No | joystick with 3 buttons? | |
|cfield | 1? | H | No? | Yes | No | joystick with 3 buttons? | Broken i/o | |cfield | 1? | H | No? | Yes | No | joystick with 3 buttons? | Broken i/o |
|trizeal | 2 | V | No | No | No | joystick with 3 buttons? | | |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 | |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 | |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 | |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 | |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 | |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 | |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 | |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 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 | |karous | 1 | V | Yes | Yes | No | joystick with 3 buttons? | Broken i/o |
|takoron | 2 | H | Yes | Yes | Yes | joystick with 3 buttons | | |takoron | 2 | H | Yes | Yes | Yes | joystick with 3 buttons | |
-------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------
|confmiss | 2 | H | Yes | Yes | No | lightgun | | |confmiss | 2 | H | Yes | Yes | No | lightgun | |
|sprtjam | 2 | H | Yes | Yes | Yes | joystick with 2 buttons | | |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 | |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 | |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 | |dygolf | 2 | H | No | No | No | trackball + 4 buttons | Moans about the jvs settings |
@ -1057,6 +1057,7 @@ ADDRESS_MAP_END
* Input ports * Input ports
*/ */
/* for now we hardwire a joystick + 6 buttons for every game.*/
static INPUT_PORTS_START( naomi ) static INPUT_PORTS_START( naomi )
PORT_START("IN0") PORT_START("IN0")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service") 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
PORT_START("IN2") 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_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 )
PORT_START("IN3") PORT_START("IN3")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) 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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_START("IN4") 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_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_START("COINS") PORT_START("COINS")
@ -4310,7 +4317,7 @@ Peripheral String 0000000
Product Number GDT-0010C Product Number GDT-0010C
Version V4.000 Version V4.000
Release Date 20040608 Release Date 20040608
Manufacturer ID Manufacturer ID
TOC DISC TOC DISC
Track Start Sector End Sector Track Size Track Start Sector End Sector Track Size
@ -4343,7 +4350,7 @@ Peripheral String 0000000
Product Number GDT-0017B Product Number GDT-0017B
Version V3.001 Version V3.001
Release Date 20041102 Release Date 20041102
Manufacturer ID Manufacturer ID
TOC DISC TOC DISC
Track Start Sector End Sector Track Size Track Start Sector End Sector Track Size

View File

@ -124,6 +124,7 @@ UINT32 dc_coin_counts[2];
static UINT32 maple_regs[0x100/4]; static UINT32 maple_regs[0x100/4];
static UINT32 dc_rtcregister[4]; static UINT32 dc_rtcregister[4];
static UINT32 g1bus_regs[0x100/4]; static UINT32 g1bus_regs[0x100/4];
static UINT32 g2bus_regs[0x100/4];
UINT8 maple0x86data1[0x80]; UINT8 maple0x86data1[0x80];
static UINT8 maple0x86data2[0x400]; static UINT8 maple0x86data2[0x400];
static emu_timer *dc_rtc_timer; static emu_timer *dc_rtc_timer;
@ -805,14 +806,14 @@ WRITE64_HANDLER( dc_g1_ctrl_w )
dat = (UINT32)(data >> shift); dat = (UINT32)(data >> shift);
old = g1bus_regs[reg]; 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); mame_printf_verbose("G1CTRL: [%08x=%x] write %llx to %x, mask %llx\n", 0x5f7400+reg*4, dat, data, offset, mem_mask);
switch (reg) switch (reg)
{ {
case SB_GDST: 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"); mame_printf_verbose("G1CTRL: unsupported transfer\n");
return; return;
@ -842,14 +843,14 @@ READ64_HANDLER( dc_g2_ctrl_r )
reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); reg = decode_reg32_64(space->machine, offset, mem_mask, &shift);
mame_printf_verbose("G2CTRL: Unmapped read %08x\n", 0x5f7800+reg*4); 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 ) WRITE64_HANDLER( dc_g2_ctrl_w )
{ {
int reg; int reg;
UINT64 shift; UINT64 shift;
UINT32 dat; UINT32 dat,old;
static struct { static struct {
UINT32 aica_addr; UINT32 aica_addr;
UINT32 root_addr; UINT32 root_addr;
@ -862,6 +863,10 @@ WRITE64_HANDLER( dc_g2_ctrl_w )
reg = decode_reg32_64(space->machine, offset, mem_mask, &shift); reg = decode_reg32_64(space->machine, offset, mem_mask, &shift);
dat = (UINT32)(data >> shift); dat = (UINT32)(data >> shift);
old = g2bus_regs[reg];
g2bus_regs[reg] = dat; // 5f7800+reg*4=dat
switch (reg) switch (reg)
{ {
/*AICA Address register*/ /*AICA Address register*/
@ -921,9 +926,8 @@ WRITE64_HANDLER( dc_g2_ctrl_w )
wave_dma.root_addr = src; wave_dma.root_addr = src;
wave_dma.size = 0; wave_dma.size = 0;
wave_dma.flag = (wave_dma.indirect & 1) ? 1 : 0; wave_dma.flag = (wave_dma.indirect & 1) ? 1 : 0;
wave_dma.start = 0; wave_dma.start = g2bus_regs[SB_ADST] = 0;
dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_AICA;
//TODO: signal irq there
} }
break; break;
} }