I’ll be making these “project progress” posts as a significant amount of tangible bug fixes arise, to encourage more people to bug-test in our beta builds. This will be more technical, not include as many images, and be more “dry” than the major release blog-posts. Think of it like a sneak peek of the bug-fixes coming in the next version of Batocera. The major release blog-posts should come in much more infrequently and be much larger, so think of these project progress reports as just an appetiser for that. These posts may be a bit less polished (and will probably have edit corrections as I inevitably get some facts wrong). Now for the proper intro:
We’ve discovered a few bugs and have fixed them for the upcoming v32 release! They include the notorious “Pi 4 in SDLPoP” slowdown and audio profiles.
SDL RPi 4 V-sync issues
According to this post by pamput on the RetroPie forums, the version of graphics drivers being used on the Pi 4 has a bug where seemingly every second frame was being skipped for some reason in SDL programs! Although this is fundamentally a bug with the drivers, pamput discovered a workaround by adding particular launch commands to certain programs. And voila! No more frames were being skipped!
This workaround has been implemented into the RPi 4 v32 build, and hopefully won’t need to stick around for long, but now we’ve got full performance back in SDLPoP, the Drastic NDS emulator, and others I’m sure!
Audio profiles
One particular pain-point for certain users has been audio output settings. Either they keep defaulting to something that doesn’t work or they just outright don’t work for certain hardware configurations! Well, (hopefully) no more! As Batocera has been making a transition to using the Pipewire audio server in place of our current Alsa server. What this means is that there will be more audio settings opened up for use to adjust from within the menus (via AUDIO OUTPUT and the new AUDIO PROFILE options), dramatically increasing the chances that uniquely configured audio setups will be supported (after configuration, of course).
This also means the “default” option should be a lot smarter in detecting an audio device that’s currently plugged in and actually works.
N64 Hi-res texture bug fixed
Although Batocera has technically had support for hi-res textures for a while now, it had silently broke on us! This was discovered in v31, and it’s not clear exactly how long it’s been bugged for. With the work of Lbrpdx, who discovered a single “=” character invalidating the setting in our config generator, the setting has been fixed! Check out the new instructions on the wiki page for N64 on how to apply them. v32 and onwards, of course!
CRT guide updates
Rion and I have been working together on improving the wiki’s CRT guide for getting Batocera running on a genuine CRT display, no active converter required! It’s still in progress but for the most part presentable and followable, check it out at the wiki!
Libretro PCSX2 core added
The Libretro PCSX2 core has been moved over from experimental to beta in the latest version, so now you’ll be able to choose between the standalone PCSX2 or Libretro’s core version of it (it’s a bit older though, keep that in mind!) This means you can now use more of Batocera’s features with it such as bezels, save states, etc.
Other stuff
And here’s a bunch of stuff that doesn’t need a whole paragraph to explain:
- Apple II games now work again
- The splash video has been dramatically shortened
- The Japanese font for PSP has been fixed
- Systems that weren’t exiting on the first
[HOTKEY]
+[START]
press are now doing so
- Microsoft’s official Xbox wireless dongles should be better supported now
- RPCS3 now uses the ASMJIT SPU decoder by default instead of the Interpreter, improving performance in games (you could always manually set this option)
- Certain Raspberry Pi cases should no longer need to reboot twice
The betas for v32 are out right now for most platforms! You can see which on this forum post. The full change-log for the beta is on our Github page. Happy bug hunting!