YM2413+ on FPGA. Sampled instruments.

Page 1/2
| 2

By maxis

Champion (512)

maxis's picture

01-02-2016, 15:33

Hello, MSX Lovers, Professionals and Enthusiasts!

As the YM2413 reverse engineering and implementation goes on FPGA and for FPGA, there is an idea to replace the ROMmed synthetic preset instruments by the stereo samples.

For example, there are 15 main instrument preset tones and 5 percussion tones. So by changing the tone generation method from 2 operator synthetic to waveform memory oscillator, quite an effect can be achieved.

In Procyon there are 32 MBytes of memory left for different goodies. So, the stereo samples can be stored and used as the standard presets of YM2413. Which will make it the ROMPLER (RAMPLER) with the sampled oscillators in place of synthesized presets. Let's call it YM2413RAM.

All the rest of the registers, audio path, envelopes and the "main tone" synthesis can be left unmodified.

I.e. YM2413RAM will be fully compatible with the original YM2413 and can be directly used in games.
Since the samples are stored in RAM, they can be overloaded.

What would be your opinion about it?

Login or register to post comments

By zPasi

Champion (495)

zPasi's picture

01-02-2016, 16:03

Yeah! Why not Smile

By Parn

Hero (607)

Parn's picture

01-02-2016, 17:16

"Sounds" interesting to me. I like the idea of upgrading ROM instruments and still being able to use the FM synthesizer.

By Meits

Scribe (6011)

Meits's picture

01-02-2016, 17:38

Oh maaaan. Now I need this device as well... Big smile

By syn

Paragon (1975)

syn's picture

01-02-2016, 17:56

As long as you keep an "original" YM2413 mode in it, not everyone likes these replacement stuff. You have to take into account that in some japanese games (and many songs made for the various japanese replayers) rely on changing hardware instruments during playback to create new instruments, and if you replace the instruments with different samples those effect may not be translated well.

Btw, afaik the YM2413 implementation of the ESE3/1ChipMSX is not perfect, if you perfectly recreate it in your implementation that would already be truly great.

By DJs3000

Expert (104)

DJs3000's picture

02-02-2016, 00:33

By Parn

Hero (607)

Parn's picture

02-02-2016, 12:36

Just an aside: currently MFRSCC+SD, Zemmix Neo and recent versions of OCM's firmware, despite being based on VM2413, don't support all of its features, like customizing internal instruments. This was confirmed by @Grauw (OCM) and me (MFRSCC+SD and Zemmix Neo). I asked @KdL about it and he said he didn't remove any features, so it was probably done in an earlier OCM firmware iteration.

By maxis

Champion (512)

maxis's picture

02-02-2016, 21:05

@DJs3000, Parn

Thank you for giving a link to the IP module.

However, my philosophy is to use the indigenous design. I.e. this way I can learn in depth too. Up to now I have developed all the IP modules in Procyon from the scratch in Verilog, which represent the entire MSX2 (w/o CPU and BIOS for legal reasons).
I'll consult the VM2413 design after implementing the first functional IP prototype. Currently the reverse engineering of the real HW is going on for 2 months. I've learned a lot about OPLL. However, I don't analyze OPLL, but rather the built-in FM in Y8950. You can ask why. The answer is simple. The architecture of Y8950/YM3812 FM is very similar, but the DAC is external. So, I don't have to quantize the DAC output, but rather connect the logic analyzer to the serial DAC bus.

By hit9918

Prophet (2897)

hit9918's picture

03-02-2016, 01:53

can the OPLL make software ADSR.
sustain on/off switch, what does this do. is there something in this corner.
keep that thing sustaining on constant level.
and then volume register = software ADSR.
and then it is a synthesizer because you can combine channels.

By Parn

Hero (607)

Parn's picture

03-02-2016, 11:23

@maxis, that's very interesting. Thanks for the explanation, it sure sounds like a boon for music making on the MSX and also a great learning opportunity. Smile

By wouter_

Champion (432)

wouter_'s picture

03-02-2016, 12:45

hit9918 wrote:

can the OPLL make software ADSR....

This should be possible (though not via sustain on/off) with one big drawback: the hardware envelopes vary in 128 steps (0.375dB per step) while via the volume register you can only select 16 steps (3dB per step).

Page 1/2
| 2