diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/crystal.cpp | 262 | ||||
-rw-r--r-- | src/mame/drivers/gottlieb.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/jaguar.cpp | 8 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
4 files changed, 213 insertions, 62 deletions
diff --git a/src/mame/drivers/crystal.cpp b/src/mame/drivers/crystal.cpp index 5c7f983a87d..2069bd38f23 100644 --- a/src/mame/drivers/crystal.cpp +++ b/src/mame/drivers/crystal.cpp @@ -26,7 +26,6 @@ The Crystal of Kings Brezza Soft Corporation (Japan), 2001 This game runs on a small cartridge-based PCB known as the 'Crystal System' -There are only two known games running on this system, Crystal of Kings and Evolution Soccer. The main PCB is small (approx 6" square) and contains only a few components. All of the processing work is done by the large IC in the middle of the PCB. The system looks a bit like IGS's PGM System, in that it's housed in a plastic case and has a single slot for insertion of a game cart. However this @@ -216,7 +215,6 @@ public: required_shared_ptr<uint32_t> m_textureram; required_shared_ptr<uint32_t> m_frameram; optional_shared_ptr<uint32_t> m_reset_patch; // not needed for trivrus -// uint32_t * m_nvram; // currently this uses generic nvram handling /* devices */ required_device<cpu_device> m_maincpu; @@ -231,13 +229,15 @@ public: uint32_t m_Bank; uint8_t m_FlipCount; uint8_t m_IntHigh; - uint32_t m_Timerctrl[4]; - emu_timer *m_Timer[4]; + emu_timer *m_Timer[4]; uint32_t m_FlashCmd; uint32_t m_PIO; uint32_t m_DMActrl[2]; uint8_t m_OldPort4; + uint32_t *TimerRegsPtr(int which) const; + void TimerStart(int which); + DECLARE_READ32_MEMBER(FlipCount_r); DECLARE_WRITE32_MEMBER(FlipCount_w); DECLARE_READ32_MEMBER(Input_r); @@ -270,7 +270,9 @@ public: DECLARE_WRITE32_MEMBER(trivrus_input_w); uint8_t m_trivrus_input; - DECLARE_READ32_MEMBER(crzyddz2_4_r); + DECLARE_READ32_MEMBER(crzyddz2_key_r); + DECLARE_WRITE32_MEMBER(crzyddz2_PIO_w); + uint8_t m_crzyddz2_prot; virtual void machine_start() override; virtual void machine_reset() override; @@ -387,31 +389,58 @@ WRITE32_MEMBER(crystal_state::Banksw_w) membank("bank1")->set_base(memregion("user2")->base()); } +uint32_t *crystal_state::TimerRegsPtr(int which) const +{ + return &m_sysregs[0x1400/4 + which * 8/4]; +} + +void crystal_state::TimerStart(int which) +{ + uint32_t *regs = TimerRegsPtr(which); + + int PD = (regs[0] >> 8) & 0xff; + int TCV = regs[1] & 0xffff; + attotime period = attotime::from_hz(43000000) * ((PD + 1) * (TCV + 1)); + m_Timer[which]->adjust(period); + +// printf("timer %d start, PD = %x TCV = %x period = %s\n", which, PD, TCV, period.as_string()); +} + TIMER_CALLBACK_MEMBER(crystal_state::Timercb) { int which = (int)(uintptr_t)ptr; static const int num[] = { 0, 1, 9, 10 }; - if (!(m_Timerctrl[which] & 2)) - m_Timerctrl[which] &= ~1; + uint32_t *regs = TimerRegsPtr(which); + + if (regs[0] & 2) + TimerStart(which); + else + regs[0] &= ~1; IntReq(num[which]); } void crystal_state::Timer_w( address_space &space, int which, uint32_t data, uint32_t mem_mask ) { - if (((data ^ m_Timerctrl[which]) & 1) && (data & 1)) //Timer activate - { - int PD = (data >> 8) & 0xff; - int TCV = space.read_dword(0x01801404 + which * 8); - attotime period = attotime::from_hz(43000000) * ((PD + 1) * (TCV + 1)); + uint32_t *regs = TimerRegsPtr(which); - if (m_Timerctrl[which] & 2) - m_Timer[which]->adjust(period, 0, period); + uint32_t old = regs[0]; + data = COMBINE_DATA(®s[0]); + + if ((data ^ old) & 1) + { + if (data & 1) + { + TimerStart(which); + } else - m_Timer[which]->adjust(period); + { + // Timer stop + m_Timer[which]->adjust(attotime::never); +// printf("timer %d stop\n", which); + } } - COMBINE_DATA(&m_Timerctrl[which]); } WRITE32_MEMBER(crystal_state::Timer0_w) @@ -421,7 +450,7 @@ WRITE32_MEMBER(crystal_state::Timer0_w) READ32_MEMBER(crystal_state::Timer0_r) { - return m_Timerctrl[0]; + return *TimerRegsPtr(0); } WRITE32_MEMBER(crystal_state::Timer1_w) @@ -431,7 +460,7 @@ WRITE32_MEMBER(crystal_state::Timer1_w) READ32_MEMBER(crystal_state::Timer1_r) { - return m_Timerctrl[1]; + return *TimerRegsPtr(1); } WRITE32_MEMBER(crystal_state::Timer2_w) @@ -441,7 +470,7 @@ WRITE32_MEMBER(crystal_state::Timer2_w) READ32_MEMBER(crystal_state::Timer2_r) { - return m_Timerctrl[2]; + return *TimerRegsPtr(2); } WRITE32_MEMBER(crystal_state::Timer3_w) @@ -451,7 +480,7 @@ WRITE32_MEMBER(crystal_state::Timer3_w) READ32_MEMBER(crystal_state::Timer3_r) { - return m_Timerctrl[3]; + return *TimerRegsPtr(3); } READ32_MEMBER(crystal_state::FlashCmd_r) @@ -573,16 +602,17 @@ static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state ) AM_RANGE(0x01280000, 0x01280003) AM_WRITE(Banksw_w) AM_RANGE(0x01400000, 0x0140ffff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) + AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) + + AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) + AM_RANGE(0x01801400, 0x01801403) AM_READWRITE(Timer0_r, Timer0_w) AM_RANGE(0x01801408, 0x0180140b) AM_READWRITE(Timer1_r, Timer1_w) AM_RANGE(0x01801410, 0x01801413) AM_READWRITE(Timer2_r, Timer2_w) AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w) AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, PIO_w) - AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) - AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) - - AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs") AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram") @@ -597,7 +627,6 @@ static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state ) AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1") AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch") - ADDRESS_MAP_END // Trivia R Us @@ -637,16 +666,17 @@ static ADDRESS_MAP_START( trivrus_mem, AS_PROGRAM, 32, crystal_state ) // 0x0150001c & 0x000000ff = year - 2000 AM_RANGE(0x01600000, 0x01607fff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) + AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) + + AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) + AM_RANGE(0x01801400, 0x01801403) AM_READWRITE(Timer0_r, Timer0_w) AM_RANGE(0x01801408, 0x0180140b) AM_READWRITE(Timer1_r, Timer1_w) AM_RANGE(0x01801410, 0x01801413) AM_READWRITE(Timer2_r, Timer2_w) AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w) AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, PIO_w) - AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) - AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) - - AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs") AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram") @@ -661,15 +691,47 @@ static ADDRESS_MAP_START( trivrus_mem, AS_PROGRAM, 32, crystal_state ) AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1") // AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch") - ADDRESS_MAP_END // Crazy Dou Di Zhu II // To do: HY04 (pic?) protection -READ32_MEMBER(crystal_state::crzyddz2_4_r) +WRITE32_MEMBER(crystal_state::crzyddz2_PIO_w) { - return 0xffffff3f | (machine().rand() & 0xc0); + COMBINE_DATA(&m_PIO); + + if (ACCESSING_BITS_8_15) + { + int mux = (m_PIO >> 8) & 0x1f; + if (mux == 0x1f) + { + m_crzyddz2_prot = ((m_PIO >> 8) & 0xc0) ^ 0x40; + logerror("%s: PIO = %08x, prot = %02x\n", machine().describe_context(), m_PIO, m_crzyddz2_prot); + } + } +} + +READ32_MEMBER(crystal_state::crzyddz2_key_r) +{ + static const char *const key_names[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" }; + + int mux = (m_PIO >> 8) & 0x1f; + + uint8_t data = 0x3f; + for (int i = 0; i < sizeof(key_names)/sizeof(key_names[0]); ++i) + if (!BIT(mux,i)) + data = ioport(key_names[i])->read(); + +/* +crzyddz2 in out + 00 40 + 40 00 + c0 80 +*/ +// m_crzyddz2_prot = (m_PIO >> 8) & 0xc0) ^ 0x40; + m_crzyddz2_prot = (machine().rand() & 0xc0); + + return 0xffffff00 | data | m_crzyddz2_prot; } static ADDRESS_MAP_START( crzyddz2_mem, AS_PROGRAM, 32, crystal_state ) @@ -678,18 +740,19 @@ static ADDRESS_MAP_START( crzyddz2_mem, AS_PROGRAM, 32, crystal_state ) AM_RANGE(0x01280000, 0x01280003) AM_WRITE(Banksw_w) AM_RANGE(0x01400000, 0x0140ffff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x01500000, 0x01500003) AM_READ_PORT("P1_P2") - AM_RANGE(0x01500004, 0x01500007) AM_READ(crzyddz2_4_r) + AM_RANGE(0x01500004, 0x01500007) AM_READ(crzyddz2_key_r) + + AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) + AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) + + AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) AM_RANGE(0x01801400, 0x01801403) AM_READWRITE(Timer0_r, Timer0_w) AM_RANGE(0x01801408, 0x0180140b) AM_READWRITE(Timer1_r, Timer1_w) AM_RANGE(0x01801410, 0x01801413) AM_READWRITE(Timer2_r, Timer2_w) AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w) - AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, PIO_w) + AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, crzyddz2_PIO_w) - AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w) - AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w) - - AM_RANGE(0x01800c04, 0x01800c07) AM_WRITE(IntAck_w) AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs") AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram") @@ -783,7 +846,6 @@ void crystal_state::machine_start() save_item(NAME(m_Bank)); save_item(NAME(m_FlipCount)); save_item(NAME(m_IntHigh)); - save_item(NAME(m_Timerctrl)); save_item(NAME(m_FlashCmd)); save_item(NAME(m_PIO)); save_item(NAME(m_DMActrl)); @@ -798,6 +860,7 @@ void crystal_state::machine_reset() memset(m_sysregs, 0, 0x10000); memset(m_vidregs, 0, 0x10000); + m_FlipCount = 0; m_IntHigh = 0; m_Bank = 0; @@ -810,7 +873,7 @@ void crystal_state::machine_reset() for (i = 0; i < 4; i++) { - m_Timerctrl[i] = 0; + *TimerRegsPtr(i) = 0xff << 8; m_Timer[i]->adjust(attotime::never); } @@ -820,6 +883,8 @@ void crystal_state::machine_reset() #endif PatchReset(); + + m_crzyddz2_prot = 0x00; } uint16_t crystal_state::GetVidReg( address_space &space, uint16_t reg ) @@ -1176,6 +1241,71 @@ static INPUT_PORTS_START(trivrus) INPUT_PORTS_END +static INPUT_PORTS_START(crzyddz2) + PORT_START("P1_P2") // 1500002 & 1500000 + PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // up + PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // down (next secret code) + PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // left (inc secret code) + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // right (dec secret code) + PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // A + PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // B + PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) // C (bet) + PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON4 ) // D + PORT_BIT( 0x0000ff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_START1 ) // start (secret code screen) + PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE2 ) // .. 2 (next secret code / stats) + PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE ) // .. 1 (secret code screen / service mode) + PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_SERVICE1 ) // .. 3 (inc secret code / credit) + PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_SERVICE3 ) // .. 4 (exit secret screen / clear credits) + PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_SERVICE4 ) // (reset and clear ram?) + PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + // 1500004 (multiplexed by 1802005) + PORT_START("KEY0") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) // kan + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) // start? + + PORT_START("KEY1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) // ? + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // ? + C + + PORT_START("KEY2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) // chi + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) // ? + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing + + PORT_START("KEY3") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) // pon + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing + + PORT_START("KEY4") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) // ron + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) // ? + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) // big + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) // small + D +INPUT_PORTS_END + + static MACHINE_CONFIG_START( crystal, crystal_state ) MCFG_CPU_ADD("maincpu", SE3208, 43000000) @@ -1380,16 +1510,13 @@ Notes: ***************************************************************************/ -// if you bypass the hy04 error, if fails with "THERE IS NO IMAGE" as it tries to load files from the flash. -// Indeed, apart from logo.bmp, the rest of the filenames it tries to load are not in the flash. - ROM_START( crzyddz2 ) ROM_REGION32_LE( 0x3000000, "user1", ROMREGION_ERASEFF ) // Flash - ROM_LOAD( "rom.u48", 0x000000, 0x1000000, CRC(e24257c4) SHA1(569d79a61ff6d35100ba5727069363146df9e0b7) ) + ROM_LOAD( "rom.u48", 0x000000, 0x1000000, CRC(0f3a1987) SHA1(6cad943846c79db31226676c7391f32216cfff79) ) ROM_REGION( 0x1000000, "maincpu", ROMREGION_ERASEFF ) - ROM_COPY( "user1", 0x000000, 0x000000, 0x1000000 ) // copy flash here - ROM_LOAD( "27c322.u36", 0x000000, 0x0200000, CRC(b3177f39) SHA1(2a28bf8045bd2e053d88549b79fbc11f30ef9a32) ) // 1ST AND 2ND HALF IDENTICAL + ROM_COPY( "user1", 0x000000, 0x000000, 0x1000000 ) // copy flash here + ROM_LOAD( "27c322.u49", 0x000000, 0x0200000, CRC(b3177f39) SHA1(2a28bf8045bd2e053d88549b79fbc11f30ef9a32) ) // 1ST AND 2ND HALF IDENTICAL ROM_CONTINUE( 0x000000, 0x0200000 ) ROM_REGION( 0x4280, "pic", 0 ) // hy04 @@ -1398,6 +1525,28 @@ ROM_START( crzyddz2 ) ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash ROM_END +/*************************************************************************** + +Meng Hong Lou (Dream of the Red Chamber) +Sealy, 2004? + +Red PCB, very similar to crzyddz2 + +***************************************************************************/ + +ROM_START( menghong ) + ROM_REGION32_LE( 0x3000000, "user1", ROMREGION_ERASEFF ) // Flash + ROM_LOAD( "rom.u48", 0x000000, 0x1000000, CRC(e24257c4) SHA1(569d79a61ff6d35100ba5727069363146df9e0b7) ) + + ROM_REGION( 0x1000000, "maincpu", 0 ) + ROM_COPY( "user1", 0x000000, 0x000000, 0x1000000 ) // copy flash here + ROM_LOAD( "060511_08-01-18.u49", 0x000000, 0x0200000, CRC(b0c12107) SHA1(b1753757bbdb7d996df563ac6abdc6b46676704b) ) // 27C160 + + ROM_REGION( 0x4280, "pic", 0 ) // hy04 + ROM_LOAD("menghong_hy04", 0x000000, 0x4280, NO_DUMP ) + + ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash +ROM_END DRIVER_INIT_MEMBER(crystal_state,crysking) @@ -1522,15 +1671,16 @@ DRIVER_INIT_MEMBER(crystal_state,psattack) } -GAME( 2001, crysbios, 0, crystal, crystal, driver_device, 0, ROT0, "BrezzaSoft", "Crystal System BIOS", MACHINE_IS_BIOS_ROOT ) -GAME( 2001, crysking, crysbios, crystal, crystal, crystal_state, crysking, ROT0, "BrezzaSoft", "The Crystal of Kings", 0 ) -GAME( 2001, evosocc, crysbios, crystal, crystal, crystal_state, evosocc, ROT0, "Evoga", "Evolution Soccer", 0 ) -GAME( 2003, topbladv, crysbios, crystal, crystal, crystal_state, topbladv, ROT0, "SonoKong / Expotato", "Top Blade V", 0 ) -GAME( 2001, officeye, 0, crystal, officeye,crystal_state, officeye, ROT0, "Danbi", "Office Yeo In Cheon Ha (version 1.2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // still has some instability issues -GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2006, crzyddz2, 0, crzyddz2, crystal, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2009, trivrus, 0, trivrus, trivrus, driver_device, 0, ROT0, "AGT", "Trivia R Us (v1.07)", 0 ) +GAME( 2001, crysbios, 0, crystal, crystal, driver_device, 0, ROT0, "BrezzaSoft", "Crystal System BIOS", MACHINE_IS_BIOS_ROOT ) +GAME( 2001, crysking, crysbios, crystal, crystal, crystal_state, crysking, ROT0, "BrezzaSoft", "The Crystal of Kings", 0 ) +GAME( 2001, evosocc, crysbios, crystal, crystal, crystal_state, evosocc, ROT0, "Evoga", "Evolution Soccer", 0 ) +GAME( 2003, topbladv, crysbios, crystal, crystal, crystal_state, topbladv, ROT0, "SonoKong / Expotato", "Top Blade V", 0 ) +GAME( 2001, officeye, 0, crystal, officeye, crystal_state, officeye, ROT0, "Danbi", "Office Yeo In Cheon Ha (version 1.2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // still has some instability issues +GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2004?,menghong, 0, crzyddz2, crzyddz2, driver_device, 0, ROT0, "Sealy", "Meng Hong Lou", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2006, crzyddz2, 0, crzyddz2, crzyddz2, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2009, trivrus, 0, trivrus, trivrus, driver_device, 0, ROT0, "AGT", "Trivia R Us (v1.07)", 0 ) // has a CF card instead of flash roms -GAME( 2004, psattack, 0, crystal, crystal, crystal_state, psattack, ROT0, "Uniana", "P's Attack", MACHINE_IS_SKELETON ) +GAME( 2004, psattack, 0, crystal, crystal, crystal_state, psattack, ROT0, "Uniana", "P's Attack", MACHINE_IS_SKELETON ) // looks like the same kind of hw from strings in the ROM, but scrambled / encrypted? -GAME( 200?, ddz, 0, crystal, crystal, driver_device, 0, ROT0, "IGS?", "Dou Di Zhu", MACHINE_IS_SKELETON ) +GAME( 200?, ddz, 0, crystal, crystal, driver_device, 0, ROT0, "IGS?", "Dou Di Zhu", MACHINE_IS_SKELETON ) diff --git a/src/mame/drivers/gottlieb.cpp b/src/mame/drivers/gottlieb.cpp index 3c65b88ddcd..032cdc9f4ed 100644 --- a/src/mame/drivers/gottlieb.cpp +++ b/src/mame/drivers/gottlieb.cpp @@ -1803,7 +1803,7 @@ static MACHINE_CONFIG_DERIVED( g2laser, gottlieb_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) + MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(&gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_LASERDISC_OVERLAY_PALETTE("palette") @@ -1896,7 +1896,7 @@ static MACHINE_CONFIG_DERIVED( cobram3, gottlieb_core ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MCFG_LASERDISC_PR8210_ADD("laserdisc") - MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) + MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(&gottlieb_state::laserdisc_audio_process, (gottlieb_state*)owner)) MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb) MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) MCFG_LASERDISC_OVERLAY_PALETTE("palette") diff --git a/src/mame/drivers/jaguar.cpp b/src/mame/drivers/jaguar.cpp index 5ec2ad378ef..0fedfa777be 100644 --- a/src/mame/drivers/jaguar.cpp +++ b/src/mame/drivers/jaguar.cpp @@ -2135,10 +2135,10 @@ ROM_END ROM_START( area51t ) /* 68020 based, Area51 Time Warner License Date: Oct 17, 1996 */ ROM_REGION( 0x200000, "maincpu", 0 ) /* 2MB for 68020 code */ - ROM_LOAD32_BYTE( "136105-0003-q_h.3h", 0x00000, 0x80000, CRC(0681f398) SHA1(9e96db5a4ff90800685a5b95f8d758d211d3b982) ) - ROM_LOAD32_BYTE( "136105-0002-q_p.3p", 0x00001, 0x80000, CRC(f76cfc68) SHA1(01a781b42b61279e09e0cb1d924e2a3e0df44591) ) - ROM_LOAD32_BYTE( "136105-0001-q_m.3m", 0x00002, 0x80000, CRC(f422b4a8) SHA1(f95ef428be18adafae65e35f412eb03dcdaf7ed4) ) - ROM_LOAD32_BYTE( "136105-0000-q_k.3k", 0x00003, 0x80000, CRC(1fb2f2b5) SHA1(cbed65463dd93eaf945750a9dc3a123d1c6bda42) ) + ROM_LOAD32_BYTE( "136105-0003-q_h.3h", 0x00000, 0x80000, CRC(0681f398) SHA1(9e96db5a4ff90800685a5b95f8d758d211d3b982) ) /* Also found labeled as AREA51, 68K, D2FF, 3H, 11/20/96 (each item on a seperate line) */ + ROM_LOAD32_BYTE( "136105-0002-q_p.3p", 0x00001, 0x80000, CRC(f76cfc68) SHA1(01a781b42b61279e09e0cb1d924e2a3e0df44591) ) /* Also found labeled as AREA51, 68K, 69FE, 3P, 11/20/96 (each item on a seperate line) */ + ROM_LOAD32_BYTE( "136105-0001-q_m.3m", 0x00002, 0x80000, CRC(f422b4a8) SHA1(f95ef428be18adafae65e35f412eb03dcdaf7ed4) ) /* Also found labeled as AREA51, 68K, FCFD, 3M, 11/20/96 (each item on a seperate line) */ + ROM_LOAD32_BYTE( "136105-0000-q_k.3k", 0x00003, 0x80000, CRC(1fb2f2b5) SHA1(cbed65463dd93eaf945750a9dc3a123d1c6bda42) ) /* Also found labeled as AREA51, 68K, 65FC, 3K, 11/20/96 (each item on a seperate line) */ ROM_REGION16_BE( 0x1000, "waverom", 0 ) ROM_LOAD16_WORD("jagwave.rom", 0x0000, 0x1000, CRC(7a25ee5b) SHA1(58117e11fd6478c521fbd3fdbe157f39567552f0) ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 172d38b2ab7..04623415ee4 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10333,6 +10333,7 @@ ddz // 200? donghaer // evosocc // 2001 Evoga. Evolution Soccer officeye // +menghong // 2004? Sealy psattack // 2004 Uniana topbladv // 2002 Sonokong. Top Blade V trivrus // 2009 AGT. Trivia R Us |