toxicfrog / emufun Goto Github PK
View Code? Open in Web Editor NEWA frontend for launching emulators and other programs using a gamepad
License: MIT License
A frontend for launching emulators and other programs using a gamepad
License: MIT License
With long filenames it should be easier to tell which one is actually selected, either by shading them or surrounding them with a box or something.
It would be nice to be able to control emufun over the network, without needing a physical controller. We can already do this with VLC, after all.
First draft design: spawn a background thread with a listen socket. When it gets a command message, pass that to the main thread, which checks it (probably in the input event dispatcher?) once per frame. So then you can send commands as event names like "up" or "key_r" and boosh!
At the moment, when an unexpected error occurs, emufun goes to the love2d error reporting screen, which is (a) hard to read and (b) doesn't let you do anything except quit the program. It would be nice to gracefully recover from errors, for example, by displaying the error message but then giving the user the option to return to the top of the library.
Obviously not all errors can be recovered from, but for ones that can this would be nice.
Suzie has a habit of flopping on the keyboard early in the morning. In the best case this means we wake up three hours early to the sound of Jeremy Clarkson explaining why caravans are the devil. In the worst case it means she finds the quit button and spends the next hour exploring the contents of my desktop. Emufun needs a mode that can be toggled on and off from the controller which disallows everything except controller input.
Specifically, EmuFun does not cope well when upgrades change aspects of the configuration files, and throws.
For minor config updates (new keys), it should have sensible defaults. For major updates, where compatibility cannot be automatically guaranteed, it should produce sensible error messages.
In the former case it would also be nice to have it append the new keys to the config file - we can't just re-output the entire thing from the computed results, because the user might have interesting logic, but appending should be safe. This also needs some kind of versioning of the config file.
There should probably be a more general meta-bug for turning throws into error messages, since right now there's not really any recovery possible if an error occurs.
EmuFun should keep track of which files have been viewed (using a .emufun-watched file or similar). This is mainly useful when watching TV series, rather than when playing games (which it turns out is what we've mostly be using emufun for after all).
It should also be possible to manually toggle the watched status of something. This may require a UI redesign.
It should be immediately obvious when EmuFun is loading something. Otherwise it's not clear whether it's doing a big load, or hasn't registered your input.
Right now there is a long delay while emufun (re)scans a directory, especially when accessing a network mount from windows. It would be nice if it could scan the media directory in the background during calibration.
Love2d has limited threading support, so it could spawn one or more threads to do filesystem scans in the background while the user is calibrating or scrolling through the directory or the like.
The hard part is communicating the results back to the main thread; in particular, love2d doesn't support transmitting tables between threads. I can either find a workaround, or submit a patch that adds that feature.
Latter requires storing the table in C/space because love2d ITC routines are mostly asynchronous. Blergh.
It'd be nice to have an android app that acts as a remote control.
When using R to fast-reload emufun, it appears to work but key repeat settings don't get applied, implying that something is not getting properly reloaded.
The current user interface is kind of clunky. It would be nice to be able to do more things to items than "activate". Perhaps this is as simple as adding a submenu to each object containing more options, perhaps it needs a more fundamental redesign.
It should be possible to scroll through a game/video list by holding down a direction key.
Emufun currently crashes when run under 0.8 due to changes in the font handling API.
It should give you the option of either quitting or rescanning instead.
This is believed to be an issue with luafilesystem on windows. Solutions are probably to use a custom build of love2d with luafilesystem linked into it directly, or somehow avoid the use of luafilesystem entirely.
It really should rescan every time the directory is opened.
When EmuFun is loading something, it continues to buffer events. This means that if the user presses more keys, they will all take effect as soon as it finishes loading, often with unwanted results.
#13 should address this somewhat by making it clear that emufun has actually registered the input, but this will help deal with accidental keystrokes as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.