qs1000.cpp : Convert set_irq, serial_in into WRITE_LINE_MEMBER (#3294)

eolith.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp : Modernize soundlatches
eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp : Replace user* -> saner ROM areas
This commit is contained in:
cam900 2018-03-04 16:31:00 +09:00 committed by Vas Crabb
parent 7e7dedea6e
commit f555e1627b
9 changed files with 191 additions and 278 deletions

View File

@ -262,20 +262,16 @@ void qs1000_device::device_start()
//------------------------------------------------- //-------------------------------------------------
// serial_in - send data to the chip // serial_in - send data to the chip
//------------------------------------------------- //-------------------------------------------------
void qs1000_device::serial_in(uint8_t data) WRITE_LINE_MEMBER(qs1000_device::serial_in)
{ {
m_serial_data_in = data; machine().scheduler().synchronize(timer_expired_delegate(FUNC(qs1000_device::serial_w), this), data);
// Signal to the CPU that data is available
m_cpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE);
m_cpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE);
} }
//------------------------------------------------- //-------------------------------------------------
// set_irq - interrupt the internal CPU // set_irq - interrupt the internal CPU
//------------------------------------------------- //-------------------------------------------------
void qs1000_device::set_irq(int state) WRITE_LINE_MEMBER(qs1000_device::set_irq)
{ {
// Signal to the CPU that data is available // Signal to the CPU that data is available
m_cpu->set_input_line(MCS51_INT1_LINE, state ? ASSERT_LINE : CLEAR_LINE); m_cpu->set_input_line(MCS51_INT1_LINE, state ? ASSERT_LINE : CLEAR_LINE);
@ -292,6 +288,19 @@ READ8_MEMBER(qs1000_device::data_to_i8052)
} }
//-------------------------------------------------
// serial_w - write serial data to the chip
//-------------------------------------------------
TIMER_CALLBACK_MEMBER(qs1000_device::serial_w)
{
m_serial_data_in = param;
// Signal to the CPU that data is available
m_cpu->set_input_line(MCS51_RX_LINE, ASSERT_LINE);
m_cpu->set_input_line(MCS51_RX_LINE, CLEAR_LINE);
}
//------------------------------------------------- //-------------------------------------------------
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------

View File

@ -68,8 +68,8 @@ public:
//template <class Object> devcb_base &set_serial_w_callback(Object &&cb) { return m_serial_w_cb.set_callback(std::forward<Object>(cb)); } //template <class Object> devcb_base &set_serial_w_callback(Object &&cb) { return m_serial_w_cb.set_callback(std::forward<Object>(cb)); }
// external // external
void serial_in(uint8_t data); DECLARE_WRITE_LINE_MEMBER( serial_in );
void set_irq(int state); DECLARE_WRITE_LINE_MEMBER( set_irq );
DECLARE_WRITE8_MEMBER( wave_w ); DECLARE_WRITE8_MEMBER( wave_w );
@ -102,6 +102,7 @@ protected:
virtual void rom_bank_updated() override; virtual void rom_bank_updated() override;
private: private:
TIMER_CALLBACK_MEMBER( serial_w );
static constexpr unsigned QS1000_CHANNELS = 32; static constexpr unsigned QS1000_CHANNELS = 32;
static constexpr offs_t QS1000_ADDRESS_MASK = 0x00ffffff; static constexpr offs_t QS1000_ADDRESS_MASK = 0x00ffffff;

View File

@ -160,28 +160,12 @@ READ32_MEMBER(eolith_state::hidctch3_pen2_r)
return xpos + (ypos*168*2); return xpos + (ypos*168*2);
} }
WRITE32_MEMBER( eolith_state::sound_w )
{
// printf("CPU Command: %x\n", m_sound_data);
m_sound_data = data;
m_soundcpu->set_input_line(MCS51_INT0_LINE, ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250));
}
/************************************* /*************************************
* *
* Sound CPU * Sound CPU
* *
*************************************/ *************************************/
READ8_MEMBER( eolith_state::sound_cmd_r )
{
m_soundcpu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
return m_sound_data;
}
WRITE8_MEMBER( eolith_state::sound_p1_w ) WRITE8_MEMBER( eolith_state::sound_p1_w )
{ {
// .... xxxx - Data ROM bank (32kB) // .... xxxx - Data ROM bank (32kB)
@ -220,19 +204,6 @@ WRITE8_MEMBER( eolith_state::qs1000_p1_w )
} }
/*************************************
*
* Sound CPU <-> QS1000 CPU
*
*************************************/
WRITE8_MEMBER(eolith_state::soundcpu_to_qs1000)
{
m_qs1000->serial_in(data);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250));
}
/************************************* /*************************************
* *
* Main CPU memory map * Main CPU memory map
@ -245,10 +216,10 @@ ADDRESS_MAP_START(eolith_state::eolith_map)
AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w) AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w)
AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r) AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r)
AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w) AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w)
AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(sound_w) AM_RANGE(0xfc800000, 0xfc800003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff).cswidth(32)
AM_RANGE(0xfca00000, 0xfca00003) AM_READ_PORT("DSW1") AM_RANGE(0xfca00000, 0xfca00003) AM_READ_PORT("DSW1")
AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ? AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ?
AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("maindata", 0)
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -265,7 +236,7 @@ ADDRESS_MAP_END
ADDRESS_MAP_START(eolith_state::sound_io_map) ADDRESS_MAP_START(eolith_state::sound_io_map)
AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("sound_bank") AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("sound_bank")
AM_RANGE(0x8000, 0x8000) AM_READ(sound_cmd_r) AM_RANGE(0x8000, 0x8000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -553,7 +524,7 @@ MACHINE_CONFIG_START(eolith_state::eolith45)
MCFG_CPU_PROGRAM_MAP(sound_prg_map) MCFG_CPU_PROGRAM_MAP(sound_prg_map)
MCFG_CPU_IO_MAP(sound_io_map) MCFG_CPU_IO_MAP(sound_io_map)
MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(eolith_state, sound_p1_w)) MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(eolith_state, sound_p1_w))
MCFG_MCS51_SERIAL_TX_CB(WRITE8(eolith_state, soundcpu_to_qs1000)) // Sound CPU -> QS1000 CPU serial link MCFG_MCS51_SERIAL_TX_CB(DEVWRITE8("qs1000", qs1000_device, serial_in)) // Sound CPU -> QS1000 CPU serial link
MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith) MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith)
@ -581,6 +552,9 @@ MACHINE_CONFIG_START(eolith_state::eolith45)
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("soundcpu", MCS51_INT0_LINE))
MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000)) MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000))
MCFG_QS1000_EXTERNAL_ROM(true) MCFG_QS1000_EXTERNAL_ROM(true)
MCFG_QS1000_IN_P1_CB(READ8(eolith_state, qs1000_p1_r)) MCFG_QS1000_IN_P1_CB(READ8(eolith_state, qs1000_p1_r))
@ -667,7 +641,7 @@ ROM_START( ironfort )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43", 0x00000, 0x80000, CRC(29f55825) SHA1(e048ec0f5d83d4b64aa48d706fa0947afcdc1a3d) ) /* 27C040 eprom with no label */ ROM_LOAD( "u43", 0x00000, 0x80000, CRC(29f55825) SHA1(e048ec0f5d83d4b64aa48d706fa0947afcdc1a3d) ) /* 27C040 eprom with no label */
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) ) ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) )
ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) ) ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) )
ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) )
@ -694,7 +668,7 @@ ROM_START( ironfortc )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(f1f19c9a) SHA1(98531ecedd1277e6d10395794a66d615df7ddbd6) ) /* 27C040 eprom with no label */ ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(f1f19c9a) SHA1(98531ecedd1277e6d10395794a66d615df7ddbd6) ) /* 27C040 eprom with no label */
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) ) ROM_LOAD32_WORD_SWAP( "if00-00.u39", 0x0000000, 0x400000, CRC(63b74601) SHA1(c111ecf55359e9005a3ec1fe1202a34624f8b242) )
ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) ) ROM_LOAD32_WORD_SWAP( "if00-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) )
ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) )
@ -720,7 +694,7 @@ ROM_START( linkypip )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(9ef937de) SHA1(b121d683898311baaa1e2aba199dec0c1d59f55a) ) ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(9ef937de) SHA1(b121d683898311baaa1e2aba199dec0c1d59f55a) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "lp00.u39", 0x0000000, 0x400000, CRC(c1e71bbc) SHA1(f54b374b05ce6044944ba10ba8a634eb661b092d) ) ROM_LOAD32_WORD_SWAP( "lp00.u39", 0x0000000, 0x400000, CRC(c1e71bbc) SHA1(f54b374b05ce6044944ba10ba8a634eb661b092d) )
ROM_LOAD32_WORD_SWAP( "lp01.u34", 0x0000002, 0x400000, CRC(30780c08) SHA1(15d7bf1397c25eb813c79fc9cea88ac427b1d9c7) ) ROM_LOAD32_WORD_SWAP( "lp01.u34", 0x0000002, 0x400000, CRC(30780c08) SHA1(15d7bf1397c25eb813c79fc9cea88ac427b1d9c7) )
ROM_LOAD32_WORD_SWAP( "lp02.u40", 0x0800000, 0x400000, CRC(3381bd2c) SHA1(78b30f3940e5c9887ab4ad398bde356671deabb5) ) ROM_LOAD32_WORD_SWAP( "lp02.u40", 0x0800000, 0x400000, CRC(3381bd2c) SHA1(78b30f3940e5c9887ab4ad398bde356671deabb5) )
@ -746,7 +720,7 @@ ROM_START( hidnctch )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "hc_u43.bin", 0x00000, 0x80000, CRC(635b4478) SHA1(31ea4a9725e0c329447c7d221c22494c905f6940) ) ROM_LOAD( "hc_u43.bin", 0x00000, 0x80000, CRC(635b4478) SHA1(31ea4a9725e0c329447c7d221c22494c905f6940) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "hc0_u39.bin", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) ROM_LOAD32_WORD_SWAP( "hc0_u39.bin", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) )
ROM_LOAD32_WORD_SWAP( "hc1_u34.bin", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) ROM_LOAD32_WORD_SWAP( "hc1_u34.bin", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) )
ROM_LOAD32_WORD_SWAP( "hc2_u40.bin", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) ROM_LOAD32_WORD_SWAP( "hc2_u40.bin", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) )
@ -816,7 +790,7 @@ ROM_START( nhidctch )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43", 0x00000, 0x80000, CRC(44296fdb) SHA1(1faf7061342d4c86f6ca416d922cb98ffb72f250) ) ROM_LOAD( "u43", 0x00000, 0x80000, CRC(44296fdb) SHA1(1faf7061342d4c86f6ca416d922cb98ffb72f250) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "hc000.u39", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) ) ROM_LOAD32_WORD_SWAP( "hc000.u39", 0x0000000, 0x400000, CRC(eefb6add) SHA1(a0f6f2cf86699a666be0647274d8c9381782640d) )
ROM_LOAD32_WORD_SWAP( "hc001.u34", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) ) ROM_LOAD32_WORD_SWAP( "hc001.u34", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) )
ROM_LOAD32_WORD_SWAP( "hc002.u40", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) ) ROM_LOAD32_WORD_SWAP( "hc002.u40", 0x0800000, 0x400000, CRC(914a1544) SHA1(683cb007ace50d1ba88253da6ad71dc3a395299d) )
@ -889,7 +863,7 @@ ROM_START( hidctch2 )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43", 0x00000, 0x80000, CRC(326d1dbc) SHA1(b33434cd263dc40ee2b6562f72a87a0439a9833e) ) ROM_LOAD( "u43", 0x00000, 0x80000, CRC(326d1dbc) SHA1(b33434cd263dc40ee2b6562f72a87a0439a9833e) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) ) ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) )
ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) ) ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) )
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) ) ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) )
@ -926,7 +900,7 @@ ROM_START( hidctch2a )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "hc2j.u43", 0x00000, 0x80000, CRC(8d3b8394) SHA1(29093ee13eb3609abc670d6722f3095f03045af6) ) ROM_LOAD( "hc2j.u43", 0x00000, 0x80000, CRC(8d3b8394) SHA1(29093ee13eb3609abc670d6722f3095f03045af6) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) ) ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(c6b1bc84) SHA1(205d1dc5079562b11cef72fef25a3c570eaecf78) )
ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) ) ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) )
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) ) ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(3f7815aa) SHA1(ed46cbe03fde5cab15e004812036b0aaa00fc628) )
@ -963,7 +937,7 @@ ROM_START( hidnc2k )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(05063136) SHA1(9c1b3066a571b1e52d57cfe790a55257b37d5b89) ) ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(05063136) SHA1(9c1b3066a571b1e52d57cfe790a55257b37d5b89) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "hc2000-0.u39", 0x0000000, 0x400000, CRC(10d4fd9a) SHA1(8ecbc0708a41d27ddd5fa1b01eed6411a4f3e6ec) ) ROM_LOAD32_WORD_SWAP( "hc2000-0.u39", 0x0000000, 0x400000, CRC(10d4fd9a) SHA1(8ecbc0708a41d27ddd5fa1b01eed6411a4f3e6ec) )
ROM_LOAD32_WORD_SWAP( "hc2000-1.u34", 0x0000002, 0x400000, CRC(6e029c0a) SHA1(e217f6269e1c2a38f414c7220005e8bb6c636c57) ) ROM_LOAD32_WORD_SWAP( "hc2000-1.u34", 0x0000002, 0x400000, CRC(6e029c0a) SHA1(e217f6269e1c2a38f414c7220005e8bb6c636c57) )
ROM_LOAD32_WORD_SWAP( "hc2000-2.u40", 0x0800000, 0x400000, CRC(1dc3fb7f) SHA1(c0cc5cac0be5e4e01fa1eaa9dc30f652431263ce) ) ROM_LOAD32_WORD_SWAP( "hc2000-2.u40", 0x0800000, 0x400000, CRC(1dc3fb7f) SHA1(c0cc5cac0be5e4e01fa1eaa9dc30f652431263ce) )
@ -1060,7 +1034,7 @@ ROM_START( raccoon )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "racoon-u.43", 0x00000, 0x80000, CRC(711ee026) SHA1(c55dfaa24cbaa7a613657cfb25e7f0085f1e4cbf) ) ROM_LOAD( "racoon-u.43", 0x00000, 0x80000, CRC(711ee026) SHA1(c55dfaa24cbaa7a613657cfb25e7f0085f1e4cbf) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "racoon.u10", 0x0000000, 0x200000, CRC(f702390e) SHA1(47520ba0e6d3f044136a517ebbec7426a66ce33d) ) ROM_LOAD32_WORD_SWAP( "racoon.u10", 0x0000000, 0x200000, CRC(f702390e) SHA1(47520ba0e6d3f044136a517ebbec7426a66ce33d) )
ROM_LOAD32_WORD_SWAP( "racoon.u1", 0x0000002, 0x200000, CRC(49775125) SHA1(2b8ee9dd767465999c828d65bb02b8aaad94177c) ) ROM_LOAD32_WORD_SWAP( "racoon.u1", 0x0000002, 0x200000, CRC(49775125) SHA1(2b8ee9dd767465999c828d65bb02b8aaad94177c) )
ROM_LOAD32_WORD_SWAP( "racoon.u11", 0x0400000, 0x200000, CRC(3f23f368) SHA1(eb1ea51def2cde5e7e4f334888294b794aa03dfc) ) ROM_LOAD32_WORD_SWAP( "racoon.u11", 0x0400000, 0x200000, CRC(3f23f368) SHA1(eb1ea51def2cde5e7e4f334888294b794aa03dfc) )
@ -1089,7 +1063,7 @@ ROM_START( landbrk )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom3.u43", 0x00000, 0x80000, CRC(8429189a) SHA1(f38e4792426ca2c138c44053a6c7525906281dff) ) ROM_LOAD( "rom3.u43", 0x00000, 0x80000, CRC(8429189a) SHA1(f38e4792426ca2c138c44053a6c7525906281dff) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.bin", 0x0000000, 0x200000, CRC(a803aace) SHA1(52a9e27b4f400767a953aa01321a9fa7cdbf3976) ) ROM_LOAD32_WORD_SWAP( "00.bin", 0x0000000, 0x200000, CRC(a803aace) SHA1(52a9e27b4f400767a953aa01321a9fa7cdbf3976) )
ROM_LOAD32_WORD_SWAP( "01.bin", 0x0000002, 0x200000, CRC(439c95cc) SHA1(18830024b2e43f0a89a7bd32841fbcb574e50fc6) ) ROM_LOAD32_WORD_SWAP( "01.bin", 0x0000002, 0x200000, CRC(439c95cc) SHA1(18830024b2e43f0a89a7bd32841fbcb574e50fc6) )
ROM_LOAD32_WORD_SWAP( "02.bin", 0x0400000, 0x200000, CRC(a0c2828c) SHA1(967dc467d25f093749aa0146ebf54959c9803b92) ) ROM_LOAD32_WORD_SWAP( "02.bin", 0x0400000, 0x200000, CRC(a0c2828c) SHA1(967dc467d25f093749aa0146ebf54959c9803b92) )
@ -1126,7 +1100,7 @@ ROM_START( landbrka )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "lb_1.u43", 0x00000, 0x80000, CRC(f8bbcf44) SHA1(ad85a890ae2f921cd08c1897b4d9a230ccf9e072) ) ROM_LOAD( "lb_1.u43", 0x00000, 0x80000, CRC(f8bbcf44) SHA1(ad85a890ae2f921cd08c1897b4d9a230ccf9e072) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) ) ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) )
ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) ) ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) )
ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) ) ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) )
@ -1155,7 +1129,7 @@ ROM_START( landbrkb )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "lb_040.u43", 0x00000, 0x80000, CRC(a81d681b) SHA1(e92b0217a86271dd1e51bef75f5b4fda7a8415ed) ) ROM_LOAD( "lb_040.u43", 0x00000, 0x80000, CRC(a81d681b) SHA1(e92b0217a86271dd1e51bef75f5b4fda7a8415ed) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) ) ROM_LOAD32_WORD_SWAP( "lb2-000.u39", 0x0000000, 0x400000, CRC(b37faf7a) SHA1(30e9af3957ada7c72d85f55add221c2e9b3ea823) )
ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) ) ROM_LOAD32_WORD_SWAP( "lb2-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) )
ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) ) ROM_LOAD32_WORD_SWAP( "lb2-002.u40", 0x0800000, 0x400000, CRC(3bb4bca6) SHA1(115029be4a4e322549a35f3ae5093ec161e9a421) )
@ -1185,7 +1159,7 @@ ROM_START( penfan )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "pfg.u43", 0x00000, 0x80000, CRC(84977191) SHA1(2566bcbf0815e02d27cad6f2118eb3a1ed7e9ebc) ) ROM_LOAD( "pfg.u43", 0x00000, 0x80000, CRC(84977191) SHA1(2566bcbf0815e02d27cad6f2118eb3a1ed7e9ebc) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) ) ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) )
ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) ) ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) )
ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) ) ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) )
@ -1222,7 +1196,7 @@ ROM_START( penfana )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(a7637f8b) SHA1(aadfaa03b43cd325ddbc04fe7b60ca704a9891a5) ) /* no rom label or sticker */ ROM_LOAD( "27c040.u43", 0x00000, 0x80000, CRC(a7637f8b) SHA1(aadfaa03b43cd325ddbc04fe7b60ca704a9891a5) ) /* no rom label or sticker */
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) ) ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(77ce2855) SHA1(715d12db11871750b886406673a6f3934b0b1a57) )
ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) ) ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) )
ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) ) ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(79b05a66) SHA1(8e6ffa751267147679fde84b5c8b9ef954e4a1d0) )
@ -1260,7 +1234,7 @@ ROM_START( stealsee )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "ss.u43", 0x00000, 0x80000, CRC(b0a1a965) SHA1(e13f336035a266da66ca8f95b92cac7295323989) ) ROM_LOAD( "ss.u43", 0x00000, 0x80000, CRC(b0a1a965) SHA1(e13f336035a266da66ca8f95b92cac7295323989) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(59d247a7) SHA1(a206cbb27f8054baca76dc72e6f45be4c9a914b1) ) // FIXED BITS (xxxxxxxx0xxxxxxx) ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(59d247a7) SHA1(a206cbb27f8054baca76dc72e6f45be4c9a914b1) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(255764f2) SHA1(b1d25898961ddbed9865620269cb0cd0ab506cd9) ) ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(255764f2) SHA1(b1d25898961ddbed9865620269cb0cd0ab506cd9) )
ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(ebc33180) SHA1(7f59263754e9e2c32a5942daed60770dc4d4f6b5) ) ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(ebc33180) SHA1(7f59263754e9e2c32a5942daed60770dc4d4f6b5) )
@ -1298,7 +1272,7 @@ ROM_START( candy )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "cc.u43", 0x00000, 0x80000, CRC(837c9967) SHA1(ccb38ec986d7cd598a48ee1c3806566c360fd783) ) ROM_LOAD( "cc.u43", 0x00000, 0x80000, CRC(837c9967) SHA1(ccb38ec986d7cd598a48ee1c3806566c360fd783) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASEFF ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(04bc53e4) SHA1(093651c4d4148dc36260d7a6cd8c322ba9a63195) ) ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(04bc53e4) SHA1(093651c4d4148dc36260d7a6cd8c322ba9a63195) )
ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(288229f1) SHA1(56e3ae101f8acc5d1e9bcc28b74ee48aa456bf28) ) ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(288229f1) SHA1(56e3ae101f8acc5d1e9bcc28b74ee48aa456bf28) )
ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(5d3b130c) SHA1(e247d0dd3a1909296c2a754733f10170d264825c) ) ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(5d3b130c) SHA1(e247d0dd3a1909296c2a754733f10170d264825c) )
@ -1335,7 +1309,7 @@ ROM_START( fort2b )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "1.u43", 0x00000, 0x80000, CRC(b2279485) SHA1(022591b260be28820f04a1c1fdd61cb9b68d6703) ) ROM_LOAD( "1.u43", 0x00000, 0x80000, CRC(b2279485) SHA1(022591b260be28820f04a1c1fdd61cb9b68d6703) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(4437b595) SHA1(b87518110955947264d93b1f377289f1741ce5dc) ) ROM_LOAD32_WORD_SWAP( "00.u5", 0x0000000, 0x200000, CRC(4437b595) SHA1(b87518110955947264d93b1f377289f1741ce5dc) )
ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(2a410aed) SHA1(def822ead339180aa3e0ebb266b6a6eb1271a2ae) ) ROM_LOAD32_WORD_SWAP( "01.u1", 0x0000002, 0x200000, CRC(2a410aed) SHA1(def822ead339180aa3e0ebb266b6a6eb1271a2ae) )
ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(12f0e4c0) SHA1(fa1e1c3510af61b4058507f1aca801377cafffb4) ) ROM_LOAD32_WORD_SWAP( "02.u6", 0x0400000, 0x200000, CRC(12f0e4c0) SHA1(fa1e1c3510af61b4058507f1aca801377cafffb4) )
@ -1372,7 +1346,7 @@ ROM_START( fort2ba )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "ftii012.u43", 0x00000, 0x80000, CRC(6424e05f) SHA1(2f02f103de180561e372ce897f8410a11c4cb58d) ) ROM_LOAD( "ftii012.u43", 0x00000, 0x80000, CRC(6424e05f) SHA1(2f02f103de180561e372ce897f8410a11c4cb58d) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "ftii000.u39", 0x0000000, 0x400000, CRC(be74121d) SHA1(ee072044f84e11c48537d79bd9766bf8cc28f002) ) ROM_LOAD32_WORD_SWAP( "ftii000.u39", 0x0000000, 0x400000, CRC(be74121d) SHA1(ee072044f84e11c48537d79bd9766bf8cc28f002) )
ROM_LOAD32_WORD_SWAP( "ftii004.u34", 0x0000002, 0x400000, CRC(d4399f98) SHA1(88f5a1097f44d2070cfc96c9cd83342d1975dcfe) ) ROM_LOAD32_WORD_SWAP( "ftii004.u34", 0x0000002, 0x400000, CRC(d4399f98) SHA1(88f5a1097f44d2070cfc96c9cd83342d1975dcfe) )
ROM_LOAD32_WORD_SWAP( "ftii001.u40", 0x0800000, 0x400000, CRC(35c396ff) SHA1(d05dee021e1a93e224b05949c18a5107e0aceb4d) ) ROM_LOAD32_WORD_SWAP( "ftii001.u40", 0x0800000, 0x400000, CRC(35c396ff) SHA1(d05dee021e1a93e224b05949c18a5107e0aceb4d) )
@ -1402,7 +1376,7 @@ ROM_START( puzzlekg )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(c3db7424) SHA1(5ee2be0f06fddb0c74fc6e82679b275cc4e86bcc) ) ROM_LOAD( "u43.bin", 0x00000, 0x80000, CRC(c3db7424) SHA1(5ee2be0f06fddb0c74fc6e82679b275cc4e86bcc) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "u10.bin", 0x0000000, 0x200000, CRC(c9c3064b) SHA1(10a46d4674c1ef64e50dfcb5eb44953206fe6163) ) ROM_LOAD32_WORD_SWAP( "u10.bin", 0x0000000, 0x200000, CRC(c9c3064b) SHA1(10a46d4674c1ef64e50dfcb5eb44953206fe6163) )
ROM_LOAD32_WORD_SWAP( "u1.bin", 0x0000002, 0x200000, CRC(6b4b369d) SHA1(3f528e557f2846d7c50afa332797e8bc541eeba8) ) ROM_LOAD32_WORD_SWAP( "u1.bin", 0x0000002, 0x200000, CRC(6b4b369d) SHA1(3f528e557f2846d7c50afa332797e8bc541eeba8) )
ROM_LOAD32_WORD_SWAP( "u11.bin", 0x0400000, 0x200000, CRC(92615236) SHA1(dc602cb4c2a3d671cc60b075b399cf3efb67d3d3) ) ROM_LOAD32_WORD_SWAP( "u11.bin", 0x0400000, 0x200000, CRC(92615236) SHA1(dc602cb4c2a3d671cc60b075b399cf3efb67d3d3) )
@ -1488,7 +1462,7 @@ ROM_START( hidctch3 )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u43", 0x00000, 0x80000, CRC(7b861339) SHA1(fca7d47d7d538774ec6462deebc0a367ac073b67) ) ROM_LOAD( "u43", 0x00000, 0x80000, CRC(7b861339) SHA1(fca7d47d7d538774ec6462deebc0a367ac073b67) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(7fe5cd46) SHA1(8190614a1cf1df6472590b43036200a1075bfe58) ) ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(7fe5cd46) SHA1(8190614a1cf1df6472590b43036200a1075bfe58) )
ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(09463ec9) SHA1(0287da2e65521a61c06ad927e913243d023f0d72) ) ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(09463ec9) SHA1(0287da2e65521a61c06ad927e913243d023f0d72) )
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(e5a08ebf) SHA1(0ce2414b547a027710ee4ea8f890cc2fa23dff9a) ) ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(e5a08ebf) SHA1(0ce2414b547a027710ee4ea8f890cc2fa23dff9a) )
@ -1531,9 +1505,7 @@ DRIVER_INIT_MEMBER(eolith_state,eolith)
init_speedup(); init_speedup();
// Configure the sound ROM banking // Configure the sound ROM banking
membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000); m_sndbank->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000);
save_item(NAME(m_sound_data));
} }
DRIVER_INIT_MEMBER(eolith_state,landbrk) DRIVER_INIT_MEMBER(eolith_state,landbrk)

View File

@ -78,14 +78,14 @@ ADDRESS_MAP_START(eolith16_state::eolith16_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x50000000, 0x5000ffff) AM_READWRITE(vram_r, vram_w) AM_RANGE(0x50000000, 0x5000ffff) AM_READWRITE(vram_r, vram_w)
AM_RANGE(0x90000000, 0x9000002f) AM_WRITENOP //? AM_RANGE(0x90000000, 0x9000002f) AM_WRITENOP //?
AM_RANGE(0xff000000, 0xff1fffff) AM_ROM AM_REGION("user2", 0) AM_RANGE(0xff000000, 0xff1fffff) AM_ROM AM_REGION("maindata", 0)
AM_RANGE(0xffe40000, 0xffe40001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) AM_RANGE(0xffe40000, 0xffe40001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xffe80000, 0xffe80001) AM_WRITE(eeprom_w) AM_RANGE(0xffe80000, 0xffe80001) AM_WRITE(eeprom_w)
AM_RANGE(0xffea0000, 0xffea0001) AM_READ(eolith16_custom_r) AM_RANGE(0xffea0000, 0xffea0001) AM_READ(eolith16_custom_r)
AM_RANGE(0xffea0002, 0xffea0003) AM_READ_PORT("SYSTEM") AM_RANGE(0xffea0002, 0xffea0003) AM_READ_PORT("SYSTEM")
AM_RANGE(0xffec0000, 0xffec0001) AM_READNOP // not used? AM_RANGE(0xffec0000, 0xffec0001) AM_READNOP // not used?
AM_RANGE(0xffec0002, 0xffec0003) AM_READ_PORT("INPUTS") AM_RANGE(0xffec0002, 0xffec0003) AM_READ_PORT("INPUTS")
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END ADDRESS_MAP_END
static INPUT_PORTS_START( eolith16 ) static INPUT_PORTS_START( eolith16 )
@ -251,10 +251,10 @@ Notes:
*/ */
ROM_START( klondkp ) ROM_START( klondkp )
ROM_REGION16_BE( 0x80000, "user1", 0 ) /* E1-16T program code */ ROM_REGION16_BE( 0x80000, "maincpu", 0 ) /* E1-16T program code */
ROM_LOAD( "kd.u5", 0x000000, 0x080000, CRC(591f0c73) SHA1(a9f338204c77a724fa6a6e08d78ca89bd5191aba) ) ROM_LOAD( "kd.u5", 0x000000, 0x080000, CRC(591f0c73) SHA1(a9f338204c77a724fa6a6e08d78ca89bd5191aba) )
ROM_REGION16_BE( 0x200000, "user2", 0 ) /* gfx data */ ROM_REGION16_BE( 0x200000, "maindata", 0 ) /* gfx data */
ROM_LOAD16_WORD_SWAP( "kd.u31", 0x000000, 0x200000, CRC(e5dd12b5) SHA1(0a0cd75cbcdccce3575e5a58ba09c88452e1a5ee) ) ROM_LOAD16_WORD_SWAP( "kd.u31", 0x000000, 0x200000, CRC(e5dd12b5) SHA1(0a0cd75cbcdccce3575e5a58ba09c88452e1a5ee) )
ROM_REGION( 0x80000, "oki", 0 ) /* oki samples */ ROM_REGION( 0x80000, "oki", 0 ) /* oki samples */

View File

@ -88,13 +88,15 @@ class ghosteo_state : public driver_device
{ {
public: public:
ghosteo_state(const machine_config &mconfig, device_type type, const char *tag) ghosteo_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag)
m_maincpu(*this, "maincpu"), , m_maincpu(*this, "maincpu")
m_qs1000(*this, "qs1000"), , m_qs1000(*this, "qs1000")
m_i2cmem(*this, "i2cmem"), , m_i2cmem(*this, "i2cmem")
m_s3c2410(*this, "s3c2410"), , m_s3c2410(*this, "s3c2410")
m_soundlatch(*this, "soundlatch"), , m_soundlatch(*this, "soundlatch")
m_system_memory(*this, "systememory") { } , m_system_memory(*this, "systememory")
, m_flash(*this, "flash")
{ }
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<qs1000_device> m_qs1000; required_device<qs1000_device> m_qs1000;
@ -102,22 +104,19 @@ public:
required_device<s3c2410_device> m_s3c2410; required_device<s3c2410_device> m_s3c2410;
required_device<generic_latch_8_device> m_soundlatch; required_device<generic_latch_8_device> m_soundlatch;
required_shared_ptr<uint32_t> m_system_memory; required_shared_ptr<uint32_t> m_system_memory;
required_region_ptr<uint8_t> m_flash;
int m_security_count; int m_security_count;
uint32_t m_bballoon_port[20]; uint32_t m_bballoon_port[20];
struct nand_t m_nand; struct nand_t m_nand;
DECLARE_READ32_MEMBER(bballoon_speedup_r); DECLARE_READ32_MEMBER(bballoon_speedup_r);
DECLARE_READ32_MEMBER(touryuu_port_10000000_r); DECLARE_READ32_MEMBER(touryuu_port_10000000_r);
DECLARE_WRITE32_MEMBER(soundlatch_w);
DECLARE_READ8_MEMBER(qs1000_p1_r);
DECLARE_WRITE8_MEMBER(qs1000_p1_w); DECLARE_WRITE8_MEMBER(qs1000_p1_w);
DECLARE_WRITE8_MEMBER(qs1000_p2_w); DECLARE_WRITE8_MEMBER(qs1000_p2_w);
DECLARE_WRITE8_MEMBER(qs1000_p3_w); DECLARE_WRITE8_MEMBER(qs1000_p3_w);
int m_rom_pagesize; int m_rom_pagesize;
uint8_t* m_flash;
DECLARE_DRIVER_INIT(touryuu); DECLARE_DRIVER_INIT(touryuu);
DECLARE_DRIVER_INIT(bballoon); DECLARE_DRIVER_INIT(bballoon);
virtual void machine_start() override; virtual void machine_start() override;
@ -164,11 +163,6 @@ NAND Flash Controller (4KB internal buffer)
24-ch external interrupts Controller (Wake-up source 16-ch) 24-ch external interrupts Controller (Wake-up source 16-ch)
*/ */
READ8_MEMBER( ghosteo_state::qs1000_p1_r )
{
return m_soundlatch->read(space, 0);
}
WRITE8_MEMBER( ghosteo_state::qs1000_p1_w ) WRITE8_MEMBER( ghosteo_state::qs1000_p1_w )
{ {
} }
@ -186,7 +180,7 @@ WRITE8_MEMBER( ghosteo_state::qs1000_p3_w )
membank("qs1000:bank")->set_entry(data & 0x07); membank("qs1000:bank")->set_entry(data & 0x07);
if (!BIT(data, 5)) if (!BIT(data, 5))
m_qs1000->set_irq(CLEAR_LINE); m_soundlatch->acknowledge_w(space, 0, !BIT(data, 5));
} }
@ -431,7 +425,7 @@ ADDRESS_MAP_START(ghosteo_state::bballoon_map)
AM_RANGE(0x10000000, 0x10000003) AM_READ_PORT("10000000") AM_RANGE(0x10000000, 0x10000003) AM_READ_PORT("10000000")
AM_RANGE(0x10100000, 0x10100003) AM_READ_PORT("10100000") AM_RANGE(0x10100000, 0x10100003) AM_READ_PORT("10100000")
AM_RANGE(0x10200000, 0x10200003) AM_READ_PORT("10200000") AM_RANGE(0x10200000, 0x10200003) AM_READ_PORT("10200000")
AM_RANGE(0x10300000, 0x10300003) AM_WRITE(soundlatch_w) AM_RANGE(0x10300000, 0x10300003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff).cswidth(32)
AM_RANGE(0x30000000, 0x31ffffff) AM_RAM AM_SHARE("systememory") AM_MIRROR(0x02000000) AM_RANGE(0x30000000, 0x31ffffff) AM_RAM AM_SHARE("systememory") AM_MIRROR(0x02000000)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -439,7 +433,7 @@ ADDRESS_MAP_START(ghosteo_state::touryuu_map)
AM_RANGE(0x10000000, 0x10000003) AM_READ(touryuu_port_10000000_r) AM_RANGE(0x10000000, 0x10000003) AM_READ(touryuu_port_10000000_r)
AM_RANGE(0x10100000, 0x10100003) AM_READ_PORT("10100000") AM_RANGE(0x10100000, 0x10100003) AM_READ_PORT("10100000")
AM_RANGE(0x10200000, 0x10200003) AM_READ_PORT("10200000") AM_RANGE(0x10200000, 0x10200003) AM_READ_PORT("10200000")
AM_RANGE(0x10300000, 0x10300003) AM_WRITE(soundlatch_w) AM_RANGE(0x10300000, 0x10300003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff).cswidth(32)
AM_RANGE(0x30000000, 0x31ffffff) AM_RAM AM_SHARE("systememory") AM_MIRROR(0x02000000) AM_RANGE(0x30000000, 0x31ffffff) AM_RAM AM_SHARE("systememory") AM_MIRROR(0x02000000)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -594,18 +588,8 @@ READ32_MEMBER(ghosteo_state::bballoon_speedup_r)
return ret; return ret;
} }
WRITE32_MEMBER(ghosteo_state::soundlatch_w)
{
m_soundlatch->write(space, 0, data);
m_qs1000->set_irq(ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
void ghosteo_state::machine_start() void ghosteo_state::machine_start()
{ {
m_flash = (uint8_t *)memregion( "user1")->base();
// Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM // Set up the QS1000 program ROM banking, taking care not to overlap the internal RAM
machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank"); machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "bank");
membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000); membank("qs1000:bank")->configure_entries(0, 8, memregion("qs1000:cpu")->base()+0x100, 0x10000);
@ -654,10 +638,12 @@ MACHINE_CONFIG_START(ghosteo_state::ghosteo)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("qs1000", qs1000_device, set_irq))
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000)) MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000))
MCFG_QS1000_EXTERNAL_ROM(true) MCFG_QS1000_EXTERNAL_ROM(true)
MCFG_QS1000_IN_P1_CB(READ8(ghosteo_state, qs1000_p1_r)) MCFG_QS1000_IN_P1_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_QS1000_OUT_P1_CB(WRITE8(ghosteo_state, qs1000_p1_w)) MCFG_QS1000_OUT_P1_CB(WRITE8(ghosteo_state, qs1000_p1_w))
MCFG_QS1000_OUT_P2_CB(WRITE8(ghosteo_state, qs1000_p2_w)) MCFG_QS1000_OUT_P2_CB(WRITE8(ghosteo_state, qs1000_p2_w))
MCFG_QS1000_OUT_P3_CB(WRITE8(ghosteo_state, qs1000_p3_w)) MCFG_QS1000_OUT_P3_CB(WRITE8(ghosteo_state, qs1000_p3_w))
@ -728,7 +714,7 @@ Notes:
// The NAND dumps are missing the ECC data. We calculate it on the fly, because the games require it, but really it should be dumped hence the 'BAD DUMP' flags // The NAND dumps are missing the ECC data. We calculate it on the fly, because the games require it, but really it should be dumped hence the 'BAD DUMP' flags
ROM_START( bballoon ) ROM_START( bballoon )
ROM_REGION( 0x2000000, "user1", 0 ) /* ARM 32 bit code */ ROM_REGION( 0x2000000, "flash", 0 ) /* ARM 32 bit code */
ROM_LOAD( "flash.u1", 0x000000, 0x2000000, BAD_DUMP CRC(73285634) SHA1(4d0210c1bebdf3113a99978ffbcd77d6ee854168) ) // missing ECC data ROM_LOAD( "flash.u1", 0x000000, 0x2000000, BAD_DUMP CRC(73285634) SHA1(4d0210c1bebdf3113a99978ffbcd77d6ee854168) ) // missing ECC data
// banked every 0x10000 bytes ? // banked every 0x10000 bytes ?
@ -741,7 +727,7 @@ ROM_START( bballoon )
ROM_END ROM_END
ROM_START( hapytour ) /* Same hardware: GHOST Ver1.1 2003.03.28 */ ROM_START( hapytour ) /* Same hardware: GHOST Ver1.1 2003.03.28 */
ROM_REGION( 0x2000000, "user1", 0 ) /* ARM 32 bit code */ ROM_REGION( 0x2000000, "flash", 0 ) /* ARM 32 bit code */
ROM_LOAD( "flash.u1", 0x000000, 0x2000000, BAD_DUMP CRC(49deb7f9) SHA1(708a27d7177cf6261a49ded975c2bbb6c2427742) ) // missing ECC data ROM_LOAD( "flash.u1", 0x000000, 0x2000000, BAD_DUMP CRC(49deb7f9) SHA1(708a27d7177cf6261a49ded975c2bbb6c2427742) ) // missing ECC data
// banked every 0x10000 bytes ? // banked every 0x10000 bytes ?
@ -755,7 +741,7 @@ ROM_END
ROM_START( touryuu ) ROM_START( touryuu )
ROM_REGION( 0x4200000, "user1", 0 ) /* ARM 32 bit code */ ROM_REGION( 0x4200000, "flash", 0 ) /* ARM 32 bit code */
ROM_LOAD( "u1.bin", 0x000000, 0x4200000, CRC(49b6856e) SHA1(639123d2fabac4e79c9315fb87f72b13f9ae8761) ) ROM_LOAD( "u1.bin", 0x000000, 0x4200000, CRC(49b6856e) SHA1(639123d2fabac4e79c9315fb87f72b13f9ae8761) )
// banked every 0x10000 bytes ? // banked every 0x10000 bytes ?

View File

@ -38,20 +38,21 @@ class limenko_state : public driver_device
{ {
public: public:
limenko_state(const machine_config &mconfig, device_type type, const char *tag) limenko_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag)
m_maincpu(*this, "maincpu"), , m_maincpu(*this, "maincpu")
m_oki(*this, "oki"), , m_oki(*this, "oki")
m_qs1000(*this, "qs1000"), , m_qs1000(*this, "qs1000")
m_gfxdecode(*this, "gfxdecode"), , m_gfxdecode(*this, "gfxdecode")
m_palette(*this, "palette"), , m_palette(*this, "palette")
m_soundlatch(*this, "soundlatch"), , m_soundlatch(*this, "soundlatch")
m_mainram(*this, "mainram"), , m_mainram(*this, "mainram")
m_fg_videoram(*this, "fg_videoram"), , m_fg_videoram(*this, "fg_videoram")
m_md_videoram(*this, "md_videoram"), , m_md_videoram(*this, "md_videoram")
m_bg_videoram(*this, "bg_videoram"), , m_bg_videoram(*this, "bg_videoram")
m_spriteram(*this, "spriteram"), , m_spriteram(*this, "spriteram")
m_spriteram2(*this, "spriteram2"), , m_spriteram2(*this, "spriteram2")
m_videoreg(*this, "videoreg") { } , m_videoreg(*this, "videoreg")
{ }
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki; optional_device<okim6295_device> m_oki;
@ -82,8 +83,6 @@ public:
DECLARE_WRITE32_MEMBER(bg_videoram_w); DECLARE_WRITE32_MEMBER(bg_videoram_w);
DECLARE_WRITE32_MEMBER(md_videoram_w); DECLARE_WRITE32_MEMBER(md_videoram_w);
DECLARE_WRITE32_MEMBER(fg_videoram_w); DECLARE_WRITE32_MEMBER(fg_videoram_w);
DECLARE_WRITE32_MEMBER(spotty_soundlatch_w);
DECLARE_WRITE32_MEMBER(limenko_soundlatch_w);
DECLARE_WRITE32_MEMBER(spriteram_buffer_w); DECLARE_WRITE32_MEMBER(spriteram_buffer_w);
DECLARE_WRITE8_MEMBER(spotty_sound_cmd_w); DECLARE_WRITE8_MEMBER(spotty_sound_cmd_w);
DECLARE_READ8_MEMBER(spotty_sound_cmd_r); DECLARE_READ8_MEMBER(spotty_sound_cmd_r);
@ -92,7 +91,6 @@ public:
DECLARE_READ32_MEMBER(legendoh_speedup_r); DECLARE_READ32_MEMBER(legendoh_speedup_r);
DECLARE_READ32_MEMBER(sb2003_speedup_r); DECLARE_READ32_MEMBER(sb2003_speedup_r);
DECLARE_READ32_MEMBER(spotty_speedup_r); DECLARE_READ32_MEMBER(spotty_speedup_r);
DECLARE_READ8_MEMBER(qs1000_p1_r);
DECLARE_WRITE8_MEMBER(qs1000_p1_w); DECLARE_WRITE8_MEMBER(qs1000_p1_w);
DECLARE_WRITE8_MEMBER(qs1000_p2_w); DECLARE_WRITE8_MEMBER(qs1000_p2_w);
DECLARE_WRITE8_MEMBER(qs1000_p3_w); DECLARE_WRITE8_MEMBER(qs1000_p3_w);
@ -185,24 +183,6 @@ WRITE32_MEMBER(limenko_state::spriteram_buffer_w)
SOUND FUNCTIONS SOUND FUNCTIONS
*****************************************************************************************************/ *****************************************************************************************************/
WRITE32_MEMBER(limenko_state::limenko_soundlatch_w)
{
m_soundlatch->write(space, 0, data >> 16);
m_qs1000->set_irq(ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
WRITE32_MEMBER(limenko_state::spotty_soundlatch_w)
{
m_soundlatch->write(space, 0, data >> 16);
}
READ8_MEMBER(limenko_state::qs1000_p1_r)
{
return m_soundlatch->read(space, 0);
}
WRITE8_MEMBER(limenko_state::qs1000_p1_w) WRITE8_MEMBER(limenko_state::qs1000_p1_w)
{ {
} }
@ -221,7 +201,7 @@ WRITE8_MEMBER(limenko_state::qs1000_p3_w)
membank("qs1000:bank")->set_entry(data & 0x07); membank("qs1000:bank")->set_entry(data & 0x07);
if (!BIT(data, 5)) if (!BIT(data, 5))
m_qs1000->set_irq(CLEAR_LINE); m_soundlatch->acknowledge_w(space, 0, !BIT(data, 5));
} }
/***************************************************************************************************** /*****************************************************************************************************
@ -230,7 +210,7 @@ WRITE8_MEMBER(limenko_state::qs1000_p3_w)
ADDRESS_MAP_START(limenko_state::limenko_map) ADDRESS_MAP_START(limenko_state::limenko_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("mainram")
AM_RANGE(0x40000000, 0x403fffff) AM_ROM AM_REGION("user2",0) AM_RANGE(0x40000000, 0x403fffff) AM_ROM AM_REGION("maindata",0)
AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram") AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_SHARE("md_videoram") AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_SHARE("md_videoram")
AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram") AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram")
@ -240,7 +220,7 @@ ADDRESS_MAP_START(limenko_state::limenko_map)
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg") AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg")
AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w) AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w)
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(limenko_state::limenko_io_map) ADDRESS_MAP_START(limenko_state::limenko_io_map)
@ -249,7 +229,7 @@ ADDRESS_MAP_START(limenko_state::limenko_io_map)
AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2") AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2")
AM_RANGE(0x4000, 0x4003) AM_WRITE(limenko_coincounter_w) AM_RANGE(0x4000, 0x4003) AM_WRITE(limenko_coincounter_w)
AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT") AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0x5000, 0x5003) AM_WRITE(limenko_soundlatch_w) AM_RANGE(0x5000, 0x5003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff0000).cswidth(32)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -267,7 +247,7 @@ ADDRESS_MAP_START(limenko_state::spotty_map)
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg") AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg")
AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w) AM_RANGE(0x8003e000, 0x8003e003) AM_WRITE(spriteram_buffer_w)
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(limenko_state::spotty_io_map) ADDRESS_MAP_START(limenko_state::spotty_io_map)
@ -276,7 +256,7 @@ ADDRESS_MAP_START(limenko_state::spotty_io_map)
AM_RANGE(0x0800, 0x0803) AM_WRITENOP // hopper related AM_RANGE(0x0800, 0x0803) AM_WRITENOP // hopper related
AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2") AM_RANGE(0x1000, 0x1003) AM_READ_PORT("IN2")
AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT") AM_RANGE(0x4800, 0x4803) AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0x5000, 0x5003) AM_WRITE(spotty_soundlatch_w) AM_RANGE(0x5000, 0x5003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff0000).cswidth(32)
ADDRESS_MAP_END ADDRESS_MAP_END
WRITE8_MEMBER(limenko_state::spotty_sound_cmd_w) WRITE8_MEMBER(limenko_state::spotty_sound_cmd_w)
@ -756,10 +736,12 @@ MACHINE_CONFIG_START(limenko_state::limenko)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("qs1000", qs1000_device, set_irq))
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000)) MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000))
MCFG_QS1000_EXTERNAL_ROM(true) MCFG_QS1000_EXTERNAL_ROM(true)
MCFG_QS1000_IN_P1_CB(READ8(limenko_state, qs1000_p1_r)) MCFG_QS1000_IN_P1_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_QS1000_OUT_P1_CB(WRITE8(limenko_state, qs1000_p1_w)) MCFG_QS1000_OUT_P1_CB(WRITE8(limenko_state, qs1000_p1_w))
MCFG_QS1000_OUT_P2_CB(WRITE8(limenko_state, qs1000_p2_w)) MCFG_QS1000_OUT_P2_CB(WRITE8(limenko_state, qs1000_p2_w))
MCFG_QS1000_OUT_P3_CB(WRITE8(limenko_state, qs1000_p3_w)) MCFG_QS1000_OUT_P3_CB(WRITE8(limenko_state, qs1000_p3_w))
@ -842,10 +824,10 @@ Notes:
*/ */
ROM_START( dynabomb ) ROM_START( dynabomb )
ROM_REGION32_BE( 0x200000, "user1", 0 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x200000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD16_WORD_SWAP( "rom.u6", 0x000000, 0x200000, CRC(457e015d) SHA1(3afb56cdf903c9084c1f283dc50ec504ce3e199f) ) ROM_LOAD16_WORD_SWAP( "rom.u6", 0x000000, 0x200000, CRC(457e015d) SHA1(3afb56cdf903c9084c1f283dc50ec504ce3e199f) )
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASEFF ) ROM_REGION32_BE( 0x400000, "maindata", ROMREGION_ERASEFF )
ROM_LOAD16_WORD_SWAP( "rom.u5", 0x000000, 0x200000, CRC(7e837adf) SHA1(8613fa187b8d4574b3935aa439aec2515033d64c) ) ROM_LOAD16_WORD_SWAP( "rom.u5", 0x000000, 0x200000, CRC(7e837adf) SHA1(8613fa187b8d4574b3935aa439aec2515033d64c) )
ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */ ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */
@ -867,10 +849,10 @@ ROM_START( dynabomb )
ROM_END ROM_END
ROM_START( sb2003 ) /* No specific Country/Region */ ROM_START( sb2003 ) /* No specific Country/Region */
ROM_REGION32_BE( 0x200000, "user1", 0 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x200000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD16_WORD_SWAP( "sb2003_05.u6", 0x00000000, 0x200000, CRC(8aec4554) SHA1(57a12b142eb7bf08dd1e78d3c79222001bbaa636) ) ROM_LOAD16_WORD_SWAP( "sb2003_05.u6", 0x00000000, 0x200000, CRC(8aec4554) SHA1(57a12b142eb7bf08dd1e78d3c79222001bbaa636) )
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASEFF ) ROM_REGION32_BE( 0x400000, "maindata", ROMREGION_ERASEFF )
// u5 empty // u5 empty
ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */ ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */
@ -892,10 +874,10 @@ ROM_START( sb2003 ) /* No specific Country/Region */
ROM_END ROM_END
ROM_START( sb2003a ) /* Asia Region */ ROM_START( sb2003a ) /* Asia Region */
ROM_REGION32_BE( 0x200000, "user1", 0 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x200000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD16_WORD_SWAP( "sb2003a_05.u6", 0x000000, 0x200000, CRC(265e45a7) SHA1(b9c8b63aa89c08f3d9d404621e301b122f85389a) ) ROM_LOAD16_WORD_SWAP( "sb2003a_05.u6", 0x000000, 0x200000, CRC(265e45a7) SHA1(b9c8b63aa89c08f3d9d404621e301b122f85389a) )
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASEFF ) ROM_REGION32_BE( 0x400000, "maindata", ROMREGION_ERASEFF )
// u5 empty // u5 empty
ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */ ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */
@ -989,13 +971,13 @@ Link up 2 cabinets, up to 4 players can play at a time as a team
*/ */
ROM_START( legendoh ) ROM_START( legendoh )
ROM_REGION32_BE( 0x200000, "user1", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x200000, "maincpu", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */
/* sys_rom1 empty */ /* sys_rom1 empty */
/* sys_rom2 empty */ /* sys_rom2 empty */
/* sys_rom3 empty */ /* sys_rom3 empty */
ROM_LOAD16_WORD_SWAP( "01.sys_rom4", 0x180000, 0x80000, CRC(49b4a91f) SHA1(21619e8cd0b2fba8c2e08158497575a1760f52c5) ) ROM_LOAD16_WORD_SWAP( "01.sys_rom4", 0x180000, 0x80000, CRC(49b4a91f) SHA1(21619e8cd0b2fba8c2e08158497575a1760f52c5) )
ROM_REGION32_BE( 0x400000, "user2", 0 ) ROM_REGION32_BE( 0x400000, "maindata", 0 )
ROM_LOAD16_WORD_SWAP( "sys_rom6", 0x000000, 0x200000, CRC(5c13d467) SHA1(ed07b7e1b22293e256787ab079d00c2fb070bf4f) ) ROM_LOAD16_WORD_SWAP( "sys_rom6", 0x000000, 0x200000, CRC(5c13d467) SHA1(ed07b7e1b22293e256787ab079d00c2fb070bf4f) )
ROM_LOAD16_WORD_SWAP( "sys_rom5", 0x200000, 0x200000, CRC(19dc8d23) SHA1(433687c6aa24b9456436eecb1dcb57814af3009d) ) ROM_LOAD16_WORD_SWAP( "sys_rom5", 0x200000, 0x200000, CRC(19dc8d23) SHA1(433687c6aa24b9456436eecb1dcb57814af3009d) )
/* sys_rom8 empty */ /* sys_rom8 empty */
@ -1051,7 +1033,7 @@ SW2 = Reset
*/ */
ROM_START( spotty ) ROM_START( spotty )
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */
/* sys_rom1 empty */ /* sys_rom1 empty */
ROM_LOAD16_WORD_SWAP( "sys_rom2", 0x080000, 0x80000, CRC(6ded8d9b) SHA1(547c532f4014d818c4412244b60dbc439496de20) ) ROM_LOAD16_WORD_SWAP( "sys_rom2", 0x080000, 0x80000, CRC(6ded8d9b) SHA1(547c532f4014d818c4412244b60dbc439496de20) )
@ -1061,7 +1043,7 @@ ROM_START( spotty )
/* Expand the gfx roms here */ /* Expand the gfx roms here */
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASE00 ) ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASE00 )
ROM_REGION( 0x200000, "user2", ROMREGION_ERASE00 ) ROM_REGION( 0x200000, "maindata", ROMREGION_ERASE00 )
ROM_LOAD32_BYTE( "gc_rom1", 0x000000, 0x80000, CRC(ea03f9c5) SHA1(5038c03c519c774da253f9ae4fa205e7eeaa2780) ) ROM_LOAD32_BYTE( "gc_rom1", 0x000000, 0x80000, CRC(ea03f9c5) SHA1(5038c03c519c774da253f9ae4fa205e7eeaa2780) )
ROM_LOAD32_BYTE( "gc_rom3", 0x000001, 0x80000, CRC(0ddac0b9) SHA1(f4ac8e6dd7f1cbdeb97139008982e6c17a3d18b9) ) ROM_LOAD32_BYTE( "gc_rom3", 0x000001, 0x80000, CRC(0ddac0b9) SHA1(f4ac8e6dd7f1cbdeb97139008982e6c17a3d18b9) )
/* gc_rom2 empty */ /* gc_rom2 empty */
@ -1146,7 +1128,7 @@ DRIVER_INIT_MEMBER(limenko_state,sb2003)
DRIVER_INIT_MEMBER(limenko_state,spotty) DRIVER_INIT_MEMBER(limenko_state,spotty)
{ {
uint8_t *dst = memregion("gfx1")->base(); uint8_t *dst = memregion("gfx1")->base();
uint8_t *src = memregion("user2")->base(); uint8_t *src = memregion("maindata")->base();
int x; int x;
/* expand 4bpp roms to 8bpp space */ /* expand 4bpp roms to 8bpp space */

View File

@ -63,6 +63,7 @@ TODO:
#include "cpu/e132xs/e132xs.h" #include "cpu/e132xs/e132xs.h"
#include "cpu/mcs51/mcs51.h" #include "cpu/mcs51/mcs51.h"
#include "machine/eepromser.h" #include "machine/eepromser.h"
#include "machine/gen_latch.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "sound/okim6295.h" #include "sound/okim6295.h"
#include "sound/qs1000.h" #include "sound/qs1000.h"
@ -75,26 +76,29 @@ class vamphalf_state : public driver_device
{ {
public: public:
vamphalf_state(const machine_config &mconfig, device_type type, const char *tag) vamphalf_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag)
m_maincpu(*this, "maincpu"), , m_maincpu(*this, "maincpu")
m_qs1000(*this, "qs1000"), , m_qs1000(*this, "qs1000")
m_eeprom(*this, "eeprom"), , m_eeprom(*this, "eeprom")
m_gfxdecode(*this, "gfxdecode"), , m_gfxdecode(*this, "gfxdecode")
m_palette(*this, "palette"), , m_palette(*this, "palette")
m_tiles(*this,"tiles"), , m_soundlatch(*this, "soundlatch")
m_wram(*this,"wram"), , m_tiles(*this,"tiles")
m_tiles32(*this,"tiles32"), , m_wram(*this,"wram")
m_wram32(*this,"wram32"), , m_tiles32(*this,"tiles32")
m_okiregion(*this, "oki%u", 1), , m_wram32(*this,"wram32")
m_okibank(*this,"okibank") { , m_okiregion(*this, "oki%u", 1)
m_has_extra_gfx = 0; , m_okibank(*this,"okibank")
} {
m_has_extra_gfx = 0;
}
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
optional_device<qs1000_device> m_qs1000; optional_device<qs1000_device> m_qs1000;
required_device<eeprom_serial_93cxx_device> m_eeprom; required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch;
optional_shared_ptr<uint16_t> m_tiles; optional_shared_ptr<uint16_t> m_tiles;
optional_shared_ptr<uint16_t> m_wram; optional_shared_ptr<uint16_t> m_wram;
@ -115,7 +119,6 @@ public:
int m_semicom_prot_which; int m_semicom_prot_which;
uint16_t m_finalgdr_backupram_bank; uint16_t m_finalgdr_backupram_bank;
std::unique_ptr<uint8_t[]> m_finalgdr_backupram; std::unique_ptr<uint8_t[]> m_finalgdr_backupram;
uint8_t m_qs1000_data;
DECLARE_WRITE16_MEMBER(flipscreen_w); DECLARE_WRITE16_MEMBER(flipscreen_w);
DECLARE_WRITE32_MEMBER(flipscreen32_w); DECLARE_WRITE32_MEMBER(flipscreen32_w);
@ -170,9 +173,6 @@ public:
DECLARE_WRITE32_MEMBER(aoh_oki_bank_w); DECLARE_WRITE32_MEMBER(aoh_oki_bank_w);
DECLARE_WRITE16_MEMBER(boonggab_oki_bank_w); DECLARE_WRITE16_MEMBER(boonggab_oki_bank_w);
DECLARE_WRITE16_MEMBER(mrkicker_oki_bank_w); DECLARE_WRITE16_MEMBER(mrkicker_oki_bank_w);
DECLARE_WRITE32_MEMBER(wyvernwg_snd_w);
DECLARE_WRITE16_MEMBER(misncrft_snd_w);
DECLARE_READ8_MEMBER(qs1000_p1_r);
DECLARE_WRITE8_MEMBER(qs1000_p3_w); DECLARE_WRITE8_MEMBER(qs1000_p3_w);
virtual void video_start() override; virtual void video_start() override;
@ -433,30 +433,10 @@ WRITE16_MEMBER(vamphalf_state::boonggab_lamps_w)
} }
WRITE32_MEMBER( vamphalf_state::wyvernwg_snd_w )
{
m_qs1000_data = data & 0xff;
m_qs1000->set_irq(ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
WRITE16_MEMBER( vamphalf_state::misncrft_snd_w )
{
m_qs1000_data = data & 0xff;
m_qs1000->set_irq(ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
READ8_MEMBER( vamphalf_state::qs1000_p1_r )
{
return m_qs1000_data;
}
WRITE8_MEMBER( vamphalf_state::qs1000_p3_w ) WRITE8_MEMBER( vamphalf_state::qs1000_p3_w )
{ {
if (!BIT(data, 5)) if (!BIT(data, 5))
m_qs1000->set_irq(CLEAR_LINE); m_soundlatch->acknowledge_w(space, 0, !BIT(data, 5));
membank("qs1000:data")->set_entry(data & 7); membank("qs1000:data")->set_entry(data & 7);
} }
@ -466,21 +446,21 @@ ADDRESS_MAP_START(vamphalf_state::common_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram") AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram")
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles") AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles")
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(vamphalf_state::common_32bit_map) ADDRESS_MAP_START(vamphalf_state::common_32bit_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32") AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32")
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles32") AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles32")
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(vamphalf_state::yorijori_32bit_map) ADDRESS_MAP_START(vamphalf_state::yorijori_32bit_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32") AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32")
AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles32") AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles32")
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(vamphalf_state::vamphalf_io) ADDRESS_MAP_START(vamphalf_state::vamphalf_io)
@ -500,7 +480,7 @@ ADDRESS_MAP_START(vamphalf_state::misncrft_io)
AM_RANGE(0x200, 0x203) AM_READ_PORT("P1_P2") AM_RANGE(0x200, 0x203) AM_READ_PORT("P1_P2")
AM_RANGE(0x240, 0x243) AM_READ_PORT("SYSTEM") AM_RANGE(0x240, 0x243) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3c0, 0x3c3) AM_WRITE(eeprom_w) AM_RANGE(0x3c0, 0x3c3) AM_WRITE(eeprom_w)
AM_RANGE(0x400, 0x403) AM_WRITE(misncrft_snd_w) AM_RANGE(0x400, 0x403) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff).cswidth(16)
AM_RANGE(0x580, 0x583) AM_READ(eeprom_r) AM_RANGE(0x580, 0x583) AM_READ(eeprom_r)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -537,7 +517,7 @@ ADDRESS_MAP_START(vamphalf_state::wyvernwg_io)
AM_RANGE(0x2000, 0x2003) AM_WRITE(flipscreen32_w) AM_RANGE(0x2000, 0x2003) AM_WRITE(flipscreen32_w)
AM_RANGE(0x2800, 0x2803) AM_READ_PORT("P1_P2") AM_RANGE(0x2800, 0x2803) AM_READ_PORT("P1_P2")
AM_RANGE(0x3000, 0x3003) AM_READ_PORT("SYSTEM") AM_RANGE(0x3000, 0x3003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x5400, 0x5403) AM_WRITE(wyvernwg_snd_w) AM_RANGE(0x5400, 0x5403) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff).cswidth(32)
AM_RANGE(0x7000, 0x7003) AM_WRITE(eeprom32_w) AM_RANGE(0x7000, 0x7003) AM_WRITE(eeprom32_w)
AM_RANGE(0x7c00, 0x7c03) AM_READ(eeprom32_r) AM_RANGE(0x7c00, 0x7c03) AM_READ(eeprom32_r)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -605,13 +585,13 @@ ADDRESS_MAP_START(vamphalf_state::aoh_map)
AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette") AM_RANGE(0x80000000, 0x8000ffff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_RANGE(0x80210000, 0x80210003) AM_READ_PORT("SYSTEM") AM_RANGE(0x80210000, 0x80210003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x80220000, 0x80220003) AM_READ_PORT("P1_P2") AM_RANGE(0x80220000, 0x80220003) AM_READ_PORT("P1_P2")
AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("user1",0) AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END ADDRESS_MAP_END
ADDRESS_MAP_START(vamphalf_state::aoh_io) ADDRESS_MAP_START(vamphalf_state::aoh_io)
AM_RANGE(0x0480, 0x0483) AM_WRITE(eeprom32_w) AM_RANGE(0x0480, 0x0483) AM_WRITE(eeprom32_w)
AM_RANGE(0x0620, 0x0623) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x0000ff00) AM_RANGE(0x0620, 0x0623) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x0000ff00)
AM_RANGE(0x0660, 0x0663) AM_DEVREADWRITE8("oki_1", okim6295_device, read, write, 0x0000ff00) AM_RANGE(0x0660, 0x0663) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x0000ff00)
AM_RANGE(0x0640, 0x0647) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x0000ff00) AM_RANGE(0x0640, 0x0647) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x0000ff00)
AM_RANGE(0x0680, 0x0683) AM_WRITE(aoh_oki_bank_w) AM_RANGE(0x0680, 0x0683) AM_WRITE(aoh_oki_bank_w)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -1094,10 +1074,14 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(vamphalf_state::sound_qs1000) MACHINE_CONFIG_START(vamphalf_state::sound_qs1000)
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("qs1000", qs1000_device, set_irq))
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000)) MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000))
MCFG_QS1000_EXTERNAL_ROM(true) MCFG_QS1000_EXTERNAL_ROM(true)
MCFG_QS1000_IN_P1_CB(READ8(vamphalf_state, qs1000_p1_r)) MCFG_QS1000_IN_P1_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_QS1000_OUT_P3_CB(WRITE8(vamphalf_state, qs1000_p3_w)) MCFG_QS1000_OUT_P3_CB(WRITE8(vamphalf_state, qs1000_p3_w))
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
@ -1228,7 +1212,7 @@ MACHINE_CONFIG_START(vamphalf_state::aoh)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_OKIM6295_ADD("oki_1", XTAL(32'000'000)/8, PIN7_HIGH) /* 4MHz */ MCFG_OKIM6295_ADD("oki1", XTAL(32'000'000)/8, PIN7_HIGH) /* 4MHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
@ -1332,7 +1316,7 @@ B1 B2 B3: Push buttons for SERV, RESET, TEST
*/ */
ROM_START( vamphalf ) ROM_START( vamphalf )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* 0 - 0x80000 empty */ /* 0 - 0x80000 empty */
ROM_LOAD( "prg.rom1", 0x80000, 0x80000, CRC(9b1fc6c5) SHA1(acf10a50d2119ac893b6cbd494911982a9352350) ) /* at 0x16554: Europe Version 1.1.0908 */ ROM_LOAD( "prg.rom1", 0x80000, 0x80000, CRC(9b1fc6c5) SHA1(acf10a50d2119ac893b6cbd494911982a9352350) ) /* at 0x16554: Europe Version 1.1.0908 */
@ -1347,7 +1331,7 @@ ROM_START( vamphalf )
ROM_END ROM_END
ROM_START( vamphalfr1 ) ROM_START( vamphalfr1 )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* 0 - 0x80000 empty */ /* 0 - 0x80000 empty */
ROM_LOAD( "ws1-01201.rom1", 0x80000, 0x80000, CRC(afa75c19) SHA1(5dac104d1b3c026b6fce4d1f9126c048ebb557ef) ) /* at 0x162B8: Europe Version 1.0.0903 */ ROM_LOAD( "ws1-01201.rom1", 0x80000, 0x80000, CRC(afa75c19) SHA1(5dac104d1b3c026b6fce4d1f9126c048ebb557ef) ) /* at 0x162B8: Europe Version 1.0.0903 */
@ -1361,7 +1345,7 @@ ROM_END
ROM_START( vamphalfk ) ROM_START( vamphalfk )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* 0 - 0x80000 empty */ /* 0 - 0x80000 empty */
ROM_LOAD( "prom1", 0x80000, 0x80000, CRC(f05e8e96) SHA1(c860e65c811cbda2dc70300437430fb4239d3e2d) ) /* at 0x1653C: Korean Version 1.1.0908 */ ROM_LOAD( "prom1", 0x80000, 0x80000, CRC(f05e8e96) SHA1(c860e65c811cbda2dc70300437430fb4239d3e2d) ) /* at 0x1653C: Korean Version 1.1.0908 */
@ -1420,7 +1404,7 @@ Notes:
*/ */
ROM_START( suplup ) /* version 4.0 / 990518 - also has 'Puzzle Bang Bang' title but it can't be selected */ ROM_START( suplup ) /* version 4.0 / 990518 - also has 'Puzzle Bang Bang' title but it can't be selected */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "suplup-rom1.bin", 0x00000, 0x80000, CRC(61fb2dbe) SHA1(21cb8f571b2479de6779b877b656d1ffe5b3516f) ) ROM_LOAD( "suplup-rom1.bin", 0x00000, 0x80000, CRC(61fb2dbe) SHA1(21cb8f571b2479de6779b877b656d1ffe5b3516f) )
ROM_LOAD( "suplup-rom2.bin", 0x80000, 0x80000, CRC(0c176c57) SHA1(f103a1afc528c01cbc18639273ab797fb9afacb1) ) ROM_LOAD( "suplup-rom2.bin", 0x80000, 0x80000, CRC(0c176c57) SHA1(f103a1afc528c01cbc18639273ab797fb9afacb1) )
@ -1438,7 +1422,7 @@ ROM_START( suplup ) /* version 4.0 / 990518 - also has 'Puzzle Bang Bang' title
ROM_END ROM_END
ROM_START( luplup ) /* version 3.0 / 990128 */ ROM_START( luplup ) /* version 3.0 / 990128 */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "luplup-rom1.v30", 0x00000, 0x80000, CRC(9ea67f87) SHA1(73d16c056a8d64743181069a01559a43fee529a3) ) ROM_LOAD( "luplup-rom1.v30", 0x00000, 0x80000, CRC(9ea67f87) SHA1(73d16c056a8d64743181069a01559a43fee529a3) )
ROM_LOAD( "luplup-rom2.v30", 0x80000, 0x80000, CRC(99840155) SHA1(e208f8731c06b634e84fb73e04f6cdbb8b504b94) ) ROM_LOAD( "luplup-rom2.v30", 0x80000, 0x80000, CRC(99840155) SHA1(e208f8731c06b634e84fb73e04f6cdbb8b504b94) )
@ -1457,7 +1441,7 @@ ROM_END
ROM_START( luplup29 ) /* version 2.9 / 990108 */ ROM_START( luplup29 ) /* version 2.9 / 990108 */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "luplup-rom1.v29", 0x00000, 0x80000, CRC(36a8b8c1) SHA1(fed3eb2d83adc1b071a12ce5d49d4cab0ca20cc7) ) ROM_LOAD( "luplup-rom1.v29", 0x00000, 0x80000, CRC(36a8b8c1) SHA1(fed3eb2d83adc1b071a12ce5d49d4cab0ca20cc7) )
ROM_LOAD( "luplup-rom2.v29", 0x80000, 0x80000, CRC(50dac70f) SHA1(0e313114a988cb633a89508fda17eb09023827a2) ) ROM_LOAD( "luplup-rom2.v29", 0x80000, 0x80000, CRC(50dac70f) SHA1(0e313114a988cb633a89508fda17eb09023827a2) )
@ -1473,7 +1457,7 @@ ROM_END
ROM_START( puzlbang ) /* version 2.9 / 990108 - Korea only, cannot select title, language and limited selection of background choices, EI: censored */ ROM_START( puzlbang ) /* version 2.9 / 990108 - Korea only, cannot select title, language and limited selection of background choices, EI: censored */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "pbb-rom1.v29", 0x00000, 0x80000, CRC(eb829586) SHA1(1f8a6af7c51c715724f5a242f4e22f7f6fb1f0ee) ) ROM_LOAD( "pbb-rom1.v29", 0x00000, 0x80000, CRC(eb829586) SHA1(1f8a6af7c51c715724f5a242f4e22f7f6fb1f0ee) )
ROM_LOAD( "pbb-rom2.v29", 0x80000, 0x80000, CRC(fb84c793) SHA1(a2d27caecdae457d12b48d88d19ce417f69507c6) ) ROM_LOAD( "pbb-rom2.v29", 0x80000, 0x80000, CRC(fb84c793) SHA1(a2d27caecdae457d12b48d88d19ce417f69507c6) )
@ -1489,7 +1473,7 @@ ROM_END
ROM_START( puzlbanga ) /* version 2.8 / 990106 - Korea only, cannot select title, language or change background selection, EI: censored */ ROM_START( puzlbanga ) /* version 2.8 / 990106 - Korea only, cannot select title, language or change background selection, EI: censored */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "pbb-rom1.v28", 0x00000, 0x80000, CRC(fd21c5ff) SHA1(bc6314bbb2495c140788025153c893d5fd00bdc1) ) ROM_LOAD( "pbb-rom1.v28", 0x00000, 0x80000, CRC(fd21c5ff) SHA1(bc6314bbb2495c140788025153c893d5fd00bdc1) )
ROM_LOAD( "pbb-rom2.v28", 0x80000, 0x80000, CRC(490ecaeb) SHA1(2b0f25e3d681ddf95b3c65754900c046b5b50b09) ) ROM_LOAD( "pbb-rom2.v28", 0x80000, 0x80000, CRC(490ecaeb) SHA1(2b0f25e3d681ddf95b3c65754900c046b5b50b09) )
@ -1560,7 +1544,7 @@ Measured Clocks:
*/ */
ROM_START( jmpbreak ) /* Released February 1999 */ ROM_START( jmpbreak ) /* Released February 1999 */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(7e237f7d) SHA1(042e672be34644311eefc7b998bcdf6a9ea2c28a) ) ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(7e237f7d) SHA1(042e672be34644311eefc7b998bcdf6a9ea2c28a) )
ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(c722f7be) SHA1(d8b3c6b5fd0942147e0a61169c3eb6334a3b5a40) ) ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(c722f7be) SHA1(d8b3c6b5fd0942147e0a61169c3eb6334a3b5a40) )
@ -1575,7 +1559,7 @@ ROM_START( jmpbreak ) /* Released February 1999 */
ROM_END ROM_END
ROM_START( poosho ) /* Released November 1999 - Updated sequel to Jumping Break for Korean market */ ROM_START( poosho ) /* Released November 1999 - Updated sequel to Jumping Break for Korean market */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(2072c120) SHA1(cf066cd277840fdbb7a854a052a80b2fbb582278) ) ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(2072c120) SHA1(cf066cd277840fdbb7a854a052a80b2fbb582278) )
ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(80e70d7a) SHA1(cdafce4bfe7370978414a12aaf482e07a1c89ff8) ) ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(80e70d7a) SHA1(cdafce4bfe7370978414a12aaf482e07a1c89ff8) )
@ -1643,7 +1627,7 @@ ROMs:
*/ */
ROM_START( mrdig ) ROM_START( mrdig )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(5b960320) SHA1(adf5499a39987041fc93e409bdb5fd07dacec4f9) ) ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(5b960320) SHA1(adf5499a39987041fc93e409bdb5fd07dacec4f9) )
ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(75d48b64) SHA1(c9c492fb9cabafcf0bc05f44bf80ee6df3c21a1b) ) ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(75d48b64) SHA1(c9c492fb9cabafcf0bc05f44bf80ee6df3c21a1b) )
@ -1690,7 +1674,7 @@ F-E1-16-008
*/ */
ROM_START( coolmini ) ROM_START( coolmini )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "cm-rom1.040", 0x00000, 0x80000, CRC(9688fa98) SHA1(d5ebeb1407980072f689c3b3a5161263c7082e9a) ) ROM_LOAD( "cm-rom1.040", 0x00000, 0x80000, CRC(9688fa98) SHA1(d5ebeb1407980072f689c3b3a5161263c7082e9a) )
ROM_LOAD( "cm-rom2.040", 0x80000, 0x80000, CRC(9d588fef) SHA1(7b6b0ba074c7fa0aecda2b55f411557b015522b6) ) ROM_LOAD( "cm-rom2.040", 0x80000, 0x80000, CRC(9d588fef) SHA1(7b6b0ba074c7fa0aecda2b55f411557b015522b6) )
@ -1709,7 +1693,7 @@ ROM_START( coolmini )
ROM_END ROM_END
ROM_START( coolminii ) ROM_START( coolminii )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "cm-rom1.040", 0x00000, 0x80000, CRC(aa94bb86) SHA1(f1d75bf54b75f234cc872779c5b1ff6679778841) ) ROM_LOAD( "cm-rom1.040", 0x00000, 0x80000, CRC(aa94bb86) SHA1(f1d75bf54b75f234cc872779c5b1ff6679778841) )
ROM_LOAD( "cm-rom2.040", 0x80000, 0x80000, CRC(be7d02c8) SHA1(4897f3c890dd66f94d7a29f7a73c59857e4af218) ) ROM_LOAD( "cm-rom2.040", 0x80000, 0x80000, CRC(be7d02c8) SHA1(4897f3c890dd66f94d7a29f7a73c59857e4af218) )
@ -1781,7 +1765,7 @@ ROMs:
*/ */
ROM_START( dquizgo2 ) ROM_START( dquizgo2 )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1", 0x00000, 0x080000, CRC(81eef038) SHA1(9c925d1ef261ea85069925ccd1a5aeb939f55d5a) ) ROM_LOAD( "rom1", 0x00000, 0x080000, CRC(81eef038) SHA1(9c925d1ef261ea85069925ccd1a5aeb939f55d5a) )
ROM_LOAD( "rom2", 0x80000, 0x080000, CRC(e8789d8a) SHA1(1ee26c26cc7024c5df9d0da630b326021ece9f41) ) ROM_LOAD( "rom2", 0x80000, 0x080000, CRC(e8789d8a) SHA1(1ee26c26cc7024c5df9d0da630b326021ece9f41) )
@ -1853,7 +1837,7 @@ ROMs:
*/ */
ROM_START( dtfamily ) ROM_START( dtfamily )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1", 0x00000, 0x080000, CRC(738636d2) SHA1(ba7906df99764ee7e1f505c319d364c64c605ff0) ) ROM_LOAD( "rom1", 0x00000, 0x080000, CRC(738636d2) SHA1(ba7906df99764ee7e1f505c319d364c64c605ff0) )
ROM_LOAD( "rom2", 0x80000, 0x080000, CRC(0953f5e4) SHA1(ee8b3c4f9c9301c9815747eab5435e006ec84ca1) ) ROM_LOAD( "rom2", 0x80000, 0x080000, CRC(0953f5e4) SHA1(ee8b3c4f9c9301c9815747eab5435e006ec84ca1) )
@ -1927,7 +1911,7 @@ ROMs:
*/ */
ROM_START( toyland ) ROM_START( toyland )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* ROM1 empty */ /* ROM1 empty */
ROM_LOAD( "rom2.bin", 0x80000, 0x080000, CRC(e3455002) SHA1(5ad7884f82fb125d70829accec02f238e7d9593c) ) ROM_LOAD( "rom2.bin", 0x80000, 0x080000, CRC(e3455002) SHA1(5ad7884f82fb125d70829accec02f238e7d9593c) )
@ -2006,7 +1990,7 @@ ROM1 & ROM2 are both ST 27c4000D
*/ */
ROM_START( wivernwg ) ROM_START( wivernwg )
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1", 0x000000, 0x080000, CRC(83eb9a36) SHA1(d9c3b2facf42c137abc2923bbaeae300964ca4a0) ) /* ST 27C4000D with no labels */ ROM_LOAD( "rom1", 0x000000, 0x080000, CRC(83eb9a36) SHA1(d9c3b2facf42c137abc2923bbaeae300964ca4a0) ) /* ST 27C4000D with no labels */
ROM_LOAD( "rom2", 0x080000, 0x080000, CRC(5d657055) SHA1(21baa81b80f28aec4a6be9eaf69709958bf2a129) ) ROM_LOAD( "rom2", 0x080000, 0x080000, CRC(5d657055) SHA1(21baa81b80f28aec4a6be9eaf69709958bf2a129) )
@ -2032,7 +2016,7 @@ ROM_START( wivernwg )
ROM_END ROM_END
ROM_START( wyvernwg ) ROM_START( wyvernwg )
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1.bin", 0x000000, 0x080000, CRC(66bf3a5c) SHA1(037d5e7a6ef6f5b4ac08a9c811498c668a9d2522) ) /* ST 27c4000D with no labels */ ROM_LOAD( "rom1.bin", 0x000000, 0x080000, CRC(66bf3a5c) SHA1(037d5e7a6ef6f5b4ac08a9c811498c668a9d2522) ) /* ST 27c4000D with no labels */
ROM_LOAD( "rom2.bin", 0x080000, 0x080000, CRC(fd9b5911) SHA1(a01e8c6e5a9009024af385268ba3ba90e1ebec50) ) ROM_LOAD( "rom2.bin", 0x080000, 0x080000, CRC(fd9b5911) SHA1(a01e8c6e5a9009024af385268ba3ba90e1ebec50) )
@ -2058,7 +2042,7 @@ ROM_START( wyvernwg )
ROM_END ROM_END
ROM_START( wyvernwga ) ROM_START( wyvernwga )
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "rom1.rom", 0x000000, 0x080000, CRC(586881fd) SHA1(d335bbd91def8fa4935eb2375c9b00471a1f40eb) ) /* ST 27c4000D with no labels */ ROM_LOAD( "rom1.rom", 0x000000, 0x080000, CRC(586881fd) SHA1(d335bbd91def8fa4935eb2375c9b00471a1f40eb) ) /* ST 27c4000D with no labels */
ROM_LOAD( "rom2.rom", 0x080000, 0x080000, CRC(938049ec) SHA1(cc10944c99ceb388dd4aafc93377c40540861d14) ) ROM_LOAD( "rom2.rom", 0x080000, 0x080000, CRC(938049ec) SHA1(cc10944c99ceb388dd4aafc93377c40540861d14) )
@ -2130,7 +2114,7 @@ Notes:
*/ */
ROM_START( misncrft ) /* Version 2.7 */ ROM_START( misncrft ) /* Version 2.7 */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* 0 - 0x80000 empty */ /* 0 - 0x80000 empty */
ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(04d22da6) SHA1(1c5be430000a31f21204fb756fadf2523a546b8b) ) ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(04d22da6) SHA1(1c5be430000a31f21204fb756fadf2523a546b8b) )
@ -2155,7 +2139,7 @@ ROM_START( misncrft ) /* Version 2.7 */
ROM_END ROM_END
ROM_START( misncrfta ) /* Version 2.4 */ ROM_START( misncrfta ) /* Version 2.4 */
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* 0 - 0x80000 empty */ /* 0 - 0x80000 empty */
ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(059ae8c1) SHA1(2c72fcf560166cb17cd8ad665beae302832d551c) ) // sldh ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(059ae8c1) SHA1(2c72fcf560166cb17cd8ad665beae302832d551c) ) // sldh
@ -2254,7 +2238,7 @@ ROMs:
*/ */
ROM_START( yorijori ) ROM_START( yorijori )
ROM_REGION32_BE( 0x200000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x200000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD( "prg1", 0x000000, 0x200000, CRC(0e04eb40) SHA1(0cec9dc91aaf9cf7c459c7baac200cf0fcfddc18) ) ROM_LOAD( "prg1", 0x000000, 0x200000, CRC(0e04eb40) SHA1(0cec9dc91aaf9cf7c459c7baac200cf0fcfddc18) )
ROM_REGION( 0x080000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ ROM_REGION( 0x080000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */
@ -2323,7 +2307,7 @@ VR1 is the volume adjust pot
*/ */
ROM_START( finalgdr ) /* version 2.20.5915, Korea only */ ROM_START( finalgdr ) /* version 2.20.5915, Korea only */
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* rom0 empty */ /* rom0 empty */
ROM_LOAD( "rom1", 0x080000, 0x080000, CRC(45815931) SHA1(80ba7a366994e40a1f520ea18fad82e6b068b279) ) ROM_LOAD( "rom1", 0x080000, 0x080000, CRC(45815931) SHA1(80ba7a366994e40a1f520ea18fad82e6b068b279) )
@ -2431,7 +2415,7 @@ ROMs:
*/ */
ROM_START( mrkickera ) ROM_START( mrkickera )
ROM_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* rom0 empty */ /* rom0 empty */
ROM_LOAD( "2-semicom.rom1", 0x080000, 0x080000, CRC(d3da29ca) SHA1(b843c650096a1c6d50f99e354ec0c93eb4406c5b) ) /* SEMICOM-003b PCB */ ROM_LOAD( "2-semicom.rom1", 0x080000, 0x080000, CRC(d3da29ca) SHA1(b843c650096a1c6d50f99e354ec0c93eb4406c5b) ) /* SEMICOM-003b PCB */
@ -2451,7 +2435,7 @@ ROM_START( mrkickera )
ROM_END ROM_END
ROM_START( mrkicker ) ROM_START( mrkicker )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* rom1 empty */ /* rom1 empty */
ROM_LOAD( "3-semicom.rom2", 0x080000, 0x080000, CRC(3f7fa08b) SHA1(dbffd44d8387e6ed1a4b5ec85ccf64d69a108d88) ) /* F-E1-16-010 PCB */ ROM_LOAD( "3-semicom.rom2", 0x080000, 0x080000, CRC(3f7fa08b) SHA1(dbffd44d8387e6ed1a4b5ec85ccf64d69a108d88) ) /* F-E1-16-010 PCB */
@ -2516,7 +2500,7 @@ Notes:
*/ */
ROM_START( aoh ) ROM_START( aoh )
ROM_REGION32_BE( 0x400000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION32_BE( 0x400000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
ROM_LOAD16_WORD_SWAP( "rom1", 0x000000, 0x200000, CRC(2e55ff55) SHA1(b2b7605b87ee609dfbc7c21dfae0ef8d847019f0) ) ROM_LOAD16_WORD_SWAP( "rom1", 0x000000, 0x200000, CRC(2e55ff55) SHA1(b2b7605b87ee609dfbc7c21dfae0ef8d847019f0) )
ROM_LOAD16_WORD_SWAP( "rom2", 0x200000, 0x200000, CRC(50f8a409) SHA1(a8171b7cf59dd01de1e512ab21607b4f330f40b8) ) ROM_LOAD16_WORD_SWAP( "rom2", 0x200000, 0x200000, CRC(50f8a409) SHA1(a8171b7cf59dd01de1e512ab21607b4f330f40b8) )
@ -2530,7 +2514,7 @@ ROM_START( aoh )
ROM_LOAD32_WORD( "g08", 0x3000002, 0x800000, CRC(1fd08aa0) SHA1(376a91220cd6e63418b04d590b232bb1079a40c7) ) ROM_LOAD32_WORD( "g08", 0x3000002, 0x800000, CRC(1fd08aa0) SHA1(376a91220cd6e63418b04d590b232bb1079a40c7) )
ROM_LOAD32_WORD( "g12", 0x3000000, 0x800000, CRC(e437b35f) SHA1(411d2926d619fba057476864f0e580f608830522) ) ROM_LOAD32_WORD( "g12", 0x3000000, 0x800000, CRC(e437b35f) SHA1(411d2926d619fba057476864f0e580f608830522) )
ROM_REGION( 0x40000, "oki_1", 0 ) /* Oki Samples */ ROM_REGION( 0x40000, "oki1", 0 ) /* Oki Samples */
ROM_LOAD( "rom3", 0x00000, 0x40000, CRC(db8cb455) SHA1(6723b4018208d554bd1bf1e0640b72d2f4f47302) ) ROM_LOAD( "rom3", 0x00000, 0x40000, CRC(db8cb455) SHA1(6723b4018208d554bd1bf1e0640b72d2f4f47302) )
/* $00000-$20000 stays the same in all sound banks, */ /* $00000-$20000 stays the same in all sound banks, */
@ -2547,7 +2531,7 @@ Taff System, 2001
*/ */
ROM_START( boonggab ) ROM_START( boonggab )
ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
/* rom2 empty */ /* rom2 empty */
/* rom3 empty */ /* rom3 empty */
ROM_LOAD( "2.rom0", 0x80000, 0x80000, CRC(3395541b) SHA1(4e822a52d6070bde232285e7ad8fbe74594bbf28) ) ROM_LOAD( "2.rom0", 0x80000, 0x80000, CRC(3395541b) SHA1(4e822a52d6070bde232285e7ad8fbe74594bbf28) )
@ -2971,8 +2955,6 @@ DRIVER_INIT_MEMBER(vamphalf_state,misncrft)
// Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
save_item(NAME(m_qs1000_data));
} }
DRIVER_INIT_MEMBER(vamphalf_state,coolmini) DRIVER_INIT_MEMBER(vamphalf_state,coolmini)
@ -3049,7 +3031,6 @@ DRIVER_INIT_MEMBER(vamphalf_state,wyvernwg)
machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
save_item(NAME(m_qs1000_data));
save_item(NAME(m_semicom_prot_idx)); save_item(NAME(m_semicom_prot_idx));
save_item(NAME(m_semicom_prot_which)); save_item(NAME(m_semicom_prot_which));
} }
@ -3065,7 +3046,7 @@ DRIVER_INIT_MEMBER(vamphalf_state,yorijori)
m_semicom_prot_data[0] = 2; m_semicom_prot_data[0] = 2;
m_semicom_prot_data[1] = 1; m_semicom_prot_data[1] = 1;
// uint8_t *romx = (uint8_t *)memregion("user1")->base(); // uint8_t *romx = (uint8_t *)memregion("maincpu")->base();
// prevent code dying after a trap 33 by patching it out, why? // prevent code dying after a trap 33 by patching it out, why?
// romx[BYTE4_XOR_BE(0x8ff0)] = 3; // romx[BYTE4_XOR_BE(0x8ff0)] = 3;
// romx[BYTE4_XOR_BE(0x8ff1)] = 0; // romx[BYTE4_XOR_BE(0x8ff1)] = 0;
@ -3073,8 +3054,6 @@ DRIVER_INIT_MEMBER(vamphalf_state,yorijori)
// Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
save_item(NAME(m_qs1000_data));
} }
DRIVER_INIT_MEMBER(vamphalf_state,finalgdr) DRIVER_INIT_MEMBER(vamphalf_state,finalgdr)

View File

@ -18,7 +18,6 @@
#include "cpu/e132xs/e132xs.h" #include "cpu/e132xs/e132xs.h"
#include "machine/at28c16.h" #include "machine/at28c16.h"
#include "machine/gen_latch.h"
#include "sound/qs1000.h" #include "sound/qs1000.h"
#include "speaker.h" #include "speaker.h"
@ -27,10 +26,8 @@ class vegaeo_state : public eolith_state
{ {
public: public:
vegaeo_state(const machine_config &mconfig, device_type type, const char *tag) vegaeo_state(const machine_config &mconfig, device_type type, const char *tag)
: eolith_state(mconfig, type, tag), : eolith_state(mconfig, type, tag) { }
m_soundlatch(*this, "soundlatch") { }
required_device<generic_latch_8_device> m_soundlatch;
std::unique_ptr<uint32_t[]> m_vega_vram; std::unique_ptr<uint32_t[]> m_vega_vram;
uint8_t m_vega_vbuffer; uint8_t m_vega_vbuffer;
@ -39,8 +36,6 @@ public:
DECLARE_READ32_MEMBER(vega_vram_r); DECLARE_READ32_MEMBER(vega_vram_r);
DECLARE_WRITE32_MEMBER(vega_misc_w); DECLARE_WRITE32_MEMBER(vega_misc_w);
DECLARE_READ32_MEMBER(vegaeo_custom_read); DECLARE_READ32_MEMBER(vegaeo_custom_read);
DECLARE_WRITE32_MEMBER(soundlatch_w);
DECLARE_READ8_MEMBER(qs1000_p1_r);
DECLARE_WRITE8_MEMBER(qs1000_p1_w); DECLARE_WRITE8_MEMBER(qs1000_p1_w);
DECLARE_WRITE8_MEMBER(qs1000_p2_w); DECLARE_WRITE8_MEMBER(qs1000_p2_w);
DECLARE_WRITE8_MEMBER(qs1000_p3_w); DECLARE_WRITE8_MEMBER(qs1000_p3_w);
@ -53,11 +48,6 @@ public:
void vega_map(address_map &map); void vega_map(address_map &map);
}; };
READ8_MEMBER( vegaeo_state::qs1000_p1_r )
{
return m_soundlatch->read(space, 0);
}
WRITE8_MEMBER( vegaeo_state::qs1000_p1_w ) WRITE8_MEMBER( vegaeo_state::qs1000_p1_w )
{ {
} }
@ -75,7 +65,7 @@ WRITE8_MEMBER( vegaeo_state::qs1000_p3_w )
membank("qs1000:bank")->set_entry(data & 0x07); membank("qs1000:bank")->set_entry(data & 0x07);
if (!BIT(data, 5)) if (!BIT(data, 5))
m_qs1000->set_irq(CLEAR_LINE); m_soundlatch->acknowledge_w(space, 0, !BIT(data, 5));
} }
WRITE32_MEMBER(vegaeo_state::vega_vram_w) WRITE32_MEMBER(vegaeo_state::vega_vram_w)
@ -127,14 +117,6 @@ READ32_MEMBER(vegaeo_state::vegaeo_custom_read)
return ioport("SYSTEM")->read(); return ioport("SYSTEM")->read();
} }
WRITE32_MEMBER(vegaeo_state::soundlatch_w)
{
m_soundlatch->write(space, 0, data);
m_qs1000->set_irq(ASSERT_LINE);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
ADDRESS_MAP_START(vegaeo_state::vega_map) ADDRESS_MAP_START(vegaeo_state::vega_map)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_RANGE(0x00000000, 0x001fffff) AM_RAM
@ -142,11 +124,11 @@ ADDRESS_MAP_START(vegaeo_state::vega_map)
AM_RANGE(0xfc000000, 0xfc0000ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x000000ff) AM_RANGE(0xfc000000, 0xfc0000ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x000000ff)
AM_RANGE(0xfc200000, 0xfc2003ff) AM_DEVREADWRITE16("palette", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette") AM_RANGE(0xfc200000, 0xfc2003ff) AM_DEVREADWRITE16("palette", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette")
AM_RANGE(0xfc400000, 0xfc40005b) AM_WRITENOP // crt registers ? AM_RANGE(0xfc400000, 0xfc40005b) AM_WRITENOP // crt registers ?
AM_RANGE(0xfc600000, 0xfc600003) AM_WRITE(soundlatch_w) AM_RANGE(0xfc600000, 0xfc600003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x000000ff).cswidth(32)
AM_RANGE(0xfca00000, 0xfca00003) AM_WRITE(vega_misc_w) AM_RANGE(0xfca00000, 0xfca00003) AM_WRITE(vega_misc_w)
AM_RANGE(0xfcc00000, 0xfcc00003) AM_READ(vegaeo_custom_read) AM_RANGE(0xfcc00000, 0xfcc00003) AM_READ(vegaeo_custom_read)
AM_RANGE(0xfce00000, 0xfce00003) AM_READ_PORT("P1_P2") AM_RANGE(0xfce00000, 0xfce00003) AM_READ_PORT("P1_P2")
AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("user1", 0) AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("maindata", 0)
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -245,10 +227,12 @@ MACHINE_CONFIG_START(vegaeo_state::vega)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(DEVWRITELINE("qs1000", qs1000_device, set_irq))
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000)) MCFG_SOUND_ADD("qs1000", QS1000, XTAL(24'000'000))
MCFG_QS1000_EXTERNAL_ROM(true) MCFG_QS1000_EXTERNAL_ROM(true)
MCFG_QS1000_IN_P1_CB(READ8(vegaeo_state, qs1000_p1_r)) MCFG_QS1000_IN_P1_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
MCFG_QS1000_OUT_P1_CB(WRITE8(vegaeo_state, qs1000_p1_w)) MCFG_QS1000_OUT_P1_CB(WRITE8(vegaeo_state, qs1000_p1_w))
MCFG_QS1000_OUT_P2_CB(WRITE8(vegaeo_state, qs1000_p2_w)) MCFG_QS1000_OUT_P2_CB(WRITE8(vegaeo_state, qs1000_p2_w))
MCFG_QS1000_OUT_P3_CB(WRITE8(vegaeo_state, qs1000_p3_w)) MCFG_QS1000_OUT_P3_CB(WRITE8(vegaeo_state, qs1000_p3_w))
@ -306,7 +290,7 @@ ROM_START( crazywar )
ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
ROM_LOAD( "u7", 0x00000, 0x80000, CRC(697c2505) SHA1(c787007f05d2ddf1706e15e9d9ef9b2479708f12) ) ROM_LOAD( "u7", 0x00000, 0x80000, CRC(697c2505) SHA1(c787007f05d2ddf1706e15e9d9ef9b2479708f12) )
ROM_REGION32_BE( 0x2000000, "user1", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */ ROM_REGION32_BE( 0x2000000, "maindata", ROMREGION_ERASE00 ) /* Game Data - banked ROM, swapping necessary */
ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(fbb917ae) SHA1(1fd975cda06b3cb748503b7c8009e6184b46af3f) ) ROM_LOAD32_WORD_SWAP( "00", 0x0000000, 0x200000, CRC(fbb917ae) SHA1(1fd975cda06b3cb748503b7c8009e6184b46af3f) )
ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(59308556) SHA1(bc8c28531fca009be5b7b3b1a4a9b3ebcc9d3c3a) ) ROM_LOAD32_WORD_SWAP( "01", 0x0000002, 0x200000, CRC(59308556) SHA1(bc8c28531fca009be5b7b3b1a4a9b3ebcc9d3c3a) )
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(34813167) SHA1(d04c71164b36af78425dcd637e60aee45c39a1ba) ) ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(34813167) SHA1(d04c71164b36af78425dcd637e60aee45c39a1ba) )

View File

@ -2,6 +2,7 @@
// copyright-holders:Tomasz Slanina,Pierpaolo Prazzoli // copyright-holders:Tomasz Slanina,Pierpaolo Prazzoli
#include "cpu/mcs51/mcs51.h" #include "cpu/mcs51/mcs51.h"
#include "machine/gen_latch.h"
#include "machine/timer.h" #include "machine/timer.h"
#include "sound/qs1000.h" #include "sound/qs1000.h"
#include "screen.h" #include "screen.h"
@ -10,36 +11,34 @@ class eolith_state : public driver_device
{ {
public: public:
eolith_state(const machine_config &mconfig, device_type type, const char *tag) eolith_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag)
m_eepromoutport(*this, "EEPROMOUT"), , m_eepromoutport(*this, "EEPROMOUT")
m_qs1000(*this, "qs1000"), , m_qs1000(*this, "qs1000")
m_maincpu(*this, "maincpu"), , m_maincpu(*this, "maincpu")
m_soundcpu(*this, "soundcpu"), , m_soundcpu(*this, "soundcpu")
m_screen(*this, "screen"), , m_screen(*this, "screen")
m_palette(*this, "palette"), , m_palette(*this, "palette")
m_in0(*this, "IN0"), , m_soundlatch(*this, "soundlatch")
m_penx1port(*this, "PEN_X_P1"), , m_in0(*this, "IN0")
m_peny1port(*this, "PEN_Y_P1"), , m_penx1port(*this, "PEN_X_P1")
m_penx2port(*this, "PEN_X_P2"), , m_peny1port(*this, "PEN_Y_P1")
m_peny2port(*this, "PEN_Y_P2"), , m_penx2port(*this, "PEN_X_P2")
m_sndbank(*this, "sound_bank") , m_peny2port(*this, "PEN_Y_P2")
{ } , m_sndbank(*this, "sound_bank")
{ }
DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank); DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank);
DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank); DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank);
DECLARE_READ32_MEMBER(eolith_custom_r); DECLARE_READ32_MEMBER(eolith_custom_r);
DECLARE_WRITE32_MEMBER(systemcontrol_w); DECLARE_WRITE32_MEMBER(systemcontrol_w);
DECLARE_WRITE32_MEMBER(sound_w);
DECLARE_READ32_MEMBER(hidctch3_pen1_r); DECLARE_READ32_MEMBER(hidctch3_pen1_r);
DECLARE_READ32_MEMBER(hidctch3_pen2_r); DECLARE_READ32_MEMBER(hidctch3_pen2_r);
DECLARE_WRITE32_MEMBER(eolith_vram_w); DECLARE_WRITE32_MEMBER(eolith_vram_w);
DECLARE_READ32_MEMBER(eolith_vram_r); DECLARE_READ32_MEMBER(eolith_vram_r);
DECLARE_READ8_MEMBER(sound_cmd_r);
DECLARE_WRITE8_MEMBER(sound_p1_w); DECLARE_WRITE8_MEMBER(sound_p1_w);
DECLARE_READ8_MEMBER(qs1000_p1_r); DECLARE_READ8_MEMBER(qs1000_p1_r);
DECLARE_WRITE8_MEMBER(qs1000_p1_w); DECLARE_WRITE8_MEMBER(qs1000_p1_w);
DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000);
DECLARE_DRIVER_INIT(eolith); DECLARE_DRIVER_INIT(eolith);
DECLARE_DRIVER_INIT(landbrk); DECLARE_DRIVER_INIT(landbrk);
@ -76,6 +75,7 @@ private:
optional_device<i8032_device> m_soundcpu; optional_device<i8032_device> m_soundcpu;
required_device<screen_device> m_screen; required_device<screen_device> m_screen;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch;
optional_ioport m_in0; // klondkp doesn't have it optional_ioport m_in0; // klondkp doesn't have it
optional_ioport m_penx1port; optional_ioport m_penx1port;