for mouse support you could try this keypad firmware fork 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.
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.
glad to see ptitSeb is pretty open & active
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.
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. 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.