Show HN: Black Ops II statically recompiled to native ARM64 macOS
github.com
github.com
Gives me a solid 60fps most of the time, with only the occasianal bug here and there that is often fixed in no time. Luckily i've added 10min auto save quite quickly, so that it does not cause that big of a problem.
Aside from the fun of both getting the game to work on this machine, and the fun of actually being able to play the game, it is a great way to find creative ways to work with LLM. Building out dev tools on the way that works for an LLM etc.
If it doesn’t lock up your machine every hour or so then it’s not a very authentic experience!
Massive chance these recompilations just ruined gaming for everyone.
Like on your own- do whatever.
As soon as you share it - you actually harm players, not help them
Nah that was microtransactions and associated corporate greed.
If we have good enough AI to force companies to do this, we have good enough AI to build any shit we want and we'll build better shit than what these companies are putting out.
>> and we'll build better shit than what these companies are putting out. feel free to share what you've built. Sure its possible just need to be real here - 1% will be good, 99% will be slop. And that 1% will down in that slop.
As a result though in theory you can make some games better than existing ones - the overall effect is net negative.
The AI will still recreate a game that it can view and interact with.
I have no idea how difficult that is for large publishers though. I'd guess hard since Google gave up on stadia
https://learn.microsoft.com/en-us/azure/reliability/regions-...
Playstation offers this already in a ton of European countries as well as Japan and South Korea.
Google gives up on most things, doesn't mean it was overly challenging for them to do. I guess running an RSS aggregation platform is also too difficult for anyone else to do based on the logic of "well Google decided to quit".
Not sure about the other two, but WINE Is Not an Emulator. It's in the name :)
An emulator. In the context of computing translation software, "emulation" generally refers to emulating hardware rather than software. Hence why WINE Is Not an Emulator :)
Unfortunately I think the party will end soon as anthropic are already preventing reimplementing games in there system prompts.
Presumably claude/etc aren't any kind of "open", so what specific models are we talking about?
they train off of US closed models illicitly and have lots of post training, and then community versions pushed in yet other directions
What I wrote with Claude is basically everything else: custom LLVM passes, a hand-written runtime that replaces the Windows calls, a Direct3D 11 to Metal layer and the shader translation! Plus fixing the crashes one by one by iterating and playing. All details are in the Pipeline section of the README if you're interested: https://github.com/adrbn/bo2-mac#pipeline
This is very confusing to read, though:
What I wrote with Claude: [...] a hand-written runtime
To me you have to pick one or the other. Claude has no hands.
The restraint Anthropic added to Claude to stop it from reverse engineering commercial games is recently added
If you want something simpler to begin with, look at N64Recomp (that's what gave us the PC ports of Zelda Majora's Mask) or XenonRecomp (Xbox 360, used for Sonic Unleashed), they're static recompilations too and way better documented than mine as of now haha. And to look inside an executable, Ghidra is free (made by the NSA, fun fact). A proper write-up might come at some point, but no promises on a date :)
Also, I had never done anything like this before either!
Almost every paragraph makes me want to ask: "so what?"
> There is no Wine and no JIT: the game runs as native code, in one process > the campaign runs at 51–60 frames per second
So what?
Is it a matter of running the game in itself? Was the game not running on Apple M-series in any way, so you're unlocking something that was impossible before?
Or does the game just ran faster (more FPS), load quicker, render better, what?
There's no comparison to how the game runs on x86, or how it runs on M-series with translation layers (IF it runs).
This is an exact manifestation of the AI slop problem. A lot of details. A lot of "how". A lot of "what". So little "why" - you need to read a lot and in the end your questions are never answered, and you don't understand if the project makes sense at all or is just something "we did it because we could". I'm perfectly happy to read AI generated text if it's properly and clearly written and answers the right questions.
Thanks for adding the Why in your readme, btw :-)
By the way, the why in the README is still unclear:
Your post says:
> see if I could make it work on my 2020 MacBook Pro
This seems to imply that it didn't work on the 2020 MacBook Pro (which I suppose is the M1)
> On Apple Silicon the usual way to play it is Wine or CrossOver on top of Rosetta 2, which translate the game while it runs
This is from the README. So, it was playable on M-series already? Just not natively? Then, what kind of benefits does your translator offer?
> so I can fix things and add stuff like split-screen, which the PC version never had
So THIS is the advantage? I'm not sure why this advantage would be limited to the ARM64 version BTW; cannot you patch the original?
That's the why I'm asking for, and that's where LLMs suck, and where you need to have your human brain & skills actually work.
I didn't know about remill before and finding such a good display of its capabilities was fantastic because I've been thinking about doing something similar for an old-ish geological research system that runs on a sparc system.
Similarly to your case I don't aim to subdue the licensing system or do anything else but ensure that the system can run on current x86 hardware (mostly for fun).
So yeah, it was a long way of saying "thanks for sharing your project and methodology, I think it's really cool and I don't mind the AI text at all"
But, since you were posting, I commented.
I think that, now, your repo has a much better README!
And, I find your work technically impressive and interesting, but very often those technical marvels fail to deliver because they don’t explain why they’re technicl marvels! Now, you do!