Previous 199869 Revisions Next

r19973 Monday 31st December, 2012 at 19:09:52 UTC by David Haywood
new NOT WORKING
Grasspin [Alberto Grego, Zabanitu]

off what's new, it seems another Zilic / Ashby developed game, Christoper Stamper is credited in the sound rom.

marked as NOT working because it always gives me infinite lives? dips are read by the sound cpu and passed to the main cpu, but coinage / # lives works, so i'm not sure what's going on? help?
[src/mame]mame.lst
[src/mame/drivers]blueprnt.c
[src/mame/includes]blueprnt.h
[src/mame/video]blueprnt.c

trunk/src/mame/drivers/blueprnt.c
r19972r19973
9797   AM_RANGE(0xd000, 0xd000) AM_WRITE(blueprnt_sound_command_w)
9898   AM_RANGE(0xe000, 0xe000) AM_READ(watchdog_reset_r) AM_WRITE(blueprnt_flipscreen_w)
9999   AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE(blueprnt_colorram_w) AM_SHARE("colorram")
100   AM_RANGE(0xf400, 0xf7ff) AM_RAM // mirror?
100101ADDRESS_MAP_END
101102
102103static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, blueprnt_state )
103   AM_RANGE(0x0000, 0x0fff) AM_ROM
104   AM_RANGE(0x2000, 0x2fff) AM_ROM
104   AM_RANGE(0x0000, 0x3fff) AM_ROM
105105   AM_RANGE(0x4000, 0x43ff) AM_RAM
106106   AM_RANGE(0x6000, 0x6001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
107107   AM_RANGE(0x6002, 0x6002) AM_DEVREAD_LEGACY("ay1", ay8910_r)
r19972r19973
109109   AM_RANGE(0x8002, 0x8002) AM_DEVREAD_LEGACY("ay2", ay8910_r)
110110ADDRESS_MAP_END
111111
112static ADDRESS_MAP_START( sound_io, AS_IO, 8, blueprnt_state )
113   ADDRESS_MAP_GLOBAL_MASK(0xff)
114   AM_RANGE(0x02, 0x02) AM_NOP // nmi mask maybe? grasspin writes it 0/1
115ADDRESS_MAP_END
112116
117
118
113119/*************************************
114120 *
115121 *  Input ports
r19972r19973
217223INPUT_PORTS_END
218224
219225
226static INPUT_PORTS_START( grasspin )
227   PORT_START("P1")
228   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
229   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
230   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
231   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 )
232   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  ) PORT_8WAY
233   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
234   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY
235   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY
236
237   PORT_START("P2")
238   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
239   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
240   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
241   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
242   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  ) PORT_8WAY PORT_COCKTAIL
243   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
244   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_COCKTAIL
245   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_COCKTAIL
246
247   PORT_START("DILSW1")
248   PORT_DIPNAME( 0x01, 0x00, "DSW1:01" )
249   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
250   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
251   PORT_DIPNAME( 0x02, 0x00, "DSW1:02" )
252   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
253   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
254   PORT_DIPNAME( 0x04, 0x00, "DSW1:04" )
255   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
256   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
257   PORT_DIPNAME( 0x08, 0x00, "DSW1:08" )
258   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
259   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
260   PORT_DIPNAME( 0x10, 0x00, "DSW1:10" )
261   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
262   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
263   PORT_DIPNAME( 0x60, 0x60, "Coinage" )
264   PORT_DIPSETTING(    0x00, "0" )
265   PORT_DIPSETTING(    0x20, "1" )
266   PORT_DIPSETTING(    0x40, "2" )
267   PORT_DIPSETTING(    0x60, "3" )
268   PORT_DIPNAME( 0x80, 0x00, "Leave OFF" )  // won't boot if set to ON?
269   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
270   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
271
272   PORT_START("DILSW2")
273   PORT_DIPNAME( 0x01, 0x00, "DSW2:01" )
274   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
275   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
276   PORT_DIPNAME( 0x02, 0x00, "DSW2:02" )
277   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
278   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
279   PORT_DIPNAME( 0x04, 0x00, "DSW2:04" )
280   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
281   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
282   PORT_DIPNAME( 0x08, 0x00, "DSW2:08" )
283   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
284   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
285   PORT_DIPNAME( 0x10, 0x00, "DSW2:10" )
286   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
287   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
288   PORT_DIPNAME( 0x20, 0x00, "DSW2:20" )
289   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
290   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
291   PORT_DIPNAME( 0x40, 0x00, "Leave OFF" ) // won't boot if set to ON?
292   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
293   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
294   PORT_DIPNAME( 0x80, 0x00, "DSW2:80" )
295   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
296   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
297INPUT_PORTS_END
298
220299/*************************************
221300 *
222301 *  Graphics definitions
r19972r19973
300379
301380   MCFG_CPU_ADD("audiocpu", Z80, 10000000/2/2/2)   // 1.25 MHz (2H)
302381   MCFG_CPU_PROGRAM_MAP(sound_map)
382   MCFG_CPU_IO_MAP(sound_io)
303383   MCFG_CPU_PERIODIC_INT_DRIVER(blueprnt_state, irq0_line_hold,  4*60)   // IRQs connected to 32V
304384                           // NMIs are caused by the main CPU
305385
386   MCFG_QUANTUM_PERFECT_CPU("maincpu")
306387
307388   /* video hardware */
308389   MCFG_SCREEN_ADD("screen", RASTER)
r19972r19973
310391   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
311392   MCFG_SCREEN_SIZE(32*8, 32*8)
312393   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
394   MCFG_VIDEO_START_OVERRIDE(blueprnt_state, blueprnt)
313395   MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt)
314396
315397   MCFG_GFXDECODE(blueprnt)
r19972r19973
328410   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
329411MACHINE_CONFIG_END
330412
413static MACHINE_CONFIG_DERIVED( grasspin, blueprnt )
414   MCFG_VIDEO_START_OVERRIDE(blueprnt_state, grasspin)
415MACHINE_CONFIG_END
331416
332417/*************************************
333418 *
r19972r19973
345430
346431   ROM_REGION( 0x10000, "audiocpu", 0 )
347432   ROM_LOAD( "snd-1.3u",  0x0000, 0x1000, CRC(fd38777a) SHA1(0ed230e0fa047d3171e7141e5620b4c750b07629) )
433   ROM_RELOAD(0x1000,0x1000)
348434   ROM_LOAD( "snd-2.3v",  0x2000, 0x1000, CRC(33d5bf5b) SHA1(3ac684cd48559cd0eab32f9e7ce3ec6eca88dcd4) )
435   ROM_RELOAD(0x3000,0x1000)
349436
350437   ROM_REGION( 0x2000, "gfx1", 0 )
351438   ROM_LOAD( "bg-1.3c",   0x0000, 0x1000, CRC(ac2a61bc) SHA1(e56708d261648478d1dae4769118546411299e59) )
r19972r19973
367454
368455   ROM_REGION( 0x10000, "audiocpu", 0 )
369456   ROM_LOAD( "snd-1.3u",  0x0000, 0x1000, CRC(fd38777a) SHA1(0ed230e0fa047d3171e7141e5620b4c750b07629) )
457   ROM_RELOAD(0x1000,0x1000)
370458   ROM_LOAD( "snd-2.3v",  0x2000, 0x1000, CRC(33d5bf5b) SHA1(3ac684cd48559cd0eab32f9e7ce3ec6eca88dcd4) )
459   ROM_RELOAD(0x3000,0x1000)
371460
372461   ROM_REGION( 0x2000, "gfx1", 0 )
373462   ROM_LOAD( "bg-1j.3c",   0x0000, 0x0800, CRC(43718c34) SHA1(5df4794a38866c7f03b264581c8555b9bec3969f) )
r19972r19973
390479
391480   ROM_REGION( 0x10000, "audiocpu", 0 )
392481   ROM_LOAD( "r7",           0x0000, 0x1000, CRC(dd43e02f) SHA1(1d95a307cb4ef523f024cb9c60382a2ac8c17b1c) )
482   ROM_RELOAD(0x1000,0x1000)
393483   ROM_LOAD( "r8",           0x2000, 0x1000, CRC(7f9d0877) SHA1(335b17d187089e91bd3002778821921e73ec59d2) )
484   ROM_RELOAD(0x3000,0x1000)
394485
395486   ROM_REGION( 0x2000, "gfx1", 0 )
396487   ROM_LOAD( "r10",          0x0000, 0x1000, CRC(35987d61) SHA1(964503c3b17299b27b611943eebca9bc7c93a18c) )
r19972r19973
402493   ROM_LOAD( "r13",          0x2000, 0x1000, CRC(8b3e8c32) SHA1(65e2bf4a9f45be39419d85b2ee46b9c5eeff8f57) )
403494ROM_END
404495
496ROM_START( grasspin )
497   ROM_REGION( 0x10000, "maincpu", 0 )
498   ROM_LOAD( "prom_1.4b",     0x0000, 0x1000, CRC(6fd50509) SHA1(61bc99d47c15b479dd74147be8d6df2c1320a0d8) )
499   ROM_LOAD( "jaleco-2.4c",   0x1000, 0x1000, CRC(cd319007) SHA1(9c88fd7459bcf2cc6ce308ba1fe717a989ff89a4) )
500   ROM_LOAD( "jaleco-3.4d",   0x2000, 0x1000, CRC(ac73ccc2) SHA1(d732cc5e8a7db4011110527e579232d799159732) )
501   ROM_LOAD( "jaleco-4.4f",   0x3000, 0x1000, CRC(41f6279d) SHA1(dc260cf0a6b19e10ac038069ad3dbb3b6e63e446) )
502   ROM_LOAD( "jaleco-5.4h",   0x4000, 0x1000, CRC(d20aead9) SHA1(78c1c336fbdce312aed66a8b04cbbb2915d7536b) )
405503
504   ROM_REGION( 0x10000, "audiocpu", 0 )
505   ROM_LOAD( "jaleco-6.4j",  0x0000, 0x1000, CRC(f58bf3b0) SHA1(a7e30a9bfbd43fb4cc1987ad9fb0f3a023a7735d) )
506   ROM_RELOAD(0x1000,0x1000) // confirmed mirror by hw fluke
507   ROM_LOAD( "jaleco-7.4l",  0x2000, 0x1000, CRC(2d587653) SHA1(c2c08fde75a7ebc60edd461ca18d982fb00f43e2) )
508   ROM_RELOAD(0x3000,0x1000)
509
510   ROM_REGION( 0x2000, "gfx1", 0 )
511   ROM_LOAD( "jaleco-8.3p",   0x0000, 0x1000, CRC(9d6185ca) SHA1(4e36810a6a6ba98d796966531d2f32277a8168d0) )
512   ROM_LOAD( "jaleco-9.4p",   0x1000, 0x1000, CRC(bccca24c) SHA1(95bdd2cfdefb76ca8d3c00b9fe140f97feebdcc1) )
513
514   ROM_REGION( 0x3000, "gfx2", 0 )
515   ROM_LOAD( "jaleco-10.5p",   0x0000, 0x1000, CRC(3a0765c6) SHA1(574fcbca54b8a7e65d4cad29ee381e0536e75f66) )
516   ROM_LOAD( "jaleco-11.6p",   0x1000, 0x1000, CRC(cccfbeb4) SHA1(35555033bb84584fcfd58f9d0782cccb66c54211) )
517   ROM_LOAD( "jaleco-12.7p",   0x2000, 0x1000, CRC(615b3299) SHA1(1c12b456aac99690171b5aa06cbab904f4d16b2e) )
518ROM_END
519
520
406521/*************************************
407522 *
408523 *  Game driver(s)
r19972r19973
412527GAME( 1982, blueprnt,  0,        blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Bally Midway", "Blue Print (Midway)", GAME_SUPPORTS_SAVE )
413528GAME( 1982, blueprntj, blueprnt, blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Jaleco",       "Blue Print (Jaleco)", GAME_SUPPORTS_SAVE )
414529GAME( 1983, saturnzi,  0,        blueprnt, saturn, driver_device,   0, ROT270, "Zilec Electronics / Jaleco",       "Saturn", GAME_SUPPORTS_SAVE )
530GAME( 1983, grasspin,  0,        grasspin, grasspin, driver_device, 0, ROT90,  "Zilec Electronics / Jaleco",       "Grasspin", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
trunk/src/mame/mame.lst
r19972r19973
88728872blueprnt      // (c) 1982 Bally Midway (Zilec in ROM 3U, and the programmer names)
88738873blueprntj      // (c) 1982 Jaleco (Zilec in ROM 3U, and the programmer names)
88748874saturnzi      // (c) 1983 Jaleco (Zilec in ROM R6, and the programmer names)
8875grasspin      // (c) 1983 Jaleco (Zilec / Ashby programmer names in sound rom)
88758876
88768877// Fuuki FG-2 games
88778878gogomile      // (c) 1995
trunk/src/mame/video/blueprnt.c
r19972r19973
8383   SET_TILE_INFO_MEMBER(0, code, color, 0);
8484}
8585
86void blueprnt_state::video_start()
86// really not sure about this but Grasspin doesn't write the tilebank
87// or flipscreen after startup...  this certainly doesn't work for 'Saturn'
88TILE_GET_INFO_MEMBER(blueprnt_state::get_bg_tile_info_grasspin)
8789{
90   int attr = m_colorram[tile_index];
91   int code = m_videoram[tile_index];
92   int color = attr & 0x7f;
8893
94   tileinfo.category = (attr & 0x80) ? 1 : 0;
95
96   if (!(attr & 0x10)) code  += m_gfx_bank * 0x100;
97   else code &=0xff;
98   
99   SET_TILE_INFO_MEMBER(0, code, color, 0);
100}
101
102
103
104VIDEO_START_MEMBER(blueprnt_state,blueprnt)
105{
106
89107   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
90108   m_bg_tilemap->set_transparent_pen(0);
91109   m_bg_tilemap->set_scroll_cols(32);
r19972r19973
93111   save_item(NAME(m_gfx_bank));
94112}
95113
114VIDEO_START_MEMBER(blueprnt_state,grasspin)
115{
116
117   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info_grasspin),this), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32);
118   m_bg_tilemap->set_transparent_pen(0);
119   m_bg_tilemap->set_scroll_cols(32);
120
121   save_item(NAME(m_gfx_bank));
122}
123
124
96125static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
97126{
98127   blueprnt_state *state = machine.driver_data<blueprnt_state>();
trunk/src/mame/includes/blueprnt.h
r19972r19973
3737   DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w);
3838   DECLARE_WRITE8_MEMBER(dipsw_w);
3939   TILE_GET_INFO_MEMBER(get_bg_tile_info);
40   TILE_GET_INFO_MEMBER(get_bg_tile_info_grasspin);
4041   virtual void machine_start();
4142   virtual void machine_reset();
42   virtual void video_start();
43   DECLARE_VIDEO_START(blueprnt);
44   DECLARE_VIDEO_START(grasspin);
4345   virtual void palette_init();
4446   UINT32 screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4547};

Previous 199869 Revisions Next


© 1997-2024 The MAME Team