XTPlayer - Cross platform TCode sync (OSR, SR6) Stream your local media and sync funscripts to almost any device with a browser

I may look into adding mpv time sync. You think that would solve your issues?

Do you mean adding the ability for XTPlayer to run videos via mpv while XTPlayer only controls the T-Code? That’s one option, but currently XTPlayer works fine as long there’s a fullscreen window.

Ya, if its not too difficult ill do it. I rather do that than hack around fullscreen. If not, you have a custom build at least.
I believe XTPs built in media player is one of its strengths but due to me lacking knowledge to make it great, its also one of its weaknesses, It may prove beneficial to have another option for desktop media playback on all operating systems.
Ill check it out and stew it over.

I have just discovered the XTPlayer and given it a quick test on MacOS. Great, this works fine! I like the server approach and running everything wireless (Video on iPad, OSR2 wireless as well).

The optimal solution would be to run XTP on my little Linux Server (Intel Nuc, running Ubuntu Server) as a docker container. I wonder if this is possible as it is running in headless mode and there is no possibility to enable XTP Web via the graphical XTP application interface. Or is there a possibility to configure this in a config file?

I believe I put this setting in the command line interface but yes, you can put a file called settings.json Iin The same dir as the appimage and XTP will save and load from that file which you can edit any setting in XTP directly in the json file.
You can export your current settings to a json file in Mac. You’ll need to change the file paths for the system your moving to though.

I’ve heard of some using docker. Wouldn’t mine having a docker image but I’ve not taken the time to learn how to make one.

Thanks for the fast response. I will give it a try and report back if it is running…

Hello again. I got something running but I have difficulties with the script playback when accessing XTB by browser. Even when running it on windows and connecting to localhost. Error message “Error! No scripts found in metadata. Try updating the metadata for the media item.” is shown. When playing the video in XTP directly, the script is loaded without issues. Any idea how I can fix this?

Just checked version 0.47 on windows: The error message is not displayed but the script is not working as well. Hovering over the thumbnails shows the script (in both versions).

Did you try updating the metadata? Sometimes refreshing the page after metadata update is required too.

Not sure what could be causing this if a metadata update doesnt work.

Can also update metadata for ALL media items in Settings > System

@Khrull
Hey, FYI I just dropped a PR for XTEngine, adding merged funscript support to XTPlayer.

This change should allow the player to read single .funscript files with multi-axis data and drive multi-axis movement during playback. It also automatically detects and tags them as “MFS” in the video library during metadata generation.

This should work on Windows too, but just a heads up that I’ve only tested it on macOS on my end.

Odd, I added this back a few months ago. You added the older version? Whats the difference in the format you added? I added the agreed upon v2 outlined on this forum ouline in this long ass discussion.

Hi, you’re right! After reviewing the older code more carefully, I found that the v2 support you mentioned was indeed already there.

Since the existing implementation didn’t work for me, I investigated a bit further. My current guess is that the problem on my side was a combination of:

  • My device uses a slightly unusual TCode implementation (I need to enable “Disable TCode validation” just to connect).
  • I didn’t fully understand the ‘TCode version’ dropdown in the system settings. I may have been testing with the wrong version map (maybe my device is actually v0.2, but I had v0.3 selected).
  • Merged-axis parsing depending on the currently selected TCode channel map, which could cause extra axes to be skipped if the script IDs and runtime mapping do not match.

That would also explain why I previously saw cases where only L0 appeared to work.

At this point, I think my local changes may have accidentally helped with broader compatibility for the merged JSON layouts I was testing, plus slightly better script discovery in the cases I encountered locally (needs further investigation).

Since I hadn’t realized the support was already there, I closed the PR before. I’ll keep investigating to see if there are any smaller, useful improvements worth preserving. If I find something solid, I’ll get back to you! :slight_smile:

Ok thanks for the effort. The only thing that should matter with the merged format is the channel names.
So the values in this column on the motion tab.

Maybe you have some of the older single file scripts that use the values L0, L1 and so forth. I did not add support for this format. I don’t know if the new format is default on Eroscripts yet. I had to manually set it to default at one point.

The TCode version on your firmware wouldnt matter as these track names are a funscript/XTP thing. The firmware knows nothing about it and it should not. This is why we changed it from L0 to the track names. Funscript and TCode should not know about each other.
So as long as youre device understands basic TCode XTP should translate the funscript to TCode. Thats what it does.

If theres something not working it has to be between the funscript format and XTP not the device firmware.

Good day, I am having some issues with the speed / accuracy of the osr devices. It seems to skip instructions when using fast scripts. I confirmed this was due to the application and not my hardware by using the same scripts with a different Linux native app. It played all my scripts correctly at full speed. Let me know what I can do to help

How are you connecting XTP to the device?

Via USB.

Is it consistent? Ive noticed this before but I always assumed it was the wireless missing packets. Have a link to a script you know it happens in?

I almost any fast scripts. For sure the hard script of the spiral abys.

https://discuss.eroscripts.com/t/fap-hero-spiral-abyss-by-ivory2-genshin-impact-updated-new-hard-mode/77678

1 Like

Oh one more thing, what media player are you using when the issue happens?

The built in media window. I do t use any external one, not been doing much VR lately so.

I did some tests in XTP comparing funscript array indexes to an independent incremented integer and there was no missed funscript data points within the system. This leads me to believe its in the firmware linear interpolation. The firmware is tracking the time elapsed and so is XTP. They may be getting out of sync a bit and its only noticeable with fast movements.

XTP uses the firmware linear interpolation between data points to save throughput across wireless interfaces. Its not required with serial but XTP has no built in linear interpolation at this time. This would explain the other script player not having the issue. What script player is that btw?

Script player+

Its a electron based app.