basic device hookups in aces1.c, some sets now play alarm sound / clean up rom loading and main rom banking for st0016.c and associated drivers. From Haze (nw)

This commit is contained in:
Scott Stone 2012-07-24 21:57:47 +00:00
parent e59bd00aef
commit 025c6f388b
7 changed files with 253 additions and 95 deletions

View File

@ -11,6 +11,11 @@ lots of reads from 0xe000 at the start
JPM style Reel MCU? JPM style Reel MCU?
Hardware overview
- Z80
- 2 timed interrupts (IRQ and NMI) (can be reset)
- AY8910 for sound
- some of the roms appear to have been merged to larger files, or there are two versions of the board? - some of the roms appear to have been merged to larger files, or there are two versions of the board?
@ -22,6 +27,7 @@ JPM style Reel MCU?
#include "sound/ay8910.h" #include "sound/ay8910.h"
#include "machine/i8255.h" #include "machine/i8255.h"
class aces1_state : public driver_device class aces1_state : public driver_device
{ {
public: public:
@ -30,81 +36,249 @@ public:
m_maincpu(*this, "maincpu") m_maincpu(*this, "maincpu")
{ } { }
DECLARE_READ8_MEMBER( aces1_unk_r )
{
return 0x00;
}
DECLARE_READ8_MEMBER( aces1_unk_port00_r )
{
return 0x00;
}
DECLARE_READ8_MEMBER( aces1_nmi_counter_reset_r ) DECLARE_READ8_MEMBER( aces1_nmi_counter_reset_r )
{ {
aces1_reset_nmi_timer();
return 0x00; return 0x00;
} }
DECLARE_WRITE8_MEMBER( aces1_nmi_counter_reset_w ) DECLARE_WRITE8_MEMBER( aces1_nmi_counter_reset_w )
{ {
aces1_reset_nmi_timer();
} }
protected: void aces1_reset_nmi_timer(void)
{
m_aces1_nmi_timer->adjust(m_maincpu->cycles_to_attotime(3072));
}
void aces1_reset_irq_timer(void)
{
m_aces1_irq_timer->adjust(m_maincpu->cycles_to_attotime(160000));
}
emu_timer *m_aces1_irq_timer;
emu_timer *m_aces1_nmi_timer;
DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_a)
{
// printf("7segs %02x\n", data);
}
DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_b)
{
// printf("lamp %02x\n", data);
}
DECLARE_WRITE8_MEMBER(ppi8255_ic24_intf_write_c)
{
// printf("strobe %02x\n", data);
}
DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_a)
{
// printf("extender lamps %02x\n", data);
}
DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_b)
{
// printf("meters, extender select %02x\n", data);
}
DECLARE_WRITE8_MEMBER(ppi8255_ic25_intf_write_c)
{
// printf("reels, extender strobe %02x\n", data);
}
DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_a )
{
return 0xff;
}
DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_b )
{
return 0xff;
}
DECLARE_READ8_MEMBER( ppi8255_ic37_intf_read_c )
{
return 0xff;
}
// devices // devices
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
protected:
}; };
static TIMER_CALLBACK( m_aces1_irq_timer_callback )
{
aces1_state *state = machine.driver_data<aces1_state>();
// printf("irq\n");
device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);
state->aces1_reset_irq_timer();
}
static TIMER_CALLBACK( m_aces1_nmi_timer_callback )
{
aces1_state *state = machine.driver_data<aces1_state>();
// printf("nmi\n");
device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
state->aces1_reset_nmi_timer();
}
static void aces1_create_timers(running_machine &machine)
{
aces1_state *state = machine.driver_data<aces1_state>();
state->m_aces1_irq_timer = machine.scheduler().timer_alloc(FUNC(m_aces1_irq_timer_callback), 0);
state->m_aces1_nmi_timer = machine.scheduler().timer_alloc(FUNC(m_aces1_nmi_timer_callback), 0);
}
static MACHINE_START( aces1 )
{
aces1_create_timers(machine);
}
static MACHINE_RESET( aces1 )
{
aces1_state *state = machine.driver_data<aces1_state>();
state->aces1_reset_nmi_timer();
state->aces1_reset_irq_timer();
}
static ADDRESS_MAP_START( aces1_map, AS_PROGRAM, 8, aces1_state ) static ADDRESS_MAP_START( aces1_map, AS_PROGRAM, 8, aces1_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM AM_RANGE(0x8000, 0x8fff) AM_RAM
// 0xadf0 AY - sound, dips AM_RANGE(0xadf0, 0xadf3) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_address_data_w) // Dips, Sound
// 0xafb0 IC24 - lamps, 7segs AM_RANGE(0xafb0, 0xafb3) AM_DEVREADWRITE("ppi8255_ic24", i8255_device, read, write) // IC24 - lamps, 7segs
// 0xafd0 IC25 - lamps, meters, reel comms (writes) AM_RANGE(0xafd0, 0xafd3) AM_DEVREADWRITE("ppi8255_ic25", i8255_device, read, write) // IC25 - lamps, meters, reel comms (writes)
// 0xafe0 IC37 - doors, coins, reel optics (reads) AM_RANGE(0xafe0, 0xafe3) AM_DEVREADWRITE("ppi8255_ic37", i8255_device, read, write)// IC37 - doors, coins, reel optics (reads)
// 0xc000 Illegal access? AM_RANGE(0xc000, 0xc000) AM_READ(aces1_unk_r) // illegal or reset irq?
AM_RANGE(0xe000, 0xe000) AM_READWRITE(aces1_nmi_counter_reset_r, aces1_nmi_counter_reset_w) AM_RANGE(0xe000, 0xe000) AM_READWRITE(aces1_nmi_counter_reset_r, aces1_nmi_counter_reset_w)
ADDRESS_MAP_END ADDRESS_MAP_END
static ADDRESS_MAP_START( aces1_portmap, AS_IO, 8, aces1_state ) static ADDRESS_MAP_START( aces1_portmap, AS_IO, 8, aces1_state )
AM_RANGE(0x00, 0x00) AM_READ(aces1_unk_port00_r) // read before enabling interrupts?
ADDRESS_MAP_END ADDRESS_MAP_END
static INPUT_PORTS_START( aces1 ) static INPUT_PORTS_START( aces1 )
PORT_START("DSWA")
PORT_DIPNAME( 0x01, 0x01, "DSWA" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSWB")
PORT_DIPNAME( 0x01, 0x01, "DSWB" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END INPUT_PORTS_END
// 0xafb0 IC24 - lamps, 7segs
static I8255A_INTERFACE( ppi8255_ic24_intf ) static I8255A_INTERFACE( ppi8255_ic24_intf )
{ {
DEVCB_NULL, /* Port A read */ DEVCB_NULL, /* Port A read */
DEVCB_NULL, /* Port A write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_a), /* Port A write */ // 7segs
DEVCB_NULL, /* Port B read */ DEVCB_NULL, /* Port B read */
DEVCB_NULL, /* Port B write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_b), /* Port B write */ // lamps
DEVCB_NULL, /* Port C read */ DEVCB_NULL, /* Port C read */
DEVCB_NULL /* Port C write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic24_intf_write_c) /* Port C write */ // strobe
}; };
// 0xafd0 IC25 - lamps, meters, reel comms (writes)
static I8255A_INTERFACE( ppi8255_ic25_intf ) static I8255A_INTERFACE( ppi8255_ic25_intf )
{ {
DEVCB_NULL, /* Port A read */ DEVCB_NULL, /* Port A read */
DEVCB_NULL, /* Port A write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_a), /* Port A write */ // extra lamps
DEVCB_NULL, /* Port B read */ DEVCB_NULL, /* Port B read */
DEVCB_NULL, /* Port B write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_b), /* Port B write */ // meters, extra lamp select
DEVCB_NULL, /* Port C read */ DEVCB_NULL, /* Port C read */
DEVCB_NULL /* Port C write */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic25_intf_write_c) /* Port C write */ // reel write, extra lamp strobe
}; };
// 0xafe0 IC37 - doors, coins, reel optics (reads)
static I8255A_INTERFACE( ppi8255_ic37_intf ) static I8255A_INTERFACE( ppi8255_ic37_intf )
{ {
DEVCB_NULL, /* Port A read */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_a), /* Port A read */ // doors + coins
DEVCB_NULL, /* Port A write */ DEVCB_NULL, /* Port A write */
DEVCB_NULL, /* Port B read */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_b), /* Port B read */ // switches
DEVCB_NULL, /* Port B write */ DEVCB_NULL, /* Port B write */
DEVCB_NULL, /* Port C read */ DEVCB_DRIVER_MEMBER(aces1_state,ppi8255_ic37_intf_read_c), /* Port C read */ // reel optics
DEVCB_NULL /* Port C write */ DEVCB_NULL /* Port C write */
}; };
// 0xadf0 - Dips, Sound
static const ay8910_interface ay8910_config = static const ay8910_interface ay8910_config =
{ {
AY8910_LEGACY_OUTPUT, AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS, AY8910_DEFAULT_LOADS,
DEVCB_NULL, DEVCB_INPUT_PORT("DSWA"),
DEVCB_NULL, DEVCB_INPUT_PORT("DSWB"),
DEVCB_NULL, DEVCB_NULL,
DEVCB_NULL DEVCB_NULL
}; };
@ -116,9 +290,12 @@ static MACHINE_CONFIG_START( aces1, aces1_state )
MCFG_CPU_PROGRAM_MAP(aces1_map) MCFG_CPU_PROGRAM_MAP(aces1_map)
MCFG_CPU_IO_MAP(aces1_portmap) MCFG_CPU_IO_MAP(aces1_portmap)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_ic24_intf ) MCFG_I8255A_ADD( "ppi8255_ic24", ppi8255_ic24_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_ic25_intf ) MCFG_I8255A_ADD( "ppi8255_ic25", ppi8255_ic25_intf )
MCFG_I8255A_ADD( "ppi8255_2", ppi8255_ic37_intf ) MCFG_I8255A_ADD( "ppi8255_ic37", ppi8255_ic37_intf )
MCFG_MACHINE_START( aces1 )
MCFG_MACHINE_RESET( aces1 )
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -754,7 +754,7 @@ static ADDRESS_MAP_START( st0016_io, AS_IO, 8, darkhors_state )
//AM_RANGE(0xc1, 0xc1) AM_READ_LEGACY(cmd2_r) //AM_RANGE(0xc1, 0xc1) AM_READ_LEGACY(cmd2_r)
//AM_RANGE(0xc2, 0xc2) AM_READ_LEGACY(cmd_stat8_r) //AM_RANGE(0xc2, 0xc2) AM_READ_LEGACY(cmd_stat8_r)
AM_RANGE(0xe1, 0xe1) AM_WRITE(st0016_rom_bank_w) AM_RANGE(0xe1, 0xe1) AM_WRITE(st0016_rom_bank_w)
AM_RANGE(0xe7, 0xe7) AM_WRITE(st0016_rom_bank_w) //AM_RANGE(0xe7, 0xe7) AM_WRITE(st0016_rom_bank_w)
//AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(st0016_dma_r) //AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(st0016_dma_r)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -951,9 +951,8 @@ ROM_START( jclub2o )
ROM_LOAD16_WORD_SWAP( "jc2-110x.u27",0x00000, 0x080000, CRC(03aa6882) SHA1(e0343bc77a19994ddafa614891663b40e1476332) ) ROM_LOAD16_WORD_SWAP( "jc2-110x.u27",0x00000, 0x080000, CRC(03aa6882) SHA1(e0343bc77a19994ddafa614891663b40e1476332) )
ROM_LOAD16_WORD_SWAP( "jc2-112x.u27",0x00000, 0x080000, CRC(e1ab93bd) SHA1(78b618b3f7819bd5351ebf949f328fec7795cec9) ) // alt revision? ROM_LOAD16_WORD_SWAP( "jc2-112x.u27",0x00000, 0x080000, CRC(e1ab93bd) SHA1(78b618b3f7819bd5351ebf949f328fec7795cec9) ) // alt revision?
ROM_REGION( 0x90000, "st0016", 0 ) // z80 core (used for sound?) ROM_REGION( 0x80000, "st0016", 0 ) // z80 core (used for sound?)
ROM_LOAD( "sx006-04.u87", 0x10000, 0x80000, CRC(a87adedd) SHA1(1cd5af2d03738fff2230b46241659179467c828c) ) ROM_LOAD( "sx006-04.u87", 0x00000, 0x80000, CRC(a87adedd) SHA1(1cd5af2d03738fff2230b46241659179467c828c) )
ROM_COPY( "st0016", 0x10000, 0x00000, 0x08000 )
ROM_END ROM_END
/*************************************************************************** /***************************************************************************

View File

@ -136,7 +136,7 @@ READ8_MEMBER(macs_state::macs_input_r)
WRITE8_MEMBER(macs_state::macs_rom_bank_w) WRITE8_MEMBER(macs_state::macs_rom_bank_w)
{ {
membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + 0x10000 + macs_cart_slot*0x400000 ); membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + macs_cart_slot*0x400000 );
m_st0016_rom_bank=data; m_st0016_rom_bank=data;
} }
@ -162,7 +162,7 @@ WRITE8_MEMBER(macs_state::macs_output_w)
macs_cart_slot = (data & 0xc) >> 2; macs_cart_slot = (data & 0xc) >> 2;
membank("bank4")->set_base(&ROM[macs_cart_slot*0x400000+0x10000] ); membank("bank4")->set_base(&ROM[macs_cart_slot*0x400000] );
} }
membank("bank2")->set_base(&m_ram1[((data&0x20)>>5)*0x1000+0x800] ); membank("bank2")->set_base(&m_ram1[((data&0x20)>>5)*0x1000+0x800] );
@ -519,8 +519,7 @@ ROM_START( macsbios )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios
ROM_COPY( "user1", 0x00000, 0x000000, 0x0008000 )
ROM_END ROM_END
ROM_START( mac2bios ) ROM_START( mac2bios )
@ -529,8 +528,7 @@ ROM_START( mac2bios )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios
ROM_COPY( "user1", 0x00000, 0x000000, 0x0008000 )
ROM_END ROM_END
ROM_START( kisekaem ) ROM_START( kisekaem )
@ -546,9 +544,8 @@ ROM_START( kisekaem )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios
ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A
ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 )
ROM_END ROM_END
ROM_START( kisekaeh ) ROM_START( kisekaeh )
@ -564,9 +561,8 @@ ROM_START( kisekaeh )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios
ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A
ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 )
ROM_END ROM_END
ROM_START( cultname ) // uses printer - two different games ? (slot a - checks for printer, slot b - not) ROM_START( cultname ) // uses printer - two different games ? (slot a - checks for printer, slot b - not)
@ -587,10 +583,9 @@ ROM_START( cultname ) // uses printer - two different games ? (slot a - checks f
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user1", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user1", 0x00000, 0x000000, 0x400000 ) // Bios
ROM_COPY( "user1", 0x00000, 0x000000, 0x008000 ) ROM_COPY( "user2", 0x00000, 0x400000, 0x400000 ) // Slot A
ROM_COPY( "user2", 0x00000, 0x410000, 0x400000 ) ROM_COPY( "user3", 0x00000, 0x800000, 0x400000 ) // Slot B
ROM_COPY( "user3", 0x00000, 0x810000, 0x400000 )
ROM_END ROM_END
/* these are listed as MACS2 sub-boards, is it the same? - it's not ;) */ /* these are listed as MACS2 sub-boards, is it the same? - it's not ;) */
@ -599,7 +594,6 @@ ROM_START( yuka )
MACS2_BIOS MACS2_BIOS
ROM_REGION( 0x400000, "user2", 0 ) // Slot A ROM_REGION( 0x400000, "user2", 0 ) // Slot A
ROM_LOAD16_BYTE( "yu-ka_2.u6", 0x000001, 0x100000, CRC(c3c5728b) SHA1(e53cdcae556f34bab45d9342fd78ec29b6543c46) ) ROM_LOAD16_BYTE( "yu-ka_2.u6", 0x000001, 0x100000, CRC(c3c5728b) SHA1(e53cdcae556f34bab45d9342fd78ec29b6543c46) )
ROM_LOAD16_BYTE( "yu-ka_4.u5", 0x000000, 0x100000, CRC(7e391ee6) SHA1(3a0c122c9d0e2a91df6d8039fb958b6d00997747) ) ROM_LOAD16_BYTE( "yu-ka_4.u5", 0x000000, 0x100000, CRC(7e391ee6) SHA1(3a0c122c9d0e2a91df6d8039fb958b6d00997747) )
ROM_LOAD16_BYTE( "yu-ka_1.u8", 0x200001, 0x100000, CRC(bccd1b15) SHA1(02511f3be60c53b5f5d90f12f0648f6e184ca667) ) ROM_LOAD16_BYTE( "yu-ka_1.u8", 0x200001, 0x100000, CRC(bccd1b15) SHA1(02511f3be60c53b5f5d90f12f0648f6e184ca667) )
@ -608,8 +602,7 @@ ROM_START( yuka )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASE00 ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASE00 ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user2", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user2", 0x00000, 0x000000, 0x400000 ) // Slot A
ROM_COPY( "user2", 0x00000, 0x000000, 0x0008000 )
ROM_END ROM_END
ROM_START( yujan ) ROM_START( yujan )
@ -624,8 +617,7 @@ ROM_START( yujan )
ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B ROM_REGION( 0x400000, "user3", ROMREGION_ERASEFF ) // Slot B
ROM_REGION( 0x1000000, "maincpu", 0 ) ROM_REGION( 0x1000000, "maincpu", 0 )
ROM_COPY( "user2", 0x00000, 0x010000, 0x400000 ) ROM_COPY( "user2", 0x00000, 0x000000, 0x400000 ) // Slot A
ROM_COPY( "user2", 0x00000, 0x000000, 0x0008000 )
ROM_END ROM_END
static const UINT8 ramdata[160]= static const UINT8 ramdata[160]=
@ -716,7 +708,7 @@ static MACHINE_RESET(macs)
macs_ram1[0x1ff9]=0x07; macs_ram1[0x1ff9]=0x07;
#endif #endif
state->membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() + 0x10000 ); state->membank("bank1")->set_base(machine.root_device().memregion("maincpu")->base() );
state->membank("bank2")->set_base(macs_ram1+0x800); state->membank("bank2")->set_base(macs_ram1+0x800);
state->membank("bank3")->set_base(macs_ram1+0x10000); state->membank("bank3")->set_base(macs_ram1+0x10000);
state->membank("bank4")->set_base(machine.root_device().memregion("maincpu")->base() ); state->membank("bank4")->set_base(machine.root_device().memregion("maincpu")->base() );

View File

@ -422,10 +422,9 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MACHINE_CONFIG_END MACHINE_CONFIG_END
ROM_START( speglsht ) ROM_START( speglsht )
ROM_REGION( 0x210000, "maincpu", 0 ) ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD( "sx004-07.u70", 0x010000, 0x200000, CRC(2d759cc4) SHA1(9fedd829190b2aab850b2f1088caaec91e8715dd) ) /* Noted as "ZPRO0" IE: Z80 (ST0016) Program 0 */ ROM_LOAD( "sx004-07.u70", 0x000000, 0x200000, CRC(2d759cc4) SHA1(9fedd829190b2aab850b2f1088caaec91e8715dd) ) /* Noted as "ZPRO0" IE: Z80 (ST0016) Program 0 */
/* U71 unpopulated, Noted as ZPRO1 */ /* U71 unpopulated, Noted as ZPRO1 */
ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 )
ROM_REGION32_BE( 0x200000, "user1", 0 ) ROM_REGION32_BE( 0x200000, "user1", 0 )
ROM_LOAD32_BYTE( "sx004-04.u33", 0x00000, 0x80000, CRC(e46d2e57) SHA1(b1fb836ab2ce547dc2e8d1046d7ef835b87bb04e) ) /* Noted as "RPRO3" IE: R3000 Program 3 */ ROM_LOAD32_BYTE( "sx004-04.u33", 0x00000, 0x80000, CRC(e46d2e57) SHA1(b1fb836ab2ce547dc2e8d1046d7ef835b87bb04e) ) /* Noted as "RPRO3" IE: R3000 Program 3 */

View File

@ -589,10 +589,9 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state )
MACHINE_CONFIG_END MACHINE_CONFIG_END
ROM_START( srmp5 ) ROM_START( srmp5 )
ROM_REGION( 0x410000, "maincpu", 0 ) ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD( "sx008-08.bin", 0x010000, 0x200000, CRC(d4ac54f4) SHA1(c3dc76cd71485796a0b6a960294ea96eae8c946e) ) ROM_LOAD( "sx008-08.bin", 0x000000, 0x200000, CRC(d4ac54f4) SHA1(c3dc76cd71485796a0b6a960294ea96eae8c946e) )
ROM_LOAD( "sx008-09.bin", 0x210000, 0x200000, CRC(5a3e6560) SHA1(92ea398f3c5e3035869f0ca5dfe7b05c90095318) ) ROM_LOAD( "sx008-09.bin", 0x200000, 0x200000, CRC(5a3e6560) SHA1(92ea398f3c5e3035869f0ca5dfe7b05c90095318) )
ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 )
ROM_REGION32_BE( 0x200000, "user1", 0 ) ROM_REGION32_BE( 0x200000, "user1", 0 )
ROM_LOAD32_BYTE( "sx008-14.bin", 0x00000, 0x80000, CRC(b5c55120) SHA1(0a41351c9563b2c6a00709189a917757bd6e0a24) ) ROM_LOAD32_BYTE( "sx008-14.bin", 0x00000, 0x80000, CRC(b5c55120) SHA1(0a41351c9563b2c6a00709189a917757bd6e0a24) )

View File

@ -70,7 +70,7 @@ WRITE8_MEMBER(st0016_state::mux_select_w)
WRITE8_MEMBER(st0016_state::st0016_rom_bank_w) WRITE8_MEMBER(st0016_state::st0016_rom_bank_w)
{ {
membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000) + 0x10000 ); membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + (data* 0x4000));
st0016_rom_bank=data; st0016_rom_bank=data;
} }
@ -428,6 +428,7 @@ static const st0016_interface st0016_config =
&st0016_charram &st0016_charram
}; };
/************************************* /*************************************
* *
* Machine driver(s) * Machine driver(s)
@ -507,38 +508,33 @@ Note:
*/ */
ROM_START( renju ) ROM_START( renju )
ROM_REGION( 0x290000, "maincpu", 0 ) ROM_REGION( 0x280000, "maincpu", 0 )
ROM_LOAD( "renjyu-1.u31",0x010000, 0x200000, CRC(e0fdbe9b) SHA1(52d31024d1a88b8fcca1f87366fcaf80e3c387a1) ) ROM_LOAD( "renjyu-1.u31",0x000000, 0x200000, CRC(e0fdbe9b) SHA1(52d31024d1a88b8fcca1f87366fcaf80e3c387a1) )
ROM_LOAD( "rnj2.u32", 0x210000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a ) ) ROM_LOAD( "rnj2.u32", 0x200000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a ) )
ROM_COPY( "maincpu", 0x210000, 0x000000, 0x08000 )
ROM_END ROM_END
ROM_START( nratechu ) ROM_START( nratechu )
ROM_REGION( 0x210000, "maincpu", 0 ) ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD( "sx012-01", 0x10000, 0x80000, CRC(6ca01d57) SHA1(065848f19ecf2dc1f7bbc7ddd87bca502e4b8b16) ) ROM_LOAD( "sx012-01", 0x000000, 0x080000, CRC(6ca01d57) SHA1(065848f19ecf2dc1f7bbc7ddd87bca502e4b8b16) )
ROM_LOAD( "sx012-02", 0x110000, 0x100000, CRC(40a4e354) SHA1(8120ce8deee6805050a5b083a334c3743c09566b) ) ROM_LOAD( "sx012-02", 0x100000, 0x100000, CRC(40a4e354) SHA1(8120ce8deee6805050a5b083a334c3743c09566b) )
ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 )
ROM_END ROM_END
/* PCB E51-00001 (almost identical to above) */ /* PCB E51-00001 (almost identical to above) */
ROM_START( dcrown ) ROM_START( dcrown )
ROM_REGION( 0x290000, "maincpu", 0 ) ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD( "dc1.u31",0x010000, 0x80000, CRC(e55200b8) SHA1(20a968dc895bb636b064c29b4b53c6ffa49fea36) ) ROM_LOAD( "dc1.u31",0x000000, 0x80000, CRC(e55200b8) SHA1(20a968dc895bb636b064c29b4b53c6ffa49fea36) )
ROM_LOAD( "dc2.u32",0x090000, 0x80000, CRC(05b6192f) SHA1(6af6e7b2c681f2791a7f89a528a95eb976c8ba84) ) ROM_LOAD( "dc2.u32",0x080000, 0x80000, CRC(05b6192f) SHA1(6af6e7b2c681f2791a7f89a528a95eb976c8ba84) )
ROM_LOAD( "dc3.u33",0x110000, 0x80000, CRC(f23c1975) SHA1(118d6054922a733d23363c53bb331d84c78e50ad) ) ROM_LOAD( "dc3.u33",0x100000, 0x80000, CRC(f23c1975) SHA1(118d6054922a733d23363c53bb331d84c78e50ad) )
ROM_LOAD( "dc4.u34",0x190000, 0x80000, CRC(0d1c2c61) SHA1(7e4dc20ab683ce0f61dd939cfd9b17714ba2343a) ) ROM_LOAD( "dc4.u34",0x180000, 0x80000, CRC(0d1c2c61) SHA1(7e4dc20ab683ce0f61dd939cfd9b17714ba2343a) )
ROM_COPY( "maincpu", 0x010000, 0x000000, 0x08000 )
ROM_END ROM_END
ROM_START( dcrowna ) ROM_START( dcrowna )
ROM_REGION( 0x290000, "maincpu", 0 ) ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD( "dcn-0.1c", 0x010000, 0x080000, CRC(5dd0615d) SHA1(b859994bd79229da4c687deefe1997313724b26e) ) ROM_LOAD( "dcn-0.1c", 0x000000, 0x080000, CRC(5dd0615d) SHA1(b859994bd79229da4c687deefe1997313724b26e) )
ROM_LOAD( "dcn-1.1d", 0x090000, 0x080000, CRC(6c6f14e7) SHA1(2a3474e44420cc78e3ead777eb91481c4bb46eef) ) ROM_LOAD( "dcn-1.1d", 0x080000, 0x080000, CRC(6c6f14e7) SHA1(2a3474e44420cc78e3ead777eb91481c4bb46eef) )
ROM_LOAD( "dcn-2.1e", 0x110000, 0x080000, CRC(e9401a5e) SHA1(db24ebe5a0073c7c1c2da957772e223545f3c778) ) ROM_LOAD( "dcn-2.1e", 0x100000, 0x080000, CRC(e9401a5e) SHA1(db24ebe5a0073c7c1c2da957772e223545f3c778) )
ROM_LOAD( "dcn-3.1f", 0x190000, 0x080000, CRC(ec2e88bc) SHA1(2a8deee63e123dae411e2b834eca69be6f646d66) ) ROM_LOAD( "dcn-3.1f", 0x180000, 0x080000, CRC(ec2e88bc) SHA1(2a8deee63e123dae411e2b834eca69be6f646d66) )
ROM_COPY( "maincpu", 0x010000, 0x000000, 0x08000 )
ROM_END ROM_END
/* /*
@ -572,14 +568,12 @@ E63-00001
*/ */
ROM_START( koikois ) ROM_START( koikois )
ROM_REGION( 0x410000, "maincpu", 0 ) ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD16_BYTE( "koi-2.6c", 0x000001, 0x080000, CRC(2722be71) SHA1(1aa3d819eef01db042ee04a01c1b18c4d9dae65e) )
ROM_LOAD16_BYTE( "koi-2.6c", 0x010001, 0x080000, CRC(2722be71) SHA1(1aa3d819eef01db042ee04a01c1b18c4d9dae65e) ) ROM_LOAD16_BYTE( "koi-1.4c", 0x000000, 0x080000, CRC(c79e2b43) SHA1(868174f7ab8e68e31d3302ae94dd742048deed9f) )
ROM_LOAD16_BYTE( "koi-1.4c", 0x010000, 0x080000, CRC(c79e2b43) SHA1(868174f7ab8e68e31d3302ae94dd742048deed9f) ) ROM_LOAD16_BYTE( "koi-4.8c", 0x100001, 0x080000, CRC(ace236df) SHA1(4bf56affe5b6d0ba3cc677eaa91f9be77f26c654) )
ROM_LOAD16_BYTE( "koi-4.8c", 0x110001, 0x080000, CRC(ace236df) SHA1(4bf56affe5b6d0ba3cc677eaa91f9be77f26c654) ) ROM_LOAD16_BYTE( "koi-3.5c", 0x100000, 0x080000, CRC(6fd88149) SHA1(87b1be32770232eb041e3ef9d1da45282af8a5d4) )
ROM_LOAD16_BYTE( "koi-3.5c", 0x110000, 0x080000, CRC(6fd88149) SHA1(87b1be32770232eb041e3ef9d1da45282af8a5d4) ) ROM_LOAD( "koi-5.2c", 0x200000, 0x200000, CRC(561e12c8) SHA1(a7aedf549bc3141fc01bc4a10c235af265ba4ee9) )
ROM_LOAD( "koi-5.2c", 0x210000, 0x200000, CRC(561e12c8) SHA1(a7aedf549bc3141fc01bc4a10c235af265ba4ee9) )
ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 )
ROM_END ROM_END
@ -637,11 +631,10 @@ E52-00001
*/ */
ROM_START(mayjinsn ) ROM_START(mayjinsn )
ROM_REGION( 0x190000, "maincpu", 0 ) ROM_REGION( 0x180000, "maincpu", 0 )
ROM_LOAD( "sx003.05d", 0x010000, 0x80000, CRC(2be6d620) SHA1(113db888fb657d45be55708bbbf9a9ac159a9636) ) ROM_LOAD( "sx003.05d", 0x000000, 0x80000, CRC(2be6d620) SHA1(113db888fb657d45be55708bbbf9a9ac159a9636) )
ROM_LOAD( "sx003.06", 0x090000, 0x80000, CRC(f0553386) SHA1(8915cb3ce03b9a12612694caec9bbec6de4dd070) ) ROM_LOAD( "sx003.06", 0x080000, 0x80000, CRC(f0553386) SHA1(8915cb3ce03b9a12612694caec9bbec6de4dd070) )
ROM_LOAD( "sx003.07d", 0x110000, 0x80000, CRC(8db281c3) SHA1(f8b488dd28010f01f789217a4d62ba2116e06e94) ) ROM_LOAD( "sx003.07d", 0x100000, 0x80000, CRC(8db281c3) SHA1(f8b488dd28010f01f789217a4d62ba2116e06e94) )
ROM_COPY( "maincpu", 0x010000, 0x00000, 0x08000 )
ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */ ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */
ROM_LOAD32_BYTE( "sx003.04", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) ) ROM_LOAD32_BYTE( "sx003.04", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) )
@ -651,9 +644,8 @@ ROM_START(mayjinsn )
ROM_END ROM_END
ROM_START(mayjisn2 ) ROM_START(mayjisn2 )
ROM_REGION( 0x110000, "maincpu", 0 ) ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "sx007-05.8b", 0x10000, 0x100000, CRC(b13ea605) SHA1(75c067df02c988f170c24153d3852c472355fc9d) ) ROM_LOAD( "sx007-05.8b", 0x00000, 0x100000, CRC(b13ea605) SHA1(75c067df02c988f170c24153d3852c472355fc9d) )
ROM_COPY( "maincpu", 0x10000, 0x00000, 0x08000 )
ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */ ROM_REGION32_LE( 0x20000*4, "user1", 0 ) /* V810 code */
ROM_LOAD32_BYTE( "sx007-04.4b", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) ) ROM_LOAD32_BYTE( "sx007-04.4b", 0x00003, 0x20000, CRC(fa15459f) SHA1(4163ab842943705c550f137abbdd2cb51ba5390f) )
@ -680,7 +672,7 @@ static DRIVER_INIT(nratechu)
static DRIVER_INIT(mayjinsn) static DRIVER_INIT(mayjinsn)
{ {
st0016_game=4|0x80; st0016_game=4;//|0x80;
machine.root_device().membank("bank2")->set_base(machine.root_device().memregion("user1")->base()); machine.root_device().membank("bank2")->set_base(machine.root_device().memregion("user1")->base());
} }

View File

@ -186,7 +186,7 @@ WRITE8_MEMBER(st0016_state::st0016_vregs_w)
UINT32 srcadr=(st0016_vregs[0xa0]|(st0016_vregs[0xa1]<<8)|(st0016_vregs[0xa2]<<16))<<1; UINT32 srcadr=(st0016_vregs[0xa0]|(st0016_vregs[0xa1]<<8)|(st0016_vregs[0xa2]<<16))<<1;
UINT32 dstadr=(st0016_vregs[0xa3]|(st0016_vregs[0xa4]<<8)|(st0016_vregs[0xa5]<<16))<<1; UINT32 dstadr=(st0016_vregs[0xa3]|(st0016_vregs[0xa4]<<8)|(st0016_vregs[0xa5]<<16))<<1;
UINT32 length=((st0016_vregs[0xa6]|(st0016_vregs[0xa7]<<8)|((st0016_vregs[0xa8]&0x1f)<<16))+1)<<1; UINT32 length=((st0016_vregs[0xa6]|(st0016_vregs[0xa7]<<8)|((st0016_vregs[0xa8]&0x1f)<<16))+1)<<1;
UINT32 srclen = (machine().root_device().memregion("maincpu")->bytes()-0x10000); UINT32 srclen = (machine().root_device().memregion("maincpu")->bytes());
UINT8 *mem = memregion("maincpu")->base(); UINT8 *mem = memregion("maincpu")->base();
srcadr += macs_cart_slot*0x400000; srcadr += macs_cart_slot*0x400000;
@ -196,7 +196,7 @@ WRITE8_MEMBER(st0016_state::st0016_vregs_w)
if( srcadr < srclen && (dstadr < ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE)) if( srcadr < srclen && (dstadr < ST0016_MAX_CHAR_BANK*ST0016_CHAR_BANK_SIZE))
{ {
st0016_char_bank=dstadr>>5; st0016_char_bank=dstadr>>5;
st0016_character_ram_w(space,dstadr&0x1f,mem[0x10000+srcadr]); st0016_character_ram_w(space,dstadr&0x1f,mem[srcadr]);
srcadr++; srcadr++;
dstadr++; dstadr++;
length--; length--;