Author Topic: Menu written in python for RS97 and LDK  (Read 45026 times)

Jack83 (OP)

  • Posts: 159
Menu written in python for RS97 and LDK
« on: March 19, 2018, 03:31:18 pm »
Hello everyone!

I was not so satisfied with the usability of gmenu2x and the existing dmenu, so I started a new menu from scratch written in python. I chose python because I don't know C/C++ that well and I'm able to test on the PC without changing much.

If someone is interested in helping me, the source can be found here:
https://github.com/JackD83/PyMenu

<a href="https://www.youtube.com/watch?v=D8XlVy8AcSo" target="_blank">https://www.youtube.com/watch?v=D8XlVy8AcSo</a>


Update 10.07.2018


Here is ALPHA2 of PyMenu

New in this release:

- Resume after launching a game/rom
- fixed folder bug
- added new layout options
- swapped left/right on main menu
- added descriptions for native apps

Limitations:
- Suspend can be configured but is not working yet
- USB mounting is probably broken
- Links in the ports section are broken if they need a selection browser. Used for Doom etc. to select a wad file.


Update 06.01.2018


I switched to the UselessRS97 firmware. All features should work, including USB mounting.
The menu is currently missing the proper configuration for UselessRS97, change the configuration yourself.


Update 19.11.2018

Running on the RS97, PAP KIII Plus (K3P) and Arcade mini. I added a service that allows you to change the volume of the K3P in any emulator or game.

Installation:

1. You need the custom firmware for your device.

RS97:
Only the UselessRS97 internal firmware is supported
Follow the guides listed here:
https://boards.dingoonity.org/ingenic-jz4760-devices/uselessrs97-internal-firmware-for-revision-2-1/

K3P:
Install either https://drive.google.com/open?id=11AAbW4VpWk4XUtX9XjpKtyGHxVjmJlYL for the old device or
https://drive.google.com/open?id=1thtFJg1ePUTPLdlulepzBM_tVpwg-gsV for the 16gb version.
(thx blackz1982)
They need to be installed on the internal sd-card
 

2. Clone or copy the files from the repo next to the gmenu2x folder in /apps/. Folder has to be named "PyMenu"

2b. for the Arcade Mini or K3P
in the file config/config.json set:
Code: [Select]
RS97 = false
screenWidth = 480
screenHeight = 272

3. PyMenu can be run by starting PyMenu/run.sh

4. If you want to make it your default launcher, run PyMenu/installer/install.dge. Run uninstall.dge to switch back to gmenunx. Try to start it using run.sh first

Tested on UselessRS97 1.3 internal & external and K3P old version

Update 26.12.18
I added the ability to display animated previews for your roms and apps.

<a href="https://www.youtube.com/watch?v=b_S9egAoQi0" target="_blank">https://www.youtube.com/watch?v=b_S9egAoQi0</a>

Animation files have a special format and have the ending "anim.png". Put them in the same folder as your previews. If they are found, they will be played after 1s of your normal preview.

The format is quite easy. Its just 128x128 pixel frames stitched together in one large file. I added a small script (tools/converter.sh) that generates those files out of videos using ffmpeg and image magick. Script is currently for linux/mac only, but could run under windows as well.

Code: [Select]
ffmpeg -i "$var" -f image2 -vf fps=25 -vf scale=128:-1 -vframes 150 converterTemp/img%03d.png
    mogrify -gravity center -background none -extent 128x128 converterTemp/*.png
    montage converterTemp/*.png -geometry 128x -geometry '1x1+0+0<' -background none png8:output/"$filename".anim.png

Don't use much more that 150 frames (6 seconds), it will impact loading time of the preview. Script is using png8 as output format which will decrease image quality in favour of filesize.

If you are looking for images / videos, google for "resurectionxtras". Was an old project to collect emulator extras for the old XBOX



Update 03.03.2019
I released a new version of PyMenu 1.5.0 for the RS97 only. You can find the ipk release here:

https://github.com/JackD83/PyMenu/releases/latest

And a user guide here:
https://docs.google.com/document/d/1mwO_3vKUGSCf7xrVeoyC1p6he8pk8_NXFjnP8iOa7rE/edit?usp=sharing


Update 06.03.19

https://github.com/JackD83/PyMenu/releases/latest

Version 1.5.1

fixed update from older version resets config
added missing "param" config from gmenu, fixes pcsx4all not launching roms
fixed editing of last played theme
fixed sound issue if booting directly to PyMenu

Update 09.03.19

https://github.com/JackD83/PyMenu/releases/latest

Version 1.5.2


- added better settings for arcade systems
- added correct mame4all system string
- fixed sound volume
- added fw check on install, should prevent anyone to install on non-supported RetroFW (1.0)
- fixed deleting of entries in main menu

Update 31.03.19

https://github.com/JackD83/PyMenu/releases/tag/v1.5.3

Version 1.5.3
- fixed previews of native items where not stored
- added limit of folder selection
- added list wrapping
- added hiding of sub folders in selection folder
- added race-od and dingux-cap32 link in config
- added default volume to configuration
- improved loading time of PyMenu

Update 14.04.19

PyMenu Version 1.5.5

https://github.com/JackD83/PyMenu/releases/latest

- improved loading time of folders ~10x
- fixed previews not showing for first element again
- added latest emulators: jzIntv, Pok?mini, ProSystem-OD, Speccy


« Last Edit: April 15, 2019, 08:00:23 am by Jack83 »

Jutleys

  • Posts: 1754
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #1 on: March 19, 2018, 04:10:35 pm »
Looks good keep up the great work.

gamfunforstart

  • Posts: 35
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #2 on: March 19, 2018, 04:48:01 pm »
Hello everyone!

I was not so satisfied with the usability of gmenu2x and the existing dmenu, so I started a new menu from scratch written in python3. I chose python because I don't know C/C++ that well and I'm able to test on the PC without changing much.
In the current state, its not much more than a collection of modules that will be a menu some day ;D
I got
- a main selection screen
- file selection
- options popup menu
- general configuration menu with inputs for text, boolean, files, folders and images

There is a lot missing, but I'm working on it. While I'm capable to program the menu, I'm very bad at designing stuff. I tried to replicate the main menu of emulation station, but from there it gets ugly

If someone is interested in making a completely new design, please leave a comment

I'm still working on a custom fw for the K3P, but its going slow and I needed something where I really see the progress :)


https://github.com/JackD83/PyMenu
I like it keep it up

Sent from my SAMSUNG-SM-G891A using Tapatalk


onthebridge

  • Posts: 110
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #3 on: March 19, 2018, 05:03:48 pm »
Looks great Jack, dmenu and gmenu2x look very dated nowadays

ruffnutts

  • Posts: 2652
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #4 on: March 19, 2018, 07:24:45 pm »
Gopher 2 has the same rez as the kp3 and cpu hope it would work on there too, looks good bit like emulationstation  ;)

HercTNT

  • Posts: 664
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #5 on: March 20, 2018, 01:34:23 am »
well done jack. Can't wait.

Princebatman

  • Posts: 193
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #6 on: March 20, 2018, 03:06:50 am »
Awesome! Can't wait for this.  Any chance of getting some of @tonyjih updated emulators on this.  Especially the updated pocketsnes? 

s0ren

  • Posts: 46
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #7 on: March 20, 2018, 07:53:14 am »
I am VERY interested. I loathe the look of gmenu2x and have been looking into making a new UI for the RS97 with a layout more similar to RetroPi.

Hit me up on discord https://discord.gg/hvR5vK6 or PM :)

ruffnutts

  • Posts: 2652
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #8 on: March 20, 2018, 08:11:38 am »
I am VERY interested. I loathe the look of gmenu2x and have been looking into making a new UI for the RS97 with a layout more similar to RetroPi.

Hit me up on discord https://discord.gg/hvR5vK6 or PM :)

Yeah Gmenu2x is so dated I agree, need somthing fresh  ;)

rbg_gamer

  • Posts: 59
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #9 on: March 20, 2018, 12:21:10 pm »
Project is SOLID... as long as you keep the fish startup splashscreen though ;) j/k

lemmywinks

  • Posts: 2795
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #10 on: March 20, 2018, 05:50:54 pm »
Maybe give the user a choice of fish for the startup screen?
Handhelds:
GPD Win, GPD XD 64gb, RS-97, RS-90, 3DS XL, DSi XL, GBA SP, GBBC Clone, Gameboy Pocket, PSP Go
PC:
Medion Erazer, Toshiba Z20t, Dell Mini 9, Psion 5MX
Tons of other old laptops and tablets.....

Jutleys

  • Posts: 1754
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #11 on: March 20, 2018, 06:10:18 pm »
May be i ditch it all together the fish lol.
« Last Edit: March 20, 2018, 06:58:40 pm by jutley »

HercTNT

  • Posts: 664
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #12 on: March 20, 2018, 08:40:58 pm »
dopefish ftw!

m1024

  • Posts: 106
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #13 on: March 21, 2018, 08:31:12 am »
Regarding better usability:

Do you already have a good solution for showing a large number of menu items? In emulation station it's already a pain to navigate through less than 20 items as you only see 3 items at a time.

On the RS-97 there could easily be 30 emulators/systems and 70 games/apps you would have to scroll through!  :o
I think the emulation station ui was only designed for a few items and is very limited in that regard. There should be more items visible at the same time and some kind of hierarchical structure.

Perhaps a folder concept similar to the Playstation 4 menu on top of your current concept:
- select the system menu item 'Nintendo' (or 'Games' or 'Apps')
- press A or down to select the item
- the system image slides up a bit and shows all sub items in a horizontal list
- pressing B or up closes the sub items and goes back to system items
- select the sub item 'Game Boy' (or 'CZDoom' or 'Explorer')
- the system image and sub item image slide to the top (side by side) and a file browser is shown below

Basically all of this could be done by modifying GMenu2x:
- sections would move from top to the center of the screen
- sections as a scrollable list with larger icons and matching backgrounds
- not only 4 sections but: Consoles, Handhelds, Amiga/Atari, Arcade, ... Games, Apps, Settings
- links as horizontally scrollable list just like the sections
- bottom bar (battery indicator etc.) could be reduced and moved to the top
- button hints could still be shown at the bottom, but slide down after a few seconds

What do you think?
Make sure to update your skins (PS4, PSNext, PSNextDark, OldBoy and Zelda) with the latest version from time to time:
https://boards.dingoonity.org/ingenic-jz4760-devices/low-res-skins-for-gmenu2x-oldboy-zelda/

s0ren

  • Posts: 46
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #14 on: March 21, 2018, 10:32:44 am »
I am currently working on making a couple of designs that can account for this and can scale with the different screen resolutions of devices.

Personally i would prefer to only have native games and emulators in the main menu. People already carry around a mobile device which is superior for apps and music/video.

I would also prefer to move most file and configuration management out of the console. It is something you are only supposed to do once, and after the software has matured then we can have a good default configuration included in the package. New users will then only have to copy the games they want to the SD, and not waste time doing tedious configuration tasks and get straight to gaming. A temporary solution could be to make a simple config helper program for windows and linux, where it will also be a lot easier to do because there is a real keyboard to type with.

If people want apps and all config options available, then thats pretty much GMenu2x.
If people want to play games and only that, then this could be far superior.

m1024

  • Posts: 106
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #15 on: March 21, 2018, 11:05:21 am »
You are right with "less geek and more gaming oriented", but two additional menu items for apps and settings, where all the geek stuff is hidden, would not hurt the user experience.

I've not heard of someone complaining that you can check free disk space or change the standby options on Playstation ;)
Make sure to update your skins (PS4, PSNext, PSNextDark, OldBoy and Zelda) with the latest version from time to time:
https://boards.dingoonity.org/ingenic-jz4760-devices/low-res-skins-for-gmenu2x-oldboy-zelda/

onthebridge

  • Posts: 110
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #16 on: March 21, 2018, 11:51:45 am »
You are right with "less geek and more gaming oriented", but two additional menu items for apps and settings, where all the geek stuff is hidden, would not hurt the user experience.

I've not heard of someone complaining that you can check free disk space or change the standby options on Playstation ;)
totally agreed  :)

Jack83 (OP)

  • Posts: 159
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #17 on: March 21, 2018, 12:07:30 pm »

I would also prefer to move most file and configuration management out of the console. It is something you are only supposed to do once, and after the software has matured then we can have a good default configuration included in the package.

I disagree with the configuration. This is something everyone wants to do: "how can I get my new game, emulator into the menu" I have seen it with dmenu. The normal user cannot edit config files and breaks things. Maybe an advanced mode would be a good idea where you have all the remove/add options

s0ren

  • Posts: 46
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #18 on: March 21, 2018, 12:35:06 pm »
Hopefully its a matter of adding a rom file to the right folder and then it will show up automatically. And if its about adding a new emulator, then you are already connected to a computer and can do the configuration there.

I agree with simple options like standby, but i dont know of a use case where i on-the-go would have any use of seeing available disk space or file management. Save-states can take up some space, but if there are any issues with such, then thats when and where i want to see it.
« Last Edit: March 21, 2018, 12:37:53 pm by s0ren »

Jack83 (OP)

  • Posts: 159
Re: Help wanted! New menu written in python for K3P (and maybe RS97)
« Reply #19 on: April 04, 2018, 03:58:44 pm »
Little preview of the menu ;D

<a href="https://www.youtube.com/watch?v=_p9knsBalMA" target="_blank">https://www.youtube.com/watch?v=_p9knsBalMA</a>