Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jul 19, 2021
Jul 19, 2021
Jul 19, 2021

Nuked-OPN2

High accuracy Yamaha YM3438(OPN2) emulator.

The YM3438 is a CMOS variant of the YM2612 used in Sega MegaDrive(Genesis) and FM Towns.

Genesis Plus GX fork with this core integrated is available here: https://github.com/nukeykt/Genesis-Plus-GX

Features:

  • Based on YM3438 die shot reverse engineering and thus provides very high emulation accuracy.

  • Cycle-accurate.

  • Undocumented registers/features emulation.

  • SSG-EG, CSM mode emulation.

  • Compatible with the YM2612.

API documention

void OPN2_Reset(ym3438_t *chip) - Reset emulated chip
void OPN2_Clock(ym3438_t *chip, Bit32s *buffer) - Advances emulated chip state by 1 internal clock(6 master clocks). Writes signed 9-bit MOL, MOR pin states to buffer. 
void OPN2_Write(ym3438_t *chip, Bit32u port, Bit8u data) - Write 8-bit data to port.
void OPN2_SetTestPin(ym3438_t *chip, Bit32u value) - Set TEST pin value.
Bit32u OPN2_ReadTestPin(ym3438_t *chip) - Read TEST pin value.
Bit32u OPN2_ReadIRQPin(ym3438_t *chip) - Read IRQ pin value.
Bit8u OPN2_Read(ym3438_t *chip, Bit32u port) - Read chip status.

Samples

Sonic the Hedgehog: https://youtu.be/ImmKy_-pJ8g

Sega CD BIOS v1.10: https://youtu.be/s-8ASMbtojQ

About

Cycle-accurate Yamaha YM3438(YM2612) emulator

Topics

Resources

License

Releases

No releases published

Packages

No packages published

Languages