GoldenEye (N64) has a fully-functional ZX Spectrum 48x emulator built into it.
therwp.com
therwp.com
Fun fact: NES Excitebike supported saving and loading your custom tracks to the Famicom Data Recorder. The USA version of the FDR was never released, but the USA version of NES Excitebike still had all the save/load code+functionality built in. When you tried to save a track it would just hang for a while before returning to the menu. After figuring out where the save/load routines were, and where the track was stored in RAM, we were able to put hooks in the emulator to save the tracks to the N64 cart.
Also the bit about the track saving is fantastic. Thanks for sharing!
As it happens, audio emulation on the ZX-Spectrum 48k is easier: There's a one-bit on/off output wired to a speaker. Even generating tones has to be done by timing Z80 cycles! Some people still managed to do amazing things using pulse-width modulation.
This may be the case for some emulators -- such as the NES emulator in excitebike. However, (if I understand everything I've read correctly) the SNES didn't have a 'sound chip' in the same sense that the NES (or GameBoy, C64, etc.) did. The NES and all of Nintendo's other hardware used to synthesize its sound in real-time, but that changed with the SNES, which introduced sample-based audio instead. (Fun fact: some people suggest that the N64's sampled audio can meet -- or exceed -- CD quality!)
These pages know more about SNES audio than I do:
http://chipmusic.org/forums/topic/217/so-super-nintendo/ http://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_Sy...
I suspect issues with SNES emulation are simply that all of the SNES emulators we have are fairly poor in _all regards_, it's just that it's easier to notice in the sound than in things like timing.
Here are some examples of the other failings of many SNES emulators:
It has a control CPU, and it's own RAM, with no access to the contents of the cartridge, or to main RAM. Obviously, you have to emulate all of that accurately, or the code that controls the sound output might not work correctly.
The actual hardware is more complicated than just a sample mixer. It's implemented as a custom DSP, which does sample decompression, high quality resampling, mixing, has an envelope generator, several effects (programmable FIR filter, echo, panning), and a noise generator.
Older SNES emulators didn't really emulate any of this. They treated it as if it were a simple sample playback device. This worked OK for most games, because they didn't use those features. However, when a game actually used those features, everything sounded wrong.
Later, they started supporting the effects, but nobody understood how the DSP was actually implementing those effects, so they didn't sound quite right. They just implemented stuff that sounded about right on the games they were testing on. Reverse-engineering all the hardware, so this stuff could be emulated accurately, took a very long time.
Right now, the SNES audio hardware is completely understood. We have several emulators that are perfectly accurate, both in terms of timing, and output. For example:
http://www.slack.net/~ant/libs/audio.html#snes_spc
Both ZSNES and bsnes use that library, and I believe that Snes9x is nearly as accurate now.
That said, I don't think anyone's actually dumped the DSP's program code.
See http://tvtropes.org/pmwiki/pmwiki.php/Main/DummiedOut
If this kind of thing interests you, then you will very probably enjoy the story of the legendary Ocarina of Time Debug Cart
http://www.assemblergames.com/forums/showthread.php?23285-Or...
http://tcrf.net/The_Legend_of_Zelda:_Ocarina_of_Time_(Debug_...
Also, I'd just like to take a moment to show some appreciation for Rareware, one of the greatest game dev houses ever. They're responsible for so many great childhood memories, as well as breaking many technical and artistic boundaries.
You bastard.
> The Cutting Room Floor is a site dedicated to unearthing and researching unused and cut content from video games.
Seriously, stop it. I have things I have to do like eat and sleep. If I'm found starved to death at my computer, you'll know who to blame.
> http://tcrf.net/Final_Fantasy_VII/Debug_Room
"In the latest case of video game related violence, shinratdr was found dead at his house today, after spending two straight weeks reading about content cut from various video games. He was about to quit when he stumbled upon the page for the FFVII debug room and all hope was instantly lost. He will be missed, I guess."
Perhaps they did a quick port or trimmed the emulator to fit the requirements of that specific game.
I just felt old on realising that the N64, which I remember reading previews of in Edge magazine, is as old now as the 48k Spectrum (treasured artefact of my childhood) was when the N64 came out. It helps a little that I didn't see an N64 in action until 3 years after its Japanese release.
Then I sort of fell out of gaming apart from a bit of simulation and strategy games... Getting tempted again these days when I see how far they've gotten. With a young son taking up my time I suspect it'll be him that'll be the excuse...
It was released in August 1997. Even if you only care about the first-person shooter genre, Duke Nukem 3D had already been out for over a year, and it was a much more sophisticated game.
I had a friend who memorized the respawn pattern for some of the levels in goldeneye. He also memorized paths quick enough from spot to spot to be at the right spot every time you respawned.
He'd only have to kill you once. After that, you'd respawn and meet a bullet in the back of your head, respawn, bullet in the head, respawn, bullet in the head, until endgame.
Getting access to the tank on the single player level in the arctic air base was precious too.
(But I didn't manage to remember the respawn points.. crazy ;))
If you think you're good, we're hiring for a few positions. See profile.
It would be really interesting to know about the environment that generated something like that.
Time was probably at a much bigger premium than cartridge space while it was under development, as I don't remember hearing that later Rare games had quite so much left over in them.
It's also hosted on Github: https://github.com/emudeveloper/N64-Player--Mupen64plus-
Provided they own their own IP, i don't see how this could be a problem.
http://www.worldofspectrum.org/permits/amstrad-roms.txt
1) What exactly do you have to do to use Sinclair ROMs in an emulator, such as acknowledgements etc?"
"Amstrad are happy for emulator writers to include images of our copyrighted code as long as the (c)opyright messages are not altered and we appreciate it if the program/manual includes a note to the effect that "Amstrad have kindly given their permission for the redistribution of their copyrighted material but retain that copyright"."