mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
New machines added or promoted from NOT_WORKING status
------------------------------------------------------ Trivia R Us (v1.07) [J. Mathevet, Smitdogg, The Dumping Union, Luca Elia]
This commit is contained in:
parent
5ccd8d8f49
commit
40f6db7135
@ -10475,6 +10475,7 @@ evosocc // 2001 Evoga. Evolution Soccer
|
||||
topbladv // 2002 Sonokong. Top Blade V
|
||||
officeye
|
||||
donghaer
|
||||
trivrus // 2009 AGT. Trivia R Us
|
||||
|
||||
ddz // (c) 200?
|
||||
|
||||
|
@ -148,7 +148,7 @@ public:
|
||||
required_shared_ptr<UINT32> m_vidregs;
|
||||
required_shared_ptr<UINT32> m_textureram;
|
||||
required_shared_ptr<UINT32> m_frameram;
|
||||
required_shared_ptr<UINT32> m_reset_patch;
|
||||
optional_shared_ptr<UINT32> m_reset_patch; // not needed for trivrus
|
||||
// UINT32 * m_nvram; // currently this uses generic nvram handling
|
||||
|
||||
/* devices */
|
||||
@ -197,6 +197,10 @@ public:
|
||||
DECLARE_DRIVER_INIT(evosocc);
|
||||
DECLARE_DRIVER_INIT(donghaer);
|
||||
|
||||
DECLARE_READ32_MEMBER(trivrus_input_r);
|
||||
DECLARE_WRITE32_MEMBER(trivrus_input_w);
|
||||
UINT8 m_trivrus_input;
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
UINT32 screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
@ -525,8 +529,76 @@ static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state )
|
||||
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// Trivia R Us
|
||||
// To do: touch panel, RTC
|
||||
|
||||
READ32_MEMBER(crystal_state::trivrus_input_r)
|
||||
{
|
||||
switch (m_trivrus_input)
|
||||
{
|
||||
case 1: return ioport("IN1")->read();
|
||||
case 2: return ioport("IN2")->read();
|
||||
case 3: return ioport("IN3")->read();
|
||||
case 4: return ioport("IN4")->read();
|
||||
case 5: return ioport("IN5")->read();
|
||||
case 6: return ioport("DSW")->read();
|
||||
}
|
||||
logerror("%s: unknown input %02x read\n", machine().describe_context(), m_trivrus_input);
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(crystal_state::trivrus_input_w)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
m_trivrus_input = data & 0xff;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( trivrus_mem, AS_PROGRAM, 32, crystal_state )
|
||||
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_WRITENOP
|
||||
|
||||
// 0x01280000 & 0x0000ffff (written at boot)
|
||||
AM_RANGE(0x01500000, 0x01500003) AM_READWRITE(trivrus_input_r, trivrus_input_w)
|
||||
// 0x01500010 & 0x000000ff = sec
|
||||
// 0x01500010 & 0x00ff0000 = min
|
||||
// 0x01500014 & 0x000000ff = hour
|
||||
// 0x01500014 & 0x00ff0000 = day
|
||||
// 0x01500018 & 0x000000ff = month
|
||||
// 0x0150001c & 0x000000ff = year - 2000
|
||||
AM_RANGE(0x01600000, 0x01607fff) AM_RAM AM_SHARE("nvram")
|
||||
|
||||
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")
|
||||
|
||||
AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)
|
||||
|
||||
AM_RANGE(0x03000000, 0x0300ffff) AM_RAM AM_SHARE("vidregs")
|
||||
AM_RANGE(0x03800000, 0x03ffffff) AM_RAM AM_SHARE("textureram")
|
||||
AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_SHARE("frameram")
|
||||
AM_RANGE(0x04800000, 0x04800fff) AM_DEVREADWRITE("vrender", vrender0_device, vr0_snd_read, vr0_snd_write)
|
||||
|
||||
AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)
|
||||
AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1")
|
||||
|
||||
// AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch")
|
||||
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
void crystal_state::PatchReset( )
|
||||
{
|
||||
if (!m_reset_patch)
|
||||
return;
|
||||
|
||||
//The test menu reset routine seems buggy
|
||||
//it reads the reset vector from 0x02000000 but it should be
|
||||
//read from 0x00000000. At 0x2000000 there is the bios signature
|
||||
@ -603,6 +675,7 @@ void crystal_state::machine_start()
|
||||
save_item(NAME(m_PIO));
|
||||
save_item(NAME(m_DMActrl));
|
||||
save_item(NAME(m_OldPort4));
|
||||
save_item(NAME(m_trivrus_input));
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(crystal_state::crystal_banksw_postload), this));
|
||||
}
|
||||
|
||||
@ -893,6 +966,84 @@ static INPUT_PORTS_START(officeye)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START(trivrus)
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Left/True") PORT_CODE(KEYCODE_LEFT)
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN)
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Enter/Exit")
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Next")
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Right/False") PORT_CODE(KEYCODE_RIGHT)
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN3")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Sound")
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN4")
|
||||
PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_OTHER )PORT_CODE(KEYCODE_9)
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN5")
|
||||
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_SERVICE1 ) // Free Game
|
||||
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) // Setup
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Interlace?" )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Serial?" )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // hangs at boot
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Touch Screen" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( crystal, crystal_state )
|
||||
|
||||
MCFG_CPU_ADD("maincpu", SE3208, 43000000)
|
||||
@ -937,13 +1088,23 @@ static MACHINE_CONFIG_DERIVED( topbladv, crystal )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( trivrus, crystal )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(trivrus_mem)
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_SIZE(640, 480)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START( crysbios )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) // bios
|
||||
ROM_LOAD("mx27l1000.u14", 0x000000, 0x020000, CRC(beff39a9) SHA1(b6f6dda58d9c82273f9422c1bd623411e58982cb) )
|
||||
|
||||
ROM_REGION32_LE( 0x3000000, "user1", ROMREGION_ERASEFF ) // Flash
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
ROM_START( crysking )
|
||||
@ -955,7 +1116,7 @@ ROM_START( crysking )
|
||||
ROM_LOAD("bcsv0004f02.u2", 0x1000000, 0x1000000, CRC(0e799845) SHA1(419674ce043cb1efb18303f4cb7fdbbae642ee39) )
|
||||
ROM_LOAD("bcsv0004f03.u3", 0x2000000, 0x1000000, CRC(659e2d17) SHA1(342c98f3f695ef4dea8b533612451c4d2fb58809) )
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
ROM_START( evosocc )
|
||||
@ -967,7 +1128,7 @@ ROM_START( evosocc )
|
||||
ROM_LOAD("bcsv0001u02", 0x1000000, 0x1000000, CRC(47ef1794) SHA1(f573706c17d1342b9b7aed9b40b8b648f0bf58db) )
|
||||
ROM_LOAD("bcsv0001u03", 0x2000000, 0x1000000, CRC(f396a2ec) SHA1(f305eb10856fb5d4c229a6b09d6a2fb21b24ce66) )
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
ROM_START( topbladv )
|
||||
@ -981,10 +1142,9 @@ ROM_START( topbladv )
|
||||
ROM_REGION32_LE( 0x3000000, "user1", 0 ) // Flash
|
||||
ROM_LOAD("flash.u1", 0x0000000, 0x1000000, CRC(bd23f640) SHA1(1d22aa2c828642bb7c1dfea4e13f777f95acc701) )
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( officeye )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) // bios (not the standard one)
|
||||
ROM_LOAD("bios.u14", 0x000000, 0x020000, CRC(ffc57e90) SHA1(6b6a17fd4798dea9c7b880f3063be8494e7db302) )
|
||||
@ -997,10 +1157,9 @@ ROM_START( officeye )
|
||||
ROM_LOAD("flash.u1", 0x0000000, 0x1000000, CRC(d3f3eec4) SHA1(ea728415bd4906964b7d37f4379a8a3bd42a1c2d) )
|
||||
ROM_LOAD("flash.u2", 0x1000000, 0x1000000, CRC(e4f85d0a) SHA1(2ddfa6b3a30e69754aa9d96434ff3d37784bfa57) )
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( donghaer )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 ) // bios
|
||||
ROM_LOAD("mx27l1000.u14", 0x000000, 0x020000, CRC(beff39a9) SHA1(b6f6dda58d9c82273f9422c1bd623411e58982cb))
|
||||
@ -1012,9 +1171,20 @@ ROM_START( donghaer )
|
||||
ROM_LOAD( "u1", 0x0000000, 0x1000000, CRC(61217ad7) SHA1(2593f1356aa850f4f9aa5d00bec822aa59c59224) )
|
||||
ROM_LOAD( "u2", 0x1000000, 0x1000000, CRC(6d82f1a5) SHA1(036bd45f0daac1ffeaa5ad9774fc1b56e3c75ff9) )
|
||||
|
||||
ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) //Unmapped flash
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
ROM_START( trivrus )
|
||||
ROM_REGION( 0x80000, "maincpu", 0 )
|
||||
ROM_LOAD( "u4", 0x00000, 0x80000, CRC(2d2e9a11) SHA1(73e7b19a032eae21312ca80f8c42cc16725496a7) )
|
||||
|
||||
ROM_REGION32_LE( 0x3000000, "user1", ROMREGION_ERASEFF ) // Flash
|
||||
ROM_LOAD( "u3", 0x000000, 0x1000010, CRC(ba901707) SHA1(e281ba07024cd19ef1ab72d2197014f7b1f4d30f) )
|
||||
|
||||
ROM_REGION( 0x1000000, "user2", ROMREGION_ERASEFF ) // Unmapped flash
|
||||
ROM_END
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(crystal_state,crysking)
|
||||
{
|
||||
UINT16 *Rom = (UINT16*) memregion("user1")->base();
|
||||
@ -1133,9 +1303,10 @@ DRIVER_INIT_MEMBER(crystal_state, donghaer)
|
||||
}
|
||||
|
||||
|
||||
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, topbladv, 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 ) // still has some instability issues
|
||||
GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING )
|
||||
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, topbladv, 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 ) // still has some instability issues
|
||||
GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING )
|
||||
GAME( 2009, trivrus, 0, trivrus, trivrus, driver_device, 0, ROT0, "AGT", "Trivia R Us (v1.07)", 0 )
|
||||
|
Loading…
Reference in New Issue
Block a user