Difference between revisions of "Comparison of Sega Mega Drive emulators"

From Sega Retro

(→‎Emulation Capabilities: Better Gens debugging description.)
m
 
(21 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The following is a comparison of the most popular [[Sega Mega Drive/Genesis]] emulators:
+
The following is a comparison of the most popular [[Sega Mega Drive]] emulators:
  
 
==Emulation Capabilities==
 
==Emulation Capabilities==
 
Key for 68000:
 
Key for 68000:
 +
* S: Speed is (roughly) accurate
 
* D: Supports all documented instructions.
 
* D: Supports all documented instructions.
 
* F: Supports undocumented flag operations.
 
* F: Supports undocumented flag operations.
Line 10: Line 11:
  
 
Key for Z80:
 
Key for Z80:
 +
* S: Speed is (roughly) accurate
 
* D: Supports all documented instructions.
 
* D: Supports all documented instructions.
 
* U: Supports all undocumented instructions.
 
* U: Supports all undocumented instructions.
Line 20: Line 22:
 
* C: CRAM dot emulation
 
* C: CRAM dot emulation
 
* S: DMA transfers with length=0 are correctly handled as length=65536.
 
* S: DMA transfers with length=0 are correctly handled as length=65536.
 +
* T: Emulates the Sprite Address Table cache.
 +
* R: Emulates the $C0001C debug register.
  
 
Key for YM2612 (In addition to numeral rating):
 
Key for YM2612 (In addition to numeral rating):
 
* S: Supports SSG-EG
 
* S: Supports SSG-EG
* C: Supports YM2612 DAC Debug register $2C
+
* C: Supports YM2612 debug registers $21 and $2C
 +
* V: Supports YM2612 variants(YM2612, discrete/asic YM3438)
 +
* D: Properly emulates [[User:Chimes/Low_volume_distortion|low volume distortion]]
 +
* T: Properly emulates IO timing
 +
* B: Properly emulates busy flag
  
 
Key for PSG:
 
Key for PSG:
Line 29: Line 37:
 
* L: Has proper Linear Feedback Shift Register emulation.
 
* L: Has proper Linear Feedback Shift Register emulation.
  
{| class="wikitable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
+
{| class="prettytable sortable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
 
|-
 
|-
 
! style="width:12em" | Emulator
 
! style="width:12em" | Emulator
Line 37: Line 45:
 
! [[YM2612]]
 
! [[YM2612]]
 
! [[SN76489|PSG]]
 
! [[SN76489|PSG]]
! [[DAC]]
 
 
! Speed
 
! Speed
 
! Compatibility
 
! Compatibility
 
! Debugging Capabilities
 
! Debugging Capabilities
 +
! Mappers Support
 
! Overall
 
! Overall
|-
+
|--
! [[AGES]]
+
! [[DGen]]/SDL
| ***
+
| {{no|Incomplete}} <!-- 68K -->
| ***
+
| {{partial| }} <!-- Z80 -->
| **
+
| {{no|0}} <!-- VDP -->
| **
+
| {{no|0}} <!-- YM2612 -->
| ***
+
| {{partial| 2}} <!-- PSG -->
| ****
+
| {{partial| 1}} <!-- Speed -->
| ****
+
| {{partial| 2}} <!-- Compat -->
| ***
+
| {{partial|DGen/SDL has a 68k debugger}} <!-- Debug -->
| {{no|None}}
+
| ?
| ***
+
| {{no| 0}} <!-- Overall -->
 
|-
 
|-
 
! [[Exodus]]
 
! [[Exodus]]
| {{yes|DFAMV}}
+
| {{yes|SDFAMV}} <!-- 68K -->
| {{yes|DUFRT}}
+
| {{yes|SDUFRT}} <!-- Z80 -->
| {{yes|5 DCS}}
+
| {{partial|4 DCST}} <!-- VDP -->
| {{partial|4 S}}
+
| {{partial|4 S}} <!-- YM2612 -->
| {{yes|5}}
+
| {{yes| 5}} <!-- PSG -->
| {{yes|5}}
+
| {{no|0}} <!-- Speed -->
| {{no|0}}
+
| {{yes|5}} <!-- Compat -->
| {{yes|5}}
+
| {{yes|Yes, sophisticated}} <!-- Debug -->
| {{yes|Yes, sophisticated}}
+
| ?
| {{yes|5}}
+
| {{yes|5}} <!-- Overall -->
|-
 
! [[DGen]]
 
| ***
 
| ***
 
| ***
 
| ***
 
| ***
 
| **
 
| ****
 
| ***
 
| {{no|None}}
 
| ***
 
|-
 
! [[GenaDrive]]
 
| **
 
| {{no|not present}}
 
| **
 
| *
 
| {{no|not present}}
 
| {{no|not present}}
 
| **
 
| *
 
| {{no|None}}
 
| *
 
 
|-
 
|-
 
! [[Genecyst]]
 
! [[Genecyst]]
| **
+
| {{partial| }} <!-- 68K -->
| ***
+
| {{partial| }} <!-- Z80 -->
| ***
+
| {{partial| 3}} <!-- VDP -->
| ***
+
| {{partial| 1}} <!-- YM2612 -->
| **
+
| {{partial| 2}} <!-- PSG -->
| **
+
| {{yes| 5}} <!-- Speed -->
| {{yes|5}}
+
| {{partial| 3}} <!-- Compat -->
| ***
+
| {{partial|Partial}} <!-- Debug -->
| {{partial|Partial}}
+
| ?
| ***
+
| {{partial| 2}} <!-- Overall -->
 
|-
 
|-
! [[Generator]]
+
! [[Genesis Plus GX]]
| ***
+
| {{partial| S}} <!-- 68K -->
| ***
+
| {{partial| S}} <!-- Z80 -->
| ****
+
| {{partial| 4 T}} <!-- VDP -->
| ***
+
| {{yes| 4 S / 5 SCVDTB }} <!-- YM2612 -->
| ****
+
| {{yes| 5}} <!-- PSG -->
| ***
+
| {{partial| 4}} <!-- Speed -->
| **
+
| {{yes| 5}} <!-- Compat -->
| ***
+
| {{no|None}} <!-- Debug -->
| {{no|None}}
+
| Full
| ***
+
| {{partial| 4}} <!-- Overall -->
|-
 
! [[Genesis Plus]]
 
| ****
 
| ****
 
| ****
 
| ****
 
| ***
 
| ***
 
| *
 
| ****
 
| {{no|None}}
 
| ****
 
 
|-
 
|-
 
! [[Gens]]
 
! [[Gens]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DU}}
+
| {{partial| DU}} <!-- Z80 -->
| {{partial|2}}
+
| {{partial| 2}} <!-- VDP -->
| {{partial|2}}
+
| {{partial| 2}} <!-- YM2612 -->
| ****
+
| {{partial| 3}} <!-- PSG -->
| ****
+
| {{partial| 4}} <!-- Speed -->
| {{yes|5}}
+
| {{partial| 4}} <!-- Compat -->
| ****
+
| {{partial|Limited; replaces emulation screen when debugging. See [[DebuGens]] and [[Gens KMod]] for better debugging.}} <!-- Debug -->
| {{partial|Limited; replaces emulation screen when debugging. See [[DebuGens]] and [[Gens KMod]] for better debugging.}}
+
| ?
| ****
+
| {{partial| 2}} <!-- Overall -->
 
|-
 
|-
 
! [[Gens/GS]]
 
! [[Gens/GS]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DU}}
+
| {{partial| DU}} <!-- Z80 -->
| {{partial|3 S}}
+
| {{partial| 3 S}} <!-- VDP -->
| {{partial|2}}
+
| {{partial| 2}} <!-- YM2612 -->
| ****
+
| {{partial| }} <!-- PSG -->
| ****
+
| {{partial| }} <!-- Speed -->
| {{yes|5}}
+
| {{partial| 4}} <!-- Compat -->
| ****
+
| {{partial|Limited; replaces emulation screen when debugging.}} <!-- Debug -->
| {{partial|Limited; replaces emulation screen when debugging.}}
+
| ?
| ****
+
| {{partial| 3}} <!-- Overall -->
 
|-
 
|-
 
! [[Gens/GS II]]
 
! [[Gens/GS II]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DUF}}
+
| {{partial| SDUF}} <!-- Z80 -->
| {{partial|3 S}}
+
| {{partial| 3 ST}} <!-- VDP -->
| {{partial|2}}
+
| {{partial| 2}} <!-- YM2612 -->
| {{partial|RL; has aliasing.}}
+
| {{partial| RL; has aliasing}} <!-- PSG -->
| ****
+
| {{partial| 4}} <!-- Speed -->
| {{yes|5}}
+
| {{partial|4 }} <!-- Compat -->
| ****
+
| {{no|None}} <!-- Debug -->
| {{no|None}}
+
| ?
| ****
+
| {{partial| 3}} <!-- Overall -->
|-
 
! [[HazeMD]]
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial| }}
 
| {{partial|4}}
 
| {{yes|Yes, separate build (hazemdd.exe)}}
 
| {{yes|3}}
 
 
|-
 
|-
 
! [[Kega Fusion]]
 
! [[Kega Fusion]]
| {{partial|D}}
+
| {{partial| SD}} <!-- 68K -->
| {{partial| }}
+
| {{partial| }} <!-- Z80 -->
| {{partial|3 S}}
+
| {{partial| 3 S}} <!-- VDP -->
| {{partial|4 S}}
+
| {{partial| 4 S *}} <!-- YM2612 -->
| {{partial|4}}
+
| {{partial| 4}} <!-- PSG -->
| {{partial|2 *}}
+
| {{yes| 5}} <!-- Speed -->
| {{yes|5}}
+
| {{yes| 5}} <!-- Compat -->
| {{yes|5}}
+
| {{no|None}} <!-- Debug -->
| {{no|None}}
+
| ?
| {{partial|4}}
+
| {{partial| 4}} <!-- Overall -->
 
|-
 
|-
! [[Megasis]]
+
! [[MESS]]
| ****
+
| {{partial| }} <!-- 68K -->
| ***
+
| {{partial| }} <!-- Z80 -->
| ***
+
| {{partial| 1 S}} <!-- VDP -->
| ****
+
| {{partial| 4 S}} <!-- YM2612 -->
| ***
+
| {{partial| 4}} <!-- PSG -->
| ****
+
| {{partial| 3}} <!-- Speed -->
| ***
+
| {{partial| 3}} <!-- Compat -->
| ***
+
| {{yes|Yes}} <!-- Debug -->
| {{no|None}}
+
| Full
| ***
+
| {{partial| 2}} <!-- Overall -->
 
|-
 
|-
 
! [[Regen]]
 
! [[Regen]]
| {{partial| }}
+
| {{partial| S}} <!-- 68K -->
| {{partial| }}
+
| {{partial| S}} <!-- Z80 -->
| {{partial|4}}
+
| {{partial| 4}} <!-- VDP -->
| {{partial|4 S}}
+
| {{partial| 4 S}} <!-- YM2612 -->
| {{yes|5}}
+
| {{yes| 5}} <!-- PSG -->
| {{yes|5}}
+
| {{partial| 3}} <!-- Speed -->
| {{partial|3}}
+
| {{partial| 4}} <!-- Compat -->
| {{yes|5}}
+
| {{partial|Yes, buggy}} <!-- Debug -->
| {{partial|Yes, buggy}}
+
| ?
| {{partial|4}}
+
| {{partial| 4}} <!-- Overall -->
 
|-
 
|-
 
|}
 
|}
  
* DAC / YM Timers / Z80 speed emulation results in way too smooth playback
+
* DAC / YM timers / Z80 speed emulation results in way too smooth playback, manifests as detuned samples in certain games. {{ref|https://web.archive.org/web/20240212122035/https://i.imgur.com/nyqNZaR.png}}
 
 
[[Category:Emulation]]
 
[[Category:Mega Drive Emulators| ]]
 
  
 
==Operating Platform==
 
==Operating Platform==
{| class="wikitable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
+
{| class="prettytable sortable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
 
|-
 
|-
 
! style="width:12em" | Emulator
 
! style="width:12em" | Emulator
Line 299: Line 256:
 
| {{no}}
 
| {{no}}
 
|-
 
|-
! [[Generator]]
+
! [[Generator (emulator)|Generator]]
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 483: Line 440:
  
 
==Emulation Support==
 
==Emulation Support==
{| class="wikitable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
+
{| class="prettytable sortable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
 
|-
 
|-
 
! style="width:12em" | Emulator
 
! style="width:12em" | Emulator
! [[Mega CD]]
+
! [[Mega-CD]]
 
! [[Sega 32X]]
 
! [[Sega 32X]]
 
! [[Sega Master System]]
 
! [[Sega Master System]]
Line 533: Line 490:
 
| {{no}}
 
| {{no}}
 
|-
 
|-
! [[Generator]]
+
! [[Generator (emulator)|Generator]]
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 645: Line 602:
 
| {{no}}
 
| {{no}}
 
|}
 
|}
 +
 +
==References==
 +
<references/>
  
 
[[Category:Emulation]]
 
[[Category:Emulation]]
[[Category:Mega Drive Emulators| ]]
+
[[Category:Mega Drive emulators| ]]

Latest revision as of 07:27, 12 February 2024

The following is a comparison of the most popular Sega Mega Drive emulators:

Emulation Capabilities

Key for 68000:

  • S: Speed is (roughly) accurate
  • D: Supports all documented instructions.
  • F: Supports undocumented flag operations.
  • A: Supports Address Error.
  • M: Supports undocumented MOVEM read behavior.
  • V: Properly emulates DIVS/DIVU cycle timing.

Key for Z80:

  • S: Speed is (roughly) accurate
  • D: Supports all documented instructions.
  • U: Supports all undocumented instructions.
  • F: Supports undocumented flag operations.
  • R: Properly emulates the 'R' register.
  • T: Properly emulates all instruction cycle timing.

Key for VDP (In addition to numeral rating)

  • D: DMAs block Z80 68k bus access
  • C: CRAM dot emulation
  • S: DMA transfers with length=0 are correctly handled as length=65536.
  • T: Emulates the Sprite Address Table cache.
  • R: Emulates the $C0001C debug register.

Key for YM2612 (In addition to numeral rating):

  • S: Supports SSG-EG
  • C: Supports YM2612 debug registers $21 and $2C
  • V: Supports YM2612 variants(YM2612, discrete/asic YM3438)
  • D: Properly emulates low volume distortion
  • T: Properly emulates IO timing
  • B: Properly emulates busy flag

Key for PSG:

Emulator 68000 Z80 VDP YM2612 PSG Speed Compatibility Debugging Capabilities Mappers Support Overall
DGen/SDL Incomplete 0 0 2 1 2 DGen/SDL has a 68k debugger ? 0
Exodus SDFAMV SDUFRT 4 DCST 4 S 5 0 5 Yes, sophisticated ? 5
Genecyst 3 1 2 5 3 Partial ? 2
Genesis Plus GX S S 4 T 4 S / 5 SCVDTB 5 4 5 None Full 4
Gens D DU 2 2 3 4 4 Limited; replaces emulation screen when debugging. See DebuGens and Gens KMod for better debugging. ? 2
Gens/GS D DU 3 S 2 4 Limited; replaces emulation screen when debugging. ? 3
Gens/GS II D SDUF 3 ST 2 RL; has aliasing 4 4 None ? 3
Kega Fusion SD 3 S 4 S * 4 5 5 None ? 4
MESS 1 S 4 S 4 3 3 Yes Full 2
Regen S S 4 4 S 5 3 4 Yes, buggy ? 4
  • DAC / YM timers / Z80 speed emulation results in way too smooth playback, manifests as detuned samples in certain games. [1]

Operating Platform

Emulator DOS Windows Mac OS X GNU/Linux BSD BeOS Dreamcast Xbox PlayStation 2 PlayStation Portable GameCube/
Wii
AGES No Yes No No No No No No No No No
DebuGens No Yes No No No No No No No No No
DGen Yes (v.1.04a and lower) Yes Yes Yes Yes Yes No Yes No Yes No
Genecyst Yes No No No No No No No No No No
GenEm Yes Yes No No No No No No No No No
Generator Yes Yes Yes Yes Yes No Yes No No Yes No
Genesis Plus Yes Yes Yes No No No Yes No No As MEGADRIVE for PSP Yes
Gens Yes (v.1.05 and lower) Yes Yes Yes Yes Yes No As Gens-X, Gens_xport and Xenesis As PGen No No
Gens/GS No Yes (r5 and later) Not officially supported Yes Not officially supported No No No No No No
Gens/GS II No Yes Not officially supported Yes Not officially supported No No No No No No
Gens Plus! No Yes No No No No No No No No No
Gens Rerecording No Yes No No No No No No No No No
HazeMD Yes Yes No No No No No No No No No
Kega Fusion No Yes Yes Yes No No No No No No No
Megasis No Yes No No No No No No No No No
PSPGenesis No No No No No No No No No Yes No
Regen No Yes No Yes No No No No No No No
retroDrive No Yes No No No No No No No No No
Triton No Yes No No No No No No No No No

Emulation Support

Emulator Mega-CD Sega 32X Sega Master System Sega Game Gear SG-1000 SC-3000
AGES Yes Yes No No No No
DebuGens Yes Yes No No No No
DGen No No No No No No
Genecyst No No No No No No
GenEm No No No No No No
Generator No No No No No No
Genesis Plus No No No No No No
Gens Yes Yes No No No No
Gens/GS Yes Yes No No No No
Gens/GS II Yes Yes No
(in progress)
No
(in progress)
No
(in progress)
No
Gens Plus! Yes Yes Yes Yes No No
Gens Rerecording Yes Yes No No No No
HazeMD No No No No No No
Kega Fusion Yes Yes Yes Yes Yes Yes
Megasis No No No No No No
PSPGenesis No No No No No No
Regen No No Yes Yes Yes Yes
retroDrive No Yes No No No No
Triton Yes Yes Yes No No No

References

  1. https://i.imgur.com/nyqNZaR.png (Wayback Machine: 2024-02-12 12:20)