mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
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:
parent
7e7dedea6e
commit
f555e1627b
@ -262,20 +262,16 @@ void qs1000_device::device_start()
|
||||
//-------------------------------------------------
|
||||
// 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;
|
||||
|
||||
// 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);
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(qs1000_device::serial_w), this), data);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// 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
|
||||
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
|
||||
//-------------------------------------------------
|
||||
|
@ -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)); }
|
||||
|
||||
// external
|
||||
void serial_in(uint8_t data);
|
||||
void set_irq(int state);
|
||||
DECLARE_WRITE_LINE_MEMBER( serial_in );
|
||||
DECLARE_WRITE_LINE_MEMBER( set_irq );
|
||||
|
||||
DECLARE_WRITE8_MEMBER( wave_w );
|
||||
|
||||
@ -102,6 +102,7 @@ protected:
|
||||
virtual void rom_bank_updated() override;
|
||||
|
||||
private:
|
||||
TIMER_CALLBACK_MEMBER( serial_w );
|
||||
static constexpr unsigned QS1000_CHANNELS = 32;
|
||||
static constexpr offs_t QS1000_ADDRESS_MASK = 0x00ffffff;
|
||||
|
||||
|
@ -160,28 +160,12 @@ READ32_MEMBER(eolith_state::hidctch3_pen2_r)
|
||||
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
|
||||
*
|
||||
*************************************/
|
||||
|
||||
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 )
|
||||
{
|
||||
// .... 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
|
||||
@ -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(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r)
|
||||
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(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)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -265,7 +236,7 @@ ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(eolith_state::sound_io_map)
|
||||
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
|
||||
|
||||
|
||||
@ -553,7 +524,7 @@ MACHINE_CONFIG_START(eolith_state::eolith45)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_prg_map)
|
||||
MCFG_CPU_IO_MAP(sound_io_map)
|
||||
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)
|
||||
|
||||
@ -581,6 +552,9 @@ MACHINE_CONFIG_START(eolith_state::eolith45)
|
||||
/* sound hardware */
|
||||
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_QS1000_EXTERNAL_ROM(true)
|
||||
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_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-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) )
|
||||
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_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-01.u34", 0x0000002, 0x400000, CRC(890470b3) SHA1(57df122ab01744b47ebd38554eb6a7d780977be2) )
|
||||
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_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( "lp01.u34", 0x0000002, 0x400000, CRC(30780c08) SHA1(15d7bf1397c25eb813c79fc9cea88ac427b1d9c7) )
|
||||
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_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( "hc1_u34.bin", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) )
|
||||
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_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( "hc001.u34", 0x0000002, 0x400000, CRC(482f3e52) SHA1(7a527c6af4c80e10cc25219a04ccf7c7ea1b23af) )
|
||||
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_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( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) )
|
||||
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_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( "01", 0x0000002, 0x200000, CRC(5a1c1ab3) SHA1(3c07a98f9ea8b30bac5a260403e688314fd12abb) )
|
||||
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_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-1.u34", 0x0000002, 0x400000, CRC(6e029c0a) SHA1(e217f6269e1c2a38f414c7220005e8bb6c636c57) )
|
||||
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_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.u1", 0x0000002, 0x200000, CRC(49775125) SHA1(2b8ee9dd767465999c828d65bb02b8aaad94177c) )
|
||||
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_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( "01.bin", 0x0000002, 0x200000, CRC(439c95cc) SHA1(18830024b2e43f0a89a7bd32841fbcb574e50fc6) )
|
||||
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_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-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) )
|
||||
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_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-001.u34", 0x0000002, 0x400000, CRC(07e620c9) SHA1(19f95316208fb4e52cef78f18c5d93460a644566) )
|
||||
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_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( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) )
|
||||
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_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( "01.u1", 0x0000002, 0x200000, CRC(a7d7299d) SHA1(e0c4d399ac0d2525d80249d908c72a51b701e9b0) )
|
||||
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_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( "01.u1", 0x0000002, 0x200000, CRC(255764f2) SHA1(b1d25898961ddbed9865620269cb0cd0ab506cd9) )
|
||||
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_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( "01.u1", 0x0000002, 0x200000, CRC(288229f1) SHA1(56e3ae101f8acc5d1e9bcc28b74ee48aa456bf28) )
|
||||
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_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( "01.u1", 0x0000002, 0x200000, CRC(2a410aed) SHA1(def822ead339180aa3e0ebb266b6a6eb1271a2ae) )
|
||||
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_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( "ftii004.u34", 0x0000002, 0x400000, CRC(d4399f98) SHA1(88f5a1097f44d2070cfc96c9cd83342d1975dcfe) )
|
||||
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_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( "u1.bin", 0x0000002, 0x200000, CRC(6b4b369d) SHA1(3f528e557f2846d7c50afa332797e8bc541eeba8) )
|
||||
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_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( "01", 0x0000002, 0x200000, CRC(09463ec9) SHA1(0287da2e65521a61c06ad927e913243d023f0d72) )
|
||||
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(e5a08ebf) SHA1(0ce2414b547a027710ee4ea8f890cc2fa23dff9a) )
|
||||
@ -1531,9 +1505,7 @@ DRIVER_INIT_MEMBER(eolith_state,eolith)
|
||||
init_speedup();
|
||||
|
||||
// Configure the sound ROM banking
|
||||
membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000);
|
||||
|
||||
save_item(NAME(m_sound_data));
|
||||
m_sndbank->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(eolith_state,landbrk)
|
||||
|
@ -78,14 +78,14 @@ ADDRESS_MAP_START(eolith16_state::eolith16_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
|
||||
AM_RANGE(0x50000000, 0x5000ffff) AM_READWRITE(vram_r, vram_w)
|
||||
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(0xffe80000, 0xffe80001) AM_WRITE(eeprom_w)
|
||||
AM_RANGE(0xffea0000, 0xffea0001) AM_READ(eolith16_custom_r)
|
||||
AM_RANGE(0xffea0002, 0xffea0003) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xffec0000, 0xffec0001) AM_READNOP // not used?
|
||||
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
|
||||
|
||||
static INPUT_PORTS_START( eolith16 )
|
||||
@ -251,10 +251,10 @@ Notes:
|
||||
*/
|
||||
|
||||
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_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_REGION( 0x80000, "oki", 0 ) /* oki samples */
|
||||
|
@ -88,13 +88,15 @@ class ghosteo_state : public driver_device
|
||||
{
|
||||
public:
|
||||
ghosteo_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_qs1000(*this, "qs1000"),
|
||||
m_i2cmem(*this, "i2cmem"),
|
||||
m_s3c2410(*this, "s3c2410"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_system_memory(*this, "systememory") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_qs1000(*this, "qs1000")
|
||||
, m_i2cmem(*this, "i2cmem")
|
||||
, m_s3c2410(*this, "s3c2410")
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_system_memory(*this, "systememory")
|
||||
, m_flash(*this, "flash")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<qs1000_device> m_qs1000;
|
||||
@ -102,22 +104,19 @@ public:
|
||||
required_device<s3c2410_device> m_s3c2410;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
required_shared_ptr<uint32_t> m_system_memory;
|
||||
required_region_ptr<uint8_t> m_flash;
|
||||
|
||||
int m_security_count;
|
||||
uint32_t m_bballoon_port[20];
|
||||
struct nand_t m_nand;
|
||||
DECLARE_READ32_MEMBER(bballoon_speedup_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_p2_w);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
|
||||
|
||||
int m_rom_pagesize;
|
||||
uint8_t* m_flash;
|
||||
DECLARE_DRIVER_INIT(touryuu);
|
||||
DECLARE_DRIVER_INIT(bballoon);
|
||||
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)
|
||||
*/
|
||||
|
||||
READ8_MEMBER( ghosteo_state::qs1000_p1_r )
|
||||
{
|
||||
return m_soundlatch->read(space, 0);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
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(0x10100000, 0x10100003) AM_READ_PORT("10100000")
|
||||
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)
|
||||
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(0x10100000, 0x10100003) AM_READ_PORT("10100000")
|
||||
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)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -594,18 +588,8 @@ READ32_MEMBER(ghosteo_state::bballoon_speedup_r)
|
||||
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()
|
||||
{
|
||||
m_flash = (uint8_t *)memregion( "user1")->base();
|
||||
|
||||
// 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");
|
||||
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_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_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_P2_CB(WRITE8(ghosteo_state, qs1000_p2_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
|
||||
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
|
||||
|
||||
// banked every 0x10000 bytes ?
|
||||
@ -741,7 +727,7 @@ ROM_START( bballoon )
|
||||
ROM_END
|
||||
|
||||
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
|
||||
|
||||
// banked every 0x10000 bytes ?
|
||||
@ -755,7 +741,7 @@ ROM_END
|
||||
|
||||
|
||||
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) )
|
||||
|
||||
// banked every 0x10000 bytes ?
|
||||
|
@ -38,20 +38,21 @@ class limenko_state : public driver_device
|
||||
{
|
||||
public:
|
||||
limenko_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_oki(*this, "oki"),
|
||||
m_qs1000(*this, "qs1000"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_mainram(*this, "mainram"),
|
||||
m_fg_videoram(*this, "fg_videoram"),
|
||||
m_md_videoram(*this, "md_videoram"),
|
||||
m_bg_videoram(*this, "bg_videoram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_spriteram2(*this, "spriteram2"),
|
||||
m_videoreg(*this, "videoreg") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_oki(*this, "oki")
|
||||
, m_qs1000(*this, "qs1000")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_mainram(*this, "mainram")
|
||||
, m_fg_videoram(*this, "fg_videoram")
|
||||
, m_md_videoram(*this, "md_videoram")
|
||||
, m_bg_videoram(*this, "bg_videoram")
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_spriteram2(*this, "spriteram2")
|
||||
, m_videoreg(*this, "videoreg")
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
@ -82,8 +83,6 @@ public:
|
||||
DECLARE_WRITE32_MEMBER(bg_videoram_w);
|
||||
DECLARE_WRITE32_MEMBER(md_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_WRITE8_MEMBER(spotty_sound_cmd_w);
|
||||
DECLARE_READ8_MEMBER(spotty_sound_cmd_r);
|
||||
@ -92,7 +91,6 @@ public:
|
||||
DECLARE_READ32_MEMBER(legendoh_speedup_r);
|
||||
DECLARE_READ32_MEMBER(sb2003_speedup_r);
|
||||
DECLARE_READ32_MEMBER(spotty_speedup_r);
|
||||
DECLARE_READ8_MEMBER(qs1000_p1_r);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p1_w);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p2_w);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
|
||||
@ -185,24 +183,6 @@ WRITE32_MEMBER(limenko_state::spriteram_buffer_w)
|
||||
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)
|
||||
{
|
||||
}
|
||||
@ -221,7 +201,7 @@ WRITE8_MEMBER(limenko_state::qs1000_p3_w)
|
||||
membank("qs1000:bank")->set_entry(data & 0x07);
|
||||
|
||||
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)
|
||||
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(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")
|
||||
@ -240,7 +220,7 @@ ADDRESS_MAP_START(limenko_state::limenko_map)
|
||||
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
|
||||
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg")
|
||||
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_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(0x4000, 0x4003) AM_WRITE(limenko_coincounter_w)
|
||||
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
|
||||
|
||||
|
||||
@ -267,7 +247,7 @@ ADDRESS_MAP_START(limenko_state::spotty_map)
|
||||
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
|
||||
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_SHARE("videoreg")
|
||||
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_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(0x1000, 0x1003) AM_READ_PORT("IN2")
|
||||
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
|
||||
|
||||
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_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_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_P2_CB(WRITE8(limenko_state, qs1000_p2_w))
|
||||
MCFG_QS1000_OUT_P3_CB(WRITE8(limenko_state, qs1000_p3_w))
|
||||
@ -842,10 +824,10 @@ Notes:
|
||||
*/
|
||||
|
||||
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_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_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */
|
||||
@ -867,10 +849,10 @@ ROM_START( dynabomb )
|
||||
ROM_END
|
||||
|
||||
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_REGION32_BE( 0x400000, "user2", ROMREGION_ERASEFF )
|
||||
ROM_REGION32_BE( 0x400000, "maindata", ROMREGION_ERASEFF )
|
||||
// u5 empty
|
||||
|
||||
ROM_REGION( 0x80000, "qs1000:cpu", 0 ) /* QS1000 CPU */
|
||||
@ -892,10 +874,10 @@ ROM_START( sb2003 ) /* No specific Country/Region */
|
||||
ROM_END
|
||||
|
||||
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_REGION32_BE( 0x400000, "user2", ROMREGION_ERASEFF )
|
||||
ROM_REGION32_BE( 0x400000, "maindata", ROMREGION_ERASEFF )
|
||||
// u5 empty
|
||||
|
||||
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_REGION32_BE( 0x200000, "user1", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */
|
||||
ROM_REGION32_BE( 0x200000, "maincpu", ROMREGION_ERASEFF ) /* Hyperstone CPU Code */
|
||||
/* sys_rom1 empty */
|
||||
/* sys_rom2 empty */
|
||||
/* sys_rom3 empty */
|
||||
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_rom5", 0x200000, 0x200000, CRC(19dc8d23) SHA1(433687c6aa24b9456436eecb1dcb57814af3009d) )
|
||||
/* sys_rom8 empty */
|
||||
@ -1051,7 +1033,7 @@ SW2 = Reset
|
||||
*/
|
||||
|
||||
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 */
|
||||
ROM_LOAD16_WORD_SWAP( "sys_rom2", 0x080000, 0x80000, CRC(6ded8d9b) SHA1(547c532f4014d818c4412244b60dbc439496de20) )
|
||||
|
||||
@ -1061,7 +1043,7 @@ ROM_START( spotty )
|
||||
/* Expand the gfx roms here */
|
||||
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_rom3", 0x000001, 0x80000, CRC(0ddac0b9) SHA1(f4ac8e6dd7f1cbdeb97139008982e6c17a3d18b9) )
|
||||
/* gc_rom2 empty */
|
||||
@ -1146,7 +1128,7 @@ DRIVER_INIT_MEMBER(limenko_state,sb2003)
|
||||
DRIVER_INIT_MEMBER(limenko_state,spotty)
|
||||
{
|
||||
uint8_t *dst = memregion("gfx1")->base();
|
||||
uint8_t *src = memregion("user2")->base();
|
||||
uint8_t *src = memregion("maindata")->base();
|
||||
int x;
|
||||
|
||||
/* expand 4bpp roms to 8bpp space */
|
||||
|
@ -63,6 +63,7 @@ TODO:
|
||||
#include "cpu/e132xs/e132xs.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "machine/eepromser.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/qs1000.h"
|
||||
@ -75,26 +76,29 @@ class vamphalf_state : public driver_device
|
||||
{
|
||||
public:
|
||||
vamphalf_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_qs1000(*this, "qs1000"),
|
||||
m_eeprom(*this, "eeprom"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_tiles(*this,"tiles"),
|
||||
m_wram(*this,"wram"),
|
||||
m_tiles32(*this,"tiles32"),
|
||||
m_wram32(*this,"wram32"),
|
||||
m_okiregion(*this, "oki%u", 1),
|
||||
m_okibank(*this,"okibank") {
|
||||
m_has_extra_gfx = 0;
|
||||
}
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_qs1000(*this, "qs1000")
|
||||
, m_eeprom(*this, "eeprom")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_tiles(*this,"tiles")
|
||||
, m_wram(*this,"wram")
|
||||
, m_tiles32(*this,"tiles32")
|
||||
, m_wram32(*this,"wram32")
|
||||
, m_okiregion(*this, "oki%u", 1)
|
||||
, m_okibank(*this,"okibank")
|
||||
{
|
||||
m_has_extra_gfx = 0;
|
||||
}
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<qs1000_device> m_qs1000;
|
||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
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_wram;
|
||||
@ -115,7 +119,6 @@ public:
|
||||
int m_semicom_prot_which;
|
||||
uint16_t m_finalgdr_backupram_bank;
|
||||
std::unique_ptr<uint8_t[]> m_finalgdr_backupram;
|
||||
uint8_t m_qs1000_data;
|
||||
|
||||
DECLARE_WRITE16_MEMBER(flipscreen_w);
|
||||
DECLARE_WRITE32_MEMBER(flipscreen32_w);
|
||||
@ -170,9 +173,6 @@ public:
|
||||
DECLARE_WRITE32_MEMBER(aoh_oki_bank_w);
|
||||
DECLARE_WRITE16_MEMBER(boonggab_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);
|
||||
|
||||
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 )
|
||||
{
|
||||
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);
|
||||
}
|
||||
@ -466,21 +446,21 @@ ADDRESS_MAP_START(vamphalf_state::common_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram")
|
||||
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(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
|
||||
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(vamphalf_state::common_32bit_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32")
|
||||
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(0xfff00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
|
||||
AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(vamphalf_state::yorijori_32bit_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram32")
|
||||
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(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1",0)
|
||||
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu",0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
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(0x240, 0x243) AM_READ_PORT("SYSTEM")
|
||||
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)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -537,7 +517,7 @@ ADDRESS_MAP_START(vamphalf_state::wyvernwg_io)
|
||||
AM_RANGE(0x2000, 0x2003) AM_WRITE(flipscreen32_w)
|
||||
AM_RANGE(0x2800, 0x2803) AM_READ_PORT("P1_P2")
|
||||
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(0x7c00, 0x7c03) AM_READ(eeprom32_r)
|
||||
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(0x80210000, 0x80210003) AM_READ_PORT("SYSTEM")
|
||||
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_START(vamphalf_state::aoh_io)
|
||||
AM_RANGE(0x0480, 0x0483) AM_WRITE(eeprom32_w)
|
||||
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(0x0680, 0x0683) AM_WRITE(aoh_oki_bank_w)
|
||||
ADDRESS_MAP_END
|
||||
@ -1094,10 +1074,14 @@ MACHINE_CONFIG_END
|
||||
MACHINE_CONFIG_START(vamphalf_state::sound_qs1000)
|
||||
/* sound hardware */
|
||||
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_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_SOUND_ROUTE(0, "lspeaker", 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(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, "rspeaker", 1.0)
|
||||
|
||||
@ -1332,7 +1316,7 @@ B1 B2 B3: Push buttons for SERV, RESET, TEST
|
||||
*/
|
||||
|
||||
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 */
|
||||
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_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 */
|
||||
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_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
|
||||
ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
|
||||
/* 0 - 0x80000 empty */
|
||||
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_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-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_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-rom2.v30", 0x80000, 0x80000, CRC(99840155) SHA1(e208f8731c06b634e84fb73e04f6cdbb8b504b94) )
|
||||
|
||||
@ -1457,7 +1441,7 @@ ROM_END
|
||||
|
||||
|
||||
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-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_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-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_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-rom2.v28", 0x80000, 0x80000, CRC(490ecaeb) SHA1(2b0f25e3d681ddf95b3c65754900c046b5b50b09) )
|
||||
|
||||
@ -1560,7 +1544,7 @@ Measured Clocks:
|
||||
*/
|
||||
|
||||
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( "rom2.bin", 0x80000, 0x80000, CRC(c722f7be) SHA1(d8b3c6b5fd0942147e0a61169c3eb6334a3b5a40) )
|
||||
|
||||
@ -1575,7 +1559,7 @@ ROM_START( jmpbreak ) /* Released February 1999 */
|
||||
ROM_END
|
||||
|
||||
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( "rom2.bin", 0x80000, 0x80000, CRC(80e70d7a) SHA1(cdafce4bfe7370978414a12aaf482e07a1c89ff8) )
|
||||
|
||||
@ -1643,7 +1627,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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( "rom2.bin", 0x80000, 0x80000, CRC(75d48b64) SHA1(c9c492fb9cabafcf0bc05f44bf80ee6df3c21a1b) )
|
||||
|
||||
@ -1690,7 +1674,7 @@ F-E1-16-008
|
||||
*/
|
||||
|
||||
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-rom2.040", 0x80000, 0x80000, CRC(9d588fef) SHA1(7b6b0ba074c7fa0aecda2b55f411557b015522b6) )
|
||||
|
||||
@ -1709,7 +1693,7 @@ ROM_START( coolmini )
|
||||
ROM_END
|
||||
|
||||
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-rom2.040", 0x80000, 0x80000, CRC(be7d02c8) SHA1(4897f3c890dd66f94d7a29f7a73c59857e4af218) )
|
||||
|
||||
@ -1781,7 +1765,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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( "rom2", 0x80000, 0x080000, CRC(e8789d8a) SHA1(1ee26c26cc7024c5df9d0da630b326021ece9f41) )
|
||||
|
||||
@ -1853,7 +1837,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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( "rom2", 0x80000, 0x080000, CRC(0953f5e4) SHA1(ee8b3c4f9c9301c9815747eab5435e006ec84ca1) )
|
||||
|
||||
@ -1927,7 +1911,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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 */
|
||||
ROM_LOAD( "rom2.bin", 0x80000, 0x080000, CRC(e3455002) SHA1(5ad7884f82fb125d70829accec02f238e7d9593c) )
|
||||
|
||||
@ -2006,7 +1990,7 @@ ROM1 & ROM2 are both ST 27c4000D
|
||||
*/
|
||||
|
||||
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( "rom2", 0x080000, 0x080000, CRC(5d657055) SHA1(21baa81b80f28aec4a6be9eaf69709958bf2a129) )
|
||||
|
||||
@ -2032,7 +2016,7 @@ ROM_START( wivernwg )
|
||||
ROM_END
|
||||
|
||||
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( "rom2.bin", 0x080000, 0x080000, CRC(fd9b5911) SHA1(a01e8c6e5a9009024af385268ba3ba90e1ebec50) )
|
||||
|
||||
@ -2058,7 +2042,7 @@ ROM_START( wyvernwg )
|
||||
ROM_END
|
||||
|
||||
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( "rom2.rom", 0x080000, 0x080000, CRC(938049ec) SHA1(cc10944c99ceb388dd4aafc93377c40540861d14) )
|
||||
|
||||
@ -2130,7 +2114,7 @@ Notes:
|
||||
*/
|
||||
|
||||
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 */
|
||||
ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(04d22da6) SHA1(1c5be430000a31f21204fb756fadf2523a546b8b) )
|
||||
|
||||
@ -2155,7 +2139,7 @@ ROM_START( misncrft ) /* Version 2.7 */
|
||||
ROM_END
|
||||
|
||||
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 */
|
||||
ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(059ae8c1) SHA1(2c72fcf560166cb17cd8ad665beae302832d551c) ) // sldh
|
||||
|
||||
@ -2254,7 +2238,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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_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_REGION32_BE( 0x100000, "user1", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
|
||||
ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */
|
||||
/* rom0 empty */
|
||||
ROM_LOAD( "rom1", 0x080000, 0x080000, CRC(45815931) SHA1(80ba7a366994e40a1f520ea18fad82e6b068b279) )
|
||||
|
||||
@ -2431,7 +2415,7 @@ ROMs:
|
||||
*/
|
||||
|
||||
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 */
|
||||
ROM_LOAD( "2-semicom.rom1", 0x080000, 0x080000, CRC(d3da29ca) SHA1(b843c650096a1c6d50f99e354ec0c93eb4406c5b) ) /* SEMICOM-003b PCB */
|
||||
|
||||
@ -2451,7 +2435,7 @@ ROM_START( mrkickera )
|
||||
ROM_END
|
||||
|
||||
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 */
|
||||
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_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( "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( "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) )
|
||||
|
||||
/* $00000-$20000 stays the same in all sound banks, */
|
||||
@ -2547,7 +2531,7 @@ Taff System, 2001
|
||||
*/
|
||||
|
||||
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 */
|
||||
/* rom3 empty */
|
||||
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
|
||||
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);
|
||||
|
||||
save_item(NAME(m_qs1000_data));
|
||||
}
|
||||
|
||||
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");
|
||||
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_which));
|
||||
}
|
||||
@ -3065,7 +3046,7 @@ DRIVER_INIT_MEMBER(vamphalf_state,yorijori)
|
||||
m_semicom_prot_data[0] = 2;
|
||||
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?
|
||||
// romx[BYTE4_XOR_BE(0x8ff0)] = 3;
|
||||
// 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
|
||||
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);
|
||||
|
||||
save_item(NAME(m_qs1000_data));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(vamphalf_state,finalgdr)
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
#include "cpu/e132xs/e132xs.h"
|
||||
#include "machine/at28c16.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "sound/qs1000.h"
|
||||
#include "speaker.h"
|
||||
|
||||
@ -27,10 +26,8 @@ class vegaeo_state : public eolith_state
|
||||
{
|
||||
public:
|
||||
vegaeo_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: eolith_state(mconfig, type, tag),
|
||||
m_soundlatch(*this, "soundlatch") { }
|
||||
: eolith_state(mconfig, type, tag) { }
|
||||
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
std::unique_ptr<uint32_t[]> m_vega_vram;
|
||||
uint8_t m_vega_vbuffer;
|
||||
@ -39,8 +36,6 @@ public:
|
||||
DECLARE_READ32_MEMBER(vega_vram_r);
|
||||
DECLARE_WRITE32_MEMBER(vega_misc_w);
|
||||
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_p2_w);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
|
||||
@ -53,11 +48,6 @@ public:
|
||||
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 )
|
||||
{
|
||||
}
|
||||
@ -75,7 +65,7 @@ WRITE8_MEMBER( vegaeo_state::qs1000_p3_w )
|
||||
membank("qs1000:bank")->set_entry(data & 0x07);
|
||||
|
||||
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)
|
||||
@ -127,14 +117,6 @@ READ32_MEMBER(vegaeo_state::vegaeo_custom_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)
|
||||
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(0xfc200000, 0xfc2003ff) AM_DEVREADWRITE16("palette", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette")
|
||||
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(0xfcc00000, 0xfcc00003) AM_READ(vegaeo_custom_read)
|
||||
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)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -245,10 +227,12 @@ MACHINE_CONFIG_START(vegaeo_state::vega)
|
||||
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_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_P2_CB(WRITE8(vegaeo_state, qs1000_p2_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_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( "01", 0x0000002, 0x200000, CRC(59308556) SHA1(bc8c28531fca009be5b7b3b1a4a9b3ebcc9d3c3a) )
|
||||
ROM_LOAD32_WORD_SWAP( "02", 0x0400000, 0x200000, CRC(34813167) SHA1(d04c71164b36af78425dcd637e60aee45c39a1ba) )
|
||||
|
@ -2,6 +2,7 @@
|
||||
// copyright-holders:Tomasz Slanina,Pierpaolo Prazzoli
|
||||
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/qs1000.h"
|
||||
#include "screen.h"
|
||||
@ -10,36 +11,34 @@ class eolith_state : public driver_device
|
||||
{
|
||||
public:
|
||||
eolith_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_eepromoutport(*this, "EEPROMOUT"),
|
||||
m_qs1000(*this, "qs1000"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_in0(*this, "IN0"),
|
||||
m_penx1port(*this, "PEN_X_P1"),
|
||||
m_peny1port(*this, "PEN_Y_P1"),
|
||||
m_penx2port(*this, "PEN_X_P2"),
|
||||
m_peny2port(*this, "PEN_Y_P2"),
|
||||
m_sndbank(*this, "sound_bank")
|
||||
{ }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_eepromoutport(*this, "EEPROMOUT")
|
||||
, m_qs1000(*this, "qs1000")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_soundcpu(*this, "soundcpu")
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_in0(*this, "IN0")
|
||||
, m_penx1port(*this, "PEN_X_P1")
|
||||
, m_peny1port(*this, "PEN_Y_P1")
|
||||
, m_penx2port(*this, "PEN_X_P2")
|
||||
, m_peny2port(*this, "PEN_Y_P2")
|
||||
, m_sndbank(*this, "sound_bank")
|
||||
{ }
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank);
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank);
|
||||
|
||||
DECLARE_READ32_MEMBER(eolith_custom_r);
|
||||
DECLARE_WRITE32_MEMBER(systemcontrol_w);
|
||||
DECLARE_WRITE32_MEMBER(sound_w);
|
||||
DECLARE_READ32_MEMBER(hidctch3_pen1_r);
|
||||
DECLARE_READ32_MEMBER(hidctch3_pen2_r);
|
||||
DECLARE_WRITE32_MEMBER(eolith_vram_w);
|
||||
DECLARE_READ32_MEMBER(eolith_vram_r);
|
||||
DECLARE_READ8_MEMBER(sound_cmd_r);
|
||||
DECLARE_WRITE8_MEMBER(sound_p1_w);
|
||||
DECLARE_READ8_MEMBER(qs1000_p1_r);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p1_w);
|
||||
DECLARE_WRITE8_MEMBER(soundcpu_to_qs1000);
|
||||
|
||||
DECLARE_DRIVER_INIT(eolith);
|
||||
DECLARE_DRIVER_INIT(landbrk);
|
||||
@ -76,6 +75,7 @@ private:
|
||||
optional_device<i8032_device> m_soundcpu;
|
||||
required_device<screen_device> m_screen;
|
||||
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_penx1port;
|
||||
|
Loading…
Reference in New Issue
Block a user