These days, we’re used to games evolving over time; developers add content, patch out bugs and generally tinker with their creations for months (if not years) after their publication, subtly re-shaping them into a form which often differs quite wildly from the initial release. Even though this practice wasn’t anywhere near as common back in the days before digital downloads and updates, publishers still changed games post-launch, as a recent example unearthed by Twitter user foone proves.
The example given not only shows how games on physical carts could be altered during production cycles, but also highlights how hard it is to accurate emulate vintage games on modern hardware. The game in question is Pilotwings, an early release for the SNES which is famous for its use of Mode 7 rotational effects.
As foone points out, Pilotwings contains a demo sequence which shows the famous red biplane either landing safely or crashing. If you dig out your copy from the cupboard now and load it up, which of these two scenarios occurs is all down to when the cartridge was actually manufactured; what makes this whole situation rather strange is that the ROM information on every single Pilotwings cartridge is identical. So why does the plane land on some copies, and crash on others?
If the plane lands successfully, then you’ve most likely got an early release of the game. While the ROM chip is the same across all versions, Nintendo added added an extra chip to help with calculations, even in quite early games like Pilotwings. This was an extension of the ‘memory mapper’ chips it had used to good effect in the NES / Famicom era, but this time around the idea was these additional (and optional) microprocessors would give the SNES a much longer lifespan, because Nintendo knew that as time went on the chips would become faster and cheaper to produce (this tactic ultimately led to the famous Super FX family of chips).
In the very first versions of Pilotwings, a NEC-made chip called the DSP-1 was included. The second revision included the DSP-1a and was merely a manufacturing change to bring costs down, so if you’ve got one of those inside your cart, the plane still lands. However, the third and final revision – the DSP-1b – is what causes the problems. This chip ‘fixed’ calculations to make them more accurate, and the result is that the plane now crashes.
Why? Well, it seems the new chip determines that the ‘stored’ button presses which influence that opening demo would, with the revised and more accurate calculations, result in a crash rather than a safe landing. Because Nintendo didn’t go back into the ROM and ‘re-record’ the button presses to alter the demo, we get the difference between the DSP-1/DSP-1a versions and the DSP-1b.
This leads onto foone’s next point — hardware-related revisions like this make emulation an incredibly difficult task. With the ROM information being identical, how do you accurately replicate the difference made by a chip like the DSP-1b? The aim of all emulation is to be as faithful as possible, but how can you account for incredibly subtle hardware changes like this example?
It’s a fascinating insight not only into the world of making games in the ‘90s, but also the challenges which face the people who create emulators — a group of insanely talent individuals who battle seemingly impossible odds (as well as negativity from certain sectors of the retro gaming community) to perfectly imitate the consoles and games we loved all those years ago.
I'm in my 40's and although i defiantly remember and played this game at launch. I don't remember the game play at all. Therefore i would love for this to be released for the Switch to see how well it holds up today.
Oh my lawdy lawd my head hurts
This is beyond science. I have no idea what half of these means...
Fantastic piece. I love reading things like this!
This was found out when the DSP ROMs were dumped however many years ago that was.
It was one example of bsnes/higan's unusual (for an emulator) per-game folder structure, and
@Damo because the game was programmed to work around a bug in the original DSP1 ROM, he couldn't just emulate the DSP1B ROM for every DSP1 game.
Also, higan found out that timing can vary slightly per console.
As a similar example, Super Bonk's tutorial demo mode can desync (and it did in two out of two attempts running an original cart on my console). A bird can either hit or not hit Bonk, causing him to not fit into a pipe (or miss it, something like that) like he should, making the rest of the pre-programmed button inputs invalid and Bonk just walks back and forth forever.
I seem to recall the Super Mario Bros. demo having different versions also. And I always wondered about this but could never prove it
Edit: Just checked on youtube and there are in fact three different versions. The original where Mario manages to hit the top question block of the pyramid and then dies ending the demo. The emulator version (NTSC?) where Mario misses the top block and seems to run into pipes for no reason. And the PAL version (emulator also?) which is even more messed up and Mario just misses everything.
Here is how things are meant to play out: https://www.youtube.com/watch?v=VJi5NWVq7nw
Edit 2: Oh actually, if you let the demo play out in the emulated version a second time it fixes itself... not sure what's going on to be honest
@BacklogBlues if you have one the game is available on the 3ds eshop as one of the virtual console releases
I'm not even kidding, I wonder if this triggers a price fluctuation for different copies of the game, similar to the 3-screw / 5 - screw values of classic NES carts.
Really cool article and Twitter thread.
Back then, publishers put extra chips in the cartridges.
Nowadays, they don't even shell out for enough storage to put the whole game on there.
These are the exact type of articles that I love looking at on Nintendo Life. it's amazing what these games were, and the nuances behind them. It is so awesome to see this little piece of history.
I was thinking the exact thing.
Short but sweet, loved this article Thank you! As a nerdy nerd old timer, I love reading about curious technical details related to early gen consoles and emulation efforts/advances!
This is fascinating. I now want to check my cartridge to see what happens in the demo. I’m also intrigued how the SD2SNES handles this, as doesn’t it have separate BIOS files for the DSP chips? I wonder if BIOS files for all 3 versions of this DSP chip exist out in the wild, or just one? I need to go and check how it plays on my SD2SNES too!
There will be loads of collectors reading this piece now frantically hunting additional copies of the game so they have all 3 DSP versions of the Pilotwings cartridge!
@BacklogBlues "I'm in my 40's and although i defiantly remember and played this game at launch..."
I love that typo. I know you meant "definitely", but from the perspective of someone who played it recently on the 3DS and found it oppressively difficult, I think "defiant" best captures my feelings towards it!
Love these type of articles. Interesting stuff indeed.
@MysticGengar Like you, I don't understand half of it--but I do find it fascinating to "look under the hood"
Such small differences can make big changes in game play.
What’s sad is I find the article quite interesting.
Cool read, @Damo
I'm not aware of any DSP-1b equipped Pilotwings cartridges.
This behavior on real hardware didn't become known, at least in the circles I visit, until the Super Powerpak and Super Everdrive with their optional DSP-1 mount arrived.
Then someone that just happened to have cannibalized a later cartridge and had thus popped in a DSP-1b, noticed this with the community soon piecing together why it was happening.
@Atariboy, it's interesting how human memory works. When reading the article, for some reason I thought I recalled witnessing this strange phenomenon once myself around 5 years ago on my original copy of Pilotwings that I got in 1992. which has the stamp 00 on the back. But when I tried it just now, the plane landed safely. I didn't buy Pilotwings on the Virtual Console and the Super Everdrive I had didn't have the DSP chip to be able to play it, but maybe I'm remembering seeing it in an emulator. Do any emulator setups default to DSP-1b?
Interesting, I thought this would have to do with the state of ram on boot, I don't remember if SNES randomizes ram at start, NES definitely does.
This reminds me of another popular SNES bug in the 'Magical Drop' game, on rare occasion it can crash on the score screen, the thing is it will only crash on certain SNES models... or so they say. But the main deal is that accurate emulators will crash it, while emulators like zsnes or the VC will play it crash-free, supposedly.
The Wii VC version doesn't crash as far as I've used it.
A cachet now, please.
@Scapetti It's not really fixing itself. There's two different demos on-cart and it alternates between them.
@Firehawke I don't think that's quite true because the actions seem to be the same, just one of them is slightly off because Mario gets pushed by a block. Also I don't think it plays the broken demo in the All Stars version
@AlienX Magical Drop crash I think has to do with the accuracy of the sound chip, if I recall. Maybe the dev forgot to initialize something, thus different results on different hardware. That sort of thing is one reason for Nintendo to pull Uniracers, which I believe more than the Pixar story. Debs found to have used unstable coding practice.
@VGScrapbook Probably because it was the later iteration.
@TheFongz Passion went down the drain when companies got big and started to only think about profit over user experience. To me it doesn't even make sense, because the two are closely linked, but that's nothing new these days.
I miss the big old chunky cartridges. Games weren't cheap back then and having them on something that size added to the feel you were buying a premium product. Looked nicer stored too.
This is what made the 16 bit era so exciting, and with the use of carts custom chips could be added for extra power and effects. Just a timeless and special time. The 16 bit era is pure gold.
Tap here to load 32 comments
Leave A Comment
Hold on there, you need to login to post a comment...