diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/cpu/hmcs40/hmcs40.c | 34 | ||||
-rw-r--r-- | src/emu/machine/tms6100.c | 13 | ||||
-rw-r--r-- | src/mame/audio/hng64.c | 15 | ||||
-rw-r--r-- | src/mame/drivers/twins.c | 46 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 | ||||
-rw-r--r-- | src/mess/audio/upd1771.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/hh_hmcs40.c | 5 |
7 files changed, 97 insertions, 19 deletions
diff --git a/src/emu/cpu/hmcs40/hmcs40.c b/src/emu/cpu/hmcs40/hmcs40.c index 57053375ff7..9bffeba24f5 100644 --- a/src/emu/cpu/hmcs40/hmcs40.c +++ b/src/emu/cpu/hmcs40/hmcs40.c @@ -581,7 +581,18 @@ void hmcs40_cpu_device::execute_run() // handle opcode switch (m_op) { - // unknown: lay, ayy, syy, am, anem, alem, bnem, blem, nega + // unknown: + /* + lay 118 + ayy 058 + syy 258 + am 034 + anem 124/324/024/234 + alem + bnem + blem + nega 244 + */ case 0x118: op_lay(); // probably lay @@ -592,26 +603,25 @@ void hmcs40_cpu_device::execute_run() case 0x124: - op_illegal(); - //op_alem(); // alem or anem - //op_ayy(); + //op_illegal(); + op_alem(); break; case 0x324: - op_illegal(); - //op_anem(); // " + //op_illegal(); + op_anem(); break; case 0x024: - op_illegal(); - //op_nega(); + //op_illegal(); + op_bnem(); + break; + case 0x234: + //op_illegal(); + op_blem(); break; - case 0x234: - op_illegal(); - //op_nega(); - break; diff --git a/src/emu/machine/tms6100.c b/src/emu/machine/tms6100.c index c261d1b949b..2df1cada967 100644 --- a/src/emu/machine/tms6100.c +++ b/src/emu/machine/tms6100.c @@ -28,6 +28,19 @@ VSS | 14 15 | NC +-----------------+ + TMS6125: + + +---------+ + DATA/ADD1 | 1 16 | NC + DATA/ADD2 | 2 15 | NC + DATA/ADD4 | 3 14 | NC + DATA/ADD8 | 4 13 | NC + CLK | 5 12 | VDD + NC | 6 11 | /CS + NC | 7 10 | M1 + M0 | 8 9 | VSS + +---------+ + M58819 (from radarscope schematics): +-----------------+ diff --git a/src/mame/audio/hng64.c b/src/mame/audio/hng64.c index dbce6f5c885..2cc54a21ed2 100644 --- a/src/mame/audio/hng64.c +++ b/src/mame/audio/hng64.c @@ -21,11 +21,18 @@ data structures look very similar between all of them IRQ mask register on the internal interrupt controller is set to 0xd8 -so levels 0,1,2,5 are unmasked +so levels 0,1,2,5 are unmasked, vectors get set during the sound CPU init code. -returning random values / triggering random interrupts eventually results in a situation -where the CPU stops writing to the sound related addresses and starts reading / masking the -serial comms register. + level 0/1 irq (fatfurwa) starts at 0xd277 (both the same vector) + serial comms related, maybe to get commands from main CPU if not done with shared ram? + + level 2 irq (fatfurwa) 0xdd20 + simple routine increases counter in RAM, maybe hooked to one / all of the timer irqs + + level 5 irq: (fatfurwa) starts at 0xc1e1 + largest irq, does things with ports 100 / 102 / 104 / 106, 10a (not 108 directly tho) + + no other irqs (or the NMI) are valid. */ diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c index a80c9b1e685..0158cae5a38 100644 --- a/src/mame/drivers/twins.c +++ b/src/mame/drivers/twins.c @@ -306,6 +306,44 @@ static MACHINE_CONFIG_START( twinsa, twins_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END +static ADDRESS_MAP_START( spider_io, AS_IO, 16, twins_state ) + AM_RANGE(0x0000, 0x0003) AM_DEVWRITE8("aysnd", ay8910_device, address_data_w, 0x00ff) + AM_RANGE(0x0002, 0x0003) AM_DEVREAD8("aysnd", ay8910_device, data_r, 0x00ff) + AM_RANGE(0x0004, 0x0005) AM_READWRITE(twins_port4_r, twins_port4_w) + AM_RANGE(0x0008, 0x0009) AM_WRITE(port6_pal0_w) AM_SHARE("paletteram") + AM_RANGE(0x0010, 0x0011) AM_WRITE(porte_paloff0_w) +ADDRESS_MAP_END + + +static MACHINE_CONFIG_START( spider, twins_state ) + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", V30, 8000000) + MCFG_CPU_PROGRAM_MAP(twins_map) + MCFG_CPU_IO_MAP(spider_io) + MCFG_CPU_VBLANK_INT_DRIVER("screen", twins_state, nmi_line_pulse) + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(50) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(320,256) + MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) + MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins) + MCFG_SCREEN_PALETTE("palette") + + MCFG_PALETTE_ADD("palette", 0x100) + + MCFG_VIDEO_START_OVERRIDE(twins_state,twins) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("aysnd", AY8910, 2000000) + MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1")) + MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2")) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) +MACHINE_CONFIG_END + ROM_START( twins ) ROM_REGION( 0x100000, "maincpu", 0 ) @@ -337,5 +375,13 @@ ROM_START( twinsa ) ROM_LOAD16_BYTE( "hp.bin", 0x000001, 0x080000, CRC(aaf74b83) SHA1(09bd76b9fc5cb7ba6ffe1a2581ffd5633fe440b3) ) ROM_END +ROM_START( spider ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "20.bin", 0x000001, 0x080000, CRC(25e15f11) SHA1(b728f35c817f60a294e38d66559da8977b94a1f5) ) + ROM_LOAD16_BYTE( "21.bin", 0x000000, 0x080000, CRC(ff224206) SHA1(d8d45850983542e811facc917d016841fc56a97f) ) +ROM_END + GAME( 1994, twins, 0, twins, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 1)", GAME_SUPPORTS_SAVE ) GAME( 1994, twinsa, twins, twinsa, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 2)", GAME_SUPPORTS_SAVE ) + +GAME( 1994, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", GAME_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index a523b095e7a..791b665c920 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10107,6 +10107,7 @@ twinbrata // (c) 1995 ppmast93 // (c) 1993 Electronic Devices S.R.L. twins // (c) 1994 twinsa // (c) 1994 +spider mwarr pzletime diff --git a/src/mess/audio/upd1771.c b/src/mess/audio/upd1771.c index bac1b853c14..f6ec40d0143 100644 --- a/src/mess/audio/upd1771.c +++ b/src/mess/audio/upd1771.c @@ -91,7 +91,7 @@ uPD1776C: mentioned in the bristow book, implements VSRSSS speech concatenation (see US Patent 4577343 which is a patent on this VSRSSS implementation) uPD1771C-006: used in NEC APC for sound as the "MPU" - -011: used on Firefox F-4 handheld + -011: used on Firefox F-4/Astro Thunder handheld -015: unknown, known to exist from part scalper sites only. -017: used on Epoch Super Cassete Vision for sound; This audio driver HLEs that part only. diff --git a/src/mess/drivers/hh_hmcs40.c b/src/mess/drivers/hh_hmcs40.c index 852da84948c..1c554cf4419 100644 --- a/src/mess/drivers/hh_hmcs40.c +++ b/src/mess/drivers/hh_hmcs40.c @@ -610,7 +610,7 @@ READ8_MEMBER(hh_hmcs40_state::egalaxn2_input_r) static INPUT_PORTS_START( egalaxn2 ) PORT_START("IN.0") // D1 port R0x - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // separate directional buttons, hence 16way PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY // " @@ -622,7 +622,7 @@ static INPUT_PORTS_START( egalaxn2 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_16WAY // " PORT_START("IN.2") // D3 port R0x - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -962,6 +962,7 @@ CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Colec CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) CONS( 1981, epacman2, 0, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) + CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |