Author Topic: Multi Pac 1.5  (Read 31763 times)

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Multi Pac 1.5
« on: January 22, 2007, 02:54:08 AM »
Has anyone tried to get this rom working in Mame ? 

All i get is the game select menu and thats it

I am sure this is screwed up .

Quote
ROM_START( multi15 )
   ROM_REGION( 0x80000, REGION_CPU1, 0 )   /* 64k for code */
   ROM_LOAD( "mpexe15.bin",   0x0000, 0x80000, CRC(eb181a29) SHA1(14a44730d36c25c76ae68cbfd51febda9d8d1dfa) )
   
   ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
   ROM_LOAD( "mpgfx15.bin",    0x0000, 0x20000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
   
   ROM_REGION( 0x0500, REGION_PROMS, 0 )
   ROM_LOAD( "pal_7f.bin",     0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
   ROM_LOAD( "clut_4a.bin",    0x0100, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )

   ROM_REGION( 0x0200, REGION_SOUND1, 0 )   /* sound PROMs */
   ROM_LOAD( "82s126.1m",    0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
   ROM_LOAD( "82s126.3m",    0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )   /* timing - not used */
ROM_END
IQ Forum Member

Offline robber804

  • Newbies
  • *
  • Posts: 40
  • Karma: +0/-0
  • Relentless Bastard
Re: Multi Pac 1.5
« Reply #1 on: January 22, 2007, 09:51:22 PM »
This is from a much older version of MAME but here is a driver you can probably update, or you may already have it I'm not sure

Code: [Select]
// BEGIN Modifications
int multipac_bankaddress;
extern int gfx_bank;
extern void multipac_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
extern void gfx_bank_zero(void);
extern void z80_reset(void);
WRITE_HANDLER( superabc_gfxbank_w );
WRITE_HANDLER( multipac_gfxbank_w );
WRITE_HANDLER( multipac_color_w );
// END Modifications

/*********************************************************************
SUPER ABC & MULTIPAC
 *********************************************************************/

//   Multipac 1.4 & 1.5 Driver
//   I've made the driver so that It resets the hardware as soon as the banks
//   change. This means that the games all _work_, wether that's what the
//   original does? beats me!

static int multipac_interrupt(void)
{
unsigned char *RAM = memory_region(REGION_CPU1);

/* speed up cheat */
if (speedcheat)
{
if (readinputport(4) & 1) /* check status of the fake dip switch */
{
/* activate the cheat */
RAM[0x180b] = 0x01;
RAM[0x1ffd] = 0xbd;
}
else
{
/* remove the cheat */
RAM[0x180b] = 0xbe;
RAM[0x1ffd] = 0x00;
}
}

        /* Menu Button */
        // If menu button pressed, set bank to 0, and reset the cpu
        // THIS DOESN'T WORK!!!!

        // I need a way to force gfx_bank to be zero
        // and to disable interrupts, and turn off sound.
        // beyond my reach atm...
       
        if (readinputport(5) & 1) {
           memset(dirtybuffer,1,videoram_size);
           RAM[0xa000]=0;
           RAM[0xa001]=0;
           multipac_bankaddress = 0x10000;
           memset (dirtybuffer,1,videoram_size);
           cpu_setbank(1, &RAM[multipac_bankaddress]);
           cpu_set_reg(1, 0x0000); // Force 0 into PC
           gfx_bank_zero();        // Force GFX Bank 0 (Menu Bank)     
           // z80_reset(); This Crashes MAME (boo-hoo!)
        }
     
return interrupt();
}

INPUT_PORTS_START( multipac )
PORT_START /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
PORT_BITX(    0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
PORT_DIPSETTING(    0x00, DEF_STR( On ) )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )

PORT_START /* IN1 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) // Button 1 maps to start button also.
                                                                   // makes lizard wizard easier to play
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
PORT_DIPSETTING(   0x80, DEF_STR( Upright ) )
PORT_DIPSETTING(   0x00, DEF_STR( Cocktail ) )

PORT_START /* DSW 1 */
PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
PORT_DIPSETTING(    0x00, "1" )
PORT_DIPSETTING(    0x04, "2" )
PORT_DIPSETTING(    0x08, "3" )
PORT_DIPSETTING(    0x0c, "5" )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
PORT_DIPSETTING(    0x00, "10000" )
PORT_DIPSETTING(    0x10, "15000" )
PORT_DIPSETTING(    0x20, "20000" )
PORT_DIPSETTING(    0x30, "None" )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
PORT_DIPSETTING(    0x40, "Normal" )
PORT_DIPSETTING(    0x00, "Hard" )
PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
PORT_DIPSETTING(    0x80, "Normal" )
PORT_DIPSETTING(    0x00, "Alternate" )

PORT_START /* DSW 2 */
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )

PORT_START /* FAKE */
/* This fake input port is used to get the status of the fire button */
/* and activate the speedup cheat if it is. */
PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Speedup Cheat", KEYCODE_LCONTROL, JOYCODE_1_BUTTON1 )
PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
PORT_DIPSETTING(    0x01, DEF_STR( On ) )

        PORT_START      /* MENU BUTTON */
/* This fake input port is used to get the status of the fire button */
/* and activate the speedup cheat if it is. */
        PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME, "Menu Button", KEYCODE_RCONTROL, JOYCODE_1_BUTTON1 )
PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
PORT_DIPSETTING(    0x01, DEF_STR( On ) )

INPUT_PORTS_END


static struct GfxDecodeInfo multipac_gfxdecodeinfo[] =
{
        { REGION_GFX1, 0x00000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x01000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x02000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x03000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x04000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x05000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x06000, &tilelayout,   4*32, 32 }, //Pacman Plus//
        { REGION_GFX1, 0x07000, &spritelayout, 4*32, 32 }, //Pacman Plus//
        { REGION_GFX1, 0x08000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x09000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x0a000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x0b000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x0c000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x0d000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x0e000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x0f000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x10000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x11000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x12000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x13000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x14000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x15000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x16000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x17000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x18000, &tilelayout,   0, 32 },
        { REGION_GFX1, 0x19000, &spritelayout, 0, 32 },
        { REGION_GFX1, 0x1a000, &tilelayout,   8*32, 32 }, // Crush Roller //
        { REGION_GFX1, 0x1b000, &spritelayout, 8*32, 32 }, // Crush Roller //
        { REGION_GFX1, 0x1c000, &tilelayout,   12*32, 32 }, // Liz Wiz //
        { REGION_GFX1, 0x1d000, &spritelayout, 12*32, 32 }, // Liz Wiz //
        { REGION_GFX1, 0x1e000, &tilelayout,   0, 32 }, // Unused? //
        { REGION_GFX1, 0x1f000, &spritelayout, 0, 32 }, // Unused? //                     

        { -1 } /* end of array */
};


static void init_multipac(void)
{
        int i;
        unsigned char *RAM;

        /* Clear Bank Swap addresses */
        for (i=0; i<8; i++) {
            RAM = memory_region(REGION_CPU1);
            RAM[0xa000+i] = 0;
        }

        /* And clear Sprites */
        for (i=0; i<8; i++) {
            RAM = memory_region(REGION_CPU1);
            RAM[0x5060+i*2]=0;
            RAM[0x5061+i*2]=0;
        }

        multipac_bankaddress = 0x10000;
        cpu_setbank(1, &RAM[multipac_bankaddress]);
}

static WRITE_HANDLER( multipac_bankswitch_w)
{
   unsigned char *RAM = memory_region(REGION_CPU1);

   if (data != 0) {
      if (data != multipac_bankaddress) {
         if (data < 0x20) // Check for valid codes...
         multipac_bankaddress = 0x10000+ ((data & 0x10) / 0x10 + (data & 0x0f) *2) * 0x4000;
      else
         multipac_bankaddress = 0x10000;
      cpu_setbank(1, &RAM[multipac_bankaddress]);

      if (RAM[0xa007]==0)
         cpu_setbank(2, &RAM[multipac_bankaddress+0x4000]);
      }

   }
}

static WRITE_HANDLER( multipac_a000_w )
{
   unsigned char *RAM = memory_region(REGION_CPU1);
   
   if (data != multipac_bankaddress) {
         if (data < 0x20) // Check for valid codes...
         multipac_bankaddress = 0x10000 + ((data & 0x10) / 0x10 + (data & 0x0f) *2) * 0x4000;
      else
         multipac_bankaddress = 0x10000;
      cpu_setbank(1, &RAM[multipac_bankaddress]);

      if (RAM[0xa007]==0)
         cpu_setbank(2, &RAM[multipac_bankaddress+0x4000]);

      cpu_set_reg(1,0x0000); // Set PC <- 0000
   }
}


static MEMORY_READ_START( multipac_readmem )
        { 0x0000, 0x3fff, MRA_BANK1 },
{ 0x4000, 0x47ff, MRA_RAM }, /* video and color RAM */
        { 0x4c00, 0x4fff, MRA_RAM },    /* including sprite codes at 4ff0-4fff */
{ 0x5000, 0x503f, input_port_0_r }, /* IN0 */
{ 0x5040, 0x507f, input_port_1_r }, /* IN1 */
{ 0x5080, 0x50bf, input_port_2_r }, /* DSW1 */
{ 0x50c0, 0x50ff, input_port_3_r }, /* DSW2 */
//      { 0x8000, 0x9fff, MRA_ROM },    /* Ms. Pac-Man */
        { 0x8000, 0x9fff, MRA_BANK2 },  /* Ms. Pac-Man, LizWiz */
        // to implement bank switching
        // { 0xa000, 0xafff, MRA_RAM },    /* Multi Pac : Must it be RAM? */
        { 0xf000, 0xfffe, MRA_RAM },
MEMORY_END

static MEMORY_WRITE_START( multipac_writemem )
{ 0x0000, 0x3fff, MWA_ROM },
{ 0x4000, 0x43ff, videoram_w, &videoram, &videoram_size },
{ 0x4400, 0x47ff, colorram_w, &colorram },
        { 0x4900, 0x49ff, MWA_RAM }, /* MULTIPAC */
{ 0x4c00, 0x4fef, MWA_RAM },
{ 0x4ff0, 0x4fff, MWA_RAM, &spriteram, &spriteram_size },
{ 0x5000, 0x5000, interrupt_enable_w },
{ 0x5001, 0x5001, pengo_sound_enable_w },
{ 0x5002, 0x5002, MWA_NOP },
{ 0x5003, 0x5003, pengo_flipscreen_w },
  { 0x5004, 0x5005, pacman_leds_w },
// { 0x5006, 0x5006, pacman_coin_lockout_global_w }, this breaks many games
  { 0x5007, 0x5007, pacman_coin_counter_w },
{ 0x5040, 0x505f, pengo_sound_w, &pengo_soundregs },
{ 0x5060, 0x506f, MWA_RAM, &spriteram_2 },
//      { 0x50c0, 0x50c0, watchdog_reset_w },
        { 0x8000, 0x9fff, MWA_ROM },    /* Ms. Pac-Man */
        { 0xa000, 0xa000, multipac_a000_w },
        { 0xa001, 0xa001, multipac_gfxbank_w },
        { 0xa002, 0xa002, multipac_color_w },
        { 0xa003, 0xa00f, MWA_RAM },    /* Used by Multipac */
{ 0xc000, 0xc3ff, videoram_w }, /* mirror address for video ram, */
{ 0xc400, 0xc7ef, colorram_w }, /* used to display HIGH SCORE and CREDITS */
        { 0xf000, 0xfffe, MWA_RAM },
        { 0xffff, 0xffff, MWA_NOP },    /* Eyes writes to this location to simplify code */
MEMORY_END

static const struct MachineDriver machine_driver_multipac =
{
/* basic machine hardware */
{
{
CPU_Z80,
18432000/6, /* 3.072 MHz */
                        multipac_readmem,multipac_writemem,0,writeport,
                        multipac_interrupt,1
}
},
60.606060, 2500, /* frames per second, vblank duration */
1, /* single CPU, no need for interleaving */
pacman_init_machine,

/* video hardware */
36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
        multipac_gfxdecodeinfo,
        64,    // Pacman 16 Pengo 32 (Number of colours used, right?
        4*128, // Number of colour schemes (Pacman 4*32, Pengo 4*64 (4*32*2)
        multipac_vh_convert_color_prom,

VIDEO_TYPE_RASTER,
        0,
pacman_vh_start,
generic_vh_stop,
pengo_vh_screenrefresh,

/* sound hardware */
0,0,0,0,
{
{
SOUND_NAMCO,
&namco_interface
}
}
};

in src\vidhrdw\pengo.c

/************************************************************************
  BEGIN MODIFICATIONS FOR MULTIPAC
 ************************************************************************/

void multipac_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom)
{
int i;
#define TOTAL_COLORS(gfxn) (Machine->gfx[gfxn]->total_colors * Machine->gfx[gfxn]->color_granularity)
#define COLOR(gfxn,offs) (colortable[Machine->drv->gfxdecodeinfo[gfxn].color_codes_start + offs])


for (i = 0;i < Machine->drv->total_colors;i++)
{
int bit0,bit1,bit2;


/* red component */
bit0 = (*color_prom >> 0) & 0x01;
bit1 = (*color_prom >> 1) & 0x01;
bit2 = (*color_prom >> 2) & 0x01;
*(palette++) = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* green component */
bit0 = (*color_prom >> 3) & 0x01;
bit1 = (*color_prom >> 4) & 0x01;
bit2 = (*color_prom >> 5) & 0x01;
*(palette++) = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* blue component */
bit0 = 0;
bit1 = (*color_prom >> 6) & 0x01;
bit2 = (*color_prom >> 7) & 0x01;
*(palette++) = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;

color_prom++;
}

/* color_prom now points to the beginning of the lookup table */

/* character lookup table */
/* sprites use the same color lookup table as characters */
for (i = 0;i < TOTAL_COLORS(0);i++)
COLOR(0,i) = *(color_prom++) & 0x0f;

color_prom += 0x80;

        /* second bank character lookup table */
/* sprites use the same color lookup table as characters */
        for (i = 0;i < TOTAL_COLORS(6);i++)
{
                if (*color_prom &0x0f)
                    COLOR(6,i) = (*color_prom & 0x0f) + 0x10;      /* second palette bank */
                else
                    COLOR(6,i) = 0;    /* preserve transparency */

color_prom++;
}

color_prom += 0x80;

        /* third bank character lookup table */
/* sprites use the same color lookup table as characters */
        for (i = 0;i < TOTAL_COLORS(26);i++)
{
                if (*color_prom) COLOR(26,i) = (*color_prom & 0x0f) + 0x00;      /* third palette bank */
                else COLOR(26,i) = 0;    /* preserve transparency */

color_prom++;
}

color_prom += 0x80;

        /* fourth bank character lookup table */
/* sprites use the same color lookup table as characters */
        for (i = 0;i < TOTAL_COLORS(0x1c);i++)
{
                if (*color_prom) COLOR(0x1c,i) = (*color_prom & 0x0f) + 0x30;      /* fourth palette bank */
                else COLOR(0x1c,i) = 0;    /* preserve transparency */

color_prom++;
}

}

WRITE_HANDLER( multipac_gfxbank_w )
{
        // This handler handles the character set banking
        // (memory location 0a001)
        // graphics rom banking all in one.

        unsigned char *RAM = memory_region(REGION_CPU1);

        if (gfx_bank!=data) {
           int i;
           for (i=0x4000; i<0x4400; i++)
              RAM[i]=0x40;
           memset(dirtybuffer,1,videoram_size);
           gfx_bank=data;

        }
}

WRITE_HANDLER( multipac_color_w )
{
   // The colours are currently handled by the graphics banking, but here
   // is an exception
   unsigned char *RAM = memory_region(REGION_CPU1);
   if (data==2) {
      RAM[0xf000]=0;
   }     
}

void gfx_bank_zero( void )
{
   if (gfx_bank!=0) {
       gfx_bank=0;
   }
}               
-robber804

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #2 on: January 23, 2007, 01:10:51 AM »
Thanks I wil give that a try .

I did not think it would need much since its meant to work on the original hardware
IQ Forum Member

Offline robber804

  • Newbies
  • *
  • Posts: 40
  • Karma: +0/-0
  • Relentless Bastard
Re: Multi Pac 1.5
« Reply #3 on: January 23, 2007, 02:42:33 AM »
Not sure I think that is from the misfitmame source a couple of years ago, it seems to have been removed since then, I think it was added to a recent version of Raine (not sure) you may be able to get something out of that source.

Thanks I wil give that a try .

I did not think it would need much since its meant to work on the original hardware
-robber804

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #4 on: January 23, 2007, 06:26:35 AM »
Yeah its in the latest version of Raine :)

Do you by chance have the rom load driver ? I just want to see if it matches the way I have it .

IQ Forum Member

Offline robber804

  • Newbies
  • *
  • Posts: 40
  • Karma: +0/-0
  • Relentless Bastard
Re: Multi Pac 1.5
« Reply #5 on: January 23, 2007, 06:27:59 PM »
Code: [Select]
[code
ROM_START( multi15 )
ROM_REGION( 0x90000, REGION_CPU1, 0 )   /* 8 banks of 64k for code */
ROM_LOAD( "mpexe15.bin",  0x10000, 0x80000, 0xeb181a29 )
ROM_COPY( REGION_CPU1, 0x10000, 0x0000, 0x4000)

ROM_REGION( 0x20000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "mpgfx15.bin",  0x0000, 0x20000, 0x012fb9ec )

ROM_REGION( 0x2420, REGION_PROMS, 0)
ROM_LOAD( "pal_7f.bin",   0x1000, 0x0100, 0x40a5c3d9 )
ROM_COPY( REGION_PROMS,   0x1000, 0x0000, 0x0010 )
ROM_COPY( REGION_PROMS,   0x1020, 0x0010, 0x0010 )
ROM_COPY( REGION_PROMS,   0x1040, 0x0020, 0x0010 )
ROM_COPY( REGION_PROMS,   0x1060, 0x0030, 0x0010 )

ROM_LOAD( "clut_4a.bin",  0x0040, 0x0400, 0x562a66de )

ROM_REGION( 0x0200, REGION_SOUND1, 0 )  /* sound PROMs */
ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 ) /* timing - not used */
ROM_END

]
Yeah its in the latest version of Raine :)

Do you by chance have the rom load driver ? I just want to see if it matches the way I have it .


-robber804

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #6 on: January 23, 2007, 09:37:16 PM »
Cool thanks for that :)
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #7 on: January 23, 2007, 11:13:38 PM »
Looks like this is going to be a pain to update .  So far I get the menu ( With wrong colours ) to show up . Games will not start :(
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #8 on: January 24, 2007, 11:41:03 PM »
Does anyone know how to convert this old driver to the current standards for Mame ?
I can understand some parts but thats it .
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #9 on: January 27, 2007, 02:41:58 AM »
I've converted what I could, the menu comes up, and the games can be attempted to start.
Crush Roller works with messed up graphics. Two others display a diagnostic screen that says some of the roms are bad. The others either give a blank screen, or crash after the crosshatches appear.

Could you share your info ?   
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #10 on: January 28, 2007, 07:58:47 AM »
Been away for a while.  I will, next time I turn that computer on.
Have to go to sleep now so I can get up early for work.

Ok thanks for that :D
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #11 on: January 30, 2007, 09:24:18 PM »
Slaps robert with a taco .
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #12 on: January 31, 2007, 04:53:17 AM »
No problem robert good things happen to those who wait , Unless you have a taco that is hehe.
Anyway that is good progress you have converted more than what I did and get futher into the game :)
Thanks for your time on this :D
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #13 on: January 31, 2007, 07:38:02 AM »
Bit more progress.. got the sprites banked properly and now can play the pacman games.
Tiles are still corrupted though, work continues...
Cool doing well :)
IQ Forum Member

Offline James33

  • Expert
  • *****
  • Posts: 532
  • Karma: +3/-0
  • The Mame Man
    • Emulation Zone
Re: Multi Pac 1.5
« Reply #14 on: February 01, 2007, 08:49:39 AM »
Graphics are pretty much done now.
Lizard Wizard cannot be played because the man is invisible.
Slight colour error in Crush Roller and Pacman Plus.
Need to find out what the fire button is and add it in.
Need to add a "return to menu" button.
Everything else works perfectly.

All I know is the fire button is mapped to player 1 start .   And to go back to the menu was the F3 in Mame .
There is some info here for multipac on this PDF .  http://www.arcadegameover.com/images/board_repair/multipac.pdf
IQ Forum Member