Offline

Hi! smile I'm making a native tracker for MegaDrive/Genesis

DL/Source code: GitHub
Works on: BlastEm, PicoDrive (partially), Mega Everdrive Pro

Last edited by Corthax (Jun 13, 2021 2:36 pm)

Offline
Milwaukee, WI

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

Offline

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.

Offline
Brazil

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!

Offline

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

Offline
Poland, Gdansk

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

Offline
San Francisco

This sounds dope!

Offline

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

Offline
Adelaide, Australia

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

Offline

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

Offline
Poland, Gdansk

do you have a formula to calculate the bpm tempo?

Offline

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.

Offline
New Zealand

This is very exciting!

Offline

0.10a is out. Incompatible with previous saves.

Offline
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?
http://www.second-dimension.com/store/14

It supports a 256k sram chip... but looking at it (https://www.digikey.com/product-detail/ … 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)

Offline

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)