Open drtanzil opened 7 months ago
Cadillacs and Dinosaurs Turbo (bootleg set 2 (with PIC16c57), 930201 etc) [Bootleg, No sound] AKA dinopic4.zip ?
No, not dinopic4.zip. For FBA NEO its- dinotpic.zip For EKMAME its dinohb.zip
Im sharing a FBA map for dinotpic -
static struct BurnRomInfo DinotpicRomDesc[] = {
{ "cd-d.800", 0x100000, 0x2a7b2915, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "cd-e.800", 0x100000, 0xe8370226, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "cd-a.160", 0x200000, 0x7e4f9fb3, BRF_GRA | CPS1_TILES },
{ "cd-b.160", 0x200000, 0x89532d85, BRF_GRA | CPS1_TILES },
{ "cd_q.5k", 0x020000, 0x605fdb0b, BRF_PRG | CPS1_Z80_PROGRAM },
{ "cd-q1.1k", 0x080000, 0x60927775, BRF_SND | CPS1_QSOUND_SAMPLES },
{ "cd-q2.2k", 0x080000, 0x770f4c47, BRF_SND | CPS1_QSOUND_SAMPLES },
{ "cd-q3.3k", 0x080000, 0x2f273ffc, BRF_SND | CPS1_QSOUND_SAMPLES },
{ "cd-q4.4k", 0x080000, 0x2c67821d, BRF_SND | CPS1_QSOUND_SAMPLES },
A_BOARD_QSOUND_PLDS
{ "cd63b.1a", 0x000117, 0xef72e902, BRF_OPT }, // b-board PLDs
{ "iob1.12d", 0x000117, 0x3abc0700, BRF_OPT },
{ "bprg1.11d", 0x000117, 0x31793da7, BRF_OPT },
{ "ioc1.ic1", 0x000104, 0xa399772d, BRF_OPT }, // c-board PLDs
{ "d7l1.7l", 0x000117, 0x27b7410d, BRF_OPT }, // d-board PLDs
{ "d8l1.8l", 0x000117, 0x539fc7da, BRF_OPT },
{ "d9k2.9k", 0x000117, 0xcd85a156, BRF_OPT },
{ "d10f1.10f", 0x000117, 0x6619c494, BRF_OPT },
};
The rom runs 100% on EKMAME emulator with all hacks (There its called dinohb.zip) I have a snippet of dinohb - Got from: https://neo-source.com/index.php?topic=564.msg4835#msg4835
for dinohb- sound = OK, Graphics = OK, Player change using Start Button = OK.
// Turbo (Bootleg + Hack) World
static struct BurnRomInfo dinohbRomDesc[] = {
{ "cd-d.800", 0x100000, 0x2A7B2915, BRF_ESS | BRF_PRG }, // 0
{ "cd-e.800", 0x100000, 0xE8370226, BRF_ESS | BRF_PRG }, // 1
{ "cd-a.160", 0x200000, 0x7e4F9FB3, BRF_GRA }, // 2
{ "cd-b.160", 0x200000, 0x89532d85, BRF_GRA }, // 3
{ "cd_q.rom", 0x020000, 0x605fdb0b, BRF_SND }, // 4
{ "cd_q1.rom", 0x080000, 0x60927775, BRF_SND }, // 5
{ "cd_q2.rom", 0x080000, 0x770f4c47, BRF_SND }, // 6
{ "cd_q3.rom", 0x080000, 0x2f273ffc, BRF_SND }, // 7
{ "cd_q4.rom", 0x080000, 0x2c67821d, BRF_SND }, // 8
};
STD_ROM_PICK(dinohb); STD_ROM_FN(dinohb);
static int dinohbInit()
{
int nRet=0; unsigned char *pqs=NULL;
Cps=1; Cps1Qs=1;
nCpsRomLen= 4*0x080000;
nCpsCodeLen=0; // not encrypted
nCpsGfxLen= 8*0x080000;
nCpsZRomLen= 2*0x020000;
nCpsQSamLen= 4*0x080000;
nRet=CpsInit(); if (nRet!=0) return 1;
// Load program roms
nRet=BurnLoadRom(CpsRom+0x000000,0,1); if (nRet!=0) return 1;
nRet=BurnLoadRom(CpsRom+0x100000,1,1); if (nRet!=0) return 1;
// Hack Fixes
// Fix draw scroll
*((unsigned short*)(CpsRom + 0x006C2)) = 0xFFC0;
// Fix gfx
*((unsigned short*)(CpsRom + 0x006CC)) = 0x0080;
*((unsigned short*)(CpsRom + 0x006CE)) = 0x010C;
*((unsigned short*)(CpsRom + 0x006DE)) = 0x0080;
*((unsigned short*)(CpsRom + 0x006E0)) = 0x0110;
*((unsigned short*)(CpsRom + 0x006F0)) = 0x0080;
*((unsigned short*)(CpsRom + 0x006F2)) = 0x0114;
*((unsigned short*)(CpsRom + 0x00704)) = 0x0080;
*((unsigned short*)(CpsRom + 0x00706)) = 0x010E;
*((unsigned short*)(CpsRom + 0x00718)) = 0x0080;
*((unsigned short*)(CpsRom + 0x0071A)) = 0x0112;
*((unsigned short*)(CpsRom + 0x0072C)) = 0x0080;
*((unsigned short*)(CpsRom + 0x0072E)) = 0x0116;
// Fix screen transitions
*((unsigned short*)(CpsRom + 0x00B28)) = 0x7000;
*((unsigned short*)(CpsRom + 0x00B2A)) = 0x7200;
*((unsigned short*)(CpsRom + 0x00B2C)) = 0x343C;
*((unsigned short*)(CpsRom + 0x00B32)) = 0x20C1;
// Fix sound
*((unsigned short*)(CpsRom + 0x00666)) = 0x00F1;
*((unsigned short*)(CpsRom + 0x00668)) = 0x8002;
*((unsigned short*)(CpsRom + 0xAAA6C)) = 0x00D8;
//
// Load graphics roms
CpsLoadTilesHack160(CpsGfx, 2);
nCpsLcReg=0x4a; // Layer control register is at 0x4a
CpsLayEn[1]=0x16;
CpsLayEn[2]=0x16;
CpsLayEn[3]=0x16;
// Protection enable code by KEV
CpsMProt[0]=0x00;
CpsMProt[1]=0x00;
CpsMProt[2]=0x00;
CpsMProt[3]=0x00;
// Board ID improvments by KEV. 0x00,0x0000
CpsBID[0]=0x00;
CpsBID[1]=0x00;
CpsBID[2]=0x00;
MaskAddr[0]=0x4c;
MaskAddr[1]=0x4e;
MaskAddr[2]=0x40;
MaskAddr[3]=0x42;
nRet=BurnLoadRom(CpsZRom,4,1);
dino_decode();
pqs=(unsigned char *)CpsQSam;
nRet=BurnLoadRom(pqs ,5,1);
nRet=BurnLoadRom(pqs+0x080000,6,1);
nRet=BurnLoadRom(pqs+0x100000,7,1);
nRet=BurnLoadRom(pqs+0x180000,8,1);
nRet=CpsRunInit(); if (nRet!=0) return 1;
// Ready to go
return 0;
}
struct BurnDriver BurnDrvCpsdinohb = {
"dinohb", "dino", NULL, "1993",
"Cadillacs and Dinosaurs - Turbo - 97 the second generation of dino\0", "", "Capcom", "CPS1",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG,3,HARDWARE_CAPCOM_CPS1_QSOUND,
NULL,dinohbRomInfo,dinohbRomName,DrvInputInfo, dinoDIPInfo,
dinohbInit,DrvExit,Cps1Frame,CpsRedraw,CpsAreaScan,
&CpsRecalcPal,384,224,4,3
};
P.S- This rom is widely popular on asia as Arcade machines there played this ROM.
@crystalct : Is it the right place to notify this issue?
Yes and no.... the sources to be modified are those on the github libretro fbneo core... once the problem has been solved (big endian issue) on the original sources I could recompile them for PS3. You should open the issue there.
@crystalct : I have downloaded FBNeo from git & compiled it on my PC today. There is no audio & GFX (Black sky) issue on there for dinotpic
ROM. Requesting you to compile with latest FBneo core.
A PC has a little endian CPU. PS3 has a BIG endian CPU. It's a Big Endian Issue.
I see. But there might be a fix.
This rom also runs on Android device which is big endian cpu (not sure) using fba4droid
emulator. Sound, GFX & hack all works okay. Fba4droid is not open sourced, dont know how they solved this.
Thanks @crystalct . I posted and got reply from barbudreadmon: Big-endian (ps3) compatibility should be fixed with 728246d
Android ARM is not Big Endian CPU
@crystalct oh, i thought you weren't active anymore, we didn't get a reply the last few times we tried to ping you about big-endian issues
Great to see @crystalct and @barbudreadmon together on the post! I was relaying one's request to another, acting as a realy, ha ha!
Sorry, but my free time is almost zero... :-P
@crystalct @barbudreadmon Both of you have done a great work! Spending lots of time & effort to keep alive the nostalgia of Arcade era. Requesting to keep up the good work and also requesting to recompile the original core for PS3.
I should have completely updated the FBneo sources, but the last time I tried to do so, the compiled core had become so large that the PS3's limited RAM became insufficient. I just added changes from 728246d, but it wasn't enough, there must be more or I have to do a complete update for the light version of the FBneo core for the PS3
@crystalct : Thanks! CPS games alone can be an excellent PS3 release. You are also the author of FBNeoRLPlus: https://github.com/crystalct/FBNeoRLPlus
Is it possible to release by that git?
@crystalct : The FbNeo team updated the git with some gameplay fix for dinotpic
rom.
Please include that marvelous fix if possible.
@barbudreadmon I tried to compile LIGHT=1 but driverlist.h contains all the DRVs making it impossible to link the .a file How do i generate driverlist.h for light compilation?
opsss... make generate-files
@barbudreadmon this: void __fastcall DinopicLayerWrite(UINT32 a, UINT16 d) { if (a == 0x800222) { ((UINT16)(CpsReg + 0x06)) = d;
should be: void __fastcall DinopicLayerWrite(UINT32 a, UINT16 d) { if (a == 0x800222) { ((UINT16)(CpsReg + 0x06)) = BURN_ENDIAN_SWAP_INT16(d);
@drtanzil I tested dinotpic on my windows retroarch and there isn't sound....
@crystalct : Sound works okay on windows RetroArch. Im sharing my Windows Screen to reveal the version.
Might be a ROM file issue?
I'm also sharing dinotpic.zip
ROM file from my Google Drive Link.
Sound also works okay on Android phone for this ROM. Android RetroArch APK link here
@barbudreadmon and @dinkc64 made significant contributions to this ROM yesterday.
They dumped the game memory from EKMAME and traced the missing hack for Player change.
Afterward, they patched the game on FBN and completed the missing controls.
The version of dinotpic
currently available on the FBNeo git repository represents the original gameplay of the 90s bootleg.
got that layer patch in, thanks :)
I tried to compile LIGHT=1
@crystalct this is meant for nds and removes A LOT of drivers, i don't think you want to use that for ps3
I tried to compile LIGHT=1
@crystalct this is meant for nds and removes A LOT of drivers, i don't think you want to use that for ps3
It's an alternative and additional core just for capcom e few others.... unfortunately recompiling Retroarch and FBNeo with the current sources became a panic.
Meanwhile, I'm regularly playing the standard "Dino" ROM on my PS3, and it works flawlessly. Playing retro games from the couch with a PS3 gamepad brings a whole new level of satisfaction and relaxation. I'm eagerly anticipating the "Dinotpic" to start working!
Unfortunately, with the old FBneo (and retroarch) sources I was only able to get the background to work, but not the sound. Unfortunately for the sound it seems that we need to update FBneo completely to the current state, which also involves updating retroarch....
That's fantastic news! It's reassuring to hear that some improvements have been made. For RetroArch PS3, this ROM had four issues:
I'm quite certain that you'll come up with fixes for all the issues. The level of work you've done is fantastic!
@barbudreadmon and @dinkc64 I recompiled sources and Dinotpic start in balck screen, but if i change Dipswitch QSound from On to OFF and restart core, Dinotpic starts, but with no sound. Any clue?
You are testing with a fully updated source code, right ?
Do you have visuals if you remove the non-LSB_FIRST codepaths in DinotpicPatchCallback & Jurassic99PatchCallback ? Maybe we actually shouldn't big-endianize the rom patch ?
Having no sound when the qsound dips is off is apparently normal (@taoenwen might be able to explain a bit more about this).
The weird thing is the black screen when QSound is enabled.... DinotpicPatchCallback & Jurassic99PatchCallback have LSB_FIRST....
Bingo!!!! Using the code from LSB_FIRST, there is sound
Both DinotpicPatchCallback & Jurassic99PatchCallback don't need #ifdef LSB_FIRST
taoenwen might be able to explain a bit more about this.
@barbudreadmon In fact, the current dipsw has QSound enabled by default.
Both DinotpicPatchCallback & Jurassic99PatchCallback don't need #ifdef LSB_FIRST
Ok, it solves both the gfx and sound issues ?
@taoenwen indeed but what is the purpose of disabling qsound for that romset ? as far as i can tell, the sound just stops working if you do this
None of the audio in these sets was emulated, I just added QSound support. At first it was set to off based on conservatism, but then I decided that since it was off I might as well not add support, so I turned on the audio. The addition of QSound can be considered a Hack, a temporary solution until the sets are emulated.
Both DinotpicPatchCallback & Jurassic99PatchCallback don't need #ifdef LSB_FIRST
Ok, it solves both the gfx and sound issues ?
Yes
@drtanzil update FBNEO LIGHT core from Retroarch PSX CE menu and then you can play at Dinotpic, but only with light core version.
Thank you! Thank you so much, @crystalct ! I can't express how happy I am to finally have it working on the PS3! Thanks again!
Before reaching out here, I wasn't sure if I would even get a response or if anyone would understand what was missing. But I'm incredibly fortunate to have encountered legendary individuals like @dinkc64 , @barbudreadmon , @taoenwen , and yourself, who reconstructed the bootleg and restored the original gameplay, preventing it from disappearing forever.
You guys are truly legendary! The depth of knowledge you possess for these retro machines is extraordinary. I sincerely thank you all again for the incredible work!
everything works perfectly on PS3! Flawless!
drtanzil, thanks, I also appreciate that you came around and gave us the idea to fix it, and that you shared your nice arcade nostalgia story :)
Keep in mind it doesn't always work out like this, sometimes we just cant fix things, but, in this case things worked out nicely
best regards,
dinotpic
ROM (Cadillacs and Dinosaurs Turbo (bootleg set 2) running using RetroArch_PSX_CE does not has any sound. usingFB Neo
Core Game background /Sky is black. However RetroArch on PC does not has this issue. PC runs on FBneo 1.0.0.3 core.