Announcement

Collapse
No announcement yet.

Wine 6.14 Implements More 32-bit To 64-bit Thunks, Updated Mono

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • oiaohm
    replied
    Originally posted by Azrael5 View Post
    @oiaohm I understand that to manage the complexity is never simple. Probably an AI could do this in order to test, have feedback and intervene to fix, so to get the aimed result. The other legal question deals with the copyrights of the games. Conversion of a 32bit game could cause a violation of the copyright? Probably if the conversion was made by an accredited gaming manager as Valve or Steam the conversion would be legal.
    Copyright is many levels of nightmares. Think music licenses for music in games those can be for the original binary platform with new license for new platform. So Valve/Steam doing non dynamic binary translation may not be legal. Do also remember how many games have disappeared over the years after DC or some other party had not renewed their char licenses. I was sticking to technical side. The copyright side is down right another level of nightmare where you will basically need to legally audit every single program you to a static binary translation on to work out if you could without having some form of copyright infringement. Yes valve distribution rights don't extend to being able to alter how the content is used majority. Why valve works with wine and dosbox is because they have content/games don't have legal rights to static binary translate. Some are early works of Valve where yes they have the source code but the chars or the music or key models were licensed for particular platform release so without replacing those parts valve could not make Linux native port even if they wanted to(copyrights a bitch at times)..

    There is work on dynamically guided static binary translation out there. This is not AI this is run program and mine the used code paths out.

    Leave a comment:


  • Azrael5
    replied
    @oiaohm I understand that to manage the complexity is never simple. Probably an AI could do this in order to test, have feedback and intervene to fix, so to get the aimed result. The other legal question deals with the copyrights of the games. Conversion of a 32bit game could cause a violation of the copyright? Probably if the conversion was made by an accredited gaming manager as Valve or Steam the conversion would be legal.
    Last edited by Azrael5; 01 August 2021, 08:31 AM.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by Azrael5 View Post
    it's very interesting. So, my question deals with the possibility to realize a gaming recompiler able to convert 32 bit libraries in 64 bit libraries. A 64bit program converter. A program which acts as video converters act.
    Wine hangover is is using qemu for a lot of the conversion heavy lifting. Programs are not as simple as what video converters do. Video converters normally decode the video then run encode of the decoded video streams to make a new video file. This would be equal to having a fully functional binary translation.

    Yes in theory it possible to take part a 32 bit binary and make a 64 bit one. But doing it without upsetting copy protection, alteration to timings..... becomes very hard.

    There is a long list of times that X game/program will not work under wine the game vendor says its not a problem then windows gets a update and that very same section breaks on windows because windows altered the timing of something so making the hidden defect absolutely a problem. The reality here is the 32 bit libraries are likely to be expecting behaviours that a 64 bit platform will not have.

    So what you asking for is not impossible Azrael5 but the likely hood of being able to use the tool generically is very low and likely to be a bigger debugging problem than most people will presume. Hangover project by wine is large uphill battle and that is using dynamic/runtime recompile were you are not needing solve the complete problem.

    Leave a comment:


  • Azrael5
    replied
    Originally posted by oiaohm View Post

    Its not possible to-do that there are two reasons.
    1) Reasons are items like samba and so on. You need to use the host provided libraries to perform particular functions or applications will not work right. Like if you are expecting a network access to use the same network login as the user used you cannot use a 100 percent independent library set. So you either have to use host 32 bit library in places or have a system to thunk to the 64 bit library. Thinking from 32 bit to 64 bit is not exactly the most nice process.
    2) when you build a distribution without 32 bit libraries you can disable the kernels 32 bit support. This is why qemu comes required. Please note wine is the only remaining user of the Linux kernel 16 bit protected mode support as well.

    The wine hangover project is working on all the parts required to deal with 32 bit platform removal. Yes win16 support from the start wine had to be designed to thunk that from 16 to 32 because the Linux kernel and user space does not provide any 32 bit libraries.

    Yes the number of host libraries that wine depend on for different application use cases is why attempts to containerise generic wine has run into so many problems and does normally result in many different business applications that would work under generic wine straight on the distribution not working.

    it's very interesting. So, my question deals with the possibility to realize a gaming recompiler able to convert 32 bit libraries in 64 bit libraries. A 64bit program converter. A program which acts as video converters act.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by Azrael5 View Post
    If wine had already integrated the 32 bit Os libraries needed it would't solve this problem? Linux oses need the 32 bit platform be enabled?
    Its not possible to-do that there are two reasons.
    1) Reasons are items like samba and so on. You need to use the host provided libraries to perform particular functions or applications will not work right. Like if you are expecting a network access to use the same network login as the user used you cannot use a 100 percent independent library set. So you either have to use host 32 bit library in places or have a system to thunk to the 64 bit library. Thinking from 32 bit to 64 bit is not exactly the most nice process.
    2) when you build a distribution without 32 bit libraries you can disable the kernels 32 bit support. This is why qemu comes required. Please note wine is the only remaining user of the Linux kernel 16 bit protected mode support as well.

    The wine hangover project is working on all the parts required to deal with 32 bit platform removal. Yes win16 support from the start wine had to be designed to thunk that from 16 to 32 because the Linux kernel and user space does not provide any 32 bit libraries.

    Yes the number of host libraries that wine depend on for different application use cases is why attempts to containerise generic wine has run into so many problems and does normally result in many different business applications that would work under generic wine straight on the distribution not working.


    Leave a comment:


  • Azrael5
    replied
    Originally posted by oiaohm View Post

    https://github.com/AndreRH/hangover

    Yes wine still need 32 bit host libraries. Work is under way to remove that requirement but its still not going to be something near term. Its most likely at least 2 to 3 years out still. There is a lot of complexity thunking from 32 bit to 64 bit and a lot more complexity going win16 to 64 bit. Yes all that complexity equals some very creative bugs.
    If wine had already integrated the 32 bit Os libraries needed it would't solve this problem? Linux oses need the 32 bit platform be enabled?

    Leave a comment:


  • oiaohm
    replied
    Originally posted by Azrael5 View Post
    Wine still needs 32 bit Os libraries to work?
    https://github.com/AndreRH/hangover

    Yes wine still need 32 bit host libraries. Work is under way to remove that requirement but its still not going to be something near term. Its most likely at least 2 to 3 years out still. There is a lot of complexity thunking from 32 bit to 64 bit and a lot more complexity going win16 to 64 bit. Yes all that complexity equals some very creative bugs.

    Leave a comment:


  • Azrael5
    replied
    Wine still needs 32 bit Os libraries to work?

    Leave a comment:


  • sdack
    replied
    Originally posted by loligans View Post
    Does anyone know how much of the Windows API/ABI is implemented in Wine? I don't know how I could find this out, Google search isn't giving me any useful results.
    This is a pretty meaningless value you are asking for. It makes little sense to quantify a certain percentage, because it has no practical use. One application may need 45% of the API to be present, another may need 85% of it, and WINE could implement 99% of all. Yet, if only one function is missing might an application not work correctly or not start at all. Chances are WINE in fact implements all known API functions, but does not implement every feature of every function and implements a few functions only as empty stubs.

    It makes more sense to test each application to see whether it works , just as you need to do with the different versions of Windows themselves, because these do not implement all of the "Windows API/ABI" as you have put it, but a subset of what Microsoft has developed throughout the history of Windows.

    Here are some numbers for you though...
    • WINE currently implements 930 DLLs.
    • The WINE Application Database lists 5,103 applications rated as "Platinum", which is the highest rating for how well an application works with WINE.
    • 4,278 applications are rated with "Gold".
    • 3,747 applications are rated with "Silver".
    • 3,042 applications are rated with "Bronze".
    • The Steam Proton database lists 15,471 games working with WINE (plus DXVK plus modifications by Steam).
    • The Lutris database lists 13,468 games.

    Hope this helps.
    Last edited by sdack; 31 July 2021, 03:34 AM.

    Leave a comment:


  • chithanh
    replied
    Aryma this is necessary if you want to run 32-bit Wine applications on a pure 64 bit Linux system. A number of Linux distros are reducing or removing 32-bit i386 compatibility on their amd64 port. Same for macOS.

    https://www.phoronix.com/scan.php?pa...ntu-20.04-Debs

    Leave a comment:

Working...
X