d_snes: add Bokujou Monogatari (Hack, Simplified Chinese v2.0)

Fixed bitwise operation error
This commit is contained in:
taoenwen 2025-07-07 17:16:40 +08:00
parent 10a3b079da
commit d0549b3477
1 changed files with 23 additions and 4 deletions

View File

@ -477,8 +477,8 @@ static INT32 DrvFrame()
}
// Compile digital inputs
DrvInput[0] = 0x0000; // Player 1
DrvInput[1] = 0x0000; // Player 2
DrvInput[0] = 0x0000; // Player 1
DrvInput[1] = 0x0000; // Player 2
for (INT32 i = 0; i < 12; i++) {
DrvInput[0] |= ((snesInputPort0[i] & 1) << i);
DrvInput[1] |= ((snesInputPort1[i] & 1) << i);
@ -488,11 +488,11 @@ static INT32 DrvFrame()
for (INT32 i = 0; i < 12; i++) {
if ((DrvDips[1] & 0x01) == 0) {
snesInputPort0[i] = (DrvInput[0] & (1 << i)); // SOCD after takeover
snesInputPort0[i] = (uint8_t)((DrvInput[0] >> i) & 1); // SOCD after takeover
snes_setButtonState(snes, 1, i, snesInputPort0[i], DEVICE_GAMEPAD);
}
if ((DrvDips[1] & 0x02) == 0) { // p2 controller or lightgun (SuperScope, Justifier)
snesInputPort1[i] = (DrvInput[1] & (1 << i)); // SOCD after takeover
snesInputPort1[i] = (uint8_t)((DrvInput[1] >> i) & 1); // SOCD after takeover
snes_setButtonState(snes, 2, i, snesInputPort1[i], p2_type);
}
}
@ -15803,6 +15803,25 @@ struct BurnDriver BurnDrvsnes_Harvmoonj = {
512, 448, 4, 3
};
// Bokujou Monogatari (Hack, Simplified Chinese v2.0)
static struct BurnRomInfo snes_harvmoontscRomDesc[] = {
{ "Bokujou Monogatari T-Chs v2.0 (2009)(TGB).sfc", 2097152, 0x2da5d261, BRF_ESS | BRF_PRG },
};
STD_ROM_PICK(snes_harvmoontsc)
STD_ROM_FN(snes_harvmoontsc)
struct BurnDriver BurnDrvsnes_harvmoontsc = {
"snes_harvmoontsc", "snes_harvmoon", NULL, NULL, "2009",
"Bokujou Monogatari (Hack, Simplified Chinese v2.0)\0", NULL, "TGB", "SNES / Super Famicom",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 1, HARDWARE_SNES, GBF_STRATEGY | GBF_ADV, 0,
SNESGetZipName, snes_harvmoontscRomInfo, snes_harvmoontscRomName, NULL, NULL, NULL, NULL, SNESInputInfo, SNESDIPInfo,
DrvInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x8000,
512, 448, 4, 3
};
// Hashire Hebereke (Japan)
static struct BurnRomInfo snes_HashihebeRomDesc[] = {