top of page
loading_reduced.jpg

1.0 / 18-12-2024

Clownmdemu

Accuracy

Performance

Features

average rating is null out of 5
average rating is null out of 5
average rating is null out of 5
competition

Clownmdemu is a Sega Mega Drive (a.k.a. Sega Genesis) emulator that'sactive and looks promising with support for Motorola 68000 instruction durations, save data, Debugger and accurate window plane emulation. written in C++11 and leverages the SDL2,


It also as a Browser and libretro version...

--

Unix platforms: there is also an optional dependency on the Zenity and kdialog projects.

Most Recent Changes

--1.0--

Read the full update report here.

  • Now supports save data.

  • H-counter and H-blank approximation.

  • Correct sprite Y-coordinate wrap-around.

  • Mega CD games can be drag-and-dropped onto the emulator window.

  • Massively-optimised CPU idling.

  • Complete window plane emulation.

  • Debugger improvements.Overhauled sprite list debugger.
    VRAM, CRAM, VSRAM, and External RAM memory viewers.
    All memory viewers can save their contents to a file.

  • Correct V-counter in Interlace Mode 2.

  • Emulate invalid plane width and height settings.

  • Emulate window plane bugs.


--0.8.0.1--

  • Fixed crash that would occur when multiple lines of text are printed via KDEBUG



--0.8--

Read the full update report here.

  • Title bar colour matches the menu bar colour on Windows 11.

  • Emulated RAM is cleared upon a hard reset.

  • Audio 'ladder effect' is emulated.

  • Broken splash screens in the 'Gametap Pro Gamer 6' ROM-hack are fixed.

  • Support for the 'KDEBUG' debug message API has been added.

  • Motorola 68000 instructions have accurate durations.

  • Preliminary native multi-window support has been implemented. Due to defects, it is disabled by default.



--0.7.1--

Read the full update report here.

  • Fixed the window icon being blurry on Windows when using a high-DPI display.

  • Fixed identically-named Recent Software list entries clashing with each other when being navigated with a keyboard.

  • Added support for 'ISO+OGG', 'ISO+FLAC', 'ISO+MP3', and 'ISO+WAV' Mega CD disc rips.

  • Read the full update report here.



--0.7--

Read the full update report here.

  • Fixed missing audio in After Burner II.

  • Fixed flipped graphics in Jim Power.

  • The game's name in now shown in the window title.

  • Partially-implemented the V counter.Fixed OutRun and OutRun 2019.

  • Vastly-improved Mega CD support.Sonic CD is now playable from beginning to end, aside from its special stages.
    New stub BIOS.
    PCM emulation added.
    CDDA emulation added.

  • 6-button controller emulation added.

  • Improved YM2612 emulation:Per-operator frequency emulation added.
    CSM emulation added.
    SSG-EG emulation added.
    Fixed Sonic 3's Competition Mode menu music.
    Fixed Contra: Hard Corps' snare.

  • Fixed latency when toggling rewinding while frame-advancing (#7).

  • Fixed build errors when not using MSVC (#8).

  • Fixed compatibility with SDL v2.0.18.



--0.6--

Read the full update report here.

  • Fixed many inaccuracies, benefiting numerous games:Contra: Hard Corps
    Castlevania Bloodlines
    Thunder Force IV
    Mega Man: The Wily Wars
    The Adventures of Batman & Robin
    Battletoads
    Road Rash, Road Rash II, Road Rash III
    Skitchin'
    The Immortal
    Jungle Strike
    Marble Madness

  • Added two sprite debuggers.

  • Configuration files are now saved to a standard per-user directory ('AppData' on Windows and '.local/share' on Linux).

  • Text output of the disassembler and the debug log can be selected and copied elsewhere.



--0.5.2--

Read the full update report here.

  • Fixed broken graphics in Sonic Crackers, Sonic 3, and Thunder Force IV. Get Combat Cars, Micro Machines, Dynamite Heady, Gunstar Heroes, and Alien Soldier to boot.

  • Fix Windows XP compatibility.


--0.5.1--

Read the full update report here

  • Improved audio playback further.

  • Added a debugger for showing frontend statistics.



--0.5--

Read the full update report here.

  • Added 'frame advance' (done by pressing the fast-forward key while the emulator is paused).

  • Added a debug logging window.

  • Added 68000 disassembler.

  • Added high-DPI support for all platforms.

  • Ported to web browsers (clownmdemu.clownacy.com).

  • Improved audio playback.

  • Added support for Unicode file paths on Windows.

  • Added very incomplete Mega CD support.



--0.4.4--

  • Emulation changes:Fix sprites being culled while still one pixel on-screen at the right.

  • Frontend changes:Add option to save VRAM to file.

  • Fix barebones file save dialog not working at all.

  • Fix broken scaling on macOS and Linux.

  • Add drag-and-dropped files to the Recent Software list.

  • Optimise debug menus while the emulator is paused.

  • Make ALT+ENTER toggle fullscreen.

  • Fix various instances of stuck inputs.

  • Add a Windows executable icon.


Show Previous Changes

--0.4.3--

  • Emulation changes:Optimised Z80 cycle-counting.

  • Frontend changes:Add a kdialog-based native file dialog for Linux and the BSDs.

  • Fix hang when waking PC after several hours.

  • Fix incorrect plane debugger tile information.



--0.4.2--

  • Emulator changes:Various optimisations.

  • Fixed YM2612 not being restarted along with the Z80.

  • Frontend changes:Added support for native file dialogs on Unix platforms by leveraging Zenity.


--0.4.1--

  • Emulator changes:Fixed audio corruption in the mixer.

  • Fixed PSG notes being slightly off-key.

  • Frontend changes:Fixed audio resampling after changing between NTSC and PAL modes.


--0.4--

See my blog for a full explanation of everything in this update.Emulator changes:

  • Added support for the YM2612’s timers.

  • Added support for the Window Plane.

  • Added support for the 68000’s BCD instructions.

  • Vastly improved Z80 emulation accuracy.

  • Fixed 1-cell horizontal scrolling mode.

  • Fixed VRAM fill.

  • Implemented YM2612’s ‘BUSY’ flag.

  • Frontend changes:Added custom Dear ImGui style.

  • Optimised VRAM viewer.

  • Added an 'About' menu.

  • Improved FM debug menu.

  • Added general VDP debugger.

  • Abandoned ‘tiny file dialogs’ library.

  • Added ‘Other’ debugging menu.


--0.3.1--
Cross-post from my blog.

This is just a quick update to address some issues in the previous v0.3 release.

Make FM Debugger More Compact


Many, many windows.As you can see, each channel was given its own window, which meant that it was a lot of effort to simply switch from one channel to another without just having all windows open at the same time, which would take up a lot of the screen.Since it's unlikely that a user would ever need to see more than one FM channel's registers at a time, these windows have all been merged into a single tabbed window:One lovely, compact window.Fix DPI Support


Unfortunately, after hyping it up so much in v0.3's release, the default window sizes were broken on DPIs that weren't 150% the standard. I was expecting Dear ImGui to handle DPI differences like this automatically like it usually does, but that's not the case here.I'll have to remember to test this frontend at alternate DPIs before each release to prevent a repeat of this mistake.Add a Horizontal Scrollbar to the Plane Debugger


As the result of yet another strange quirk of Dear ImGui, horizontal scrollbars do not exist by default, even in windows that need them. This affected the VDP's Plane A/B debuggers, which only had a vertical scrollbar. By explicitly telling Dear ImGui to create a horizontal scrollbar, this issue is no more:The Plane B visualiser, with both a vertical scrollbar and a horizontal scrollbar.User-Friendliness Improvements to Keyboard Rebinding


Sometimes it's the small things that matter most.When the user is repeatedly adding key bindings, the newly-extended binding list would push the 'Add Binding' button off-screen, requiring the user to scroll down to be able to press it again. This is a small annoyance, but an annoyance nonetheless, so it has been corrected by automatically scrolling the window down after a new binding is added.Additionally, when selecting an action to bind to a selected key, the selected key is displayed to the user. This extra feedback allows the user to verify that they selected the correct key, instead of them being left in the dark.A list of options, with the text 'Selected Key: Space' displayed underneath.Fix Phantom Keyboard Inputs After Rebinding


Sometimes, after rebinding the keyboard inputs, the emulated Control Pad would behave as if certain buttons were held when they are not. This was due to edge-cases in how the key-binding system works. For instance, if a key's binding were changed after it has been pressed but before it is released, then the emulator would 'forget' which Control Pad button to release when the key is released. This should no longer be the case.Fix Ugly Seams Around Tiles in VRAM Debugger
Depending on the display's DPI, odd artifacts could appear around the tiles in the VRAM viewer:An array of tiles, many with an odd multi-coloured border on the top and left sides of them.This was the result of some accidental fractional image scaling. This has been corrected to use the proper integer image scaling, eliminating the seams.Closing


With this much-needed polishing complete, hopefully the next update will include some improvements to the core emulation: Window Plane, SRAM, LFO, SSG-EG, YM2612 Timers - there are plenty of things left to add.



--0.3--
Cross-posted from my blog.

Keyboard Rebinding
One shortcoming of the standalone frontend is that it lacks keyboard rebinding: the W, A, S, and D keys will always control the Control Pad's D-Pad, and so on.But not anymore!New to the frontend is full keyboard rebinding! In addition, the default key bindings have been switched to the more common arrow keys and Z/X/C keys combination.Unlike some other emulators, this system allows the user to bind multiple keys to the same action: for instance, if the user wanted to bind both the 'Z' key and the 'space' key to the Control Pad's 'A' button, then they can do so!It would be pretty frustrating for binding customisations to be lost whenever the program is closed, so support has been added for persistent configuration: settings are saved to a file called 'clownmdemu-frontend.ini', allowing settings such as the keyboard bindings, console region, and V-sync to be remembered by the emulator.Options Menu


Previously, the options would all be managed through the menu bar, but this is quite clunky as the menu bar would close after each option is toggled. To improve the user experience, the options have now been moved to a dedicated menu:This menu provides a much more intuitive way to change options! Additionally, each option shows a tooltip when hovered over with the mouse, allowing unfamiliar users to understand what they do!Default Window Sizes


Another improvement to the user experience is that windows are now given a sane default size, meaning that they will now have a proper size when opened for the first time.This is dumb.Much better.Recent Software
Opening the same ROM file over and over again is tedious, so now the emulator keeps a list of the 10 most recent files used:FM and PSG Debugging Toggles


The standalone frontend has had the ability to disable individual VDP planes for ages, but now it can also toggle FM and PSG channels. A dedicated menu has been added for this:PSG Debugger Overhaul


The PSG debugging menu was butt-ugly before, and has been given a makeover:Before
AfterSupport for Alternate PAL Detection Method


Previously, when playing Sonic the Hedgehog 2 with the emulated Mega Drive in PAL mode, the music would play at slightly slower speed, just like it does in the first game. This shouldn't happen.The reason that this was occurring was that the game relies on an alternative method of detecting the PAL video mode: by checking bit 0 of the VDP's control port. This bit should reflect whether PAL mode is enabled or not. Now that this is the case, the game properly detects and accounts for the speed difference in its music, allowing it to play at the proper speed.Assets 3



--0.2--
Second release of the reference frontend for clownmdemu (the first release can be found here).

A binary is provided for Windows, which should support 32-bit x86 Windows XP as a minimum.


Changes from v0.1

  • Some more debuggers have been added:YM2612 registers

  • 68000 registers

  • Z80 registers


The core emulator been updated:Optimisations have been made to the 68000 emulation and the master clock ticking subsystems to vastly improve performance.
Rudimentary support for exceptions has been added to the 68000 emulator.
Support for the RLD and RRD instructions have been added to the Z80 emulator.
Support for User Mode has been added to the 68000 emulator.
Some bugs in the 68000 emulation have been fixed, making the emulator more accurate and able to run more software properly.

bottom of page