Hi! smile I'm making a tracker for MD, need some testing on Mega Everdrive X7 or MegaSD (it uses 256 KB SRAM for song data).

Works in BlastEm emulator.

Still WIP, not everything is implemented and may contain bugs.

Controls and features are more or less described in text file.

V 0.8a:
--------- Initial

V 0.9a:
--------- Added portamento up/down, vibrato effects for FM.
--------- Arpeggio and volume sequencers.
--------- 16 ticks/row by default.

V 0.10a:
--------- 3 effects / 896 patterns.
--------- Volume is applied as attenuation to instrument basic level (to max vol in case of psg), not as direct values.
--------- Note cut/delay/retrigger, pattern jump, matrix jump commands, tremolo.
--------- Instrument name editing.
--------- Little info display in pattern editor (entered instrument name, will also add commands brief description later...)
--------- Still a lot TODO.
--------- Still buggy playback cursor. Also stoping playback sometimes not cutting off sound.

Last edited by Corthax (Feb 20, 2020 10:03 am)

Milwaukee, WI

YO what??? This looks amazing. Excited to play around with this.


There are no pitch or volume effects yet (except instrument arp sequencer), these are the next things I need to focus on.
Also no DAC or CSM currently implemented.
Graphics may be slow to update with default SGDK text drawing. Need to be replaced with something faster, but for now it's fine.


I tried it on my Mega Drive. It's a re-release here in Brazil that Tectoy did a few years ago (2017 I guess?) and it has a built in sd card port, so I can load roms on it, while it loads cartridges too, but I don't own a everdrive cart.

I was expecting this to not even boot on it, but it ran and I could move on the first screen.
But the program crashes after i go to the pattern editor.
My guess is that's a console issue with the rom.

Hoping to see further work on this one, I love the idea of a native MD tracker!


If there is not enough built-in SRAM (it's used as RAM), and it's not allowed to write it in 16-bit mode (both odd and even bytes), then rom will not work, or will display garbage data. Or crash smile

Poland, Gdansk

Its great to see a native tracker for the Genesis! I will keep my fingers crossed for this one smile


This sounds dope!


Defeated the portamento effect (I hope).. Yay!

Adelaide, Australia

Sounds intriguing and a really ambitious project - definitely going to check it out! big_smile


0.9a landed for testing. I guess it's better to make 3 effects per row and 768 patterns instead of 2 and 1024 for the next one hmm

Poland, Gdansk

do you have a formula to calculate the bpm tempo?


Tempo is just raw timer B values, 1 timer tick = 1 song pulse. There is up to 16 pulses per row.
From docs (is it correct?):
8 Bit Timer B lasts:
288 × (256 - Timer B ) microseconds
It is possible to convert it to bpm (need to take into account if even and odd row pulses may be different), but not a priority task right now.

New Zealand

This is very exciting!


0.10a is out. Incompatible with previous saves.

New Zealand
Corthax wrote:

If there is not enough built-in SRAM (it's used as RAM), and it's not allowed to write it in 16-bit mode (both odd and even bytes), then rom will not work, or will display garbage data. Or crash smile

So... being cheap and not wanting to fork out the cash for an Everdrive x7, I'm wondering if something like this could work?

It supports a 256k sram chip... but looking at it ( … ND/4234592) it is listed as an 8-bit sram...

Sorry if this is a silly question, but when you say "allowed to write it in 16-bit mode, does that mean the cart needs 16-bit sram? (presumably we're talking one with a hi-byte/low-byte write pin(s)??)

Last edited by Shifty Pixlz (Feb 20, 2020 8:43 pm)


Yeah, the one that writes both hi and low bytes.
With 8 bit SRAM only half of it will be accessible, that gives 128KB, which is... very limiting the possible song data.
I can make different tracker versions with different SRAM requirements though. 256KB is just to make it at least somewhat usable.

In Deflemask we can have:
128 instruments,
128*10 (or 128*13 if ch3 special mode) unique, but channel dependent, patterns,
4 + vol command columns,
128 matrix rows,
256 rows pattern size.

In my tracker, when full 256KB SRAM is used, the maximum is:
255 instruments,
~896 unique patterns,
3 command columns,
250 matrix rows,
32 rows pattern size.

Almost all available space is taken by pattern data. (32 * 8 * 896 bytes)

Last edited by Corthax (Feb 20, 2020 11:01 pm)