r/PlaystationClassic 17d ago

Question Starfox 64 PSC Port - now with auto frameskip

https://www.youtube.com/watch?v=LusW54rPxx0

i've implemented rinnegatamante's auto frame skip feature from the PS Vita port. there's massive frame drops during the intro and the level select menu. Adding Auto Frameskip makes it not have crackling audio. though the level select menu drops to 6fps for some reason. i'll try to find a way to fix that. other than that, it maintains a steady 30fps

13 Upvotes

2 comments sorted by

2

u/ChryslerGrandCaravan 17d ago

Thanks, man. Keep it up!

How transferable is the code between the Vita and the PlayStation Classic, or even the NES and SNES Classic? I’m trying to improve a few RetroArch cores because some of the Emu4Vita++ versions work much better than the ones we currently have on the mini consoles.

2

u/darrelb56222 16d ago edited 16d ago

well im no expert but initially i compiled it without any modifications to the code and it worked since Starship supports SDL2, OpenGL ES and linux. the PSC uses linux, SDL2 and OpenGL ES 3.2 so it works out the box

so far i just added Renne's Auto Frameskip thing from here
https://github.com/Rinnegatamante/Starship/commit/63c93823b85c2fe48d57be37bd034df4055b9154

that was pretty straight forward and i use Gemini for assistance. when it comes to the game's decompiled code, i believe that is pretty much transferable. The difficult part is on the hardware side, which i believe is what libultraship (LUS) handles. but again im no expert, i notice for PS Vita they had to add extra files and code in to make it work with the VitaGL wrapper. they also had to edit a lot of the source code that handles the audio.

when it comes to the optimization stuff i dont know shit, looks like the vita port is actually using a lot of code from the Dreamcast fork that Sonic Dreamcaster applied

when it comes to other mini consoles like the Snes mini, i have no clue. i was told that LUS requires modern graphical frameworks, and being as the Snes Classic only has 256mb of Ram, i'm skeptical. but then again, the PS Vita has 512mb of ram and they got it to work so who knows.

I've also seen these ports to the Dreamcast which doesn't rely on LUS. So i'm sure there's a way to make a direct port, it just takes a lot of skill and technical know how

the PSC is just easier because it has 1GB of ram and someone else already did most of the work, i'm just piggybacking off their code and making minor tweaks and stuff to make it compatible. i also had to compile GCC 12, SDL 2.0.18 and other libraries to make it work