bo2-mac - Black Ops II statisch zu nativem ARM64 macOS rekompiliert
Show HN: Black Ops II statically recompiled to native ARM64 macOS
bo2-mac verwandelt deine eigene Steam-Version von Call of Duty: Black Ops II in eine native ARM64-App für macOS – ohne Wine und ohne JIT. Die x86-Maschinenbefehle der drei Executables (Kampagne, Zombies, Multiplayer) werden über Remill zu LLVM IR geliftet, optimiert und mit einer handgeschriebenen Win32-Runtime gelinkt, deren Direct3D 11 von Metal gezeichnet wird. Auf einem Apple M1 läuft die Kampagne mit 51–60 fps, Zombies auf sechs Karten mit 57–60 fps und Multiplayer gegen Bots mit 53–60 fps. Die Konvertierung dauert etwa 1 Stunde 45 und findet komplett auf deinem Mac statt – niemand außer dir lädt etwas herunter.
Hier ist der x86-Code selbst verschwunden: Er ist ARM64-Maschinencode, bevor das Spiel startet.
- cornedor
Ich habe dieselbe Technik benutzt, um Fallout: New Vegas unter Asahi Linux auf macOS zum Laufen zu bringen. Das ist schon ein ziemlicher Schritt, aber https://github.com/doitsujin/dxvk macht es möglich, eine Menge Arbeit zu überspringen und das Spiel an einem Tag ans Laufen zu bekommen. Danach kann man beliebige Änderungen vornehmen, also lasse ich Fallout NV auf einem breiten Display in nativer Auflösung mit einigen grafischen Verbesserungen laufen. Echtzeit-Schattenkarten für die ganze Welt, SSAO, Tonemapping + Farbkorrektur, FXAA und Hor+ FOV.
Das gibt mir die meiste Zeit über solide 60fps, mit nur dem gelegentlichen Bug hier und da, der oft in kürzester Zeit behoben ist. Zum Glück habe ich ziemlich schnell einen 10-Minuten-Autosave eingebaut, sodass das kein allzu großes Problem verursacht.
Abgesehen vom Spaß daran, das Spiel auf dieser Maschine zum Laufen zu bringen, und dem Spaß daran, das Spiel tatsächlich spielen zu können, ist es eine großartige Möglichkeit, kreative Wege im Umgang mit LLM zu finden. Unterwegs Entwicklertools zu bauen, die für ein LLM funktionieren, usw.
- klaussilveira
Gewissermaßen verwandt: https://lwss.github.io/Kisak-Black/
- scronkfinkle
> verwendet überhaupt keinen Emulator, sei es Wine, Crossover oder Rosetta
Bei den anderen beiden bin ich mir nicht sicher, aber WINE Is Not an Emulator. Es steht im Namen :)
- baalimago
Sowas macht mich wirklich glücklich über KI. Der Komfort, den AAA fehlt oder den sie absichtlich zurückhalten, ist jetzt in Reichweite.
- cedws
Wie funktioniert das eigentliche Rekompilieren, wird ein vorhandenes Tool verwendet? Ich kann mir nicht vorstellen, dass der Agent jede Routine durchgeht und das Assembly von Hand übersetzt.