Coder Social home page Coder Social logo

wins1ey / libresplit Goto Github PK

View Code? Open in Web Editor NEW
20.0 4.0 5.0 555 KB

Free speedrun timer with auto splitting and load removal for Linux.

License: GNU General Public License v3.0

Makefile 1.77% CSS 1.69% C 96.54%
auto-splitter autosplitter speedrun speedrunning timer linux

libresplit's Introduction

wins1ey

libresplit's People

Contributors

dependabot[bot] avatar drayux avatar extremeexploit avatar loomeh avatar wins1ey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

libresplit's Issues

LAST does not respect Window Manager quitting.

Using my window manager's keybind to close the GTK window does not stop the LAST process from running.
Right clicking the window, selecting quit does cause the process to stop.

Tested on Arch, running qtile.

LibreSplit Lua functions don't call when they should.

Been trying out some games with LibreSplit and I notice that none of the autosplitters I've made actually work anymore.

LibreSplit seems to ignore some or all calls from the Lua runtime.

For example, in Tony Hawk's Underground when I get to Manhattan, the timer recognises that it should split, because debug text prints. However, it doesn't split.

For Mirror's Edge Catalyst, it prints out the functions it should be calling, but doesn't actually call them.

I also get a bunch of EFAULT invalid memory space errors.

LiveSplit Auto Splitting Runtime Proof of Concept

I'm not sure if you guys are aware, but we've been working on developing the "next generation" of auto splitting in LiveSplit recently. The idea is to do it right this time, solving the following problems:

  1. We want the runtime to be portable across different operating systems, such as Windows, Linux, and macOS.
  2. The runtime should be sandboxed. It shouldn't be possible for an auto splitter to steal your passwords or delete your files.
  3. The language you write your auto splitter in should be your choice.
  4. The new runtime shouldn't be allowed to work with LiveSplit's internals (which made it hard for LiveSplit to ever change its internals). So the new API needs to be cleanly defined and be portable to other timers.

All of this already works, but due to the sandboxing approach, not every auto splitter can be rewritten for the new runtime yet. Unfortunately with the way ASL works (accessing internals and being a C# dialect), it has turned out to be quite hard to port it to the new runtime. So for now I've actually looked into JavaScript / TypeScript to be the successor language for ASL. I've however also considered Python and Lua. In the end we'll probably support all of them anyway. So I really like that you guys are exploring Lua here.

I've been curious how easy it would be to plug the auto splitting runtime into LAST, so I've written up a branch that provides a Proof of Concept implementation. It already works perfectly fine, but it lacks some things that the Lua implementation didn't provide either (skipping splits, setting game time, querying the timer state, ...).

CryZe@8be2448

If you want you can plug in this runtime, which will automatically make LAST compatible with all future LiveSplit auto splitters. I also still encourage you to work on the Lua auto splitters, as I believe that's indeed a great language that we probably want to support in the runtime as well. In fact it would be great if we worked out the design of the Lua auto splitters such that LAST's lua auto splitters can be compatible with LiveSplit('s auto splitting runtime) as is.

Keep up the great work :)

Timer as IGT

Hi, does LAST support IGT, I am porting Dino Crisis Live Splits to LAST, it works fine apparently but it uses RTA instead of IGT, is there any way to make it work with IGT?

Compilation issue on Ubuntu 22.04 Kernel 5.19.0-46-generic

I already installed all lua*-dev avaliable on ubuntu repositories and the issue persists. What is the correct lua version necessary to compilation?

xxd --include last.css > ./src/headers/last-css.h || (rm ./src/headers/last-css.h; false)
g++ -std=c++17 -I/usr/include/curl -I/usr/include/lua5.* pkg-config --cflags gtk+-3.0 x11 jansson -O2 -pthread -Wall -Wno-unused-parameter -c -o bin/objects/autosplitter.o src/autosplitter.cpp
src/autosplitter.cpp:12:10: fatal error: lua.hpp: No such file or directory
12 | #include <lua.hpp>
| ^~~~~~~~~
compilation terminated.
make: *** [Makefile:35: bin/objects/autosplitter.o] Error 1

Hardcoded sudo in Makefile makes installing in systems without sudo impossible

Pretty much what the title says. I use a system that has doas instead of sudo installed and I had to delete every single usage of sudo in order for it to compile.

Why does the Makefile have sudo in every install/uninstall command? Usually Makefiles expect the user to add sudo or doas to make for those tasks, so this is kind of strange to encounter. There's other weirdness in the Makefile that doesn't make sense (such as not using PREFIX to make sure everything goes into /usr/local and instead dropping everything in /usr except the bin), but this is the only one that actively prevents compilation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.