Hi! We are pleased to announce the release of Mu and SquirrelJME!
Mu v(1/3*3) (by meepingsnesroms)
SquirrelJME 0.2.0 (by XerTheSquirrel)
Mu is the first Palm OS emulator capable of actually playing Palm games, it is currently capable of playing most 160×160 Palm OS 4 software perfectly, there are a few hardware abstraction glitches and sound FIFO inaccuracies but other than that the device works and the audio plays normally, this is with no hacks done to the OS. The main target is RetroArch so it runs on everything, an additional Qt port is available for desktop and Android with debug tools, but Qt itself is horribly broken on Android right now for multiple reasons.
– GitHub: @meepingsnesroms
SquirrelJME is a Java ME 8 Virtual Machine written purely in Java, which also intends to be compatible with J2ME! If you do not know what J2ME is, it is the Java of old flip phones which run MIDlets. In 2014 a new embedded Java standard was released and this is the standard which SquirrelJME is based on, meaning that it is easier to program and far more modern. This is a work in progress and not every single application will run (currently just basic applications), but support for more applications is coming in the future! Currently it runs on existing Java SE VMs so you will need a Desktop Java SE installed. SquirrelJME will see a port to RetroArch in the future as well, however that is still a few months away.
– GitHub: @XerTheSquirrel
It’s been a pretty busy end of the year for the BeetleDC core. Most of the work consisted in finalizing and improving support for Naomi and Atomiswave arcade ROMs.
Naomi / Atomiswave
Naomi GD-ROMs are now supported and this adds more than 120 Naomi games to the list of supported arcade games.
ROMs archived with 7zip as well as parent/split ROMs are now supported as well.
Another new feature is the use of per-game input descriptors: so instead of binding “Button 1” or “Axis 1”, you’ll have descriptive names such as “JUMP” or “STEERING WHEEL”. Not all games have input descriptors but more will be added in the future (and pull requests are welcome.)
In addition, many bugs have been fixed allowing many arcade games to now be fully playable: 18 Wheeler, Airline Pilot, Cosmic Smash, House of the Dead 2, Jambo Safari, Ninja Assault, Shooting Love, Virtual Athlete, Virtual On Oratorio Tangram and probably more.
Dreamcast
On the Dreamcast front, a recent but notable improvement is the automatic setting of the BIOS date and time at boot. So you should never see the date/time setting screen again. In the same area, a new core option allows to choose the BIOS language, so you don’t have to boot the BIOS to change it.
Using the Libretro disk control interface, disk swapping has been implemented. When asked by the game, you can now virtually eject the current disk and select a new one without restarting. Some multi-disk games require this feature such as D2 or Pop’n Music 3 and 4 append disks.
Another new feature for both console and arcade is the Synchronous Rendering core option. This option is only active with Threaded Rendering. When activated, it will pause the emulation thread instead of dropping a frame, which results in less dropped frames and thus a better and smoother frame rate.
Finally, Restart has been implemented so one can reset a game without having to restart the front-end.
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.
Final Fantasy IX – SSAA at 1x internal resolution with CRT RoyaleFinal Fantasy IX – SSAA at 8x internal resolution with CRT Royale
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)
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Websites store cookies to enhance functionality and personalise your experience. You can manage your preferences, but blocking some cookies may impact site performance and services.
Essential cookies enable basic functions and are necessary for the proper function of the website.
Name
Description
Duration
Cookie Preferences
This cookie is used to store the user's cookie consent preferences.
30 days
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked
30 seconds
_ga_
ID used to identify users
2 years
_gid
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
Marketing cookies are used to follow visitors to websites. The intention is to show ads that are relevant and engaging to the individual user.
A video-sharing platform for users to upload, view, and share videos across various genres and topics.
Registers a unique ID on mobile devices to enable tracking based on geographical GPS location.
1 day
VISITOR_INFO1_LIVE
Tries to estimate the users' bandwidth on pages with integrated YouTube videos. Also used for marketing
179 days
PREF
This cookie stores your preferences and other information, in particular preferred language, how many search results you wish to be shown on your page, and whether or not you wish to have Google’s SafeSearch filter turned on.
10 years from set/ update
YSC
Registers a unique ID to keep statistics of what videos from YouTube the user has seen.
Session
DEVICE_INFO
Used to detect if the visitor has accepted the marketing category in the cookie banner. This cookie is necessary for GDPR-compliance of the website.
179 days
LOGIN_INFO
This cookie is used to play YouTube videos embedded on the website.
2 years
VISITOR_PRIVACY_METADATA
Youtube visitor privacy metadata cookie
180 days
You can find more information in our Cookie Policy and .