Releases: DrUm78/FunKey-OS
Releases · DrUm78/FunKey-OS
FPS classics update for the FunKey S / Q36 Mini / RG Nano
Update
- Added 5 of the most iconic FPS of all time (both for RetroFE and GMenu2X):
- Wolfenstein 3D / Spear of Destiny (Libretro)
- Doom (Libretro)
- Quake (Libretro)
- Quake II (Libretro)
- Duke Nukem 3D (Native games)
- Added related game assets for RetroFE (author: @albgr1979).
- Do not overwrite existing FunKey files anymore when updating from .fwu in order to keep RetroFE layouts.list and GMenu2X last ROM launched for FBA 2012 and MAME 2000.
- [PicoArch] January 19th: Simplified the panning feature with 2 hotkeys instead of 3 (no more PAN_DISPLAY_OFF, now PAN_DISPLAY_LEFT and PAN_DISPLAY_RIGHT cycle between the 3 modes).
Notes
- This update only includes the demo files (aka shareware) for each game. Click the links above for more info about full game and music file installation.
- I chose not to use RetroPorts' ECWolf native port but the Libretro core instead as I got some fixes to make it work and because it benefits from all the PicoArch features (scaling modes, core options etc).
- Due to the 5 games added, the image file is significantly bigger (+100 MB for .img).
- This update will force reinstalling all freeware games (including the emulator ROMs).
- While you can rename OPKs, it is not recommended to do for Libretro cores as it may cause bugs or crashes.
Installation
FunKey-rootfs-DrUm78.fwuandFunKey-rootfs-DrUm78_Q36_Mini.fwuare for the FunKey S and Q36 Mini devices only and should be used to upgrade a previous version of my custom OS or the stock OS. Drop the file at the root of your card then unmount to update.FunKey-rootfs-DrUm78_RG_Nano.fwuis for the RG Nano device only and should be used to upgrade a previous version of my custom OS but NOT the stock OS (useFunKey-sdcard-DrUm78_RG_Nano.imgfile instead, see below).FunKey-sdcard-DrUm78.imgandFunKey-sdcard-DrUm78_Q36_Mini.imgare for the FunKey S and Q36 Mini devices only for people who want to flash a fresh new SD card (all data will be wiped!). Use this file with an image flash tool like Win32 Disk Imager then put the card in your console and it will finalize the process on startup (partition resizing etc).FunKey-sdcard-DrUm78_RG_Nano.imgis for the RG Nano device only. Instructions about flashing the SD card are the same as for the FunKey S (see above).
PicoArch update for the FunKey S / Q36 Mini / RG Nano
Update
-
[PicoArch] Added MANUAL zoom feature. Zoom level can be adjusted in the frontend menu or via the hotkey Fn+left/right (±10%).
-
[PicoArch] Added CROPPED mode to enjoy systems with a high aspect ratio like GBA (will display 360x240 with 60 pixels out on each side).
-
[PicoArch] Added ROTATION option (90°, 180° and 270° clockwise) in the frontend options. I decided to implement it because FBA 2012 and FBNeo have a broken rotation code.
-
[PicoArch] Added PANNING feature in the frontend settings. You can now set the screen focus on the right or the left part of the screen (useful for games with a width above 240px in NATIVE or CROPPED mode). You can also control the screen panning via the hotkeys ('Advanced' > 'Options' > 'Emulator hotkeys').
- [PicoArch] NATIVE is now a real native mode and will display the original aspect ratio for all systems. If you find a ratio not suitable for your taste (some PS1 or hi-res SNES games for instance), you can switch to the other scale modes (SCALED, CROPPED and MANUAL modes have a standard ratio).
- [PicoArch] Rewrote several texts in the core settings and emulator hotkeys menu to fix truncations.
- [PicoArch] Removed "NONE" scaler and harmonized the naming convention between the FunKey menu and PicoArch settings (now "NATIVE", "SCALED", "STRETCHED", "CROPPED" and "MANUAL" for both).
- [PicoArch] Added a "About" section to give credit to all people who contributed to the project.
- [GMenu2X] Scroll when link cursor moves into top/bottom row. Previously, the links would scroll when the cursor was about to move out of screen.
- [RetroFE] Updated Artbook-sml theme to support the new systems (author: @DynaMight1124).
- [Libretro] Changed default settings for some cores.
- [Libretro] Recompiled all cores from the latest sources.
Fixes
- [PicoArch] Fixed Scaled mode for resolutions below 320x240: aspect ratio is now correct (was always 4:3 before).
- [PicoArch] Fixed "out-of-bounds for menu pages > 1" (selected option was frozen) and remember cursor position for each page.
- [Fake-08] Fixed Instant Play / Quicksave feature.
Dev
- [Linux] Removed patches as they are now on the dedicated kernel repo.
- [Libretro] Now build the Libretro cores from PicoArch repo (not from local repositories anymore).
New emulators for the FunKey S / Q36 Mini / RG Nano
New
-
[Emulators] New systems available for RetroFE and GMenu2X:
- Final Burn Alpha 2012 (arcade)
- MAME 2000 (arcade)
- FAKE-08 (PICO-8)
- Pokemini (Pokémon Mini)
- [Freeware] Added 10 free games for PICO-8 and 12 for Pokémon Mini (see below to install them manually from .fwu).
- [GMenu2X] Added an option in "Settings" section that automatically copies default freewares to the SD card.
- [GMenu2X][RetroFE] Alias files are included and preloaded by default for FBA 2012 and MAME 2000.
- [GMenu2X] Set "DrUm3x4" as the default theme instead of "DrUm3x3".
- [GMenu2X] Decreased font size from 11 to 10 for "DrUm3x3" and "Windows 11" themes.
- [GMenu2X] Restored the "i" icon for OPK manual and set it to the right of the bottom bar to avoid any overlapping.
- [RetroFE] Updated assets for "RetroRoomCovers", "GameBoy" and "Superlopez" themes for the new systems. Thanks to @hyjinx187 for the PICO-8 art, @joyrider3774 for the Neo-Geo and MAME arts and @xXS4ALLx for the Pokémon Mini art.
- [Lib] Added MODPlug, Musepack, FLAC and WavPack support.
- [RG Nano][Gmu] Added MikMod and WavPack decoders.
Update
- [RetroFE] Disabled subfolder support for faster ROM scanning. If you want to enable it again, just use Commander with READ-WRITE permission (MENU button), open
/usr/games/collections/<SYSTEM>/settings.confthen changelist.romHierarchy = falsetolist.romHierarchy = true. - [Libretro] Recompiled all cores from the latest sources.
- [Emulators] Disabled Libretro core override in
/mnt/Libretro/coresas no one will ever use it for the default cores anyway.
Bug fix
- [PicoArch] Fixed the case sensitivity for file sorting.
Dev
- [GMenu2X] Translations, input, config and default wallpaper files are now stored on GMenu2X side, not on the custom OS repo.
- [RetroFE] Added default exclude / include / menu files for each theme section for more consistency with default themes.
- Split previous "mnt_files" between homebrew games ("freeware_games.zip") and FunKey data ("funkey_files.zip") during OS update.
- Removed redundant launcher scripts.
- Harmonized "settings.conf" for SMS and MD.
New features for GMenu2X and Commander for the FunKey S / Q36 Mini / RG Nano
New
- GMenu2X
-
Alias feature is now available for GMenu2X! Why this feature? Simply because some systems like MAME or FBA must keep their original ROM names in order to work. Now you can display the ROM names you want in the file selector! To achieve that, just create a simple text file anywhere on your SD card: it should contain keys without file extensions such as
sf2ce=Street Fighter II': Champion Edition. Then press the Select (Fn) button on your link in GMenu2X then "Edit" > "Selector Aliases" and set your text file path. Now exit the setting menu by pressing Start and your aliases will automatically show up in the file selector. Here is a quick video about how to use the feature. -
Automatically select the last ROM launched in the file selector for each app.
-
Display wide app titles on 2 lines.
- Added the possibility to rename or delete a section (for default ones, they need to be empty otherwise they will be populated again).
- Added a confirmation message when deleting a section for more safety.
- Force frontend restart when switching languages/themes or renaming/deleting a section.
- Do not list ".." as a subdirectory of the root directory.
- Allow to go above the card root in browser dialog.
- Get rid of the action on D-pad Left in browser and file selector.
- Disabled repeat rate for A, B, Select and Start keys.
- [Theme] Added "Windows 11" by Paola.
-
- RetroFE
- [Theme] Added "Superlopez" and "GameBoy" by @mlopezmad.
- Commander
-
Fullscreen height is now used to display pics in the image viewer for better quality (especially for 240x240 screenshots). It was previously scaled down and blurry because of the title bar.
-
Users can now quickly browse pics in the image viewer by keeping the D-pad pressed (left/right or up/down).
- Title bar can be toggled with Y button.
- The image viewer now only selects ".png", ".jpg", ".jpeg", ".bmp" and ".gif" files, which avoids useless clicks when selecting other files that cannot be displayed.
- Updated 'readme.funkey-s.txt'.
-
Bug fixes
- GMenu2X
- Fixed case sensitive file sorting (issue #7).
- Fixed an issue that prevented the user from deleting a section (issue #6).
- Fixed a case where a new section was not saved until a link was created inside.
- Fixed a crash when setting an empty name for a section link.
- [RG Nano] Fixed buzzing sound when using volume shortcuts (was reverted by mistake).
- Fixed wallpaper loading for "DrUm3x3" and "DrUm3x4" themes (absolute path did not work, it looked into "wallpapers" folder instead).
- Commander
- Fixed a segfault while using the image viewer in folders with mixed file types.
Update
- [Libretro] Recompiled all cores from the latest sources.
- [Systems stats] Restored swap amount in place of CPU temp (was useless tbh).
- [OS update] Centered "RESTARTING..." text after updating the OS.
Dev
- [GBA Mini] Due to the resolution limitation, support is discontinued for this device.
- Fixed package download from sites with expired certificates.
New boot logo for the Q36 Mini / RG Nano / GBA Mini
New
-
[RG Nano][Q36 Mini][GBA Mini] Boot logo for the main and recovery partitions has been updated as a few people asked for it. Thanks to @joyrider3774 and @s4ilence for the help on the GBA Mini logo.
Improvements
- Default Libretro cores are now stored in the Linux partition for a few purposes:
- Prevent any unintentional deletion
- Users can still override the default cores by placing theirs into
Libretro/cores/(launcher scripts will search this location first)
- Homebrew games are not copied during the OS update anymore (.fwu file). It will now be done only when flashing a card with the .img file.
- [RG Nano][Gmu] Set lock feature to Start+Select (in this order).
Update
- Recompiled all Libretro cores from the latest sources.
Dev
- Fixed compilation for Debian 12+ (Ubuntu 22.04 and above)
Installation
FunKey-rootfs-DrUm78_GBA_Mini.fwuis for the GBA Mini device only and should be used to upgrade a previous version of my custom OS or the stock OS. Drop the file at the root of your card then unmount to update.FunKey-sdcard-DrUm78_GBA_Mini.imgis for the GBA Mini device only for people who want to flash a fresh new SD card (all data will be wiped!). Use this file with an image flash tool like Win32 Disk Imager then put the card in your console and it will finalize the process on startup (partition resizing etc).
Custom OS for the FunKey S / Q36 Mini / RG Nano / GBA Mini
New
-
Now supporting the GBA Mini handheld (review here). This device is a homemade FunKey S clone with a miniaturized GBA form factor. While it's not mass produced, more and more people are getting it so I decided to port my OS to it because the stock OS lacks some important features (such as 60 Hz support).
- [Commander] Added the ability to show next/previous image with D-Pad in the image viewer (author: @glebm).
Update
- [Libretro] Recompiled all cores from the latest sources.
- [RG Nano][Gmu] Changed backlight timeout from 30s to 15s.
- [RG Nano][Gmu] Changed default theme from
dbcompo largetodefault modern large.
Bug fixes
- [GMenu2X] Fixed number of days per month that was not correct in Clock app.
- [GMenu2X] Removed "i" icon that overlapped the clock on the bottom bar.
Known issues
- [GBA Mini] RTC (Reat-time clock) is only kept over a reboot, not a shutdown (same occurs in stock OS though). May be a hardware limitation but will investigate further.
- [GBA Mini] Battery status (L+R+Select) is not very accurate on the GBA Mini for an unknown reason. For instance, mine cannot go above 80% when charging and the device usually shuts down around 15%. May be a hardware limitation too but once again, not sure.
- [GBA Mini] While I adapted quite a lot of things to the 240x160 screen of the GBA Mini (FK menu, RetroFE themes, PicoArch scaling modes, boot logo, low battery icon...) there are still some apps designed for 240px height such as Commander, GMenu2X, which means they will be cropped. Also, the lack of 2 buttons (X and Y) makes it even more difficult to use (therefore I mapped Start+B to Y and Start+A to X).
- [GBA Mini] Due to the missing buttons constraint, favorite system does not work in RetroFE because the frontend does not support key combo unfortunately.
Custom OS for the FunKey S / Q36 Mini / RG Nano
New
- [Emulation] Default emulators have been replaced by PicoArch with Libretro cores in RetroFE and GMenu2X for better performance, compatibility and accuracy. Please read below before continuing:
- Save states from the original emulators may not be compatible with the Libretro cores but game saves should (put your
.savfiles intoFunKey/.picoarch/data/CORE_NAME/). So please do NOT install this update if you want to keep using your old save states!!! - Put your BIOS (PS1, Mega-CD, PC-Engine CD-ROM, GBA...) in
FunKey/.picoarch/system/. - The Libretro cores are stored in
Libretro/cores/, you should not delete them unless you get a more recent version, otherwise default emulators won't work anymore both in RetroFE and GMenu2X. However, you can add your cores to this folder and use PicoArch to launch them. - Libretro core list:
- Game Boy/Game Boy Color => Gambatte
- NES => FCEUmm
- Game Boy Advance => gpSP
- Super NES => Snes9x2005
- PCE CD-ROM/SuperGrafX => Beetle PC-Engine SuperGrafX
- Lynx => Beetle Lynx
- WonderSwan => Beetle WonderSwan
- Neo-Geo Pocket => Beetle Neo-Geo Pocket
- PlayStation => PCSX ReARMed
- SG/SMS/GG/MD/MCD/32X => PicoDrive
- Save states from the original emulators may not be compatible with the Libretro cores but game saves should (put your
- [Stats] Replaced swap size by CPU temperature in system_stats (L+R+Select).
- [PicoArch] Real-time clock is now supported (Gambatte, gpSP...) thanks to @neonloop.
- [RetroFE] Added Artbook-sml theme (author: @s4ilence).
- [RetroFE/GMenu2X] Updated supported file extensions for default emulators (.m3u among others).
Bug fix
- [Commander] Fixed broken image viewing for .jpg and .png (ticket #46).
Custom OS for the FunKey S / Q36 Mini / RG Nano
Credit first goes to the @FunKey-Project for their amazing work.
New features
- [Refresh] Added 60 Hz support for the FunKey S, yes that's possible! Now all your games should be silky-smooth. Beware, once you try it, you never go back!
- [RetroFE] Enabled favorite support. You can now choose to display only your preferred games and systems. The feature is disabled by default as many people enable it by mistake so you have to press
Startto load your playlist but you can force it by default by changingautoFavorites = falsetoautoFavorites = truein/usr/games/settings.confwith Commander app (use READ-WRITE permission in the FunKey menu). Controls are listed below:
| Key | Action |
|---|---|
| Y | Add a game/system to the favorite playlist |
| X | Remove a game/system from favorite playlist |
| L2 | Previous playlist |
| R2 | Next playlist |
| Fn/Select | Select a random game/system |
| Start | Switch between playlist and default list |
- [RetroFE] PicoArch support (14th slot): put your cores into "Libretro/cores" folder (created during OS update) then put your games into "Libretro" folder and launch your core from "Libretro" section in RetroFE. Big kudos to @neonloop for his amazing work! PicoArch Git is here.
- [RetroFE] OPK support (15th slot): copy your OPKs in "Native games" folder on your SD card then launch them from "Native games" section in RetroFE. Please note that OPKs that need to open the file browser to pick an external file (emulators for instance) won't work as RetroFE is not designed this way.
- [RetroFE] Added subfolder support for all emulators. You can now store your ROMs into subfolders on your SD card, they will be detected and displayed in RetroFE. /!\ Beware, having thousands ROMs in a folder may seriously slow down your device so please avoid that if possible /!\
- Added UTF-8 support for GMenu2X. You can now display special characters (Chinese for instance) in GMenu2X. RetroFE does not support it unfortunately, it would need a complete rewrite by the author of this part of the code.
- [Stats] Added battery measurement for onscreen system stats (L+R+Fn). You can see now the remaining battery while playing your favorite games. "%" display has been removed to fit all the data on one single line.
- [Debug] Added ADB (Android Debug Bridge) debugger for develoment purpose. Basically, just mount the USB drive on your dev host, create an empty "adb" file at the root directory of this mount, unmount and restart the FunKey. On the host side, just install the Android platform tools, open a text console (bash, cmd or PowerShell), type in "adb shell" and you're in!
- [GMenu2X] Trimming extensions can now be disabled in GMenu2X settings ("Start" button), particularly useful to browse multi-entry games (.cue/.bin for instance).
- [GMenu2X] Now displays the clock on the bottom bar (see screenshots below) and "Clock" app has been added into "Settings" section so you can set time and date.
- [GMenu2X] Added "Power Off" and "Reboot" options in GMenu2X ("Settings" section).
- [GMenu2X] Now includes Unarchiver app (
Applicationstab) that allows to extract a few archive formats (zip, gz, gtar, tgz, tar.gz, tar, rar, 7z) on your device without the need of a computer. Just pick an archive and it will extract it in the same folder (author: @x7bit). - [GMenu2X] Added ST-SDL terminal app in
Applicationssection. - [RG Nano] Added GMU music player in GMenu2X frontend.
- [RG Nano] Added HID support (keyboards can be used through USB-C with text apps for instance).
Improvements
- [Boot] Updated the splash screen displayed when booting the device and when entering the recovery mode (Fn+Start at boot). Please note that the logo for the recovery mode will only be updated if you flash your SD card with the .img file. Thanks to @johnnyw for the art.
- [Brightness] Set default value to 50% instead of 100%, which will prevent users from being blinded during the boot sequence.
- [GB/GBC] Included new gnuboy v1.2.3. Changelog here.
- [GB/GBC] Increased max sound volume by not forcing mono as it's no more needed with 'etc/asound.conf'.
- [SNES] Included new PocketSNES v1.3. Changelog here.
- [PS1] Included new PCSX ReARMed v1.2.3. Changelog here.
- [PS1] Bios and memory card paths changed to "FunKey/.pcsx/bios" and "FunKey/.pcsx/memcards" (the warning message has been updated accordingly), so please move your files to those new locations.
- [MD] Included new PicoDrive v1.4 compiled from @irixxxx's latest sources. Changelog here.
- [GG] Replaced Mednafen by PicoDrive for Game Gear emulation in RetroFE.
- [GMenu2X] 2 extra themes for GMenu2X users (see screenshots below)
- Default theme "DrUm3x3" now displays 3x3 icons instead of 2x2 previously and has a new background.
- Added another custom theme "DrUm3x4" that displays 3 lines of 4 icons each with a smaller font.
- New set of better looking icons and slightly modified descriptions.
- Game Boy and Game Boy Color have been grouped into one OPK "GB/GBC".
- Mega Drive, Master System and Game Gear systems have been merged into one OPK "Mega Drive" as well.
- [GMenu2X] Added PicoArch frontend OPK for GMenu2X users in "Games" section (switch sections with L/R).
- [RetroFE] Added "RetroRoomCovers" (now by default), "FunKeyRed" and "FunKeyYellow" RetroFE themes from @john-reno. Please note that you can remove them from "FunKey/.retrofe/layouts" if you already had them.
- [RetroFE] Added
Pixxel Plustheme (thanks to @john-reno and Rasha Theta). - [RetroFE] Added
DarkUIandDaijismolthemes (thanks to @john-reno and @s4ilence). - [RG Nano] Added support for headphone plug and unplug during gameplay. Apps won't freeze or close anymore and sound will switch between speaker and headphones (thanks to @shauninman for the code).
- [System] Extended
/tmpsize from default 28MB to 128MB to handle large zipped files (PicoArch + gpSP core for instance).
Bug fixes
- [RTC] Fixed RTC that was previously ahead of time very quickly on the FunKey S and Q36 Mini (ticket #1).
- [gpSP] Fixed frameskip issue in gpSP (ticket #2) thanks to @StupidHoroscope.
- [gpSP] Fixed saturated and muffled sound in gpSP (ticket #21). It's now fixed for Instant Play too.
- [GMenu2X] Fixed GMenu2X buzzing sound (ticket #4).
- [GMenu2X] Fixed the brightness setting that was different between GMenu2X and the OS by removing the option from GMenu2X, we don't need several places that change brightness since we have the FK menu and the shortcuts (ticket #5). Also removed "Screen timeout" and "Save last selection" that were inactive.
- [Package] Fixed Jack's VVVVVV game crash by removing libvorbis.
- Fixed emulator exit that was impossible for games with special characters in their name (Korean/Japanese...), nothing happened when trying to close the program. This fix is related to the new UTF-8 support (see "New features" section above).
- [Recovery] Fixed
%%in brightness notification. - [RG Nano] Fixed sound volume adjustment that was not possible with some headphones (thanks to @game-de-it).
- [ST-SDL] Fixed terminal width that was previously 320 instead of 240 and adapted the Help screen.
Known issue
- [SDL] Some image formats (.jpg and .png for instance) may not open under Commander since the latest update (ticket #46).
Development
- Toolchain & SDK for the FunKey S, Q36 Mini and RG Nano (unpack the archive then type
source <TOOLCHAIN_PATH>/environment-setupcommand)FunKey-sdk-2.0.0_Ubuntu1804.tar.gzfor Ubuntu 18.04.FunKey-sdk-2.3.0.tar.gzfor Ubuntu 20.04.
- Documentation about how to build programs for the FunKey OS can be found here. You can also ask for help on the FunKey S Discord.





