summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcos10.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcos10.c')
-rw-r--r--src/mame/drivers/namcos10.c515
1 files changed, 515 insertions, 0 deletions
diff --git a/src/mame/drivers/namcos10.c b/src/mame/drivers/namcos10.c
new file mode 100644
index 00000000000..82fac579c17
--- /dev/null
+++ b/src/mame/drivers/namcos10.c
@@ -0,0 +1,515 @@
+/***************************************************************************
+
+ Namco System 10 - Arcade PSX Hardware
+ =====================================
+ Driver by smf
+
+Namco System 10 Hardware Overview
+---------------------------------
+Note! This document is a Work-In-Progress and will be updated from time to time when more dumps are available.
+
+This document covers all the known Namco System 10 games, including....
+*Drum Master (C) Namco, 2001
+*Drum Master 2 (C) Namco, 2001
+*Drum Master 3 (C) Namco, 2002
+*Drum Master 4 (C) Namco, 2003
+*Drum Master 5 (C) Namco, 2003
+*Drum Master 6 (C) Namco, 2004
+*Drum Master 7 (C) Namco, 2005
+*GAHAHA Ippatsu-dou (C) Namco/Metro, 2000
+*GAHAHA Ippatsu-dou 2 (C) Namco/Metro, 2001
+Gamshara (10021 Ver.A) (C) Mitchell, 2003
+Gekitoride-Jong Space (10011 Ver.A) (C) Namco/Metro, 2001
+*Golgo-13 3 : Juusei no Chinkonka (C) Namco/8ing/Raizing, 2001
+*Hard Puncher Hajime no Ippo 2 Ouja e no Chousen (C) Namco/Taito, 2002
+*Honne Hakkenki (C) Namco, 2001
+Kotoba no Puzzle Mojipittan (KPM1 Ver.A) (C) Namco, 2001
+*Kurukuru Food (C) Namco, 2002
+Mr Driller 2 (DR21 Ver.A) (C) Namco, 2000
+Mr Driller 2 (DR22 Ver.A) (C) Namco, 2000
+Mr Driller G (DRG1 Ver.A) (C) Namco, 2001
+*NFL Classic Football (C) Namco, 2003
+*Panicuru Panekuru (PPA1 Ver.A) (C) Namco, 2001
+*Photo Battole (C) Namco, 2001
+*Ren-ai Quiz High School Angel (C) Namco, 2002
+*Seishun Quiz Colorful High School (C) Namco, 2002
+Star Trigon (STT1 Ver.A) (C) Namco, 2002
+*Taiko No Tatsujin (C) Namco, 2001
+*Taiko No Tatsujin 2 (C) Namco, 2001
+*Taiko No Tatsujin 3 (C) Namco, 2002
+*Taiko No Tatsujin 4 (C) Namco, 2003
+*Taiko No Tatsujin 5 (C) Namco, 2003
+*Taiko No Tatsujin 6 (C) Namco, 2004
+*Tsukkomi Yousei Gips Nice Tsukkomi (C) Namco/Metro, 2002
+*Uchuu Daisakusen : Chocovader Contactee (CVC1 Ver.A) (C) Namco, 2002
+
+* - denotes not dumped yet. If you can help with the remaining undumped S10 games,
+ please contact me at http://www.mameworld.net/gurudumps/
+
+The Namco System 10 system comprises 2 PCB's....
+MAIN PCB - This is the mother board PCB. It holds the main CPU/GPU & SPU and all sound circuitry, program & video RAM,
+ controller/input logic and video output circuitry. Basically everything except the ROMs.
+ There are three known revisions of this PCB so far. The differences seem very minor. The 2nd and 3rd revision
+ have an updated CPLD revision.
+ The 3rd revision has an updated model Sony chip. The only other _noticable_ difference is some component
+ shuffling in the sound amplification section to accomodate two extra 1000uF capacitors and one 470uF capacitor
+ has been replaced by a 1000uF capacitor. Everything else, including all the PLDs appears to be identical.
+ Note there are no ROMs on the Main PCB and also no custom Namco chips on System10, which seem to have been
+ phased out. Instead, they have been replaced by (custom programmed) CPLDs, probably due to cost-cutting
+ measures within the company, or to reduce the cost of System10 to an entry-level no-frills development platform.
+MEM PCB - There are two known revisions of this PCB (so far). They're mostly identical except for the type/number of ROMs
+ used and the contents of the CPLD. The 2nd revision also has a RAM chip on it.
+ Each game has a multi-letter code assigned to it which is printed on a small sticker and placed on the top side
+ of the MEM PCB.
+ This code is then proceeded by a number (only '1' & '2' seen so far), then 'Ver.' then A/B/C/D/E (only 'A' seen so far)
+ which denotes the software revision, and in some cases a sub-revision such as 1 or 2 (usually only listed in the
+ test mode).
+ The first 1 denotes a Japanese version. Other numbers denote a World version.
+ For World versions, only the main program changes, the rest of the (graphics) ROMs use the Japanese version ROMs.
+ Any System 10 MEM PCB can be swapped to run on any System 10 Main PCB regardless of the main board revision.
+ The high scores are stored on the MEM PCB (probably inside the main program EEPROMs/FlashROMs or maybe the CPLD?).
+ Also, on all System 10 games, there is a sticker with a serial number on it and the program ROMs also contain
+ that same serial number. I'm not sure why, they're not exactly _easily_ tracable and no one cares either way ;-)
+ See the Main PCB and ROM Daughterboard PCB texts below for more details.
+
+
+Main PCB Layout
+---------------
+
+Revision 1
+SYSTEM10 MAIN PCB 8906960103 (8906970103)
+
+Revision 2
+SYSTEM10 MAIN PCB 8906960104 (8906970104)
+
+Revision 3
+SYSTEM10 MAIN PCB 8906962400 (8906972400)
+ |----------------------------------------------------------|
+ | LA4705 VR1 J201 |
+ | |----------------------| |
+ | NJM3414 |----------------------| |
+|-| |
+| BA3121 |
+| NJM3414 54V25632 54V25632 J1|
+| CXD1178Q |
+|J JP4 |---------| |-------| |
+|A | | | | |
+|M CXA2067AS |CXD8561CQ| |CY37128| |
+|M 53.693175MHz | | |VP160 | |
+|A | | | | |
+| |---------| |-------| |
+| |
+| 101.4912MHz |
+|-| MAX734 IS41LV16100 |
+ | |---------| |
+ | DSW1 IS41LV16100 | | |
+ | |CXD8606BQ| |
+ | GAL16V8D | | |
+ |J5 |-| * | | PST592 |
+ | | | |---------| |--------| |
+ | | | | | |
+ | | | * |CXD2938Q| |
+ |J4 | |J202 IS41LV16256 | | |
+ | | | | | |
+ | | | EPM3064 |--------| |
+ | | | |
+ | |-| PQ30RV21 |
+ | J103 |
+ |----------------------------------------------------------|
+Notes:
+------
+ CXD8606BQ : SONY CXD8606BQ Central Processing Unit / GTE (QFP208)
+ - replaced by CXD8606CQ on Revision 3 Main PCB
+ CXD8561CQ : SONY CXD8561CQ Graphics Processsor Unit (QFP208)
+ CXD2938Q : SONY CXD2938Q Sound Processor Unit (QFP208)
+ CXD1178Q : SONY CXD1178Q 8-bit RGB 3-channel D/A converter (QFP48)
+ CXA2067AS : SONY CXA2067AS TV/Video circuit RGB Pre-Driver (SDIP30)
+ CY37128VP160: CYPRESS CY37128VP160 Complex Programmable Logic Device (TQFP160, stamped 'S10MA1')
+ - replaced by an updated revision on Revision 2 & 3 Main PCB and stamped 'S10MA1B'
+ EPM3064 : Altera MAX EPM3064ATC100-10 Complex Programmable Logic Device (TQFP100, stamped 'S10MA2A')
+ GAL16V8D : GAL16V8D PAL (PLCC20, stamped 'S10MA3A')
+ IS41LV16100 : ISSI IS41LV16100S-50T 1M x16 EDO DRAM (x2, TSOP50(44) Type II)
+ IS41LV16256 : ISSI IS41LV16256-50T 256k x16 EDO DRAM (TSOP44(40) Type II)
+ 54V25632 : OKI 54V25632 256K x32 SGRAM (x2, QFP100)
+ PQ30RV31 : Sharp PQ30RV31 5 Volt to 3.3 Volt Voltage Regulator
+ LA4705 : LA4705 15W 2-channel Power Amplifier (SIP18)
+ MAX734 : MAX734 +12V 120mA Flash Memory Programming Supply Switching Regulator (SOIC8)
+ PST592 : PST592J System Reset IC with 2.7V detection circuit (SOIC4)
+ BA3121 : Ground Isolation Amplifier/ Noise Eliminator (SOIC8)
+ NJM3414 : 70mA Dual Op Amp (x2, SOIC8)
+ DSW1 : 8 position dip switch
+ JP4 : 2 position jumper, set to NC, alt. position labelled SYNC (Note: changing the jumper position has
+ no visual effect)
+ J1 : 40 Pin IDC connector for plugging of a flat 40-wire cable (not used, purpose unknown, possible
+ CDROM/DVD)
+ J4 : 10 pin header for extra controls etc / (note: custom Namco 48 pin edge connector is not on
+ System10 PCBs)
+ J5 : 4 pin header for stereo sound out \
+ J201 : 100 pin custom Namco connector for mounting of MEM PCB. This connector is surface-mounted, not a
+ thru-hole type.
+ J202 : 80 pin custom Namco connector for mounting of another board. This connector is surface-mounted,
+ not a thru-hole type.
+ (not used, purpose unknown)
+ J103 : 6-pin JAMMA2 power plug (Note none of the other JAMMA2 standard connectors are present)
+ VR1 : Volume potentiometer
+ * : Unpopulated position for IS41LV16100 1M x16 EDO DRAM
+
+Additional Notes:
+ 1. In test mode (Display Test) the screen can be set to interlace or non-interlace mode. The graphics in
+ interlace mode are visually much smoother with noticeable screen flickering. Non-interlace modes gives
+ a much blockier graphic display (i.e. lower resolution) but without screen flickering.
+ 2. There is no dedicated highscore/options EEPROM present on the PCB, the game stores it's settings on the
+ game board (probably in the program EEPROMs/FlashROMs or maybe the CPLD?).
+
+ROM Daughterboard PCB
+---------------------
+This PCB holds all the ROMs.
+There are two known types of ROM daughterboards used on S10 games (so far).
+All of the PCBs are the same size (approx 5" x 5") containing one custom connector surface-mounted to the underside of
+the PCB, some MASKROMs/FlashROMs, a CPLD (which seems to be the customary 'KEYCUS' chip, and on the 2nd type a RAM
+chip also.
+
+********
+*Type 1*
+********
+System10 MEM(M) PCB 8906961000 (8906970700)
+|-------------------------------------|
+| |
+| |-------| +-
+| | | +-
+| |CY37128| +-
+| |VP160 | +-
+| | | +-
+| 7E 7D |-------| +-
+| |
+| 6E 6D |
+| |
+| 5E 5D 5A |
+| |
+| 4E 4D 4A |
+| |
+| 3E 3D |
+| |
+| 2E 2D 2A |
+| |
+| 1E 1D 1A |
+| |
+|-------------------------------------|
+Notes:
+ CY37128VP160: CY37128VP160 Cypress Complex Programmable Logic Device (TQFP160)
+ 1A - 5A : Intel Flash DA28F640J5 64MBit Flash EEPROM (SSOP56)
+ 1D - 7E : Samsung Electronics K3N9V1000A-YC 128MBit MASK ROM (TSOP48) (see note 3)
+ 6 pin header: (purpose unknown, probably for programming the CPLD)
+
+This PCB is used on:
+
+ Software MEM PCB
+Game Revision Sticker KEYCUS ROMs Populated
+------------------------------------------------------------------------------------
+Mr Driller 2 DR21/VER.A3 DR21 Ver.A KC001A DR21VERA.1A, DR21MA1.1D, DR21MA2.2D
+Mr Driller 2 DR22/VER.A3 DR22 Ver.A KC001A DR22VERA.1A, DR21MA1.1D, DR21MA2.2D
+
+ Note
+ 1. The ROM PCB has locations for 4x 64MBit program ROMs, but only 1A is populated.
+ 2. The ROM PCB has locations for 14x 128MBit GFX ROMs (Total capacity = 2048MBits) but only 1D and 2D are populated.
+ 3. These ROMs are only 18mm long, dumping them requires a special custom adapter
+
+********
+*Type 2*
+********
+System10 MEM(N) PCB 8906961402 (8906971402)
+|-------------------------------------|
+| |
+| |---------| +-
+| | | +-
+| |CY37256 | +-
+| 8E 8D |VP208 | +-
+| | | +-
+| 7E 7D |---------| +-
+| |
+| 6E 6D |
+| |
+| 5E 5D CY7C1019 |
+| |
+| 4E 4D |
+| |
+| 3E 3D |
+| |
+| 2E 2D |
+| |
+| 1E 1D |
+| |
+|-------------------------------------|
+Notes:
+ CY37256VP208: Cypress CY37256VP208 Complex Programmable Logic Device (TQFP208)
+ CY7C1019 : Cypress CY7C1019BV33-15VC or Samsung Electronics K6R1008V1C-JC15 128k x8 bit 3.3V High Speed CMOS Static Ram (SOJ32)
+ 1D - 8E : Samsung Electronics K9F2808U0B-YCBO 128MBit NAND Flash EEPROM (TSOP48)
+ 6 pin header: (purpose unknown, probably for programming the CPLD)
+
+This PCB is used on:
+
+ MEM PCB
+Game Sticker KEYCUS ROMs Populated
+---------------------------------------------------------------------------
+Gamshara 10021 Ver.A KC020A 8E, 8D
+Gekitoride-Jong Space 10011 Ver.A KC003A 8E, 8D, 7E, 7D
+Mr.Driller G DRG1 Ver.A KC007A 8E, 8D, 7E
+Kotoba no Puzzle Mojipittan KPM1 Ver.A KC012A 8E, 8D, 7E
+Panicuru Panekuru PPA1 Ver.A KC017A 8E, 8D, 7E
+Star Trigon STT1 Ver.A KC019A 8E, 8D
+Utyuu Daisakusen Chocovader Contactee CVC1 Ver.A KC022A
+
+ Note
+ 1. The ROM PCB has locations for 16x 128MBit FlashROMs (Total capacity = 2048MBits) but usually only a few are populated.
+*/
+
+#include "driver.h"
+#include "cpu/mips/psx.h"
+#include "includes/psx.h"
+
+static ADDRESS_MAP_START( namcos10_map, ADDRESS_SPACE_PROGRAM, 32 )
+ AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE(1) AM_BASE(&g_p_n_psxram) AM_SIZE(&g_n_psxramsize) /* ram */
+ AM_RANGE(0x1f800000, 0x1f8003ff) AM_RAM /* scratchpad */
+ AM_RANGE(0x1f801000, 0x1f801007) AM_WRITENOP
+ AM_RANGE(0x1f801008, 0x1f80100b) AM_RAM /* ?? */
+ AM_RANGE(0x1f80100c, 0x1f80102f) AM_WRITENOP
+ AM_RANGE(0x1f801010, 0x1f801013) AM_READNOP
+ AM_RANGE(0x1f801014, 0x1f801017) AM_READNOP
+ AM_RANGE(0x1f801040, 0x1f80105f) AM_READWRITE(psx_sio_r, psx_sio_w)
+ AM_RANGE(0x1f801060, 0x1f80106f) AM_WRITENOP
+ AM_RANGE(0x1f801070, 0x1f801077) AM_READWRITE(psx_irq_r, psx_irq_w)
+ AM_RANGE(0x1f801080, 0x1f8010ff) AM_READWRITE(psx_dma_r, psx_dma_w)
+ AM_RANGE(0x1f801100, 0x1f80112f) AM_READWRITE(psx_counter_r, psx_counter_w)
+ AM_RANGE(0x1f801810, 0x1f801817) AM_READWRITE(psx_gpu_r, psx_gpu_w)
+ AM_RANGE(0x1f801820, 0x1f801827) AM_READWRITE(psx_mdec_r, psx_mdec_w)
+ AM_RANGE(0x1f801c00, 0x1f801dff) AM_NOP
+ AM_RANGE(0x1f802020, 0x1f802033) AM_RAM /* ?? */
+ AM_RANGE(0x1f802040, 0x1f802043) AM_WRITENOP
+ AM_RANGE(0x1fc00000, 0x1fffffff) AM_ROM AM_SHARE(2) AM_REGION(REGION_USER1, 0) /* bios */
+ AM_RANGE(0x80000000, 0x803fffff) AM_RAM AM_SHARE(1) /* ram mirror */
+ AM_RANGE(0x9fc00000, 0x9fffffff) AM_ROM AM_SHARE(2) /* bios mirror */
+ AM_RANGE(0xa0000000, 0xa03fffff) AM_RAM AM_SHARE(1) /* ram mirror */
+ AM_RANGE(0xbfc00000, 0xbfffffff) AM_ROM AM_SHARE(2) /* bios mirror */
+ AM_RANGE(0xfffe0130, 0xfffe0133) AM_WRITENOP
+ADDRESS_MAP_END
+
+static void memcpy32le( UINT32 *dst, UINT8 *src, int len )
+{
+ while( len > 0 )
+ {
+ *( dst ) = ( *( src + 0 ) << 0 ) | ( *( src + 1 ) << 8 ) | ( *( src + 2 ) << 16 ) | ( *( src + 3 ) << 24 );
+ dst++;
+ src += 4;
+ len -= 4;
+ }
+}
+
+static void memm_driver_init( void )
+{
+ psx_driver_init();
+}
+
+static void memn_driver_init( void )
+{
+ UINT8 *BIOS = (UINT8 *)memory_region( REGION_USER1 );
+ UINT8 *ROM = (UINT8 *)memory_region( REGION_USER2 );
+
+ memcpy32le( (UINT32 *)( BIOS + 0x0000000 ), ROM + 0x08000, 0x001c000 );
+ memcpy32le( (UINT32 *)( BIOS + 0x0020000 ), ROM + 0x24000, 0x03dffff );
+
+ psx_driver_init();
+}
+
+static void decrypt_bios( int b15, int b14, int b13, int b12, int b11, int b10, int b9, int b8,
+ int b7, int b6, int b5, int b4, int b3, int b2, int b1, int b0 )
+{
+ UINT16 *BIOS = (UINT16 *)memory_region( REGION_USER1 );
+ int len = memory_region_length( REGION_USER1 ) / 2;
+ int i;
+
+ for( i = 0; i < len; i++ )
+ {
+ BIOS[ i ] = BITSWAP16( BIOS[ i ] ^ 0xaaaa,
+ b15, b14, b13, b12, b11, b10, b9, b8, b7, b6, b5, b4, b3, b2, b1, b0 );
+ }
+}
+
+static DRIVER_INIT( mrdrilr2 )
+{
+ memm_driver_init();
+ decrypt_bios( 0xc, 0xd, 0xf, 0xe, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x4, 0x1, 0x2, 0x5, 0x0, 0x3 );
+}
+
+static DRIVER_INIT( gjspace )
+{
+ memn_driver_init();
+ decrypt_bios( 0x0, 0x2, 0xe, 0xd, 0xf, 0x6, 0xc, 0x7, 0x5, 0x1, 0x9, 0x8, 0xa, 0x3, 0x4, 0xb );
+}
+
+static DRIVER_INIT( mrdrilrg )
+{
+ memn_driver_init();
+ decrypt_bios( 0x6, 0x4, 0x7, 0x5, 0x2, 0x1, 0x0, 0x3, 0xc, 0xd, 0xe, 0xf, 0x8, 0x9, 0xb, 0xa );
+}
+
+static DRIVER_INIT( knpuzzle )
+{
+ memn_driver_init();
+ decrypt_bios( 0x6, 0x7, 0x4, 0x5, 0x2, 0x0, 0x3, 0x1, 0xc, 0xd, 0xe, 0xf, 0x9, 0xb, 0x8, 0xa );
+}
+
+static DRIVER_INIT( startrgn )
+{
+ memn_driver_init();
+ decrypt_bios( 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9 );
+}
+
+static DRIVER_INIT( gamshara )
+{
+ memn_driver_init();
+ decrypt_bios( 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x8, 0x9, 0xa, 0xb );
+}
+
+static MACHINE_RESET( namcos10 )
+{
+ psx_machine_init();
+}
+
+static MACHINE_DRIVER_START( namcos10 )
+ /* basic machine hardware */
+ MDRV_CPU_ADD( PSXCPU, 33868800 / 2 ) /* 33MHz ?? */
+ MDRV_CPU_PROGRAM_MAP( namcos10_map, 0 )
+ MDRV_CPU_VBLANK_INT( psx_vblank, 1 )
+
+ MDRV_SCREEN_REFRESH_RATE( 60 )
+ MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
+
+ MDRV_MACHINE_RESET( namcos10 )
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER )
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE( 1024, 1024 )
+ MDRV_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
+ MDRV_PALETTE_LENGTH( 65536 )
+
+ MDRV_PALETTE_INIT( psx )
+ MDRV_VIDEO_START( psx_type2 )
+ MDRV_VIDEO_UPDATE( psx )
+
+ /* sound hardware */
+ MDRV_SPEAKER_STANDARD_STEREO("left", "right")
+MACHINE_DRIVER_END
+
+static INPUT_PORTS_START( namcos10 )
+ /* IN 0 */
+ PORT_START
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test Switch") PORT_CODE(KEYCODE_F2)
+ PORT_BIT( 0x7fff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ /* IN 1 */
+ PORT_START
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON4 )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON5 )
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON6 )
+ PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ /* IN 2 */
+ PORT_START
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_SERVICE2 )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2)
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2)
+ PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ /* IN 3 */
+ PORT_START
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+INPUT_PORTS_END
+
+ROM_START( mrdrilr2 )
+ ROM_REGION32_LE( 0x800000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD( "dr21vera.1a", 0x000000, 0x800000, CRC(f93532a2) SHA1(8b72f2868978be1f0e0abd11425a3c8b2b0c4e99) )
+ROM_END
+
+ROM_START( gjspace )
+ ROM_REGION32_LE( 0x400000, REGION_USER1, 0 ) /* bios */
+ ROM_FILL( 0x0000000, 0x400000, 0x55 )
+
+ ROM_REGION( 0x4000000, REGION_USER2, 0 ) /* main prg */
+ ROM_LOAD( "10011a_0.bin", 0x0000000, 0x1000000, CRC(853e329e) SHA1(dd272ab2de9052c5aeee9e0ead4ee3d14347593e) )
+ ROM_LOAD( "10011a_1.bin", 0x1000000, 0x1000000, CRC(7d4e96f7) SHA1(41b0d27b93662f15547311c8723ac5141e129cab) )
+ ROM_LOAD( "10011a_2.bin", 0x2000000, 0x1000000, CRC(83111de6) SHA1(d760fd41644104f6d3a2806ab4664df2c77bdc42) )
+ ROM_LOAD( "10011a_3.bin", 0x3000000, 0x1000000, CRC(b6ea8be7) SHA1(3e65deda2b0e6758ce0ed05419ed096efb8ad755) )
+ROM_END
+
+ROM_START( mrdrilrg )
+ ROM_REGION32_LE( 0x400000, REGION_USER1, 0 ) /* bios */
+ ROM_FILL( 0x0000000, 0x400000, 0x55 )
+
+ ROM_REGION( 0x3000000, REGION_USER2, 0 ) /* main prg */
+ ROM_LOAD( "drg1a_0.bin", 0x0000000, 0x1000000, CRC(1e5595f1) SHA1(0373ccb6e4b6fe96010afbb9657c3c0b2b02dd57) )
+ ROM_LOAD( "drg1a_1.bin", 0x1000000, 0x1000000, CRC(4db3a361) SHA1(d6a4fb682ab75cd98a9a960c244e94cacd367f12) )
+ ROM_LOAD( "drg1a_2.bin", 0x2000000, 0x1000000, CRC(c99ffa30) SHA1(fdcc0a348fe705c5ed1611170570f2fd9068525a) )
+ROM_END
+
+ROM_START( knpuzzle )
+ ROM_REGION32_LE( 0x400000, REGION_USER1, 0 ) /* bios */
+ ROM_FILL( 0x0000000, 0x400000, 0x55 )
+
+ ROM_REGION( 0x3000000, REGION_USER2, 0 ) /* main prg */
+ ROM_LOAD( "kpm1a_0.bin", 0x0000000, 0x1000000, CRC(606d001b) SHA1(5a94e56a164a9132af7f9bd51cae0674dbe0e036) )
+ ROM_LOAD( "kpm1a_1.bin", 0x1000000, 0x1000000, CRC(a506d767) SHA1(f4830edc8eaa42ff80e83aca2fa38a4d2807c667) )
+ ROM_LOAD( "kpm1a_2.bin", 0x2000000, 0x1000000, CRC(5f40c402) SHA1(2a56421c0f0c9cc5b7b93ddacfc6f3d214a946d9) )
+ROM_END
+
+ROM_START( startrgn )
+ ROM_REGION32_LE( 0x400000, REGION_USER1, 0 ) /* bios */
+ ROM_FILL( 0x0000000, 0x400000, 0x55 )
+
+ ROM_REGION( 0x2000000, REGION_USER2, 0 ) /* main prg */
+ ROM_LOAD( "stt1a_0.bin", 0x0000000, 0x1000000, CRC(07513d66) SHA1(baed445ff81e7f687e39b26648b3fe2ff601826b) )
+ ROM_LOAD( "stt1a_1.bin", 0x1000000, 0x1000000, CRC(f6e8e641) SHA1(37c8c1482d652b46a744252721299448b15e1027) )
+ROM_END
+
+ROM_START( gamshara )
+ ROM_REGION32_LE( 0x400000, REGION_USER1, 0 ) /* bios */
+ ROM_FILL( 0x0000000, 0x400000, 0x55 )
+
+ ROM_REGION( 0x2000000, REGION_USER2, 0 ) /* main prg */
+ ROM_LOAD( "10021a.8e", 0x0000000, 0x1000000, CRC(db0a3687) SHA1(757360c43fba247e6c0c0fc66bb089575e19d646) )
+ ROM_LOAD( "10021a.8d", 0x1000000, 0x1000000, CRC(bebafef6) SHA1(6c965c09f3186523d27c50894a15b9c1dd02a794) )
+ROM_END
+
+GAME( 2000, mrdrilr2, 0, namcos10, namcos10, mrdrilr2, ROT0, "Namco", "Mr Driller 2 (DR21 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2001, gjspace, 0, namcos10, namcos10, gjspace, ROT0, "Namco/Metro", "Gekitoride-Jong Space (10011 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2001, mrdrilrg, 0, namcos10, namcos10, mrdrilrg, ROT0, "Namco", "Mr. Driller G (DRG1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2001, knpuzzle, 0, namcos10, namcos10, knpuzzle, ROT0, "Namco", "Kotoba no Puzzle Mojipittan (KPM1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2002, startrgn, 0, namcos10, namcos10, startrgn, ROT0, "Namco", "Star Trigon (STT1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2003, gamshara, 0, namcos10, namcos10, gamshara, ROT0, "Mitchell", "Gamshara (10021 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )