6 ms·
Box86 vs native: OpenGL is almost native, CPU bound 50%, SSE3 is slower
- marcodiego 6y agoReally hope Box86 or wine hangover allow windows x86 binaries to run well on arm sbc on a not too distant future.
- rijoja 6y agoMe to! Maybe it is not in the scope of these projects. Apple however managed to do this for their latest architecture and also I think it was done quite a lot for the Pandora game console. So that would be by translating the binary files themselves to a new architecture before executing them. In the case that someone targets one application run in wine this is not to much work I believe. If someone would be interested into doing this, I would be very happy to help! https://www.giantpockets.com/starcraft-pandora-port-came/ https://www.giantpockets.com/starcraft-pandora-port-came/
- deleted 6y ago[deleted]
- RPiNews 6y agoWell box86 actually supported running wine since a while ago, which means you can install x86 wine and use it.
- ekianjo 6y agoYes, that is precisely why you can play x86 Linux games through Box86 on ARM.
- spijdar 6y agoWell, no -- you can also run the Linux version of Steam and games with a native Linux version with no need to use wine. The performance should be better than using wine, too.
- techrat 6y agoSteam does not exist in repos on ARM based distributions. So no, you can't just also run the Linux version of Steam and games without a need to use Wine... When it comes to using Box86 on ARM.
- spijdar 6y agoHuh? You totally can -- it's even mentioned down in the README in the github repo: https://github.com/ptitSeb/box86#notes-about-steam https://github.com/ptitSeb/box86#notes-about-steam You can download a straight tar.gz file from Steam [0], extract it, and run the contained steam executable with box86, and as long as you have the ARM versions of some native libraries installed as mentioned in the project readme, x86 Linux steam will run fine, no wine required. Fun fact, box86 also works on PowerPC, I got it running at the start of the year. Not sure how much has bitrotted, but if you've got a POWER8/9/10 machine, it can run box86 ;) (without JIT, so dramatically slower than in the article, but better than qemu usermode!) [0] http://repo.steampowered.com/steam/pool/steam/s/steam/ http://repo.steampowered.com/steam/pool/steam/s/steam/
- ben-schaaf 6y agoSomeone's already gotten wine working on the pinephone: https://www.reddit.com/r/PinePhoneOfficial/comments/m4bvti/wine_x86_running_at_nearnative_speeds_on_pinephone/ https://www.reddit.com/r/PinePhoneOfficial/comments/m4bvti/w...
- ekianjo 6y ago> windows x86 binaries That may only work for 32 bits binary applications since Box86 does not support 64 bits. You can already see Box86 + Wine running older Windows games here: https://www.youtube.com/watch?v=yoIptyr6zV4 https://www.youtube.com/watch?v=yoIptyr6zV4
- xaduha 6y agoIf it they can run Warhammer: Dark Omen with 3d acceleration, then that would be pretty impressive. Pretty famous for being a pain in the butt when it comes to running it on modern or emulated hardware.
- zapt02 6y agoFunny coincidence, I was just playing it last month! It was a bit annoying to get everything running but after consulting the guide over at http://forum.dark-omen.org/help-section/read-me-ultimate-dark-omen-xpvistawin7win81win10-game-fixes-t111.0.html http://forum.dark-omen.org/help-section/read-me-ultimate-dar... I was able to get a really great HD experience. But I agree with you, it took me probably 30-40 minutes of fiddling!
- chmod775 6y agoI'll watch this with great interest. Looks like possibly a way to get Skype working on a rPI.
- ekianjo 6y agoZoom is already working via Box86: https://www.youtube.com/watch?v=9yx3XzYnHV4 https://www.youtube.com/watch?v=9yx3XzYnHV4
- marcodiego 6y agoA small list of command lines would be so much faster, easier and simpler than a youtube video...
- virtue3 6y agoBut you can monetize a youtube video so much better >_>
- zozbot234 6y agoHow would Box86 compare with QEMU user-level emulation?
- marcodiego 6y agoNo sure, but I think QEMU-user only translates syscalls. Box86 (also) translates library calls. That way more code (libraries) can be run natively and, because of it, much faster.
- retrac 6y agoThe nice thing about Box86 is that it intercepts calls to things like the libc, SDL, font rendering and OpenGL, and runs the native library versions. In that regard, it's actually more like WINE than something like QEMU system mode. QEMU only emulates kernel system call interfaces and any library code is also emulated, and so is much slower.
- ant6n 6y agoDoes box86 have a jit?
- bri3d 6y agoYes, it’s DynaRec (dynamic recompilation) which is a form of JIT. (I suppose you could call it an optimizing JIT of sorts) - with a fallback to a more “normal” JIT for x86 code which is emitting other x86 code (like Unity games).
- rijoja 6y agoHow do they detect when the fallback should be used?
- bri3d 6y agoIt's right in the README - "Box86's Dynarec uses a mechanism with Memory Protection and a SegFault signal handler to handle JIT code." Essentially, code areas are write protected and when they trigger a write fault, the area is marked as "dirty" to be recompiled. https://github.com/ptitSeb/box86/commit/2aa2e53fef61d00df5354fcea68a7fd52b2712bd https://github.com/ptitSeb/box86/commit/2aa2e53fef61d00df535... first "protect memory, fault handler purges that code block as 'invalid' approach" and https://github.com/ptitSeb/box86/commit/4778760622df90c97da222cfdb3fba8d2cfe23dc https://github.com/ptitSeb/box86/commit/4778760622df90c97da2... second, "mark block as dirty rather than purging it" approach
- 6y ago
- stuaxo 6y agoWill there ever be a Box64 ?
- kcb 6y agoYes, already in early stages of development. https://www.youtube.com/watch?v=Ec3vIdpoPIM https://www.youtube.com/watch?v=Ec3vIdpoPIM
- q-big 6y agoHow does Box86 implement x86's strong memory model? It is, for example, well-known that for emulating x86 code on Apple M1, there exists a special mode on this specific CPU that enables a strong(er) memory model.
- monocasa 6y agoMaybe it doesn't. If it only supports running on a single core at a time, it doesn't need to.
- moonchild 6y ago> On a CPU intensive app [...] the emulated software is roughly 50% of the native speed. While this number can still be improved [...] this probably won’t change much in the future (it will probably top at maybe 60%) This is a shame if true. What's the difference between this and something like rosetta 2 that allows the latter to achieve greater performance?
- floo 6y agoPossibly M1 hardware optimisation for x86 emulation?
- Duralias 6y agoUnless I am mistaken M1 chips have hardware dedicated to making translations faster.
- unix_fan 6y agoTo be specific, the M1 supports a stronger memory model which makes emulation easier. There is no real dedicated hardware though.
- moonchild 6y agoBut the original benchmarks weren't multithreaded, which should make that a nonissue? (Is it possible to generate code assuming a weaker memory model, and then invalidate that upon creation of a thread? Might get dicey with shared memory, though...)
- ladyanita22 6y agoThe hardware itself has dedicated instructions