mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
qs1000.cpp : Convert set_irq into WRITE_LINE_MEMBER (#3306)
* qs1000.cpp : Convert set_irq into WRITE_LINE_MEMBER eolith.cpp, eolith16.cpp, vegaeo.cpp : Cleanup vram handler/drawing pixel eolith.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp : Modernize soundlatches eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp : Minor cleanup, Add object finders instead runtime tag lookup, Replace user* -> saner ROM areas limenko.cpp : Minor cleanup of sprite drawing eolith.cpp : Add machine_config instead driver_init for hidctch3 * vamphalf : Fix compile
This commit is contained in:
parent
03a3ddd755
commit
d6af286bb3
@ -275,7 +275,7 @@ void qs1000_device::serial_in(uint8_t 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);
|
||||
|
@ -69,7 +69,7 @@ public:
|
||||
|
||||
// external
|
||||
void serial_in(uint8_t data);
|
||||
void set_irq(int state);
|
||||
DECLARE_WRITE_LINE_MEMBER( set_irq );
|
||||
|
||||
DECLARE_WRITE8_MEMBER( wave_w );
|
||||
|
||||
|
@ -106,6 +106,7 @@
|
||||
#include "cpu/e132xs/e132xs.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "machine/eepromser.h"
|
||||
#include "machine/gen_latch.h"
|
||||
|
||||
#include "speaker.h"
|
||||
|
||||
@ -142,33 +143,16 @@ WRITE32_MEMBER(eolith_state::systemcontrol_w)
|
||||
// bit 0x100 and 0x040 ?
|
||||
}
|
||||
|
||||
READ32_MEMBER(eolith_state::hidctch3_pen1_r)
|
||||
template<int Player>
|
||||
READ32_MEMBER(eolith_state::hidctch3_pen_r)
|
||||
{
|
||||
//320 x 240
|
||||
int xpos = m_penx1port->read();
|
||||
int ypos = m_peny1port->read();
|
||||
int xpos = m_penxport[Player]->read();
|
||||
int ypos = m_penyport[Player]->read();
|
||||
|
||||
return xpos + (ypos*168*2);
|
||||
}
|
||||
|
||||
READ32_MEMBER(eolith_state::hidctch3_pen2_r)
|
||||
{
|
||||
//320 x 240
|
||||
int xpos = m_penx2port->read();
|
||||
int ypos = m_peny2port->read();
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -176,12 +160,6 @@ WRITE32_MEMBER( eolith_state::sound_w )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
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)
|
||||
@ -242,16 +220,24 @@ WRITE8_MEMBER(eolith_state::soundcpu_to_qs1000)
|
||||
ADDRESS_MAP_START(eolith_state::eolith_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here
|
||||
AM_RANGE(0x40000000, 0x401fffff) AM_RAM
|
||||
AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w)
|
||||
AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE16(eolith_vram_r, eolith_vram_w, 0xffffffff)
|
||||
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
|
||||
|
||||
ADDRESS_MAP_START(eolith_state::hidctch3_map)
|
||||
AM_IMPORT_FROM(eolith_map)
|
||||
AM_RANGE(0xfc200000, 0xfc200003) AM_WRITENOP // this generates pens vibration
|
||||
// It is not clear why the first reads are needed too
|
||||
AM_RANGE(0xfce00000, 0xfce00003) AM_MIRROR(0x00080000) AM_READ(hidctch3_pen_r<0>)
|
||||
AM_RANGE(0xfcf00000, 0xfcf00003) AM_MIRROR(0x00080000) AM_READ(hidctch3_pen_r<1>)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -265,7 +251,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
|
||||
|
||||
|
||||
@ -581,6 +567,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))
|
||||
@ -601,6 +590,12 @@ MACHINE_CONFIG_START(eolith_state::ironfort)
|
||||
MCFG_CPU_CLOCK(44900000) /* Normally 45MHz??? but PCB actually had a 44.9MHz OSC, so it's value is used */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(eolith_state::hidctch3)
|
||||
eolith50(config);
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(hidctch3_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -667,7 +662,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 +689,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 +715,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 +741,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 +811,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 +884,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 +921,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 +958,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 +1055,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 +1084,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 +1121,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 +1150,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 +1180,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 +1217,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 +1255,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 +1293,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 +1330,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 +1367,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 +1397,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 +1483,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 +1526,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)
|
||||
@ -1589,21 +1582,6 @@ DRIVER_INIT_MEMBER(eolith_state,hidnc2k)
|
||||
DRIVER_INIT_CALL(eolith);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(eolith_state,hidctch3)
|
||||
{
|
||||
m_maincpu->space(AS_PROGRAM).nop_write(0xfc200000, 0xfc200003); // this generates pens vibration
|
||||
|
||||
// It is not clear why the first reads are needed too
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xfce00000, 0xfce00003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xfce80000, 0xfce80003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),this));
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xfcf00000, 0xfcf00003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),this));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0xfcf80000, 0xfcf80003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),this));
|
||||
|
||||
DRIVER_INIT_CALL(eolith);
|
||||
}
|
||||
|
||||
/* Eolith Speedup Handling */
|
||||
|
||||
/*
|
||||
@ -1755,6 +1733,6 @@ GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, RO
|
||||
GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // alt title of Ribbon
|
||||
GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2000, hidctch3, 0, hidctch3, hidctch3, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (World) (ver 1.01 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Language selection is greyed out in Service Mode
|
||||
GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (Korea) (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ^^
|
||||
|
@ -25,15 +25,20 @@ class eolith16_state : public eolith_state
|
||||
{
|
||||
public:
|
||||
eolith16_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: eolith_state(mconfig, type, tag) { }
|
||||
: eolith_state(mconfig, type, tag)
|
||||
, m_special_io(*this, "SPECIAL")
|
||||
{
|
||||
}
|
||||
|
||||
required_ioport m_special_io;
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_vram;
|
||||
std::unique_ptr<uint8_t[]> m_vram;
|
||||
int m_vbuffer;
|
||||
|
||||
DECLARE_WRITE16_MEMBER(eeprom_w);
|
||||
DECLARE_READ16_MEMBER(eolith16_custom_r);
|
||||
DECLARE_WRITE16_MEMBER(vram_w);
|
||||
DECLARE_READ16_MEMBER(vram_r);
|
||||
DECLARE_WRITE8_MEMBER(vram_w);
|
||||
DECLARE_READ8_MEMBER(vram_r);
|
||||
|
||||
DECLARE_DRIVER_INIT(eolith16);
|
||||
DECLARE_VIDEO_START(eolith16);
|
||||
@ -59,33 +64,31 @@ WRITE16_MEMBER(eolith16_state::eeprom_w)
|
||||
READ16_MEMBER(eolith16_state::eolith16_custom_r)
|
||||
{
|
||||
speedup_read();
|
||||
return ioport("SPECIAL")->read();
|
||||
return m_special_io->read();
|
||||
}
|
||||
|
||||
|
||||
|
||||
WRITE16_MEMBER(eolith16_state::vram_w)
|
||||
WRITE8_MEMBER(eolith16_state::vram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_vram[offset + (0x10000/2) * m_vbuffer]);
|
||||
COMBINE_DATA(&m_vram[offset + 0x10000 * m_vbuffer]);
|
||||
}
|
||||
|
||||
READ16_MEMBER(eolith16_state::vram_r)
|
||||
READ8_MEMBER(eolith16_state::vram_r)
|
||||
{
|
||||
return m_vram[offset + (0x10000/2) * m_vbuffer];
|
||||
return m_vram[offset + 0x10000 * m_vbuffer];
|
||||
}
|
||||
|
||||
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(0x50000000, 0x5000ffff) AM_READWRITE8(vram_r, vram_w, 0xffff)
|
||||
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 )
|
||||
@ -120,28 +123,18 @@ INPUT_PORTS_END
|
||||
|
||||
VIDEO_START_MEMBER(eolith16_state,eolith16)
|
||||
{
|
||||
m_vram = std::make_unique<uint16_t[]>(0x10000);
|
||||
save_pointer(NAME(m_vram.get()), 0x10000);
|
||||
m_vram = std::make_unique<uint8_t[]>(0x10000*2);
|
||||
save_pointer(NAME(m_vram.get()), 0x10000*2);
|
||||
save_item(NAME(m_vbuffer));
|
||||
}
|
||||
|
||||
uint32_t eolith16_state::screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int x,y,count;
|
||||
int color;
|
||||
|
||||
count = 0;
|
||||
for (y=0;y < 204;y++)
|
||||
for (int y = 0; y < 204; y++)
|
||||
{
|
||||
for (x=0;x < 320/2;x++)
|
||||
for (int x = 0; x < 320; x++)
|
||||
{
|
||||
color = m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff;
|
||||
bitmap.pix16(y, x*2 + 0) = color;
|
||||
|
||||
color = (m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff00) >> 8;
|
||||
bitmap.pix16(y, x*2 + 1) = color;
|
||||
|
||||
count++;
|
||||
bitmap.pix16(y, x) = m_vram[0x10000 * (m_vbuffer ^ 1) + (y * 320) + x] & 0xff;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -173,7 +166,6 @@ PALETTE_INIT_MEMBER(eolith16_state,eolith16)
|
||||
}
|
||||
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(eolith16_state::eolith16)
|
||||
MCFG_CPU_ADD("maincpu", E116T, 60000000) /* no internal multiplier */
|
||||
MCFG_CPU_PROGRAM_MAP(eolith16_map)
|
||||
@ -251,10 +243,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,36 +88,34 @@ 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_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;
|
||||
required_device<i2cmem_device> m_i2cmem;
|
||||
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 +162,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 +179,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 +424,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 +432,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 +587,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 +637,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 +713,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 +726,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 +740,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,24 +38,24 @@ 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_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_videoreg(*this, "videoreg")
|
||||
, m_gfx_region(*this, "gfx")
|
||||
{
|
||||
}
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
optional_device<qs1000_device> m_qs1000;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
@ -65,8 +65,8 @@ public:
|
||||
required_shared_ptr<uint32_t> m_md_videoram;
|
||||
required_shared_ptr<uint32_t> m_bg_videoram;
|
||||
required_shared_ptr<uint32_t> m_spriteram;
|
||||
required_shared_ptr<uint32_t> m_spriteram2;
|
||||
required_shared_ptr<uint32_t> m_videoreg;
|
||||
required_region_ptr<uint8_t> m_gfx_region;
|
||||
|
||||
tilemap_t *m_bg_tilemap;
|
||||
tilemap_t *m_md_tilemap;
|
||||
@ -82,8 +82,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 +90,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);
|
||||
@ -112,7 +109,7 @@ public:
|
||||
virtual void video_start() override;
|
||||
uint32_t screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,uint32_t code,uint32_t color,int flipx,int flipy,int sx,int sy,int priority);
|
||||
void draw_sprites(uint32_t *sprites, const rectangle &cliprect, int count);
|
||||
void draw_sprites(const rectangle &cliprect);
|
||||
void copy_sprites(bitmap_ind16 &bitmap, bitmap_ind16 &sprites_bitmap, bitmap_ind8 &priority_bitmap, const rectangle &cliprect);
|
||||
void limenko(machine_config &config);
|
||||
void spotty(machine_config &config);
|
||||
@ -132,7 +129,6 @@ WRITE32_MEMBER(limenko_state::limenko_coincounter_w)
|
||||
}
|
||||
|
||||
|
||||
|
||||
WRITE32_MEMBER(limenko_state::bg_videoram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_bg_videoram[offset]);
|
||||
@ -166,16 +162,8 @@ WRITE32_MEMBER(limenko_state::spriteram_buffer_w)
|
||||
// toggle spriterams location in the memory map
|
||||
m_spriteram_bit ^= 1;
|
||||
|
||||
if(m_spriteram_bit)
|
||||
{
|
||||
// draw the sprites to the frame buffer
|
||||
draw_sprites(m_spriteram2,clip,m_prev_sprites_count);
|
||||
}
|
||||
else
|
||||
{
|
||||
// draw the sprites to the frame buffer
|
||||
draw_sprites(m_spriteram,clip,m_prev_sprites_count);
|
||||
}
|
||||
// draw the sprites to the frame buffer
|
||||
draw_sprites(clip);
|
||||
|
||||
// buffer the next number of sprites to draw
|
||||
m_prev_sprites_count = (m_videoreg[0] & 0x1ff0000) >> 16;
|
||||
@ -185,24 +173,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 +191,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,17 +200,16 @@ 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")
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_SHARE("spriteram2")
|
||||
AM_RANGE(0x80018000, 0x80019fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
|
||||
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 +218,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
|
||||
|
||||
|
||||
@ -261,13 +230,12 @@ ADDRESS_MAP_START(limenko_state::spotty_map)
|
||||
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")
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_SHARE("spriteram2")
|
||||
AM_RANGE(0x80018000, 0x80019fff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
|
||||
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 +244,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)
|
||||
@ -423,16 +391,15 @@ void limenko_state::draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &c
|
||||
}
|
||||
|
||||
// sprites aren't tile based (except for 8x8 ones)
|
||||
void limenko_state::draw_sprites(uint32_t *sprites, const rectangle &cliprect, int count)
|
||||
void limenko_state::draw_sprites(const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
|
||||
uint8_t *base_gfx = memregion("gfx1")->base();
|
||||
uint8_t *gfx_max = base_gfx + memregion("gfx1")->bytes();
|
||||
uint32_t *sprites = m_spriteram + (0x200*2 * m_spriteram_bit);
|
||||
uint8_t *gfx_max = m_gfx_region + m_gfx_region.bytes();
|
||||
|
||||
uint8_t *gfxdata;
|
||||
|
||||
for(i = 0; i <= count*2; i += 2)
|
||||
for(i = 0; i <= m_prev_sprites_count*2; i += 2)
|
||||
{
|
||||
int x, width, flipx, y, height, flipy, code, color, pri;
|
||||
|
||||
@ -458,7 +425,7 @@ void limenko_state::draw_sprites(uint32_t *sprites, const rectangle &cliprect, i
|
||||
pri = 2;
|
||||
}
|
||||
|
||||
gfxdata = base_gfx + 64 * code;
|
||||
gfxdata = m_gfx_region + 64 * code;
|
||||
|
||||
/* Bounds checking */
|
||||
if ( (gfxdata + width * height - 1) >= gfx_max )
|
||||
@ -715,14 +682,14 @@ static const gfx_layout tile_layout =
|
||||
8,8,
|
||||
RGN_FRAC(1,1),
|
||||
8,
|
||||
{ 0,1,2,3,4,5,6,7 },
|
||||
{ 0,8,16,24,32,40,48,56 },
|
||||
{ 64*0,64*1,64*2,64*3,64*4,64*5,64*6,64*7 },
|
||||
64*8,
|
||||
{ STEP8(0,1) },
|
||||
{ STEP8(0,8) },
|
||||
{ STEP8(0,8*8) },
|
||||
8*8*8,
|
||||
};
|
||||
|
||||
static GFXDECODE_START( limenko )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tile_layout, 0, 16 ) /* tiles */
|
||||
GFXDECODE_ENTRY( "gfx", 0, tile_layout, 0, 16 ) /* tiles */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -756,10 +723,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,17 +811,17 @@ 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 */
|
||||
ROM_LOAD( "rom.u16", 0x00000, 0x20000, CRC(f66d7e4d) SHA1(44f1851405ba525f1ed53521f4de12545ea9c46a) )
|
||||
ROM_FILL( 0x20000, 0x60000, 0xff)
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_BYTE( "rom.u1", 0x000000, 0x200000, CRC(bf33eff6) SHA1(089b6d88d6d744bcfa036c6869f0444d6ceb26c9) )
|
||||
ROM_LOAD32_BYTE( "rom.u2", 0x000001, 0x200000, CRC(790bbcd5) SHA1(fc52c15fffc77dc3b3bc89a9606223c4fbaa578c) )
|
||||
ROM_LOAD32_BYTE( "rom.u3", 0x000002, 0x200000, CRC(ec094b12) SHA1(13c105df066ff308cc7e1842907644790946e5b5) )
|
||||
@ -867,17 +836,17 @@ 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 */
|
||||
ROM_LOAD( "07.u16", 0x00000, 0x20000, CRC(78acc607) SHA1(30a1aed40d45233dce88c6114989c71aa0f99ff7) )
|
||||
ROM_FILL( 0x20000, 0x60000, 0xff)
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_BYTE( "01.u1", 0x000000, 0x200000, CRC(d2c7091a) SHA1(deff050eb0aee89f60d5ad13053e4f1bd4d35961) )
|
||||
ROM_LOAD32_BYTE( "02.u2", 0x000001, 0x200000, CRC(a0734195) SHA1(8947f351434e2f750c4bdf936238815baaeb8402) )
|
||||
ROM_LOAD32_BYTE( "03.u3", 0x000002, 0x200000, CRC(0f020280) SHA1(2c10baec8dbb201ee5e1c4c9d6b962e2ed02df7d) )
|
||||
@ -892,17 +861,17 @@ 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 */
|
||||
ROM_LOAD( "07.u16", 0x00000, 0x20000, CRC(78acc607) SHA1(30a1aed40d45233dce88c6114989c71aa0f99ff7) )
|
||||
ROM_FILL( 0x20000, 0x60000, 0xff)
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_BYTE( "01.u1", 0x000000, 0x200000, CRC(d2c7091a) SHA1(deff050eb0aee89f60d5ad13053e4f1bd4d35961) )
|
||||
ROM_LOAD32_BYTE( "02.u2", 0x000001, 0x200000, CRC(a0734195) SHA1(8947f351434e2f750c4bdf936238815baaeb8402) )
|
||||
ROM_LOAD32_BYTE( "03.u3", 0x000002, 0x200000, CRC(0f020280) SHA1(2c10baec8dbb201ee5e1c4c9d6b962e2ed02df7d) )
|
||||
@ -989,19 +958,19 @@ 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 */
|
||||
/* sys_rom7 empty */
|
||||
|
||||
ROM_REGION( 0x1200000, "gfx1", 0 )
|
||||
ROM_REGION( 0x1200000, "gfx", 0 )
|
||||
ROM_LOAD32_BYTE( "cg_rom10", 0x0000000, 0x200000, CRC(93a48489) SHA1(a14157d31b4e9c8eb7ebe1b2f1b707ec8c8561a0) )
|
||||
ROM_LOAD32_BYTE( "cg_rom20", 0x0000001, 0x200000, CRC(1a6c0258) SHA1(ac7c3b8c2fdfb542103032144a30293d44759fd1) )
|
||||
ROM_LOAD32_BYTE( "cg_rom30", 0x0000002, 0x200000, CRC(a0559ef4) SHA1(6622f7107b374c9da816b9814fe93347e7422190) )
|
||||
@ -1051,7 +1020,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) )
|
||||
|
||||
@ -1059,9 +1028,9 @@ ROM_START( spotty )
|
||||
ROM_LOAD( "at89c4051.mcu", 0x000000, 0x01000, CRC(82ceab26) SHA1(9bbc454bdcbc70dc01f10a13c9fc01c884918fe8) )
|
||||
|
||||
/* Expand the gfx roms here */
|
||||
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASE00 )
|
||||
ROM_REGION( 0x200000, "gfx", 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 */
|
||||
@ -1145,8 +1114,8 @@ 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 *dst = memregion("gfx")->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,28 @@ 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_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_photosensors(*this, "PHOTO_SENSORS")
|
||||
{
|
||||
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;
|
||||
@ -104,6 +107,8 @@ public:
|
||||
optional_memory_region_array<2> m_okiregion;
|
||||
optional_memory_bank m_okibank;
|
||||
|
||||
optional_ioport m_photosensors;
|
||||
|
||||
// driver init configuration
|
||||
int m_flip_bit;
|
||||
int m_palshift;
|
||||
@ -115,7 +120,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 +174,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 +434,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 +447,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 +481,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 +518,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,7 +586,7 @@ 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)
|
||||
@ -849,7 +830,7 @@ uint32_t vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &
|
||||
CUSTOM_INPUT_MEMBER(vamphalf_state::boonggab_photo_sensors_r)
|
||||
{
|
||||
static const uint16_t photo_sensors_table[8] = { 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 };
|
||||
uint8_t res = ioport("PHOTO_SENSORS")->read();
|
||||
uint8_t res = m_photosensors->read();
|
||||
|
||||
switch(res)
|
||||
{
|
||||
@ -1025,14 +1006,14 @@ static const gfx_layout sprites_layout =
|
||||
16,16,
|
||||
RGN_FRAC(1,1),
|
||||
8,
|
||||
{ 0,1,2,3,4,5,6,7 },
|
||||
{ 0,8,16,24, 32,40,48,56, 64,72,80,88 ,96,104,112,120 },
|
||||
{ 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128, 8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 },
|
||||
16*128,
|
||||
{ STEP8(0,1) },
|
||||
{ STEP16(0,8) },
|
||||
{ STEP16(0,8*16) },
|
||||
16*16*8,
|
||||
};
|
||||
|
||||
static GFXDECODE_START( vamphalf )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, sprites_layout, 0, 0x80 )
|
||||
GFXDECODE_ENTRY( "gfx", 0, sprites_layout, 0, 0x80 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
@ -1094,10 +1075,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)
|
||||
@ -1332,11 +1317,11 @@ 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 */
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "eur.roml00", 0x000000, 0x200000, CRC(bdee9a46) SHA1(7e240b07377201afbe0cd0911ccee4ad52a74079) )
|
||||
ROM_LOAD32_WORD( "eur.romu00", 0x000002, 0x200000, CRC(fa79e8ea) SHA1(feaba99f0a863bc5d27ad91d206168684976b4c2) )
|
||||
ROM_LOAD32_WORD( "eur.roml01", 0x400000, 0x200000, CRC(a7995b06) SHA1(8b789b6a00bc177c3329ee4a31722fc65376b975) )
|
||||
@ -1347,11 +1332,11 @@ 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 */
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "elc.roml01", 0x000000, 0x400000, CRC(19df4056) SHA1(8b05769d8e245f8b25bf92013b98c9d7e5ab4548) ) /* only 2 roms, though twice as big as other sets */
|
||||
ROM_LOAD32_WORD( "evi.romu01", 0x000002, 0x400000, CRC(f9803923) SHA1(adc1d4fa2c6283bc24829f924b58fbd9d1bacdd2) )
|
||||
|
||||
@ -1361,11 +1346,11 @@ 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 */
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(cc075484) SHA1(6496d94740457cbfdac3d918dce2e52957341616) )
|
||||
ROM_LOAD32_WORD( "romu00", 0x000002, 0x200000, CRC(711c8e20) SHA1(1ef7f500d6f5790f5ae4a8b58f96ee9343ef8d92) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(626c9925) SHA1(c90c72372d145165a8d3588def12e15544c6223b) )
|
||||
@ -1420,11 +1405,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "suplup-roml00.bin", 0x000000, 0x200000, CRC(7848e183) SHA1(1db8f0ea8f73f42824423d382b37b4d75fa3e54c) )
|
||||
ROM_LOAD32_WORD( "suplup-romu00.bin", 0x000002, 0x200000, CRC(13e3ab7f) SHA1(d5b6b15ca5aef2e2788d2b81e0418062f42bf2f2) )
|
||||
ROM_LOAD32_WORD( "suplup-roml01.bin", 0x400000, 0x200000, CRC(15769f55) SHA1(2c13e8da2682ccc7878218aaebe3c3c67d163fd2) )
|
||||
@ -1438,11 +1423,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) )
|
||||
ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) )
|
||||
ROM_LOAD32_WORD( "luplup30-roml01", 0x400000, 0x200000, CRC(40e85f94) SHA1(531e67eb4eedf47b0dded52ba2f4942b12cbbe2f) ) /* This one changed between v2.9 & v3.0 */
|
||||
@ -1457,11 +1442,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) )
|
||||
ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) )
|
||||
ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) )
|
||||
@ -1473,11 +1458,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) )
|
||||
ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) )
|
||||
ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) )
|
||||
@ -1489,11 +1474,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "luplup-roml00", 0x000000, 0x200000, CRC(08b2aa75) SHA1(7577b3ab79c54980307a83186dd1500f044c1bc8) )
|
||||
ROM_LOAD32_WORD( "luplup-romu00", 0x000002, 0x200000, CRC(b57f4ca5) SHA1(b968c44a0ceb3274e066fa1d057fb6b017bb3fd3) )
|
||||
ROM_LOAD32_WORD( "luplup-roml01", 0x400000, 0x200000, CRC(41c7ca8c) SHA1(55704f9d54f31bbaa044cd9d10ac2d9cb5e8fb70) )
|
||||
@ -1560,11 +1545,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00.bin", 0x000000, 0x200000, CRC(4b99190a) SHA1(30af068f7d9f9f349db5696c19ab53ac33304271) )
|
||||
ROM_LOAD32_WORD( "romu00.bin", 0x000002, 0x200000, CRC(e93762f8) SHA1(cc589b59e3ab7aa7092e96a1ff8a9de8a499b257) )
|
||||
ROM_LOAD32_WORD( "roml01.bin", 0x400000, 0x200000, CRC(6796a104) SHA1(3f7352cd37f78c1b01f7df45344ee7800db110f9) )
|
||||
@ -1575,11 +1560,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00.bin", 0x000000, 0x200000, CRC(9efb0673) SHA1(3aeae96e591a415c27942dce90fc64c11287097d) )
|
||||
ROM_LOAD32_WORD( "romu00.bin", 0x000002, 0x200000, CRC(fe1d6a02) SHA1(4d451cfc6457f56a98bcec7998713757dbefa2b5) )
|
||||
ROM_LOAD32_WORD( "roml01.bin", 0x400000, 0x200000, CRC(05e81ca0) SHA1(22c6b78e3a0f27195142221bd179a4ecac819684) )
|
||||
@ -1643,11 +1628,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00.bin", 0x000000, 0x200000, CRC(f6b161ea) SHA1(c417a4c877ffa2fdf5857ecc9c78ffc0c09dc516) )
|
||||
ROM_LOAD32_WORD( "romh00.bin", 0x000002, 0x200000, CRC(5477efed) SHA1(e4991ee1b41d512eaa508351b6a78261dfde5a3d) )
|
||||
|
||||
@ -1690,11 +1675,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x1000000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x1000000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(4b141f31) SHA1(cf4885789b0df67d00f9f3659c445248c4e72446) )
|
||||
ROM_LOAD32_WORD( "romu00", 0x000002, 0x200000, CRC(9b2fb12a) SHA1(8dce367c4c2cab6e84f586bd8dfea3ea0b6d7225) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(1e3a04bb) SHA1(9eb84b6a0172a8868f440065c30b4519e0c3fe33) )
|
||||
@ -1709,11 +1694,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x1000000, "gfx1", 0 ) /* 16x16x8 Sprites - not dumped from this set, using parent ROMs */
|
||||
ROM_REGION( 0x1000000, "gfx", 0 ) /* 16x16x8 Sprites - not dumped from this set, using parent ROMs */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(4b141f31) SHA1(cf4885789b0df67d00f9f3659c445248c4e72446) BAD_DUMP )
|
||||
ROM_LOAD32_WORD( "romu00", 0x000002, 0x200000, CRC(9b2fb12a) SHA1(8dce367c4c2cab6e84f586bd8dfea3ea0b6d7225) BAD_DUMP )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(1e3a04bb) SHA1(9eb84b6a0172a8868f440065c30b4519e0c3fe33) BAD_DUMP )
|
||||
@ -1781,11 +1766,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0xc00000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0xc00000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(de811dd7) SHA1(bf31e165440ed2e3cdddd2174521b15afd8b2e69) )
|
||||
ROM_LOAD32_WORD( "romu00", 0x000002, 0x200000, CRC(2bdbfc6b) SHA1(8e755574e3c9692bd8f82c7351fe3623a31ec136) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(f574a2a3) SHA1(c6a8aca75bd3a4e4109db5095f3a3edb9b1e6657) )
|
||||
@ -1853,11 +1838,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0xc00000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0xc00000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(7e2a7520) SHA1(0ff157fe34ff31cd8636af821fe14c12242d757f) )
|
||||
ROM_LOAD32_WORD( "romu00", 0x000002, 0x200000, CRC(c170755f) SHA1(019d24979071f0ab2b3c93a5ec9327e6a0b2afa2) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(3d487ffe) SHA1(c5608423d608922c0e1ac8bdfaa0de062b2c9821) )
|
||||
@ -1927,11 +1912,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0xc00000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0xc00000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "roml00.bin", 0x000000, 0x200000, CRC(06f5673d) SHA1(23769015fc9a37d36b0fe4924964650aeca77573) )
|
||||
ROM_LOAD32_WORD( "romu00.bin", 0x000002, 0x200000, CRC(8c3db0e4) SHA1(6101ec550ae165338333fb04e0762edee65ca253) )
|
||||
ROM_LOAD32_WORD( "roml01.bin", 0x400000, 0x200000, CRC(076a84e1) SHA1(f58cb4cd874e1f3f266a5ccbf8ffb5e0111034d3) )
|
||||
@ -2006,7 +1991,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) )
|
||||
|
||||
@ -2016,7 +2001,7 @@ ROM_START( wivernwg )
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x1000000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x1000000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(fb3541b6) SHA1(4f569ac7bde92c5febf005ab73f76552421ec223) ) /* MX 29F1610MC-16 flash roms with no labels */
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(516aca48) SHA1(42cf5678eb4c0ee7da2ab0bd66e4e34b2735c75a) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(1c764f95) SHA1(ba6ac1376e837b491bc0269f2a1d10577a3d40cb) )
|
||||
@ -2032,7 +2017,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) )
|
||||
|
||||
@ -2042,7 +2027,7 @@ ROM_START( wyvernwg )
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x1000000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x1000000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(fb3541b6) SHA1(4f569ac7bde92c5febf005ab73f76552421ec223) ) /* MX 29F1610MC-16 flash roms with no labels */
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(516aca48) SHA1(42cf5678eb4c0ee7da2ab0bd66e4e34b2735c75a) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(1c764f95) SHA1(ba6ac1376e837b491bc0269f2a1d10577a3d40cb) )
|
||||
@ -2058,7 +2043,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) )
|
||||
|
||||
@ -2068,7 +2053,7 @@ ROM_START( wyvernwga )
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x1000000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x1000000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(fb3541b6) SHA1(4f569ac7bde92c5febf005ab73f76552421ec223) ) /* MX 29F1610MC-16 flash roms with no labels */
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(516aca48) SHA1(42cf5678eb4c0ee7da2ab0bd66e4e34b2735c75a) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(1c764f95) SHA1(ba6ac1376e837b491bc0269f2a1d10577a3d40cb) )
|
||||
@ -2130,7 +2115,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) )
|
||||
|
||||
@ -2140,7 +2125,7 @@ ROM_START( misncrft ) /* Version 2.7 */
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(748c5ae5) SHA1(28005f655920e18c82eccf05c0c449dac16ee36e) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(f34ae697) SHA1(2282e3ef2d100f3eea0167b25b66b35a64ddb0f8) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(e37ece7b) SHA1(744361bb73905bc0184e6938be640d3eda4b758d) )
|
||||
@ -2155,7 +2140,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
|
||||
|
||||
@ -2165,7 +2150,7 @@ ROM_START( misncrfta ) /* Version 2.4 */
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(748c5ae5) SHA1(28005f655920e18c82eccf05c0c449dac16ee36e) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(f34ae697) SHA1(2282e3ef2d100f3eea0167b25b66b35a64ddb0f8) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(e37ece7b) SHA1(744361bb73905bc0184e6938be640d3eda4b758d) )
|
||||
@ -2254,7 +2239,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 */
|
||||
@ -2263,7 +2248,7 @@ ROM_START( yorijori )
|
||||
ROM_RELOAD( 0x40000, 0x20000 )
|
||||
ROM_RELOAD( 0x60000, 0x20000 )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 )
|
||||
ROM_REGION( 0x800000, "gfx", 0 )
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(9299ce36) SHA1(cd8a9e2619da93e2015704230e8189a6ae52de69) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(16584ff2) SHA1(69dce8c33b246b4327b330233116c1b72a8b7e84) )
|
||||
ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(b5d1892f) SHA1(20afcd00a506ec0fd1c4fffb2d9c853c8dc61e2e) )
|
||||
@ -2323,11 +2308,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(8334459d) SHA1(70ad560dada8aa8ce192e5307bd805744b82fcfe) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(f28578a5) SHA1(a5c7b17aff101f1f4f52657d0567a6c9d12a178d) )
|
||||
/* roml01 empty */
|
||||
@ -2431,11 +2416,11 @@ 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 */
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(c677aac3) SHA1(356073a29260e8e6c29dd12b2113b30140c6108c) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(b6337d4a) SHA1(2f46e2933af7fd0f71083900d5e6e4f602ab4c66) )
|
||||
/* roml01 empty */
|
||||
@ -2451,11 +2436,11 @@ 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 */
|
||||
|
||||
ROM_REGION( 0x800000, "gfx1", 0 ) /* gfx data */
|
||||
ROM_REGION( 0x800000, "gfx", 0 ) /* gfx data */
|
||||
ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(c677aac3) SHA1(356073a29260e8e6c29dd12b2113b30140c6108c) )
|
||||
ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(b6337d4a) SHA1(2f46e2933af7fd0f71083900d5e6e4f602ab4c66) )
|
||||
/* roml01 empty */
|
||||
@ -2516,11 +2501,11 @@ 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) )
|
||||
|
||||
ROM_REGION( 0x4000000, "gfx1", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x4000000, "gfx", 0 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "g05", 0x0000002, 0x800000, CRC(64c8f493) SHA1(d487a74c813abbd0a612f8346eed8a7c3ff3e84e) )
|
||||
ROM_LOAD32_WORD( "g09", 0x0000000, 0x800000, CRC(c359febb) SHA1(7955385748e24dd076bc4f954b193a53c0a729c5) )
|
||||
ROM_LOAD32_WORD( "g06", 0x1000002, 0x800000, CRC(ffbc9fe5) SHA1(5e0e5cfdf6af23db0733c9fedee9c5f9ccde1109) )
|
||||
@ -2547,13 +2532,13 @@ 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) )
|
||||
ROM_LOAD( "1.rom1", 0x00000, 0x80000, CRC(50522da1) SHA1(28f92fc818513d7a4934b9f8e5d39243d720cc80) )
|
||||
|
||||
ROM_REGION( 0x2000000, "gfx1", ROMREGION_ERASE00 ) /* 16x16x8 Sprites */
|
||||
ROM_REGION( 0x2000000, "gfx", ROMREGION_ERASE00 ) /* 16x16x8 Sprites */
|
||||
ROM_LOAD32_WORD( "boong-ga.roml00", 0x0000000, 0x200000, CRC(18be5f92) SHA1(abccc578e5e9652a7829165b485776671938b9d9) )
|
||||
ROM_LOAD32_WORD( "boong-ga.romu00", 0x0000002, 0x200000, CRC(0158ba9e) SHA1(b6cb699f0779b26d578043c42a0ce14a59fd8ac5) )
|
||||
ROM_LOAD32_WORD( "boong-ga.roml05", 0x0400000, 0x200000, CRC(76d60553) SHA1(13a47aed2e7213be98e55a938887a3c2fb314fbe) )
|
||||
@ -2971,8 +2956,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 +3032,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 +3047,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 +3055,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)
|
||||
|
@ -27,20 +27,22 @@ 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)
|
||||
, m_soundlatch(*this, "soundlatch")
|
||||
, m_system_io(*this, "SYSTEM")
|
||||
{
|
||||
}
|
||||
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
required_ioport m_system_io;
|
||||
|
||||
std::unique_ptr<uint32_t[]> m_vega_vram;
|
||||
uint8_t m_vega_vbuffer;
|
||||
std::unique_ptr<uint8_t[]> m_vram;
|
||||
int m_vbuffer;
|
||||
|
||||
DECLARE_WRITE32_MEMBER(vega_vram_w);
|
||||
DECLARE_READ32_MEMBER(vega_vram_r);
|
||||
DECLARE_WRITE8_MEMBER(vram_w);
|
||||
DECLARE_READ8_MEMBER(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 +55,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,78 +72,47 @@ 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)
|
||||
WRITE8_MEMBER(vegaeo_state::vram_w)
|
||||
{
|
||||
switch(mem_mask)
|
||||
{
|
||||
case 0xffffffff:
|
||||
vega_vram_w(space,offset,data,0xff000000);
|
||||
vega_vram_w(space,offset,data,0x00ff0000);
|
||||
vega_vram_w(space,offset,data,0x0000ff00);
|
||||
vega_vram_w(space,offset,data,0x000000ff);
|
||||
return;
|
||||
|
||||
case 0xffff0000:
|
||||
vega_vram_w(space,offset,data,0xff000000);
|
||||
vega_vram_w(space,offset,data,0x00ff0000);
|
||||
return;
|
||||
|
||||
case 0x0000ffff:
|
||||
vega_vram_w(space,offset,data,0x0000ff00);
|
||||
vega_vram_w(space,offset,data,0x000000ff);
|
||||
return;
|
||||
|
||||
default:
|
||||
// don't write transparent pen
|
||||
if((data & mem_mask) == mem_mask)
|
||||
return;
|
||||
}
|
||||
|
||||
COMBINE_DATA(&m_vega_vram[offset + m_vega_vbuffer * (0x14000/4)]);
|
||||
// don't write transparent pen
|
||||
if (data != 0xff)
|
||||
COMBINE_DATA(&m_vram[offset + m_vbuffer * 0x14000]);
|
||||
}
|
||||
|
||||
READ32_MEMBER(vegaeo_state::vega_vram_r)
|
||||
READ8_MEMBER(vegaeo_state::vram_r)
|
||||
{
|
||||
return m_vega_vram[offset + (0x14000/4) * m_vega_vbuffer];
|
||||
return m_vram[offset + 0x14000 * m_vbuffer];
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(vegaeo_state::vega_misc_w)
|
||||
{
|
||||
// other bits ???
|
||||
|
||||
m_vega_vbuffer = data & 1;
|
||||
m_vbuffer = data & 1;
|
||||
}
|
||||
|
||||
|
||||
READ32_MEMBER(vegaeo_state::vegaeo_custom_read)
|
||||
{
|
||||
speedup_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));
|
||||
return m_system_io->read();
|
||||
}
|
||||
|
||||
|
||||
ADDRESS_MAP_START(vegaeo_state::vega_map)
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
|
||||
AM_RANGE(0x80000000, 0x80013fff) AM_READWRITE(vega_vram_r, vega_vram_w)
|
||||
AM_RANGE(0x80000000, 0x80013fff) AM_READWRITE8(vram_r, vram_w, 0xffffffff)
|
||||
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
|
||||
|
||||
@ -185,34 +151,18 @@ INPUT_PORTS_END
|
||||
|
||||
VIDEO_START_MEMBER(vegaeo_state,vega)
|
||||
{
|
||||
m_vega_vram = std::make_unique<uint32_t[]>(0x14000*2/4);
|
||||
save_pointer(NAME(m_vega_vram.get()), 0x14000*2/4);
|
||||
save_item(NAME(m_vega_vbuffer));
|
||||
m_vram = std::make_unique<uint8_t[]>(0x14000*2);
|
||||
save_pointer(NAME(m_vram.get()), 0x14000*2);
|
||||
save_item(NAME(m_vbuffer));
|
||||
}
|
||||
|
||||
uint32_t vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int x,y,count;
|
||||
int color;
|
||||
|
||||
count = 0;
|
||||
for (y=0;y < 240;y++)
|
||||
for (int y = 0; y < 240; y++)
|
||||
{
|
||||
for (x=0;x < 320/4;x++)
|
||||
for (int x = 0; x < 320; x++)
|
||||
{
|
||||
color = m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff;
|
||||
bitmap.pix16(y, x*4 + 3) = color;
|
||||
|
||||
color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff00) >> 8;
|
||||
bitmap.pix16(y, x*4 + 2) = color;
|
||||
|
||||
color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff0000) >> 16;
|
||||
bitmap.pix16(y, x*4 + 1) = color;
|
||||
|
||||
color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff000000) >> 24;
|
||||
bitmap.pix16(y, x*4 + 0) = color;
|
||||
|
||||
count++;
|
||||
bitmap.pix16(y, x) = m_vram[0x14000 * (m_vbuffer ^ 1) + (y * 320) + x] & 0xff;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -245,10 +195,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 +258,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) )
|
||||
|
@ -10,32 +10,28 @@ 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_maincpu(*this, "maincpu")
|
||||
, m_soundcpu(*this, "soundcpu")
|
||||
, m_screen(*this, "screen")
|
||||
, m_palette(*this, "palette")
|
||||
, m_qs1000(*this, "qs1000")
|
||||
, m_in0(*this, "IN0")
|
||||
, m_penxport(*this, "PEN_X_P%u", 1)
|
||||
, m_penyport(*this, "PEN_Y_P%u", 1)
|
||||
, 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);
|
||||
template<int Player> DECLARE_READ32_MEMBER(hidctch3_pen_r);
|
||||
DECLARE_WRITE16_MEMBER(eolith_vram_w);
|
||||
DECLARE_READ16_MEMBER(eolith_vram_r);
|
||||
DECLARE_WRITE8_MEMBER(sound_p1_w);
|
||||
DECLARE_READ8_MEMBER(qs1000_p1_r);
|
||||
DECLARE_WRITE8_MEMBER(qs1000_p1_w);
|
||||
@ -43,7 +39,6 @@ public:
|
||||
|
||||
DECLARE_DRIVER_INIT(eolith);
|
||||
DECLARE_DRIVER_INIT(landbrk);
|
||||
DECLARE_DRIVER_INIT(hidctch3);
|
||||
DECLARE_DRIVER_INIT(hidctch2);
|
||||
DECLARE_DRIVER_INIT(hidnc2k);
|
||||
DECLARE_DRIVER_INIT(landbrka);
|
||||
@ -59,13 +54,14 @@ public:
|
||||
void ironfort(machine_config &config);
|
||||
void eolith50(machine_config &config);
|
||||
void eolith45(machine_config &config);
|
||||
void hidctch3(machine_config &config);
|
||||
void eolith_map(address_map &map);
|
||||
void hidctch3_map(address_map &map);
|
||||
void sound_io_map(address_map &map);
|
||||
void sound_prg_map(address_map &map);
|
||||
protected:
|
||||
// shared with eolith16.cpp, vegaeo.cpp
|
||||
optional_ioport m_eepromoutport;
|
||||
optional_device<qs1000_device> m_qs1000;
|
||||
|
||||
void speedup_read();
|
||||
void init_speedup();
|
||||
@ -76,20 +72,17 @@ private:
|
||||
optional_device<i8032_device> m_soundcpu;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<qs1000_device> m_qs1000;
|
||||
|
||||
optional_ioport m_in0; // klondkp doesn't have it
|
||||
optional_ioport m_penx1port;
|
||||
optional_ioport m_peny1port;
|
||||
optional_ioport m_penx2port;
|
||||
optional_ioport m_peny2port;
|
||||
optional_ioport_array<2> m_penxport;
|
||||
optional_ioport_array<2> m_penyport;
|
||||
|
||||
optional_memory_bank m_sndbank;
|
||||
|
||||
int m_coin_counter_bit;
|
||||
std::unique_ptr<uint16_t[]> m_vram;
|
||||
int m_buffer;
|
||||
std::unique_ptr<uint32_t[]> m_vram;
|
||||
|
||||
uint8_t m_sound_data;
|
||||
|
||||
// speedups - see machine/eolithsp.c
|
||||
int m_speedup_address;
|
||||
|
@ -4,38 +4,27 @@
|
||||
#include "includes/eolith.h"
|
||||
|
||||
|
||||
WRITE32_MEMBER(eolith_state::eolith_vram_w)
|
||||
WRITE16_MEMBER(eolith_state::eolith_vram_w)
|
||||
{
|
||||
uint32_t *dest = &m_vram[offset+(0x40000/4)*m_buffer];
|
||||
|
||||
if (mem_mask == 0xffffffff)
|
||||
if ((mem_mask == 0xffff) && (data & ~0x8000))
|
||||
{
|
||||
// candy needs this to always write to RAM (verified that certain glitches, for example the high score table, don't occur on real hw)
|
||||
// other games clearly don't.
|
||||
// is there a cpu bug, or is there more to this logic / a flag which disables it?
|
||||
|
||||
if (~data & 0x80000000)
|
||||
*dest = (*dest & 0x0000ffff) | (data & 0xffff0000);
|
||||
|
||||
if (~data & 0x00008000)
|
||||
*dest = (*dest & 0xffff0000) | (data & 0x0000ffff);
|
||||
COMBINE_DATA(&m_vram[offset+(0x40000/2)*m_buffer]);
|
||||
}
|
||||
else if (((mem_mask == 0xffff0000) && (~data & 0x80000000)) ||
|
||||
((mem_mask == 0x0000ffff) && (~data & 0x00008000)))
|
||||
COMBINE_DATA(dest);
|
||||
|
||||
}
|
||||
|
||||
|
||||
READ32_MEMBER(eolith_state::eolith_vram_r)
|
||||
READ16_MEMBER(eolith_state::eolith_vram_r)
|
||||
{
|
||||
return m_vram[offset+(0x40000/4)*m_buffer];
|
||||
return m_vram[offset+(0x40000/2)*m_buffer];
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(eolith_state,eolith)
|
||||
{
|
||||
m_vram = std::make_unique<uint32_t[]>(0x40000*2/4);
|
||||
save_pointer(NAME(m_vram.get()), 0x40000*2/4);
|
||||
m_vram = std::make_unique<uint16_t[]>(0x40000);
|
||||
save_pointer(NAME(m_vram.get()), 0x40000);
|
||||
save_item(NAME(m_buffer));
|
||||
}
|
||||
|
||||
@ -43,16 +32,9 @@ uint32_t eolith_state::screen_update_eolith(screen_device &screen, bitmap_ind16
|
||||
{
|
||||
for (int y = 0; y < 240; y++)
|
||||
{
|
||||
uint32_t *src = &m_vram[(m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
|
||||
uint16_t *dest = &bitmap.pix16(y);
|
||||
|
||||
for (int x = 0; x < 320; x += 2)
|
||||
for (int x = 0; x < 320; x++)
|
||||
{
|
||||
dest[0] = (*src >> 16) & 0x7fff;
|
||||
dest[1] = (*src >> 0) & 0x7fff;
|
||||
|
||||
src++;
|
||||
dest += 2;
|
||||
bitmap.pix16(y, x) = m_vram[(0x40000/2) * (m_buffer ^ 1) + (y * 336) + x] & 0x7fff;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user