Skip to content

Releases: Turro75/MyMinUI

MyMinUI-2025-08-03

03 Aug 17:33

Choose a tag to compare

What's new:

Miyoomini, A30: include Steward Fu NDS support, it brings several improvements compared to the pak released which was the version 1.8. To get it working You need to manually add the drastic binary (You can get it from steward fu 1.8 release file) to the Bios/NDS folder.

  • Updated the my282 release file due to a couple of missing dependencies

Unfortunately the lack of spare time avoided me to bring NDS to the other platforms, it is one of the targets for a future release.

All: Audio Fix, ensure the proper audio sync algo is loaded at game launch.

All: fix convertboxart tool unable to exit

All: update dockerfiles for correct toolchains creation (deb.debian repository moved to archive.debian)

r36s, miyoomini, my282, rg35xx: add/refine rumble support

MyMinUI-2025-05-25

25 May 21:32

Choose a tag to compare

Release 25/05/2025

All:

  • Minui improvements on multidisc handling, now even hidden and favorites can handle m3u

  • Temporary fix for a glitch with RGB1555 games (i.e. mslug2 on mame2003+) where the first 8 pixels on left side of the screen were repeated.
    I switched back to a basic for cycle instead of a faster assembly solution, I'll try to restore the faster one, one day.

Miyoomini:

  • fix audio muted after playing native pico8 games.

M21/M22:

  • reintroduced full support for m21/m22, all common features are available, the nextui audio fix is disabled as the missing vsync (see below) make it not effective.

  • since the m22 doesn't have the menu button the menu is emulated by select+start

  • since there is no power button but a physical power switch, keep pressing select+start for at least 2 secs to perform a shutdown.

  • the m22 buttons layout is BAYX instrad of the more common ABXY, so the buttons are hardcoded with B and A swapped as well as X and Y, this allow me to use the same button layout as the other miyoo and anbernic devices I play with. For those who prefer real layout, just remap the buttons in the default.cfg files present in Emus/m21/xxx.pak folders.

  • now when the device enter sleep the screen is blank, use SELECT to wake up, if SELECT does nothing it means 2 minutes are elapsed and the device shutdown. You still need to manually switch off the device.

  • the default screen resolution for HDMI and M22 is 1280x720, as the other devices with HDMI output You can edit the file .system/m21/custom_hdmi_settings.txt to adapt it to other resolutions, it is suggested to use the value 854x480p60 to improve readability and having better performances. I left 1280x720 as the tool Files doesn't work with other screen res.

  • Implemented the layer double buffering (the same as miyoo a30) as screen drawing technique, unfortunately due to hardcoded limitations there is no way to get the vsync working without seriously affecting performances (max 50fps on m21, max 38fps on m22) so the vsync is disabled. I didn't notice any screen tearing as the double buffering is usually enough to reduce the effect, but it is still possible to see it on some games.

  • the m22 has a rotated screen while the hdmi output don't, this is automatically handled even on native pico8.

MyMinUI-2025-05-23 fix

22 May 20:26

Choose a tag to compare

EDIT - Last minute fix:

  • Fixed the multidisc behavior, now m3u is fully supported and is now able to show boxart and state preview as well as all other roms.

  • previously the save state selected is the more recent, this don't work well on devices without rtc or in case of shared sdcard across devices, now it selects the last saved state.

/EDIT
All:

  • Fixed the multidisc handling, now both m3u and pbp are fully supported and properly handle the save states as well as autoresume

  • Restored the Amiga core (puae2021), after some researches I found that the commit used by onionos seems quite useable, it still needs a bit of tinkering to properly balance execution speed but at least the 50/60fps seems easy to achieve.

  • Restored the minui audio code for Playstation, due to the continuous frame rate change the nextui audio fix has been deactivated.
    All others cores can continue to use the nextui audio fix. The frame duplication has been disabled so now the pcsx_rearmed is running at full speed.

  • The Core Sync option has now 4 items: NoFix, Auto, Screen, Native. Deafult setting to Auto for all but PS1 which must be NoFix.
    In the PS1 core settings the Core Sync param is hidden and forced to NoFix.

r36s:

  • Added support for arkos devices which has missing menu button (i.e. R36H), if exists the file .system/r36s/menumissing.txt then Select+Start is acting as menu.

MyMinUI-2025-05-12

12 May 22:34

Choose a tag to compare

New Features

All:

  • the Files tool (aka DinguxCommander) is now a common tool and uses the platform screen and input drivers instead of libSDL.
    Now it is coherent across all the devices and automatically adapt to the screen and the current video output.
    renamed to MyCommander. The code is not yet polished.

  • removed the max scale setting, now useless.

  • removed residual Amiga puae2021 files from all platforms

  • set the prevent_tearing default setting to Lenient

  • updated all the Toolchains to add libsamplerate support needed by nextui audio sync engine.

Miyoomini:

  • now the Miyoo Mini v4 screen is detected and set to the real screen resolution which is 752x560 instead of 640x480. The detection method is taken from OnionOS (Thanks Lemonzest for help and testing)

A30:

  • added missing atari2600 folders

MyMinUI 2025-04-30 for SJGAM M21/M22p

04 May 17:45

Choose a tag to compare

Dedicated release to the SJGAM M21/M22pro.
This release alignes this device to the features implemented in the supported devices except the NextUI audio fix which can't be applied here as the (useable) vsync is not available.
For the rest the rendering process is now as fast as the other devices so it is now much more enjoyable than stock experience.
I have been able to play PS1 Tekken3 @60fps on a HDMI out set to 1280x720. not bad considering the soc used here.

MyMinUI-2025-05-04

04 May 17:06

Choose a tag to compare

All:

  • merged NextUI audio fix algo to avoid audio pops/crackling of some devices on some systems (i.e. miyoo devices and snes/nes).
  • added the setting CoreSync to force the core following the core fps or the screen fps, auto should fit in most cases.

a30:

  • fixed and improved screen rotation handling

Miyoomini(+):

  • restored libSDL2 as the audio issues were actually generated by an incorrect frame rate against screen refresh ratio, with the NextUI fix audio the pops/crackling are gone.

MyMinUI-2025-04-08

28 Apr 18:35

Choose a tag to compare

Release 28/04/2025

A lot of new things in this release. I tried to make it more efficient and easy to use.

All:

  • Updated all the cores to the current github repos, this break the back compatibility of saved states on several systems (I faced problems in fbneo, pcsx_rearmed and mame) In case You want to continue to use previous saved states simply backup the .so files in .system/<PLATFORM>/cores/*.so then restore them once upgraded, I noticed that many fbneo games are now able to keep hiscore working. Also mame added the support to several games. If you miss to backup/restore the core files, no problem just download Your previously working release then get the *.so files from there.

  • Optimized the rendering process, it has been reduced from 13/15msec down to 5msecs. This happened thanks to the substitution of several (not so good) c code snippet to a more efficient (but for sure not good enough) neon intrinsics/asm code able to do fast image processing allowing all the desired frame handlings within a short timing. The neon algos were taken from libpixman, implemented by me and got a lot of help from AI, it hasn't a straightforward process, a lot of trial and error but in the end we learned together.

  • Replaced the frame image scaler from SDL_SoftStretch to a custom made (AI did the most) neon scaler made to handle only rgb565 images, my feeling is that the resulting image is better than before, I've seen several posts related to MyMinUI poor quality images, I'll never reach the image quality of MinUI on rg35xx and Miyoomini because these were always integer scaling. I left that approach as there were a lot of compatibility issues in many cores non provided by MinUI.

  • Improved the screen rotation handling, this will allow me a lot easier adding support for devices with a rotated screen (such as the miyoo a30) I suspect than many widescreen devices use vertical smartphone screens. In case of port to one of them it will be now an easy task.

  • For the devices with hdmi out is will be easy change the device setting to let the user connecting a vertical or even flipped monitor.

Why is that important? Screen rotation is always a bottleneck for performances, pixel by pixel rotation is one of the worst time consuming tasks, and rotating the whole screen takes usually 5 to 10msecs and it grows quickly when the resolution arises affecting the achievable fps.
Now I rotate the frame only once when generated (when is in his smallest size) this allows the following display drawing loop much faster and able to take gain from neon intrinsics functions.

  • All the three changes above allowed to reach a huge performance boost or, when the boost were not needed to reduce the cpu clock extending the battery life. As an example tekken3 ps1 on hdmi is able to run at 60fps on all hdmi devices (including the sjgam m21/m22) set to 1280x720p. That doesn't mean that every game will run at 60fps, some game are core limited i.e. Bloody Roar2 ps1 needs a high cpu clock (>1.6GHz) to generate the frame within 60fps. Most entry level devices simply don't have enough power to run them full speed.

  • Added the support for all three pixel format provided by libretro (RGB565, ARGB1555, ARGB8888), no need to set anything anymore as it is fully automatic now (removed Frontend->Allow32bit setting).

  • Now the menu automatically adapt the number of items shown according to the current screen resolution.

R36S/RG353/R36PLUS

  • restored prevent_tearing setting

  • improved the rg353 family support, I played tekken3 ps1 @ 60fps with hdmi out set to 1080p.

  • rg353 fixed a bug that randomly muted the audio.

  • added the support for the R36PLUS (1:1 720x720 4Inch screen), no changes in installation instructions.

  • increased the menu cpu clock to make it more snappier when used at high screen resolution.

  • added the file ./system/r36s/custom_hdmi_settings.txt which contains the mode string 1280x720p60, edit this file to match Your monitor/TV, reading any log file in .userdata/r36s/logs/*.txt will give You all the available modes.

RG35XX

  • restored prevent_tearing setting

  • hdmi out now can handle 1280x720p

  • added the file ./system/rg35xx/custom_hdmi_settings.txt which contains the mode string 1280x720p60, edit this file to match Your monitor/TV I suggest something like 856x480p60 to get exactly the same performances as the onboard screen other valid modes are 720x480p60, 1024x576p60 , some tv allows any value, some other don't.

  • increased the menu cpu clock to make it faster when used at higher screen resolutions.

Miyoomini

  • Reverted back to SDL1, seems better on audio handling. IMPORTANT: If You upgrade from a previous release You have to manually delete the file .system/miyoomini/lib/LIBSDL-1.2.so.0 or the games won't run.

Miyoo A30

  • this little beast is always painful, anyway I changed the double buffering from framebuffer memory swap to a layer memory swap, similar results, the second one allows to work with prevent_tearing set to Off allowing better performances in some games.

  • this device has the screen rotated, it is probably the one that got the more significant performances boost. Tekken 3 ps1 needed the max overclock available (1.4GHz on mine) to run at decent speed 55-58fps, now it runs 60fps with cpu speed set to normal and most games in powersave mode. This is helpful in terms of battery life and keeping the heating effect lower.

  • restored prevent_tearing setting

SJGAM M21/M22pro STILL UNDER TEST TO DETERMINE THE CORRECT SCREEN ORIENTATION ON M22PRO

  • sometimes my M21 decide to be able to read the sdcard, it happens for few times, I don't know which kind of damage but at least I can test stuffs.

  • As per the miyoo A30 the m22pro is a rotated screen device, so the above is valid here. Consider that these devices are capped at 1.2GHz, so performances were always critical.

  • As the miyoo A30 the soc here is allwinner so I was able to use the Layer memory swap allowing a doublebuffering that should be much better in terms of screen tearing effect. Unfortunately on these devices we can't use the vsync event to avoid tearing, it is available but I didn't find a way to adjust it (50fps max).

  • added the file ./system/m21/custom_hdmi_settings.txt which contains the mode string 1280x720p60, edit this file to match Your monitor/TV I suggest something like 856x480p60 to get exactly the same performances as the onboard screen other valid modes are 720x480p60, 1024x576p60 , some tv allows any value, some other don't.

Sjgam m21/m22pro release

13 Apr 22:10

Choose a tag to compare

Release dedicated to the sjgam m21/m22pro devices.

The provided features are aligned to all other platforms Today. Hopefully someone else is interested on continuing this development.

MyMinUI-2025-04-08

08 Apr 14:29

Choose a tag to compare

Edit:
Uploaded new release files to better handle the provided map.txt

Some fixes that deserve a release:

Minarch:

a. fix a bug where the core settings were not properly loaded forcing the core always starting with its default values. Now all settings are set before core load. Be aware that since the core settings were ignored You would now face some issues at game start in case of wrong setting (but You never noticed because previously not loaded), in case simply delete the related .cfg files under .userdata or (if the game starts) "load defaults" in the save settings menu. That's prevented neogeo (finalburnneo) to load the desired bios and mame2003 showing the disclaimer even if turned off by setting. thanks to the users that bring that to my attention.

b. Now in case a map.txt file is present the in game menu shows the mapped name instead of the rom name.

miyoomini:

copied a commit from MinUI that allows the user to skip data recovery by letting the rtc doing its job. Create the file enable-rtc under .userdata/shared to enable the rtc. Details in readme.txt within release file.

MyMinUI-2025-04-02

02 Apr 22:09

Choose a tag to compare

Release 02/04/2025

no fancy features this time, just a huge "under the hood" rework to improve performances and stability.

All:

  • Implemented double buffering and vsync in all supported platforms to avoid any kind of screen tearing/flickering.
    That took a lot of time to implement, anyway it has been a rewarding process, I've learned a lot.

  • Due to that I've removed the screen tearing (Off/Leanent/Strict) setting. now it is hardcoded as strict.

  • Modified the framebuffer writing algo to skip black areas, helpful for performances especially while outputting to hdmi, useless in case of Fullscreen aspect setting.

Minarch:

  • refined the thread engine to avoid (hopefully) some race conditions that caused crashes.

  • optimised the rendering process to improve a bit the performances.

  • removed the cpu percent as debug hud data.

m21/m22pro:

  • I broke again my m21, I gave up. I'm trying to release a doublebuffering and vsync release even for that platforms with the help of some discord users as testers, unfortunately it is a long process, so not Today.

r36s/rg353v/rg353p:

  • added support to rg353v and rg353p (I guess also ps/vs/m will work the same, not tested) to the r36s platform. The installation process is the same for both devices,
    it is important that the right ArkOS image is used as a base system.

  • I strongly suggest to use the 2 sdcard setup as reported in the Install.md and Readme.md files.

  • Even here I implemented the double buffering and vsync, the r36s don't provide a doubled video memory to do page flip (that is the approach used in the other platforms) since there is no direct frambuffer kernel support it was at the beginning a basic (but effective) driver based on write() functions using the vsync to stay away from screen tearing.
    The rg353v/p instead provides a double video memory so I was able to double buffer and vsync.
    Anyway I found that the ArkOS kernel provides a framebuffer support based by libdrm, finally thanks to a couple of tutorial found online (the libdrm doc is not so extensive) and a lot of trial & errors process I'm now able to do a proper double buffering and vsync on both r36s and rg353v/p in the best way.
    No GPU support yet, that will be a further step in the future, maybe.

  • For the curious/learner I uploaded also the write() and libsdl2 (I copied libsdl2 from minui) versions of platform.c to see all 3 ways to doublebuffer and vsync.
    Maybe helpful for other who wants to add other devices. Also interesting the platform.c of the miyoomini, rg35xx and a30 as they show a basic (but effective) mmapped framebuffer renderer approach.
    As per my benchmarks I found the libdrm implementation the fastest, the write() version similar to libdrm and at last the libsdl2 even if set as hardware accelerated. Actually the libsdl2 can't work in this fork of minarch as libsdl2 requires that creation/rendering functions must all run in the same thread, this is the original minarch approach which I left months ago to a more threaded rendering process.

  • Added a Tool: ToggleISRG353P.pak as R1/R2 must be swapped on rg353p, I didn't find any way to automatically detect if the device is the v, p or m, maybe it must be used also on ps/m, who knows.

  • Activated the wifi icon in case device is online (copied from minui trimui brick code)

  • HDMI is still under working, set the default monitor resolution to 720x480, the rendered frames are a little stretched but seems more compatible to a wide range of recent and old monitor/tv.

rg35xx OG:

  • HDMI is still under working, set the default monitor resolution to 720x480, the rendered frames are a little stretched but seems more compatible to a wide range of recent and old monitor/tv.