Custom D.E.O.T. V2.0+/Clockwork OS v0.5 image - With customised DEOT interface, Kernel 5.7, Optional 1400MHz OC, Debian 10 Buster, Retroarch 1.9.0, Mupen64+ plus more! (Current build: 200903)

DEOT v2+ Build 200620
19th of June 2020

Here we go! What is possibly going to be the final major release of the DEOT v2+ image.
There may still be small hot fixes, if I miss things here and there. Otherwise, it’s more or less a faithful reproduction of the DEOT themed OS, and a snapshot of what was done over the 2020 pandemic.

  1. A final apt-get upgrade and clean
  2. Retroarch 1.8.8
  3. Retroarch video filters and audio dsp built, and moved to the correct directory
  4. Edited mupen config for further compatibility/speed
  5. Edited mednafen config for more bug fixes
  6. Pico-8 installer updated to accept and look for the latest file/md5checksum
  7. Added Russian language option
  8. Wifi shows MAC Address
  9. Bluetooth includes “forget” dialogue when selecting items and pushing Y
  10. Changes to settings menu, removing the update menu item - DEOT OS is far too different now, and it will just cause problems to update via the launcher
  11. Updated lowres NX to support proper resolution
  12. Fixed keyboard font to allow for more symbols, re: wifi passwords (veramono)
  13. DEOT style airplane mode toggle and storage display now accurate
  14. MPD spectrum colour correction
  15. Tidied up the defined fonts and colours in skin_manager.py
  16. Optional boot sound - disable it by deleting startup.mp3 from the music directory, or by running the DEOT mode disable script in utilities
  17. Added DEOT version info in “about”
  18. Removed experimental label from LIMA driver
  19. Cleaned up language ini file
  20. Included @Joao_Manoel’s 5.7 kernel, with DEOT splash image. Enable it via the Kernel switcher (note: wifi won’t be useable via the regular means - see here
  21. New Language: DEOT - changes the display of launcher items to reflect what they are called in DEOT V1 (not enabled by default)
  22. Included an extra 1200MHz overclock option
  23. Verbose/Silent boot.scr toggle in utils/kernel launcher directory

Thanks to everyone who supported me, and assisted me on the way. I wouldn’t have done it if it weren’t for the community.

As usual, the download link can be found on the first post. I’ll upload a mega link tomorrow.

7 Likes

@javelinface

There are two major modifications with the Kernel I’m working that maybe won’t benefit your image:

  • The wifi driver is a kernel module instead of being built-in inside the kernel image. This was a suggestion by @r043v to improve the stability of the wifi. We noticed that sometimes the wifi firmware is not loaded after booting, and you need to reboot the system to get it working. After making it as a kernel module I didn’t have this issue anymore. It would be good to know if other people are also experiencing this problem with intermittent wifi. If yes, making a kernel module seems to be a fix.
    To install the modules you need to run: make modules_install after compiling the kernel. After installing the modules the wifi should work normally. I forgot to update the documentation after changing it. I’m sorry.
  • I have a specific driver for the HDMI. This new driver is probably incompatible with the the original image that enables the HDMI with u-boot, which we don’t have the sources to built. My solution was to use a driver inside the kernel. If you are using the dtb files from the old kernel, and the official u-boot image then it shouldn’t be a problem.
1 Like

Thank you so much for letting me know this! Right now, your kernel does actually benefit, if it’s just for the sake of having the ability to use the suspend.

The good news is, the ability to use the 5.7 kernel is optional, and not enabled by default, so people won’t have to worry about things not working correctly.

Personally, I saw it as an ideal day to day kernel, even without wifi; but now knowing that it can work using the instructions provided is great to know! Thanks!!!
Edit: Just modified my day to day machine with your instructions - Wifi is all good! Now to put them in the image!

I actually haven’t tested using the HDMI out, so will need to do that some time this weekend. Currently I’m using the dtb files made while compiling your kernel on my gameshell; however do switch between them, admittedly mainly as a means of changing the clock speed.

AH I JUST MADE THE CONNECTION! The specific HDMI driver is the big thing that you’re working on right now!! I’d say not to worry about trying to make it work for any other OS other than your debian slimline release.

For anyone wanting to know about where each of the kernels kernels, dtb and boot.scr came from:

Kernels:
5.3.06 = Stock Kernel based on @shell’s work with custom DEOT splash (no reported flickering) (what the current OS is set to on install)
5.4.06 = Shell’s Kernel with stock splash
5.4.21 = Shell’s Kernel with DEOT splash
5.4.24 = @Joao_Manoel 's Kernel, with DEOT splash
5.5.09 = Joao Kernel, first introducing overclocking, with custom DEOT splash
5.7 = Joao’s current Kernel introducing suspending, with custom DEOT splash (but missing wifi drivers)

Clockspeeds:
1008MHz = 5.3.06 stock dtb from clockwork OS 0.5
1200MHz = 5.7 from Joao’s current kernel with newer optimisation eg suspend
1400MHz = 5.5.9 from Joao’s previous kernel (what the current OS is set to on install)

So technically, 1200MHz is the “newest” one, compatibility wise and should be used with 5.7. Likewise:

Verbose = newer boot.scr from 5.7
Silent = stock 5.3.06 boot.scr (what the current OS is set to on install)

I just used these names to indicate what is seen on startup. It would be best to use the verbose one with 5.7.

Looks like I’ll be making one last change to make things work. Always “just one more” :wink:

4 Likes

Thanks @javelinface
AND Mega Man X charging up!!! :smiley:

1 Like

I am VERY impressed you got that!!! One of my favourite games. Not gonna lie :wink:

1 Like

HAHA! Same here, was one of the reasons I had to get the GS.

1 Like

You actually make a good point! I’m guessing our favourites lists look very similar! :wink:

It was Mega Man X on my actual SNES that first got me into “hacking” per se.
In Australia we are VERY slow on the uptake of anything good. Mega Man X never actually came out for the PAL SNES here, so as an avid Mega Man (or Rock Man as I knew him initially, on Game Boy) I had to order the USA NTSC version. That’s when I learned about region adaptors, frequency limiters, and eventually in my frustration, game backup units. (They used Floppy disks! haha!)

I actually remember back in the early emulation days, 20 years ago or so, Mega Man X2 and X3 were an ABSOLUTE pain to emulate! And the one time it did work, you couldn’t pick up any suit power ups, or ride any of the mobile suits, ie everything that made the games amazing! It just means so much to be able to play them now at full speed on a handheld console.
The extra bonus of being able to ALSO play Mega Man X4, X5, AND X6 (ehhh) is just the icing on the cake. I’m honestly not fussed that we can’t play X7 and X8, but that’s just me. :wink:

ANNNND while I have the microphone, I just want to update the thread to say that I’ve modified the image to allow the 5.7 Kernel to be used with Wifi according to the instructions above. If you’ve downloaded it before today, please download it again.
If you want to apply it yourself, it’s a fairly lengthy process time wise, having to basically compile a kernel, then create the drivers. It will seriously be faster to just flash the updated image. My apologies! I wasn’t expecting to have a solution so soon. This SHOULD now be the final image.

1 Like

A European Mirror has been uploaded! Thanks @Wizz

https://pcroz.stackstorage.com/s/9HuB1Ex4QN9q3w1

It would be nice to add checksums so people can check if their download was downloaded fine and it will avoid issues while flashing.

1 Like

That is such a no brainer that will prevent SO many problems down the track. Thanks for the reminder!
I’ll just put it for the latest release I’ve uploaded to my google drive and mega.
There shouldn’t be any need for people to download older builds.
I’ll double check the version above is the same too, just in case there is a problem at the source. I don’t see why it would be different, but that’s why we have checksums :wink:

MD5 Checksum hash: 71870BFBEB3CC5D5D452D0330BE2E454

Google Drive: OK
Mega: Pending confirmation
Europe: Pending confirmation

1 Like

so where’s the skin chooser in the new release? I couldn’t find it

Hello! Welcome back to the forums! :slight_smile:
The DEOT interface is essentially a large scale skin, where more elements than the what the skin alone changes have been modified. You will need to disable it, via the script I have included in the Utils folder in the launcher. It is the one at the very end. Deactivate DEOT Settings.
This will return it to a basic Clockwork OS 0.5 interface. From here, you can change your skins as you normally would.

Have a read through the first post if you have any more problems. I hopefully have answered everything there. :slight_smile: If not, I will add it!

thank you for your patient and your work.I will read it carefully :heart:

1 Like

A new version of Pico-8 has been out for a while it seems.
We’ll need to update the compkginfo.json file with
“MD5”:{“pico-8_0.2.0i_raspi.zip”:“be0c708d707fa967c77455512bd456c7”

Alternatively, you can cheekily get around it, renaming Pico-8 to any of these names:
“pico-8_0.1.11g_raspi.zip”:“a3f2995cf117499f880bd964d6a0e1f2”,
“pico-8_0.1.11g_amd64.zip”:“6726141c784afd4a41be6b7414c1b932”,
“pico-8_0.1.12_raspi.zip”:“08eda95570e63089a2b9f5531503431e”,
“pico-8_0.1.12c_raspi.zip”:“1a62b0d7d4e4be65f89f23ec9757cb66”,
“pico-8_0.1.12c2_raspi.zip”:“7a878795472fa39304e9a10128c1f712”,
“pico-8_0.2.0e_raspi.zip”:“085edfecd111c2b195b878b2197afe7a”,
“pico-8.zip”:“whatever it takes”},

Same here, in South Africa I mean. SNES was gold, and hard to come by. I had the famicom, then luckily my folks upgraded me to a Genesis.

I only really got into SNES in the much later year - managed to get hands on one, but paid a fortune for it. Mega Man X was the 1st game I got, and instant favourite. I still play X on a weekly basis :smiley:

HAHA, agreed, X7 and X8 was a miss - think I sold my PS2, and moved on to the XBOX 360.
But retro gaming will always be my go to.

YAY! Downloading the new image! Thanks @javelinface!

1 Like

RetroArch 1.8.9 has just been released. I’ll test it out on my image, and see how it goes.
For anyone wanting to do the same, there is a script in Utils that will allow you to update your Retroarch.
A reminder: Be careful when in the Utils folder, and running things. Read up about what each script does in the OP before running them. I haven’t put any confirmation dialogue boxes written in.

In the case of the Retroarch Update script, running it will make your Gameshell seemingly unresponsive with the “Projecting” screen for at least half an hour or so. Maybe more. Most of the time is spent building, so you don’t have to worry too much about having the fastest internet in the world. Leave it for at least 45 minutes, just to be sure, and if you really want to check on its progress, SSH in and run it from there. If this is all too confusing, then don’t use it. It’s only there for convenience.

Looking towards the future, I am in the process of streamlining a clean Gameshell launcher, using the minimal debian image as a base. Of course, being based on a SID build, I am having a fun time backporting a bunch of dependencies, and finding out what is current and out of date in the clockwork GitHub repository.

However, what if development got poured into the LauncherGO instead, and we get that running properly? Having it start from scratch, and optimised from there on could be a great way to get things working. From what I have heard, the LauncherGO was being maintained by one person only.

For those interested, here is my process. It’s still very much a WIP on the Python based launcher, but the start to potentially a tutorial for anyone to make their own images from scratch, and update and customise aspects of it in a modular manner. Think of it as the opposite of the DEOT OS. Instead of being filled with features, it will be the Gameshell OS with absolutely nothing. Of course, if someone else has any more experience, let me know. I am by no means a professional when it comes to any of this, and just do it as a hobby.

Building from scratch

This just a build using the minimal debian image as a base, in an attempt at making a clean state stock Gameshell launcher.

Currently with the Gameshell, I am finding that Retroarch is running faster than the standalone emulators, more or less across the board.
Cores from Retroarch are fairly straightforward to install, remove, and generally don’t break.

I’ll try to provide individual scripts to install standalone along the way, so you can build your Gameshell more to your own liking. In addition to this, I’ll also provide scripts install other hacks, eg universal volume control, batmon etc. Potentially these can all be uploaded to a warehouse repository, and accessible via the gameshell.

These install instructions are basically no different to what is already on Github.
https://github.com/clockworkpi/launcher
But I’ll reiterate it anyway, for the sake of documentation, and potential modification in future, since we are building on an sid bullseye release, instead of jesse.

  1. SSH into your gameshell as root via USB. You can find the IP address in the retroarch Information>Network Information menu item. (Interface (usb0))
ssh root@XX.XX.XX.XX

Answer yes to any questions to allow access. There is no password for root.

  1. Edit the wpa_supplicant.conf to add your wifi details.
nano /etc/wpa_supplicant/wpa_supplicant.conf

(write out file with ctrl+o, then exit nano with ctrl+x)
Reboot,

systemctl reboot 

and then repeat the process in step 1, SSHing in via Wifi. (Interface (wlan0))
(you can probably set up some form of internet tunnelling via USB, but I don’t want to go into that here)

  1. Enable su mode and install sudo and fdisk.
su -
apt-get update
apt-get install sudo fdisk -y
  1. Expand the partition.
echo -e "d\n2\nn\np\n2\n94208\n\nN\nw\n" | fdisk /dev/mmcblk0
resize2fs /dev/mmcblk0p2

Double check to make sure your partition size is correct.

lsblk

And then reboot.

systemctl reboot
  1. Add CPI user, groups and permissions. (Github prefaces a lot of the commands with sudo, however you shouldn’t need this, as you are logged in as root)
adduser cpi  
groupadd cpifav -g 31415  
adduser cpi cpifav

Set the password (cpi is the default used in the forum and its tutorials), confirm the password, and use push ENTER for each prompted field to use default contact details. (or put in your own if you want)

  1. Set locale.
echo "export LANGUAGE=C.UTF-8">>~/.bash_profile
echo "export LANG=C.UTF-8">>~/.bash_profile
echo "export LC_ALL=C.UTF-8">>~/.bash_profile

And then reboot.

systemctl reboot
  1. Create necessary directories.
mkdir -p /home/cpi/apps/emulators  
mkdir -p /home/cpi/games  
mkdir -p /home/cpi/music  
  1. Install dependent packages. (Be patient) (Github prefaces a lot of the commands with sudo, however you shouldn’t need this, as you are logged in as root) (A lot of the python files are no longer valid, so the list has been updated, compared to Github; separating deports out - this can probably be cleaned up a lot)
apt-get -y install mpd ncmpcpp git libuser
apt-get -y install python-wicd python-pygame python3-pip

pip install validators numpy requests python-mpd2 beeprint
  1. The following packages will need to be backported: python-gobject wicd-curses wicd python-pip python-pycurl python-alsaaudio python-xlib
    source
# Install Debian packaging tools
apt-get install packaging-dev debian-keyring devscripts equivs

# Add a stable apt source
echo "deb-src http://deb.debian.org/debian/ stable main contrib non-free" | tee /etc/apt/sources.list.d/stable.list

# Update
apt-get update

# Download sources
mkdir /root/backports/
cd /root/backports/
apt source python-gobject/stable wicd-curses/stable wicd/stable python-pip/stable python-pycurl/stable python-alsaaudio/stable python-xlib/stable

# Remove apt sources
rm /etc/apt/sources.list.d/stable.list

# Update
apt-get update
  1. Install build dependencies, build a package properly without GPG signing the package, and install
cd /root/backports/pygobject-3.30.4
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install ../pygobject-build-deps_3.30.4-1_all.deb

cd /root/backports/wicd-1.7.4+tb2
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install wicd-build-deps_1.7.4+tb2-6_all.deb

cd /root/backports/python-pip-18.1
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install python-pip-build-deps_18.1-5_all.deb

cd /root/backports/pycurl-7.43.0.2
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install 

cd /root/backports/pyalsaaudio-0.8.4
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install 

cd /root/backports/python-xlib-0.23
mk-build-deps --install --remove
dch --bpo
dpkg-buildpackage -us -uc
apt-get -y install 
  1. “With pip install and virtualenv.”
mkvirtualenv launcher
pip install -r requirements.txt
  1. Create “.mpd_cpi.conf” config. This is different to the one found on GitHub, updated to reflect newer Debian builds. We are logged in as root, so the ~ alias denoting the home directory won’t be the correct path.
nano /home/cpi/.mpd_cpi.conf
music_directory		"/home/cpi/music"
playlist_directory	"/home/cpi/.mpd/playlists"
db_file			"/home/cpi/.mpd/tag_cache"
log_file		"/home/cpi/.mpd/mpd.log"
pid_file		"/home/cpi/.mpd/pid"
state_file		"/home/cpi/.mpd/state"
sticker_file		"/home/cpi/.mpd/sticker.sql"
user			"cpi"
bind_to_address		"/tmp/mpd.socket"

auto_update		"yes"
auto_update_depth	"2"

input {
        plugin "curl"
}

audio_output {
	type	"alsa"
	name	"ALSA Device"
}

audio_output {
	type	"fifo"
	name	"my_fifo"
	path	"/tmp/mpd.fifo"
	format	"44100:16:2"
}

filesystem_charset	"UTF-8"
# id3v1_encoding		"UTF-8"

# QOBUZ input plugin
input {
        enabled    "no"
        plugin     "qobuz"
#        app_id     "ID"
#        app_secret "SECRET"
#        username   "USERNAME"
#        password   "PASSWORD"
#        format_id  "N"
}

# TIDAL input plugin
input {
        enabled      "no"
        plugin       "tidal"
#        token        "TOKEN"
#        username     "USERNAME"
#        password     "PASSWORD"
#        audioquality "Q"
}

# Decoder #####################################################################
#

decoder {
        plugin                  "hybrid_dsd"
        enabled                 "no"
#       gapless                 "no"
}

(write out file with ctrl+o, then exit nano with ctrl+x)

  1. Clone launcher and Menu Git repository. The directory structure in Github is a legacy location that shouldn’t be used. Use this one.
cd /home/cpi/
git clone https://github.com/clockworkpi/launcher.git

cd /home/apps/
git clone https://github.com/clockworkpi/Menu.git
  1. Build Retroarch.
apt-get build-dep retroarch
git clone https://github.com/libretro/RetroArch.git retroarch
cd /root/retroarch/
./configure
make -j2
make install
  1. End the SSH session, and login in as cpi. (Use the IP address you used in step 2)
ssh cpi@XX.XX.XX.XX

N.B. There’s a lot of issues with backporting, and dependency installation as it currently is. Either we’ll need to wait for them to be upgraded, spend a lot of time manually finding out which dependencies we need (and consequently which dependencies THEY need and so forth) or see if the launcher can use any alternative dependencies.

7 Likes

Fix Warehouse not working.

cd ~/launcher/skin/DEOT/sys.py/gameshell/icons
cp ~/launcher/skin/default/sys.py/gameshell/icons/add.png ./
cp ~/launcher/skin/default/sys.py/gameshell/icons/app.png ./
cp ~/launcher/skin/default/sys.py/gameshell/icons/appdling.png ./
cp ~/launcher/skin/default/sys.py/gameshell/icons/blackheart.png ./
cp ~/launcher/skin/default/sys.py/gameshell/icons/ware.png ./

reboot or reload UI

1 Like

This is golden! Thank you so much! I didn’t even realise the warehouse was still not working! Thanks again!
This is probably something easy enough for anyone to do themselves, so I won’t bother making a new image until a few more fixes come in.
I have thought about making a GitHub repo to have updates like this pushed, but I’m honestly terrible at using it. One day maybe. My apologies!

I caved. The recent contributions by @hi80482 made me realise there is far more work to be done in order to make this image up to a standard that I can be sure will last the test of time. Thanks for all the fixes!
I’ve worked on a few other things too to make an update worthwhile. I’ll upload it on the weekend, or if I get time during the week. Meantime, if there’s anything else that anyone would like to be added, let me know.

  • Updated Retroarch to 1.8.9 and updated cores.
  • Changed the “proxy” fonts to be their true fonts, so that Eurostile and Varela are independently named.
  • Updated all references in UI from Varela to Eurostile, making it toggleable via DEOT settings util.
  • Added “about” to DEOT settings change, aligning UI for languages other than English
  • Changed the name of 99_DEOT.ini language to 99_DEOT_English.ini to allow it to properly use the proper skin specified font. (This also renames and capitalises launcher menu items to reflect their names in the DEOT OS, only for English however)
  • Typos in english language file fixed: favorite = favourite (british vs US), forgeting = forgetting, already existed = already exists, delete confirm = confirm delete, scanning… = scanning…, airplane mode = flight mode, and a few other tweaks to make some things make more sense. These are only in affect when using the DEOT language file. Now starts with this by default.
  • Updated 04 chinese language file. (I haven’t verified if it’s correct, but assume it is!)- Applied warehouse icon fixes to the DEOT theme.
  • Tweaked some font choices and sizes.
  • Updated the DEOT Settings activate/deactivate scripts to include the recently changed UI changes, and then return them to normal.
  • Updated the PICO-8 json file to accept the current version.
  • Power script on the main launcher page now contains a sleep option.
  • Both the original and DEOT skin contains an icon for “sleep” - meaning that there was once a sleep icon. I have restored this. Only use it if using Kernel 5.7.7, otherwise you won’t be able to awaken your Gameshell.
  • Changed the order of Music Player, Tiny Cloud, Reload, Sleep and Power to better group similarly categorised items. This will break if you run a git pull on the launcher, but at this stage, too much has been changed now that a git pull would break more than just this.
  • Added three kernel switching settings that simultaneously change the kernel, clock speed and boot choices simultaneously to the more compatible combinations.
  • Renamed 1008MHz to “Underclocked”, 1200MHz to “Governed” and 1400MHz to “Overclocked” to make it a bit clearer.
  • Changed the order of Utilities so that DingUXCommander doesn’t get cut off at the end.
  • Updated PocketSNES and FCEUX backgrounds.(Note: you will need to use the “Stock” kernel setting to have these run remotely well - otherwise just use Retroarch, which runs better anyway)
5 Likes

Let me know when I can do my magic again :slight_smile: And as always : wow what a quick response and dedication ! I am so humbled and inspired by your drive and willingness to support us gameshell console owners and the community users ! Big shoutout to all; let’s thank @javelinface for all his efforts and make his inbox explode with positivity !

2 Likes