Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

32 bit version - Mac - Wineskin

edited 11:22AM in Issues
In general the Yiffalicious 32bit version has been running well under Wineskin on the Mac.  
Wineskin Version 2.6.2 - Wrapper WS9Wine1.9.21

In 0.6.2b however I am now unable to load or save any interactions.  Any choice from the cloud will give me an eternal spinner.  

When an interaction has been saved, it is created and present in the local interactions folder.
~Application Data\yiffalicous\interactions\local
but it is not displayed, and unable to be loaded from the menu.

I'm not sure if the is a problem with the 32bit version or a problem with Wineskin but this seemed to begin happening with the 0.6.2 series.

I'm not sure if this is unique to my installation.  So if anyone is currently running under Wineskin on the Mac I would be interested in learning your experiences. 

Comments

  • odesodes Administrator
    edited 11:22AM
    We don't officially support Mac, but if you upload the output_log.txt file I can have a look.

    In 0.6.2 we changed the way interactions are stored. They're now compressed, and upon load they're uncompressed to a temporary location and then read. I'm guessing that temporary location thing maybe doesn't work properly in wine? For the technically interested, it's System.IO.Path.GetTempFileName(); that we're using.
  • edited 11:22AM
    Maybe having a promp asking where you'd like the interactions to be saved, either the old, new, or maybe manually choose a location; this could help down the road when the possible Mac version get going.
  • jei3jei3 Moderator
    edited 11:22AM
    from what i've seen of Wineskin, it stores everything in the .app container itself.

    while i haven't been able to get it to run quite yet i did notice that there isn't a 'Roaming' folder under {User}\AppData\ which is where %appdata% normally maps to in windows.

    if you copy a .yiff file to ".\drive_c\users\{your user}\AppData\Roaming\yiffalicious\interactions\local\" does it show up in game?

    are you getting an output_log.txt in the \yiffalicious_Data\ folder?
    and did you use the installer or the zip file to install into the wrapper?
  • edited January 2017
    @jei3 : yes I am getting a output_log.txt file in the \yiffalicious_Data\ folder I haven't had the chance to look at it though.  I used the installer, not the zip.  I did try to copy a .yiff file to the local interactions file, they are not being read.  The fact that I can not dl from the cloud may be an indication of the problem.

    @odes: no need to waste your time.  As you said it's not a supported platform, I'll play around with it a bit and see what I can come up with. 



  • jei3jei3 Moderator
    edited January 2017
    sorry for any confusion, i dug into this further and the paths are wrong in my post, apparently Wineskin doesn't use Win7 style paths, even if you tell it to run as if it was Win7:



    but other apps that are coded to reference Environment.SpecialFolder.ApplicationData do seem to work, so i doubt the ApplicationData folder is the issue.


    The System.IO.Path.GetTempFileName call on Wine in OSX however does some weird stuff and fails when i try to get a temp file:


    On Windows the path looks more like this:
    C:\Users\ {user} \AppData\Local\Temp\tmp9524.tmp





  • odesodes Administrator
    edited 11:22AM
    I'm changing System.IO.Path.GetTempFileName to a custom method for the next build so it will (hopefully) work with Wineskin.
  • jei3jei3 Moderator
    edited 11:22AM
    i can't run the game in my OSX environment (no 3d card), but if you need the method checked out i'll be happy to help.
  • edited 11:22AM
    Thanks, I'll check it out also. 
  • jei3jei3 Moderator
    edited 11:22AM
    i'm curious if this fixed the issue, if it was a special path issue the change should have resolved it.
  • edited 11:22AM
    Partially, I can now load from the cloud but loading local interactions still not possible.
    i really haven't played with it much, I may find the time later in the month. 
  • odesodes Administrator
    edited 11:22AM
    That's odd, it should work. I'm interested in your output_log.txt file if you can share it.
  • edited 11:22AM
  • jei3jei3 Moderator
    edited December 2016
    this is a weird issue, i was able to get a macOS box set up to test this.

    local interactions save correctly and i've validated that they are proper .yiff files, but the load interaction screen shows up blank.

    i tested this in 0.6.3b for both the 32-bit installer and ZIP file, both have the issue.

    0.5.4 on the other hand displays local interactions fine.



    -- edit: figured it out --

    the change that broke this is switching from looking for "*.yiff" to "*.yiff?"

    i'm guessing it has something to do with ? being valid on macOS's filesystem

    i don't see a workaround that an end user can use to get around this, it'll probably just need to be fixed in a later release.
  • edited 11:22AM
    Thanks, I had not dug that deeply.  
  • jei3jei3 Moderator
    edited 11:22AM
    this was bugging me, so i dug into it a little more, there appears to be a bug with wine's implementation of both DirectoryInfo.GetFiles and DirectoryInfo.EnumerateFiles functions.

    if you rename an interaction to .yiffx (where x is an alphanumeric character) it will show up in the local interactions browser, but this isn't a very feasible workaround.

    i wrote a quick test app to query for *.yiff? using both GetFiles and EnumerateFiles and saw the same behaviour under wine on Ubuntu as well.


  • odesodes Administrator
    edited 11:22AM
    Guess I'll just select all directory files and filter them with linq.
  • jei3jei3 Moderator
    edited 11:22AM
    some further testing indicates it's just the question mark (exactly zero or one) that doesn't work right. asterisk (zero or more) appears to work fine.

    so "*.yiff*" works, "*.yiff?" doesn't. that would at least give you a smaller list than ALL files.
  • edited 11:22AM
    if you rename an interaction to .yiffx (where x is an alphanumeric character) it will show up in the local interactions browser, but this isn't a very feasible workaround.

    Nice catch, it's not a bad workaround really.  No trouble to rename a file and if I get lazy I can always write a bash script to find and rename *.yiff to *.yiff1.
  • jei3jei3 Moderator
    edited 11:22AM

    worsel said: I can always write a bash script to find and rename *.yiff to *.yiff1.

    glad i could help, you'll just want to make sure you revert the file names when this is actually fixed / worked around in game.
  • jei3jei3 Moderator
    edited 11:22AM
    @worsel, 0.6.4 is out now. this should fix this issue without needing to run a seperate script or rename files.

    i tested it on macOS 10.12 with Wineskin 2.6.2 + WS9Wine1.9.24
  • edited 11:22AM
    Awesome work guys, thanks!
Sign In or Register to comment.