Giter Site home page Giter Site logo

funkey-project / funkey-os Goto Github PK

View Code? Open in Web Editor NEW
208.0 208.0 57.0 55.56 MB

Buildroot-based embedded Linux OS for the FunKey S retro-gaming console

Home Page: https://www.funkey-project.com/

License: GNU General Public License v2.0

Makefile 22.22% Shell 76.11% Dockerfile 1.68%
buildroot buildroot-external-tree console embedded kernel linux

funkey-os's People

Contributors

michel-fk avatar squonk42 avatar vbus0 avatar vincent-fk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

funkey-os's Issues

[Enhancement] Button mappings should not follow the physical layout of different consoles (at least not by default)

It can get very confusing (especially for people new to emulation, or for people that never played these systems before) when in one game the A button is the A button and it's the B button in another one, etc.

I can think of few solutions:

  • Provide 2 different mappings (one that follows the physical layout of the emulated console and other that follows FunKey's layout) that can be selected from the global menu
  • Show a prompt when launching a game for the first time that shows that the buttons are mapped differently (this should be accessible from the menu too so that it can be viewed again)
  • Provide a simple re-maper

Error build all

hi,

OS : WSL - Ubuntu 20.04

error during build :

2021-07-09T12:38:07 /usr/bin/install -c ncurses-config /mnt/e/FunKey-S/FunKey-OS/SDK/output/target/usr/bin/ncurses6-config
2021-07-09T12:38:07 installing ncurses.pc
2021-07-09T12:38:07 installing ncurses.pc
2021-07-09T12:38:07 installing panel.pc
2021-07-09T12:38:07 installing menu.pc
2021-07-09T12:38:07 installing form.pc
2021-07-09T12:38:07 make[4]: warning: Clock skew detected. Your build may be incomplete.
2021-07-09T12:38:07 rm -f -rf /mnt/e/FunKey-S/FunKey-OS/SDK/output/target/usr/share/terminfo /mnt/e/FunKey-S/FunKey-OS/SDK/output/target/usr/share/tabset
2021-07-09T12:38:10 /usr/bin/install -D -m 0644 /mnt/e/FunKey-S/FunKey-OS/SDK/output/host/arm-funkey-linux-musleabihf/sysroot/usr/share/terminfo/a/ansi /mnt/e/FunKey-S/FunKey-OS/SDK/output/target/usr/share/terminfo/a/ansi
2021-07-09T12:38:10 /usr/bin/install: cannot stat '/mnt/e/FunKey-S/FunKey-OS/SDK/output/host/arm-funkey-linux-musleabihf/sysroot/usr/share/terminfo/a/ansi': No such file or directory
2021-07-09T12:38:10 make[2]: *** [package/pkg-generic.mk:345: /mnt/e/FunKey-S/FunKey-OS/SDK/output/build/ncurses-6.1/.stamp_target_installed] Error 1
2021-07-09T12:38:10 make[1]: *** [Makefile:84: _all] Error 2
2021-07-09T12:38:10 make[1]: Leaving directory '/mnt/e/FunKey-S/FunKey-OS/buildroot'

do you have an idea ?

thanks
br.log

[Keymap] Instant Play restores default key mapping

Instant Play restores default key mapping after closing and opening the console lid, custom key mapping is not saved.

Steps to reproduce the behavior:

  1. Launch a rom with a custom key mapping (.key file)
  2. Close your console lid
  3. Open it again
  4. Notice that the default key mapping has been restored

Expected behavior
Instant Play feature should load back the custom key mapping.

/home/book/FunKey-OS/FunKey/output/build/host-ninja-1.10.2/src/browse.cc:23:10: fatal error: build/browse_py.h: No such file or directory

Hi, I tried to refer to the README tutorial on the ubuntu 18.04 host and did all the SDKs to compile the entire system, but compiling to the host Ninja prompts an error.

2021-11-29T11:00:26 >>>   Generating filesystem image rootfs.ext2
Done in 15s
2021-11-29T11:00:12 ### Making fun in FunKey
2021-11-29T11:00:36 >>> host-ninja 1.10.2 Building
Done in 9s  (error code: 2)
Makefile:54: recipe for target 'fun' failed
make: *** [fun] Error 2

View br.log prompts the following information

2021-11-29T10:54:19 /usr/bin/make -f CMakeFiles/ninja.dir/build.make CMakeFiles/ninja.dir/build
2021-11-29T10:54:19 [ 89%] Building CXX object CMakeFiles/ninja.dir/src/browse.cc.o
2021-11-29T10:54:19 /home/book/FunKey-OS/FunKey/output/host/bin/ccache /usr/bin/g++  -DNINJA_HAVE_BROWSE -DNINJA_PYTHON="python"  -O2 -I/home/book/FunKey-OS/FunKey/output/host/include -Wno-deprecated -fdiagnostics-color   -o CMakeFiles/ninja.dir/src/browse.cc.o -c /home/book/FunKey-OS/FunKey/output/build/host-ninja-1.10.2/src/browse.cc
2021-11-29T10:54:19 /home/book/FunKey-OS/FunKey/output/build/host-ninja-1.10.2/src/browse.cc:23:10: fatal error: build/browse_py.h: No such file or directory
2021-11-29T10:54:19 #include "build/browse_py.h"
2021-11-29T10:54:19 ^~~~~~~~~~~~~~~~~~~
2021-11-29T10:54:19 compilation terminated.
2021-11-29T10:54:19 CMakeFiles/ninja.dir/build.make:93: recipe for target 'CMakeFiles/ninja.dir/src/browse.cc.o' failed
2021-11-29T10:54:19 make[5]: *** [CMakeFiles/ninja.dir/src/browse.cc.o] Error 1
2021-11-29T10:54:19 CMakeFiles/Makefile2:142: recipe for target 'CMakeFiles/ninja.dir/all' failed
2021-11-29T10:54:19 make[4]: *** [CMakeFiles/ninja.dir/all] Error 2
2021-11-29T10:54:19 Makefile:129: recipe for target 'all' failed
2021-11-29T10:54:19 make[3]: *** [all] Error 2
2021-11-29T10:54:19 package/pkg-generic.mk:247: recipe for target '/home/book/FunKey-OS/FunKey/output/build/host-ninja-1.10.2/.stamp_built' failed
2021-11-29T10:54:19 make[2]: *** [/home/book/FunKey-OS/FunKey/output/build/host-ninja-1.10.2/.stamp_built] Error 2
2021-11-29T10:54:19 Makefile:84: recipe for target '_all' failed
2021-11-29T10:54:19 make[1]: *** [_all] Error 2

2021-11-29T10:54:19 make[1]: Leaving directory '/home/book/FunKey-OS/buildroot'

[Regression][Factory Tests] Sound sample is inaudible during the sound test

Sound cannot be heard in Factory Tests (Fn+START when booting the console).
I first thought it was because there were still some occurrences of "start_audio_amp 0" and "start_audio_amp 1" in "/usr/local/sbin/volume_set" and "/usr/local/sbin/volume_set_alsa". But replacing them with "audio_amp on" and "audio_amp off" did not solve the issue (but I wanted to make sure you knew that some left).
This bug does not occur with OS 2.2.0 but only with a custom one built from ffa35c0 ("develop" branch).

Steps to reproduce the behavior:

  1. Build an OS from ffa35c0 commit ("develop" branch)
  2. Boot the console while pressing Fn+START
  3. Launch the Factory Tests
  4. Notice that you cannot hear any sound during the sound test (even at high volume)

Expected behavior
Sound should be audible during the Factory sound test.

[Keymap] UNMAP command does not work properly for key combination

UNMAP command does not work properly for key combination. Indeed, when trying a "UNMAP FN+L+R" it actually unbinds FN+L+R combination but also all those keys pressed separately.

Steps to reproduce the behavior:

  1. Launch a rom with a custom key mapping (.key file) with "UNMAP FN+L+R" for instance
  2. Notice that now all those 3 keys do not work even when pressed separately

Expected behavior:
"UNMAP FN+L+R" command should only block this key combination, not all those 3 keys pressed separately.

SYS READ-ONLY is not restored by poweroff script

A very important issue occurs when powering off the system after enabling "SYS READ-WRITE" with Commander. It seems that SYS READ-ONLY is not restored when turning off the system with /sbin/poweroff (as discussed with Vincent on Discord).

Steps to reproduce:

  1. Open Commander under GMenu2X
  2. Press Menu button and choose "SYS READ-WRITE"
  3. Turn OFF the system with Menu button (keep it pressed)
  4. Turn the system ON again and try to launch any OPK
  5. Notice that it sends you back to GMenu2X
  6. Open the GMenu2X output log and read "Unable to mount OPK: No such file or directory"

Workaround:
To avoid this bug, you have to restore "SYS READ-ONLY" in Commander before powering off the system.
Once the bug occurs, the only way to fix it is to enter recovery mode (Fn+START on boot), mount the usb device (as that's not possible anymore from GMenu2X), drag and drop the firmware and update it again.

Device not powering up, not charging, and getting hot when plugged into usb

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Pico 8 Support

Is your feature request related to a problem? Please describe.
I've noticed there is support for the FunKey S to play Pico-8 games from William Belanger. However, there doesn't seem to be support in your cfw.

Describe the solution you'd like
An update or OPK for the Pico-8 to be played on the FunKey S with your cfw.

Describe alternatives you've considered
I've attempted to use the GCW .opk Pico-8, but the system doesn't recognize it, even when there are games in it (I added a new folder like rgnano-p8 described). I noticed the structure between the FunKey and your CFW is different so I'm not sure I put it in the right place.

USB Transfers Hang Part-Way Through

Describe the bug
Tried to upgrade my FunKey S to 2.3.0. Did the usual: hooked it up to my desktop (64-bit Ubuntu 20.04), mounted USB, downloaded the .fwu file, dragged and dropped. Only this time... it stalled at the end of the transfer. sync didn't work, ejecting on the desktop side didn't work, and ejecting on the FunKey didn't work.

I checked with iotop that there was no data still being written, left it in the hope it'd recover, but nothing. Eventually I had to pull the USB cable... which triggered an update using an apparently partial update file.

Naturally, that didn't go well. Rebooted into the recovery screen, but I couldn't select any options from the text menu. Neither did the network spring into life - Ubuntu kept giving me errors about being unable to bring up the network interface.

So, downloaded the .img file, took the FunKey S apart, removed the microSD, copied all my ROM files and the like off, flashed the image to the microSD, reinserted the microSD, reassembled the FunKey, let it boot, mounted USB, and copied all the files back.

Except it didn't work, and hung after copying 245 of 359 files. Same symptoms as before: won't eject on either side. Not sure what's going on, to be honest, but it's annoying - if USB transfer doesn't work, that means I'm going to have to take the thing apart every time I want to update the firmware or load a new game...

To Reproduce
Steps to reproduce the behaviour:

  1. Mount USB.
  2. Transfer a decent number of files or a decently-large file.
  3. Wait.
  4. Try to eject.

Expected behaviour
Files write fine, device ejects fine.

Desktop (please complete the following information):

  • Ubuntu 20.04 64-bit

[Alsa][gpSP] Sound is loud and saturated in some games with "asound.conf" configuration file

Sound is muddy and saturated with gpSP after Alsa downmixed sound fix in firmware 2.2.0. It's especially noticeable when sound is loud (70-100% volume) and through games with loud volume (Top Gear Rally is the best example I've found so far).
The issue here is that it would need to set gpSP to mono but this one does not like mono and sound is even worse in that case.

Steps to reproduce the behavior:

  1. Launch Top Gear Rally (it's very noticeable with this one) at 100% volume
  2. Reach the title screen
  3. Notice that the music is muddy and very saturated
  4. Exit gpSP
  5. Rename or remove /etc/asound.conf
  6. Launch Top Gear Rally again
  7. Notice that the sound is not saturated, lower and clearer now

Expected behavior
Sound should stay clear and not saturated with Alsa fix as it is without it. Maybe the Alsa fix seems to set the gain too high here (2 sound channels mixed into one).

[Recovery] People with version 2.3.0 seem to get stuck on step 1 of the update process

As discussed with Vincent on Discord, more and more users from last batch (with last Rev.F and its new PCAL9539A chip I guess?) experience an endless update screen at the step 1 "1/4 EXTRACT FIRMWARE UPDATE" when trying to update to OS 2.3.0 (whereas they have already it though). I think it comes from last Recovery 2.3.0 software but I cannot easily test it as mine is still in 2.1.0 and I don't want to open my FK and flash again my card (did it so many times already for testing purpose :p), so I think something should be investigated here.

Steps to reproduce the behavior (Supposedly as I did not myself):

  1. Get a device with Recovery 2.3.0
  2. Try to update the OS to 2.3.0 for instance
  3. Notice that you get stuck on step 1 "1/4 EXTRACT FIRMWARE UPDATE"
  4. Close and open the console again
  5. The console is unstuck (not sure whether the update succeeded though)

Expected behavior
The update should perform as usual and not get the user stuck on step 1.

Add the ability to run zipped ROMs

Add the ability to run zipped ROMs, just like plenty of classic PC emulators do. Maybe, ZIP, RAR, 7z file extensions too (as lots of ROMs are originally distributed in these formats). It would save much space a little. For example, archived GBC ROM is usually less than 100 Kilobytes, and while unpacked it's around a megabyte.
So, it would be convenient to download and run the zipped archive as it is. plus it would save space (although, 32 GiB of FunKey S is roomy, but still)

UTF-8 support?

Is your feature request related to a problem? Please describe.

We noticed that even using a font with East Asian character support, the Funkey will display kanji and kana as ? in RetroFe and Gmenu2x.

gameblabla noticed that the partition seems to be mounted with iso8859-1 encoding. Is there a technical reason why UTF-8 could not be used? Or would it not be possible to change this on a firmware update if the partitions have already been created?

https://github.com/FunKey-Project/FunKey-OS/blob/484d4e690515b89ce967b6d2a151d34b2fdadc92/FunKey/board/funkey/rootfs-overlay/etc/fstab

Describe the solution you'd like
If possible, utf-8 support could add support to display more languages.

playstation games problem

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
playstation games "DQM1+2"
2 in game ,Flashing at the top of the screen

Game Gear buttons in wrong order

The two action buttons for the Game Gear emulator are reversed (1 is on the right, 2 is on the left/bottom). Correcting this in the FunKey/.mednafen/mednafen-09x.cfg file on the mounted USB drive doesn't help, as the file seems to be reverted once unmounted.

I think it's as simple as setting

gg.input.builtin.gamepad.button1 keyboard 98
gg.input.builtin.gamepad.button2 keyboard 97

But I don't know how to get the values to stick.

Edit: Sorry if this is the wrong place, I don't know which emulator to add this issue to.

Cannot exit the log viewer

The log viewer cannot be quit, no key combination allows to do that therefore the user is stuck and has to reboot the console. Tested on fwu 2.0.0.

Steps to reproduce the behavior:

  1. Launch the log viewer
  2. Try to exit it (UI indicates B or Start) while on the screen prompt "Do you want to delete the log file?"
  3. You cannot exit it

Expected behavior:
B or Start should allow to exit the log viewer

Screenshot
IMG_0002

Can not SSH in to the system

I got these instructions from the Discord:

  • Mount FunKey
  • Create empty file "usbnet" in the root of the folder
  • Un-mount the FunKey
  • Reboot
  • Press fn + L1 + R1
  • SHH in with the IP address

These steps appear to work, but I can not SHH in to my FunKey, the IP does not appear to be local (starts with 163). And SSHing in to it does nothing at all.

Discord user "funkboydog#2844" and several others have the same issue as well

Info:

  • Desktop OS: Arch Linux
  • FunKey-OS version: 2.3

Add a way to access the native menus in various emulators

Is your feature request related to a problem? Please describe.
The FunKeyOS menu is nice and it’s great to have a consistent experience throughout, but it would also be great to be able to access the native menus for the various emulators somehow. ie, For selecting game-specific BIOs in PCSX or PicoDrive, selecting palettes in GNUboy, accessing native savestate ops, re-mapping buttons, etc

Describe the solution you'd like
If possible, using Fn + Power as a shortcut would be intuitive since it’s already the menu button when not holding Fn.

[Regression] Changing the launcher with "SET LAUNCHER" option does not load the new launcher

Changing the launcher with "SET LAUNCHER" option does not load the new launcher but brings the user back to the current one.
This bug only occurs with an OS built from the develop branch, so it does not impact 2.2.0 users. A system restart loads the new launcher though. Seems related to the commit 961e7db which introduced the use of /.frontend file instead of /Launchers/launcher.txt

Steps to reproduce the behavior:

  1. Build an OS from develop branch (commit 4b519d9)
  2. From GMenu2X, open FK menu with MENU key and select "SET LAUNCHER RETROFE"
  3. Notice that it brings you back to GMenu2X instead of RetroFE

Expected behavior
"SET LAUNCHER" should load the selected launcher.

[Brightness] GMenu2X and FunKey overlay do not use the same setting.

GMenu2X and FunKey overlay do not use the same setting, which leads to some conflict between those 2 values (pressing "Start" to display GMenu2X serttings will restore the brightness to GMenu2X value).

Steps to reproduce:

  1. Set brightness value to 5 for instance in GMenu2x (Start button)
  2. Press Start to exit GMenu2x settings
  3. Use Menu button to modify brightness or Fn+X/B shortcut
  4. Press Start key twice (open/close Gmenu2X menu)
  5. Notice that brightness state is now restored to GMenu2X previous value

Expected behavior:
The brightness value should be shared between GMenu2X and the Funkey overlay and both should impact the other.

exiting game

Apon exiting a game you are transported to the main console select screen, not even on the system last used, would like to when exiting game to still be in that system i was just in and still have that game highlighted instead of going from game all the way back to beginning of selection, most retro game systems seem to work that way, a

[Regression][Instant Play] Sound is not back when using Instant Play

Sound is not back when using Instant Play. Indeed, the sound does not play anymore after closing and opening the FK again while in a game (any emulator).
Important note: this issue does not occur with current OS 2.2.0 but only with an OS built from 52cf2a0 ("develop" branch) so it does not impact players for now.

Steps to reproduce the behavior:

  1. Build a FunKey OS from this commit 52cf2a0 ("develop" branch)
  2. Start any game with any emulator with an audible sound volume
  3. Close and reopen the console lid
  4. Note that sound is now off
  5. Press twice the MENU button to open and close the FK menu
  6. Notice that sound is back

Expected behavior
Sound volume should be restored when using Instant Play.

Workaround
Pressing twice the MENU button to open/close the FK menu restores sound.

memory on game exit and lists. remember where you left off

i would like for the system to remember what i selected last and when entering or exiting systems for it to return to last game played and allow me to search from there. also the way it handles ps1 game files, being there are usually multiple per game but only one is needed to run the game it would be nice to hide certain files from menu or create folder hierarchy to allow the file needed to run game is viewed, but the files not needed are in separate folder. other than that great job and keep up the great work. you rock!

[Recovery] Inconsistent and misleading wording in the menu

Wording is inconsistent and misleading in Recovery menu. Indeed "FIRST BOOT DISABLE" is by default and means here that it's disabled and that you have to click to enable it. Regarding "FACTORY TESTS ENABLE" it's the contrary: it's here disabled too and you have to click to enable it whereas the wording is the opposite, that's very confusing and we should differentiate the state of an option and the action it performs when clicking it. As an example, I myself misclicked one or two times and triggered the FIRST BOOT sequence by mistake.
Tested on firmwares 2.0.0, 2.0.1, 2.1.0, 2.1.1 beta, 2.2.0 beta.

Steps to reproduce the behavior:

  1. Press Fn+START while booting the device
  2. Once in Recovery menu, use UP or DOWN d-pad to select menu
  3. Notice the the inconsistency between "FACTORY TESTS ENABLE", "FIRST BOOT DISABLE" and "NETWORK ENABLE"

Expected behavior
By default, you should have the different options like this:
ENABLE FACTORY TESTS => DISABLE FACTORY TESTS
ENABLE FIRST BOOT => DISABLE FIRST BOOT
ENABLE NETWORK => DISABLE NETWORK
or
FACTORY TESTS: DISABLED => FACTORY TESTS: ENABLED
FIRST BOOT: DISABLED => FIRST BOOT: ENABLED
NETWORK: DISABLED => NETWORK: ENABLED

Note: I personally prefer the 2nd one, more natural as that's easier to understand the current status of each option.

Screenshots
first_boot_disable factory_tests_enable

Instant play runs OPKs from wrong directory

OPKs are normally run from /opk, which allows loading of resources via relative paths.
Instant play runs them from /root however, which breaks OPKs that require any kind of resource files next to the executable.

[Recovery] Fn+START displays a snapshot confirmation message

Describe the bug
In Recovery mode, Fn+START key combination (instead of Fn+UP) displays a snapshot confirmation message whereas it does not save it anywhere.
Tested on firmwares 2.0.0, 2.0.1, 2.1.0, 2.1.1 beta, 2.2.0 beta.

To Reproduce
Steps to reproduce the behavior:

  1. Press Fn+START when booting the device
  2. Once in Recovery mode, press Fn+START
  3. Notice that it notifies the user about a new snapshot
  4. Mount the USB and go to /mnt/FunKey/snapshots
  5. Notice that no snapshots were saved

Expected behavior
I guess this command is not intended to work as the snapshot app may not ne loaded yet (TBC), so we should deactivate it or implement properly the snapshot command with Fn+UP and save the pic into its destination (/mnt/FunKey/snapshots).

Screenshot
recovery_snapshots

Separate sections for 32x and MegaCD?

Hi, hopefully this is the best place for this.

At the moment you need to put both 32x and MegaCD games in the Genesis folder and they all show up in the same section in RetroFE.

Is it possible to have separate sections for both 32x and MegaCD? as its a small device, I prefer to keep each section fairly small but the MegaDrive section is fairly large now as covers (in my eyes anyway) 3 different consoles. GB & GBC have different sections and they are probably more similar to each other.

Also another that may help, would it be possible for RetroFE to not show unused sections (like Wonderswan for me) ? Maybe if its possible for the menu not to show certain categories if the folder either doesnt exist or is empty? That way people that want their MD/32x/MegaCD games in the same section can, but others can have the separate categories.

Thanks

Generating different DTS for turning LCD controller back on

This is a long shot, but I'm messing around with different emulation builds out there and I'd love to try this OS out. The fact that it's open source on here is great, but since you've got it running specifically for what looks like a little SPI based display I haven't had any luck on a Lichee pi zero. After digging through your files, it looks like you've turned off the LCD controller/display engine in the DTS. Buildroot/Uboot are not my biggest strengths unfortunately. Any detail you could give in how I could either modify the build process (Since it's a 1 button build process, I can't easily determine when I could interrupt the process to modify the make menuconfig and point to a different dts) or modify the image post-build would make me super grateful.

Show batterymeter in a game

It would be nice to be able to check the battery level when in a game.

So when you push the power/menu button the battery level shows in the top right corner like on the main screen or as an item in the menu like volume.

[SDL] Image viewing is broken since commit 9a181f4

Since the commit FunKey-Project/SDL-1.2@9a181f4 for SDL 1.2, image viewing in Commander is broken for file formats like .png and .jpg.

Error message in the logs is:
loadImageToFit: ioctl(FBIOPAN_DISPLAY) failed

Steps to reproduce:

  1. Take any screenshot with Fn+up d-pad for instance
  2. Try to open it with Commander
  3. Notice that it fails and shows the raw content of the image file (see attached screenshot)

IMG_0210

An utility to download ROM covers automatically

It would be convenient to have some of the utility to download ROMs thumbnails and save them by each of the ROMs. Probably, It would be a PC utility, run by a user manually, as the FunKey console itself does not have internet access (probably). It should scan a list of installed ROMs, and then search and download thumbnails for the found ROMs from open databases, then storing them and resizing if necessary in proper dimensions. Just like stated in the FunKey Wiki, but it should be done somehow automatically, not manually.

Users searching for game box art are recommended to visit Libretro's GitHub page of thumbnail repositories. Due to several of these lists being truncated or having sub-par box art scans, however, it is also suggested that users visit the subsequently linked-to repositories for NES, TurboGrafx-16/PC Engine, Genesis/Mega Drive, SNES, GBA, and PS1 game box art. Since the image representing a game on the FunKey S is the image in the file directory that shares a name with that game, users may also use other images, such as custom box art, in either JPG or PNG format to represent their games on the FunKey S. Since large image files take longer to load in on the main menu of the FunKey S, for an optimal scrolling experience it is recommended that users downscale their thumbnails to at or below 240x240, the maximum resolution of the FunKey S. For the convenience of users, the wiki editors have compiled a database of box art for a number of systems resized to more efficient 240 pixel horizontal and/or vertical maximum resolutions. If there is missing box art that you wish to add to the database or are having trouble finding, you may message a wiki editor on the FunKey community Discord server or leave a message on this page's talk page.

https://github.com/libretro-thumbnails/libretro-thumbnails
https://drive.google.com/drive/folders/1yKlYlBpx0m7lG074avmIXu7hGrbtvndj

Stereo audio isn't downmixed, only the left channel plays

Describe the bug
The FunKey S only has a single speaker, wired to the left audio channel. For monaural games, that's fine; for stereo games, it's a problem. Try playing Sonic The Hedgehog on the Genesis, for example: you'll only hear every other ring pickup sound, because it alternates between the left and right channels. Likewise, music sounds strange because anything which plays on the right channel is missing.

To Reproduce
Steps to reproduce the behavior:

  1. Load a game with stereo sound like Sonic the Hedgehog on Genesis.
  2. Trigger the stereo sound: for Sonic, collect rings.
  3. Listen to the audio that plays.

Expected behavior
You hear a ring pickup sound for every ring picked up.

Actual behavior
You only hear half the ring pickup sounds - the ones in the left channel.

Proposed fix
Short of adding a second speaker to the FunKey S, the fix for this problem would be to downmix stereo audio to mono before sending it to the speaker - ensuring that all audio, not just the left channel, is played.

This is relatively simple in alsa's asound.rc configuration file:

pcm.!default monodownmix

pcm.monodownmix {
    type route
    slave.pcm "hw:0"
    ttable {
        0.0 1    # in-channel 0, out-channel 0, 100% volume
        1.0 1    # in-channel 1, out-channel 0, 100% volume
    }
}

Volume Adjustment Via Menu Problems

When using OS 2.2.0, adjusting the volume during gameplay using the menu sometimes fails in specific ways.

•If speaker is off (lowest volume), it will remain off if trying to raise volume using the menu. (Restarting the emulator or loading a quicksave at above 0% volume loads the set volume.)
•If speaker is on, trying to lower the volume using the menu will not cause the speaker to turn off.

The volume can be adjusted normally using the Fn shortcuts. In addition, this appears to only affect some emulators.

Affected: NES, GBC, PS1, SNES, GBA.

Not Affected: Lynx, Neo Geo Pocket, PC Engine, WS, Picodrive Beta (installed to sysroot using script), Mario 64.

[Crash] System crash/reboot after a while with last Alsa mixer mono fix.

I experienced several crash/reboot of the console when playing Mednafen PC-Engine or Mednafen NES with last Alsa mono fix: fc7b0f4.

I reproduced it more than 15 times, sometime it occurs after 20 seconds, sometimes after a few minutes. I cannot reproduce it without Alsa mono fix and never had this before.
Tested on firmware 2.1.0 with stock Mednafen PC-Engine with several roms (Hucard or CD-ROM). That does not occur with PicoDrive, PocketSNES, gpSP, FCEUX and PCSX ReARMed.

GMenu2X logged this error:
ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred

Steps to reproduce:

  1. Copy "asound.conf" in /etc (not yet released in official firmware) with Commander
  2. Launch Mednafen PC-Engine or Mednafen NES emulator under GMenu2X with any rom and play at least a few minutes (or let the demo play)
  3. You should get a console reboot after a while (random)

[Keymap] .key files are not applied if containing some special characters like brackets or spaces

.key files are not applied if containing some special characters like "(", ")" or any space despite the confirmation in GMenu2X logs.

To Reproduce
Steps to reproduce the behavior:

  1. Have any rom with spaces and/or brackets included in its name
  2. Have a .key file with a different key mapping with the same name
  3. Launch the game
  4. Notice that the new key mapping is not applied

Expected behavior
.key files should be applied even with special characters.

[FK Menu] VOLUME/BRIGHTNESS setting display is not updated when using shortcuts while the FK menu is open

VOLUME/BRIGHTNESS setting display is not updated when using shortcuts while the FK menu is open. It's minor and not sure whether some people will do it actually, just spotting it here as the nitpicker I am. :)

Steps to reproduce the behavior:

  1. Open the FK menu with MENU button while in RetroFE or GMenu2X
  2. Use Fn+Y/A or Fn+X+B to modify VOLUME or BRIGHTNESS
  3. Notice that the settings in FK menu do not get updated
  4. Close the FK menu and open it again
  5. Settings in the FK menu are now updated

Expected behavior
I think the easier way would be to deactivate those shortcuts while the FK menu is open. Indeed, it's the case for ratio shortcut (Fn+DOWN). That way that would fix the bug and there is no need to use volume/brightness shortcuts if the FK menu is open anyway.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.