MesaDX

Project History

MesaDX Project Documentation Software Documentation Technical Documentation
Zint (DOS)September 23, 1996

Zint Screen-shot (Canceled)
Zint Screen-shot (Canceled)

Zint was a first attempt at creating a Z80-based machine emulator. Zint was implemented in MASM 6.11 16-bit assembly language for the MS-DOS operating system. Zint contained crude debugging features, and was similar to MS-DOS's Debug program. The emulator consisted of a Z80 processor emulator core, named Zemu, along with a skeleton machine environment in which the emulated Z80 processor executed. The environment contained 64KBytes of linearly-addressed memory, a single 8-bit input port, and a single 8-bit output port.

The purpose of Zint was to implement and validate Zemu, a Z80 processor emulator intended for use in a high-performance Sega Master System and Game Gear (SMS/GG) emulator to be named MESA. The simple execution environment provided by Zint was designed to simplify debug of Zemu without the complication of the more sophisticated memory and I/O systems present in the SMS and GG machines. Once Zemu was assured to be, for the most part, bug-free, the development of MESA would commence.

Implementing all of Zint's debug features in assembly language proved to be too time-consuming to continue. The Zint portion of the project was canceled in favor of Zebug, an emulator written in a combination of assembly language and C++.


Zebug (DOS)October 9, 1997

ZEBUG (DOS) Screen-shot (Canceled)
ZEBUG (DOS) Screen-shot (Canceled)

Zebug was the second attempt at creating a Z80-based machine emulator. Zebug expanded on the work done for Zint by including the same Z80 emulator (Zemu) and machine environment, but changing the user interface source language from assembly language to C++. The change to C++ promoted faster development of the debug features desired for validating Zemu.

As work progressed on Zebug, the Z80 emulator Zemu was quickly stabilizing. Additionally, the issue of whether MS-DOS was the best target operating system was called into question. Zebug for MS-DOS was post-poned to investigate the feasibility of creating Zebug for Microsoft Windows. Once it became clear that there were many advantages to developing for Microsoft Windows, the MS-DOS version of Zebug was canceled, and work commenced on a Windows-based version.


Zebug (Windows)April 24, 1998

ZEBUG (Windows 95) Screen-shot (Canceled)
ZEBUG (Windows 95) Screen-shot (Canceled)

This version of Zebug was functionally similar to previous versions, and like previous versions, was intended to validate Zemu, which had been recently upgraded to 32-bit assembly language. Zebug's user interface was implemented using the Microsoft Foundation Classes (MFC) C++ class library. The emulated machine environment remained the same as the previous versions of Zebug and Zint.

Zebug for Windows was created to be the foundation of MESA, and is the last implementation of Zebug. Although Zebug was still incomplete, the Z80 emulator Zemu was considered to be very reliable, and so the Zebug phase of the project was discontinued. Work soon began on MESA, a full-blown SMS/GG emulator.


MESA (Windows)September 28, 1998

First version of MESA started. MESA is designed to be a high-performance Sega Master System and Game Gear emulator for Microsoft Windows (Win32). MESA is implemented in a combination of MASM 6.11 32-bit assembly language and the Microsoft Foundation Classes (MFC) C++ class library. Currently, MESA still includes many features carried over from ZEBUG. These features were left in place to help debug MESA itself. Most of the Windows-specific portions of MESA are derived from work done on the Windows version of ZEBUG.

MESA is not complete to its original conception - it does not yet completely emulate the SMS/GG machines. Currently, there are no plans to finish implementing this version of MESA.


MESA-D (Windows)October 21, 1998

As the development of MESA progressed, the design goals shifted. To reflect these changes the MESA project was abandoned in favor of a new one, MESA-D.

From the beginning of the MESA project (starting with Zint) debugging features were an integral part of the emulator's development. The original understanding, though, was that these features would be removed as MESA matured. However, at this stage of the project it was decided that these debugging features should remain as permanent features in the emulator. To reflect this change in philosophy the project was re-named MESA-D; the "D" added to emphasize the debugging nature of the new emulator.

MESA's debugging features, as they stood, were too crude to remain part of the emulator - they needed refining. To help refine these features the Z80 emulator core and memory system were completely re-written in C++. This change in source languages was made to allow cleaner integration of the emulator's debugging features with MESA-D's MFC (C++) user-interface. Once again, validation of the Z80 emulator core was a major focus.

MESA-D is not complete to its original conception - it does not yet completely emulate the SMS/GG machines. Currently, there are no plans to finish implementing MESA-D.


MesaDX (Windows)March 13, 1999

Change to MesaDX, a Sega Mark III Architecture (SM3A) emulator with AGAMA extensions for Windows 98. AGAMA is a specification adding sophisticated debug features to the standard Sega Mark III Architecture.

As the debugging features of MESA-D advanced it become more cumbersome trying to force them onto the existing Sega Mark III architecture. Many debug features were better suited as part of the architecture rather than simply sitting on top of the existing architecture. An example is single-stepping; the Z80 does not support single-stepping through code. Adding a single-stepping feature to the Z80 emulator core technically changed it from a Z80 emulator to an emulator of some fictitious processor compatible with the Z80. For this reason, and others, the AGAMA specification was developed, and MESA-D was discontinued in favor of MesaDX, which emulates the Sega Mark III Architecture with AGAMA extensions.

Like its predecessor, MesaDX is written entirely in C++ for the Microsoft Windows (Win98) operating system. The machine emulated in MesaDX is completely compatible with existing Mark III, SMS and GG software. MesaDX can be used both to reverse-engineer existing commercial software as well debug and develop new software. Currently, work is progressing on MesaDX.

Please see the Project Status page for more current information about MesaDX.

MesaDX Version 0.04 Screen-shot (Windows XP)
MesaDX Version 0.04 (Current version) Screen-shot (Windows XP)



Maintained by Eric R. Quinn