From ef97ae5210c20c0d9d64871f729e241664d552bf Mon Sep 17 00:00:00 2001 From: mariuszw1 Date: Mon, 19 Dec 2011 22:15:02 +0000 Subject: [PATCH] New games added as NOT_WORKING ---------------------------------- Special Criminal Investigation (Tourvision PCE bootleg) [Mariusz Wojcieszek, Clawgrip, Charles MacDonald, AUMAP] --- .gitattributes | 1 + src/emu/machine/i8155.c | 2 + src/mame/drivers/tourvis.c | 289 +++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + src/mame/mame.mak | 1 + 5 files changed, 294 insertions(+) create mode 100644 src/mame/drivers/tourvis.c diff --git a/.gitattributes b/.gitattributes index bfbb00a0c73..e2704147302 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2884,6 +2884,7 @@ src/mame/drivers/toobin.c svneol=native#text/plain src/mame/drivers/topspeed.c svneol=native#text/plain src/mame/drivers/toratora.c svneol=native#text/plain src/mame/drivers/tourtabl.c svneol=native#text/plain +src/mame/drivers/tourvis.c svneol=native#text/plain src/mame/drivers/toypop.c svneol=native#text/plain src/mame/drivers/tp84.c svneol=native#text/plain src/mame/drivers/trackfld.c svneol=native#text/plain diff --git a/src/emu/machine/i8155.c b/src/emu/machine/i8155.c index cc69c83b4ab..fba9b5210cc 100644 --- a/src/emu/machine/i8155.c +++ b/src/emu/machine/i8155.c @@ -456,6 +456,8 @@ void i8155_device::register_w(int offset, UINT8 data) case COMMAND_TM_STOP: // NOP if timer has not started, stop counting if the timer is running if (LOG) logerror("8155 '%s' Timer Command: Stop\n", tag()); + m_to = 1; + timer_output(); m_timer->enable(0); break; diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c new file mode 100644 index 00000000000..47c463e9133 --- /dev/null +++ b/src/mame/drivers/tourvis.c @@ -0,0 +1,289 @@ +/**************************************************************************** + + TourVision + Driver by Mariusz Wojcieszek + + Bootleg PC-Engine based arcade board from the Spanish company TourVision. + Two known hardware revisions, one with a sub-board with the PC-Engine chipset + and the other as an integrated PCB. + + Todo: complete jamma interface emulation. + _______________________________________________________________________________________________________________________________________________ +| | +| ____________ ____________ ____________ ____________ | +| |T74LS125AB1| ____ |T74LS125AB1| ____ |T74LS125AB1| ____ |T74LS125AB1| ____ | +| ------------- | | ------------- | | ------------- | | ------------- | | | +| ____________ | | ____________ | | ____________ | | ____________ | | | +| | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | +| ------------- | | ------------- | | ------------- | | ------------- | | | +| ____________ | | ____________ | | ____________ | | ____________ | | | +| ___________ ____________ | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | +| |4116R-001 | |X74LS32B1 | ------------- | | ------------- | | ------------- | | ------------- | | | +| ------------- ------------- |JP| |JP| |JP| |JP| | +| ___________ | 4| | 3| | 2| | 1| | +|__ ___________ ____________ | | ____________ | | ____________ | | ____________ | | | + | ____________ ____________ | 74LS244N | | | | 74LS244N | | | | 74LS244N | | | | 74LS244N | | | | + __| |SN74LS257SN| |4116R-001 | ------------- | | ------------- | | ------------- | | ------------- | | | +|__ ------------- ------------- ____________ | | ____________ | | ____________ | | ____________ | | | +|__ ____________ ____________ | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | SN74F245N | | | | +|__ | 74LS157N | | 74LS157N | ------------- | | ------------- | | ------------- | | ------------- | | | +|__ ------------- ------------- ____________ | | ____________ | | ____________ | | ____________ | | | +|__ ____________ ____________ | 74LS244N | ---- | 74LS244N | ---- | 74LS244N | ---- | 74LS244N | ---- | +|__ | SN74LS08N | | SN74LS08N | ------------- ------------- ------------- ------------- | +|__ ------------- ------------- | +|__ ____________ ____________ ____________ | +|__ | SN74LS08N | | SN74LS08N | |HSRM2264LM10 | +|__ ------------- ------------- |__________| | +|__ ____________ ____________ | +|__ | 74LS138N | | 74LS138N | | +|__ ------------- ------------- | +|__ ____________ ____________ ____________ ____________ ____________ ____________ ____________ | +|__ | 74LS244N | | 74LS244N | |T74LS32B1 | |MC14017BCP| | T74LS14B1 | | GD74LS393 | |T74LS125AB1| | +|__ ------------- ------------- ------------ ------------ ------------- ------------ ------------- | +|__ ......... ......... ____________ | +|__ ......... ......... | 74LS138N | _________ | +|__ ___________ ___________ ------------ | | ______ | +|__ |4116R-001 | |4116R-001 | _________________ | | | HU | HSRM20256LM12 | +|__ ------------- ------------- | | | BT1 | |C6270| ___ | +|__ __________ ____________ | NEC D4465C | | | | | | | | +|__ | TC4011BP| |SN74LS373N | |________________| |_______| |_____| | | | +|__ ----------- ------------- _________________ |__| | +|__ ..... ___________ ____ | TOURVISION BIOS| | +|__ | 74LS138N | |XT1| | | ______ ______ ___ | + | ------------ |___| |________________| ____ | HU | | HU | | | | + __| IC_ _____________ ________ | | |C6280A |C6260A | | | +| |36| | 74LS244N | _________________________ | PT | | | | | |__| | +| ---- ------------- | | |____| |_____| |_____| | +| ________ _____________ | NEC D8085AHC | ___________ ___________ _______ HSRM20256LM12| +| | DIP 2 | | 74LS244N | |________________________| | T74LS14B1| |MC14001BCP| |LM393N| ________ | +| --------- -------------- _________________________ ------------ ------------ -------- |D74HCU04C | +| ________ _____________ | | ___________ --------- | +| ________ | 74LS244N | | NEC D8155HC | | 7407N | ____ | +| | DIP 1 | -------------- |________________________| ------------ |XT2| | +| --------- ____ _____________ _____________ |___| | +| JP107 | JP 106 | | JP 105 | | +| ---- -------------- -------------- | +|_______________________________________________________________________________________________________________________________________________| + +IC36 = ST NE 555N 99201 +XT1 = 6144 KSS1H +JP107 = 2-pin connector +JP106 = 14-pin connector to 2-digit 7 segments display +JP105 = 16-pin connector (unknown functionality) +PT = Push-type switch +BT1 = 3.6 V battery +XT2 = 21.32825 MHz UNI 90-H +JP1-4 = Carts slots + +****************************************************************************/ + +#include "emu.h" +#include "cpu/i8085/i8085.h" +#include "machine/pcecommn.h" +#include "video/vdc.h" +#include "cpu/h6280/h6280.h" +#include "sound/c6280.h" +#include "machine/i8155.h" + + +class tourvision_state : public driver_device +{ +public: + tourvision_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) { } + +}; + + +static INPUT_PORTS_START( tourvision ) + PORT_START( "JOY" ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* button I */ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* button II */ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* select */ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* run */ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) +INPUT_PORTS_END + +static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8) + AM_RANGE( 0x000000, 0x07FFFF) AM_ROM + AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000) AM_BASE( &pce_user_ram ) + AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_0_r, vdc_0_w ) + AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE( vce_r, vce_w ) + AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE( "c6280", c6280_r, c6280_w ) + AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_READWRITE( h6280_timer_r, h6280_timer_w ) + AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE( pce_joystick_r, pce_joystick_w ) + AM_RANGE( 0x1FF400, 0x1FF7FF) AM_READWRITE( h6280_irq_status_r, h6280_irq_status_w ) +ADDRESS_MAP_END + +static ADDRESS_MAP_START( pce_io , AS_IO, 8) + AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w ) +ADDRESS_MAP_END + +static WRITE8_HANDLER( tourvision_8085_d000_w ) +{ + //logerror( "D000 (8085) write %02x\n", data ); +} + +static ADDRESS_MAP_START(tourvision_8085_map, AS_PROGRAM, 8) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x80ff) AM_DEVREADWRITE_MODERN("i8155", i8155_device, memory_r, memory_w) + AM_RANGE(0x8100, 0x8107) AM_DEVREADWRITE_MODERN("i8155", i8155_device, io_r, io_w) + AM_RANGE(0xd000, 0xd000) AM_WRITE( tourvision_8085_d000_w ) + AM_RANGE(0xe000, 0xe1ff) AM_RAM +ADDRESS_MAP_END + +static WRITE8_DEVICE_HANDLER(tourvision_i8155_a_w) +{ + //logerror("i8155 Port A: %02X\n", data); +} + +static WRITE8_DEVICE_HANDLER(tourvision_i8155_b_w) +{ + //logerror("i8155 Port B: %02X\n", data); +} + +static WRITE8_DEVICE_HANDLER(tourvision_i8155_c_w) +{ + //logerror("i8155 Port C: %02X\n", data); +} + +static WRITE_LINE_DEVICE_HANDLER(tourvision_timer_out) +{ + cputag_set_input_line(device->machine(), "sub", I8085_RST55_LINE, state ? CLEAR_LINE : ASSERT_LINE ); + //logerror("Timer out %d\n", state); +} + +static I8155_INTERFACE(i8155_intf) +{ + DEVCB_NULL, + DEVCB_HANDLER(tourvision_i8155_a_w), + DEVCB_NULL, + DEVCB_HANDLER(tourvision_i8155_b_w), + DEVCB_NULL, + DEVCB_HANDLER(tourvision_i8155_c_w), + DEVCB_LINE(tourvision_timer_out) +}; + +static const c6280_interface c6280_config = +{ + "maincpu" +}; + +static MACHINE_CONFIG_START( tourvision, tourvision_state ) + /* basic machine hardware */ + MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) + MCFG_CPU_PROGRAM_MAP(pce_mem) + MCFG_CPU_IO_MAP(pce_io) + MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "screen", 0, 1) + + MCFG_QUANTUM_TIME(attotime::from_hz(60)) + + MCFG_CPU_ADD("sub", I8085A, 18000000/3 /*?*/) + MCFG_CPU_PROGRAM_MAP(tourvision_8085_map) + + /* video hardware */ + + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) + MCFG_SCREEN_UPDATE( pce ) + + /* MCFG_GFXDECODE( pce_gfxdecodeinfo ) */ + MCFG_PALETTE_LENGTH(1024) + MCFG_PALETTE_INIT( vce ) + + MCFG_VIDEO_START( pce ) + + MCFG_I8155_ADD("i8155", 1000000 /*?*/, i8155_intf) + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker") + MCFG_SOUND_ADD("c6280", C6280, PCE_MAIN_CLOCK/6) + MCFG_SOUND_CONFIG(c6280_config) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) + +MACHINE_CONFIG_END + +/* +Taito Scene Crime Investigation (SCI) Tourvision cart. + +Notes: + -1st and 2nd halfs are identical, left unsplit for reference. + -Cart's A19 line seems not connected to anything. + -CRC of split ROM ("09a0bfcc") matches the common English language PC Engine Hu-Card ROM dump. + +Dumped directly from the cartridge edge connector using the following adapter: + + ---------------------------------------------------------------------------- + Cartridge pinout + ---------------------------------------------------------------------------- + + +----------+ + (N.C.) |01 01| +5V + +5V |02 02| +5V + A18 |03 03| +5V + A14 |04 04| A17 + A8 |05 05| A13 + A11 |06 06| A9 + A10 |07 07| OE# + D7 |08 08| CE# +(front of D5 |09 09| D6 (rear of + cartridge) D3 |10 10| D4 cartridge) + D2 |11 11| GND + D0 |12 12| D1 + A1 |13 13| A0 + A3 |14 14| A2 + A5 |15 15| A4 + A7 |16 16| A6 + A15 |17 17| A12 + A19 |18 18| A16 + GND |19 19| (N.C.) + GND |20 20| (N.C.) + (KEY) |21------21| (KEY) + (N.C.) |22 22| (N.C.) + (N.C.) |23 23| (N.C.) + (N.C.) |24 24| (N.C.) + (N.C.) |25 25| (N.C.) + +----------+ + + ---------------------------------------------------------------------------- + 27C080 pinout + ---------------------------------------------------------------------------- + +----v----+ + A19 | 1 32| +5V + A16 | 2 31| A18 + A15 | 3 30| A17 + A12 | 4 29| A14 + A7 | 5 28| A13 + A6 | 6 27| A8 + A5 | 7 26| A9 + A4 | 8 25| A11 + A3 | 9 24| OE# + A2 |10 23| A10 + A1 |11 22| CE# + A0 |12 21| D7 + D0 |13 20| D6 + D1 |14 19| D5 + D2 |15 18| D4 + GND |16 17| D3 + +---------+ +*/ + +ROM_START(scitvpce) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD( "tourv_sci.bin", 0x00000, 0x80000, CRC(4baac6d8) SHA1(4c2431d9553e2bd952cf816e78fc1e3387376ef4) ) + ROM_CONTINUE(0x00000, 0x80000) + + ROM_REGION( 0x8000, "sub", 0 ) + ROM_LOAD( "tourvision.bin", 0x0000, 0x8000, CRC(87cf66c1) SHA1(d6b42137be7a07a0e299c2d922328a6a9a2b7b8f) ) +ROM_END + +static DRIVER_INIT(tourvision) +{ + DRIVER_INIT_CALL(pce); +} + +GAME( 1991, scitvpce, 0, tourvision, tourvision, tourvision, ROT0, "bootleg (Tourvision) / Taito", "Special Criminal Investigation (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 6f0af203ead..0b76d8d6745 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10615,6 +10615,7 @@ aliencr // (c) 1989 Hudson Soft paclandp // (c) 1989 Namco ggconnie // (c) ???? Capcom paranoia // (c) 1990 Naxat Soft +scitvpce // (c) 1991 Taito (Tourvision bootleg) vcombat // (c) 1993 VR8 Inc. shadfgtr // (c) 1993 DUTECH Inc. skimaxx // (c) 1996 Kyle Hodgetts/ICE diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 18c40fa51bc..2bc7f2b14d2 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -1134,6 +1134,7 @@ $(MAMEOBJ)/pacman.a: \ $(MAMEOBJ)/pce.a: \ $(DRIVERS)/ggconnie.o \ $(DRIVERS)/paranoia.o \ + $(DRIVERS)/tourvis.o \ $(DRIVERS)/uapce.o \ $(MACHINE)/pcecommn.o $(VIDEO)/vdc.o \