Previous 199869 Revisions Next

r18869 Tuesday 6th November, 2012 at 01:06:39 UTC by Brian Troha
progress on Planet Probe [Dave Haywood]
[src/mame]mame.mak
[src/mame/drivers]vastar.c
[src/mame/includes]vastar.h
[src/mame/video]vastar.c

trunk/src/mame/drivers/vastar.c
r18868r18869
6161
6262***************************************************************************/
6363
64/*
65
66Planet Probe -  unknown manufacture  -  Copyright 1985
67Game probably programmed by same people behind some Kyugo/Orca/Komax games (see hiscore table, Gyrodine pinout, clocks etc.)
68
69Upper board marked DVL/A-V
70Bottom Bord DVL/B-V
71
72The pcb seems a bootleg/prototype:
73On the upper board there are some pads for jumpers , some empty spaces left unpopulated for additional TTLs and an XTAL.
74All 5 sockets for 2732 eproms were modified to accept 2764 eproms.
75The AY8910 pin 26 (TEST 2) is grounded with a flying wire
76
77Upper board chips:
785x 2764 eproms
791x 2128 static ram (2k ram)
802x z80B
811x AY8910
822x 8 positions dipswitches
83
84Bottom Board chips:
855x 2764 eproms
862x 2128 static ram (2kx8 ram)
874x 93422 DRAM (256x4 dram)
881x 6301 PROM (probably used for background ?)
893x 82s129 Colour PROMS (connected to resistors)
90
91Clocks measured:
92
93Main XTAL 18.432mhz
942x z80 : 18.432 / 6
95AY8910 : 18.432 / 12
96Vsync : 60.58hz
97
98*/
99
100
64101#include "emu.h"
65102#include "cpu/z80/z80.h"
66103#include "sound/ay8910.h"
r18868r18869
70107{
71108   /* we must start with the second CPU halted */
72109   machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
110   m_nmi_mask = 0;
111   m_sprite_priority[0] = 0;
73112}
74113
75114WRITE8_MEMBER(vastar_state::vastar_hold_cpu2_w)
r18868r18869
78117   machine().device("sub")->execute().set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
79118}
80119
81READ8_MEMBER(vastar_state::vastar_sharedram_r)
82{
83
84   return m_sharedram[offset];
85}
86
87WRITE8_MEMBER(vastar_state::vastar_sharedram_w)
88{
89
90   m_sharedram[offset] = data;
91}
92
93120WRITE8_MEMBER(vastar_state::flip_screen_w)
94121{
95122   flip_screen_set(data);
r18868r18869
97124
98125WRITE8_MEMBER(vastar_state::nmi_mask_w)
99126{
100
101127   m_nmi_mask = data & 1;
102128}
103129
r18868r18869
111137   AM_RANGE(0xc000, 0xc000) AM_WRITEONLY AM_SHARE("sprite_priority")   /* sprite/BG priority */
112138   AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(vastar_fgvideoram_w) AM_SHARE("fgvideoram")
113139   AM_RANGE(0xe000, 0xe000) AM_READWRITE(watchdog_reset_r, watchdog_reset_w)
114   AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w) AM_SHARE("sharedram")
115   AM_RANGE(0xf100, 0xf7ff) AM_RAM
140   AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("sharedram")
116141
117   /* in hidden portions of video RAM: (fallthrough) */
142   /* in hidden portions of video RAM: (fallthrough) - todo, just make these pointers */
118143   AM_RANGE(0xc400, 0xc43f) AM_WRITEONLY AM_SHARE("spriteram1")   /* actually c410-c41f and c430-c43f */
119144   AM_RANGE(0xc7c0, 0xc7df) AM_WRITEONLY AM_SHARE("bg1_scroll")
120145   AM_RANGE(0xc7e0, 0xc7ff) AM_WRITEONLY AM_SHARE("bg2_scroll")
r18868r18869
132157
133158static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, vastar_state )
134159   AM_RANGE(0x0000, 0x1fff) AM_ROM
135   AM_RANGE(0x4000, 0x40ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w)
160   AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("sharedram")
136161   AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P2")
137162   AM_RANGE(0x8040, 0x8040) AM_READ_PORT("P1")
138163   AM_RANGE(0x8080, 0x8080) AM_READ_PORT("SYSTEM")
r18868r18869
229254INPUT_PORTS_END
230255
231256
257static INPUT_PORTS_START( pprobe )
258   PORT_START("P1")
259   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
260   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
261   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
262   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
263   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
264   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
265   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
266   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
232267
268   PORT_START("P2")
269   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
270   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
271   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
272   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
273   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
274   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
275   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
276   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
277
278   PORT_START("SYSTEM")
279   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
280   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
281   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
282   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
283   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
284   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
285   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
286   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
287
288   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 ) )
313
314   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 ) )
339INPUT_PORTS_END
340
341
342
233343static const gfx_layout charlayout =
234344{
235345   8,8,
r18868r18869
299409static MACHINE_CONFIG_START( vastar, vastar_state )
300410
301411   /* basic machine hardware */
302   MCFG_CPU_ADD("maincpu", Z80, 3072000)   /* 3.072 MHz ???? */
412   MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6)
303413   MCFG_CPU_PROGRAM_MAP(main_map)
304414   MCFG_CPU_IO_MAP(main_port_map)
305415   MCFG_CPU_VBLANK_INT_DRIVER("screen", vastar_state,  vblank_irq)
306416
307   MCFG_CPU_ADD("sub", Z80, 3072000)   /* 3.072 MHz ???? */
417   MCFG_CPU_ADD("sub", Z80, XTAL_18_432MHz/6)
308418   MCFG_CPU_PROGRAM_MAP(cpu2_map)
309419   MCFG_CPU_IO_MAP(cpu2_port_map)
310420   MCFG_CPU_PERIODIC_INT_DRIVER(vastar_state, irq0_line_hold, 4*60)   /* ??? */
r18868r18869
314424
315425   /* video hardware */
316426   MCFG_SCREEN_ADD("screen", RASTER)
317   MCFG_SCREEN_REFRESH_RATE(60)
427   MCFG_SCREEN_REFRESH_RATE(60.58)
318428   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
319429   MCFG_SCREEN_SIZE(32*8, 32*8)
320430   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
r18868r18869
328438   /* sound hardware */
329439   MCFG_SPEAKER_STANDARD_MONO("mono")
330440
331   MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
441   MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18_432MHz/12)
332442   MCFG_SOUND_CONFIG(ay8910_config)
333443   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
334444MACHINE_CONFIG_END
r18868r18869
369479   ROM_REGION( 0x2000, "gfx4", 0 )
370480   ROM_LOAD( "c_s4.rom",     0x0000, 0x2000, CRC(c9fbbfc9) SHA1(7c6ace0e2eae8420a31d9054ad5dd94924273d5f) )
371481
372   ROM_REGION( 0x0400, "proms", 0 )
482   ROM_REGION( 0x0300, "proms", 0 )
373483   ROM_LOAD( "tbp24s10.6p",  0x0000, 0x0100, CRC(a712d73a) SHA1(a65fa5928431d8631fb04e01ad0a0d2de849bf1d) )   /* red component */
374484   ROM_LOAD( "tbp24s10.6s",  0x0100, 0x0100, CRC(0a7d48ec) SHA1(400e0b271c241712e7b7502e96e4f8a609e078e1) )   /* green component */
375485   ROM_LOAD( "tbp24s10.6m",  0x0200, 0x0100, CRC(4c3db907) SHA1(03bcbc4763dcf49f4a06f499042e36183aa8b762) )   /* blue component */
376   ROM_LOAD( "tbp24s10.8n",  0x0300, 0x0100, CRC(b5297a3b) SHA1(a5a512f86097b7d892f6d11e8492e8a379c07f60) )   /* ???? */
486
487   ROM_REGION( 0x0100, "unkprom", 0 )
488   ROM_LOAD( "tbp24s10.8n",  0x0000, 0x0100, CRC(b5297a3b) SHA1(a5a512f86097b7d892f6d11e8492e8a379c07f60) )   /* ???? */
377489ROM_END
378490
379491ROM_START( vastar2 )
r18868r18869
404516   ROM_REGION( 0x2000, "gfx4", 0 )
405517   ROM_LOAD( "c_s4.rom",     0x0000, 0x2000, CRC(c9fbbfc9) SHA1(7c6ace0e2eae8420a31d9054ad5dd94924273d5f) )
406518
407   ROM_REGION( 0x0400, "proms", 0 )
519   ROM_REGION( 0x0300, "proms", 0 )
408520   ROM_LOAD( "tbp24s10.6p",  0x0000, 0x0100, CRC(a712d73a) SHA1(a65fa5928431d8631fb04e01ad0a0d2de849bf1d) )   /* red component */
409521   ROM_LOAD( "tbp24s10.6s",  0x0100, 0x0100, CRC(0a7d48ec) SHA1(400e0b271c241712e7b7502e96e4f8a609e078e1) )   /* green component */
410522   ROM_LOAD( "tbp24s10.6m",  0x0200, 0x0100, CRC(4c3db907) SHA1(03bcbc4763dcf49f4a06f499042e36183aa8b762) )   /* blue component */
411   ROM_LOAD( "tbp24s10.8n",  0x0300, 0x0100, CRC(b5297a3b) SHA1(a5a512f86097b7d892f6d11e8492e8a379c07f60) )   /* ???? */
523
524   ROM_REGION( 0x0100, "unkprom", 0 )
525   ROM_LOAD( "tbp24s10.8n",  0x0000, 0x0100, CRC(b5297a3b) SHA1(a5a512f86097b7d892f6d11e8492e8a379c07f60) )   /* ???? */
412526ROM_END
413527
528ROM_START( pprobe )
529   ROM_REGION( 0x10000, "maincpu", 0 )
530   ROM_LOAD( "pb2.bin",   0x0000, 0x2000, CRC(a88592aa) SHA1(98e8e6233b85e678718f532708d57ec946b9fd88) )
531   ROM_LOAD( "pb3.bin",   0x2000, 0x2000, CRC(e4e20f74) SHA1(53b4d0499127cca149a3dd03af4f05de552cff57) )
532   ROM_LOAD( "pb4.bin",   0x4000, 0x2000, CRC(4e40e3fe) SHA1(ccb3c5828508efc9f0df44bf3408e807d5ef58a0) )
533   ROM_LOAD( "pb5.bin",   0x6000, 0x2000, CRC(b26ff0fd) SHA1(c64966ee91557f8982b9b7fd17306508228f1e15) )
414534
535   ROM_REGION( 0x10000, "sub", 0 )
536   ROM_LOAD( "pb1.bin",   0x0000, 0x2000, CRC(cd624df9) SHA1(0645ce8dc1b361904da4f6e7adc9b7de109b2d14) )
415537
538   ROM_REGION( 0x2000, "gfx1", 0 )
539   ROM_LOAD( "pb9.bin",  0x0000, 0x2000, CRC(82294dd6) SHA1(24b8eac3d476d4a4d91dd169e26bd075b0d1bf45) )
540
541   ROM_REGION( 0x4000, "gfx2", 0 )
542   ROM_LOAD( "pb8.bin",  0x0000, 0x2000, CRC(8d809e45) SHA1(70f99626acdceaadbe03de49bcf778266ddff893) )
543   ROM_LOAD( "pb10.bin", 0x2000, 0x2000, CRC(895f9dd3) SHA1(919861482598aa35a9ad476da19f9efa30904cd4) )
544
545   ROM_REGION( 0x2000, "gfx3", 0 )
546   ROM_LOAD( "pb6.bin",  0x0000, 0x2000, CRC(ff309239) SHA1(4e52833fafd54d4502ad09091fbfb1a8a2ff8828) )
547
548   ROM_REGION( 0x2000, "gfx4", 0 )
549   ROM_LOAD( "pb7.bin",  0x0000, 0x2000, CRC(439978f7) SHA1(ba80dd919a9bb6f8c516d4eb794c02ae0f0dea00) )
550
551   ROM_REGION( 0x0300, "proms", 0 )
552   ROM_LOAD( "n82s129.3",   0x0000, 0x0100, CRC(dfb6b97c) SHA1(e35eda4f3022e661b021b952c53054d96481fb49) )
553   ROM_LOAD( "n82s129.1",   0x0100, 0x0100, CRC(3cc696a2) SHA1(0a1407c19c63ee0f02c3e8b95b0c199b9aec3ce5) )
554   ROM_LOAD( "dm74s287.2",  0x0200, 0x0100, CRC(64fea033) SHA1(19bbb325f71cb17ea069958b3c246fa908f0008e) )
555
556   ROM_REGION( 0x0100, "unkprom", 0 )
557   ROM_LOAD( "mmi6301-1.bin",  0x0000, 0x0100, CRC(b5297a3b) SHA1(a5a512f86097b7d892f6d11e8492e8a379c07f60) )   /* ???? == vastar - tbp24s10.8n */
558ROM_END
559
560
416561GAME( 1983, vastar,  0,      vastar, vastar, driver_device, 0, ROT90, "Sesame Japan", "Vastar (set 1)", 0 )
417562GAME( 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
trunk/src/mame/video/vastar.c
r18868r18869
6767
6868void vastar_state::video_start()
6969{
70
7170   m_fg_tilemap  = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,8,8,32,32);
7271   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
7372   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
r18868r18869
191190{
192191   int i;
193192
194
195193   for (i = 0;i < 32;i++)
196194   {
197195      m_bg1_tilemap->set_scrolly(i,m_bg1_scroll[i]);
r18868r18869
207205      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
208206      break;
209207
208   case 1: // ?? planet probe
209      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
210      m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
211      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
212      draw_sprites(machine(), bitmap,cliprect);
213      break;
214
210215   case 2:
211216      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
212217      draw_sprites(machine(), bitmap,cliprect);
trunk/src/mame/mame.mak
r18868r18869
18741874   $(DRIVERS)/polyplay.o $(AUDIO)/polyplay.o $(VIDEO)/polyplay.o \
18751875   $(DRIVERS)/poker72.o \
18761876   $(DRIVERS)/potgoldu.o \
1877   $(DRIVERS)/pprobe.o \
18781877   $(DRIVERS)/proconn.o \
18791878   $(DRIVERS)/psattack.o \
18801879   $(DRIVERS)/quizo.o \
trunk/src/mame/includes/vastar.h
r18868r18869
3232
3333   UINT8 m_nmi_mask;
3434   DECLARE_WRITE8_MEMBER(vastar_hold_cpu2_w);
35   DECLARE_READ8_MEMBER(vastar_sharedram_r);
36   DECLARE_WRITE8_MEMBER(vastar_sharedram_w);
3735   DECLARE_WRITE8_MEMBER(flip_screen_w);
3836   DECLARE_WRITE8_MEMBER(nmi_mask_w);
3937   DECLARE_WRITE8_MEMBER(vastar_fgvideoram_w);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team