diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index 79edd4c5a46..caab8d9e2f2 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -7367,13 +7367,14 @@ static const gfx_layout super9_tilelayout = // Green is OK. Red needs normal go 128*8 /* every char takes 128 consecutive bytes */ }; + static const gfx_layout flaming7_charlayout = { 8,8, /* 8*8 characters */ 4096, /* 4096 characters */ 3, /* 3 bits per pixel */ { 2, 4, 6 }, /* the bitplanes are packed in one byte */ - { 2*8+1, 2*8+0, 3*8+1, 3*8+0, 0*8+1, 0*8+0, 1*8+1, 1*8+0 }, + { 2*8+0, 2*8+1, 3*8+0, 3*8+1, 0*8+0, 0*8+1, 1*8+0, 1*8+1 }, { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, 32*8 /* every char takes 32 consecutive bytes */ }; @@ -7386,9 +7387,9 @@ static const gfx_layout flaming7_tilelayout = { 0, 2, 4, 6 }, { 2*8+0, 2*8+1, 3*8+0, 3*8+1, 0, 1, 1*8+0, 1*8+1 }, { 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, - 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8, - 64*8, 68*8, 72*8, 76*8, 80*8, 84*8, 88*8, 92*8, - 96*8, 100*8, 104*8, 108*8, 112*8, 116*8, 120*8, 124*8 }, + 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8, + 64*8, 68*8, 72*8, 76*8, 80*8, 84*8, 88*8, 92*8, + 96*8, 100*8, 104*8, 108*8, 112*8, 116*8, 120*8, 124*8 }, 128*8 /* every char takes 128 consecutive bytes */ }; @@ -14477,7 +14478,7 @@ DRIVER_INIT_MEMBER(cb3_state, chrygld) dump_to_file(ROM); } -DRIVER_INIT_MEMBER(cmaster_state,cm) +DRIVER_INIT_MEMBER(cmaster_state, cm) { UINT8 *ROM = memregion("maincpu")->base(); @@ -14499,7 +14500,7 @@ DRIVER_INIT_MEMBER(cmaster_state, cmv4) ROM[0x020d] = 0x9b; } -DRIVER_INIT_MEMBER(goldstar_state,cmast91) +DRIVER_INIT_MEMBER(goldstar_state, cmast91) { UINT8 *ROM = memregion("maincpu")->base(); @@ -14980,6 +14981,31 @@ DRIVER_INIT_MEMBER(goldstar_state, wcherry) } } +/* + Flaming 7's + Cyberdyne Systems. + + Original custom hardware graphics decryption. + +*/ +DRIVER_INIT_MEMBER(wingco_state, flaming7) +{ +/* bank 1 graphics */ + int i; + UINT8 *src = memregion("gfx1")->base(); + for (i = 0; i < 0x20000; i++) + { + src[i] = BITSWAP8(src[i], 4, 3, 2, 5, 1, 6, 0, 7); // OK + } + +/* bank 2 graphics */ + UINT8 *src2 = memregion("gfx2")->base(); + for (i = 0; i < 0x8000; i++) + { + src2[i] = BITSWAP8(src2[i], 3, 4, 2, 5, 1, 6, 0, 7); // OK + } +} + /********************************************* * Game Drivers * @@ -15078,9 +15104,9 @@ GAMEL( 1993, bingownga, bingowng, bingownga,bingownga,driver_device, 0, // --- Flaming 7's hardware (W-4 derivative) --- GAME( 199?, fl7_3121, 0, flam7_w4, flaming7, driver_device, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights)", 0 ) -GAME( 199?, fl7_50, 0, flaming7, flaming7, driver_device, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 50)", MACHINE_NOT_WORKING ) -GAME( 199?, fl7_500, fl7_50, flaming7, flaming7, driver_device, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 500)", MACHINE_NOT_WORKING ) -GAME( 199?, fl7_2000, fl7_50, flaming7, flaming7, driver_device, 0, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 2000)", MACHINE_NOT_WORKING ) +GAME( 199?, fl7_50, 0, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 50)", MACHINE_NOT_WORKING ) +GAME( 199?, fl7_500, fl7_50, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 500)", MACHINE_NOT_WORKING ) +GAME( 199?, fl7_2000, fl7_50, flaming7, flaming7, wingco_state, flaming7, ROT0, "Cyberdyne Systems", "Flaming 7 (Custom Hardware, Main, 2000)", MACHINE_NOT_WORKING ) // --- Wing W-8 hardware --- diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index cee8e8b08f3..675e0f9b3fb 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -169,6 +169,7 @@ public: DECLARE_DRIVER_INIT(lucky8a); DECLARE_DRIVER_INIT(magoddsc); + DECLARE_DRIVER_INIT(flaming7); DECLARE_VIDEO_START(bingowng); DECLARE_VIDEO_START(magical);