Previous 199869 Revisions Next

r34823 Tuesday 3rd February, 2015 at 20:58:02 UTC by David Haywood
new WORKING game
PuzzLove [Manuel Assoni]
[src/mame]mame.lst
[src/mame/drivers]silvmil.c
[src/mame/video]decospr.c decospr.h

trunk/src/mame/drivers/silvmil.c
r243334r243335
261261   PORT_SERVICE_DIPLOC(  0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */
262262INPUT_PORTS_END
263263
264
265static INPUT_PORTS_START( puzzlove )
266   PORT_START("P1_P2")
267   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_PLAYER(1)
268   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_PLAYER(1)
269   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_PLAYER(1)
270   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
271   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
272   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
273   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
274   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
275   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_PLAYER(2)
276   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_PLAYER(2)
277   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_PLAYER(2)
278   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
279   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
280   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
281   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
282   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
283
284   PORT_START("COIN")
285   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
286   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
287   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
288   PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNKNOWN )
289
290   PORT_START("DSW")
291   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
292   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
293   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
294   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
295   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
296   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
297   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
298   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
299   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
300   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
301   PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
302   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
303   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
304   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
305   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
306   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
307   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
308   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
309   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
310   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
311   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
312   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
313   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
314   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
315   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
316   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
317   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
318   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
319   PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
320   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
321   PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
322   PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
323   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
324   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
325   PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
326   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
327   PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
328   PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
329   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
330   PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
331   PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
332   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
333   PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
334   PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
335   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
336   PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
337   PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
338   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
339INPUT_PORTS_END
340
341
342
264343static const gfx_layout tlayout =
265344{
266345   16,16,
r243334r243335
352431   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2)
353432MACHINE_CONFIG_END
354433
434static MACHINE_CONFIG_DERIVED( puzzlove, silvmil )
435   MCFG_DEVICE_MODIFY("spritegen")
436   MCFG_DECO_SPRITE_BOOTLEG_TYPE(1)
437MACHINE_CONFIG_END
355438
356439ROM_START( silvmil )
357440   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
r243334r243335
405488   ROM_LOAD16_BYTE( "d-20_u56.bin", 0x100001, 0x80000, CRC(e67c2c7d) SHA1(cddfd6a3d934e71853af62e3d2bf312618c9b4ff) )
406489ROM_END
407490
491ROM_START( puzzlove )
492   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
493   ROM_LOAD16_BYTE( "3.u3", 0x00000, 0x40000, CRC(826c8472) SHA1(54f1a9fa0431de840d6fce466e09098a8d601660) )
494   ROM_LOAD16_BYTE( "4.u2", 0x00001, 0x40000, CRC(64ddc708) SHA1(60b29f8cd5dd654be34452fd197a77abc872e63d) )
408495
496   ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80  */
497   ROM_LOAD( "1.uz02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) )
498
499   ROM_REGION( 0x40000, "oki", 0 ) /* samples */
500   ROM_LOAD( "2.uz11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) )
501
502   ROM_REGION( 0x100000, "gfx1", 0 )
503   ROM_LOAD16_BYTE( "10.u41",   0x000000, 0x20000, CRC(7200f878) SHA1(27c6389f802f6e0af0210e2b01788914c0eb1d04) )
504   ROM_CONTINUE ( 0x080000,0x20000 )
505   ROM_CONTINUE ( 0x040000,0x20000 )
506   ROM_CONTINUE ( 0x0c0000,0x20000 )
507   ROM_LOAD16_BYTE( "9.u42",   0x000001, 0x20000, CRC(21b1b297) SHA1(0f589d1c62d0f79b1379e4444b119bdc4cc70cfb) )
508   ROM_CONTINUE ( 0x080001,0x20000 )
509   ROM_CONTINUE ( 0x040001,0x20000 )
510   ROM_CONTINUE ( 0x0c0001,0x20000 )
511
512   ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */
513   ROM_LOAD16_BYTE( "5.u53", 0x000000, 0x80000, CRC(8707d5a0) SHA1(05480ac34982a4e4768b7f3fccd2e557ca4b2545) )
514   ROM_LOAD16_BYTE( "6.u54", 0x000001, 0x80000, CRC(60a6d614) SHA1(0693c08c51d6b3a05373c9999f01b0b8d23a1c89) )
515   ROM_LOAD16_BYTE( "7.u55", 0x100000, 0x80000, CRC(0f2ea5c4) SHA1(4cb46fc6272e3cc14dfdcd7831157433ee7cf247) )
516   ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(037dcd3d) SHA1(fcdf604710518982e0b4acc81a56fa703d0c9407) )
517ROM_END
518
409519void silvmil_state::tumblepb_gfx1_rearrange()
410520{
411521   UINT8 *rom = memregion("gfx1")->base();
r243334r243335
432542   tumblepb_gfx1_rearrange();
433543}
434544
435GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
545GAME( 1995, silvmil,  0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
546GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0,   "Para", "PuzzLove", GAME_SUPPORTS_SAVE )
trunk/src/mame/mame.lst
r243334r243335
1047910479heuksun         // (c) 1998 Oksan / F2 System
1048010480bestri          // (c) F2 System
1048110481silvmil         // (c) 1995 Para
10482puzzlove      // (c) 1994 Para
1048210483funybubl        // (c) 1999 In Chang Electronic Co
1048310484funybublc       // (c) 1999 Comad Industries
1048410485dcheese         // (c) 1993 HAR
trunk/src/mame/video/decospr.c
r243334r243335
150150      device_video_interface(mconfig, *this),
151151      m_gfxregion(0),
152152      m_is_bootleg(false),
153      m_bootleg_type(0),
153154      m_x_offset(0),
154155      m_y_offset(0),
155156      m_flipallx(0),
r243334r243335
232233      {
233234         sprite = spriteram[offs + 1];
234235         y = spriteram[offs];
235         flash = y & 0x1000;
236         
237         if (m_is_bootleg && (m_bootleg_type == 1))
238         {
239            flash = y & 0x0400;
240         }
241         else
242         {
243            flash = y & 0x1000;
244         }
245
236246         w = y & 0x0800;
237247
238248
r243334r243335
258268
259269            fx = y & 0x2000;
260270            fy = y & 0x4000;
261            multi = (1 << ((y & 0x0600) >> 9)) - 1; /* 1x, 2x, 4x, 8x height */
262271
272            int tempwidth = 0;
273
274            if (m_is_bootleg && (m_bootleg_type==1))  // puzzlove
275            {
276               tempwidth = (y & 0x1000) >> 12;
277               tempwidth |= (y & 0x0200) >> 8;
278            }
279            else
280            {
281               tempwidth |= (y & 0x0600) >> 9;
282            }
283
284            multi = (1 << (tempwidth)) - 1; /* 1x, 2x, 4x, 8x height */
285
263286            /* bootleg support (esd16.c) */
264287            if (flipscreen) x = ((x&0x1ff) - m_x_offset)&0x1ff;
265288            else x = ((x&0x1ff) + m_x_offset)&0x1ff;
trunk/src/mame/video/decospr.h
r243334r243335
2121   static void set_pri_callback(device_t &device, decospr_pri_cb_delegate callback) { downcast<decospr_device &>(device).m_pri_cb = callback; }
2222   static void set_col_callback(device_t &device, decospr_col_cb_delegate callback) { downcast<decospr_device &>(device).m_col_cb = callback; }
2323   static void set_is_bootleg(device_t &device, bool is_bootleg) { downcast<decospr_device &>(device).m_is_bootleg = is_bootleg; }
24   static void set_bootleg_type(device_t &device, int bootleg_type) { downcast<decospr_device &>(device).m_bootleg_type = bootleg_type; }
2425   static void set_flipallx(device_t &device, int flipallx) { downcast<decospr_device &>(device).m_flipallx = flipallx; }
2526   static void set_transpen(device_t &device, int transpen) { downcast<decospr_device &>(device).m_transpen = transpen; }
2627   static void set_offsets(device_t &device, int x_offset, int y_offset)
r243334r243335
5556
5657   // used by various bootleg / clone chips.
5758   bool m_is_bootleg; // used by various bootlegs (disables masking of sprite tile number when multi-sprite is used)
59   int m_bootleg_type; // for Puzzlove, has sprite bits moved around (probably to prevent board swaps)
5860   int m_x_offset, m_y_offset; // used by various bootlegs
5961   int m_flipallx; // used by esd16.c - hedpanio, multchmp , and nmg5.c
6062   int m_transpen; // used by fncywld (tumbleb.c)
r243334r243335
8082#define MCFG_DECO_SPRITE_ISBOOTLEG(_boot) \
8183   decospr_device::set_is_bootleg(*device, _boot);
8284
85#define MCFG_DECO_SPRITE_BOOTLEG_TYPE(_bootleg_type) \
86   decospr_device::set_bootleg_type(*device, _bootleg_type);
87
8388#define MCFG_DECO_SPRITE_FLIPALLX(_flip) \
8489   decospr_device::set_flipallx(*device, _flip);
8590


Previous 199869 Revisions Next


© 1997-2024 The MAME Team