trunk/src/mame/drivers/pprobe.c
| r18870 | r18871 | |
| 1 | | /* |
| 2 | | |
| 3 | | Planet Probe - unknown manufacture - Copyright 1985 |
| 4 | | Game probably programmed by same people behind some Kyugo/Orca/Komax games (see hiscore table, Gyrodine pinout, clocks etc.) |
| 5 | | |
| 6 | | Upper board marked DVL/A-V |
| 7 | | Bottom Bord DVL/B-V |
| 8 | | |
| 9 | | The pcb seems a bootleg/prototype: |
| 10 | | On the upper board there are some pads for jumpers , some empty spaces left unpopulated for additional TTLs and an XTAL. |
| 11 | | All 5 sockets for 2732 eproms were modified to accept 2764 eproms. |
| 12 | | The AY8910 pin 26 (TEST 2) is grounded with a flying wire |
| 13 | | |
| 14 | | Upper board chips: |
| 15 | | 5x 2764 eproms |
| 16 | | 1x 2128 static ram (2k ram) |
| 17 | | 2x z80B |
| 18 | | 1x AY8910 |
| 19 | | 2x 8 positions dipswitches |
| 20 | | |
| 21 | | Bottom Board chips: |
| 22 | | 5x 2764 eproms |
| 23 | | 2x 2128 static ram (2kx8 ram) |
| 24 | | 4x 93422 DRAM (256x4 dram) |
| 25 | | 1x 6301 PROM (probably used for background ?) |
| 26 | | 3x 82s129 Colour PROMS (connected to resistors) |
| 27 | | |
| 28 | | Clocks measured: |
| 29 | | |
| 30 | | Main XTAL 18.432mhz |
| 31 | | 2x z80 : 18.432 / 6 |
| 32 | | AY8910 : 18.432 / 12 |
| 33 | | Vsync : 60.58hz |
| 34 | | |
| 35 | | */ |
| 36 | | |
| 37 | | |
| 38 | | |
| 39 | | #include "emu.h" |
| 40 | | #include "cpu/z80/z80.h" |
| 41 | | #include "sound/ay8910.h" |
| 42 | | |
| 43 | | class pprobe_state : public driver_device |
| 44 | | { |
| 45 | | public: |
| 46 | | pprobe_state(const machine_config &mconfig, device_type type, const char *tag) |
| 47 | | : driver_device(mconfig, type, tag), |
| 48 | | m_tx_vram(*this, "tx_vram") |
| 49 | | { } |
| 50 | | |
| 51 | | required_shared_ptr<UINT8> m_tx_vram; |
| 52 | | |
| 53 | | UINT8 m_nmi_mask; |
| 54 | | DECLARE_WRITE8_MEMBER(pprobe_nmi_mask_w); |
| 55 | | DECLARE_DRIVER_INIT(pprobe); |
| 56 | | UINT32 screen_update_pprobe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 57 | | INTERRUPT_GEN_MEMBER(vblank_irq); |
| 58 | | }; |
| 59 | | |
| 60 | | |
| 61 | | |
| 62 | | UINT32 pprobe_state::screen_update_pprobe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 63 | | { |
| 64 | | gfx_element *gfx = machine().gfx[2]; |
| 65 | | int y,x; |
| 66 | | int count = 0; |
| 67 | | |
| 68 | | for (x=0;x<64;x++) |
| 69 | | { |
| 70 | | for (y=0;y<32;y++) |
| 71 | | { |
| 72 | | UINT16 tile = m_tx_vram[count]; |
| 73 | | //UINT8 col; |
| 74 | | |
| 75 | | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); |
| 76 | | |
| 77 | | count++; |
| 78 | | } |
| 79 | | } |
| 80 | | |
| 81 | | return 0; |
| 82 | | } |
| 83 | | |
| 84 | | |
| 85 | | static ADDRESS_MAP_START( pprobe_main_map, AS_PROGRAM, 8, pprobe_state ) |
| 86 | | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 87 | | AM_RANGE(0x8000, 0x83ff) AM_RAM // ??? |
| 88 | | AM_RANGE(0x8800, 0x8fff) AM_RAM |
| 89 | | AM_RANGE(0x9000, 0x93ff) AM_RAM // ??? |
| 90 | | AM_RANGE(0x9800, 0x9fff) AM_RAM |
| 91 | | AM_RANGE(0xc400, 0xc7ff) AM_RAM // color ram? |
| 92 | | AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("tx_vram") |
| 93 | | AM_RANGE(0xe000, 0xe000) AM_WRITENOP // watchdog |
| 94 | | AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("shared_ram") |
| 95 | | ADDRESS_MAP_END |
| 96 | | |
| 97 | | WRITE8_MEMBER(pprobe_state::pprobe_nmi_mask_w) |
| 98 | | { |
| 99 | | m_nmi_mask = data & 1; |
| 100 | | } |
| 101 | | |
| 102 | | |
| 103 | | static ADDRESS_MAP_START( pprobe_main_portmap, AS_IO, 8, pprobe_state ) |
| 104 | | ADDRESS_MAP_GLOBAL_MASK(0x07) |
| 105 | | AM_RANGE(0x00, 0x00) AM_WRITE(pprobe_nmi_mask_w) |
| 106 | | // 0x01 flip screen |
| 107 | | // 0x02 sub cpu halt line |
| 108 | | ADDRESS_MAP_END |
| 109 | | |
| 110 | | |
| 111 | | static const gfx_layout fg_tilelayout = |
| 112 | | { |
| 113 | | 8,8, |
| 114 | | RGN_FRAC(1,1), |
| 115 | | 2, |
| 116 | | { 0, 4 }, |
| 117 | | { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, |
| 118 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 119 | | 8*8*2 |
| 120 | | }; |
| 121 | | |
| 122 | | static const gfx_layout sp_tilelayout = |
| 123 | | { |
| 124 | | 16,16, |
| 125 | | RGN_FRAC(1,1), |
| 126 | | 2, |
| 127 | | { 0, 4 }, |
| 128 | | { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, 128+0, 128+1, 128+2, 128+3, 128+8*8+0, 128+8*8+1, 128+8*8+2, 128+8*8+3 }, |
| 129 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 256+0*8, 256+1*8, 256+2*8, 256+3*8, 256+4*8, 256+5*8, 256+6*8, 256+7*8 }, |
| 130 | | 8*8*8 |
| 131 | | }; |
| 132 | | |
| 133 | | |
| 134 | | |
| 135 | | |
| 136 | | static GFXDECODE_START( pprobe ) |
| 137 | | GFXDECODE_ENTRY( "gfx1", 0, fg_tilelayout, 0, 64 ) |
| 138 | | GFXDECODE_ENTRY( "gfx2", 0, fg_tilelayout, 0, 64 ) |
| 139 | | GFXDECODE_ENTRY( "gfx3", 0, fg_tilelayout, 0, 64 ) |
| 140 | | GFXDECODE_ENTRY( "gfx4", 0, sp_tilelayout, 0, 64 ) |
| 141 | | GFXDECODE_ENTRY( "gfx5", 0, sp_tilelayout, 0, 64 ) |
| 142 | | GFXDECODE_END |
| 143 | | |
| 144 | | |
| 145 | | static INPUT_PORTS_START( pprobe ) |
| 146 | | INPUT_PORTS_END |
| 147 | | |
| 148 | | INTERRUPT_GEN_MEMBER(pprobe_state::vblank_irq) |
| 149 | | { |
| 150 | | if(m_nmi_mask) |
| 151 | | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 152 | | } |
| 153 | | |
| 154 | | |
| 155 | | static MACHINE_CONFIG_START( pprobe, pprobe_state ) |
| 156 | | |
| 157 | | /* basic machine hardware */ |
| 158 | | MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ |
| 159 | | MCFG_CPU_PROGRAM_MAP(pprobe_main_map) |
| 160 | | MCFG_CPU_IO_MAP(pprobe_main_portmap) |
| 161 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", pprobe_state, vblank_irq) |
| 162 | | |
| 163 | | // MCFG_CPU_ADD("subz80", Z80, XTAL_18_432MHz/6) /* verified on pcb */ |
| 164 | | |
| 165 | | /* video hardware */ |
| 166 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 167 | | MCFG_SCREEN_REFRESH_RATE(60.58) |
| 168 | | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
| 169 | | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 170 | | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
| 171 | | MCFG_SCREEN_UPDATE_DRIVER(pprobe_state, screen_update_pprobe) |
| 172 | | |
| 173 | | MCFG_GFXDECODE(pprobe) |
| 174 | | MCFG_PALETTE_LENGTH(256) |
| 175 | | |
| 176 | | /* sound hardware */ |
| 177 | | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 178 | | |
| 179 | | MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12) /* verified on pcb */ |
| 180 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 181 | | MACHINE_CONFIG_END |
| 182 | | |
| 183 | | |
| 184 | | ROM_START( pprobe ) |
| 185 | | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 186 | | ROM_LOAD( "pb2.bin", 0x0000, 0x2000, CRC(a88592aa) SHA1(98e8e6233b85e678718f532708d57ec946b9fd88) ) |
| 187 | | ROM_LOAD( "pb3.bin", 0x2000, 0x2000, CRC(e4e20f74) SHA1(53b4d0499127cca149a3dd03af4f05de552cff57) ) |
| 188 | | ROM_LOAD( "pb4.bin", 0x4000, 0x2000, CRC(4e40e3fe) SHA1(ccb3c5828508efc9f0df44bf3408e807d5ef58a0) ) |
| 189 | | ROM_LOAD( "pb5.bin", 0x6000, 0x2000, CRC(b26ff0fd) SHA1(c64966ee91557f8982b9b7fd17306508228f1e15) ) |
| 190 | | |
| 191 | | ROM_REGION( 0x10000, "subz80", 0 ) |
| 192 | | ROM_LOAD( "pb1.bin", 0x0000, 0x2000, BAD_DUMP CRC(6e340426) SHA1(e6fc227d22f9b769955127d308dfb96ed85ba40c) ) // corrupt :-( |
| 193 | | |
| 194 | | ROM_REGION( 0x02000, "gfx1", 0 ) // bg tiles |
| 195 | | ROM_LOAD( "pb6.bin", 0x0000, 0x2000, CRC(ff309239) SHA1(4e52833fafd54d4502ad09091fbfb1a8a2ff8828) ) |
| 196 | | |
| 197 | | ROM_REGION( 0x02000, "gfx2", 0 ) // bg tiles |
| 198 | | ROM_LOAD( "pb7.bin", 0x0000, 0x2000, BAD_DUMP CRC(1defb6fc) SHA1(f0d57cf8a92c29fef52c8437d0be6edecaf9c5c9) ) // some bad bytes |
| 199 | | |
| 200 | | ROM_REGION( 0x02000, "gfx3", 0 ) // tx tiles |
| 201 | | ROM_LOAD( "pb9.bin", 0x0000, 0x2000, CRC(82294dd6) SHA1(24b8eac3d476d4a4d91dd169e26bd075b0d1bf45) ) |
| 202 | | |
| 203 | | ROM_REGION( 0x02000, "gfx4", 0 ) // sprites |
| 204 | | ROM_LOAD( "pb8.bin", 0x0000, 0x2000, CRC(8d809e45) SHA1(70f99626acdceaadbe03de49bcf778266ddff893) ) |
| 205 | | |
| 206 | | ROM_REGION( 0x02000, "gfx5", 0 ) // sprites |
| 207 | | ROM_LOAD( "pb10.bin", 0x0000, 0x2000, CRC(895f9dd3) SHA1(919861482598aa35a9ad476da19f9efa30904cd4) ) |
| 208 | | |
| 209 | | ROM_REGION( 0x0320, "proms", 0 ) |
| 210 | | ROM_LOAD( "82s129.r", 0x0000, 0x0100, NO_DUMP ) /* red */ |
| 211 | | ROM_LOAD( "82s129.g", 0x0100, 0x0100, NO_DUMP ) /* green */ |
| 212 | | ROM_LOAD( "82s129.b", 0x0200, 0x0100, NO_DUMP ) /* blue */ |
| 213 | | ROM_LOAD( "6301.prom", 0x0300, 0x0020, NO_DUMP ) /* unk */ |
| 214 | | ROM_END |
| 215 | | |
| 216 | | DRIVER_INIT_MEMBER(pprobe_state,pprobe) |
| 217 | | { |
| 218 | | } |
| 219 | | |
| 220 | | GAME( 1984, pprobe, 0, pprobe, pprobe, pprobe_state, pprobe, ROT270, "Kyugo?", "Planet Probe", GAME_NOT_WORKING | GAME_NO_SOUND ) |
trunk/src/mame/drivers/vastar.c
| r18870 | r18871 | |
| 109 | 109 | machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 110 | 110 | m_nmi_mask = 0; |
| 111 | 111 | m_sprite_priority[0] = 0; |
| 112 | |
| 113 | m_spriteram1 = m_fgvideoram + 0x000; |
| 114 | m_bg1_scroll = m_fgvideoram + 0x3c0; |
| 115 | m_bg2_scroll = m_fgvideoram + 0x3e0; |
| 116 | m_spriteram2 = m_fgvideoram + 0x400; |
| 117 | m_spriteram3 = m_fgvideoram + 0x800; |
| 112 | 118 | } |
| 113 | 119 | |
| 114 | 120 | WRITE8_MEMBER(vastar_state::vastar_hold_cpu2_w) |
| r18870 | r18871 | |
| 130 | 136 | |
| 131 | 137 | static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vastar_state ) |
| 132 | 138 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 133 | | AM_RANGE(0x8000, 0x8fff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) AM_SHARE("bg2videoram") |
| 134 | | AM_RANGE(0x9000, 0x9fff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) AM_SHARE("bg1videoram") |
| 135 | | AM_RANGE(0xa000, 0xafff) AM_READWRITE(vastar_bg2videoram_r, vastar_bg2videoram_w) /* mirror address */ |
| 136 | | AM_RANGE(0xb000, 0xbfff) AM_READWRITE(vastar_bg1videoram_r, vastar_bg1videoram_w) /* mirror address */ |
| 139 | AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(vastar_bg2videoram_w) AM_SHARE("bg2videoram") AM_MIRROR(0x2000) |
| 140 | AM_RANGE(0x9000, 0x9fff) AM_RAM_WRITE(vastar_bg1videoram_w) AM_SHARE("bg1videoram") AM_MIRROR(0x2000) |
| 137 | 141 | AM_RANGE(0xc000, 0xc000) AM_WRITEONLY AM_SHARE("sprite_priority") /* sprite/BG priority */ |
| 138 | | AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_SHARE("fgvideoram") |
| 142 | AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_SHARE("fgvideoram") // fg videoram + sprites |
| 139 | 143 | AM_RANGE(0xe000, 0xe000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w) |
| 140 | 144 | AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("sharedram") |
| 141 | | |
| 142 | | /* in hidden portions of video RAM: (fallthrough) - todo, just make these pointers */ |
| 143 | | AM_RANGE(0xc400, 0xc43f) AM_WRITEONLY AM_SHARE("spriteram1") /* actually c410-c41f and c430-c43f */ |
| 144 | | AM_RANGE(0xc7c0, 0xc7df) AM_WRITEONLY AM_SHARE("bg1_scroll") |
| 145 | | AM_RANGE(0xc7e0, 0xc7ff) AM_WRITEONLY AM_SHARE("bg2_scroll") |
| 146 | | AM_RANGE(0xc800, 0xc83f) AM_WRITEONLY AM_SHARE("spriteram2") /* actually c810-c81f and c830-c83f */ |
| 147 | | AM_RANGE(0xcc00, 0xcc3f) AM_WRITEONLY AM_SHARE("spriteram3") /* actually cc10-cc1f and cc30-cc3f */ |
| 148 | 145 | ADDRESS_MAP_END |
| 149 | 146 | |
| 150 | 147 | static ADDRESS_MAP_START( main_port_map, AS_IO, 8, vastar_state ) |
| 151 | | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 148 | ADDRESS_MAP_GLOBAL_MASK(0x0f) |
| 152 | 149 | AM_RANGE(0x00, 0x00) AM_WRITE(nmi_mask_w) |
| 153 | 150 | AM_RANGE(0x01, 0x01) AM_WRITE(flip_screen_w) |
| 154 | 151 | AM_RANGE(0x02, 0x02) AM_WRITE(vastar_hold_cpu2_w) |
| r18870 | r18871 | |
| 164 | 161 | ADDRESS_MAP_END |
| 165 | 162 | |
| 166 | 163 | static ADDRESS_MAP_START( cpu2_port_map, AS_IO, 8, vastar_state ) |
| 167 | | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 164 | ADDRESS_MAP_GLOBAL_MASK(0x0f) |
| 168 | 165 | AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w) |
| 169 | 166 | AM_RANGE(0x02, 0x02) AM_DEVREAD_LEGACY("aysnd", ay8910_r) |
| 170 | 167 | ADDRESS_MAP_END |
| r18870 | r18871 | |
| 202 | 199 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 203 | 200 | |
| 204 | 201 | PORT_START("DSW1") |
| 205 | | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) |
| 202 | PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:1,2") |
| 206 | 203 | PORT_DIPSETTING( 0x03, "3" ) |
| 207 | 204 | PORT_DIPSETTING( 0x02, "4" ) |
| 208 | 205 | PORT_DIPSETTING( 0x01, "5" ) |
| 209 | 206 | PORT_DIPSETTING( 0x00, "6" ) |
| 210 | | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 207 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:3") |
| 211 | 208 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 212 | 209 | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 213 | | PORT_DIPNAME( 0x08, 0x08, "Show Author Credits" ) |
| 210 | PORT_DIPNAME( 0x08, 0x08, "Show Author Credits" ) PORT_DIPLOCATION("DSW1:4") |
| 214 | 211 | PORT_DIPSETTING( 0x08, DEF_STR( No ) ) |
| 215 | 212 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 216 | | PORT_DIPNAME( 0x10, 0x10, "Slow Motion (Cheat)") |
| 213 | PORT_DIPNAME( 0x10, 0x10, "Slow Motion (Cheat)") PORT_DIPLOCATION("DSW1:5") |
| 217 | 214 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 218 | 215 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 219 | | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) |
| 216 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW1:6") |
| 220 | 217 | PORT_DIPSETTING( 0x20, "20000 50000" ) |
| 221 | 218 | PORT_DIPSETTING( 0x00, "40000 70000" ) |
| 222 | | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) |
| 219 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:7") |
| 223 | 220 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 224 | 221 | PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) |
| 225 | | PORT_DIPNAME( 0x80, 0x80, "Freeze" ) |
| 222 | PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("DSW1:8") |
| 226 | 223 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 227 | 224 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 228 | 225 | |
| 229 | 226 | PORT_START("DSW2") |
| 230 | | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) |
| 227 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW2:1,2,3") |
| 231 | 228 | PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) |
| 232 | 229 | PORT_DIPSETTING( 0x01, DEF_STR( 3C_2C ) ) |
| 233 | 230 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| r18870 | r18871 | |
| 236 | 233 | PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) |
| 237 | 234 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) |
| 238 | 235 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) |
| 239 | | PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) |
| 236 | PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW2:4,5,6") |
| 240 | 237 | PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) |
| 241 | 238 | PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) |
| 242 | 239 | PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) |
| r18870 | r18871 | |
| 245 | 242 | PORT_DIPSETTING( 0x20, DEF_STR( 3C_4C ) ) |
| 246 | 243 | PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) |
| 247 | 244 | PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) |
| 248 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 245 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") |
| 249 | 246 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 250 | 247 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 251 | | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 248 | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:8") |
| 252 | 249 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 253 | 250 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 254 | 251 | INPUT_PORTS_END |
| r18870 | r18871 | |
| 278 | 275 | PORT_START("SYSTEM") |
| 279 | 276 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 280 | 277 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 281 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) |
| 278 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) |
| 282 | 279 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) |
| 283 | 280 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) |
| 284 | 281 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| r18870 | r18871 | |
| 286 | 283 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 287 | 284 | |
| 288 | 285 | PORT_START("DSW1") |
| 289 | | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| 290 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 291 | | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 292 | | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 293 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 294 | | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 295 | | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 296 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 297 | | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 298 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 299 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 300 | | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 301 | | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 302 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 303 | | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 304 | | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 305 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 306 | | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 307 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 308 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 309 | | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 310 | | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 311 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 312 | | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 286 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("DSW1:1,2") |
| 287 | PORT_DIPSETTING( 0x03, "1" ) |
| 288 | PORT_DIPSETTING( 0x02, "2" ) |
| 289 | PORT_DIPSETTING( 0x01, "3" ) |
| 290 | PORT_DIPSETTING( 0x00, "4" ) |
| 291 | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:3") // unused? |
| 292 | PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) |
| 293 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 294 | PORT_DIPNAME( 0x08, 0x08, "Invulnerability (Cheat)" ) PORT_DIPLOCATION("DSW1:4") |
| 295 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 296 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 297 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:5") // unused? |
| 298 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 299 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 300 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("DSW1:6") // these might be swapped |
| 301 | PORT_DIPSETTING( 0x20, "30000 then every 40000" ) |
| 302 | PORT_DIPSETTING( 0x00, "30000 then every 70000" ) |
| 303 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("DSW1:7") |
| 304 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 305 | PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) |
| 306 | PORT_DIPNAME( 0x80, 0x80, "Rom Test / STOP" ) PORT_DIPLOCATION("DSW1:8") |
| 307 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 308 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 313 | 309 | |
| 314 | 310 | PORT_START("DSW2") |
| 315 | | PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) |
| 316 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 317 | | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 318 | | PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) |
| 319 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 320 | | PORT_DIPSETTING( 0x02, DEF_STR( On ) ) |
| 321 | | PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) |
| 322 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 323 | | PORT_DIPSETTING( 0x04, DEF_STR( On ) ) |
| 324 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) |
| 325 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 326 | | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 327 | | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) |
| 328 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 329 | | PORT_DIPSETTING( 0x10, DEF_STR( On ) ) |
| 330 | | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) |
| 331 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 332 | | PORT_DIPSETTING( 0x20, DEF_STR( On ) ) |
| 333 | | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) |
| 334 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 335 | | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| 336 | | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) |
| 337 | | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 338 | | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 311 | PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW2:1,2,3,4") |
| 312 | PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) ) |
| 313 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) ) |
| 314 | PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) ) |
| 315 | PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) ) |
| 316 | PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) ) |
| 317 | PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) ) |
| 318 | PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) ) |
| 319 | PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) ) |
| 320 | PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) |
| 321 | PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) |
| 322 | PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) |
| 323 | PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) |
| 324 | PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) |
| 325 | PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) |
| 326 | PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) ) |
| 327 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) |
| 328 | PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW2:5,6,7,8") |
| 329 | PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) ) |
| 330 | PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) ) |
| 331 | PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) ) |
| 332 | PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) ) |
| 333 | PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) ) |
| 334 | PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) ) |
| 335 | PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) |
| 336 | PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) ) |
| 337 | PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) ) |
| 338 | PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) |
| 339 | PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) |
| 340 | PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) |
| 341 | PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) |
| 342 | PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) |
| 343 | PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) |
| 344 | PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) ) |
| 339 | 345 | INPUT_PORTS_END |
| 340 | 346 | |
| 341 | 347 | |
| r18870 | r18871 | |
| 560 | 566 | |
| 561 | 567 | GAME( 1983, vastar, 0, vastar, vastar, driver_device, 0, ROT90, "Sesame Japan", "Vastar (set 1)", 0 ) |
| 562 | 568 | GAME( 1983, vastar2, vastar, vastar, vastar, driver_device, 0, ROT90, "Sesame Japan", "Vastar (set 2)", 0 ) |
| 563 | | GAME( 1983, pprobe, 0, vastar, pprobe, driver_device, 0, ROT90, "Orca / Kyugo?", "Planet Probe (prototype?)", GAME_IMPERFECT_GRAPHICS ) // has no Copyright, probably because Orca / Kyugo didn't have a trading name at this point |
| 569 | GAME( 1985, pprobe, 0, vastar, pprobe, driver_device, 0, ROT90, "Orca / Kyugo?", "Planet Probe (prototype?)", 0 ) // has no Copyright, probably because Orca / Kyugo didn't have a trading name at this point |