Sega Master System Architecture: A Practical Analysis
copetti.org
copetti.org
Curiously, the Sinclair ZX systems also used a Z80 as the CPU and there are also a great many ports of ZX Spectrum games to the MSX computers, but those are a bit more complicated.
If you've never played SG-1000 games, they're worth it. The system had about the same power as the Colecovision, but the games are Japanese style games of the era vs Western games the Coleco mostly received. The ports are so stripped down that they're functionally demakes and it's often rewarding to see games just a bit too complex for the system stripped down to their core gameplay and graphics essentials. My favorite is the port of Elevator Action, which barely holds together, but somehow has all of the game there.
So it made sense that Commodore used a 6502 variant and I'm betting Nintendo chose a 6502 core for its NES to keep costs down. But all your old Japanese 8-bit arcade games of the 80s were Z80-based.
The Z80 has more powerful instructions but they take longer to execute. The 6502 instructions are faster but you need more of them to do the same task.
In the end, a 1 MHz 6502 was almost equivalent to a 3 MHz Z80. The Z80 was available up to 4 MHz but often ran at 3.58 MHz) and the 6502 was mostly 1 MHz (eg. Apple II, Commodore 64) but in a few systems (eg. BBC Micro, Commodore 128) it was 2 MHz.
MSX was the original Xbox.
The differences were so small you could load most MSX programs on the 328 if you used a small software loader.
I learned this about 25 years too late. :-D
The interface between the TMS9918 and its host system is dead simple: 8 data bits, 1 mode bit, 1 chip select bit, and nothing else. It manages its own 16 kB of VRAM and no other timing or clock signals are required between the 9918 and its host CPU.
As a result it was used in all sorts of machines of the era: TI 99/4A, Colecovision, Coleco Adam, MSX, Sega SG-1000, plus multiple different expansion cards for the TRS-80 and Apple II. It also supports genlock video input and was used in early-80s video production.
Most importantly, its programming interface is well defined and extensible. It allowed Yamaha and Sega to produce upgraded chips for the Sega Master System and MSX2 while maintaining backward compatibility, something that Commodore wasn't able to do with the VIC-II chip in the C64.
https://www.youtube.com/playlist?list=PL3itg4Usn3F-24qjSrlY4...
I was not able to get a datasheet for the 9918 and had to abandon the project. In early 1983 I did get a nice book from Texas Instruments by asking them to send it to an address in the US, but I only skimmed it. That was a huge mistake. A few months later I started a new computer project for the Logo programming language and remembered that Logo in the TI99/4 kept "running out of ink". There were only 256 different characters which could be redefined but the screen was 32x24 = 768 characters in size. So 2/3 of the screen had to be blank as the turtle moved around it. So I went with the Motorola 6883/6847 combo instead (the same as the TRS-80 Color Computer).
It so happens that the TMS9918A used in the TI99/4A has a new mode that the TMS9918 didn't: you can divide the screen in 3 with a different character set for each part. That would have given me Logo with infinite ink.
I have never seen one packed with Hang-On myself, but I recall seeing it was a thing in a magazine (although, over time, this magazine turned to be pretty unreliable, but I'm pretty sure a Master System bundle with a Sega arcade port and a gun game were a thing in this region)
https://en.wikipedia.org/wiki/Game_Gear
> With a late start into the handheld gaming market, Sega rushed to get the Game Gear into stores quickly, having lagged behind Nintendo in sales without a handheld on the market. As one method of doing so, Sega based the hardware of the Game Gear on the Master System, albeit with a much larger color palette than its predecessor: the Game Gear supported 4096 colors, compared to the 64 colors supported by the Master System. Part of the intention of this move was to make Master System games easy to port to the Game Gear.
I've ported a simple NES game written in C to the SMS (https://8bitworkshop.com/projects/?n=sms-sms-libcv/chase) and I think it'd be feasible to write a translation layer between the two platforms. Sound might be a little tricky, since NES's APU is more advanced.
"Escape in a Forest" from Ninja Gaiden on the SMS is my all time favorite: https://youtu.be/E3IWkLFfD6M but the whole OST is a masterpiece that does not get the credit it deserves.
The FM module version is even better: https://youtu.be/fWlnsW3ywsI
I always get the sense that whoever did it was having a blast.
I prefer MegaDrive due to its distinctive sound; sampled audio lacks character. However, like with the GameBoy, it really matters what model you have. Rev 1 Genesis and grey brick gameboys have excellent sound.
> I prefer MegaDrive due to its distinctive sound; sampled audio lacks character.
Interesting, to me the MD sounds like any random 90s FM sound card or MIDI synth, while the SNES is instantly recognisable.
Doom 32X Original Music: https://www.youtube.com/watch?v=RYqS5OEN4_U&list=PLB5E3C2912...
It's like someone's farting into a didgeridoo accompanied by the cheapest casio electric kids' piano.
Doom 32X Music Hack: https://www.youtube.com/watch?v=FehpU0sjXrQ
Oh hey, that's a world of difference.
Same hardware, far more capable hands.
Anyhow, it's easy to find good compilations of good Genesis music:
https://www.youtube.com/watch?v=2QCKYS7OAfw
That EWJ2 track... Yeegad.
I _highly_ recommend listening with a good pair of headphones or home hifi that has great range.
You can't really create sounds on the SNES. Instead, the chip is fed samples of recorded audio and then the chip allows for different actions to be taken on that sample (e.g. adjusting the EQ, Envelope, Loop, etc). The major limitations with this approach is bit depth for the samples (quality) and storage (sample length).
On the MD, the chips themselves create the sounds either through direct manipulation of the waveforms (FM) or by selecting a specific waveform and performing various modifications such as pitch or frequency (sound chip). This is like having a synth built into the unit. It's only going to sound like that particular synth and with some clever hacks, you can get close to realistic sounding audio, they are still hacks at the end of the day. The MD isn't capable of playing samples using the built in hardware.
The SNES was capable of producing a near limitless array of sounds and could even reproduce realistic sounding instruments as it was just playing audio samples. Something the MD simply couldn't do. That said, for the sounds the MD could produce, it would sound "better," if that makes sense. As an analogy, playing a song on a YM2612 based synth and the MD, which uses the same FM chip, would sound identical. However, playing a song on a YM2612 synth and then playing the same song on the SNES (via samples) would be noticeably different, or may not even be possible at all due to the limitations of the hardware at the time.
What an interesting time when there were so many valid extremely different approaches to problems like "making sound" that led to such different outcomes.
I never know if I would have preferred the music of the Yamaha YM2413 FM chip that was available as an extension to the Mark III and came with the Japanese Master System only.
It does sound great though - Yamaha YM2413:
Texas Instruments SN76489:
Pictionary, of all games, had a fantastic soundtrack.
There's a detailed comment at the top of MAME's emulation code for these chips (and a lot of parameters on the emulator's class constructor): https://github.com/mamedev/mame/blob/master/src/devices/soun...
Blast! demo (2017), pulling off some crazy rotation and perspective effects https://www.youtube.com/watch?v=I742MvGhkME&feature=emb_logo
"Games That Push the Limits of the Sega Master System" https://www.youtube.com/watch?v=H4Ze11Z8ffU
Road Rash - This is unbelievable. Visually, it's nearly up to the standards of the Genesis version. Although of course the Genesis version didn't run at a particularly high frame rate. https://www.youtube.com/watch?v=SlfLgnE6OIw
The Genesis/MD uses a Z80 processor as its sound processor alone - so it is amazing to me to consider running everything off that on a Sega Master System!
I'm a little obsessed with Sega Saturn homebrew at the moment, or I'd try some SMS homebrew - but the article was fascinating!
Is a fantastic open-source homebrew platform for the Saturn that the Z-treme engine is based off of.
I recall watching all the phases of the Z-treme's engine's development on the jo-engine forums as XL2 was creating it. So cool to watch. :)
There are some (relatively) impressive games for the Master System, but I think that's because it stuck around into the nineties, in regions where there was an installed base i.e. not the USA. Late-generation games often benefit from better optimisation, and things like more cartridge space. The Master System port of Mortal Kombat, for instance, despite being pretty horrible as a game, is miraculous from a technical point of view. Despite being heavily cut-down, of course, it was an attempt to create the same game. That's a port (or demake or whatever else you'd want to call it) of a 1992 arcade cabinet, onto a home console released in 1985.
1: warning, tvtropes: https://tvtropes.org/pmwiki/pmwiki.php/Main/VideoGameDemake