Offline

I decided to look at the sega genesis instruments in deflemask to try to make them in xpmck, but i've run into a bunch of snags. The xpmck manual says all the ADSR values go from 0-31 but in the deflemask and vgmmaker instruments, SL and RR go 0-15. Does anyone know how to set up operators with their detuning and multipliers and such? Do the parameters for the deflemask instruments translate to xpmck?

The Sonic bass i tried to set up sounds lame. so does the intro bell. Here's the mml file, and the vgz file.

Offline
Dallas, Texas

I've run into this issue before as well. The pulse width macro for the C64 only allows 0-15, and in MSSIAH, it is 0-31

Offline
Buenos Aires, Argentina

There's an important declaration in the http://jiggawatt.org/muzak/xpmck/manual.html

"On the SEGA Genesis (YM2612) the five-parameter version is used
and all values have a range of 0-31 (the LSB of sustain and release
is ignored since they are stored as 4-bit values in the YM2612
registers)
."

This means that you have to make a bit shift to your desired value, like this:
Value 06 (binary 0110), bit shift < 1 = 0110 0 (value 12)
Value 14 (binary 1110), bit shift < 1 = 1110 0 (value 28)

You have to add a 0 in the right side of the number, a dummy value, in this way you will be using only 4 bits of a 5 bits space, giving ranges from 0 to 15, but being 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30

If you don't understand this geek binary thing, don't worry, the conclusion is that you have to multiply your SUSTAIN and RELEASE values by 2.
6 = 12
14 = 28


DefleMask does all of this thing automatically.

Last edited by Delek (Nov 16, 2014 1:47 pm)

Offline

wow, thanks delek. Eres un crack! I almost got it! I tried your suggestion about the sustain and release, only the release came out right. If i understand correctly, if the adsr of operator1 for the bass in deflemask is AR: 31, DR: 7, D2R:7,  SL: 2, RR: 0, that translates to xpmck's parameters to { 31 7 7 4 0 }?

I tried that, then I ripped the instrument from the resulting vgz using vgm2pre and looked at it in deflemask and it looks like this: AR: 31, DR: 7, D2R:7,  SL:13, RR: 0. The SL parameters seems to be off. Also, after looking at my ripped instrument on deflemask, I noticed that the parameters from operator2 and operator3 were switched, so i switched them. But yeah, all the parameters are on point now, except SL parameters ares still off. Any ideas?


mml vgz

Offline
Buenos Aires, Argentina

What actually uses 5 bits are the D1R and D2R!, those values should be multiplied by 2. However, XPMCK calls them DR and D2R; but there's a SL (Sustain Level) value in the YM2612, and it is a pure 4 bit value.

The conclusion is that you have to multiply by 2 only DR and D2R and leave SL as it is. Please try this theory.

Last edited by Delek (Nov 16, 2014 11:50 pm)

Offline

Unfortunately in the original Sega documentation some of the operators were incorrectly mislabeled. So sometimes this detail goes unnoticed when YM2612 software is developed. Which is most likely why operators 2 and 3 were switched like that.

I'm not sure I understand why that value got converted over to 13. Even as a 4 bit value both 2 and 4 fall in the range of the 4 bit maximum which is 15. Is there some other arithmetic going on here that I'm not aware of?

Offline
Buenos Aires, Argentina

The less significant bit is ignored of a 5bits value, that's what is said in  http://jiggawatt.org/muzak/xpmck/manual.html

However, the documentation of XPMCK is not clear enough.

Last edited by Delek (Nov 17, 2014 12:31 am)

Offline

Alright, so perhaps rotate it to the right by one bit and then multiply it, then rotate it back over to the left one bit... is it true that xpmck expects a 31 decimal value for Sustain Level? I haven't had time to actually go look.

Edit: Ok, yes 31 is the max value in xpmck. But I still don't understand where that 13 came from, even with bit shifting.

Last edited by CountSymphoniC (Nov 17, 2014 12:46 am)

Offline

I multiplied the DR and D2R values and got a percussive sound. Screw this, i'll just use your tracker to make sega genesis music. Composing in mml isn't worth the hassle of having to use xpmck

vgz

Offline
Dallas, Texas

haha, yeah, I can't imagine trying to make FM music with mml. too complex for my blood. mml is more fun when its simpler chips like the NES and Sega Master system in my opinion.

Offline

it's not so much the FM music, as it is the software. mml is just a perfect way for me, since i can't grok trackers. but there isn't enough info for xpmck like there is for ppmck

Last edited by chiptooth (Nov 17, 2014 10:31 pm)