diff --git a/README.md b/README.md index e31cf178e..b841c3320 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,28 @@
- +

nexterUI


- Installation Guide + Issues · - Documentation + Installation (upstream docs) · - Discord + Documentation (upstream docs)

- - Latest release + + Last commit - - Last commit + + License - - License - - - Stars - - - Issues + + Issues

@@ -38,6 +32,36 @@ A CFW based of MinUI with a rebuild emulation engine and tons of added features For other devices we recommend checking out [MinUI](https://github.com/shauninman/MinUI) +--- + +## Why this fork + +nexterUI is a fork of [NextUI](https://github.com/LoveRetro/NextUI), taken from the last +commit published under the GPL. It exists for three reasons. + +**To stay open.** Upstream is relicensing from GPL-3.0 to PolyForm Noncommercial +([LoveRetro/NextUI#765](https://github.com/LoveRetro/NextUI/issues/765)), which is not an open +source licence — it forbids commercial use and fails the OSI definition. Code already published +under the GPL cannot be relicensed without every contributor's agreement, so this fork carries +the GPL-3.0 grant forward and keeps it. Everything here stays free as in freedom. + +**To add the niceties.** Conveniences that other custom firmware has had for years, that upstream +left to third-party paks or closed as "use Collections": + +- **OS-level favorites**, with first-order support in a context menu on any game the UI lists — + a system folder, Recents, a collection, or the search results. Not a pak, not a workaround. +- **OS-level search**, inspired by the stock TrimUI OS: an on-screen keyboard over a live result + list covering every ROM on the card. +- More to come, in the spirit of OnionOS. + +**To do the cleanup.** Several latent defects in the inherited codebase are tracked as issues +here rather than left in place — out-of-bounds reads on empty folders, leaks on the directory +alias path, and undefined behaviour in the settings code. + +Upstream remains the origin of the great majority of this code, and [MinUI](https://github.com/shauninman/MinUI) +before it. Both are credited below and neither is going anywhere. + + - Fixed both screen tearing and sync stutter problems of MinUI by rebuilding the emulator engine core - Game switcher menu (Onion OS style) by [@frysee](https://github.com/frysee) - High audio quality, due to advanced resampling engine using [libsamplerate](https://github.com/libsndfile/libsamplerate) (with quality/performance setting per emulator) @@ -54,7 +78,7 @@ For other devices we recommend checking out [MinUI](https://github.com/shauninma - Dynamic cpu speed scaling (keeps your device cool and extends battery life, but gives the performance right when needed) - Fully GPU OpenGL based for faster performance - Custom bootlogos contributed by [@SolvalouArt](https://bsky.app/profile/solvalouart.bsky.social) -- Color and font settings to customize the NextUI interface +- Color and font settings to customize the nexterUI interface - Menu animations - LED control, change colors, effects, brightness - LED indicators, low battery, stand by, charging (brightness can be set seperately) @@ -112,7 +136,8 @@ After two minutes the device will go into deep sleep. The leds will turn complet ## What about X feature? -NextUI supports a variety of optional extras called Paks that are maintained by community members. +nexterUI supports a variety of optional extras called Paks that are maintained by community members. +Paks built for NextUI work here unchanged. Our wiki has a [list of all available Paks](https://nextui.loveretro.games/pak-store/) that can be downloaded from our Pak Store straight on your device. @@ -126,14 +151,16 @@ Our wiki has a [list of all available Paks](https://nextui.loveretro.games/pak-s --- -## Play Retro's review of NextUI +## Play Retro's review of NextUI (upstream) [![image](https://github.com/user-attachments/assets/43217a30-e052-4f67-88a9-c4361f82e72f)](https://www.youtube.com/watch?v=m_7ObMHAFK4) -## Retro Handhelds' coverage of NextUI +## Retro Handhelds' coverage of NextUI (upstream) [![image](https://github.com/user-attachments/assets/5fd538ea-285b-46e9-add4-1ef99b2ee9e5)](https://www.youtube.com/watch?v=KlYVmtYDqRI) --- -## For all other info visit our website: [nextui.loveretro.games](https://nextui.loveretro.games) +## Upstream documentation lives at [nextui.loveretro.games](https://nextui.loveretro.games) + +It still applies to nexterUI in almost every respect; where the two diverge, this repo is the authority. diff --git a/skeleton/BASE/Palettes/README.txt b/skeleton/BASE/Palettes/README.txt index bffad1e26..517bcd9c1 100644 --- a/skeleton/BASE/Palettes/README.txt +++ b/skeleton/BASE/Palettes/README.txt @@ -1,4 +1,4 @@ -NextUI Color Palettes +nexterUI Color Palettes ---------------------------------------- Drop custom color palette files (.txt) in this folder. They will show up under @@ -20,7 +20,7 @@ Each palette is a plain text file. Example (my_palette.txt): Fields ------ version Palette file format version. Use 1. Files with a version newer than the - running NextUI build supports are ignored. + running nexterUI build supports are ignored. name The label shown in the menu. If omitted, the file name is used (with underscores turned into spaces). color1 Main color - main UI elements. @@ -33,7 +33,7 @@ color7 Background - used when no background image is set. Colors are packed hex. Both 0xRRGGBB and 0xRRGGBBAA are accepted; when the alpha byte is omitted the color is treated as fully opaque. Any color you leave out -falls back to the NextUI default for that slot. +falls back to the nexterUI default for that slot. Built-in palettes live with the system files and cannot be edited. Copy one here and rename it to use it as a starting point for your own. diff --git a/skeleton/BASE/README.txt b/skeleton/BASE/README.txt index 5f6b965bd..372f6b5f0 100644 --- a/skeleton/BASE/README.txt +++ b/skeleton/BASE/README.txt @@ -1,16 +1,17 @@ -NextUI (formerly MinUI Next), a custom OS based of MinUI with screen sync fixes and many many more features! +nexterUI, a GPL-licensed fork of NextUI (formerly MinUI Next), a custom OS based of MinUI +with screen sync fixes and many many more features! Source: -https://github.com/LoveRetro/NextUI +https://github.com/lepht/nexterUI ---------------------------------------- Installing PREFACE -NextUI has two essential parts: an installer/updater zip archive named "MinUI.zip" and a bootstrap file or folder with names that vary by platform. +nexterUI has two essential parts: an installer/updater zip archive named "MinUI.zip" and a bootstrap file or folder with names that vary by platform. -On devices that support two SD cards NextUI will generally end up being installed on the "secondary" one. All instances of "SD card" or "primary card" refer to the card that goes into the second slot or to the sole SD card of devices that only support a single card. +On devices that support two SD cards nexterUI will generally end up being installed on the "secondary" one. All instances of "SD card" or "primary card" refer to the card that goes into the second slot or to the sole SD card of devices that only support a single card. Please refer to https://nextui.loveretro.games/usage/#getting-started for detailed instructions that might differ slightly between devices. @@ -18,7 +19,7 @@ The primary card should be a reputable brand and freshly formatted as FAT32 (MBR CAVEATS -While NextUI can be updated from any device once installed, some devices require (minor) changes to NAND or TF1 (via the aforementioned bootstrap file or folder) and therefore need to be installed from the specific device before using. The same is true when trying to use an existing card in a new device of the same type. When in doubt, follow the installation instructions; if all the necessary bits are already installed, the installer will just act as an updater instead. +While nexterUI can be updated from any device once installed, some devices require (minor) changes to NAND or TF1 (via the aforementioned bootstrap file or folder) and therefore need to be installed from the specific device before using. The same is true when trying to use an existing card in a new device of the same type. When in doubt, follow the installation instructions; if all the necessary bits are already installed, the installer will just act as an updater instead. ALL @@ -26,7 +27,7 @@ Preload the "Bios" and "Roms" folders then copy both to the root of your primary MAGICX MINI ZERO 28 -NextUI is meant to be used with Moss installed on the SD card that goes into the left slot (labeled TF1/INT). Download and flash the latest version: +nexterUI is meant to be used with Moss installed on the SD card that goes into the left slot (labeled TF1/INT). Download and flash the latest version: https://github.com/shauninman/Moss-zero28/releases @@ -63,19 +64,19 @@ TRIMUI BRICK / BRICK PRO / SMART PRO S ---------------------------------------- Quicksave & auto-resume -NextUI will create a quicksave when powering off in-game. The next time you power on the device it will automatically resume from where you left off. A quicksave is created when powering off manually or automatically after a short sleep. On devices without a POWER button (eg. the Trimui Smart or M17) press the MENU button twice to put the device to sleep before flipping the POWER switch. +nexterUI will create a quicksave when powering off in-game. The next time you power on the device it will automatically resume from where you left off. A quicksave is created when powering off manually or automatically after a short sleep. On devices without a POWER button (eg. the Trimui Smart or M17) press the MENU button twice to put the device to sleep before flipping the POWER switch. ---------------------------------------- Roms -Included in this zip is a "Roms" folder containing folders for each console NextUI currently supports. You can rename these folders but you must keep the uppercase tag name in parentheses in order to retain the mapping to the correct emulator (eg. "Nintendo Entertainment System (FC)" could be renamed to "Nintendo (FC)", "NES (FC)", or "Famicom (FC)"). +Included in this zip is a "Roms" folder containing folders for each console nexterUI currently supports. You can rename these folders but you must keep the uppercase tag name in parentheses in order to retain the mapping to the correct emulator (eg. "Nintendo Entertainment System (FC)" could be renamed to "Nintendo (FC)", "NES (FC)", or "Famicom (FC)"). When one or more folder share the same display name (eg. "Game Boy Advance (GBA)" and "Game Boy Advance (MGBA)") they will be combined into a single menu item containing the roms from both folders (continuing the previous example, "Game Boy Advance"). This allows opening specific roms with an alternate pak. ---------------------------------------- Bios -Some emulators require or perform much better with official bios. NextUI is strictly BYOB. Place the bios for each system in a folder that matches the tag in the corresponding "Roms" folder name (eg. bios for "Sony PlayStation (PS)" roms goes in "/Bios/PS/"), or refer to https://nextui.loveretro.games/usage/#required-bios for the correct file names and locations. +Some emulators require or perform much better with official bios. nexterUI is strictly BYOB. Place the bios for each system in a folder that matches the tag in the corresponding "Roms" folder name (eg. bios for "Sony PlayStation (PS)" roms goes in "/Bios/PS/"), or refer to https://nextui.loveretro.games/usage/#required-bios for the correct file names and locations. Bios file names are case-sensitive: @@ -101,13 +102,13 @@ Cheat file name needs to match ROM name, and go underneath the "Cheats" director Disc-based games -To streamline launching multi-file disc-based games with NextUI place your bin/cue (and/or iso/wav files) in a folder with the same name as the cue file. NextUI will automatically launch the cue file instead of navigating into the folder when selected, eg. +To streamline launching multi-file disc-based games with nexterUI place your bin/cue (and/or iso/wav files) in a folder with the same name as the cue file. nexterUI will automatically launch the cue file instead of navigating into the folder when selected, eg. Harmful Park (English v1.0)/ Harmful Park (English v1.0).bin Harmful Park (English v1.0).cue -For multi-disc games, put all the files for all the discs in a single folder. Then create an m3u file in that folder (just a text file containing the relative path to each disc's cue file on a separate line) with the same name as the folder. Instead of showing the entire messy contents of the folder, NextUI will launch the appropriate cue file, eg. For a "Policenauts" folder structured like this: +For multi-disc games, put all the files for all the discs in a single folder. Then create an m3u file in that folder (just a text file containing the relative path to each disc's cue file on a separate line) with the same name as the folder. Instead of showing the entire messy contents of the folder, nexterUI will launch the appropriate cue file, eg. For a "Policenauts" folder structured like this: Policenauts (English v1.0)/ Policenauts (English v1.0).m3u @@ -123,7 +124,7 @@ The m3u file would contain just: When a multi-disc game is detected the in-game menu's Continue item will also show the current disc. Press left or right to switch between discs. -NextUI also supports chd files and official pbp files (multi-disc pbp files larger than 2GB are not supported). Regardless of the multi-disc file format used, every disc of the same game share the same memory card and save state slots. +nexterUI also supports chd files and official pbp files (multi-disc pbp files larger than 2GB are not supported). Regardless of the multi-disc file format used, every disc of the same game share the same memory card and save state slots. ---------------------------------------- Collections @@ -139,7 +140,7 @@ A collection is just a text file containing an ordered list of full paths to rom Display names -Certain (unsupported arcade) cores require roms to use arcane file names. You can override the display name used throughout NextUI by creating a map.txt in the same folder as the files you want to rename. One line per file, `rom.ext` followed by a single tab followed by `Display Name`. You can hide a file by adding a `.` at the beginning of the display name. eg. +Certain (unsupported arcade) cores require roms to use arcane file names. You can override the display name used throughout nexterUI by creating a map.txt in the same folder as the files you want to rename. One line per file, `rom.ext` followed by a single tab followed by `Display Name`. You can hide a file by adding a `.` at the beginning of the display name. eg. neogeo.zip .Neo Geo Bios mslug.zip Metal Slug @@ -148,12 +149,12 @@ Certain (unsupported arcade) cores require roms to use arcane file names. You ca ---------------------------------------- Simple mode -Not simple enough for you (or maybe your kids)? NextUI has a simple mode that hides the Tools folder and replaces Options in the in-game menu with Reset. Perfect for handing off to littles (and olds too I guess). Just create an empty file named "enable-simple-mode" (no extension) in "/.userdata/shared/". +Not simple enough for you (or maybe your kids)? nexterUI has a simple mode that hides the Tools folder and replaces Options in the in-game menu with Reset. Perfect for handing off to littles (and olds too I guess). Just create an empty file named "enable-simple-mode" (no extension) in "/.userdata/shared/". ---------------------------------------- Advanced -NextUI can automatically run a user-authored shell script on boot. Just place a file named "auto.sh" in "/.userdata//". If you're on Windows, make sure your text editor uses Unix line-endings (eg. `\n`), these devices usually choke on Windows line-endings (eg. `\r\n`). +nexterUI can automatically run a user-authored shell script on boot. Just place a file named "auto.sh" in "/.userdata//". If you're on Windows, make sure your text editor uses Unix line-endings (eg. `\n`), these devices usually choke on Windows line-endings (eg. `\r\n`). ---------------------------------------- Thanks diff --git a/skeleton/SYSTEM/tg5040/etc/bluetooth/bt_init.sh b/skeleton/SYSTEM/tg5040/etc/bluetooth/bt_init.sh index 3b3bda444..2409efc9a 100755 --- a/skeleton/SYSTEM/tg5040/etc/bluetooth/bt_init.sh +++ b/skeleton/SYSTEM/tg5040/etc/bluetooth/bt_init.sh @@ -2,7 +2,7 @@ # Taken from allwinner/btmanager/config/xradio_bt_init.sh for NextUI bt_hciattach="hciattach" TRIMUI_MODEL=`strings /usr/trimui/bin/MainUI | grep ^Trimui` -DEVICE_NAME="$TRIMUI_MODEL (NextUI)" +DEVICE_NAME="$TRIMUI_MODEL (nexterUI)" reset_bluetooth_power() { echo 0 > /sys/class/rfkill/rfkill0/state; diff --git a/skeleton/SYSTEM/tg5050/etc/bluetooth/bt_init.sh b/skeleton/SYSTEM/tg5050/etc/bluetooth/bt_init.sh index e7a49309c..abb95cade 100755 --- a/skeleton/SYSTEM/tg5050/etc/bluetooth/bt_init.sh +++ b/skeleton/SYSTEM/tg5050/etc/bluetooth/bt_init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Bluetooth initialization script for NextUI bt_hciattach="hciattach" -DEVICE_NAME="Trimui Smart Pro S (NextUI)" +DEVICE_NAME="Trimui Smart Pro S (nexterUI)" reset_bluetooth_power() { echo 0 > /sys/class/rfkill/rfkill0/state;