ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
673 stars 193 forks source link

pier solar + cd audio low fps on gamecube #478

Closed Arnold101knight closed 1 year ago

Arnold101knight commented 1 year ago

hi! i'm using latest build 2023 of genpluxgx for gamecube but i found that when playing piersolar with its audio cd fps drops to 55 to 60 continuesly and audio is stuttering.

bios files must be renamed in a specific way or not? i have put them by manual selecting each in the bios path menu.

im using only cd bioses not others.

my game is like that: pier.bin is the rom file, pier.iso the audio cd and i have no cue file. it's correctly recognized the audio cd in game, but have audio and fps drops

can you check please? i'm using original resolution/render with crt tv

also its possible to add support for demon of asteborg game?

thanks for your work

birdybro commented 1 year ago

Demons of Asteborg should be working just fine in the latest versions since this commit --> https://github.com/ekeeke/Genesis-Plus-GX/commit/e6ab7563e7cfb4e18c29e557d36e59cc51e83815 - it also is fixed in bizhawk's fork here --> https://github.com/TASEmulators/BizHawk/pull/3139

It appears you are using an outdated version of GPGX. Are you using the latest version?

ekeeke commented 1 year ago

hi! i'm using latest build 2023 of genpluxgx for gamecube but i found that when playing piersolar with its audio cd fps drops to 55 to 60 continuesly and audio is stuttering.

Gamecube CPU is relatively slow (486 MHz) compared to today's standard so it's very likely that it struggles at emulating this game when both Mega Drive and Mega CD hardware needs to be emulated. There isn't much I can do about that: I try to keep the emulation code optimized but code getting slower as the emulation becomes more accurate is unavoidable. Try using older versions to see if it runs better.

bios files must be renamed in a specific way or not? i have put them by manual selecting each in the bios path menu.

im using only cd bioses not others.

used BIOS should have no impact on emulation speed and I am not even sure if Pier Solar uses the BIOS that much anyway

ekeeke commented 1 year ago

As for Demon of Asteborg, it requires larger ROM support (up to 15MB which is the size of this game), which is not activated for the Gamecube port as available RAM is limited to 24 MB. Current max allowed ROM size is fixed to 10MB and I remember there wasn't much left in RAM on Gamecube once a game is started and emulator menu is loaded (you also have to take in account additional dynamic allocation that can be temporarily needed, like savestate buffer, submenus, etc).

I don't have an accessible Gamecube anymore so it has been a long time since I lasted tested the Gamecube port but you might want to report the free memory after loading a game then entering in main menu (it is visible in the "exit" menu) and report it so I can see if it could be possible to activate larger ROM support on Gamecube.

Arnold101knight commented 1 year ago

As for Demon of Asteborg, it requires larger ROM support (up to 15MB which is the size of this game), which is not activated for the Gamecube port as available RAM is limited to 24 MB. Current max allowed ROM size is fixed to 10MB and I remember there wasn't much left in RAM on Gamecube once a game is started and emulator menu is loaded (you also have to take in account additional dynamic allocation that can be temporarily needed, like savestate buffer, submenus, etc).

I don't have an accessible Gamecube anymore so it has been a long time since I lasted tested the Gamecube port but you might want to report the free memory after loading a game then entering in main menu (it is visible in the "exit" menu) and report it so I can see if it could be possible to activate larger ROM support on Gamecube.

ok i tell you that later. and i imagined that gc is not tested, because in old version years ago pier solar + cd did not drop fps

can you tell me wich old version i can use? so i keep it just for this game. i tested also genplus-gx-1.7.5-RC1 but it can't access sd2sp2 sd card. i use that

ekeeke commented 1 year ago

You could try this build: https://github.com/ekeeke/Genesis-Plus-GX/blob/33a43e34c1d2b018ea768a011f3b1619f7fc5bc3/builds/genplus_cube.dol which is the latest before following commit: https://github.com/ekeeke/Genesis-Plus-GX/commit/e66b7bc83d2ef98feeb5f40b2ebebd55f727406e which I think had some impact on Mega CD emulation raw speed.

It's quite old though (2020) so no idea it is was compiled with a libogc/libfat version recent enough to have SD2SP2 support.

Alternativately, you could try to turn off some sound emulation settings (High Quality FM and High Quality PSG) to reduce CPU processing time, even if I don't think it would be that much significant. And off course make sure CPU intensive features like NTSC filter and CPU overclocks are turned off.

Arnold101knight commented 1 year ago

same slowdowns. sd2sp2 ok. even with audio high quality disabled..

free memory with latest build is 3485680

ekeeke commented 1 year ago

Slowdown could also be caused by accesses to SD card being not fast enough (it is accessed anytime the emulated game reads data from the disc, which might be done differently or more frequently by this game when it uses CD hardware than in other Mega CD games ) but as said above, there isn't much I can do about Gamecube hardware limited processing performance.

free memory with latest build is 3485680

Yes, that confirms what I thought: there isn't enough RAM left on Gamecube for larger ROM support (at least 5MB would be required for Demon of Asteborg but there is barely 3.3 MB left)

Arnold101knight commented 1 year ago

sd card is fast. you have other builds that i can try? or maybe a webpage with a list of all the old builds? i can't find them

ekeeke commented 1 year ago

SD Card might be 'fast' but you can still have SD access slowdown through SDSP2 adapter. Try using a SD Gecko adapter instead, reformat SD card or use another one to see if it helps.

There is no webpage, all the builds can be found from genplus_cube.dol github history under https://github.com/ekeeke/Genesis-Plus-GX/commits/master/builds/genplus_cube.dol using following procedure:

  1. select any commit in that history (most recent ones are listed first, skip pages at the bottom to select older ones)
  2. find the modified genplus_cube.dol file, right-click on the ... button for that file and select view file
  3. select View raw in the upcoming page to download the dol file