Skip to content

test#5

Merged
UzuCore merged 46 commits intoUzuCore:devfrom
OnionUI:main
Dec 22, 2023
Merged

test#5
UzuCore merged 46 commits intoUzuCore:devfrom
OnionUI:main

Conversation

@UzuCore
Copy link
Copy Markdown
Owner

@UzuCore UzuCore commented Dec 21, 2023

test

Aemiii91 and others added 30 commits November 21, 2023 21:54
Create playlists automatically from multidisk roms New script m3u_gen.sh
(easy to adapt to GLO if necessary)
Available from `Tweaks` -> `Tools` section.
Additional folders added to cue generator.
By default the script is systematically applied to `PS, SEGACD, NEOCD,
PCE, PCFX, AMIGA` rom folders.

The supported multidisc file names are numerous (not key sensitive and
support "disc" or "disk"), for example :
`MyGame (Disc 1).chd` or `MyGame (disc 1).chd` or `MyGame (DISC 1).chd`
or `MyGame (Disk 1).chd`
`MyGame (USA) (Disc 1).bin` + `MyGame (USA) (Disc 1).cue`
`MyGame (USA) (Disc 1) (Rev 1).chd`
`MyGame (Disc 1 of .2).chd`
...
## Overview
Update to scummvm 2.9.0 to include all updates & fixes to the scrollbars
in: scummvm/scummvm#5472

<img
src="https://github.com/OnionUI/Onion/assets/47260768/89080ee6-124e-445a-a14d-b818e277e991"
width="400" alt="Run ScummVM_000"><img
src="https://github.com/OnionUI/Onion/assets/47260768/86848e29-a304-4c9e-ae1f-1c4d491d044a"
width="400" alt="Run ScummVM_001">

## To test

Testing GUI -> 640 x 480: 

- [x]  GUI can be freely scaled to its smallest size

Testing scrollbars:

- [x] Open global options -> Keymaps & observe a scrollbar is still
present

Downscaler can be tested by running BSword2.5. 
Audio has been handled differently so in this PR will also change the
launch scripts to preload libpadsp.so

## Build details
<details>

```markdown
Backend... miyoo (SDL 1.2.15), 16bit color, high resolution, TinyGL, savegame timestamp, HQ and Edge scalers, aspect ratio correction, Lua, virtual keyboard, ENet
WARNING: Disabling engine Hpl1 because the following dependencies are unmet: OpenGL with shaders
WARNING: Disabling engine Tetraedge because the following dependencies are unmet: libtheoradec
WARNING: Disabling engine The Watchmaker because the following dependencies are unmet: OpenGL (classic)

Engines (builtin):
    SCUMM [all games]
    Access
    ADL
    AGI
    AGOS [all games]
    Adventure Game Studio
    Sanitarium
    Lord Avalot d'Argent
    Beavis and Butthead in Virtual Stupidity
    Blade Runner
    The Journeyman Project 2: Buried in Time
    CGE
    CGE2
    Chamber
    Chewy: Esc from F5
    Cinematique evo 1
    Magic Composer
    Crab
    Cinematique evo 2
    Lost Eden
    Cryo Omni3D games [all games]
    Macromedia Director
    Dungeon Master
    Dragon History
    Blazing Dragons
    Drascula: The Vampire Strikes Back
    Dreamweb
    Escape From Hell
    Freescape
    Glk Interactive Fiction games
    UFOs
    Gobli*ns
    The Griffon Legend
    Grim [all games]
    Groovie [all games]
    Hades Challenge
    Hyperspace Delivery Boy!
    Hopkins FBI
    Hugo Trilogy
    Hypnotix Inc.
    In Cold Blood
    Illusions Engine
    The Immortal
    Kingdom: The Far Reaches
    Kyra [all games]
    Labyrinth of Time
    The Last Express
    Lilliput
    Lure of the Temptress
    MacVenture
    MADE
    MADS [all games]
    Might and Magic [all games]
    Mohawk [all games]
    Mortevielle
    mTropolis
    Mutation of JB
    Myst 3
    Nancy Drew
    Neverhood
    Nikita Game Interface
    Parallaction
    The Journeyman Project: Pegasus Prime
    Red Comrades
    Pink Panther
    Playground 3d: the testing and playground environment for 3d renderers
    Plumbers Don't Wear Ties
    The Prince and The Coward
    Private Eye
    Flight of the Amazon Queen
    SAGA [all games]
    SAGA2
    SCI [all games]
    The Lost Files of Sherlock Holmes
    Beneath a Steel Sky
    Sludge
    The Longest Journey
    Star Trek 25th Anniversary/Judgment Rites
    Mission Supernova
    Broken Sword
    Broken Sword II
    Broken Sword 2.5
    Teen Agent
    TestBed: the Testing framework
    Tinsel
    Starship Titanic
    3 Skulls of the Toltecs
    Tony Tough and the Night of Roasted Moths
    Toonstruck
    Touche: The Adventures of the Fifth Musketeer
    Trecision Adventure Module
    TsAGE
    Bud Tucker in Double Trouble
    Little Big Adventure
    Ultima [all games]
    V-Cruise
    Voyeur
    WAGE
    Wintermute [all games]
    Z-Vision

Engines Skipped:
    Hpl1
    Tetraedge
    The Watchmaker

WARNING: This ScummVM build contains the following UNSTABLE engines:
    Lord Avalot d'Argent
    Chamber
    Crab
    Lost Eden
    Dungeon Master
    Grim [Escape from Monkey Island]
    In Cold Blood
    The Immortal
    The Last Express
    Lilliput
    MacVenture
    MADS [MADS V2]
    Might and Magic
    Mohawk [Where in Time is Carmen Sandiego?]
    Mutation of JB
    Playground 3d: the testing and playground environment for 3d renderers
    Sludge
    Star Trek 25th Anniversary/Judgment Rites
    TestBed: the Testing framework
    Ultima [Ultima I - The First Age of Darkness]
    WAGE
    Wintermute [Wintermute3D]

Creating engines/engines.mk
Creating engines/detection_table.h
Creating engines/plugins_table.h
Creating config.h
Creating config.mk

```
</details>
## Needs to be merged after Mainui sig handling #1193 as it uses -2, and
#1299 unless rebased after this merges (as the NUM_TOOLS needs to be
updated)

- Tested on MM+ FW 0628, MM 1027, MM 0611
- Tested with Sandisk Ultra cards

## Adds a tool to sort the Apps list A-Z or Z-A based on their
config.json LABEL.

- Will add 2 tools to the Tweaks -> Tools menu
…be profile-specific. (#1270)

The current theme is stored in 
/mnt/SDCARD/Saves/CurrentProfile/theme/currentTheme
## Changes

- Added detection of rom presence for each emulator
- Added a cartridge icon to emulators with roms present
- Added a 3rd state to the X toggle (none, auto, all)
- When making a fresh install, users will have emulators with roms
selected by default
- Changed the "changed" indicator to a dot on the left of the items
(instead of an asterisk behind the name)

## Preview


![PackageManager_000](https://github.com/OnionUI/Onion/assets/44569252/016892e0-2547-42bb-bf2f-74d385e5ab01)

---------

Co-authored-by: XK <47260768+XK9274@users.noreply.github.com>
China or some country can not use google. can not ping google for
checking network. Just use worldtimeapi.org is OK.
# Fix from user [edmunek](https://github.com/edmunek)
## Updating the binary for filebrowser to version 2.26 from version
2.23.

Release information available here:
https://github.com/filebrowser/filebrowser/releases/tag/v2.26.0
Addressed by upstream:
filebrowser/filebrowser#2582
Addresses local: #1306

## Testing process

Copy the new filebrowser binary into `/mnt/SDCARD/.tmp_update/bin` and
restart the MMP or restart Filebrowser through tweaks.

If filebrowser is running you will need to stop it first which can be
done by turning it off in tweaks -> network

Co-authored-by: edmunek <10533120+edmunek@users.noreply.github.com>
## Overview
| Menu | Options |
|---------|---------|
| <img
src="https://github.com/OnionUI/Onion/assets/47260768/7e7862c9-7a49-4194-987e-df73427c046d"
width="100%"> | <img
src="https://github.com/OnionUI/Onion/assets/47260768/8571065d-9900-490e-8941-6c7c12eb38c2"
width="100%"> |

## Features

- Blue light function to change the colortemp of the screen
- Fades in/out 
- Time scheduling
- Selection of strengths/presets

## Adds 

Menu item to Tweaks -> Appearance -> Blue light filter
cmdline control over BLF through tweaks but should be used with the
`blue_light.sh` script rather than direct control.

blue_light.sh accepts the following:
```Usage: $0 {enable|disable|check}```

script guards against running too often with:
```/tmp/blue_light_script.lock```

script will quickly complete depending on the action, will not enable
BLF if it's already enabled, etc

## Considerations

- Added to 15 second loop area of keymon, there will be +/- 15 seconds
after making a change to the time profiles before it actually changes.
- Changes will be live immediately after the time is changed (even if
you're still in tweaks)
- 

## Options

Colour will gradually change, has 5 preset options:

- Subtle
- Moderate
- Balanced
- Strong
- Intense

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
Adds the option to control the backlights PWM frequency.

This can improve the constant buzzing of the device by making it a less
annoying frequency.
From my testing, at 200 Hz the buzzing is much less noticeable and there
does not seem to be a negative impact on the image quality. At 100 Hz
the flicker might be visible to sensitive eyes.

I would have preferred to go above the audible hearing range, but
everything above 1000 Hz makes the brightness control unstable/unusable.

MainUI has been patched to not set the PWM value every time it is
launched.

---------

Co-authored-by: tGecko <tGecko@users.noreply.github.com>
Co-authored-by: Schmurtz <Schmurtz@gmail.com>
Co-authored-by: schmurtzm <schmurtzm@users.noreply.github.com>
Video demonstration with pauses can be found at this link:
https://www.youtube.com/watch?v=LN0TsBMzrZU.

This tool enables to track and monitor historical battery charge while
also providing an estimate of the remaining gaming time.

Key points to note:
- It remains device-independent, even if you switch SD cards to another
device. It also continue to monitor if the user switch profile.
- The log database only adds/update a new entry only when a significant
battery increment is detected. It employs a "duration" integer to record
the time spent in a specific battery state. It performs a final update
upon detecting a SIGTERM or a change in the charging state.
- The log database follows a FILO (First-In, Last-Out) management
strategy to limit its size.
- It has been tested to ensure there are no memory leaks.

Limitations:
- Due to the battery-friendly nature of batmon, there may be up to a
5-minute delay in the graph compared to the real battery state. It is
not really noticeable.

Important considerations:
- The blueprint background is likely under a license.
- A full distro compilation is yet to be done is order to check if the
automatic compilation/placement is done right.

Ideas for future enhancements:
- Batmon could now easily detect the number of battery cycles.
- By adding the removed elements values by the FILO logic, batmon could
also record the total device runtime.
- Including the rom_id in the database could enable tracking and
comparing core consumption, resulting also in a cool graph.
- The graph engine could be modified to display a straight or curved
line instead of stairs. The code already contains a working line drawing
function for this purpose. Additionally, a fully transparent background
could enhance the graph, although it may slow down rendering.

Testing files available:
- For viewing the same graph as shown in the video (recommended for
immediate UI testing):

[View_test.zip](https://github.com/OnionUI/Onion/files/12576311/View_test.zip)
Usage: Copy the contents of the zip file to the SD card and place the
deviceSN file in the /tmp/ folder just before launching the app.

- Fully functional feature:

[Fully_functional_test.zip](https://github.com/OnionUI/Onion/files/12576312/Fully_functional_test.zip)
Usage: Copy these files to your SD card. Please note that there won't be
any graph to view yet, be patient :)

In the .h files, several parameters can be adjusted, such as:
- The threshold to trigger an update.
- The maximum size of the FILO list.
- The maximum duration before an update (not typically used but may be
relevant if the device stays at 0% before shutting down for a long
time).
  
In the battery monitor UI app, here are the parameters worth mentioning
:
- GRAPH_LINE_WIDTH: Set the line width for the graph.
- GRAPH_BACKGROUND_OPACITY: Adjust the opacity of the graph background.
- GRAPH_MAX_FULL_PAGES: Specify the size of the canvas.
- GRAPH_DISPLAY_DURATION: Define the duration of the visible graph area.
- GRAPH_PAGE_SCROLL_SMOOTHNESS: Control the page increments during graph
scrolling.
- GRAPH_MIN_SESSION_FOR_ESTIMATION: Specify the minimum duration of
unplugged sessions required for initial estimations (20 minutes).
- GRAPH_MAX_PLAUSIBLE_ESTIMATION: Set the maximum plausible estimation
duration.

---------

Co-authored-by: Sichroteph <Sichroteph@users.noreply.github.com>
Co-authored-by: tGecko <tGecko@proton.me>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
MainUI patched to react to SIGTERM signal.

A sighandler to break out of the main loop was incorrectly implemented,
set up to act on SIGKILL (9) which is not possible, as SIGKILL will
always kill and leave the process no time to react.


![image](https://github.com/OnionUI/Onion/assets/6023076/8934189a-fe33-4dd6-97fc-25fd4c0e5b3a)

The sighandler simply sets a value which is checked early in the main
`while(true)` loop

This allows us to shut down MainUI gracefully by sending SIGTERM instead
of SIGKILL which can cause all sorts of troubles, notably black screens.

This _includes_ the patches from #1179 and thus should be merged after
#1179

---------

Co-authored-by: Schmurtz <Schmurtz@gmail.com>
# Adds a keyboard wrapper library

We're now at the point where we need some level of graphical keyboard
within our own bins (for example, tweaks for tGeckos new menus for
about/wifi).

This PR will include the library for allow this, built from Aemii's C++
search filter source (Which means it's separate, PR for that repo to
follow).

The keyboard has to be a library as it's C++ but the wrapper works well,
it's fast and it returns the value cleanly, returning you back to the
tweaks menu stack once complete.

As part of this it also releases the A button in Tweaks event loop, if
you do not release this it stays pressed. When you return out of the
wrapper the button is still pressed, take this into account in your
event loops.

# How to use it in your feature (If it's in tweaks):

1. `#include "components/kbinput_wrapper.h"`
2. Call the wrapper function from `actions.h` that will return the
keyboards output, eg:

```c
const char* action_LaunchKeyboardWrapper(const char *initial_value, const char *title) {
    const char* result = launch_keyboard(initial_value, title);
    all_changed = true;
    return result;
}
```

3. On your menu item you'll need a void function so create a function to
call the wrapper:

```c
void getInputFromKeyboard() {
    const char *initial_value = "Enter here";  // The default entry in the textbox
    const char *title = "WiFi Key"; // The default title of the window
    const char* result = action_LaunchKeyboardWrapper(initial_value, title); // Call the keyboard 
    printf("RESULT = %s\n", result); //Set result to your variable or whatever
    free((void*)result); // Free the result whenever (but don't forget)
}
```

4. Call it at your chosen location, for example on a tweaks menu stack
item:

```c
 list_addItem(&_menu_main,
                     (ListItem){
                         .label = "Keyboard",
                         .description = "noice",
                         .action = getInputFromKeyboard,
                         .icon_ptr = _get_menu_icon("tweaks_tools")
                     });
```

# How to use it in your feature (If it's not in tweaks):

1. Link the library in your makefile:

![image](https://github.com/OnionUI/Onion/assets/47260768/2763c72f-78f8-4da3-9cad-26daa5d146da)
2. Steps 1 -> 3 above but define your own functions. When calling the
keyboard, the function is:

![image](https://github.com/OnionUI/Onion/assets/47260768/6bfb4f01-be74-444c-ba0b-29bc129c458b)

# Example of keyboard called from menu item and output printed to
terminal:


![image](https://github.com/OnionUI/Onion/assets/47260768/2890ee6d-6e7d-4efb-a0d2-f2d57c389374)

![image](https://github.com/OnionUI/Onion/assets/47260768/bd39c7c1-4dff-446a-a5a5-2954cbf3e2e7)


https://github.com/OnionUI/Onion/assets/47260768/d6f44e12-0fe8-49c0-a9b1-dae19629d6b2

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
### Integration of Drastic:
   
_- The Game Switcher and Keymon now utilize Miyoo's recentlist.json
instead of Retroarch's content_history.lpl._
_- The system converts the old Game Switcher list to the new one._
_- Keymon has been modified to account for Drastic._
_- Scraper now supports NDS games._
   
   
**Game Switcher:**
   
- Retroarch games and those launched from the Emu folder (Type = 5) are
displayed.
- The old logic involved parsing the Retroarch game path + core and
reconstructing cmd_to_run.sh. The new logic calls the appropriate
launch.sh for each console.
- The code adapts to recentlist.json or recentlist-hidden.json, whether
the user chooses to hide the recent panel or not.
- The code rearranges the recentlist itself when launching a game from
the list, a task previously handled by Retroarch.
- Since the new list can contain apps, not just games, a new integer is
assigned to the game structure to track the corresponding line number in
the list.
   
   
**Migration:**
   
- A file named "listMigration.h" is generated to restore the Game
Switcher game list to its previous state. This function parses the
Retroarch list to reconstruct the correct commands in the Miyoo recent
list.
- This file operates independently, facilitating easy removal after some
time.
- It was chosen to fully respect the mainUI logic, even by called the
absolute paths like this :
"/mnt/SDCARD/Emu/GB/../../Roms/GB/Metroid 2 - Return of Samus.gb"
- The migration function also renames old screenshots to adhere to the
new hashes.
- After migration, a flag file is created in
/mnt/SDCARD/Saves/CurrentProfile/config/.recentListMigrated, ensuring
the process occurs only once per profile.
   
   
**Keymon :** 
   
A DRASTIC profile is added, configuring the menu button actions and the
proper termination method.
(A button combo is chosen to end Drastic, as SIGTERM was corrupting the
savestates.)
   
   
**Runtime :** 
   
The audioserver is initiated, if needed, before launching the Game
Switcher in case the user is coming from a standalone incompatible with.
It now allow to boot on standalones.
   
   
**Possibilities :**
   
Before, games launched by the Game Switcher did not adhere to the
specifics outlined in launch.sh. It is possible to adjust the CPU
frequency for each Retroarch console, with a suggestion to lower it for
Gameboy games to increase gameplay time significantly.
   

![GameSwitcher_003](https://github.com/OnionUI/Onion/assets/16885275/1214f247-9df2-4154-8719-f44e031d99b6)

---------

Co-authored-by: Schmurtz <Schmurtz@gmail.com>
Co-authored-by: Aemiii91 <44569252+Aemiii91@users.noreply.github.com>
Co-authored-by: Sichroteph <Sichroteph@users.noreply.github.com>
Co-authored-by: schmurtzm <schmurtzm@users.noreply.github.com>
Supports savestates screenshots
Supports background images customization on both DraStic and customized menu.
Target 4.3

## Adds VNC server

- Will add a VNC server menu option to tweaks. 
- Submenu with FPS control, modifying FPS will disable the VNC server
(it has to be restarted to set the new FPS)
- Simple on/off functionality
- Could benefit from overclocking, is quite sluggish without - recommend
FPS at 15-20
- Default (can't be changed with this build) port is 5900.

<table>
    <tr>
        <td>
<img
src="https://github.com/OnionUI/Onion/assets/47260768/7e0a96ad-45f3-4e91-8386-8fe83f91bc1c"
alt="MENU">
        </td>
        <td>
<img
src="https://github.com/OnionUI/Onion/assets/47260768/9da53d74-f9bd-4982-952d-d1315dfd90f7"
alt="FPS">
        </td>
    </tr>
    <tr>
        <td colspan="2">
<img
src="https://github.com/OnionUI/Onion/assets/47260768/dce6abba-3c8c-4968-ad26-77159643bedb"
alt="REALVNC">
        </td>
    </tr>
</table>

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: tGecko <tGecko@proton.me>
Target 4.3 [#1165]

## Adds screen record ability for demoing apps/content/features/bugs

### Not really suitable for games in current build as it's CPU encoding.
There is a mi_venc module that I'm currently unable to work out.

- Will add a screen recorder tool to the Tweaks -> Tools -> Screen
recorder control
- Submenu with the following options:
- Toggle indicator icon - Flashes/shows an icon (depending on which app
you're in) to remind you you're recording
- Toggle countdown pulse - Pulses the screen white 3 times as a count in
to starting recording (3 - 2 - 1 - go), also does the same when stopping
to signify it's stopped.
- Toggle hotkey - Enables or disables the hotkey to start/stop recording
(Hold MENU+A for 2 seconds)
- Reset screen recorder - Hardkills ffmpeg, removes all flags and stops
any recording
- Delete all recordings - Probably not needed, but it's a quick way to
delete all recordings in the directory
- Could benefit from overclocking
- Stripped/basic version of ffmpeg with "just enough" (but has neon
support) compiled in for this function. I can recompile with more as and
when required.

<table>
    <tr>
        <td>
<img
src="https://github.com/OnionUI/Onion/assets/47260768/57818b25-ed58-4ce2-bc3f-e170b3508ee3"
alt="MENU">
        </td>
        <td>
<img
src="https://github.com/OnionUI/Onion/assets/47260768/ecbad100-1b0d-4f23-b837-5e2cd8da3010"
alt="MENU">
        </td>
    </tr>
    <tr>
        <td colspan="2" align="center">
            <br>
<a
href="https://github.com/OnionUI/Onion/assets/47260768/af670b76-8abc-4eb8-a166-ad9d94d8b4a9">VIDEO
LINK</a>
        </td>
    </tr>
</table>

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: Schmurtz <Schmurtz@gmail.com>
Co-authored-by: schmurtzm <schmurtzm@users.noreply.github.com>
Hungarian language files

Co-authored-by: Schmurtz <schmurtz@gmail.com>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
Sichroteph and others added 16 commits December 15, 2023 11:52
- Track and delete duplicates from the recentlist
- toggle is now a toggle menu icon
- menu item for toggle and intensity are disabled while script is
working to keep the sync (lock file in tmp)
- intensity now changes in realtime & smooth fade
- add hotkey of Menu + B for 2 seconds to enable BLF
- some UI/fading improvements
- tidy up
- persistent across boots if manually enabled in tweaks via "Toggle now"
- Ignore the schedule for the current session if a manual toggle is done
with the hotkey (saves going into tweaks when it's bouncing) The logic
behind this is:
- If the user disables the BLF for some reason while schedule is enabled
we'll skip the schedule for this session, the user can remove this flag
(/tmp/.blfIgnoreSchedule) by flipping the schedule on/off.

- I chose this method of wiping the schedule flag so if the user takes
no action, when they restart the schedule is still on for the next
session.

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
**Add DuckStation Xtreme Amped - Retroarch Core**

Slower than PCSX Rearmed but an interesting alternative.
A core from KMFD.

**Add GnGeo - standalone emulator (Credits: bankbank)**

The GnGeo is an AES/MVS Neo Geo emulator (without NG-CD support) based
of MAME ROMsets.
This emulator natively supported GNO files.
The reason why this release of gngeo is useful is because of loading
times. Tested a few big games like kof2000 and found that it took just a
few seconds instead of 45 seconds. The framerate is also very good

Modifications :
- Created an dedicated icon for Expert section
- Moved saves states to "/mnt/SDCARD/Saves/CurrentProfile/states/.gngeo"
- Bios folder in command line to "/mnt/SDCARD/BIOS"

Interesting information about GnGeo here (with compatibility list) :
TriForceX/MiyooCFW#369

**Add superbroswar core (credits KMFD)**

Source : https://github.com/libretro/superbroswar-libretro
Official website (with many maps and skins) : http://smwstuff.net/

Will be probably added as a port due to the requirement of free assets.
 
 **Add LowRes NX in PacMan Expert section - Retroarch Core**

LowRes NX is a virtual Game Console : "Program retro games in BASIC!"
(Game Engine like Pico8)
"Imagine LowRes NX as a handheld game console with a d-pad, two action
buttons and a little rubber keyboard below a slidable touchscreen.
LowRes NX was inspired by real 8- and 16-bit systems and simulates chips
for graphics, sound and I/O, which actually work like classic hardware.
It supports hardware sprites as well as hardware parallax scrolling, and
even offers vertical blank and raster interrupts to create authentic
retro effects."

Game list : https://lowresnx.inutilis.com/programs.php?category=release

**Add PuzzleScript core (71f0346) - Retroarch Core**

Add PuzzleScript core in RA, + adding it in Package Manager with new
icon.
PuzzleScript is an open-source HTML5 puzzle game engine. All games are
free an open source.

Game lists :
 - https://www.puzzlescript.net/Gallery/index.html
 - https://philschatz.com/puzzlescript/

Repo and instructions to download games :
https://github.com/nwhitehead/pzretro


 **Add PUAE Xtreme Amped - Retroarch Core**

A core from KMFD, alternative to our current PUAE 2021, could be helpful
for demanding games (require testers)
It supports frameskip (You can use frameskip with AMPED, but not Xtreme)
AGA games are pretty much playable with it.
25 fps limit forced on this core.

**Updating CrocoDS (CPC) to f1b4b91 (+keyboard fix) - Retroarch Core**

The core has two modifications for Onion :
- [Fix keyboard to
QWERTY](libretro/libretro-crocods#18)
- [Change default internal config path to BIOS folder instead of
Retroarch
folder.](https://github.com/libretro/libretro-crocods/blob/f1b4b91291ba1e8e7c0be02269cd0d75c7fa71b9/crocods-core/platform.c#L1399)


**Add Caprice32 (CPC) - Retroarch Core**

Caprice32 is probably better than the current default CrocoDS for CPC
games (require testers)
A remap file allows to use the keypad to display the virtual keyboard
(Select + Start)

 **Add Gong to the Onion default Ports pack - Retroarch Core**

Gong is a Pong port, this Retroarch core doesn't requires any additional
asset like Bomberman (mr.boom) and 2048.


 **Add Frodo (C64) to Expert Section - Retroarch Core**

Frodo is an alternative core for Commodore 64.

 **Add Beetle PCE core in PacMan**

"Beetle PCE" slower than "Beetle PCE Fast" but more accurate, full speed
at 1900mhz, so more reserved to MMP.

 **Fix vice x64 loading time**

The default core config wasn't good anymore : from xtreme vice x64 to
vice x64 (standard version).
So our vice x64didn't have default configuration anymore -> long loading
time.

 **Update chailove core (69000df)**

Chailove is a Löve game engine emulator, however the compatibility is
concerns to a short list of Löve games :
https://buildbot.libretro.com/assets/cores/ChaiLove/

 **Update Lutro core (09a134e)**

Lutro is a Löve game engine emulator, however the compatibility is
concerning to a short list of Löve games :
https://buildbot.libretro.com/assets/cores/Lutro/

This update fix the compatibility with Tetris.

1600mhz cpu clock applied (still not full speed however)
# PICO-8 Wrapper for Miyoo Mini/Miyoo Mini Plus

Adding the Native PICO-8 wrapper to Expert, most integration has been
done by @schmurtzm

With this addition the keybinds will change (for Onion only):

- Menu = quit (previously select+menu)

## You still need the correct pico8_dyn and pico8.dat files otherwise
you'll receive a warning

- These will need to be added to: `/mnt/SDCARD/RApp/PICO-8/bin`
- Any saves and config will go to:
`/mnt/SDCARD/Saves/CurrentProfile/saves/PICO-8`
- Carts will follow the default Onion path:`/mnt/SDCARD/Roms/PICO`
- Splore carts will be stored in `/mnt/SDCARD/Roms/PICO/splore`

There are config changes in this version that differ to the standalone
release, don't re-use files from standalone in place of this version
(carts of course are fine) - don't copy over your SDL libraries or
config.txt

**_Considerations:_**
This version currently does not have GS or save state support.
Only MMP will get full bbs support due to the requirement for internet
access

---


More information and history available here:
https://github.com/XK9274/pico-8-wrapper-miyoo

<a name=""></a>
##

<a name=""></a>
##

| Full screen | Aspect scaled | Integer scaled |
|:-----------:|:-------------:|:--------------:|
| ![Full
screen](https://github.com/XK9274/pico-8-wrapper-miyoo/assets/47260768/32566649-9008-43e8-8cd5-9d2a587fe493)
| ![Aspect
scaled](https://github.com/XK9274/pico-8-wrapper-miyoo/assets/47260768/c3434d9e-0ed2-4716-8fc8-655c53390bd6)
| ![Integer
scaled](https://github.com/XK9274/pico-8-wrapper-miyoo/assets/47260768/b9679f53-7ff0-4a39-83ca-18aff5abd0b5)
|

---------

Co-authored-by: Schmurtz <Schmurtz@gmail.com>
I've been using the translation that's currently in the main branch for
a little bit and noticed some small typos and inconsistencies that I
have corrected. I also made the change of renaming the FC and SFC
systems to NES and SNES as these are the names the systems were released
under in Norway but I'm not married to that particular change.

Co-authored-by: Schmurtz <schmurtz@gmail.com>
As the discussion in #1273 I use FontForge to add Thai glyphs.

Steps:
- Exo-2-Bold-Italic_Universal.ttf
1. Adjust style for Thai font (Noto Sans Thai - Bold) to Bold Italic
(Italic Angle = -8)
  2. Merge the Thai font into Exo-2-Bold-Italic_Universal
  3. Done!
- wqy-microhei.ttc
  1. Make entire original glyphs in wqy-microhei.ttc as bold.
  2. Set Thai font (Noto Sans Thai - Bold) Em Size from 1000 to 2048
3. Merge scaled Thai font into WenQuanYiMicroHei and
WenQuanYiMicroHeiMono
  4. Set "weight class" and "style map" as Bold
5. Generate TCC font by disabling "Merge tables across fonts", which
requires the space about 9-10 MB
  6. Done!

Co-authored-by: Schmurtz <schmurtz@gmail.com>
All the save states and saves are moved to Saves/CurrentProfile/states/Drastic.
Background theme added for menu.
Manage the copy of saves and save states of previous Drastic builds to "/mnt/SDCARD/Saves/CurrentProfile/states/Drastic"
This is for the 5 people who are crazy and/or skilled enough to do the
RTC mod.

Normally, Onion saves the system time at shutdown and restores it on
bootup. This disables the restore part.

Since it would be a useless/confusing option for 99.9% of users it has
to be enabled by manually creating the file
`SD:/.tmp_update/config/.noTimeRestore`

Motivated to finally include this by #1334
This commit adds the ability to mute music, independently of the volume
set. This is done so users can mute bgm while still having menuing
sounds play.

The toggle will live in tweaks, in "Appearance --> Theme Overrides...
--> Mute background music"


![Tweaks_000](https://github.com/OnionUI/Onion/assets/63260253/8db4eba8-52ae-4a81-9a52-56bf85305fbf)

---------

Co-authored-by: patrickhurtado <patrick@pop-os.localdomain>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
Support for 752x560 resolution.

On startup, runtime checks the physical screen resolution and stores it
to `/tmp/screen_resolution`
If the firmware is 202310271401 and the physical resolution is 752x560,
it also creates the flag `/tmp/new_res_available`

If this flag is set on game launch, the resolution is changed and keymon
and batmon are informed of this via signal so they can update their
stored resolutions.

Keymon was updated to respect the render resolution when drawing the
brightness bar, batmon was updated to respect the render resolution when
drawing the "battery empty" icon.

TODO:

- [x] implement either a blacklist for anything hardcoded to 640x480 or
a whitelist for anything that supports 752x560?
    so far only drastic is added as exception.

- [x] testing, finding edge cases, other resolution dependent things?
- [ ] overlays

---------

Co-authored-by: Schmurtz <schmurtz@gmail.com>
Co-authored-by: schmurtzm <schmurtzm@users.noreply.github.com>
If you get segfaults with this PR, run this in terminal before (The max
value is no longer 5):

```rm -rf /mnt/SDCARD/.tmp_update/config/display/blueLightLevel```

- Remove "None" - it's redundant and causes issues
- Fix menu lockup when scrolling, check if BLF is actually on before setting "blf_changing = true;" to negate needlessly locking the menu items. The artificial lockup on menu items is only needed when BLF is actually changing to avoid race conditions and pulling the display settings out of sync (causes flickering/bad previous state of RGB values, etc)

Fixes: ddc9a9a#commitcomment-135316788

This is only a fix for when in the tweaks menu. The artificial delay is required. Setting display values into the screen gives no easy way to read them besides saving to file (this feature runs inside and outside tweaks so it's a settings value that's bitshifted). 

Ideally this feature should run on a command queue/buffer and be processed as they come in so we don't have to try and keep sync...

It would also be great to get a "spinner" as discussed in discord, for when we don't need a full dialog, but need to show the user that something is happening in the background.. Something to look at in tweaks for the future i think.

---------

Co-authored-by: XK9274 <XK9274@users.noreply.github.com>
Co-authored-by: Schmurtz <schmurtz@gmail.com>
if some save states were present, we keep the existing bios for compatibility
@UzuCore UzuCore merged commit e47afc6 into UzuCore:dev Dec 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.