libgme / game-music-emu

Blargg's video game music emulation library, which allows audio applications to easily add playback support for the music of many classic video game consoles.
GNU Lesser General Public License v2.1
68 stars 12 forks source link

VGM: Dual-chips support #35

Closed Wohlstand closed 5 years ago

Wohlstand commented 5 years ago

Original report by Wohlstand (Bitbucket: Wohlstand, GitHub: Wohlstand).


Looking the VGM specification: https://vgmrips.net/wiki/VGM_Specification we can see that here is a dual-chip support that allows to run two parallel chips for certain purposes.

Here I made the working of YM2612 (without this change, in current version you’ll hear high-frequency garbage rather proper song):
https://bitbucket.org/Wohlstand/game-music-emu/commits/493fbf77c1d534f2d901d575ad6dca76138c99c4

I going make this more clear and support dual-chip for other chips too include PSG. After works, I’ll post a pull-request.

Attachment - an example VGM file with dual YM2612 usage.

In parallel I working on MIDI2VGM utility with using of OPNMIDI’s backend and the attached song is the result of this tool. The file plays correctly on ZXTune player.

// Please assign me.

Wohlstand commented 5 years ago

Original comment by Wohlstand (Bitbucket: Wohlstand, GitHub: Wohlstand).


Another sample dual-YM2612 VGM file

Wohlstand commented 5 years ago

Original comment by Wohlstand (Bitbucket: Wohlstand, GitHub: Wohlstand).


Wohlstand commented 5 years ago

Original comment by Wohlstand (Bitbucket: Wohlstand, GitHub: Wohlstand).


Just now I have sent a pull-request: https://bitbucket.org/mpyne/game-music-emu/pull-requests/14/vgm-implement-dual-ym2612-support

Wohlstand commented 5 years ago

Original comment by Michael Pyne (Bitbucket: mpyne, GitHub: mpyne).


I’ve sent you an invite to contribute to the repository as Bitbucket doesn’t allow me to assign you issues otherwise (and obviously, I’m comfortable with your being able to contribute and land patches on your own once reviewed).

Wohlstand commented 5 years ago

Original comment by Michael Pyne (Bitbucket: mpyne, GitHub: mpyne).


Fixed via pull request 14