finalburnneo / FBNeo

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

Libretro - PGM : OLDS rom issues #1671

Open wwark opened 4 months ago

wwark commented 4 months ago

Rules and recommendations

I posted here because on libretro github side, they asked to post here meanwhile it is libretro side issue.

I have this issue below meanwhile this non merge rom of olds works on fbneo standalone. I could add the two missing files but I think there is an issue because the game works without both files on fbneo standalone.

image

My rom: olds$ crc32 * 80a59197 pgm_a0500.u5 98c931b1 pgm_a0501.u6 c3fcdf1d pgm_a0502.u7 066dffec pgm_a0503.u8 45337583 pgm_a0504.u11 5b8cf3a5 pgm_a0505.u12 087ac60c pgm_a0506.u13 cde07f74 pgm_b0500.u9 1546c2e9 pgm_b0501.u10 e97b31c3 pgm_b0502.u15 e41d98e4 pgm_b0503.u16 45ae7159 pgm_m01s.rom 37928cdd pgm_m0500.u1 e42b166e pgm_p01s.u20 78c15fa2 pgm_p02s.u20 1a7123a0 pgm_t01s.rom d881726c pgm_t0500.u18 d2106864 pgm_t0501.u19 280cfb4e ram_dump 2b2f4f1e sp_v101_u1.u1 08eb9661 sp_v101_u2.u2 0a358c1e sp_v101_u3.u3 766570e0 sp_v101_u4.u4 58662e12 sp_v101_u5.u5 097046bc sp_v101_u6.u6

After checking the code of PGM it could be linked on ROM_VERIFY but I didn't find the mention on makefile of libretro. So I asked here to understand what to change to make it work.

Log of fbneo standalone loading this game :

/fbneo olds FBNeo v1.0.0.03 Loading config from /home/xxxx/.local/share/fbneo/config/fbneo.ini * Starting emulation of olds - Oriental Legend Super (V101, Korea). Cheat cpu-register INIT. Loading graphics (pgm_a0500.u5)... (OK) Loading graphics (pgm_a0501.u6)... (OK) Loading graphics (pgm_a0502.u7)... (OK) Loading graphics (pgm_a0503.u8)... (OK) Loading graphics (pgm_a0504.u11)... (OK) Loading graphics (pgm_a0505.u12)... (OK) Loading graphics (pgm_a0506.u13)... (OK) Loading BIOS graphics (pgm_t01s.rom)... (OK) Loading BIOS sound (pgm_m01s.rom)... (OK) Loading program (sp_v101_u2.u2)... (OK) Loading program (sp_v101_u3.u3)... (OK) Loading program (sp_v101_u4.u4)... (OK) Loading program (sp_v101_u5.u5)... (OK) Loading program (sp_v101_u1.u1)... (OK) Loading graphics (pgm_t0500.u18)... (OK) Loading graphics (pgm_t0501.u19)... (OK) Loading graphics (pgm_b0500.u9)... (OK) Loading graphics (pgm_b0501.u10)... (OK) Loading graphics (pgm_b0502.u15)... (OK) Loading graphics (pgm_b0503.u16)... (OK) Loading sound (pgm_m0500.u1)... (OK) Loading program (sp_v101_u6.u6)... (OK) CPU-registry: CPU-registry: can't find: /home/wark/.local/share/fbneo/support/blend/olds.bld can't find: /home/wark/.local/share/fbneo/support/blend/(null).bld BurnTimerInit: base index 0, #chips 1 Loading program (sp_v101_u6.u6)... (OK) Loading BIOS program (pgm_p02s.u20)... (OK) SDLSoundInit (44100Hz) (6000FPS) Game resolution: 448x224@60.000000 bbp: 32 setting logical size w: 448 h: 336 nVidImageWidth=448 nVidImageHeight=224 nVidImagePitch=1792 Malloc for video Ok 401408 p1 coin 5 p1 start 1 p1 up ARROW UP p1 down ARROW DOWN p1 left ARROW LEFT p1 right ARROW RIGHT p1 fire 1 Z p1 fire 2 X p1 fire 3 C p1 fire 4 V p2 coin 6 p2 start 2 p2 up Joy 0 Up (Y negative) p2 down Joy 0 Down (Y positive) p2 left Joy 0 Left (X negative) p2 right Joy 0 Right (X positive) p2 fire 1 Joy 0 Button 0 p2 fire 2 Joy 0 Button 1 p2 fire 3 Joy 0 Button 2 p2 fire 4 Joy 0 Button 3 p3 coin 7 p3 start 3 p3 up Joy 1 Up (Y negative) p3 down Joy 1 Down (Y positive) p3 left Joy 1 Left (X negative) p3 right Joy 1 Right (X positive) p3 fire 1 Joy 1 Button 0 p3 fire 2 Joy 1 Button 1 p3 fire 3 Joy 1 Button 2 p3 fire 4 Joy 1 Button 3 p4 coin 8 p4 start 4 p4 up Joy 2 Up (Y negative) p4 down Joy 2 Down (Y positive) p4 left Joy 2 Left (X negative) p4 right Joy 2 Right (X positive) p4 fire 1 Joy 2 Button 0 p4 fire 2 Joy 2 Button 1 p4 fire 3 Joy 2 Button 2 p4 fire 4 Joy 2 Button 3 reset F3 diag F2 diag2 code 0x00 service 9 service2 0 dip code 0x00 dip ESCAPE dip ESCAPE loading state 0 /home/wark/.local/share/fbneo/config/games/olds.fs VideoController write word: b00000, 0000 VideoController write word: b00002, 0000 VideoController write word: b00004, 0000 VideoController write word: b00006, 0000 VideoController write word: b00008, 0000 VideoController write word: b0000a, 0000 VideoController write word: b00000, 0000 VideoController write word: b00002, 0000 VideoController write word: b00004, 0000 VideoController write word: b00006, 0000 VideoController write word: b00008, 0000 VideoController write word: b0000a, 0000 saving state 0 /home/wark/.local/share/fbneo/config/games/olds.fs Emulation ended (running for 2.61 seconds). 100.00% of frames rendered (154 out of a total 154). 60.00 frames per second (average).

Doing exit cleanup

Thank you for your feedback !

barbudreadmon commented 4 months ago

As said in the documentation, don't expect things to work properly if you didn't build valid romsets, and don't report issues because your romsets are invalid.

You are missing 2 files in your pgm romset and those files aren't flagged as optional (no BRF_OPT flag) : https://github.com/finalburnneo/FBNeo/blob/271e0f71166d9f290646de1aa22f0580d24c64e3/src/burn/drv/pgm/d_pgm.cpp#L832-L833

Looks like the sdl port is not doing those checks while it should, which doesn't surprise me that much considering it's not really a finished port.

Goratrix commented 4 months ago

If the game works in your stand-alone installation, then your romset is likely built with the "separate bios" option and you have pgm.zip available there. You should either rebuild your roms without that option (so that bios files get included in every game zip) or add pgm.zip to your libretro romset.

wwark commented 4 months ago

@barbudreadmon Thank you for the explanation regarding BRF_OPT. @Goratrix I don't have any pgm.zip file on my FBNeo standalone instance (SDL2). You can check if needed. I will add those two files because they are required for this game.

barbudreadmon commented 4 months ago

@Goratrix no, i'd say the reason is that he is using non-rebuilt mame romsets, in mame those 2 pgm bioses (ddp3_bios.u37 and bios.u42) are located in the respective romsets of the games that require them (theglad and ddp3), while FBNeo packs them with the other pgm bioses. While strictly speaking, olds doesn't use this bios, it's still considered as a requirement in our pgm romset, and the libretro port respect those checks.

dinkc64 commented 4 months ago

I wonder if we should investigate moving those onboard-bios files over to the romsets to make things nicer in the longrun?

best regards,

barbudreadmon commented 4 months ago

maybe ? tbh i'm not sure there is an actual reason for this romset change over MAME, it might have been a barry thing ?

dinkc64 commented 4 months ago

yes, it probably most certainly was a barry thing, which is why i suggest we change it :) secondly, I had this same problem back in 2014, and barry gave me a hard time about it saying that it was more correct this way. Even if it is, I don't like his ways :P