Welcome!

General Emulation => MAME => Topic started by: XorXe on March 23, 2005, 06:12:46 AM

Title: Please teach and help me!
Post by: XorXe on March 23, 2005, 06:12:46 AM
Hi guys im very noob in this world

I dont understand the structure of mame drivers for example in kof2003 driver (http://neosource.1emu.net/pages/games/mame/kof2003.htm)

I dont know in what part of neogeo.c is the init section to add all text.

Please tell me what is init section to add all.
Title: Please teach and help me!
Post by: FerchogtX on March 23, 2005, 11:01:19 PM
You have 2 options here:
1.- The easieast way, add all of that (including the bankswitch code) in drivers/neogeo.c (dont forget to add also the string for kof2003 in driver.c)
2.- The normal way, add the bankswitch code in machine/neogeo.c including the kludge for kof2003 installing the bankswitch handlers, and then the rest of the driver can be pasted in drivers/neogeo.c

What i recommend? if you start getting familiar with mame src, use the easiest way, works equal and is less work for you
See ya!!!! :D
Title: Please teach and help me!
Post by: XorXe on March 24, 2005, 03:52:16 AM
Thanx now i know how to add all  :)

so i have other problem my compilation of mame32 plus¡ v94u4 dont work  :(

explain my problem:

In the main screen i select any rom, and appear the rom load screen, so dont start emulation :(

my first impression was that I needed the bios, nevertheless the bios are in the correct directory.

 :(  :(

for more help please look this video (http://www.prodigyweb.net.mx/xorxevandyk/mame/mameproblem.rar)

(use save target as)

you need TSCC Codecs (http://www.mundodivx.com/stuff/codecs/TSCC.exe)
Title: Please teach and help me!
Post by: James33 on March 24, 2005, 05:04:11 AM
Do you have these file in your mame32 plus directory.

(http://img237.exs.cx/img237/927/thgis2df.jpg)
Title: Please teach and help me!
Post by: XorXe on March 24, 2005, 07:10:20 AM
i dont have anyone of these files
Title: Please teach and help me!
Post by: James33 on March 24, 2005, 07:50:51 AM
well you need those . go to http://mameplus.emu-france.com/ and download Mame32 plus and copy the ctrlr folder with the files in it and put it in your mame plus directory
Title: Please teach and help me!
Post by: XorXe on March 25, 2005, 01:20:21 AM
Very much thanx  ;)
more help please

I dont play kof2003 whit unibios
how to add kof2003 unibios suport?

I use the same driver of iq_132 page

In mame32 plus it posible add kaillera support??
and edit the source for only cps1 cps2 and Neogeo??

and compress mameplib.dll??
my dll size is 40.5 MB :confused:
Title: Please teach and help me!
Post by: neo04 on March 25, 2005, 03:02:28 AM
Quote
I dont play kof2003 whit unibios
how to add kof2003 unibios suport?
mame32 plus is already supports unibios... look in the src...

Quote
In mame32 plus it posible add kaillera support??
kaillera is only working with 0.84 & below (if im not mistaken)... kaillera src does not comply with the current mame src

Quote
and edit the source for only cps1 cps2 and Neogeo??
yes, u can.. edit the driver.c file

Quote
and compress mameplib.dll??
yes... & u could even compile a non-dll version too...
Title: Please teach and help me!
Post by: James33 on March 25, 2005, 03:16:39 AM
I have kaillera working on 89u1 There is another later build that supports this  But please be aware that these builds are not offical. Your best bet would be FBA for kaillera as its supported on that build .



you could make a mak file that goes in the src folder the driver c file will need to edited as well as the makerfile

Mine is like this

Code: [Select]

# uncomment the following lines to include a CPU core
CPUS+=Z80@
CPUS+=M68000@

# uncomment the following lines to include a sound core
SOUNDS+=CUSTOM@
SOUNDS+=AY8910@
SOUNDS+=YM2151@
SOUNDS+=YM2151_ALT@
SOUNDS+=YM2610@
SOUNDS+=YM2610B@
SOUNDS+=YM2612@
SOUNDS+=ADPCM@
SOUNDS+=OKIM6295@
SOUNDS+=QSOUND@

DRVLIBS = \
$(OBJ)/capcom.a $(OBJ)/neogeo.a \

$(OBJ)/capcom.a: \
$(OBJ)/vidhrdw/cps1.o $(OBJ)/drivers/cps1.o $(OBJ)/drivers/cps2.o \
$(OBJ)/machine/kabuki.o \

$(OBJ)/neogeo.a: \
$(OBJ)/machine/neogeo.o $(OBJ)/machine/pd4990a.o $(OBJ)/machine/neocrypt.o \
$(OBJ)/vidhrdw/neogeo.o $(OBJ)/drivers/neogeo.o \


COREOBJS += $(OBJ)/litedriver.o $(OBJ)/cheat.o

# generated text files
TEXTS += gamelist.txt

#gamelist.txt: $(EMULATOR)
# @echo Generating $@...
# @$(CURPATH)$(EMULATOR) -gamelist -noclones -sortname > docs/gamelist.txt
Title: Please teach and help me!
Post by: XorXe on March 26, 2005, 06:40:35 AM
I have new problem in Power instint matrimelee

i add all of this in src/drivers/neogeo.c (http://neosource.1emu.net/pages/games/mame/matrim.htm)

but i have bad grafix like this

i only changed name and crc of

266-m1d.bin  f692d84b original in iq_132 driver page

to

266-m1_decrypted.bin d2f3742d same like use kawaks 1.54

How to fix it?
Title: Please teach and help me!
Post by: James33 on March 27, 2005, 06:11:24 AM
I doubt this will make much differnce But try this anyway


Replace the DRIVER_INIT with DRIVER_INIT below

Which goes in SRC\DRIVERS\NEOGEO.C

Code: [Select]

DRIVER_INIT( matrim )
{
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
int i;
unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,[b]0x380000[/b],0x200000,0x080000};

if (dst)
{
memcpy(dst,src,0x400000);

for(i=0;i<8;++i)
{
memcpy(src+i*0x80000,dst+sec[i],0x80000);
}
free(dst);
}

neogeo_fix_bank_type = 2;
kof2000_neogeo_gfx_decrypt(0x6a);
matrim_vx_decrypt();  // I longer use this code
init_neogeo();
}
Title: Please teach and help me!
Post by: XorXe on March 27, 2005, 06:26:12 AM
i have this

Code: [Select]
Compiling src/drivers/neogeo.c...
src/drivers/neogeo.c: In function `init_matrim':
src/drivers/neogeo.c:9241: parse error before numeric constant
make: *** [obj/EK-MAMEliteen/drivers/neogeo.o] Error 1

this is 9241 line

  unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x3  80000,0x200000,0x080000};
Title: Replace it with this !
Post by: James33 on March 27, 2005, 08:06:32 AM
:)

unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};


There is a bug on this forum that puts a space where there should not be .
If you have read other threads on this board you would of known this already .
Anyway I have fixed the post above .
Title: Please teach and help me!
Post by: XorXe on March 27, 2005, 08:16:55 AM
Quote from: James33
:)
unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};


Yep i think same and fix it

but the game doesnt work i have the same bad gfx  :confused:

sorry for many questions, but I want to learn so much as you !!
Title: Please teach and help me!
Post by: James33 on March 27, 2005, 08:26:50 AM
Can you upload your NEOGEO.C from src\drivers\ somewhere That I can have a look at it or upload it to here .Once I see the problem I will reupload it So then you can see what has been fixed .
Title: Please teach and help me!
Post by: XorXe on March 27, 2005, 10:36:33 AM
Yes this is my neogeo.c, i think i have same problems in encrypted sets, so this source only have fully decrypted and bootlegs sets.
Title: Please teach and help me!
Post by: fataku on March 27, 2005, 09:46:46 PM
your source never call the driver init, thats the reason cause the game doesnt work, check this:

Code: [Select]
/*     YEAR  NAME      PARENT    BIOS    MACHINE INPUT    INIT      MONITOR  */
GAMEB( 2002, matrim,   neogeo,neogeo, neogeo,neogeo, neogeo, ROT0, "Noise Factory / Playmore Corporation / Atlus Corporation", "Power Instinct Matrimelee (Decrypted)" )
GAMEB( 2002, matrimb,  matrim, neogeo, neogeo,neogeo, neogeo, ROT0, "Noise Factory / Playmore Corporation / Atlus Corporation", "Power Instinct Matrimelee (Hero)" )
you have the same INIT for all your sets, always neogeo, try this:

Code: [Select]
/*     YEAR  NAME      PARENT    BIOS    MACHINE INPUT    INIT      MONITOR  */
GAMEB( 2002, matrim,   neogeo,neogeo, neogeo,neogeo, matrim, ROT0, "Noise Factory / Playmore Corporation / Atlus Corporation", "Power Instinct Matrimelee (Decrypted)" )
GAMEB( 2002, matrimb,  matrim, neogeo, neogeo,neogeo, matrimb, ROT0, "Noise Factory / Playmore Corporation / Atlus Corporation", "Power Instinct Matrimelee (Hero)" )
but dont forget to add the right matrimb driver init before.
Title: You changed more than the M1D you changed the P rom loading as well :(
Post by: James33 on March 28, 2005, 02:35:08 AM
Thats not the only problem The way the P roms were loaded for matrim was wrong .

I am not even sure that matrimb set needs a INIT .


Anyway try the driver now :D
Title: Please teach and help me!
Post by: fataku on March 28, 2005, 03:27:12 AM
Quote from: James33
Thats not the only problem The way the P roms were loaded for matrim was wrong .

I am not even sure that matrimb set needs a INIT .


Anyway try the driver now :D

real matrimelee bootleg set have a scrambled M1 rom and Croms, so it needs a INIT
Title: Please teach and help me!
Post by: XorXe on March 28, 2005, 04:11:36 AM
Thanx now the game work ok, so in when i prees F2 to configure level, Flash on, of dont have the option to languaje dont appear but is not important to me  :D

many thanx to all
Title: Rom names are not the same but CRC appears to be correct
Post by: James33 on March 28, 2005, 04:58:21 AM
Quote from: fataku
real matrimelee bootleg set have a scrambled M1 rom and Croms, so it needs a INIT
matrimb seems to be a hack As its title is Power Instinct Matrimelee (Hero) And the rom set does not match the known bootleg of matrimbl that is in kawaks 1.54 and the set I use thats why I said that .

This is the bootleg set of matrimbl I use
Code: [Select]

ROM_START( matrimbl ) /* Bootleg */
        ROM_REGION( 0x500000, REGION_CPU1, 0 )
        ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
        ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
       
ROM_REGION( 0x80000, REGION_GFX1, 0 )
        ROM_FILL(                 0x000000, 0x20000, 0 )
        ROM_REGION( 0x20000, REGION_GFX2, 0 )
        ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
       
NEO_BIOS_SOUND_128K( "266-m1b.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )

ROM_REGION( 0X1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
        /* byte swapped */
        ROM_LOAD( "266-v1d.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
ROM_LOAD16_WORD_SWAP( "266-v2d.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
        ROM_LOAD( "266-v3d.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
ROM_LOAD16_WORD_SWAP( "266-v4d.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Scrambled GFX */
        ROM_LOAD16_BYTE( "266-c1b.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "266-c2b.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "266-c3b.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "266-c4b.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "266-c5b.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "266-c6b.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "266-c7b.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "266-c8b.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */
ROM_END


/* cthd2003 matrimbl svcboot Descramble C  */
const unsigned int *_LinePerm;
const unsigned int _LinePermCthd2003[16] = {1,2,3,0,0,4,4,5,1,2,3,0,0,4,4,5};
const unsigned int _LinePermSvcboot[16] = {1,2,1,2,3,0,3,0,0,4,0,4,4,5,4,5};

void ApplyPerm(int Line,unsigned char *Enc,unsigned char *Dec,int GameShift)
{
unsigned int _TilePerm[6][16]=
{
{0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15},
{0,2,4,6,8,10,12,14,1,3,5,7, 9,11,13,15},
{0,4,8,12,1,5,9,13,2,6,10,14, 3,7,11,15},
{0,8,1,9,2,10,3,11,4,12,5,13, 6,14,7,15},
{0,8,4,12,2,10,6,14,1,9,5,13, 3,11,7,15},
{0,2,8,10,4,6,12,14,1,3,9,11, 5,7,13,15},
};

const int TileSize=128;
int Perm=_LinePerm[(Line>>(GameShift))&0xF];
int i;
for(i=0;i<16;++i)
{
memcpy(Dec+(Line*2048+i*TileSize), Enc+(_TilePerm[Perm][i]*TileSize),TileSize);
}
}

static void DoPerm(int GameInit)
{
const int LineSize=128*16;
int GFXSIZE= memory_region_length(REGION_GFX3);
int nLines=GFXSIZE/LineSize;
unsigned char Enc[LineSize];
int i;int GameShift=4;
UINT8 *GFXDATA = memory_region(REGION_GFX3);
UINT8 *Dec = (UINT8*)malloc(0x4000000);
if (GameInit==0){
  _LinePerm=_LinePermCthd2003;
  GameShift=5;
        }
if (GameInit==1){
  _LinePerm=_LinePermSvcboot;
  GameShift=4;
        }
for(i=0;i {
memcpy(Enc,GFXDATA+(i*LineSize),LineSize);
ApplyPerm(i,Enc,Dec,GameShift);
}
memcpy(GFXDATA,Dec,0x4000000);
free(Dec);
}


#define MATRIMBLFIX(i) (i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8))

DRIVER_INIT( matrimbl )
{
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
        int i; int j=0;
        int tx_size = memory_region_length(REGION_GFX1);
        int rom_size = memory_region_length(REGION_GFX3);

unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};

if (dst){
memcpy(dst,src,0x400000);
for(i=0;i<8;++i){
memcpy(src+i*0x80000,dst+sec[i],0x80000);
}
free(dst);
}
        DoPerm(0);
src = memory_region(REGION_GFX3)+rom_size-tx_size;
        dst = memory_region(REGION_GFX1);
        for (i = 0;i < tx_size;i++)
            dst [ i ] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

        neogeo_fix_bank_type = 2;
        src = memory_region(REGION_CPU2)+0x10000;
        dst = (UINT8*)malloc(0x20000);
        memcpy(dst,src,0x20000);
        for(i=0x00000;i<0x20000;i++){
           if (i&0x10000){
                 if (i&0x800){
                   j=MATRIMBLFIX(i);
                   j=j^0x10000;
                 }else{
                   j=MATRIMBLFIX((i^0x01));
                 }
           }else{
                 if (i&0x800){
                   j=MATRIMBLFIX((i^0x01));
                   j=j^0x10000;
                 }else{
                   j=MATRIMBLFIX(i);
                 }
           }
          src[j]=dst[i];
        }
  free(dst);
memcpy(src-0x10000,src,0x10000);

init_neogeo();
}


GAMEB( 2002, matrimbl, matrim,  neogeo, neogeo, neogeo, matrimbl, ROT0, "Playmore Corporation / Atlus", "Matrimelee (Bootleg)" )
Title: Please teach and help me!
Post by: XorXe on March 28, 2005, 06:09:56 AM
Quote from: James33

/* cthd2003 matrimbl svcboot Descramble C  */
const unsigned int *_LinePerm;
const unsigned int _LinePermCthd2003[16] = {1,2,3,0,0,4,4,5,1,2,3,0,0,4,4,5};
const unsigned int _LinePermSvcboot[16] = {1,2,1,2,3,0,3,0,0,4,0,4,4,5,4,5};

void ApplyPerm(int Line,unsigned char *Enc,unsigned char *Dec,int GameShift)
{
   unsigned int _TilePerm[6][16]=
   {
      {0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15},
      {0,2,4,6,8,10,12,14,1,3,5,7, 9,11,13,15},
      {0,4,8,12,1,5,9,13,2,6,10,14, 3,7,11,15},
      {0,8,1,9,2,10,3,11,4,12,5,13, 6,14,7,15},
      {0,8,4,12,2,10,6,14,1,9,5,13, 3,11,7,15},
      {0,2,8,10,4,6,12,14,1,3,9,11, 5,7,13,15},
   };

   const int TileSize=128;
   int Perm=_LinePerm[(Line>>(GameShift))&0xF];
   int i;
   for(i=0;i<16;++i)
   {
      memcpy(Dec+(Line*2048+i*TileSize), Enc+(_TilePerm[Perm]*TileSize),TileSize);
   }
}

static void DoPerm(int GameInit)
{
   const int LineSize=128*16;
   int GFXSIZE= memory_region_length(REGION_GFX3);
   int nLines=GFXSIZE/LineSize;
   unsigned char Enc[LineSize];
   int i;int GameShift=4;
   UINT8 *GFXDATA = memory_region(REGION_GFX3);
   UINT8 *Dec = (UINT8*)malloc(0x4000000);
   if (GameInit==0){
      _LinePerm=_LinePermCthd2003;
      GameShift=5;
        }
   if (GameInit==1){
      _LinePerm=_LinePermSvcboot;
      GameShift=4;
        }
   for(i=0;i   {
      memcpy(Enc,GFXDATA+(i*LineSize),LineSize);
      ApplyPerm(i,Enc,Dec,GameShift);
   }
   memcpy(GFXDATA,Dec,0x4000000);
   free(Dec);
}


#define MATRIMBLFIX(i) (i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8))

DRIVER_INIT( matrimbl )
{
   UINT8 *src = memory_region(REGION_CPU1)+0x100000;
   UINT8 *dst = malloc(0x400000);
        int i; int j=0;
        int tx_size = memory_region_length(REGION_GFX1);
        int rom_size = memory_region_length(REGION_GFX3);

   unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};

   if (dst){
      memcpy(dst,src,0x400000);
      for(i=0;i<8;++i){
         memcpy(src+i*0x80000,dst+sec,0x80000);
      }
      free(dst);
   }
        DoPerm(0);
   src = memory_region(REGION_GFX3)+rom_size-tx_size;
        dst = memory_region(REGION_GFX1);
        for (i = 0;i < tx_size;i++)
            dst [ i ] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

        neogeo_fix_bank_type = 2;
        src = memory_region(REGION_CPU2)+0x10000;
        dst = (UINT8*)malloc(0x20000);
        memcpy(dst,src,0x20000);
        for(i=0x00000;i<0x20000;i++){
           if (i&0x10000){
                 if (i&0x800){
                   j=MATRIMBLFIX(i);
                   j=j^0x10000;
                 }else{
                   j=MATRIMBLFIX((i^0x01));
                 }
           }else{
                 if (i&0x800){
                   j=MATRIMBLFIX((i^0x01));
                   j=j^0x10000;
                 }else{
                   j=MATRIMBLFIX(i);
                 }
           }
          src[j]=dst;
        }
    free(dst);
   memcpy(src-0x10000,src,0x10000);
   
   init_neogeo();
}


This part is in driver init section??
i have the same set of you whit diferent names and i make a driver but i have Z80 error.

this is my driver

Code: [Select]

ROM_START( matrimbl )
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) )
ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) )

/* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */
ROM_REGION( 0x80000, REGION_GFX1, 0 )
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )

NEO_BIOS_SOUND_128K( "mart_m1.rom", CRC(3EA96AB1) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "mart_v1.rom", 0x000000, 0x400000, CRC(352B0A07) )
ROM_LOAD( "mart_v2.rom", 0x400000, 0x400000, CRC(1E9BD59E) )
ROM_LOAD( "mart_v3.rom", 0x800000, 0x400000, CRC(E8362FCC) )
ROM_LOAD( "mart_v4.rom", 0xc00000, 0x400000, CRC(C8C79B19) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "MART_C1.ROM", 0x0000000, 0x800000, CRC(A5595656) )
ROM_LOAD16_BYTE( "MART_C2.ROM", 0x0000001, 0x800000, CRC(C5F7C300) )
ROM_LOAD16_BYTE( "MART_C3.ROM", 0x1000000, 0x800000, CRC(574EFD7D) )
ROM_LOAD16_BYTE( "MART_C4.ROM", 0x1000001, 0x800000, CRC(109D54D9) )
ROM_LOAD16_BYTE( "MART_C5.ROM", 0x2000000, 0x800000, CRC(15C9E882) )
ROM_LOAD16_BYTE( "MART_C6.ROM", 0x2000001, 0x800000, CRC(77497B97) )
ROM_LOAD16_BYTE( "MART_C7.ROM", 0x3000000, 0x800000, CRC(AB481BB6) )
ROM_LOAD16_BYTE( "MART_C8.ROM", 0x3000001, 0x800000, CRC(906CF267) )
ROM_END


Add this in the middle of NEOGEO.C (src/drivers/) in the init section.

DRIVER_INIT( matrimbl )
{
/* the S data comes from the end fo the C data */
int i;
UINT8 *src = memory_region(REGION_GFX3) + memory_region_length(REGION_GFX3) - 0x20000;
UINT8 *dst = memory_region(REGION_GFX1);

for (i = 0; i < 0x20000; i++)
dst[i] = src[(i & 0x1ffe0) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

init_neogeo();
}


EDIT
James i try whit your driver but have same Z80 error
Title: Use all of the driver
Post by: James33 on March 28, 2005, 07:40:57 AM
Use the whole driver not part of it .

Looking at things you change things where they should not be changed .
If you are going to use a driver thats posted then use it Do not make changes then complain it does not work .

That matrimbl driver I posted works fine So without a doubt you doing things wrong .
Title: Please teach and help me!
Post by: XorXe on March 28, 2005, 09:21:12 PM
Thanx i rename my roms and work perfect  :)

James please post your kof2000 driver my dirver have bad gfx

this is my driver

EDIT: I fix problem :)
Title: Please teach and help me!
Post by: James33 on March 29, 2005, 04:58:56 AM
kof2000 is officaly supported  So no need to post the driver .
Title: Please teach and help me!
Post by: XorXe on March 29, 2005, 08:00:43 AM
And in kof2003 how to make to run in unibios??
text only in japanesse and run only in arcade mode.

and in mslug3 the game dont start, i have a black screen after unbios screen.