#TRBot

Finally, a long-awaited feature players on #type2play have been asking for, which wasn't possible until now: permanent holds! Using the prefix modifier ^ it'll never let go of the input unless explicitly told to. This is useful in games like #supermariobros or #banjokazooie where you hold down a button to move faster. Players would get around this by holding the button for a very long time (~2 minutes), but with this it'll no longer be required!

#trbot #rust #gaming #programming #linux

Next up is linking with macros! Internally, what this does is simply put all the macro inputs into a grouping. As a small optimization, macros with a single instruction (standalone or linked OR a grouping itself), are not put into a grouping to speed up the processing done by the input handler.

#trbot #rust #programming

Overdue post on new features implemented in the #trbot #rust lexer.

First up is the generalization of the concept of grouped inputs. Anything in a grouping is in between [] and can be linked with any other instruction type to execute everything in parallel.

Long time no post. The #rust TRBot lexer is feature complete now, and I ran a few tests with the #type2play community to test how well it works. There was a desire from players to use the old syntax, so I ported the legacy parser from #csharp to Rust and implemented a way to convert new inputs to old on the flly. This will help gradually ease players into using the new syntax.

Yesterday, I added the first new feature - linking repeated inputs with other inputs.

#trbot #freesoftware #foss

After the parser is done, my plan is to write a validator that uses data from #trbot to map the inputs to buttons and axes on virtual devices.

Before starting this, I already took a dive to refine my #rust skills by writing native virtual devices using #evdev-rs that can be plugged into TRBot at a later time: codeberg.org/kimimaru/UinputVi

I have yet to implement the wrapper for vJoy, but I'll be prioritizing uinput and #gnu / #linux as that's what I use and run my Twitch Plays streams on.

The #csharp version of TRBot uses a big regex for the syntax, which has worked for a long time but also issues. If there's an error in the syntax and the regex doesn't pick it up, there's no way I could indicate what went wrong.

For this new approach, I took lots of learnings and inspiration from the excellent Crafting Interpreters: craftinginterpreters.com/

The requirements for #trbot are different, but the concept is similar. There's more work involved, but I also have much more control.

I've been inactive here over the past months, but I've been keeping busy.

I exported most of the #twitch highlights on the #type2play channel to YouTube. Twitch should've given more than 2 months after the 100hr limit announcement.

I've been hard at work on a proper lexer for #trbot written in #rust. The scanner is done and the parser is just missing macro support. Already 300+ unit tests. I made syntax changes for the better. However, there's nothing usable yet. Link: codeberg.org/kimimaru/TRBotSyn

@raniz @beandev With #wasm would I be limited to the Web APIs? #TRBot deals with virtual devices created from native code, and I would need a way to interface with those.

I've considered rewriting #TRBot in another language, given how #csharp is still non-free after 10 years (github.com/open-dotnet). I don't have high hopes for its future so long as it remains controlled by #microsoft.

I've been looking at #rust for its high performance without the memory management of #cpp. One feature I need is the ability to execute custom code (codeberg.org/kimimaru/TRBot/sr).

Would #lua bindings with rust be a way to do this? Open to suggestions!

#freesoftware #foss

I decided to do some more work for #TRBot today after a while. I use VSCodium with a C# extension that turned out to not be working well after all this time.

So I thought I'll upgrade. What did I find? To make the newer C# extension work, you need ANOTHER extension, and the C# extension has turned from #freesoftware to #proprietary garbage. In the end, I didn't manage to get it working at all.

Lesson learned: stay far away from #csharp. And also anything #microsoft makes while you're at it.

It's been a while, so have a collaborative play stream! Come join us play Super Mario Odyssey collaboratively through text at Type2Play!

twitch.tv/type2play

Now you can also play on our #matrix room at Type2Play Game Control - however, the stream is on Twitch.

#twitchplays #streaming #trbot #type2play

#TRBot is mentioned on the latest This Week In Matrix (#TWIM)!

matrix.org/blog/2023/06/30/thi

With the latest 2.8.0 release, TRBot supports playing video games collaboratively through Matrix rooms, and with the help of Matrix bridges, **many** more platforms!

Happy to bring more value to the Matrix network!

#freesoftware #videogames #matrix #foss

#matrix integration in #TRBot is going really well! Here's the first signs of life. The integration has been extended to TRBot's #chatdisplay, enabling incoming Matrix messages to be displayed on a stream!

Soon it will be possible to remotely & collaboratively play games through text in Matrix rooms! 😃

#videogames #gaming #chat #freesoftware #foss

A screenshot of typing the "!help" command in a Matrix room. TRBot is running in this room and sees the message, responding to the command.A picture of Matrix messages from TRBot being shown in TRBot Chat Display.

I was playing #eastward and farming Pixballs, when a bulb in my head lit up. Why not use #trbot to farm for me? So that's exactly what I did.
#gaming #indiegame

Type2Play is live with a Twitch Plays of Pikmin 3 Deluxe using #TRBot! We're currently at Day 1 with plenty of adventures awaiting us!

twitch.tv/type2play

#twitchplays #pikmin #nintendo #nintendoswitch #gaming

Working on a new #freesoftware #Matrix SDK for #csharp, primarily for use with #TRBot. Unfortunately, I couldn't find many well-maintained C# SDKs to begin with, and the ones I've tried simply didn't work for me.

#TRBot is software that allows for playing video games remotely and collaboratively through text.

Check out our roadmap for version 2.8.0, which includes playing games through #matrix rooms: codeberg.org/kimimaru/TRBot/pr

#freesoftware #videogames #foss

#TRBotChatDisplay v0.2.0 is finally released! Now you can display chat messages from #TRBot onto your stream in a simple and streamlined way!

This release transitions the application from Eto.Forms and #csharp to #qt and #cpp. As a result, it's lighter, truly cross-platform, and has more features than before!

Check it out! codeberg.org/kimimaru/TRBotCha

#freesoftware #streaming

#TRBot will remain in C# for the time being. There is a technical hurdle switching to C++ or another language with all the libraries it depends on.

Rewriting it in another language is an enormous effort, and I need to do extensive research to figure out how to convert everything.

However, it's not a priority at the moment. All of my new projects will be in a non-Big Tech-run language unless I have a really good reason to specifically use C#.

#TRBot #rewrite

#TRBot 2.7 is out, featuring many quality of life features and improvements for hosts and players! Oh, and the README has been revamped as well 😁

codeberg.org/kimimaru/TRBot/re

#freesoftware #dotnet #csharp #foss #videogames

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst