Hacker News new | ask | show | jobs
by throwawayy2 3770 days ago
Actually, for N64 emulation, I have a 100% full speed fork of Mupen64Plus for the Pi 2 sitting around on my hard disk that I hacked together a while ago. I should really clean it up and post it to GitHub.

There's no fundamental reason why the N64 can't be emulated at full speed on that hardware. The VideoCore IV blows the RDP away in fill rate, after all. It's just that the available video plugins are old and aren't optimized for mobile GPUs. Additionally, Broadcom's drivers have a tendency to stall in inconvenient places and the emulator needs to work around that as well. But once those are fixed, most of the popular N64 games run beautifully.

2 comments

Please do! I couldn't get full speed Mario on my i7 Mac which is way more powerful than a pi!
...Which is sad. I played Mario64 in Corn on a 400MHz K6-2 around Y2K. Nemu+1964+Project64 each handled more, but it seems like I had to wait for my Athlon XP before my machine was fast enough to be useful.
Good emulation is hard, especially when you're dealing with code that was built around the bugs, quirks, and timing issues that the original SNES authors had to deal with. Then you have to worry about buggy software that works because of undefined behavior [1, see Speedy Gonzales]. More recent emulators have focused more on correctness than speed, because it means less work trying to patch and hack around broken games.

[1] http://helmet.kafuka.org/state3.html

I definitely know that. I've done work on an NES emulator, and a lot of the software uses the hardware in undocumented ways, like odd timing quirks, undocumented CPU opcodes, changing display registers mid-frame to achieve special effects, etc.

I've looked at the SNES and N64's hardware to consider contributing to an emulator for one of them, and the hardware certainly doesn't get simpler as time goes on ;-)

The comparison I was making isn't really fair, anyhow. Corn was fast, but the last revision only really covered two commercial games (Mario and Zelda). I'm sure that they heavily optimized for the code patterns in those specific games, without regard to accurate emulation of the hardware in the general case. Expand the supported cases and the problem immediately becomes much harder. Comparing Corn to an accuracy-focused emulator is like comparing one of the cut-down, portable-friendly SNES9x builds to Higan.

Please do this. I find the current N64 emulator in RetroPIE lacking regarding speed and support (even overclocked).