The 4th Clockwork Game Jam Event (2019Q4)

Thanks! This newer repo for mcrpi-wrapper does get farther and I was able to reproduce your results here.

I wonder if anything from these projects would help?
http://chip.jfpossibilities.com/gits/chipcraft.git/
https://github.com/thp/eglo

I took a look at the chipcraft one, and make similar edits to the resolution (320x240 for us) and SDL call, but it still fails with that glGenFramebuffersOES error. I guess that just needs to be implemented (or somehow wrapped/stubbed) in Lima?

yes i think we must wait for lima support, or found anything to emulate missing functionality

we could also try alternatives projects like gl4es of ptitSeb

I’ve been working with ptitSeb’s wrappers and stuff to get some more games working via box86. It was a lot of building and a few tweaks to get it to work, but his old odroid guide online has helped. Here’s aa link to the discussion and pointers to various things:

So far the custom mono and gl libraries have allowed me to get some surprising (to me) games sort of working on the Gameshell. But unfortunately the 320x240 display and lack of a mouse or touchscreen limits the ones that are actually playable. While games like Stardew Valley should work, I’ve been focusing on trying to get Fez working since it should be playable with the Gameshell controls. I managed to get it to load up and the menu works great but I’m still getting a crash shortly after that. Since it works on other similar devices like the Odroid and Pyra/Pandora I’m hoping to get it working on Gameshell.

I already tried just putting the custom gl and mono stuff in the same place as bcmhost but it didn’t seem to have any effect on that error. :frowning: I’m still learning as I go, so it could have been my own user error.

1 Like

I was looking into that other Steam Link thread and found this:

Do you think that exodus project might help solve some of the library issues we’re having here? Maybe running it on a Pi would allow us to package up things properly for the Gameshell? Might it work for these Pi games, and also something like Steam Link as it was used for here?

1 Like

for mouse support you could try this keypad firmware fork :sunflower: Modify the Keypad firmware to simulate the mouse.修改键盘固件来模拟鼠标

in the same spirit of emulating missing device you may check moltengamepad to transform the keyboard pad as a real gamepad, played a bit with it some month ago but just get segfault

glad to see ptitSeb is pretty open & active :slight_smile:

(offtopic but i directly run some gog installer with success, screen is small so we have to blindly press next until license validation & can’t see progression but it’s setup fine !

I’m still learning as I go

that’s the way to do, each days a step more

I already tried just putting the custom gl and mono stuff in the same place as bcmhost but it didn’t seem to have any effect on that error.

i’m also pretty new at all this library madness, have you tried use LD_PRELOAD to force using this specifics libs ?

exodus project seem to really be awesome, away from gs i think it could greatly help when chrooting ssh users on servers, thanks for the link !
yes i think here it could help us to isolate some specifics things & see real deps but trying have all running with mainline must be the real goal, we must wait real lima advance or try faking things like overiding gl version > MESA_GL_VERSION_OVERRIDE=3.3

2 Likes

for mouse support you could try this keypad firmware fork :sunflower: Modify the Keypad firmware to simulate the mouse.修改键盘固件来模拟鼠标

I had forgotten about that post, thanks! I’m still a bit hesitant to reflash my gamepad, but it sounds like the solution provided here is elegant, and even makes good use of the shift button as a toggle (which seems seldom used anyway). Combining that with the xmodmap approach (for all but the two keys assigned to mouse left/right click) should allow for any simple mouse+keyboard game to work. I’ve already got about a dozen games working that were unplayable due to requiring a mouse, and I actively avoided trying games I knew would require a mouse like World of Goo (which should also work via box86). So I think you’ve finally given me a reason to take the plunge and flash my keyboard firmware. :wink:

in the same spirit of emulating missing device you may check moltengamepad to transform the keyboard pad as a real gamepad, played a bit with it some month ago but just get segfault

Thanks, that’s a cool idea too, but I’m not sure I’ve found a game yet that didn’t have keyboard controls too. They aren’t always configurable in a game, but with xmodmap I just reassign to whatever I want on Gameshell. I decided to even do that for games with configurable keys, so they worked without having to do an in-game config remap. So until I find a game that I want to play that only works with gamepad controls, I’ll probably avoid this project. :wink:

glad to see ptitSeb is pretty open & active :slight_smile:

ptitSeb has been incredibly helpful! And it seems like box86 gets commits practically every day! Lately it’s been about converting it to a library, but new opcodes are also being added, and I’ll be contributing some missing ones soon which hopefully can be implemented. :slight_smile:

Cool about the GOG stuff. I’ve got a lot of stuff on Humble Bundle but never really gone the GOG route yet. It’s kind of magical to see these old (and sometimes even pretty new) games running on Gameshell!

i’m also pretty new at all this library madness, have you tried use LD_PRELOAD to force using this specifics libs ?

I only just started using it, mostly thanks to stuff posted here. I also started using some of the more obscure env variables that box86 understands. Previously I just let it do what it wanted to do by default, but I’ve gotten a few games working by forcing it to use emulation on an x86 version rather than the native one it wanted to use by default (which was missing some routines). I’m pretty sure I can get more stuff working this way, so I’m going back through the “broken” games that I saved, and I’ll see if I can get them working. Libraries seem less confusing now, but they are still kind of a mess!

try faking things like overiding gl version > MESA_GL_VERSION_OVERRIDE=3.3

Interesting. Hadn’t seen that mentioned before. Let me know if you end up finding a use for it.

I think I’ve currently got enough to play with now, going back through the games and trying to sort out library issues and supply ptitSeb with missing dynarec opcodes to help improve box86 compatibility.

I’ve also been thinking more about how some of this stuff might be packaged up for others to use. Freeware games can just be packaged up and put in warehouse, like I’ve already started to do. I guess technically there might be some licensing issues even there, but I’m hoping it’s not frowned upon, since I’ll always at least link back to the original source, etc. Commercial games are a lot trickier to make “easy” to install, since they obviously won’t work without the commercial game content and that would have to be supplied and installed somehow. Right now that means hacking around and copying/renaming/editing files, and that is not the kind of “easy” that I’d want for a Gameshell installer. I’ve got an idea of how to use the warehouse with install scripts that check for the existence of files, and either run it if it’s there, or install it if it isn’t. The problem is, depending on where the game came from (Humble/GOG/???) it might be packaged up differently so automating the process would break if it didn’t match up. And I’m not going to buy a bunch of games to be able to support them all. :wink: I don’t mind trying to set it up for some Humble Bundle games I do own and have gotten working, but in that case they’d only work for others that have the exact same version.

I plan to create a warehouse soon (probably this weekend), testing out my ideas and allowing for the install of some packages via apt. For instance, I’ve already some games like Ur-Quan Masters working fine, and they were installed by apt commands, along with a bit of xmodmap stuff in the launch script. For folks wary of SSH, a warehouse could give them a way to install these games easily. I’ve already got a way to display the output of the install via x-terminal-emulator. It’s ugly on the display, but it at least shows that something is going on when the apt install runs, and allows for taking the default Y answers with the start button, etc. Anyhow, I’ll be posting another warehouse sometimes soon.

2 Likes

I didn’t have time to get much done yet, but I did apply the mouse keypad firmware hack. I’ve only tried a few games, but so far it works great! The tutorial in that referenced post wasn’t as clear as it might have been, particularly regarding what file to load in the Arduino software (it was the clockworkpi_keypad.ino file), but I figured it out. It was also easier to open the case and plug in a usb cable for updating the keypad than it is to remove the micro sd card from the device. :wink:

Being able to toggle mouse support on and off will be helpful for all sorts of things. For instance, I’ve avoided Pico-8 games that require a mouse, but I’m thinking they’ll be playable now.

/usr/local/lib is probably not in the default path for the dynamic loader to search for.

For that you need to make sure that /etc/ld.so.conf or any of the imported files (if it does so, like in /etc/ld.so.conf.d add that path into the folders to look for.

-splore is probably useless there on the command line as for DISPLAY=:0

Not sure if this will display properly here, but the link should work. I got World of Goo running using box86 and it’s playable with the mouse hack.

No sound here, and I captured it using VNC to display the remote screen, and a screen capture utility on my desktop, so it’s actually a little smoother than shown. Not sure why but at about 1min the connection went dead and there were no updates for about 10 seconds – that was an issue with the recording, as the Gameshell continued to show thing properly.

http://michaeladcock.info/temp/worldofgooGS.mp4

initially i wanted create an alternative firmware for the keypad, maybe set shift as real shift and menu key as similar modifier key

primary motivation was retroarch inputs who cannot be redirect with xmodmap, it will also extend keys numbers

glad to see the mouse firmware work fine, as it doesn’t have any counterpart it may be mainlined ?

I’ve got an idea of how to use the warehouse with install scripts that check for the existence of files, and either run it if it’s there, or install it if it isn’t.

yes, packaging games can be a license mess, along they come from gog or humble & co, they could need some script to run, to catch assets files (like vvvvvv) or shareware data and similar things, you reach warehouse limitation,
like you mention warehouse could still be an entry point to run some script but yet i still think use real apt repository is the right way to go, allowing deps, scripts, update & uninstall

for apt confirmation you may try running it with

apt-get --yes --force-yes

have world of goo running is pretty awesome !

glad to see the mouse firmware work fine, as it doesn’t have any counterpart it may be mainlined ?

I agree, this would be a nice update to official Gameshell firmware. The problem is, anyone with a device already would need to do the update themselves. It turned out to be a fairly simple process, but I think it should be considered an “advanced” modification. Opening the case to get to the keypad USB connector is the easy part, but it requires downloading and installing the Arduino IDE, some configuration within that tool, and then flashing the new firmware to the device. I’m not sure how foolproof it is – I don’t know what would happen if the wrong data was flashed to the keypad. There might be a way to brick it? I’ve never done anything with Arduino devices before so I don’t know how risky it is.

So I’m not sure how practical it is to encourage everyone to use this method. But we could document it better and make it more accessible. I haven’t edited anything on the wiki yet, but I’ve been thinking at some point I need to document the box86 stuff there (in addition to providing more warehouse content). I could also document the mouse mod on the wiki and maybe make the process a little less confusing. Right now it’s pretty much lost in the forum, like a lot of stuff is. I had completely forgotten it existed (even though I was excited about it when I first read it), so it effectively got buried here. :frowning:

1 Like

there must be an onboard bootloader who still can reflash bricked device case

we do not need full arduino ide to program the board, avrdude can be used from command line,
there is some gui who exist, but as the board and usbtty are fixed a simple script could flash it directly, real trouble may be to find what com port is used

1 Like

That would be interesting if it could be done with only the Gameshell itself, and a USB cable (although it would have to be male micro usb on both ends).

I suppose using a USB otg cable could help with that.

Re: the keyboard getting bricked, I’m reminded of the period when they accidentally shipped out keyboards with no firmware flashed to it, rendering it unusable. I don’t remember if there was ever a solution to that besides shipping out replacement boards.

There was, I wrote somewhere how to flash them but required having another arduino based board, and wires an probably a usb serial converter.

So for those who didn’t have atleast another arduino, it was impossible.

1 Like

The voting period is over, however I am not entirety sure of the results. As of writing this post, there is not an “Overall” category on the game jam’s results page. There are only results for each individual category.

There were 33 ratings this time around with an average of 4.7 ratings per submission. More importantly there was a median of 4 votes. That seems like a decent turnaround, but I am still wondering if there will be any external judges weighing in on the final results.

If voting is all done then these are the final results:


(Feel free to check my data entry and math.)

The ratings for Robosses, Robo, and Scratch were all adjusted because their number of ratings were less than the median. I understand why itch includes such a system, but I am not sure if it is really necessary when the total amount of votes is already so low. In case you are wondering how the ratings are adjusted here is the formula:


Note that this formula is only applicable to entries that have a total amount of ratings less than the median. If an entry’s total amount of ratings is greater than or equal to the median then its raw rating is its final rating.

I only bring this up because initially I used the raw ratings to compile the chart and the final results were different.

Ideally everyone should be rated by the same amount of people to avoid this scenario. Considering that there are prizes at stake, we really have to nail the voting portion of the game jam to avoid any controversy.

Besides the idea of having a set amount of external judges that play and rate every game, I am not really sure how to tackle this.

All in all, I think we made great progress in terms of the quality of this game jam by incorporating the new Warehouse feature. Although, it looks like we still have to streamline the final voting process and dealing with the end results.

1 Like

Thanks everyone for participating in our Q4 Game Jam!

We had 7 entries and 33 ratings, some of the games look interesting and some are creative. After careful consideration and heated internal discussion, we are going to leave the first place award vacant this time again. We think we should set the bar high and keep the standard at the same level as our previous jams.

So the final result will be:

Top 1 award winner: vacant

Top 2 award (1600 CPI points) winner: Cat at home

Top 3 award (1000 CPI points) winner: Robots vs The World

All award recipients, please provide us an Ethereum-supported digital wallet address. If you wish to exchange CPI points for GameShells, please PM me your shipping address, and number of points to use.

We are sorry that this result may be a disappointment for some participants, and our organization of the Game Jam events is far from satisfactory. We have been struggling with getting more participants and more independent judges all the time, as a small team with limited resources (BTW, we are actively looking for angel and VC investors, please help us spread the words). It is our hope that these game jams will help attracting more indie game developers to our open platform and help growing our GameShell user community. We tried and will keep trying to modify the rules and implement features like warehouse, we need your support to keep hosting this event.

As a side note, you probably knew that our manufacturing and shipping operation have been seriously disrupted by the recent Coronavirus outbreak in China. We hope to get your understanding if your service or shipment were delayed. I wish 2020 could be restarted.

Yours,

Clockwork team.

“We Have Hope. Rebellions Are Built On Hope!”

1 Like

Hi Yong, thanks for letting us know the ranking. May I kindly have your email to send you my shipping address? Many thanks from QKBoy.

1 Like

Sorry to hear about the outbreak. Hopefully you all are well.

About the next jam, though… Can we just appoint some judges in the Gameshell and fantasy console community and have them do ratings? I’ll recuse myself from competing and organize instead if that’s what is needed. Because the way voting has been handled for every single jam here is plain ridiculous (ridiculous in new ways each time though, so at least there is that.)

I don’t care if I can’t compete in the next one. I’d just like for at least someone to reach that top 1 spot. And to break new ground here by – hopefully you’re sitting down before you read this – laying out fair and consistent rules for judging, and then… bear with me here… actually following through on them.

Would everyone be up for that?

6 Likes

Hey, I’m groverburger - I made the game that won third place, Robots vs The World. I just joined this forum so my profile here is at level zero and I am therefore unable to send you a PM with my shipping details.
Is there an email or some other platform where I can send them to you instead?

EDIT: as of posting this reply I’m now at a high enough trust level to send you a PM. Expect one soon.

1 Like