d_pce: Remove a duplicate game [sljs1976]

- Majin Eiyuu Den Wataru (Japan) = Mashin Eiyuuden Wataru (Japan)
- PCE add SOCD scenes
This commit is contained in:
taoenwen 2025-07-08 02:16:39 +08:00
parent 0dd9aef113
commit 5cc74e5528
2 changed files with 29 additions and 23 deletions

View File

@ -3595,26 +3595,6 @@ struct BurnDriver BurnDrvpce_mikkokue = {
};
// Majin Eiyuu Den Wataru (Japan)
static struct BurnRomInfo pce_wataruRomDesc[] = {
{ "Majin Eiyuu Den Wataru (Japan)(1988)(Hudson Soft).pce", 0x040000, 0x2f8935aa, BRF_PRG | BRF_ESS },
};
STD_ROM_PICK(pce_wataru)
STD_ROM_FN(pce_wataru)
struct BurnDriver BurnDrvpce_wataru = {
"pce_wataru", NULL, NULL, NULL, "1988",
"Majin Eiyuu Den Wataru (Japan)\0", NULL, "Hudson Soft", "PC Engine",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING, 1, HARDWARE_PCENGINE_PCENGINE, GBF_PLATFORM, 0,
PceGetZipName, pce_wataruRomInfo, pce_wataruRomName, NULL, NULL, NULL, NULL, pceInputInfo, pceDIPInfo,
PCEInit, PCEExit, PCEFrame, PCEDraw, PCEScan,
&PCEPaletteRecalc, 0x400, 1024, 240, 4, 3
};
// Makai Hakken Den Shada (Japan)
static struct BurnRomInfo pce_makaihakRomDesc[] = {
@ -3747,7 +3727,7 @@ STD_ROM_FN(pce_mashwataru)
struct BurnDriver BurnDrvpce_mashwataru = {
"pce_mashwataru", NULL, NULL, NULL, "1988",
"Mashin Eiyuuden Wataru (Japan)\0", NULL, "Hudson Soft", "PC Engine",
NULL, NULL, NULL, NULL,
L"Mashin Eiyuuden Wataru (Japan)\0\u9b54\u795e\u82f1\u96c4\u4f1d\u30ef\u30bf\u30eb\0", NULL, NULL, NULL,
BDF_GAME_WORKING, 1, HARDWARE_PCENGINE_PCENGINE, GBF_PLATFORM | GBF_ADV, 0,
PceGetZipName, pce_mashwataruRomInfo, pce_mashwataruRomName, NULL, NULL, NULL, NULL, pceInputInfo, pceDIPInfo,
PCEInit, PCEExit, PCEFrame, PCEDraw, PCEScan,

View File

@ -1,4 +1,4 @@
// FB Alpha PC-Engine / TurboGrafx 16 / SuperGrafx driver module
// FB Neo PC-Engine / TurboGrafx 16 / SuperGrafx driver module
// Based on MESS driver by Charles MacDonald
#include "tiles_generic.h"
@ -34,6 +34,7 @@ static void (*interrupt)();
static void (*hblank)();
static UINT16 PCEInputs[5];
static ClearOpposite<5, UINT16> clear_opposite;
UINT8 PCEReset;
UINT8 PCEJoy1[12];
UINT8 PCEJoy2[12];
@ -418,6 +419,8 @@ static INT32 PCEDoReset()
nExtraCycles = 0;
clear_opposite.reset();
return 0;
}
@ -647,16 +650,37 @@ INT32 PCEDraw()
static void PCECompileInputs()
{
memset (PCEInputs, 0xff, 5 * sizeof(UINT16));
// memset (PCEInputs, 0xff, 5 * sizeof(UINT16));
memset(PCEInputs, 0x00, 5 * sizeof(UINT16));
for (INT32 i = 0; i < 12; i++) {
/*
PCEInputs[0] ^= (PCEJoy1[i] & 1) << i;
PCEInputs[1] ^= (PCEJoy2[i] & 1) << i;
PCEInputs[2] ^= (PCEJoy3[i] & 1) << i;
PCEInputs[3] ^= (PCEJoy4[i] & 1) << i;
PCEInputs[4] ^= (PCEJoy5[i] & 1) << i;
*/
PCEInputs[0] |= (PCEJoy1[i] & 1) << i;
PCEInputs[1] |= (PCEJoy2[i] & 1) << i;
PCEInputs[2] |= (PCEJoy3[i] & 1) << i;
PCEInputs[3] |= (PCEJoy4[i] & 1) << i;
PCEInputs[4] |= (PCEJoy5[i] & 1) << i;
}
#define PCEBITSWAP16(u16) (u16 = (((u16) & ~0xe0) | ((((u16) >> 5) & 1) << 7) | ((((u16) >> 7) & 1) << 6) | ((((u16) >> 6) & 1) << 5))) // msvc ...
#define PECRESTORE16(u16) (u16 = (((u16) & ~0xe0) | ((((u16) >> 7) & 1) << 5) | ((((u16) >> 6) & 1) << 7) | ((((u16) >> 5) & 1) << 6))) // must be u16 = ...
for (INT32 i = 0; i < 5; i++) {
PCEBITSWAP16(PCEInputs[i]);
clear_opposite.check(i, PCEInputs[i], 0x00c0, 0x0030, nSocd[i]);
PECRESTORE16(PCEInputs[i]);
PCEInputs[i] = ~PCEInputs[i];
}
#undef PCEBITSWAP16
#undef PECRESTORE16
if ((last_dip ^ PCEDips[2]) & 0x80) {
bprintf(0, _T("Sound core switched to: %s\n"), (PCEDips[2] & 0x80) ? _T("HQ") : _T("LQ"));
c6280_set_renderer(PCEDips[2] & 0x80);
@ -744,6 +768,8 @@ INT32 PCEScan(INT32 nAction, INT32 *pnMin)
SCAN_VAR(nExtraCycles);
clear_opposite.scan();
if (pce_sf2) {
SCAN_VAR(pce_sf2_bank);
sf2_bankswitch(pce_sf2_bank);