Hello there!
I have worked on a kof10th driver in my free time to learn a bit how MAME works.
My driver is not complete yet but I can at least tell you how to modify the current MAME driver to decode the 8x8 tiles on the fly.
In machine\neoboot.c, remove this because it is not needed any more :
for (i = 0; i < 0x10000; i++) { // Get S data, should be done on the fly
srm[0x00000+(i^1)]=BITSWAP8(src[0x600000+i]^0xf3,7,6,0,4,3,2,1,5);
srm[0x10000+(i^1)]=BITSWAP8(src[0x6d0000+i]^0xf3,7,6,0,4,3,2,1,5);
}
for (i = 0; i < 0x04000; i++) {
srm[0x02000+(i^1)]=BITSWAP8(src[0x6c2000+i]^0xf3,7,6,0,4,3,2,1,5);
srm[0x12000+(i^1)]=BITSWAP8(src[0x612000+i]^0xf3,7,6,0,4,3,2,1,5);
}
Replace this :
// S data should be written here... ?? scrambled??
// UINT16 *prom = (UINT16*)memory_region( REGION_GFX1 );
// UINT8 datalow = BITSWAP8((data&0xff)^0xf3,7,6,0,4,3,2,1,5);
// UINT8 datahigh = BITSWAP8(((data>>
&0xff)^0xf3,7,6,0,4,3,2,1,5);
// data = datalow | datahigh<<8;
// COMBINE_DATA(&prom[offset & 0xFFFF]);
// decodechar(Machine->gfx[0], (offset&0xffff)/16, (UINT8 *)prom, &kof10th_layout);
With this :
// S data decoded on the fly
UINT8 *prom = (UINT8*)memory_region( REGION_GFX1 );
UINT8 datalow = BITSWAP8(data, 7, 6, 0, 4, 3, 2, 1, 5);
prom[offset] = datalow;
decodechar(Machine->gfx[0], offset>>5, prom, &kof10th_layout);
Et voila!
I haven't tested it very much though (the driver I have done is a little bit different).
But at least it seems to work.
Bye.