pouët.net

Go to bottom

Sega Master System YM2413 FM Tool by Chris Covell [web]

Sega Master System YM2413 FM Tool
---------------------------------

by Chris Covell (chris_covell -at- yahoo.ca)
--------------------------------------------

What?
-----

This is a small, one-screen tool that lets you experiment with the FM sounds
out of the YM2413 sound source in the Japanese Mark III and Master System.

The 9 voices (channels) of the YM are presented for you in the top half of
the screen, and you can adjust each of their keying (note on), volume,
pitch, and instrument settings individually.

Below that is the rhythm section, which provides 5 percussion instruments,
at the expense (when activated) of FM channels 7,8,9.  It is "not recommended"
to change ch. 7-9 settings when rhythm tones are activated. :-D

The lower half of the screen allows you to change the settings for the custom
instrument in various ways.  Perhaps read up on FM synthesis before you approach
it, but for starters, you'll need to make the A/D settings (in the ADSR section)
non-zero in order to hear anything when you key the custom instrument on.


Use and Controls
----------------

This tool was programmed for and tested on Japanese SMS hardware.  So, I'm sorry
if it doesn't work properly on an unofficial setup (US/Euro SMS / MD with PBC...)

I recommend using Japanese paddle controllers, since you can adjust various level
settings (like pitch) smoothly and naturally.  However, a regular SMS joypad will work.

- With a Paddle
  -------------

Moving the paddle moves the green cursor up/down at the left side of the screen.  Press
the trigger and the cursor will change to red, now moving left/right.  If you press the
trigger again on a "checkmark" space, you will check/uncheck that setting.  If you
press the trigger on a numerical value, the cursor will change to blue, and the paddle
will now adjust this value until you press the trigger again.


- With a SMS Joypad
  -----------------

You should be able to move the red cursor anywhere on the screen simply by pressing
a direction on the joypad.  If you press button 1 on a changeable value, you can decrease
and increase its value by holding Left/Right.  Up/Down changes this value much faster.


- Changing modes
  --------------

Ordinarily, the paddle trigger or joypad button 1 selects/activates a cursor choice.  Pressing
the Pause button on the SMS (and also the 2 button on the joypad) changes this mode so that
the trigger/1 button acts as an "all channel key on/off" button instead.  This is useful when
you want to move the cursor to a value like note frequency, select it, then change the pitch
of a channel while also (re)keying the note.

Once you select a value to change, press Pause, and the mode will change to rekey or key on/off.
"Rekey" means it will key and hold a note ON.  "Key on/off" means it will key when you press
the trigger, but then release the key when you release the trigger.

Or, if you hold the trigger/1 button, then tap Pause/2, it will go into a special mode where
the Pause button (and also 2 button on the joypad) is locked to rekey every time you press it.
Due to the momentary nature of the Pause button, this button ONLY rekeys ON, whereas the joypad
2 button acts as a key on/off button.

Press this button combination again to get out of this locked mode.

Changing between all these modes is how you can select note settings, then play various sounds 
almost like a "live" performance (not just setting static variables).


Other
-----

You should be able to swap a paddle with a joypad at any time if you so desire... 
Certain emulators <ahem> may not emulate all these different combinations of paddle and joypad,
but ideally it should work on the real hardware without fail.

I've uploaded an audio sample / slideshow on YouTube demonstrating the basic and custom
instruments of the YM2413, so you can check that out for ideas.
The link is http://youtu.be/q4uPerAsWLk ... or search for user wwwchrismcovellcom.

I've included the source code to this tool.  Please, please go easy on me, as I haven't
programmed Z80 code in 10 years, and this shows in my inefficient opcode choices. :-/


Have fun!

http://www.chrismcovell.com
Chris Covell
------------
Go to top