libTAS icon indicating copy to clipboard operation
libTAS copied to clipboard

Boxedwine compatibility

Open slamotas opened this issue 3 years ago • 0 comments

https://github.com/danoon2/Boxedwine

I've been playing around with this and I think it might actually have potential. It's a nice little program that can grab older Wine versions and play Windows .EXEs with them. It's mainly compatible with Win3.1/Win9x stuff, but later programs may work as well. It has a GUI where you can change different settings like Windows version, command line arguments, GL extensions, etc. I have had luck running this in libTAS under certain circumstances. Here's some screenshots:

I built the regular 32-bit build from the git (projects/linux/build.sh) because the 64-bit build apparently has multi-threading. It will be in the /bin/ folder when built. In the above examples frame advance and savestates work fine, and movie actually appears to play back deterministically.

There is no really neat way to launch a container through the command-line, but this method works:

  • Install your .EXE natively in Boxedwine, and then run it once. Wait for it to run the .EXE and play around a bit to make sure it works, and then close it.
  • Back at the GUI, right-click on the shortcut for your .EXE and click Options.
  • On this screen you will see an entry called Storage Location with a folder path; click Open to open it in a file manager.
  • In this folder you will see a text file called lastLog.txt, open it up in a text editor.
  • The first line starts with Command line arguments: "./boxedwine" . Copy everything on the first line after this, it will be your command-line options for libTAS.

In libTAS you just set the executable to /path/to/boxedwine and set the command-line options to what you copied above. It needs both gettimeofday() and SDL_GetTicks() time tracking. Here are some bugs I noticed that don't occur natively:

  • Using anything below Wine 5.0 will result in Boxedwine not being able to find any files.
  • Has trouble importing DLLs on any Wine version.
  • "Prevent writing to disk" causes Boxedwine to fail eventually.
  • Any sound playing completely freezes Boxedwine.

It's not compatible with everything but I think there's a lot of potential here. This is the furthest I've ever been able to get with anything Wine-related.

slamotas avatar May 20 '22 19:05 slamotas