finalburnneo / FBNeo

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

No hiscores saved on Alcon & StarForce #1087

Closed coyonut closed 2 years ago

coyonut commented 2 years ago

HI. I have tried these 2 games and they do not save hi-scores. Their respective clones/bootlegs do not save scores either. Do not generate the .hi file, but references do appear in the hiscores.dat file. I have also seen that MAME does save scores for both. Any hope for them to work?

dinkc64 commented 2 years ago

Hi coyonut, I've enabled hiscores for Alcon & StarForce, thanks for letting us know :)

best regards,

coyonut commented 2 years ago

Thank you dinkc64. Those games deserve it. Can I report other games in the same situation?

dinkc64 commented 2 years ago

of course! Feel free to post them here or in a new pr

coyonut commented 2 years ago

ok, well it also happens with 2 other games that use the same system as Alcon, Tiger Heli and Guardian do not save scores either

dinkc64 commented 2 years ago

HS support was added to all games on the system, to be sure I just tested tigerh and it saved my score. tigerh

coyonut commented 2 years ago

Great, thanks dinkc64. I downloaded the last debug build and both works correct. Generates the .hi file. :) If I can suggest others like Pinball Action, Time Scanner and the funny Road Fighter, can you check these? I tested with the last build with no success on saving scores. Fixing Time Scanner may also fix other games like Alexkid 2 or Wonder Boy 3 that uses the same sega16 system and don't save scores either. On the other hand, Shinobi does save scores, being the same system.

coyonut commented 2 years ago

Hi. Another game that do not have hiscores supported in last version but in MAME works: Nemesis

dinkc64 commented 2 years ago

Barbudreadmon added the hiscore support for the rest of the games you mentioned.

On system 16, shinobi saves hiscores into the game's nvram.

best regards,

coyonut commented 2 years ago

Yes, great Barbudreadmon. I've checked the last version and works perfect. Thanks both! :) Another ones with problems saving scores: Flying Shark and his brother Twin Cobra.

dinkc64 commented 2 years ago

Flying Shark/Twin Cobra's set-up for hiscores now too :)

coyonut commented 2 years ago

Fantastic!. Love those games, especially fshark. Thanks again!. More games without hiscores: Footbal Champ, Drift Out or Liquid Kids and the rest of games running Taito F2 system

barbudreadmon commented 2 years ago

More games without hiscores: Footbal Champ, Drift Out or Liquid Kids and the rest of games running Taito F2 system

Hiscores have been supported by our Taito F2 driver for quite a long time, at the very least for the games listed in hiscore.dat

coyonut commented 2 years ago

it's strange because footchmp and liquidk don't generate the .hi files that Mame does. Both appear in hiscore.dat. Drift Out is not in hiscore.dat but deadconx appears and do not generates the hi file also. Checked with the most recent version of FBNeo D The only file that is created for those is a normal .ini

barbudreadmon commented 2 years ago

Oops, my bad, you are right, it turns out i had done a mistake by committing the taito f2 hiscore support to the libretro fork instead of this repo. It should be ok now.

coyonut commented 2 years ago

Yes, its ok now. Thanks barbudreadmon! Another ones: Pengo, Rastan, Moon Quasar. This last is a variation of Moon Cresta, which does save scores as many of the games on galaxian system, but the Quasar do not saves.

coyonut commented 1 year ago

Hi. More games that do not saves scores (with own data on hiscores.dat): Airwolf, Asterix, City Connection

barbudreadmon commented 1 year ago

done

coyonut commented 1 year ago

Thanks barbudreadmon! Tested and works great :) Also Gyrodine and a few more with same system. Are there problems with the above? Rastan, Pengo and M. Quasar

barbudreadmon commented 1 year ago

It's just that i didn't notice the previous message, done now.

coyonut commented 1 year ago

Thanks, I've played them and they work fine now. well done. Is it good for you that I report 2 or 3 games every time? are they many or few? DoDonPachi II, Arkanoid and Xsleena

dinkc64 commented 1 year ago

sure! :)

coyonut commented 1 year ago

Great dinkc64!. Tested 2 of them and working well. Arkanoid is hard to get a hi-score with keyboard xD but the .hi file is generated. More: Parodius, Exerion, Lady Bug

dinkc64 commented 1 year ago

They're in :)

best regards,

coyonut commented 1 year ago

Thanks dinkc64. working! Super Glob (clones with pacman hardware are saving but Tristar not), Jungle King, Funky Jet.

coyonut commented 1 year ago

Thanks dinkc64. they are working now! More games with no hiscore saving: madgear, combatsc, bonzeadv

dinkc64 commented 1 year ago

Got madgear, combatsc, bonzeadv set-up for hiscores :)

best regards,

coyonut commented 1 year ago

Thanks dinkc64, tested and working! More games, the "trio of wolves", Taito's light gun games: opwolf, othunder and opwolf3

barbudreadmon commented 1 year ago

opwolf3 doesn't seem to exist in hiscore.dat, and i don't see a nvram that can be saved either, does it save hiscores in MAME ?

I added the 2 others.

coyonut commented 1 year ago

Thanks dinkc64. :) opwolf3 do not appear on hiscore.dat, but saves scores in sram in Mame (file mk48t08). Another games: similar to opwolf3 behaviour is shangon (but this appears in hiscore.dat). robocop2 and galpanic do not saves scores also.

barbudreadmon commented 1 year ago

Thanks dinkc64. :) opwolf3 do not appear on hiscore.dat, but saves scores in sram in Mame (file mk48t08).

We probably need to hook the timekpr device to that driver then ? I'll take a look soon.

barbudreadmon commented 1 year ago

Can you attach your "mk48t08" from MAME ? It seems this timekpr device is already implemented in our opwolf3 driver, and save its data to opwolf3.fs, so i'm not sure what's wrong here and would be interested in comparing the files.

coyonut commented 1 year ago

mk48t08.zip includes 1 own score and only calibrated player 1 with mouse.

dinkc64 commented 1 year ago

opwolf3 saves hs fine on my side opwolf3

coyonut commented 1 year ago

true, opwolf3 does save scores in fs, I got confused, sorry. I must have tried too many xD Thanks dinkc64 and barbudreadmon for fixing shangon, tested and working with hicore now. :) If you want more cases: robocop2, galpanic and gaplus

coyonut commented 1 year ago

Thanks barbudreadmon for adding hiscore support for the last cases. ;) More for review: bankp, exedexes. berzerk saves hiscore in fs, but not generates the hi file as MAME do, could it be possible?

coyonut commented 1 year ago

Great barbudreadmon!. Thanks for adding hiscore support for the previous games. 👍 One more lightgun game: loffire. the SNK pow, and a similar case to berzerk, spacduel, which saves to nvram/fs but should also generate a .hi file.

Check the Game mode selector in pow dipswitches, it does not let you select the Demo Sound Off mode.

barbudreadmon commented 1 year ago

loffire

Is it really working in MAME ? Or is it yet another segas16 game saving hiscores only in nvram ? As far as i can tell the address in its hiscore.dat entry looks wrong, and it always seems there are problems with segas16 entries from hiscore.dat.

coyonut commented 1 year ago

I have tried in MAME and it saves 2 files in nvram (mainpcb_backup1, mainpcb_backup2) and it also saves a .hi file with the scores if necessary. This time they seem to work. The same thing happens with other games of the same system (rachero, abcop). They always generate the 2 nvram files on the first run but only generate the hi file if necessary because the table of scores has changed.

Thanks for fixing spacduel and pow :)

barbudreadmon commented 1 year ago

I figured out the problem with loffire, mapping that hiscore address was apparently optional to get the game running so it was never mapped in our driver. It should be ok now.

coyonut commented 1 year ago

Thanks barbudreadmon, works now! :) also for the others in the same system. I detected a faulty save score in pbobble2. This game has 2 score tables (Vs mode & puzzle). Only one mode is saved. Also in the second execution of the game a debug error appears in console: Failed attempt to apply Hi Score Memory Range 1 on frame number .... Similar error in console for grdian: Failed attempt to apply Hi Score Memory Range 2 on frame number ...

barbudreadmon commented 1 year ago

The "Failed attempt to apply Hi Score Memory Range ..." message is just a warning, it's basically saying it can't find the expected values at the expected addresses, and will keep trying until it finds them.

The problem is that pbobble2 never seem to find @:maincpu,program,400152,2,01,a2, it's mapped though, and other games from the taito f3 driver are apparently applying hiscores just fine so i doubt that's a problem in our driver.

Are you sure this entry in hiscore.dat is supposed to work ? Did you test it in MAME ? What happens if you remove that faulty (?) @:maincpu,program,400152,2,01,a2 ? The error will disappear but will it save hiscore properly ?

coyonut commented 1 year ago

I have tried deleting that line from hiscores.dat. Something has changed, the error lines no longer appear in debug, only one appears: "Applied Hi Score Memory Range 0 on frame number 29" and it saves the scores for 2 game modes in the hi file correctly. The problem is when you reload the game, now it doesn't read the previously saved scores and show and use the default scores, overwriting the previous ones on exit. I have verified that in MAME it loads and saves the scores without losing previous scores. But I don't know what MAME does with that hiscore.dat line, or if it is wrong in hiscore.dat

barbudreadmon commented 1 year ago

@dinkc64 is there any deep reason for https://github.com/finalburnneo/FBNeo/blob/e728bcbfe04885c865a6cb8203025c7255d9bf44/src/burn/hiscore.cpp#L490-L497

to not be

INT32 Confirmed = 0;
cpu_open(HiscoreMemRange[i].nCpu);

for (UINT32 j = 0; j < HiscoreMemRange[i].NumBytes; j++) {
    if (cheat_subptr->read(HiscoreMemRange[i].Address + j) == HiscoreMemRange[i].Data[j]) {
        Confirmed = 1;
    }
}

instead ?

With that second version of the code, it seems both memory ranges get validated, "asynchronously" on first boot, then on the same frame on next boots.

dinkc64 commented 1 year ago

That wont work, the way you have it: only a single byte matching will confirm the block of memory applied has "stayed" with the game on the subsequent frame. The entire block of memory needs to be confirmed (ie: the entire hightscore table, not just 1 single byte from it)

best regards,

dinkc64 commented 1 year ago

"The "Failed attempt to apply Hi Score Memory Range ..." message is just a warning, it's basically saying it can't find the expected values at the expected addresses, and will keep trying until it finds them."

It's more like this: cheat engine checks memory begin/end bytes from hiscore.dat, when they match, it sets status to ATTEMPTED and writes the data from .hi file to ram. 1: next frame, it then verifies that the data from .hi still matches the game's memory - if not, it'll try writing it again, then goto 1; otherwise if the memory matches, it sets status to confirmed.

best regards,

coyonut commented 1 year ago

Hi. Other games with no hiscore support: ckong, xybots and shootout and clones. All of them are working with Mame, have hiscore.dat entries and generates .hi file. xybots also a nvram file.

coyonut commented 1 year ago

Hi. I detected more games with no hiscore save: fstarfrc, brkthru.

dinkc64 commented 1 year ago

coyonut, thanks - they've been fixed :)

best regards,

coyonut commented 1 year ago

Thanks to you dinkc64! working now. :) Another games: bagman and centiped, and their clones. Centiped do not generates the hi file but the fs/nvram is correctly generated. And a rare case: milliped, a hard centiped, but with a special behaviour for saves the scores... it uses the nvram/fs for store the 1 to 3 records, and the hi file for store the 4 to 8. or so i think it happens in Mame.

coyonut commented 1 year ago

Hi. Another case similar to milliped. Tempest uses nvram for save 1 to 3 records, and 4 to 98 in hi file, but seems to save all records in hi file including 1 to 3 also. I have tested it making records for 1 to 4, deleting the nvram (earom in mame) and runing the game again, then the records 1 to 3 seems been taken from hi file and saved to nvram at the end. In FBNeo the hi file is not generated, and if i delete the fs file all the records are lost.