nes: add mapper 191
d_nes: add Sugoro Quest: Quest of Dice Heros, The (Hack, Chinese)
This commit is contained in:
parent
e1003acf41
commit
224a9e4fef
|
@ -6547,6 +6547,25 @@ struct BurnDriver BurnDrvnes_spidemanc = {
|
|||
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
};
|
||||
|
||||
// Sugoro Quest: Quest of Dice Heros, The (Hack, Chinese)
|
||||
// http://www.nesbbs.com/bbs/thread-12374-1-1.html
|
||||
static struct BurnRomInfo nes_sugorquetscRomDesc[] = {
|
||||
{ "Sugoro Quest - Quest of Dice Heros, The T-Chs (2012)(Jiu Ban).nes", 524304, 0xf94149c0, BRF_ESS | BRF_PRG },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(nes_sugorquetsc)
|
||||
STD_ROM_FN(nes_sugorquetsc)
|
||||
|
||||
struct BurnDriver BurnDrvnes_sugorquetsc = {
|
||||
"nes_sugorquetsc", "nes_sugorque", NULL, NULL, "2012",
|
||||
"Sugoro Quest: Quest of Dice Heros, The (Hack, Chinese)\0", NULL, "Jiu Ban", "NES / Famicom",
|
||||
L"Sugoro Quest: Quest of Dice Heros, The (Hack, Chinese)\0\u8d4c\u795e: \u63b7\u9ab0\u6218\u58eb\0", NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 1, HARDWARE_NES, GBF_RPG | GBF_BOARD, 0,
|
||||
NESGetZipName, nes_sugorquetscRomInfo, nes_sugorquetscRomName, NULL, NULL, NULL, NULL, NESInputInfo, NESDIPInfo,
|
||||
NESInit, NESExit, NESFrame, NESDraw, NESScan, &NESRecalc, 0x40,
|
||||
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
};
|
||||
|
||||
// Super Chinese II - Dragon Kid (Hack, Chinese v1.4)
|
||||
// https://www.nesbbs.com/bbs/thread-46648-1-1.html
|
||||
static struct BurnRomInfo nes_superchiiRomDesc[] = {
|
||||
|
@ -49010,7 +49029,7 @@ struct BurnDriver BurnDrvnes_stuntkids = {
|
|||
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
};
|
||||
|
||||
// Sugoro Quest - Dice no Senshitachi (Japan)
|
||||
// Sugoro Quest: Dice no Senshitachi (Japan)
|
||||
static struct BurnRomInfo nes_sugorquejRomDesc[] = {
|
||||
{ "Sugoro Quest - Dice no Senshitachi (Japan)(1991)(Technos).nes", 262160, 0x0ac48932, BRF_ESS | BRF_PRG },
|
||||
};
|
||||
|
@ -49020,18 +49039,18 @@ STD_ROM_FN(nes_sugorquej)
|
|||
|
||||
struct BurnDriver BurnDrvnes_sugorquej = {
|
||||
"nes_sugorquej", "nes_sugorque", NULL, NULL, "1991",
|
||||
"Sugoro Quest - Dice no Senshitachi (Japan)\0", NULL, "Technos Japan", "NES / Famicom",
|
||||
NULL, NULL, NULL, NULL,
|
||||
"Sugoro Quest: Dice no Senshitachi (Japan)\0", NULL, "Technos Japan", "NES / Famicom",
|
||||
L"Sugoro Quest: Dice no Senshitachi (Japan)\0\u3059\u3054\u308d\u30af\u30a8\u30b9\u30c8 \u30c0\u30a4\u30b9\u306e\u6226\u58eb\u305f\u3061\0", NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE, 1, HARDWARE_NES, GBF_RPG | GBF_BOARD, 0,
|
||||
NESGetZipName, nes_sugorquejRomInfo, nes_sugorquejRomName, NULL, NULL, NULL, NULL, NESInputInfo, NESDIPInfo,
|
||||
NESInit, NESExit, NESFrame, NESDraw, NESScan, &NESRecalc, 0x40,
|
||||
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
};
|
||||
|
||||
// Sugoro Quest - Dice no Senshitachi (Hack, English)
|
||||
// Sugoro Quest: Quest of Dice Heros, The (Hack, English)
|
||||
// https://www.romhacking.net/translations/218/
|
||||
static struct BurnRomInfo nes_sugorqueRomDesc[] = {
|
||||
{ "Sugoro Quest - Dice no Senshitachi T-Eng (2007)(AlanMidas).nes", 262160, 0xd2cdeb7b, BRF_ESS | BRF_PRG },
|
||||
{ "Sugoro Quest - Quest of Dice Heros, The T-Eng (2007)(AlanMidas).nes", 262160, 0xd2cdeb7b, BRF_ESS | BRF_PRG },
|
||||
};
|
||||
|
||||
STD_ROM_PICK(nes_sugorque)
|
||||
|
@ -49039,7 +49058,7 @@ STD_ROM_FN(nes_sugorque)
|
|||
|
||||
struct BurnDriver BurnDrvnes_sugorque = {
|
||||
"nes_sugorque", NULL, NULL, NULL, "2007",
|
||||
"Sugoro Quest - Dice no Senshitachi (Hack, English)\0", NULL, "AlanMidas", "NES / Famicom",
|
||||
"Sugoro Quest: Quest of Dice Heros, The (Hack, English)\0", NULL, "AlanMidas", "NES / Famicom",
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_HACK, 1, HARDWARE_NES, GBF_RPG | GBF_BOARD, 0,
|
||||
NESGetZipName, nes_sugorqueRomInfo, nes_sugorqueRomName, NULL, NULL, NULL, NULL, NESInputInfo, NESDIPInfo,
|
||||
|
|
|
@ -3271,6 +3271,52 @@ static void mapper119_map()
|
|||
set_mirroring((mapper4_mirror) ? VERTICAL : HORIZONTAL);
|
||||
}
|
||||
|
||||
static void mapper191_chrmap(INT32 slot, INT32 bank)
|
||||
{
|
||||
if (bank & 0x80) { // bit7 == 1
|
||||
UINT8 ram_bank = bank & 0x01;
|
||||
mapper_map_chr_ramrom(1, slot, ram_bank, MEM_RAM);
|
||||
} else {
|
||||
mapper_map_chr_ramrom(1, slot, bank, MEM_ROM);
|
||||
}
|
||||
}
|
||||
|
||||
static void mapper191_map()
|
||||
{
|
||||
mapper_map_prg(8, 1, mapper_regs[7]);
|
||||
if (~mapper4_banksel & 0x40) {
|
||||
mapper_map_prg(8, 0, mapper_regs[6]);
|
||||
mapper_map_prg(8, 2, -2);
|
||||
} else {
|
||||
mapper_map_prg(8, 0, -2);
|
||||
mapper_map_prg(8, 2, mapper_regs[6]);
|
||||
}
|
||||
|
||||
if (~mapper4_banksel & 0x80) {
|
||||
mapper191_chrmap(0, mapper_regs[0] & 0xfe);
|
||||
mapper191_chrmap(1, mapper_regs[0] | 0x01);
|
||||
mapper191_chrmap(2, mapper_regs[1] & 0xfe);
|
||||
mapper191_chrmap(3, mapper_regs[1] | 0x01);
|
||||
mapper191_chrmap(4, mapper_regs[2]);
|
||||
mapper191_chrmap(5, mapper_regs[3]);
|
||||
mapper191_chrmap(6, mapper_regs[4]);
|
||||
mapper191_chrmap(7, mapper_regs[5]);
|
||||
} else {
|
||||
mapper191_chrmap(0, mapper_regs[2]);
|
||||
mapper191_chrmap(1, mapper_regs[3]);
|
||||
mapper191_chrmap(2, mapper_regs[4]);
|
||||
mapper191_chrmap(3, mapper_regs[5]);
|
||||
mapper191_chrmap(4, mapper_regs[0] & 0xfe);
|
||||
mapper191_chrmap(5, mapper_regs[0] | 0x01);
|
||||
mapper191_chrmap(6, mapper_regs[1] & 0xfe);
|
||||
mapper191_chrmap(7, mapper_regs[1] | 0x01);
|
||||
}
|
||||
|
||||
if (Cart.Mirroring != 4) {
|
||||
set_mirroring(mapper4_mirror ? VERTICAL : HORIZONTAL);
|
||||
}
|
||||
}
|
||||
|
||||
static void mapper165_ppu_clock(UINT16 address)
|
||||
{
|
||||
if (mapper165_update) {
|
||||
|
@ -9655,6 +9701,29 @@ static INT32 mapper_init(INT32 mappernum)
|
|||
break;
|
||||
}
|
||||
|
||||
case 191: { // there is also an additional 2k of CHR-RAM which is selectable. Bit 7 of each CHR reg selects RAM or ROM (1=RAM, 0=ROM)
|
||||
mapper_write = mapper04_write;
|
||||
mapper_map = mapper191_map;
|
||||
mapper_scanline = mapper04_scanline;
|
||||
mapper4_mirror = Cart.Mirroring;
|
||||
|
||||
mapper_regs[0] = 0;
|
||||
mapper_regs[1] = 2;
|
||||
mapper_regs[2] = 4;
|
||||
mapper_regs[3] = 5;
|
||||
mapper_regs[4] = 6;
|
||||
mapper_regs[5] = 7;
|
||||
mapper_regs[6] = 0;
|
||||
mapper_regs[7] = 1;
|
||||
|
||||
mapper_set_chrtype(MEM_RAM);
|
||||
mapper_map_prg(32, 0, 0);
|
||||
mapper_map_prg(8, 3, -1);
|
||||
mapper_map();
|
||||
retval = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case 165: { // mmc3-derivative w/mmc4-style char ram(bank0)+rom(others)
|
||||
mapper_write = mapper04_write;
|
||||
mapper_map = mapper165_map;
|
||||
|
|
Loading…
Reference in New Issue