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

From Sega Retro

m
 
(41 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 16: Line 18:
 
* T: Properly emulates all instruction cycle timing.
 
* T: Properly emulates all instruction cycle timing.
  
{| class="wikitable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
+
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 [[User:Chimes/Low_volume_distortion|low volume distortion]]
 +
* T: Properly emulates IO timing
 +
* B: Properly emulates busy flag
 +
 
 +
Key for PSG:
 +
* R: Supports [http://www.smspower.org/Development/SN76489 undocumented register behavior].
 +
* L: Has proper Linear Feedback Shift Register emulation.
 +
 
 +
{| class="prettytable sortable" style="font-size: smaller; text-align: center; width: 100%; table-layout: fixed;"
 
|-
 
|-
 
! style="width:12em" | Emulator
 
! style="width:12em" | Emulator
Line 24: Line 45:
 
! [[YM2612]]
 
! [[YM2612]]
 
! [[SN76489|PSG]]
 
! [[SN76489|PSG]]
! [[DAC]]
 
 
! Speed
 
! Speed
 
! Compatibility
 
! Compatibility
 +
! 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| 0}} <!-- Overall -->
! [[DebuGens]]
 
| {{partial|D}}
 
| {{partial|DU}}
 
| ***
 
| ****
 
| ****
 
| ****
 
| {{yes|5}}
 
| ****
 
| ****
 
 
|-
 
|-
 
! [[Exodus]]
 
! [[Exodus]]
| {{yes|DFAMV}}
+
| {{yes|SDFAMV}} <!-- 68K -->
| {{yes|DUFRT}}
+
| {{yes|SDUFRT}} <!-- Z80 -->
| {{yes|5}}
+
| {{partial|4 DCST}} <!-- VDP -->
| {{yes|5}}
+
| {{partial|4 S}} <!-- YM2612 -->
| {{yes|5}}
+
| {{yes| 5}} <!-- PSG -->
| {{yes|5}}
+
| {{no|0}} <!-- Speed -->
| {{yes|5}}
+
| {{yes|5}} <!-- Compat -->
| {{yes|5}}
+
| {{yes|Yes, sophisticated}} <!-- Debug -->
| {{yes|{{yes|5}}}}
+
| ?
|-
+
| {{yes|5}} <!-- Overall -->
! [[DGen]]
 
| ***
 
| ***
 
| ***
 
| ***
 
| ***
 
| **
 
| ****
 
| ***
 
| ***
 
|-
 
! [[GenaDrive]]
 
| **
 
| {{no|not present}}
 
| **
 
| *
 
| {{no|not present}}
 
| {{no|not present}}
 
| **
 
| *
 
| *
 
 
|-
 
|-
 
! [[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| 2}} <!-- Overall -->
 
|-
 
|-
! [[GenEm]]
+
! [[Genesis Plus GX]]
| **
+
| {{partial| S}} <!-- 68K -->
| *
+
| {{partial| S}} <!-- Z80 -->
| **
+
| {{partial| 4 T}} <!-- VDP -->
| *
+
| {{yes| 4 S / 5 SCVDTB }} <!-- YM2612 -->
| {{no|not present}}
+
| {{yes| 5}} <!-- PSG -->
| *
+
| {{partial| 4}} <!-- Speed -->
| **
+
| {{yes| 5}} <!-- Compat -->
| **
+
| {{no|None}} <!-- Debug -->
| *
+
| Full
|-
+
| {{partial| 4}} <!-- Overall -->
! [[Generator]]
 
| ***
 
| ***
 
| ****
 
| ***
 
| ****
 
| ***
 
| **
 
| ***
 
| ***
 
|-
 
! [[Genesis Plus]]
 
| ****
 
| ****
 
| ****
 
| ****
 
| ***
 
| ***
 
| *
 
| ****
 
| ****
 
 
|-
 
|-
 
! [[Gens]]
 
! [[Gens]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DU}}
+
| {{partial| DU}} <!-- Z80 -->
| ****
+
| {{partial| 2}} <!-- VDP -->
| ****
+
| {{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| 2}} <!-- Overall -->
 
|-
 
|-
 
! [[Gens/GS]]
 
! [[Gens/GS]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DU}}
+
| {{partial| DU}} <!-- Z80 -->
| ****
+
| {{partial| 3 S}} <!-- VDP -->
| ****
+
| {{partial| 2}} <!-- YM2612 -->
| ****
+
| {{partial| }} <!-- PSG -->
| ****
+
| {{partial| }} <!-- Speed -->
| {{yes|5}}
+
| {{partial| 4}} <!-- Compat -->
| ****
+
| {{partial|Limited; replaces emulation screen when debugging.}} <!-- Debug -->
| ****
+
| ?
 +
| {{partial| 3}} <!-- Overall -->
 
|-
 
|-
 
! [[Gens/GS II]]
 
! [[Gens/GS II]]
| {{partial|D}}
+
| {{partial| D}} <!-- 68K -->
| {{partial|DUF}}
+
| {{partial| SDUF}} <!-- Z80 -->
| ****
+
| {{partial| 3 ST}} <!-- VDP -->
| ****
+
| {{partial| 2}} <!-- YM2612 -->
| ****
+
| {{partial| RL; has aliasing}} <!-- PSG -->
| ****
+
| {{partial| 4}} <!-- Speed -->
| {{yes|5}}
+
| {{partial|4 }} <!-- Compat -->
| ****
+
| {{no|None}} <!-- Debug -->
| ****
+
| ?
|-
+
| {{partial| 3}} <!-- Overall -->
! [[Gens Plus!]]
 
| {{partial|D}}
 
| {{partial|DU}}
 
| ****
 
| ****
 
| ****
 
| ****
 
| ****
 
| ****
 
| ****
 
|-
 
! [[Gens Rerecording]]
 
| {{partial|D}}
 
| {{partial|DU}}
 
| ***
 
| ****
 
| ****
 
| ****
 
| {{yes|5}}
 
| ****
 
| ****
 
|-
 
! [[HazeMD]]
 
| {{yes|5}}
 
| ****
 
| {{yes|5}}
 
| {{yes|5}}
 
| ****
 
| {{yes|5}}
 
| ****
 
| {{yes|5}}
 
| {{yes|5}}
 
 
|-
 
|-
 
! [[Kega Fusion]]
 
! [[Kega Fusion]]
| {{yes|5}}
+
| {{partial| SD}} <!-- 68K -->
| ****
+
| {{partial| }} <!-- Z80 -->
| {{yes|5}}
+
| {{partial| 3 S}} <!-- VDP -->
| {{yes|5}}
+
| {{partial| 4 S *}} <!-- YM2612 -->
| ****
+
| {{partial| 4}} <!-- PSG -->
| {{yes|5}}
+
| {{yes| 5}} <!-- Speed -->
| {{yes|5}}
+
| {{yes| 5}} <!-- Compat -->
| {{yes|5}}
+
| {{no|None}} <!-- Debug -->
| {{yes|5}}
+
| ?
|-
+
| {{partial| 4}} <!-- Overall -->
! [[Megasis]]
 
| ****
 
| ***
 
| ***
 
| ****
 
| ***
 
| ****
 
| ***
 
| ***
 
| ***
 
 
|-
 
|-
! [[PSPGenesis]]
+
! [[MESS]]
| not tested
+
| {{partial| }} <!-- 68K -->
| not tested
+
| {{partial| }} <!-- Z80 -->
| not tested
+
| {{partial| 1 S}} <!-- VDP -->
| not tested
+
| {{partial| 4 S}} <!-- YM2612 -->
| not tested
+
| {{partial| 4}} <!-- PSG -->
| not tested
+
| {{partial| 3}} <!-- Speed -->
| not tested
+
| {{partial| 3}} <!-- Compat -->
| not tested
+
| {{yes|Yes}} <!-- Debug -->
| not tested
+
| Full
 +
| {{partial| 2}} <!-- Overall -->
 
|-
 
|-
 
! [[Regen]]
 
! [[Regen]]
| {{yes|5}}
+
| {{partial| S}} <!-- 68K -->
| {{yes|5}}
+
| {{partial| S}} <!-- Z80 -->
| {{yes|5}}
+
| {{partial| 4}} <!-- VDP -->
| {{yes|5}}
+
| {{partial| 4 S}} <!-- YM2612 -->
| {{yes|5}}
+
| {{yes| 5}} <!-- PSG -->
| {{yes|5}}
+
| {{partial| 3}} <!-- Speed -->
| ****
+
| {{partial| 4}} <!-- Compat -->
| {{yes|5}}
+
| {{partial|Yes, buggy}} <!-- Debug -->
| {{yes|5}}
+
| ?
|-
+
| {{partial| 4}} <!-- Overall -->
! [[retroDrive]]
 
| {{yes|5}}
 
| ****
 
| ****
 
| {{yes|5}}
 
| ****
 
| ***
 
| {{yes|5}}
 
| ****
 
| ****
 
 
|-
 
|-
! [[Triton (emulator)|Triton]]
 
| ****
 
| ****
 
| ***
 
| ****
 
| ***
 
| ****
 
| ****
 
| ****
 
| ****
 
 
|}
 
|}
  
[[Category:Emulation]]
+
* 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: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 345: Line 256:
 
| {{no}}
 
| {{no}}
 
|-
 
|-
! [[Generator]]
+
! [[Generator (emulator)|Generator]]
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 529: 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 579: Line 490:
 
| {{no}}
 
| {{no}}
 
|-
 
|-
! [[Generator]]
+
! [[Generator (emulator)|Generator]]
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 691: 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)