N64 MiSTer dev moves on from making cores to create a new retro game for a console he's mastered: "I know how to use all of their power to my advantage"
Interview: FPGA developer Robert Peip looks back on the last year of N64 development, and what comes next. Also: Apple's allowing emulators on iPhones? Well, maybe.
So, anybody gotten sued in the last couple weeks? Any cornerstone emulation projects shutter under threat of legal annihilation? No? Phew! Looks like we can relax, at least a little, at least for awhile. Our hobby's not fully crushed just yet.
It's been more than a month now since Switch emulator Yuzu shut down, and since my last roundup ROM in March we've seen its contents scattered across various archives and successors. The most prominent is the cheekily named Suyu, which remains online though it was knocked off Gitlab due to a DMCA takedown request. A Yuzu repository on Archive.org was also targeted with a DMCA takedown. While I'm sure the files are still findable out there, it's clear Nintendo's looking to mop up, and the more prominent listings are likely to keep getting whack-a-moled.
There's definitely been unease in the air since Yuzu's demise, though it's not all doom and gloom. What looked like a retro gaming-focused build of Linux removing its Nintendo emulators last week was, in fact, just an April Fools joke. Ha ha! π Everyone loves April Fools!
This issue could've easily been a bunch of hand-wringing and prognosticating about if and how Nintendo will shift focus to pressuring other emulators, but that's going to get boring fast and the threat will likely to be hovering over us for many months to come. So I decided to focus on something a bit more celebratory: the completion of the FPGA Nintendo 64 core for MiSTer. I caught up with developer Robert Peip, who I first spoke with almost exactly a year ago in these very pages after he first announced that he was making the impossible possible. Robert was gracious enough to chat with me again to look back on the last year of core development and talk a little bit about what he wants to do next.
We've also got an interesting twist in Apple's legal jousting with EU regulators and the third-party app stores it's grudgingly allowing on iOS β emulators are now allowed on the official App Store! Or are they? We'll talk about why it's not so clear cut.
In news adjacent to one of the most frequently mentioned games of this here newsletter, Boku no Natsuyasumi successor Natsu-mon, released last year, just got an English trademark. Now, a trademark doesn't guarantee a western localized release, but it sure makes it pretty dang likely. Did I make a little squee noise upon seeing the news? To retain some respectability I'll leave that unanswered. Let's see what Boku fan translator Hilltop thinks about it, though.
YO indeed. This sure would be a great game to play while lounging in the shade on a languid summer day. Gonna have to that hammock out of the closet...
The Big Two
1. N64 core post-mortem with Robert Peip, and a hint and what's next
Mission: Impossible. Result? Success. Robert Peip's N64 core is now live for all MiSTer users and can run nearly every game on the system without issue, a dramatic victory that seemed unlikely just a year ago.
"I'm very happy with the result. When I started, it wasn't even sure if the core could fit at all, let alone run at those high clock speeds," Peip said. "My initial minimum goal was to have the Mario 64 decompiled version running on the MiSTer, maybe even compiled for a different CPU if required. But it turned out that nearly everything was possible and working and that was a big surprise and a great outcome."
He took bringing the core to fruition seriously β maybe even too seriously, as he said that "I could never really laugh about the faceless Mario or the 3-eyed Pikachu" when those and other sorts of graphical glitches popped up during development. "Seeing a bug is always like a kick in the back. I know it's silly to always feel pressure when noticing such bugs, but that's just how I am and maybe that also helped me finish it."
I asked Robert to reflect on the problems he had to solve for the core and how his past work with other FPGA development. Jumping straight to this one would've been impossible: just as important as learning how to squeeze the MiSTer for every available resource was learning what limitations to accept, rather than bashing your head against. Developing a core for the PlayStation was the giant leap that ended up making this moonwalk a reality.
"Before the PSX, I had zero knowledge about any 3D rendering at all and while the PSX cannot even do a quarter of what the N64 can do in terms of 3D, it was a great way to learn it. Also the CPU uses the same architecture, just one generation older without 64-bit and FPU, so that was a good starting point."
An FPU is a CPU's floating point unit, which is the bit of the Nintendo 64 hardware Peip said he's proudest of emulating. He broke down why the FPU was a beast to tame, as well as what ended up proving to be the limits of the current MiSTer hardware that no more development time was going to overcome:
"With most of the other components there are examples on how they work, either as documentation or emulator source code. For the low level floating point calculations, there are none that would work for the N64. So I had to figure out all that myself and still stay in the constraints of resource usage and clock speed. In the end I finished it much faster than expected and it has not even 50% of the logic cost from my initial plan.
"The N64 RDRAM has a very high bandwidth compared to all the other RAMs used in 5th gen consoles. The SDRAM in MiSTer has no chance of being able to replicate it, so I had to use the DDR3 that is also on the board. While the DDR3 is much faster and can do the job without issues, it is shared in MiSTer with the Linux side and with the HDMI Scaler. So it will happen that those components need it, but the N64 game needs it at the same time and has to wait before the other access has finished. I compensate for that by driving the RDRAM interface at higher speed to catch up and this works very well for most games. For few games however, these random RAM response delays will make them crash. Sometimes only once in a few hours, but still not perfect then. Any future platform with a non-shared DDR3 or DDR4 could solve this issue easily with no effort."
After finishing the project, Peip has decided that rather than continue developing further FPGA cores he's going to shut down his Patreon β which currently has more than 1,000 backers β and try his hand at making a game. A retro game, specifically, one that lets him take what he's learned developing FPGA cores and put it into creating something new, instead.
"It doesn't mean that I will never work on my old cores or new ones again, with potential new hardware coming up enabling new possibilities, but for the next 6-12 months that will not be the case," he wrote on Patreon on April 3. "You probably noticed over the last years that I can only follow one project and give it full focus, it's just the way I work. Therefore I decided it's not fair to keep that account here open and let so many people spend money every month. I would have a bad feeling all the time."
It's a surprising move, but also a really cool one. Peip told me he's currently trying out development on the GBA, though that path isn't carved in stone:
"Working on a game for a console that I recreated myself just makes sense for me, as I know the inner workings of them and how to use all of their power to my advantage. Also it's something unique. With all those indie titles for modern platforms, it's very hard to stick out. Compared to that, the amount of full games being released for older platforms is very low.
"Tools today are so much more advanced so that the development time can be cut down significantly, making it even possible to do this by myself. However, I hope to get some assistance at some point for sound and pixel art. But first I have to prove myself to be able to tackle it and see if those type of games will find some audience today."
Considering the impressive technical chops of modern GBA game Good Boy Galaxy, I have no doubt Peip will be able to pull off something just as cool β he's already managed one impossible mission, after all.
2. Apple allows game emulators on the App Store
In a very un-Apple move, tech's most tightly controlling company just loosened its restrictions on emulation. After 16 whole years, they're now permitted by the terms of Apple's updated App Review Guidelines, which didn't mention emulators just a few days ago.
Here's a comparison:
If you like getting into the weeds of tech policymaking, the "why" behind this change is significant. For the last year or so Apple's been making a series of moves I wouldn't normally consider very Apple-like, including moving to USB-C charging, incorporating the RCS texting standard to slay the limitations of ye olde green bubbles, and allowing third parties to run their own app stores. Most of these changes, of course, have been driven by EU regulations or likely EU regulations.
So in a way this change to allow emulators actually is a pretty Apple move, because it's a way to limit the potential interest in those third party app stores it's being forced to allow. With other limitations like disabling the stores when you leave the EU and a fee for developers, Apple's doing its best to keep people using β and buying apps in β the original store. But hey, whatever the reason: Emulators on iPhones! And iPads!
To be honest, I'm not entirely sure how Apple's rules here that "retro game console emulator apps can offer to download games" but also that the apps are "responsible for all such software offered in your app, including ensuring that such software complies with these Guidelines and all applicable laws." Obviously emulators aren't gonna be able to let you download a whole load of pirated roms, but does this mean Apple is cool with users being able to load whatever files they wish into an emulator? Or can emulators only allow explicitly licensed games? In other words, can anyone upload a Game Boy Advance emulator to iOS, or can only Nintendo upload an iOS version of its Switch Online emulators? I want to assume the former is allowed, but this language in section 4.7.1 sure make it sound like the latter:
"You must provide an index of software and metadata available in your app. It must include universal links that lead to all of the software offered in your app."
I could still see an interpretation of this rule that only requires that index if your app does offer software, not that it has to offer software. But that's a lot of fuzzy interpretation. We'll see soon enough if any hobby developers bite and get clearance, or not.
If they do, one of the big advantages of Android's openness, in my opinion, suddenly looks a bit less special. And given Nintendo's recent aggressiveness towards emulation, seeing its games potentially playable on two billion more devices is probably not gonna go over too well. Apple may have just opened up another front in an escalating conflict. Or we'll see zilch from the hobby scene on the actual App Store, and third party stores and jailbreaking will continue to be the only retro game in town.
Assuming for a second we do see emulation become a thing on iOS, I'm deeply curious about performance and particularly the driver situation for Apple's rip-roaring fast processors, which have been consistently ahead of the competition for years now. I wouldn't be shocked to see even Switch emulation run at fantastic speeds on iOS devices... but that's the kind of thing that would really make Nintendo go nuclear, so it seems pretty unlikely to come to pass even if it's technically feasible.
Patching In
DuckStation, deinterlaced β One of many patch notes in DuckStation's recent release is "Rewrite deinterlacing and add adaptive/blend modes." There's now a deinterlacing drop-down in the emulator with a few options: Weave, Blend, and Adaptive (FastMAD). I was curious what those entailed, so I asked Stenzek. "Most PSX games are 240p, or work with the 480p hack, so it's not very useful," he said. But! It is useful in a few specific games that do need to run interlaced β like some pinball games, for example.
"Weave combs, because it's just stacking the fields on top of one another. Blend clears up most of the artifacting, but halves the resolution. Adaptive helps with both, but isn't entirely artifact-free. It's the same algorithm that was implemented in PCSX2 a couple of years back." So there you go: a crash course in deinterlacing courtesy of Stenzek. Thanks Stenzek!
Discworld? More like mouseworld β PS1 emulator Duckstation now supports the PlayStation mouse in point-and-click adventure Discword.
Dolphin clears up its aspect ratio descriptions β Y'ever look at aspect ratio options like "Auto" and "Force 4:3" for a game that's already 4:3 and go "uhhhh??" This update's for you: Dolphin regulars JosJuice and MayImilae put their heads together and wrote much clearer descriptions for what these picture settings all mean.
Cemu goes to Rio β A "large rework with various improvements" for Wii U emulator Cemu doesn't cite many specifics, but it does fix a crash in Mario & Sonic at the Rio 2016 Olympic Games, and if there's one game that every Wii U owner truly cares about it's that one, right?
GBE+ keeps chronicling cool Game Boy hardware, v1.8 β While not a major release, Shonumi's latest update to his documentation & accessory-focused Game Boy emulator hints at some exciting future functionality, including: added support for the Glucoboy and Nintendo MP3 player. "GBE+ is in the very last stretches of emulating some very complex and exotic hardware, so much of last year's work was to that end," Shonumi says. "You know what they say, the last 10% of a project takes 90% of the time." Make sure to read Edge of Emulation whenever there's a new post about some obscure Game Boy peripheral; it's always fascinating.
Core Report
MiSTer N64 core officially part of update all β Did you somehow miss the whole feature on this above? Well, just to reiterate β it's out! While Robert Peip's N64 core has been essentially finished for awhile and available in beta form for even longer, it's now part of the standard MiSTer updater and thus easily available to all MiSTer users. Get in there and enjoy the core in defiance of those who said this day would never come. What have they to say now?
There's now a Commodore 64 core for the Analogue Pocket β Talk about a pocket computer.
Saturn Core keeps on updatin' β The Saturn core has gotten "lots of fixes" recently, according to its developer. What exactly does that mean? I'm not smart enough to fully understand them, but some Github commits include: "fix horizontal inversion for pre-clipping," "fix used unsupported vertical resolution value for NTSC (Virtual On)," "Fix for dual sdram project," and "VDP1: fix gouraud shading." Saturn games look gooder??
What year is it, 1943? β Jotego's 1943 core is now live for everyone on the Analogue Pocket, while Pac-Mania and Commando roll into beta.
Translation Station
Go for it! Goemon: The Grand Cycle of Oedo β Ayy, it's out! The second partnership between hacker acediez and translator Tom, who's now helped bring a huge portion of the Goemon series to English players. Check out the last issue of ROM for more on this one β it's a deep dive into how this fan translation came to be.
Game Boy Wars β Before war was advanced, it was... a game of boys? Pretty bleak when you put it that way! But hey, maybe it's important for us to see the origins of war. Technically that's in 1988's Famicom Wars, which got a translation ~6 years ago, but this one followed just three years after the Famicom original and was notably developed by Hudson Soft, rather than creator Intelligent Systems. A few Game Boy sequels followed before Advance Wars really kicked the series into whatever the top gear is for tanks. Graphically archaic compared to the lovely character and sprite art of the GBA this may be, but you can solve that by throwing on Hardcore History's Blueprint for Armageddon and whispering "this is immersion." Shout out to hacker/translator Nezz, who also did Chocobo Land: A Game of Dice as featured in this very newsletter last year!
Alltynex goes out on the FM Town β And now for something completely different, Dreamcast impresario Derek Pascarella has hacked an indie shmup for the FM Towns, the other other beloved Japanese PC. Cool!? He recommends using the Tsugaru emulator. Looks pretty fun if you like ships that fire a lotta bullets and turn into mechs to swing green beam swords. And if you don't like ships that fire a lotta bullets and turn into mechs to swing green beam swords, I'm afraid we can't be friends.
Good pixels
With the Nintendo 64 core officially out for the MiSTer, it feels like a good time to appreciate some RAW THREE DEE.
Catch you in two weeks. π½