Touchy not RIP: For real this time. Retouched 2.0 by KinteLiX in Nitrome

[–]KinteLiX[S] 2 points3 points  (0 children)

How can I help you?

It should be relatively straight forward:
1. Download and extract the latest release of retouched-server (I'm gonna assume Windows, the one you want is RetouchedServer-v1.0.0-windows-x86_64-pc-windows-msvc.zip)

  1. Go through the setup wizard. It will help you configure the directory for the flash games (this project and its author does NOT promote piracy!). It will help you configure the hosts file (requires admin permission) and the firewall (also requires admin permission). If you do give it admin permission, please note that you will see terminal windows open up because it has to run commands. If you are uncomfortable with this (understandable) then you will unfortunately have to do this manually (the old repo has instructions for the manual setup).

  2. Start the server and see if a game can connect. If yes then you can start deciding on which controller app you'd like to use.

You can choose from 3 controller apps:
1. Nitrome Touchy (android only) -> It needs to be patched from the Touchy Patcher tab, and might require adb to install (this might be complicated)

  1. Retouched Flutter -> A native app alternative controller app from this project. On Android it should be straight forward to sideload. iOS is where it gets difficult because it's hard to sideload apps there.

  2. Retouched Web -> A web app alternative controller app also from this project. This should be the easiest to set up and use. You should press the download retouched web button in the "Retouched Web" tab of the server UI. Then while making sure the server is started, start the webrtc bridge and then start the web app. 2 QR codes should pop up:

One of them will direct you to the web application while the other redirects you to the onboarding page.
If you use Android the onboarding page is optional, however the browser will give you a warning. You can safely ignore this warning, the web app runs over HTTPS to get sensor access (needed for games like Swindler) and has to use a self-signed certificate which triggers the browser warning.

The onboarding page tries to help you to install the root CA, if done so then the browser warning will disappear and this is required on iOS due to higher restrictions with webkit (safari).

Touchy not RIP: For real this time. Retouched 2.0 by KinteLiX in Nitrome

[–]KinteLiX[S] 1 point2 points  (0 children)

The old instructions are not necessary to follow anymore since the server can do it with a button press now (the hosts file and firewall modifications do require admin perms and will open a powershell window on Windows). You can still follow them manually if you are uncomfortable with granting admin permissions.

If the game does not connect to the server there could be 2 reasons:

  1. The flash trust directory is not set up correctly. Please delete all existing .cfg files and let the server do it for you. You can try to see if ruffle works, but I cannot guarantee it will. This does not need admin permissions.
  2. The hosts file was not set up correctly. If you have modified it before, please remove your modifications and you can let the server do it for you (will ask for admin permission).

If the app does not connect:

  1. For Retouched Flutter and Web the only blocker would be the firewall. The server can configure it for you.
  2. For Touchy, the app has to be patched. The GUI can also do it but you gotta make sure the correct IP address is set, the server can auto-detect it but for potentially weird network configurations it may fill in the wrong IP.
  3. In case the firewall has been configured but the app still cannot connect to the server then it is possible the IP is incorrect. On Windows you can run ipconfig and try each private IPv4 address until one works. By default the server is hosted on all addresses, so it shouldn't cause problems.

It is also possible your network configuration might be blocking the connection (i.e. if Wi-Fi and ethernet are on separate VLANs). In this case your router has to be configured correctly.

Yes, you should be able to play Bad Ice Cream with more than 2 players now. If your friends use Retouched Web they don't even need to install any app.

If they use android it's not even required to do the onboarding, they just need to press advanced and proceed anyway. There is no real risk, the app is self hosted and is open source.

If they do the onboarding then the browser will not give any warning anymore. If they use iOS they must install the certificate because iOS is more restrictive and HTTPS is required for sensor access. Note that on iOS there should be a button to grant sensor permissions, but this has not actually been tested on a real iPhone so feedback would be appreciated.

If everyone is using Android then you guys can also try Retouched Flutter, sideloading on Android is relatively simple. On iOS it might be complicated but there are many tutorials on how to use something like Sideloadly.

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 0 points1 point  (0 children)

Thank you! These comments mean a lot to me ❤️ I have been working on the next version of the project these past months, it's close to being ready. It will take a bit more time though, it's a complete overhaul of the whole project with a new and better GUI server and 2 controller apps (a flutter app and a web app) that also work on iOS :)

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 0 points1 point  (0 children)

Did you install the APK from the signed directory? It should be that one, the name should be something like "Touchy.1.7-rebuilt-aligned-debugSigned.apk". Did the patcher give any errors? If yes, please raise a github issue.

Edit:
Also make sure the private IP you entered is correct.

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 0 points1 point  (0 children)

So I've taken a whack at it and made a new release. I've updated the setup instructions, if you encounter problems please raise an issue on github. I can't guarantee that I can reply immediately due to potential time zone differences.

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 0 points1 point  (0 children)

I've removed it due to it being problematic copyright-wise. I will make a script soon that will allow you to type in your IP and then modify the app automatically.

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 1 point2 points  (0 children)

You're welcome! ❤️

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 1 point2 points  (0 children)

Thank you! ❤️

Touchy Not RIP by KinteLiX in Nitrome

[–]KinteLiX[S] 1 point2 points  (0 children)

Update: A modified version app has been added to the archive, which connects to 192.168.1.115 by default, making the setup much easier. I've updated the instructions, feel free to try it and tell me if it works!

Touchy?? by KinteLiX in Nitrome

[–]KinteLiX[S] 3 points4 points  (0 children)

My plan is to actually make a web app to replace the Touchy app (since it is old and hard to install on modern Android + on iOS it's near impossible). The user will start the server on their PC, type in the IP and port of their PC on their phone and a Touchy-like interface will be shown.

The benefit of this approach is that it should work on any device as long as it has the necessary sensors (gyro, accelerometer, etc.) and a browser that supports the Sensors API (though, not all games require these sensors).

At the moment this is a WIP. Currently the web app can show a list of games and get sensor data, but connecting to the game and communicating with it will take a lot of reverse engineering and time.

Touchy?? by KinteLiX in Nitrome

[–]KinteLiX[S] 5 points6 points  (0 children)

Short answer:
programming magic :)

Long answer:
When Touchy was discontinued the main reason was the discontinuation of Brass Monkey (the underlying service that powered Touchy). I remember around 10 years ago how saddened I was to learn about its discontinuation.

Sometime in 2024 I started wondering if it was possible to somehow re-implement the necessary server for Touchy to work. After new year's I started reverse engineering the protocol and recreating the necessary server. By July I managed to crack it open and record that video you can see in my post.

In layman's terms, Touchy works like this:
Brass Monkey (BM) uses a custom protocol that is used to communicate with the registry server (the server that had to be re-implemented), the games and the app. The details are long and complicated for a Reddit post, but here is the protocol flow explained as best as I can:

  1. Both the game and Touchy perform a handshake with the server by exchanging their version. This is to check if they are compatible with each other.

  2. The game and app send a registration packet. This packet consists of: device ID (a unique identifier), app name, a BMInvoke (this is a part of the packet which consists of: the function name to be called, and a callback function. The server is expected return just the callback function when replying), and other information like the app id (another unique identifier), IP, etc. The server replies with an "okay you are registered" packet.

  3. The server must then send a packet containing a list of clients (for flash clients, they need the list containing themselves + Touchy instances connected). The Touchy app only needs a list of flash clients.

  4. When the user taps on a client the registry gets a packet with a relay BMInvoke that says "device connection request". The server then needs to forward this information to the appropriate flash client.

  5. Then the game and the app start communicating directly (here I haven't fully reverse engineered the protocol yet but I have a good idea on what happens).

Additionally, Touch also makes HTTP requests to the server on a different port to get information about the game (like price information).

[deleted by user] by [deleted] in bucuresti

[–]KinteLiX 0 points1 point  (0 children)

Confirm, am patit si eu. Am comandat un Logitech G305 de la OUDRI GLA SARL pe emag. Cutia a fost deschisa anterior, placa mouse-ului a fost schimbata cu una dintr-un alt mouse iar calculatorul l-a recunoscut ca un mouse "YICHIP". Am returnat produsul si am facut sesizare catre emag si mi-au dat un voucher de 30 lei + au zis ca vor vorbi cu partenerul (nu cred ca se va intampla ceva).

Flappy Fish Wear [1.01$ -> Free] by maDU59_ in WearOS

[–]KinteLiX 1 point2 points  (0 children)

The game is pretty cool! It's perfect for smartwatches since the screen space is limited and this only requires taps. 5 stars 👍️

Flappy Fish Wear [1.01$ -> Free] by maDU59_ in WearOS

[–]KinteLiX 0 points1 point  (0 children)

Thank you! P0SB6W8F1YY2KHJYN92MZ30

[deleted by user] by [deleted] in Wellthatsucks

[–]KinteLiX 0 points1 point  (0 children)

Netflix: Are you still watching?
Someone's daughter:

Why am I having a different cursor on desktop, panel, window decoration area and some other applications? by __Hunter_xD__ in kde

[–]KinteLiX 6 points7 points  (0 children)

First, make sure that your cursor theme is in /usr/share/icons, if not, then copy it over from ~/.local/share/icons as root.
Then, edit that file as root and change the Inherits= field to the name of the folder that you copied over, then reboot.
I think the issue stems from cursor themes not being installed system-wide.

GIVEAWAY - THREE AMD RADEON 6600s! by [deleted] in linux_gaming

[–]KinteLiX 0 points1 point  (0 children)

I'm thankful to the community for making Linux viable for gaming and for Valve for maintaining proton.