finalburnneo / FBNeo

FinalBurn Neo - We are Team FBNeo.
http://neo-source.com
Other
925 stars 362 forks source link

Pacman Club #237

Closed meowthed closed 4 years ago

meowthed commented 4 years ago

http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=clubpacm&search_id= Interesting pacman kit that's supported in the MiSTer FPGA project, but not in FBNeo.

barbudreadmon commented 4 years ago

I tried the following, it won't work (got boot garbage on screen).

// Pacman Club / Club Lambada (Argentina)

static struct BurnRomInfo clubpacmRomDesc[] = {
    { "prg.6f",        0x8000, 0x9baa78a2, 1 | BRF_ESS | BRF_PRG }, // 0 Z80 Code

    { "12.5e",         0x0800, 0x93933d1d, 2 | BRF_GRA },           // 1 Graphics
    { "14.5h",         0x0800, 0x7409fbec, 2 | BRF_GRA },           // 2
    { "13.5f",         0x0800, 0x22b0188a, 2 | BRF_GRA },           // 3
    { "15.5j",         0x0800, 0x50c7477d, 2 | BRF_GRA },           // 4

    { "n82s123n.7f",   0x0020, 0x2fc650bd, 3 | BRF_GRA },           // 5 Color Proms
    { "m7611.4a",      0x0100, 0x3eb3a8e4, 3 | BRF_GRA },           // 6

    { "m7611.1m",      0x0100, 0xa9cc86bf, 4 | BRF_SND },           // 7 Sound Prom
    { "m7611.3m",      0x0100, 0x0e307106, 0 | BRF_SND | BRF_OPT }, // 8 Timing Prom (not used)
};

STD_ROM_PICK(clubpacm)
STD_ROM_FN(clubpacm)

static void clubpacm_decode()
{
    // code
    memcpy(DrvZ80ROM + 0x8000, DrvZ80ROM + 0x4000, 0x4000);
    memset(DrvZ80ROM + 0x4000, 0, 0x4000);
}

static INT32 clubpacmInit()
{
    return DrvInit(MspacmanMap, clubpacm_decode, PACMAN);
}

struct BurnDriver BurnDrvclubpacm = {
    "clubpacm", NULL, NULL, NULL, "1989",
    "Pacman Club / Club Lambada (Argentina)\0", NULL, "Miky SRL", "Pac-man",
    NULL, NULL, NULL, NULL,
    BDF_GAME_WORKING | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED, 2, HARDWARE_PACMAN, GBF_MAZE | GBF_ACTION, 0,
    NULL, clubpacmRomInfo, clubpacmRomName, NULL, NULL, NULL, NULL, DrvInputInfo, mspacmanDIPInfo,
    clubpacmInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x200,
    224, 288, 3, 4
};
dinkc64 commented 4 years ago

barbudreadmon, the game uses the woodpek memory map, If you set it to use that and set the watchdog a little higher (find "if (watchdog >= 16) {" replace with "if (watchdog >= 180) {") it will work :) now, to figure out the inputs as the game only responds to coin... I will do that when I get home later unless you get to it first.

dinkc64 commented 4 years ago

barbudreadmon, this will help you figure out the inputs: https://github.com/MiSTer-devel/Arcade-PacmanClub_MiSTer/blob/master/Arcade-PacmanClub.sv

dinkc64 commented 4 years ago

barbudradmon, it's in! turns out no changes were needed to inputs. https://github.com/finalburnneo/FBNeo/commit/1ccf01942420780aa215fe4739bbb2714669fd25

barbudreadmon commented 4 years ago

Cool :) Just curious, why the "bitswap.h" include ?

dinkc64 commented 4 years ago

that was an accidental left-over from doing a bit of recon.

dinkc64 commented 4 years ago

arnoldsecret, thanks for the recommendation - the game is in :)