Tuesday, July 4, 2017

Sega Master Everdrive

In 2013, we checked out Sega Retro Gaming to mark the 30 year anniversary [July 1983] launch of the Sega SG-1000 and SC-3000. We also checked out the Sega Master System as these were the last ever 8-bit video game consoles manufactured by Sega built using the Z80 chip.

Here, we installed an emulator on a modern-day computer and downloaded ROMs in order to play some classic Sega retro games. Now we would like to play these game on real hardware via Master Everdrive.
Let’s check it out!

The Master Everdrive is a multi-cart for the Sega Master System which loads ROMs in the console itself: Store ROM files on SD card. Plug SD card into Everdrive and load Everdrive into Master System cart slot.

The Master Everdrive Printed Circuit Board (PCB) is built by @krikzz and contains the following features:
  • FRAM for game saves (no battery required)
  • Max supported ROM size is 8Mbit (1Mbyte)
  • SMS and SG-1000 games are supported
  • Save RAM data can be stored or loaded from the SD card
  • Cartridge used on Game Gear via Master Gear Converter
  • Codemasters and Sega mappers are supported
  • SD/SDHC cards supported up to 32GB
  • FAT16 and FAT32 support
Therefore, the Everdrive allows entire library of SG-1000 + Master System games on a single cartridge! Note: valid binary files should have extension *.sg [SG-1000] *.sc [SC-3000] *.sms [Master System]

Purchase the following equipment in order to play classic 8-bit Sega retro video games on real hardware:
  1. Sega Master System
  2. Master Everdrive
  3. SD card [storage]
  4. USB SD card reader
  5. CRT TV [optional]

1. Sega Master System
 Amazon  Sega Master System 1
 The Rage  Shop Sega [incl. SMS]
 eBay  SEGA Master System Original

2. Master Everdrive
 Stone Age Gamer  Master Everdrive (Deluxe Edition)
 Retro Towers  Master Everdrive (Cartridge Form) With Shell
 eBay  Everdrive Sega Master System + Carcasa

3. SD card
If / when you buy a Master Everdrive from Stone Age Gamer there is an option to include 2GB SD card.

4. SD card reader
Some computers do not have an SD drive therefore is may be necessary to buy a USB SD card reader.

5. CRT Television
Optional extra however a CRT Television would be necessary to play Light Phaser games like Rambo III.

Here are some You Tube videos on the Master Everdrive beginning with this cool Cart Review "tutorial":
 You Tube  Fantastic Flashcarts
 You Tube  SMS Flashcart Demo
 You Tube  Master Everdrive Opening

Finally, we would like to play many of the SG-1000 + Master System Homebrew games available on real hardware via the Master Everdrive! Checkout SMS Power web site especially Homebrew + Competitions.

Choices to build your own 8-bit Sega Homebrew games generally result in 2x options: writing game code in pure Z80 assembly or writing game code in C and using cross compiler to generate the binary output. References: Sega Console Programming or z88dk Programming Setup or z88dk Programming Sample

Either way, it is imperative there are enough clock cycles, i.e. at least 26 clock cycles, between two Video RAM (VRAM) writes when in the active phase. Otherwise VRAM corruption will occur as graphics glitches!

Emulate graphics on real hardware to check for potential glitches in the Visual Display Processor (VDP). Download Emulicious emulator. Setup Options | Emulation | Master System | Emulate VDP constraints.

Download and extract "Hello World". Launch ConTEXT editor, choose File menu, Open, "Hello World.asm" Follow Sega Console Programming to setup ConTEXT F9, F10, and F11, keys. Now setup the F12 key:

F12 - Emulicious Execute: Emulicious.bat
Parameters: "%poutput.sms"
Start in: C:\PathTo\Emulicious-with-Java

Press F9 to compile and link "Hello World.asm". This generates the "output.sms" binary file.
Press F12 to run Hello World in Emulicious emulator [Emulate VDP constraints real hardware]

To summarize, the Master Everdrive is a great way to play classic Sega retro games on real hardware.
It also makes it possible to play many of the Homebrew games available on the Sega Master System.

In 2014, we checked out z88dk as a way to write our own Homebrew game code in C language as an alternative to pure Z80 assembly. This is how 3D City and other SMS homebrew games were built.

Unfortunately, it seems that the z88dk does not allow for enough clock cycles between multiple VRAM writes, which results in graphics glitches! The devkitSMS, however, does not seem to have this issue J

This will be the topic in the next post.