I would highly recommend Shonumi's contemporary devlog focusing mainly on rare or difficult to emulate peripherals for the gameboy and GBA, ranging from infrared modems to Sonar-based fish detection dongles!
I managed to find my first published app on archive.org from like 1994, but it's a music visualizer and requires audio input.
Wow, that brings back childhood memories.
> I should mention that I was a huge Battle Network fan growing up with the GBA. I joined my first online community (GameWinners.com) specifically for the Mega Man forum.
> My first username (Team Shadow V2) was actually a riff on one of the new features found in MMBN2.
> In a way, Battle Network is a huge reason why I'm here trying to preserve old games.
> The Battle Network games will always hold memories of joy and nostalgia for me, so I wanted to see the Battle Chip Gates fully emulated not only for the benefit of video game history, but also for my own enjoyment.
Me too... MMBN2 is a big reason why I learned English and became a programmer. Huge respect.
I still love it so much. It's fun to think back on it and reflect on how oddly prescient it was.
PCs reachable directly from the internet, hosting home pages: a world without NAT. Internet connected doghouses and dishwashers. Mobile handheld AI capable personal computers. Everyone has their own custom AI agents that help navigate the complexity of the cyberworld, and also for self-defense. What I can only assume to be vulnerabilities, reified as literal weapons used by the AIs. Underworld networks normal people don't dare to navigate into. Cyber terrorists everywhere doing things like trying to burn people's houses down by electronically sabotating ovens, causing major damage and loss of life by hacking water mains, power grids, traffic signals, trying to nuke dams, actually hacking entire nations and genociding their AI populations, disrupting global environmental control systems, hacking autopilot systems in planes to bring them down like 9/11...
constant slap fights between contributors (usually involving haze or guru)
important PRs left ignored due to internal drama
8GB+ memory leak during building that they're in no rush to fix
Haze is almost always in conflict with mame lead Cuavas when trying to upstream his code, but his anger mostly justified.
Cuavas is a huge micromanager, he won't accept your code even if you just missed a typo in a line comment.
I respect his commitment to hold the codebase to absolute standards, but sometimes he takes his micromanagement too far that just makes the whole process unproductive.
Edit: Found the quote. The Right to Merge is about the maintainers right to merge your fork/changes back to their branch. Not the other way where random dev have a right for their changes to be merged into the original project
I also won't be naming any of them because those "committed" mame devs are very quick to inject themselves into any story about them, and harshly judge everything else that touches their code that didn't come from them.
What about Final Burn Alpha/Neo? They're extremely popular.
They do share some CPU emulation code, but that's common in emulation, often someone wriets a good CPU core then it gets passed around.
I worry that the likes of the extremely difficult to crack, on-chip DRM found within e.g. the Xbox One X, designed at every available opportunity to resist hobbyists understanding and using the hardware, will show up as a big gap in museum exhibits in our cultural memory in the 2200s. DRM has a long tail, and we societally pay quite the underappreciated price for it, for sure.
The Reverse Engineering scene is quite a scene.
I think the HNG64 just had obscure/undumped/not understood hardware.
They had a proprietary decryptor chip that sat between the program roms and the CPU. The decryptor used a table held in a small SRAM that was powered by a battery. When the SRAM lost power (battery died, or someone was trying to reverse engineer the board), the decryption key would be lost.
We broke it because someone noticed that the FC1 pin was tied to the drcyptor chip. In retrospect this made sense because only the program roms were encrypted, not the gfx roms (FC1 and FC0 pins were 01 for data access and 10 for program access [1]). Whenever the 68000 was requesting an instruction, it would set FC0 low and FC1 high, and when requesting data it would be opposite - this is how the decryptor knew when to decrypt.
But there was an achilles heel!
If you use PC-relative addressing, this ALSO causes FC0 low and FC1 high (because PC-relative is assumed to be accessing more program code). So all you had to do was fetch each address using PC-relative MOVEs, and it would happily give you the decrypted instruction words.
But then there was a secondary protection scheme: The decryptor chip would mysteriously shut down after a short while! WTF!
It wasn't until Capcom released their home console based off the original CPS board, along with backports of games like Street Fighter Zero, that the penny dropped. These backports were full of mysterious reads of weird addresses that made no sense.
It turns out that these weird addresses were what the decryptor chip was waiting for on the address bus. If no such address appeared within a timeout period, the chip would stop decrypting until you reset.
But the guys backporting CPS2 games didn't take the instructions doing these accesses out - even though the original CPS board didn't need it (probably it would have been a lot of work), so that secret leaked out.
After that, it was a simple matter of writing a program that read via PC-relative addresses, sent those weird accesses from time to time to keep the watchdog happy, and then output to a dumper via IO pins.
[1] Section 3.8: PROCESSOR FUNCTION CODES (FC0, FC1, FC2)
IIRC Sega’s System 16 did something similar. Was that board’s encryption cracked in the same way?
Was this style of anti-piracy measure widely used at the time, or was it only on a few 68000-based systems?
It did this via the function code pins, which signaled differently depending on whether the chip was requesting instructions or data, in supervisor or user mode. No other consumer-grade chip had this as far as I know.
Sega's System 16 was also 68000 based (as was the Megadrive/Genesis), but I don't know anything about their protection scheme.
vda vpa
0 0 internal operation, address bus may be invalid
0 1 valid program address, may be used for program cache control
1 0 valid data address, may be used for data cache control
1 1 opcode fetch, may be for program cache control and single step control
The 8086/88 has status outputs which provide similar information, including which segment register is being used (CS, DS, ES, SS) and the type of bus cycle (interrupt acknowledge, read I/O, write I/O, halt, opcode fetch, read data, write data).
One example I'm excited about is the recent progress emulating professional music synthesizers like the legendary Yamaha MU-series (https://en.wikipedia.org/wiki/Yamaha_MU-series). These are significant not just to musicians but also gamers because in the late 80s PC games started supporting MIDI music soundtracks. Throughout the 90s, most PC gamers only heard these soundtracks through fairly primitive PC sound cards which had limited audio sample memory, bit rates and simultaneous voice counts. So we usually heard chintzy, partial renditions of the lush full soundtracks the game's composer originally created (many composers used external MIDI hardware).
If you were a hardcore gamer with serious money you got an external MIDI sound module like the Roland Sound Canvas which could elevate your favorite game's sound from chintzy to breathtakingly beautiful. However, the absolute best MIDI game hardware was the $699 64-voice Yamaha MU80. I heard one back in the day and it blew my mind what I'd been missing (MU80 Demo Song: https://www.youtube.com/watch?v=FwWxEN2NGHA). Now thanks to MAME I can have a full software emulation of this powerful, pricey professional hardware I could only lust for back then.
Most of the MU series were backward compatible with the newer ones mostly adding more voices, polyphony, samples, effects and expansion options. Thanks to MAME we don't have to choose as we can have them all including 1999's MU128 which could play 64 different voices at once with 128 track polyphony.
Yamaha's many various OPL chips were based on cost and feature reduced versions of the FM synthesis engine in Yamaha's professional standalone music synthesizers. These chips powered not only PC sound cards but also a huge variety of 80s and 90s arcade machines, game consoles and home computers (https://en.wikipedia.org/wiki/Yamaha_OPL).
It's fascinating to explore the evolution of the OPL technology as this "lower cost, lower end" alternative to pro gear gained in sophistication and power culminating in 1994's OPL4 chip (aka YMF278) and its even more capable cousin the YMF292 used in the Sega Saturn console. These chips had impressive synthesis power for their consumer console/sound card price point. By the late 90s onboard music synthesis in sound cards, consoles and arcade machines began dying due to increasing storage and CPU power permitting playback and mixing of fully sampled music tracks. By the early 2000s the only remaining consumer application of Yamaha's powerful onboard synthesis chips was for generating ringtones in mobile phones. It's kind of sad such a rich musical legacy ended up playing 5 second mono tracks on half-inch speakers (although those mobile phone chips probably made more money for Yamaha than all their pro music gear til that point combined).
Here are two good links from my retro research bookmarks: The best rundown on the genealogy and capabilities of Yamaha's FM sound chips I've seen: https://gist.github.com/bryc/e85315f758ff3eced19d2d4fdeef01c.... And a collection of very impressive OPL4 music tracks: https://www.youtube.com/watch?v=zqD52xioky4.
Pretty sure I just used it to play genesis games
(And if you don't enjoy the technical stuff, well, now you can actually download some of those laserdisc games you apparently didn't get to play as a kid, haha!)
- Battle Toad in Battlemaniac (Battletoads in Battlemaniacs) = 53900 JPY.
- Akumajou Dracula XX (Castlevania: Vampire's Kiss) = 27500 JPY.
- The King of Dragons = 39800 JPY.
Wait, Data West? Apparently there was indeed such a company: https://www.mobygames.com/company/6613/data-west/
They're founded later than Data East, but also Japanese. They don't appear to be any sort of spinoff of Data East or anything, but I have to wonder if with the name they were hoping to confuse people somewhat into thinking they were Data East, or to ride on their reputation...