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.8.9, Mupen64+ plus more! (Current build: 200626)

LowResNX had a problem with its resolution which was 320 * 256, but GS’s resolution was 320 * 240. It can’t display 100%. So I have compiled a 300 * 240 version for GameShell which is very nice.

Here is the screenshot:

You can just replace the executable file LowResNX in the next Image.

I am having trouble getting .7z roms to show in the stand alone PSCX emulators, and in retro arch, I cant get them to play on any of the PSX emulation cores available. What did I miss?

I tried using this image this afternoon, and ran into some problems when trying to change settings.

I noticed when trying to connect to WiFi through settings, after entering the password and clicking connect, my GS would stop responding to inputs. Almost as if it was frozen, but the clock continued to update. It just seemed to stop responding to user input.

The same happened in settings when I tried to change the key layout in settings.

Any ideas as to what might be the issue?

I have a slight idea, but I don´t know if I am able to explain it.

I have that happen to me very often when I am testing apps that I am making and the issue is, when I run an app it steals the events from the Launcher (a process) then when I close my app, the key events arent returned to the Launcher so thats why is not responding. A fix for example in my case is reload the launcher from ssh.

So my guess here is that the process of connecting is stealing the OS keyboard events from the launcher.

tried “MednafenVB” on “deot_v2+ 200423.img.gz”, and the emulator crashed.
cat /tmp/x.log

revealed the issue in `mednafen.cfg`

Starting Mednafen 1.22.1
Build information:
Compiled with gcc 8.3.0
Compiled against zlib 1.2.11, running with zlib 1.2.11(flags=0x00000055)
Compiled against SDL 2.0.9(hg-12373:8feb5da6f2fb), running with SDL 2.0.9(hg-12373:8feb5da6f2fb)
Running with libsndfile-1.0.28
Base directory: /home/cpi/.mednafen
Emulation modules: apple2 nes snes gb gba pce lynx md pcfx ngp psx ssfplay vb wswan sms gg snes_faust pce_fast demo cdplay
Opening lockfile…
Loading settings from “/home/cpi/.mednafen/mednafen.cfg”…
Bad keyboard bn string
Failed to load settings from “/home/cpi/.mednafen/mednafen.cfg”: Setting “gb.input.builtin.gamepad.right” is not set to a valid string: “keyboard 0x0 799”

so, i had to fix the config, and replaced line #987 with gb.input.builtin.gamepad.right keyboard 0x0 79

maybe this note will be useful to someone

1 Like


I have been having a persistent problem where when I finish the instructions found on Shadow's Terminal: AP, IRC, Webserver , somewhere around the end of configuring things, the launcher breaks.

It will display the MOTD, then the loading screen, and a black screen for a few seconds at normal. However…
Expectation is that I will be presented with the launcher after the black screen.
Reality is that the Loading screen pops back up and won’t go away.

I don’t understand where in my scripting this breaks the launcher, somewhere near the end I suspect, however this is a very bizarre problem and I am getting extremely frustrated, having re-flashed half a dozen times by now. I’d like to know if anyone here can spot something that breaks the launcher, or if there’s a way that I can debug this so that I don’t have to re-flash and start all over trying to identify what exactly breaks the system line for line, reboot after reboot.


Fix Airplane and Storage freezes in DEOT mode.
Add this code to

# local import
from skin_manager import MySkinManager

# at line 670 before def Draw(self)
##for gcores
def DrawCross(self,topleft,top):
start_x = topleft
start_y = top
width = 2
height = 10
padding = 4

rect1 = pygame.Rect(start_x+padding,start_y,width,height)
rect2 = pygame.Rect(start_x,start_y+padding,height,width)

pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor(‘Text’),rect1, 0)
pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor(‘Text’),rect2, 0)


Using /tmp cat x.log:

Traceback (most recent call last):
  File "", line 672, in <module>
  File "", line 603, in big_loop
    main_screen.ReadTheDirIntoPages("/home/cpi/apps/Menu",1,main_screen._Pages[ len(main_screen._Pages) -1])
  File "/home/cpi/launcher/", line 571, in ReadTheDirIntoPages
  File "/home/cpi/launcher/", line 571, in ReadTheDirIntoPages
  File "/home/cpi/launcher/", line 583, in ReadTheDirIntoPages
    if FileExists( MySkinManager.GiveIcon( _dir+"/"+ReplaceSuffix(i2,"png"))):
TypeError: cannot concatenate 'str' and 'NoneType' objects

My goodness, thank you SO much for solving this HUGE dilemma! (for me at least)
This was probably the biggest thing that was getting in the way of making this image into my ideal form. I thank you whole heartedly!
Theoretically there should be no need to have a separate DEOT mode activate/deactivate with this in place. Although, just to make it completely fool proof, it might be an idea to have one in place, just to prevent certain things that can break the system from happening. Eg, updating.
Now to eventually get the stock DEOT special storage settings screen, and airplane mode working! One day.

Also thank to @ITCactus for troubleshooting the MednafenVB - There was some versioning issues I was having between my day to day machine with actual roms on it, and my “release” version, after trying to do an update via the settings. Ended up losing a whole bunch of changes, after not backing up as I went.
I never got around to actually testing the “release” version with a rom, since I keep that more or less clean of games. Such a tiny error, while trying to get a whole lot of other things working! There may be even more, since I just did a batch find/replace on different strings. Thanks again!

@shadowsword - From memory, I believe it was somewhere while compiling the kernel that there was a black screen inserted at some point. I haven’t read all of the link you’re referring to. Seems interesting, but it looks like there is some mention of kernels in the first few paragraphs. Perhaps try a different kernel out. I think there was another user who made a kernel that had no splash screen, and possibly no provision for any pauses.

@zzxzzk115 - This is fantastic! Would I be able to use this in a future release? I am intrigued! I never actually used it that much so never realised it was an issue. :slight_smile:

So first and foremost - HUGE APOLOGIES FOR MY ABSENCE!! Work got overwhelming, then so did life. And then trying to socialise whenever possible, because I was getting stir crazy. And then… Animal Crossing hit. Then Trials of Mana. And now Xenoblade. I spent too much time playing games, and trying to get away from the computer screen. Free time became a premium. Now covid restrictions are being lifted in my country/state, I’m trying to spend AS MUCH time actually doing exercise. I think I put on about 10Kg, which is A LOT! So yeah. Going to be hitting up the gym, riding, skating etc as much as possible to work off my isolation gut. I will be back to being active as all heck, within the next couple of weeks or so.

Meantime, I have a lot of catching up to do in the forums. Or do I? We shall see! I miss spending my spare time tinkering on the gameshell. I can’t wait to do more soon!

As mentioned above, I did have a version that was ready to be updated, but with the recent official launcher update, I stupidly decided to try and apply it without backing up first. Big mistake. I had a few changes that I was working on - but didn’t make a note of. Thankfully, I think they were covered by the posts mentioned above. Ie, Mednafen stuff, more work on the DEOT mode switcher, and just adding a single line to the mupen64plus config to enable the 4MB expansion pack.

I’ll probably include the above fixes as well, just to be safe.

I’ve been away for gosh, probably about 2 months. Has anything important changed lately that should be included in the custom image?

There was also talk of having all my changes being put on GitHub to have a properly implemented git push/pull version synchronisation to avoid having to constantly flash a card. Then there was also potential talk of having a more streamlined official DEOT version made. Lots of things. Too many things in the moment, that it overwhelmed me slightly and made it seem like work hahaha!

Anyway, enough talk. Just thought I’d check in to say that I am still alive, and still mad keen and obsessed with the Gameshell. :slight_smile:


So. Serious talk here.

Not wanting to start any drama of sorts, but realistically the reason I was away from the forums for the past few months (on top of work getting busy) was the abhorrent behaviour of certain users who feel some kind of entitlement or privilege to have perfect results served up on a silver platter. I honestly do try and help as much as I can.

Regrettably, the next update WILL be the last one. Since using the in built in update isn’t compatible with my DEOT image, instead of troubleshooting why this is the case, I’m just going to manually edit all of the pull request from the commits in github. This will essentially bring everything up to date in accordance with the official images.

I absolutely adore all of the people who gave feedback showing interest in my project. And even more so, those who gave useful constructive criticism, allowing me to improve the image further. It is those who resort to being rude, personally insulting and overall carry themselves with an air of arrogance and vitriol that I loathingly despise, and turn me against the community.

Removing myself from this project could be for the better, as we forward ourselves to newer found discoveries and genuine breakthroughs in the gameshell’s power. The DEOT image has just about reached the peak of its usability. Projects such as @Joao_Manoel’s slimline Debian image, and @r043v’s Arch image are by far the way of the future, and deserve more of the community’s attention.

Again, I reiterate that this post isn’t to incite turmoil in the forums, or have a big cry about people being mean. Nor am I wanting to say that my image is one that is being held hostage at the behest of the punishment of those to blame for my disappointment. Consider it as a way of knowing that the image has reached the end of its life under my wing, and that if you want to do a final flash of what can be considered the most complete image, now is the time.

By all means, if someone wants to take on the mantle of maintaining the DEOT image after my final image, please do so! Or even do a complete fork going in a different direction.

I won’t be vanishing from the community completely. I will start to use discord more, and communicate directly with those I want to, be it via git hub, or simply DM’s.
I loved the community and I am sad to say farewell. It was just becoming too much of an emotional drain. The forums stopped being a good place to hang and discuss new ideas, and more a soap box for people to whine and point their fingers to blame someone else for their ineptitude.
Thanks for the good times. I will miss all the people I met here.

As for what will be in the final image:

  • a final apt-get upgrade and clean
  • Retroarch 1.8.8
  • Retroarch video filters and audio dsp built, and moved to the correct directory
  • edited mupen config for further compatibility/speed
  • edited mednafen config for more bug fixes
  • pico-8 installer updated to accept and look for the latest file/md5checksum
  • added russian language option
  • Wifi shows MAC Address
  • Bluetooth includes “forget” dialogue when selecting items and pushing Y
  • 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
  • updated lowres NX to support proper resolution
  • fixed keyboard font to allow for more symbols, re: wifi passwords (veramono)
  • DEOT style airplane mode toggle and storage display now accurate
  • MPD spectrum colour correction
  • Tidied up the defined fonts and colours in
  • Optional boot sound - disable it by deleting startup.mp3 from the music directory, or by running the DEOT mode disable script in utilities
  • Added DEOT version info in “about”
  • removed experimental label from LIMA driver
  • cleaned up language ini files
  • Included @Joao_Manoel’s 5.7 kernel, with DEOT splash image (note: wifi won’t be useable via the regular means - see here
  • New Language: DEOT - changes the display of launcher items to reflect what they are called in DEOT V1
  • Included an extra 1200MHz overclock option
  • Verbose/Silent boot.scr toggle in utils/kernel launcher directory

I’ll always keep your ‘image’ in one of my cards, no matter what :slightly_smiling_face:
Your work is amazing and very valuable to community, the number of replies can tell you that.

Hope to see you in other projects :smiley:
And again, thank you @javelinface !!!


Wow, well thanks for everything you did, I really enjoy your image, and I will keep it on my main card for long time, we will see if we see an image that complete.

Cheers!! :clap: :clap: :clap: :upside_down_face:

1 Like

Thanks for all the help - and the DEOT custom!
It has taught me loads about the GS!

Hope you will check in from time to time.

1 Like


Thank you very much for all of your tireless efforts in making GameShell better, and I strongly believe you changed it in almost every way for the better. Good luck with your future endeavors. Personally I think you should get a payment/donation from the Gamesh as a company for doing their work.

Best Regards,

Alan via clockworkpi <> ezt írta (időpont: 2020. jún. 16., Ke 19:48):


You did a great job.
I enjoy the Custom DEOT image.
Thank you very much.

Here’s my modified files.

Use WinMerge to view diff between mod and bak file.

background position fixed center

change to DEOT style

show “Forget” icon at footbar when connected

change to DEOT style

change Msgbox font size to 15

Music Player(
modify text underline color for DEOT(not for Normal)

Music Player(
modify text color for DEOT(not for Normal)
modify spectrum color for DEOT(not for Normal)

disable IsCJKMode function
if UI language is not English, does not show all text at About page

add DrawCross function for DEOT

disable debug print(line 50)

disable update

add boot sound

1 Like

These are fantastic! Ha, I just finished up for the night doing the final touches, and then just saw you post this.

I’ve currently got it set up to switch between DEOT mode and vanilla 0.5 mode, toggling the menu features.
I haven’t looked at your changes yet (it’s 4am) but I’m guessing you’ve done the same. Judging by the descriptions, it sounds like you have a real eye for detail!

Thank you so much for these.

Also, to everyone who sent their support for my work, thank you all for your kind words in the previous posts. I didn’t intend on this being a pity party farewell. More just taking a much less hands on approach to things.

1 Like

I know I’ve been quiet lately too, as other things have come up, but I just wanted to thank you for all the work you’ve done here, and all the support you’ve done here, @javelinface. I don’t think it’s much of a stretch to say you’ve almost single-handedly kept the community going for many more months than I fear it would have lasted otherwise. You’ve certainly been the public facing support for the GameShell, since (I hate to say it, but I think many of us are thinking it?) it seems to have been pretty much abandoned by its creators for some time. Others in the community have done excellent work on the software and engineering side of things, but even that work was made more available and accessible by the effort you put into helping the community. I consider myself a tinkerer, but I probably wouldn’t have even tried to flash the arduino component to add mouse support if you hadn’t tried it and commented on it, since I didn’t really have confidence in myself that I’d get it to work without issue! As for your custom OS work and other tinkerings, it wasn’t just the end result that mattered – you also documented (and again, supported) all of it with an energy and level of detail few paid employees would have probably done. In any case, your efforts were appreciated!

I still think it’s a shame the marketing effort for the GameShell presented it as a “finished” device to play with emulators, first and foremost, and didn’t really promote the tinkering aspects of it much. Based on what has been posted in the past, it sounds like the tinkering aspects were the main goal/vision anyway, and the folks in the community who have been interested in either tinkering themselves, or patient enough to want to learn and figure out how to apply the findings of others have benefited the most. It’s the folks who purchased it thinking it would “just work” out of the box and magically play everything they might want to use it for who have made things more difficult for everyone. And I can’t really blame them, because it was seemingly being sold as a finished device, though the assembly aspect of it probably deterred many folks who were just looking to buy a game console. It is, and can still be, so much more than that though, and I’m glad you, @javelinface, and others in the community have focused on realizing and making it what it could be rather than just complaining about what it was. I’m hoping that work continues, even if at a slower pace. And I’m excited to see where @Joao_Manoel’s minimal Debian OS leads. (I’m really temped to start using it now, but I don’t have a lot of free time, and it seems like it’s still in flux but very nearly done and a stable, nice OS to work from!)


Hi @javelinface,

You did a great work. You spent so many hours on this project, You helped so many people here that a thank you is not enough.

When I bought the Gameshell I didn’t buy it to play games. I bought because I have some projects that would benefit of its modular design, and battery powered board. None Rpi like can be powered by batteries (in a proper way).

The thing I missed was the software. We still don’t have the source code for u-boot which breaks all the “open source game console”. The official OS still need to be improved, and seems like it stopped to be developed. So my main point to use it for my projects broke because I didn’t have a good base to develop on top. So I put the Gameshell on my shelf for months.

Recently I talked to @r043v if someone would benefit of having a clean Debian OS, and we came to the conclusion that you could benefit from it to improve your DEOT image. So I decided to make it. I never though to make a full user friendly distribution, and a custom RetroArch will be the maximum I can do. My intention was always to make something from the ground, show people how to do so they can build on top. Things that we should have had from day 1.

Thank you so much for all your effort, and time deposited to help people. :clap: :clap: :clap:


Precisely what I was thinking, and why I officially decided that the DEOT has reached its peak, and it is now time to put our energies forward towards a project building from the ground up!

Likewise, I was wanting the gameshell as a hardware option; kind of like a self contained raspberry pi that can work with minimal controls. Truth be told, I barely play games on it at all! It’s just fun “getting it working”

Haha in fact, I was just in the middle of making a post re: retroarch ./config options etc, and the way forward given your new discoveries, connections with outside devs re: kernel optimisation, and usage of Bullseye. I’ve been tinkering with your OS, and am finding it fantastic. But I’ll leave that for discussion in that thread, since it would be beneficial for people using the existing system, wanting to upgrade their retroarch.

I am all for detailed instructions and dev logs, since that is the best way to learn, and innovate for yourself. This is my ethos for everything. Sharing and caring. I am so glad I decided to come back to the forums, pretty much as soon as you were posting your discoveries. I would say that this was fate.

You have certainly rekindled my flame for wanting to make progress! It would be fantastic to do it collaboratively with other people, and not just have to shoulder the burden singlehandedly. I’m merely a musician by trade, so don’t do this kind of work on a day to day basis; merely as a hobby. It would be great to see things from the perspective of someone who has a lot more expertise in the field!

Essentially, this project started out after requesting something or rather, here and there. It fell on mainly empty ears, so I ended up doing it myself. Interestingly enough, it was also @r043v who provided me with a lot of help for strange queries. @guu also would assist with a lot of innovations, and resources. And @Petrakis would keep me up to date with small changes that have been made that would be worthy of being implemented. Of course there were dozens more, but these were the people who immediately come to mind. And of course yourself! It was thanks to you that I was able to delve properly into kernel development.

Looking forward to the future! :slight_smile:


Sorry this happened to you, sometimes people can be jerks. I love what you did with the DEOT build, still have it on my machine. I know I was a pain for a bit there myself, mostly not being able to get something working lol

1 Like