A Sega Mega Drive/Sega Genesis emulator

Overview

Overview

This is clownmdemu, a Sega Mega Drive (a.k.a. Sega Genesis) emulator.

It is currently in the very early stages of development: it can run some games, but many standard features of the Mega Drive are currently unemulated (see TODO.md for more information).

Design

clownmdemu's design emphasises minimalism and portability: it is written in C89, integer-only, and aims to have no dependencies on non-portable elements such as integer type sizes, undefined behaviour, language extensions, or signed number representation. Additionally, clownmdemu itself is implemented as a library, with all platform-specific logic being relgated to a separate frontend program.

clownmdemu attempts to balance correctness with performance, acting as a more high-level emulator than accuracy-focussed alternatives may.

Frontend

An example frontend is provided in the frontend directory; it is written in C99 and leverages the SDL2 library.

To run a game, the path to the game file must be passed to the frontend as a parameter (this can be achieved by dragging and dropping the file onto the executable).

The control scheme is currently hardcoded to the following layout:

Joypad 1:

  • W = Up
  • S = Down
  • A = Left
  • D = Right
  • O = A
  • P = B
  • [ = C
  • Enter = Start

Joypad 2:

  • Up = Up
  • Down = Down
  • Left = Left
  • Right = Right
  • Z = A
  • X = B
  • C = C
  • V = Start

Hotkeys:

  • Space = Fastforward
  • Tab = Soft reset
  • F5 = Create save state
  • F9 = Load save state

Compiling

clownmdemu can be built using CMake, however it should not be hard to create your own build system if necessary, as the emulator's build process is not complicated.

Licence

clownmdemu is free software, licensed under the GPLv3 (or any later version). See LICENCE.txt for more information.

You might also like...
A diagnostic program that can be run on a SEGA Naomi system

naomidiag A diagnostic program that can be run on a SEGA Naomi system. Aims to provide basic diagnostic functionality for calibrating your CRT, testin

x86 emulator on Raspberry Pi Pico
x86 emulator on Raspberry Pi Pico

picox86 x86 emulator on Raspberry Pi Pico https://user-images.githubusercontent.com/10139098/110543817-13299080-812b-11eb-9c88-674cdae919fc.mp4 PCB fr

I2C hardware test terminal/master mode emulator.
I2C hardware test terminal/master mode emulator.

I2C Master Mode Emulator The I2C master mode emulator allows communication with I2C devices by sending or receiving data to/from the I2C bus. To issue

a little hobby raspberry pi pico emulator

PICO-EMU a little raspberry pi pico emulator note: we use the provided bootrom from raspberry pi at the repo: https://github.com/raspberrypi/pico-boot

Emulator for EvE Online Crucible expansion

EVEmu - An EVE Online Emulator Introduction EVEmu is a work-in-progress server emulator for the space MMO EVE Online. This is an educational project.

a Blue Pill Neopixel Emulator

NeoPill a Blue Pill Neopixel Emulator, firmware for STM32F103C8T6. To build with STM32CubeMX (6.1.1), open bluepill_neoemu_clk.ioc, generate code in a

BK0010/BK0011 Emulator for Linux

htmlhead meta http-equiv="content-type" content="text/html;charset=koi8-r" /head bodypre Этот эмулятор БК-0010 (пока только БК-0010, у мен

A VERY simple Chip8 emulator

Chip8-Emu A VERY simple Chip8 emulator

EMUCHIP8, a CHIP-8 emulator.

EMUCHIP8 Chip-8 Demo Video This is a fun retro emulator project of mine. You can download the source code and build with MAKE, then insert your chip-8

Comments
  • You can port these Sonic's games AND movian application to Wii U?

    You can port these Sonic's games AND movian application to Wii U?

    Do you think it would be possible for you to port these three Sonic games:

    Sonic 3 A.I.R Sonic Nexus Sonic Robo Blast 2 The Sonic 3 A.I.R has its source code on github, just google it and I think there is a port for Switch.

    The Sonic Nexus decompile is in the Rubberduckycooly repository and is also based on RSDK so it can be ported to the Wii U.

    Sonic Robo Blast 2 has its source code on its website and it would be interesting to see the port of the latest version of SRB2 on Wii U.

    Finally, I wanted to ask you if it is possible if you can compile and adapt to Wii U, the movian application. It is a multimedia center that is for PS3 and PC and an attempt was made a long time ago to make a port for Wii. Maybe you can use the Wii port source code to make the Wii U port, especially since streaming services on Wii U are going to end soon.

    You can find the Movian Wii source code in the wikiblog0 github repository. And the original source code on the movian website.

    Link: https://github.com/wikiblog0/movian-wii-wiiu I appreciate your contributions to the Wii U scene.

    Greetings

    opened by wikiblog0 2
  • Sonic 1 - Sound

    Sonic 1 - Sound

    I know it's not implemented but i through this info will help.

    This is the output of Sonic 1

    ERROR: Unimplemented instruction IM used at 0x23 ERROR: 68k attempted to access Z80 memory/YM2612 ports without Z80 bus at 0x72776 ERROR: 68k attempted to access Z80 memory/YM2612 ports without Z80 bus at 0x7278E ERROR: 68k attempted to access Z80 memory/YM2612 ports without Z80 bus at 0x72740 ERROR: 68k attempted to access Z80 memory/YM2612 ports without Z80 bus at 0x72758

    opened by paulmcquad 1
  • Fix compiler errors and warnings on FreeBSD:

    Fix compiler errors and warnings on FreeBSD:

    1. Put /usr/local/include in the include path so X11 headers get picked up on the BSDs.
    2. Fixed a Clang compiler warning in main.cpp which amounted to passing a pointer as a bool value.
    opened by jfolker 1
  • The tinyfiledialogs submodule used is not FreeBSD-compatible

    The tinyfiledialogs submodule used is not FreeBSD-compatible

    ... But I made a fork of it that is. ... And I even fixed a latent bug on other platforms.

    https://github.com/jfolker/tinyfiledialogs

    The original author doesn't update frequently, can you use my version instead? I managed to build clownmdemufrontend (FreeBSD, Clang) and even play Sonic 2 XL on it successfully.

    opened by jfolker 1
Releases(v0.1)
Owner
null
Sega Master System / Game Gear / SG-1000 emulator for iOS, macOS, Raspberry Pi, Windows, Linux, BSD and RetroArch.

Gearsystem is a very accurate, cross-platform Sega Master System / Game Gear / SG-1000 emulator written in C++ that runs on Windows, macOS, Linux, BSD, iOS, Raspberry Pi and RetroArch.

Ignacio Sanchez Gines 181 Dec 18, 2022
Microcontroller based switchless ROM switcher for the Commodore 1541-II disk drive

Retroninja 1541-II Switchless Multi-ROM A microcontroller based switchless ROM switcher for the Commodore 1541-II disk drive. Switch between stock CBM

retroninja 5 Sep 3, 2022
Drive your RL series Robomow lawnmower with a PPM remote

Robomow RL series remote What? Quick and dirty Arduino code to being able to control your Robomow RL series mower* with a PPM remote. Tested with Robo

Miklós Márton 2 Aug 20, 2022
Physical Tic-Tac-Toe smart board with PvP mode and two levels of AI. Built atop a custom PCB connected to an Arduino Mega 2560.

TicTacToe_SmartBoard The files in TicTacToe_SmartBoard are based on the files in https://wiki.illinois.edu/wiki/display/ECE110HLSF15/Tic-Tac-Toe+Smart

Hyrum Dickinson 2 Dec 3, 2022
Remote Arduino Uno-based TFT graphical display for VSR Mini Mega Alternator Regulator

VSMMAR_Remote_Display Remote Arduino Uno-based TFT graphical display for VSR Mini Mega Alternator Regulator This project is an optional accessory for

null 1 Nov 6, 2021
4 channel servo controller code for Arduino Mega 2560 for AASD-15A and similar motor driver

eh-msc-4dof 4 channel servo controller code for Arduino Mega 2560 for AASD-15A and similar motor driver Arduino sketch for generating pulses needed to

null 6 Sep 9, 2022
Библиотека программного USB клавиатуры и мыши для Arduino Nano/UNO/Mega и прочих

EasyHID Библиотека программного USB клавиатуры и мыши для Arduino Nano/UNO/Mega и прочих Программный USB Работает на любой AVR Arduino 16 МГц Поддержк

Alex 53 Dec 30, 2022
A Christmas-Themed SHMUP for the Sega Master System; made for the "Jame Gam Christmas Edition"

winter-shooter A Christmas-Themed SHMUP for the Sega Master System; made for the "Jame Gam Christmas Edition" Resources used: Main ship sprite: https:

Haroldo de Oliveira Pinheiro 2 Dec 26, 2021
Libnaomi - Toolchain and system library enabling hobby/homebrew software to be developed for the Sega Naomi platform.

Naomi Toolchain & Libraries A minimal Naomi homebrew environment, very loosely based off of KallistiOS toolchain work but bare metal and implemented f

Jennifer Taylor 22 Nov 11, 2022
Direct3D wrapper for Sega's Kamui API

KAMUI Direct! Circa 1997 Sega was developing the KAMUI graphics API used for their newest console, the Dreamcast. There were no devkits yet, so the pr

null 7 Sep 27, 2022