Previous 199869 Revisions Next

r18871 Tuesday 6th November, 2012 at 09:50:14 UTC by Tafoid
Added tile flipping, dips, cleaned up a few bits for Planet Probe.  Now marked as working.  Old pprobe.c driver no longer needed.  [David Haywood]

Added Dip Locations to vastar.c driver  [Tafoid]


New games added or promoted from NOT_WORKING status
---------------------------------------------------
Planet Probe [Alberto Grego, Corrado Tomaselli, f205v, David Haywood]
[src/mame/drivers]pprobe.c vastar.c
[src/mame/includes]vastar.h
[src/mame/video]vastar.c

trunk/src/mame/drivers/pprobe.c
r18870r18871
1/*
2
3Planet Probe -  unknown manufacture  -  Copyright 1985
4Game probably programmed by same people behind some Kyugo/Orca/Komax games (see hiscore table, Gyrodine pinout, clocks etc.)
5
6Upper board marked DVL/A-V
7Bottom Bord DVL/B-V
8
9The pcb seems a bootleg/prototype:
10On the upper board there are some pads for jumpers , some empty spaces left unpopulated for additional TTLs and an XTAL.
11All 5 sockets for 2732 eproms were modified to accept 2764 eproms.
12The AY8910 pin 26 (TEST 2) is grounded with a flying wire
13
14Upper board chips:
155x 2764 eproms
161x 2128 static ram (2k ram)
172x z80B
181x AY8910
192x 8 positions dipswitches
20
21Bottom Board chips:
225x 2764 eproms
232x 2128 static ram (2kx8 ram)
244x 93422 DRAM (256x4 dram)
251x 6301 PROM (probably used for background ?)
263x 82s129 Colour PROMS (connected to resistors)
27
28Clocks measured:
29
30Main XTAL 18.432mhz
312x z80 : 18.432 / 6
32AY8910 : 18.432 / 12
33Vsync : 60.58hz
34
35*/
36
37
38
39#include "emu.h"
40#include "cpu/z80/z80.h"
41#include "sound/ay8910.h"
42
43class pprobe_state : public driver_device
44{
45public:
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
62UINT32 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
85static 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")
95ADDRESS_MAP_END
96
97WRITE8_MEMBER(pprobe_state::pprobe_nmi_mask_w)
98{
99   m_nmi_mask = data & 1;
100}
101
102
103static 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
108ADDRESS_MAP_END
109
110
111static 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
122static 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
136static 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 )
142GFXDECODE_END
143
144
145static INPUT_PORTS_START( pprobe )
146INPUT_PORTS_END
147
148INTERRUPT_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
155static 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)
181MACHINE_CONFIG_END
182
183
184ROM_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 */
214ROM_END
215
216DRIVER_INIT_MEMBER(pprobe_state,pprobe)
217{
218}
219
220GAME( 1984, pprobe,  0,        pprobe,  pprobe, pprobe_state,   pprobe, ROT270, "Kyugo?", "Planet Probe", GAME_NOT_WORKING | GAME_NO_SOUND )
trunk/src/mame/drivers/vastar.c
r18870r18871
109109   machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
110110   m_nmi_mask = 0;
111111   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;
112118}
113119
114120WRITE8_MEMBER(vastar_state::vastar_hold_cpu2_w)
r18870r18871
130136
131137static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vastar_state )
132138   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)
137141   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
139143   AM_RANGE(0xe000, 0xe000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w)
140144   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 */
148145ADDRESS_MAP_END
149146
150147static ADDRESS_MAP_START( main_port_map, AS_IO, 8, vastar_state )
151   ADDRESS_MAP_GLOBAL_MASK(0xff)
148   ADDRESS_MAP_GLOBAL_MASK(0x0f)
152149   AM_RANGE(0x00, 0x00) AM_WRITE(nmi_mask_w)
153150   AM_RANGE(0x01, 0x01) AM_WRITE(flip_screen_w)
154151   AM_RANGE(0x02, 0x02) AM_WRITE(vastar_hold_cpu2_w)
r18870r18871
164161ADDRESS_MAP_END
165162
166163static ADDRESS_MAP_START( cpu2_port_map, AS_IO, 8, vastar_state )
167   ADDRESS_MAP_GLOBAL_MASK(0xff)
164   ADDRESS_MAP_GLOBAL_MASK(0x0f)
168165   AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
169166   AM_RANGE(0x02, 0x02) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
170167ADDRESS_MAP_END
r18870r18871
202199   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
203200
204201   PORT_START("DSW1")
205   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
202   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )      PORT_DIPLOCATION("DSW1:1,2")   
206203   PORT_DIPSETTING(    0x03, "3" )
207204   PORT_DIPSETTING(    0x02, "4" )
208205   PORT_DIPSETTING(    0x01, "5" )
209206   PORT_DIPSETTING(    0x00, "6" )
210   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
207   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )      PORT_DIPLOCATION("DSW1:3")   
211208   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
212209   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")
214211   PORT_DIPSETTING(    0x08, DEF_STR( No ) )
215212   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")
217214   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
218215   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")
220217   PORT_DIPSETTING(   0x20, "20000 50000" )
221218   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")
223220   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
224221   PORT_DIPSETTING(    0x40, DEF_STR( Cocktail ) )
225   PORT_DIPNAME( 0x80, 0x80, "Freeze" )
222   PORT_DIPNAME( 0x80, 0x80, "Freeze" )            PORT_DIPLOCATION("DSW1:8")
226223   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
227224   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
228225
229226   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")
231228   PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
232229   PORT_DIPSETTING(    0x01, DEF_STR( 3C_2C ) )
233230   PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
r18870r18871
236233   PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ) )
237234   PORT_DIPSETTING(    0x03, DEF_STR( 1C_6C ) )
238235   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")
240237   PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
241238   PORT_DIPSETTING(    0x08, DEF_STR( 4C_1C ) )
242239   PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) )
r18870r18871
245242   PORT_DIPSETTING(    0x20, DEF_STR( 3C_4C ) )
246243   PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
247244   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")
249246   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
250247   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")
252249   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
253250   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
254251INPUT_PORTS_END
r18870r18871
278275   PORT_START("SYSTEM")
279276   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
280277   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 )
282279   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
283280   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
284281   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
r18870r18871
286283   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
287284
288285   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 ) )
313309
314310   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 ) )
339345INPUT_PORTS_END
340346
341347
r18870r18871
560566
561567GAME( 1983, vastar,  0,      vastar, vastar, driver_device, 0, ROT90, "Sesame Japan", "Vastar (set 1)", 0 )
562568GAME( 1983, vastar2, vastar, vastar, vastar, driver_device, 0, ROT90, "Sesame Japan", "Vastar (set 2)", 0 )
563GAME( 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
569GAME( 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
trunk/src/mame/includes/vastar.h
r18870r18871
66      m_bg1videoram(*this, "bg1videoram"),
77      m_bg2videoram(*this, "bg2videoram"),
88      m_fgvideoram(*this, "fgvideoram"),
9      m_bg1_scroll(*this, "bg1_scroll"),
10      m_bg2_scroll(*this, "bg2_scroll"),
119      m_sprite_priority(*this, "sprite_priority"),
12      m_sharedram(*this, "sharedram"),
13      m_spriteram1(*this, "spriteram1"),
14      m_spriteram2(*this, "spriteram2"),
15      m_spriteram3(*this, "spriteram3"){ }
10      m_sharedram(*this, "sharedram")
11   { }
1612
1713   required_shared_ptr<UINT8> m_bg1videoram;
1814   required_shared_ptr<UINT8> m_bg2videoram;
1915   required_shared_ptr<UINT8> m_fgvideoram;
20   required_shared_ptr<UINT8> m_bg1_scroll;
21   required_shared_ptr<UINT8> m_bg2_scroll;
2216   required_shared_ptr<UINT8> m_sprite_priority;
2317   required_shared_ptr<UINT8> m_sharedram;
24   required_shared_ptr<UINT8> m_spriteram1;
25   required_shared_ptr<UINT8> m_spriteram2;
26   required_shared_ptr<UINT8> m_spriteram3;
2718
19   // these are pointers into m_fgvideoram
20   UINT8* m_bg1_scroll;
21   UINT8* m_bg2_scroll;
22   UINT8* m_spriteram1;
23   UINT8* m_spriteram2;
24   UINT8* m_spriteram3;
25
2826   tilemap_t *m_fg_tilemap;
2927   tilemap_t *m_bg1_tilemap;
3028   tilemap_t *m_bg2_tilemap;
r18870r18871
3735   DECLARE_WRITE8_MEMBER(vastar_fgvideoram_w);
3836   DECLARE_WRITE8_MEMBER(vastar_bg1videoram_w);
3937   DECLARE_WRITE8_MEMBER(vastar_bg2videoram_w);
40   DECLARE_READ8_MEMBER(vastar_bg1videoram_r);
41   DECLARE_READ8_MEMBER(vastar_bg2videoram_r);
4238   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4339   TILE_GET_INFO_MEMBER(get_bg1_tile_info);
4440   TILE_GET_INFO_MEMBER(get_bg2_tile_info);
trunk/src/mame/video/vastar.c
r18870r18871
1919TILE_GET_INFO_MEMBER(vastar_state::get_fg_tile_info)
2020{
2121   UINT8 *videoram = m_fgvideoram;
22   int code, color;
22   int code, color, fxy;
2323
2424   code = videoram[tile_index + 0x800] | (videoram[tile_index + 0x400] << 8);
2525   color = videoram[tile_index];
26   fxy = (code & 0xc00) >> 10; // maybe, based on the other layers
2627   SET_TILE_INFO_MEMBER(
2728         0,
2829         code,
2930         color & 0x3f,
30         0);
31         TILE_FLIPXY(fxy));
3132}
3233
3334TILE_GET_INFO_MEMBER(vastar_state::get_bg1_tile_info)
3435{
3536   UINT8 *videoram = m_bg1videoram;
36   int code, color;
37   int code, color, fxy;
3738
3839   code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8);
3940   color = videoram[tile_index + 0xc00];
41   fxy = (code & 0xc00) >> 10;
4042   SET_TILE_INFO_MEMBER(
4143         4,
4244         code,
4345         color & 0x3f,
44         0);
46         TILE_FLIPXY(fxy));
4547}
4648
4749TILE_GET_INFO_MEMBER(vastar_state::get_bg2_tile_info)
4850{
4951   UINT8 *videoram = m_bg2videoram;
50   int code, color;
52   int code, color, fxy;
5153
5254   code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8);
5355   color = videoram[tile_index + 0xc00];
56   fxy = (code & 0xc00) >> 10;
5457   SET_TILE_INFO_MEMBER(
5558         3,
5659         code,
5760         color & 0x3f,
58         0);
61         TILE_FLIPXY(fxy));
5962}
6063
6164
r18870r18871
8891
8992WRITE8_MEMBER(vastar_state::vastar_fgvideoram_w)
9093{
91
9294   m_fgvideoram[offset] = data;
9395   m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
9496}
9597
9698WRITE8_MEMBER(vastar_state::vastar_bg1videoram_w)
9799{
98
99100   m_bg1videoram[offset] = data;
100101   m_bg1_tilemap->mark_tile_dirty(offset & 0x3ff);
101102}
102103
103104WRITE8_MEMBER(vastar_state::vastar_bg2videoram_w)
104105{
105
106106   m_bg2videoram[offset] = data;
107107   m_bg2_tilemap->mark_tile_dirty(offset & 0x3ff);
108108}
109109
110110
111READ8_MEMBER(vastar_state::vastar_bg1videoram_r)
112{
113111
114   return m_bg1videoram[offset];
115}
116112
117READ8_MEMBER(vastar_state::vastar_bg2videoram_r)
118{
119
120   return m_bg2videoram[offset];
121}
122
123
124113/***************************************************************************
125114
126115  Display refresh
r18870r18871
208197   case 1: // ?? planet probe
209198      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
210199      m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
211      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
212200      draw_sprites(machine(), bitmap,cliprect);
201      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
213202      break;
214203
215204   case 2:

Previous 199869 Revisions Next


© 1997-2024 The MAME Team