diff --git a/src/burn/drv/pgm/d_pgm.cpp b/src/burn/drv/pgm/d_pgm.cpp index 85ed4d3d4..653d2bb8d 100644 --- a/src/burn/drv/pgm/d_pgm.cpp +++ b/src/burn/drv/pgm/d_pgm.cpp @@ -4097,7 +4097,7 @@ struct BurnDriver BurnDrvPgemeni = { static struct BurnRomInfo kovqhsgsRomDesc[] = { { "qhsg_c51.rom", 0x0400000, 0xe5cbac85, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code - { "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data + { "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data { "lsqh2_a01.rom", 0x1000000, 0x25ae3efd, 3 | BRF_GRA }, // 2 Sprite Color Data { "lsqh2_a23.rom", 0x1000000, 0x7a779112, 3 | BRF_GRA }, // 3 @@ -4138,6 +4138,38 @@ struct BurnDriver BurnDrvkovqhsgs = { }; +// Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (alt ver. 303CN) + +static struct BurnRomInfo kovqhsgsaRomDesc[] = { + { "qhsga_c51.rom", 0x0400000, 0x4c5ea070, 1 | BRF_PRG | BRF_ESS }, // 0 68K Code + + { "lsqh2_t01.rom", 0x1000000, 0xd498d97f, 2 | BRF_GRA }, // 1 Tile data + + { "lsqh2_a01.rom", 0x1000000, 0x25ae3efd, 3 | BRF_GRA }, // 2 Sprite Color Data + { "lsqh2_a23.rom", 0x1000000, 0x7a779112, 3 | BRF_GRA }, // 3 + { "lsqh2_a45.rom", 0x1000000, 0x5d7de052, 3 | BRF_GRA }, // 4 + + { "lsqh2_b01.rom", 0x1000000, 0xdf7ca696, 4 | BRF_GRA }, // 5 Sprite Masks & Color Indexes + + { "lsqh2_m01.rom", 0x1000000, 0x01af1b65, 5 | BRF_SND }, // 6 Samples + + { "qhsg_prot.c51", 0x0004000, 0x0f09a5c1, 7 | BRF_PRG | BRF_ESS }, // 7 Internal ARM7 Rom +}; + +STDROMPICKEXT(kovqhsgsa, kovqhsgsa, pgm) +STD_ROM_FN(kovqhsgsa) + +struct BurnDriver BurnDrvkovqhsgsa = { + "kovqhsgsa", "kovsh", "pgm", NULL, "1999", + "Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (alt ver. 303CN)\0", NULL, "IGS", "PolyGameMaster", + L"Knights of Valour: Quan Huang San Guo Special\0\u4E09\u56FD\u6218\u7EAA\0\u62F3\u7687\u4E09\u56FD\u7279\u522B\u7248 (alt ver. 303CN)\0", NULL, NULL, NULL, + BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 4, HARDWARE_IGS_PGM | HARDWARE_IGS_USE_ARM_CPU, GBF_SCRFIGHT, 0, + NULL, kovqhsgsaRomInfo, kovqhsgsaRomName, NULL, NULL, pgmInputInfo, kovDIPInfo, + kovqhsgsInit, pgmExit, pgmFrame, pgmDraw, pgmScan, &nPgmPalRecalc, 0x900, + 448, 224, 4, 3 +}; + + // Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN) static struct BurnRomInfo kovlsqh2RomDesc[] = { diff --git a/src/burn/drv/pgm/pgm_run.cpp b/src/burn/drv/pgm/pgm_run.cpp index 32fc7068f..e2c92326b 100644 --- a/src/burn/drv/pgm/pgm_run.cpp +++ b/src/burn/drv/pgm/pgm_run.cpp @@ -486,6 +486,7 @@ static void expand_tile_gfx() UINT8 *dst = PGMTileROMExp; if (strcmp(BurnDrvGetTextA(DRV_NAME), "kovqhsgs") == 0 || + strcmp(BurnDrvGetTextA(DRV_NAME), "kovqhsgsa") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsqh2") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsjb") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsjba") == 0 || @@ -564,6 +565,7 @@ static void expand_colourdata() } if (strcmp(BurnDrvGetTextA(DRV_NAME), "kovqhsgs") == 0 || + strcmp(BurnDrvGetTextA(DRV_NAME), "kovqhsgsa") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsqh2") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsjb") == 0 || strcmp(BurnDrvGetTextA(DRV_NAME), "kovlsjba") == 0 ||