diff --git a/src/burn/drv/konami/d_asterix.cpp b/src/burn/drv/konami/d_asterix.cpp index 16cf63821..61f632270 100644 --- a/src/burn/drv/konami/d_asterix.cpp +++ b/src/burn/drv/konami/d_asterix.cpp @@ -443,9 +443,9 @@ static INT32 MemIndex() static INT32 DrvGfxDecode() { - INT32 Plane1[4] = { 24, 16, 8, 0 }; - INT32 XOffs1[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8*32+0, 8*32+1, 8*32+2, 8*32+3, 8*32+4, 8*32+5, 8*32+6, 8*32+7 }; - INT32 YOffs1[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }; + INT32 Plane1[4] = { STEP4(24, - 8) }; + INT32 XOffs1[16] = { STEP8(0,1), STEP8(256,1) }; + INT32 YOffs1[16] = { STEP8(0,32, STEP8(512,32) }; K053247GfxDecode(DrvGfxROM0, DrvGfxROMExp0, 0x100000); diff --git a/src/burn/drv/konami/d_battlnts.cpp b/src/burn/drv/konami/d_battlnts.cpp index 8d9618bdc..34abc7568 100644 --- a/src/burn/drv/konami/d_battlnts.cpp +++ b/src/burn/drv/konami/d_battlnts.cpp @@ -404,7 +404,7 @@ static INT32 MemIndex() return 0; } -static void DrvGfxExpand(UINT8 *src, INT32 len) // 0, 0x40 +static void DrvGfxExpand(UINT8 *src, INT32 len) { for (INT32 i = (len - 1) * 2; i >= 0; i-=2) { src[i+0] = src[i/2] >> 4; diff --git a/src/burn/drv/konami/d_gberet.cpp b/src/burn/drv/konami/d_gberet.cpp index e1acad9c2..1736c2664 100644 --- a/src/burn/drv/konami/d_gberet.cpp +++ b/src/burn/drv/konami/d_gberet.cpp @@ -576,21 +576,21 @@ static void Graphics_Decode(INT32 *CharPlanes, INT32 *CharXOffs, INT32 *CharYOff static void DrvGfxDecode() { - static INT32 Planes[4] = { 0, 1, 2, 3 }; - static INT32 XOffs[16] = { 0, 4, 8, 12, 16, 20, 24, 28, 256, 260, 264, 268, 272, 276, 280, 284 }; - static INT32 YOffs[16] = { 0, 32, 64, 96, 128, 160, 192, 224, 512, 544, 576, 608, 640, 672, 704, 736 }; + static INT32 Planes[4] = { STEP4(0,1) }; + static INT32 XOffs[16] = { STEP8(0,4), STEP8(256,4) }; + static INT32 YOffs[16] = { STEP8(0,32) STEP8(512,32) }; Graphics_Decode(Planes, XOffs, YOffs, Planes, XOffs, YOffs, 0x400); } static void BootGfxDecode() { - static INT32 CharPlanes[4] = { 0, 1, 2, 3 }; + static INT32 CharPlanes[4] = { STEP4(0,1) }; static INT32 CharXOffs[8] = { 24, 28, 0, 4, 8, 12, 16, 20 }; - static INT32 CharYOffs[8] = { 0, 32, 64, 96, 128, 160, 192, 224 }; + static INT32 CharYOffs[8] = { STEP8(0, 32) }; static INT32 SpriPlanes[4] = { 0, 0x20000, 0x40000, 0x60000 }; - static INT32 SpriXOffs[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 128, 129, 130, 131, 132, 133, 134, 135 }; - static INT32 SpriYOffs[16] = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120 }; + static INT32 SpriXOffs[16] = { STEP8(0, 1), STEP8(128, 1) }; + static INT32 SpriYOffs[16] = { STEP16(0, 8) }; Graphics_Decode(CharPlanes, CharXOffs, CharYOffs, SpriPlanes, SpriXOffs, SpriYOffs, 0x100); } diff --git a/src/burn/drv/konami/d_hcastle.cpp b/src/burn/drv/konami/d_hcastle.cpp index d8a2752bd..5c0434049 100644 --- a/src/burn/drv/konami/d_hcastle.cpp +++ b/src/burn/drv/konami/d_hcastle.cpp @@ -405,28 +405,12 @@ static INT32 MemIndex() return 0; } -static INT32 DrvGfxDecode() +static void DrvGfxExpand(UINT8 *src, INT32 len) { - INT32 Plane[4] = { 0x000, 0x001, 0x002, 0x003 }; - INT32 XOffs[8] = { 0x008, 0x00c, 0x000, 0x004, 0x018, 0x01c, 0x010, 0x014 }; - INT32 YOffs[8] = { 0x000, 0x020, 0x040, 0x060, 0x080, 0x0a0, 0x0c0, 0x0e0 }; - - UINT8 *tmp = (UINT8*)BurnMalloc(0x100000); - if (tmp == NULL) { - return 1; + for (INT32 i = (len - 1) * 2; i >= 0; i-=2) { + src[i+0] = src[i/2] >> 4; + src[i+1] = src[i/2] & 0xf; } - - memcpy (tmp, DrvGfxROM0, 0x100000); - - GfxDecode(0x8000, 4, 8, 8, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM0); - - memcpy (tmp, DrvGfxROM1, 0x100000); - - GfxDecode(0x8000, 4, 8, 8, Plane, XOffs, YOffs, 0x100, tmp, DrvGfxROM1); - - BurnFree (tmp); - - return 0; } static void DrvPaletteInit() @@ -469,9 +453,11 @@ static INT32 DrvInit() if (BurnLoadRom(DrvGfxROM0 + 0x00000, 3, 1)) return 1; if (BurnLoadRom(DrvGfxROM0 + 0x80000, 4, 1)) return 1; + BurnByteswap(DrvGfxROM0, 0x100000); if (BurnLoadRom(DrvGfxROM1 + 0x00000, 5, 1)) return 1; if (BurnLoadRom(DrvGfxROM1 + 0x80000, 6, 1)) return 1; + BurnByteswap(DrvGfxROM1, 0x100000); if (BurnLoadRom(DrvSndROM + 0x00000, 7, 1)) return 1; @@ -481,7 +467,8 @@ static INT32 DrvInit() if (BurnLoadRom(DrvPalROM + 0x00300, 11, 1)) return 1; DrvPaletteInit(); - DrvGfxDecode(); + DrvGfxExpand(DrvGfxROM0, 0x100000); + DrvGfxExpand(DrvGfxROM1, 0x100000); } konamiInit(0); diff --git a/src/burn/drv/konami/d_hexion.cpp b/src/burn/drv/konami/d_hexion.cpp index f56c3ba00..57fb79dac 100644 --- a/src/burn/drv/konami/d_hexion.cpp +++ b/src/burn/drv/konami/d_hexion.cpp @@ -314,9 +314,9 @@ static INT32 MemIndex() static INT32 DrvGfxDecode() { - INT32 Plane[4] = { 0x000000, 0x000001, 0x000002, 0x000003 }; + INT32 Plane[4] = { STEP4(0,1) }; INT32 XOffs[8] = { 0x200000, 0x200004, 0x000000, 0x000004, 0x200008, 0x20000c, 0x000008, 0x00000c }; - INT32 YOffs[8] = { 0x000000, 0x000010, 0x000020, 0x000030, 0x000040, 0x000050, 0x000060, 0x000070 }; + INT32 YOffs[8] = { STEP8(0,16) }; UINT8 *tmp = (UINT8*)BurnMalloc(0x80000); if (tmp == NULL) { diff --git a/src/burn/drv/konami/d_lethal.cpp b/src/burn/drv/konami/d_lethal.cpp index 21f82a080..4c07d4d23 100644 --- a/src/burn/drv/konami/d_lethal.cpp +++ b/src/burn/drv/konami/d_lethal.cpp @@ -451,13 +451,13 @@ static INT32 MemIndex() static INT32 DrvGfxDecode() { - INT32 Plane0[8] = { 0+(0x200000*8), 1+(0x200000*8), 2+(0x200000*8), 3+(0x200000*8), 0, 1, 2, 3 }; - INT32 XOffs0[8] = { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 }; - INT32 YOffs0[8] = { 0*8*4, 1*8*4, 2*8*4, 3*8*4, 4*8*4, 5*8*4, 6*8*4, 7*8*4 }; + INT32 Plane0[8] = { STEP4((0x200000*8), 1), STEP4(0,1) }; + INT32 XOffs0[8] = { STEP8(0,4) }; + INT32 YOffs0[8] = { STEP8(0,32) }; - INT32 Plane1[6] = { (0x200000*8)+8, (0x200000*8)+0, 24, 16, 8, 0 }; - INT32 XOffs1[16] = { 0, 1, 2, 3, 4, 5, 6, 7,8*32+0, 8*32+1, 8*32+2, 8*32+3, 8*32+4, 8*32+5, 8*32+6, 8*32+7 }; - INT32 YOffs1[16] = { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32, 16*32, 17*32, 18*32, 19*32, 20*32, 21*32, 22*32, 23*32 }; + INT32 Plane1[6] = { (0x200000*8)+8, (0x200000*8)+0, STEP4(24, -8) }; + INT32 XOffs1[16] = { STEP8(0,7) STEP8(256, 1) }; + INT32 YOffs1[16] = { STEP8(0,32), STEP8(512,32) }; GfxDecode(0x10000, 8, 8, 8, Plane0, XOffs0, YOffs0, 8*8*4, DrvGfxROM0, DrvGfxROMExp0); GfxDecode(0x04000, 6, 16, 16, Plane1, XOffs1, YOffs1, 128*8, DrvGfxROM1, DrvGfxROMExp1); @@ -487,6 +487,7 @@ static INT32 DrvInit(INT32 flipy) if (BurnLoadRomExt(DrvGfxROM0 + 0x000000, 3, 4, 2)) return 1; if (BurnLoadRomExt(DrvGfxROM0 + 0x200002, 4, 4, 2)) return 1; if (BurnLoadRomExt(DrvGfxROM0 + 0x200000, 5, 4, 2)) return 1; + BurnByteswap(DrvGfxROM0, 0x400000); if (BurnLoadRomExt(DrvGfxROM1 + 0x000000, 6, 4, 2)) return 1; if (BurnLoadRomExt(DrvGfxROM1 + 0x000002, 7, 4, 2)) return 1; diff --git a/src/burn/drv/konami/d_mikie.cpp b/src/burn/drv/konami/d_mikie.cpp index 797d20f3c..0623fe06c 100644 --- a/src/burn/drv/konami/d_mikie.cpp +++ b/src/burn/drv/konami/d_mikie.cpp @@ -303,14 +303,12 @@ static void DrvPaletteInit() static INT32 DrvGfxDecode() { - INT32 Plane0[4] = { 0, 1, 2, 3 }; - INT32 Plane1[4] = { 0, 4, 256*128*8+0, 256*128*8+4 }; - INT32 XOffs0[8] = { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 }; - INT32 YOffs0[8] = { 0*4*8, 1*4*8, 2*4*8, 3*4*8, 4*4*8, 5*4*8, 6*4*8, 7*4*8 }; - INT32 XOffs1[16] = { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, - 0, 1, 2, 3, 48*8+0, 48*8+1, 48*8+2, 48*8+3 }; - INT32 YOffs1[16] = { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, - 32*16, 33*16, 34*16, 35*16, 36*16, 37*16, 38*16, 39*16 }; + INT32 Plane0[4] = { STEP4(0,1) }; + INT32 Plane1[4] = { STEP2(0,4), STEP2(256*128*8, 4) }; + INT32 XOffs0[8] = { STEP8(0,4) }; + INT32 YOffs0[8] = { STEP8(0,32) }; + INT32 XOffs1[16] = { STEP4(256, 1), STEP4(128, 1), STEP4(0, 1), STEP4(240,1) }; + INT32 YOffs1[16] = { STEP8(0,16), STEP8(512, 16) }; UINT8 *buf = (UINT8*)BurnMalloc(0x10000); diff --git a/src/burn/drv/konami/d_scotrsht.cpp b/src/burn/drv/konami/d_scotrsht.cpp index 0d9015ccf..cb47d91c3 100644 --- a/src/burn/drv/konami/d_scotrsht.cpp +++ b/src/burn/drv/konami/d_scotrsht.cpp @@ -318,11 +318,9 @@ static void DrvPaletteInit() static INT32 DrvGfxDecode() { - INT32 Plane[4] = { 0x000, 0x001, 0x002, 0x003 }; - INT32 XOffs[16] = { 0x000, 0x004, 0x008, 0x00c, 0x010, 0x014, 0x018, 0x01c, - 0x100, 0x104, 0x108, 0x10c, 0x110, 0x114, 0x118, 0x11c }; - INT32 YOffs[16] = { 0x000, 0x020, 0x040, 0x060, 0x080, 0x0a0, 0x0c0, 0x0e0, - 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0 }; + INT32 Plane[4] = { STEP4(0,1) }; + INT32 XOffs[16] = { STEP8(0,4), STEP8(256,4) }; + INT32 YOffs[16] = { STEP8(0,32), STEP8(512,32) }; UINT8 *tmp = (UINT8*)BurnMalloc(0x10000); if (tmp == NULL) { @@ -520,8 +518,8 @@ static INT32 DrvDraw() { if (DrvRecalc) { for (INT32 i = 0; i < 0x1000; i++) { - INT32 rgb = Palette[i]; - DrvPalette[i] = BurnHighCol(rgb >> 16, rgb >> 8, rgb, 0); + UINT32 rgb = Palette[i]; + DrvPalette[i] = BurnHighCol((rgb >> 16)&0xff, (rgb >> 8)&0xff, rgb&0xff, 0); } } diff --git a/src/burn/drv/konami/d_ultraman.cpp b/src/burn/drv/konami/d_ultraman.cpp index ad303b291..1aa7a21ab 100644 --- a/src/burn/drv/konami/d_ultraman.cpp +++ b/src/burn/drv/konami/d_ultraman.cpp @@ -389,16 +389,12 @@ static INT32 MemIndex() static INT32 DrvGfxDecode() { - INT32 Plane0[4] = { 0x000, 0x008, 0x010, 0x018 }; - INT32 XOffs0[16] = { 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, - 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107 }; - INT32 YOffs0[16] = { 0x000, 0x020, 0x040, 0x060, 0x080, 0x0a0, 0x0c0, 0x0e0, - 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0 }; - INT32 Plane1[4] = { 0x000, 0x001, 0x002, 0x003 }; - INT32 XOffs1[16] = { 0x000, 0x004, 0x008, 0x00c, 0x010, 0x014, 0x018, 0x01c, - 0x020, 0x024, 0x028, 0x02c, 0x030, 0x034, 0x038, 0x03c }; - INT32 YOffs1[16] = { 0x000, 0x040, 0x080, 0x0c0, 0x100, 0x140, 0x180, 0x1c0, - 0x200, 0x240, 0x280, 0x2c0, 0x300, 0x340, 0x380, 0x3c0 }; + INT32 Plane0[4] = { STEP4(0,8) }; + INT32 XOffs0[16] = { STEP8(0, 1), STEP8(256, 1) }; + INT32 YOffs0[16] = { STEP8(0,32), STEP8(512,32) }; + INT32 Plane1[4] = { STEP4(0,1) }; + INT32 XOffs1[16] = { STEP16(0,4) }; + INT32 YOffs1[16] = { STEP16(0,64) }; GfxDecode(0x02000, 4, 16, 16, Plane0, XOffs0, YOffs0, 0x400, DrvGfxROM0, DrvGfxROMExp0); GfxDecode(0x01000, 4, 16, 16, Plane1, XOffs1, YOffs1, 0x400, DrvGfxROM1, DrvGfxROMExp1);