PlayStation Classic Boot Menu + RetroArch Christmas 2018 public BETA
Due to the efforts from CompCom and other members of the ModMyClassic community we are happy to announce the pre-release of the new PlayStation Boot Menu + RetroArch for this year’s Christmas holidays!
Whilst this pre-release is a working beta of a future development of BleemSync, we felt that you guys should be able to give a try and have some fun with it over the holidays.
Included in this pre-release is the Boot-Menu by CompCom, RetroArch for the PlayStation Classic and an initial batch of 91 cores. (Emulators) Please note that this is a pre-release of an upcoming module and development! This means that we are expecting some issues and shouldn’t be considered as a final release. This includes all of the 91 cores listed for the console, we haven’t had time to fully test or polish the builds for the PlayStation Classic but the majority should work absolutely fine.
Because of this, we ask you that you please notify us of any issues you encounter in our PlayStation Classic support channel in our discord here. We thank you in advance for your feedback and we will work on making improvements/fixes based on any feedback given to us.
Kronos is a fork of YabaSanshiro, which is itself a fork of Yabause. The project was started by François, his main goal was to have an emulator benefitting from YabaSanshiro improvements, while being friendly with x86_64 architecture and desktop computers.
Over time, several new features were added :
Sega ST-V emulation (the arcade version of the Sega Saturn)
Modern OpenGL Core support, it should now have a fair compatibility, even with intel GPUs, the minimum requirement is OpenGL 3.3 Core, and 4.2 if you want to benefit from gpu tesselation
Additional things to know :
It’s using a high performance SH2 cached interpreter, albeit different from the dynarecs used in YabaSanshiro, the CPU frequency requirement is still around 30% lower than an emulator using a classic SH2 interpreter like beetle-saturn
It’s compatible with beetle-saturn savefiles, there is even a core option to load them from the same path
It’s compatible with zipped cue+bin+wav isos, you don’t need to uncompress them or convert them to CHD
There are several core options to improve rendering (tesselation, upscaling, …)
Shining Force 3 on Sega Saturn :
Cotton 2 on Sega ST-V :
Things to do/fix :
Improve compatibility with non windows/linux platforms, in the case of MacOS X we’ll first need a retroarch with OpenGL 3.3 enabled
Improve input lag, we are 1 frame behind beetle-saturn at the moment
Add CHD support
Hook optional YabaSanshiro SH2 interpreters as core options, while they are not cross-platform, they could be interesting to further improve performances on their respective platforms (x86_32,arm,arm64)
Hook alternative input devices (lightgun, mouse, keyboard, …)
Fix the “toggling fullscreen/windowed” issue (it will result in a black screen if you do that while playing)
PlayStation used a special unit called the MDEC to decode full motion videos instead of relying on software rendering (like the Saturn). These videos were encoded in YUV macroblocks and had to be converted from YCbCr to RGB so that the PSX can output the final image to the screen. A common issue with PlayStation emulators is that the chroma channel generally should be smoothed, but the PlayStation tend to leave it unfiltered.
There’s now a feature called ‘MDEC YUV smoothing’ which does filter the chroma channel. You can see the before/after screenshot above (video in question is the Resident Evil 1 intro) to see the kind of visual enhancement this brings to the picture.
SSAA (Super Sampled Anti Aliasing)
Some people prefer to play PlayStation1 games at native resolution and just applying a CRT shader at the end instead of running them at very high resolutions. However, there are some issues with that approach. 3D polygon graphics can tend to look very aliased and jagged and lacking in definition.
Alternatively, others like to crank the resolution up as high as possible. Both approaches have their pros and cons, but a definite disadvantage is that early 3D was very primitive so you might not want to see razor sharp angular polygons rendered at obscene resolutions, especially when a game relies a lot on pre-rendered backgrounds and other 2D elements. The Final Fantasy and Resident Evil games come to mind for one.
The option ‘Adaptive smoothing’ already exists and it attempts to distinguish 2D elements from 3D elements. It will smooth out the 2D elements but leave the 3D elements alone, resulting in a high resolution picture with the 2D elements not looking pixelated and ugly.
This new Vulkan-only option, SSAA, is a completely new approach. The image is rendered at the internal resolution you set it at (2x/4x/8x/16x, you name it). It then downsamples it at the final output stage back to a resolution somewhere in the ballpark of 240p. What you get is a low-resolution image with very clean anti-aliased 3D, kinda similar to the N64 actually which had native 8x multi sampled anti aliasing of some sort.
Certain CRT shaders expect a 240p-ish image to look their absolute best, so this option lends itself very well to that. It also can tend to look bit more coherent with mixed 2D and 3D in cases where adaptive smoothing fails.
Tip: We recommend you turn dithering off when using SSAA (Super Sampled Anti-Aliasing).
Example – Final Fantasy IX
Below you see SSAA in action with Final Fantasy IX on RetroArch. The first image is SSAA at 1x internal resolution. The second image is SSAA at 8x internal resolution. You can see how the downscaling does its magic in the second picture – it results in an image that almost looks like as if the polygon characters are part of the background itself.
Finally, a CRT shader is used – crt-royale-ntsc-320px.
Dithering for Vulkan
PlayStation and N64 output the final image at 16 bits per pixel. Since that isn’t a particularly wide colorspace, both systems used dithering in order to fake the illusion of a larger palette of colors. This combats color banding and wouldn’t be very noticeable at native resolutions on a CRT TV. On more powerful hardware and when emulated, the limitations of this approach become clear, and some would prefer either internally rendering the dithering at the internal resolution, or disabling it altogether.
Dithering was previously ignored by the Vulkan renderer and was always turned off, no matter what you configured. Now it will actually let you enable it. If dithering is enabled, the scanout image will be 16 bits per pixel. If it is disabled, the scanout image will be 32bits. We recommend that you turn dithering off if you are going to be using ‘SSAA’ (Super Sampled Anti Aliasing)