-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Read evmapy files #6
Comments
I've had a look at evmapy. As of evsieve 1.3.0, it does not seem possible to convert evmapy files to evsieve scripts due to evmapy having some features that evsieve doesn't, so this feature needs two parts:
Unless there is a really good reason not to, the evmapy script runner should use the same features as the ones available through evsieve's standard CLI UI in order to minimize bloat and maintenance burden. That, by consequence, means that all features that are going to be added for the sake of evmapy compatibilty are subject to UI design scrutiny. One option that particularly stands out is the The "no other events in between the events of the sequence" part is a problem. Evsieve handles more events than evmapy does: for example, evmapy ignores events for movements in the absolute axes unless they reach their minimum or maximum value, whereas evsieve handles an event every time an axis moves, even if by a tiny amount. Evmapy also ignores all events not of type EV_ABS and EV_KEY, as well as all key repeat events. Finally, evsieve is designed to be able to handle multiple devices in the same script, whereas evmapy has a different script for each device (which may or may not be executed by the same daemon; the scripts just semantically do not interfere with each other.) If a sequence can be broken up by any event, then in evsieve it becomes far easier to have a sequence broken because of some sporadic event that does not lie in the sequence. If it should only be broken up by "some" events, then it is nonobvious how to decide which events should break sequences and which shouldn't. I could program a hypothetical So first I am going to need to come up with a UI design for something that can emulate On another note, I've tried googling for evmapy, but while I can confirm that it is being used by some emulators, I cannot find anyone posting their evmapy map files online for others to use. Maybe they are calling them something different, not mentioning "evmapy" in their post? Would you happen to have a link to where I can find these community evmapy scripts? |
Hi Karl, First, thank you very much for your detailed answer. https://drive.google.com/file/d/1MCbu58lCYjwbIG8SC2vta-ARq3TViecN/view?usp=sharing I think a parser converting evmapy json commands to evsieve arguments and exiting with failure code should be enough if encountering some unsupported features like sequence mode should be pretty enough for most use cases :) Let me know your thoughts, and thank you again for taking the time investigating this possible enhancement. Best Regards, |
It looks like those config files are not valid configuration files for evmapy, but for a patched version of evmapy maintained by batocera. Some structural things I noticed about the above config files:
About the content of the files:
The "mouse" type seems to convert a joystick to a mouse and applies some acceleration on top. It seems to be pretty important for batocera to function, so an batocera-evmapy interpreter isn't going to be useful until I implement that. Unlike sequence triggers, it shouldn't be that hard to implement a
That said, this generic solution is not trivial to implement and I do have a couple of higher priorities right now, so I can't say when or if this will be worked on. |
First of all thanks for the clarification @KarsMulder ans detailed analysis. Let's keep in touch on the subject and let the issue open if you don't mind. Maybe I could write a JSON reader and evsieve argument generator on my side as a starting point handling basic stuff. Best Regards, |
Hello,
I am looking into evsieve as a faster and more efficient evmapy replacement for a retrogaming project I am developing called RetroLX.
It looks perfect and maintained, the only thing is I would like to re-use "mapping" files made by community for other projects like Batocera or Recalbox in evmapy JSON format.
Do you think it would be better to write a converter or a build a parser into eviseve ?
Thanks and keep up the great work :)
The text was updated successfully, but these errors were encountered: