(336 replies, posted in Sega)

Honestly, now that I have a full time job and a son to take care of, I haven't got much done. I'd like to chip away at the project but it'll never get done without help from other devs. It's now open source and you can find the link here https://github.com/LeviathaninWaves/Cha … ee/master/ or on the first post of this thread. It's not useable for music making, the project needs a bit organizing, but hey, it's a start.


(336 replies, posted in Sega)

Double post


(336 replies, posted in Sega)

Anyone willing to work on an approximation of a General MIDI YM2612 patch set should PM me.
Chaos Tracker needs 127 General MIDI compatible presets.

These will be customizable in the program and should sound as close as FM can get to the real instruments.
We'll also need GM percussion samples but that won't be added til much later.

In other news, development for NTSC and PAL consoles is happening at the same time. Last time was NTSC only. This will be an international ROM.

I wanted to investigate further into this.
What would be the best way to go for implementing soundchip emulation in Android apps? Does anyone know how Droidsound and zxtune does it?


(336 replies, posted in Sega)

I actually took a big break from development on this tracker. There was a bug that had me stumped for months so I just left it alone for a while. Well since the bug is fixed now, it's time to push forward.

Fair warning though, I have a full time job and a son on the way so the lightning fast progress we saw on YMDj and Prodigy won't be happening here this time around.

So far I've got the ROM initialization, the new graphics, start of a new UI design, screen compositing methods, and the barebones beginnings of the sound driver all working.
We will have access to a menubar as seen at the top of many PC apps, e.g. "File Edit View Help"

Still thinking of ways to make FM instrument patch creation more fun and user friendly. Ideas welcome!


(336 replies, posted in Sega)

YMDj/Prodigy Tracker is officially vaporware. It sure was fun while it lasted but development can no longer continue for it.

I was cleaning up the source and was reassured that approximately 90% of the program needed to be rewritten, because of so many things done wrong. It was my first time coding a music sequencer and now all the knowledge accumulated working on that can be used to create something truly amazing. So we're starting totally from scratch and in the name of doing things right this time.

Chaos Tracker has been in the works for a few weeks now and the code is much cleaner, much better commented and well structured. Chaos Tracker will have a strong code foundation with a more modular approach, so that it can be more flexible. The Sega series' version of Chaos Tracker won't be done in C though. It'll be done in a slew of different assembly languages, my other "secret" project however...

It's going to be a while before we have something useable but keep an eye on the forums. There'll be updates once in a while.


(336 replies, posted in Sega)

In a strange and unpredictable twist of fate today, I've found all of the lost Prodigy Tracker source code... it was pleasing to see that everything is intact and the way it was before. This caused a complete rethink in the development strategy. I will continue to develop this tracker and make it open source, but it might stay an ASM only project. At any rate a there's some things that must change. Enharmonic spelling must be made consistent, changes to the internal tracker format must be made, routines need to be renamed for readability and better documentation + source comments must be done.

Oh, expect this tracker to branch into two separate projects at some point. Prodigy Tracker will remain as you know it, but once it's open source I intend to branch off in a new direction officially with Chaos Tracker. You'll see why soon enough wink


(336 replies, posted in Sega)

Special+CSM is a maybe. Depending on the future use of YM timers as a source of BPM measurement.
DAC wavetable editing is possible, but using samples for melodic content would be iffy, Amiga like at best. PWM is something I'm interested in but it depends on the processing overhead, it'd be nice to have at any rate.

We only have so much to work with in hardware so sacrifices will have to be made to make things happen.

Chaos Tracker, the Genesis/Megadrive/32x/CD music sequencer, successor to YMDj/Prodigy Tracker and an open source project, is in the works.

So we're looking for a really good pixel artist that can do the fonts, a tracker intro and possibly the layouts for each screen. Normally I'd do it myself but it's easy to get tied up getting a sound driver to make sweet melodies. Anyone interested should try using this format:

1) 8x8 tiles using a 16 color palette and a general understanding of other Genesis/MD video limitations.

2) We're looking for a design that will appeal to both retro and modern musicians, but creativity is key here. We're using PC based DOS era trackers as inspiration but it's ok to go modern.

3) If you're wanting to do a mockup of the intro, think something suggestive of Chaos Emerald/s but nothing too obvious. Sonic fans will totally get this one!

Your name goes in the credits and you'll be known as THE pixel artist for this project. Thanks guys.


(336 replies, posted in Sega)

I'll send you a pm to discuss this.


(336 replies, posted in Sega)

That's good news. It's very fun isn't it?

Yes now's a great time to get familiarized with SGDK. I think most if not all of the sound related stuff will have to be handled in assembly. All the graphical VDP handling could be done in C and probably should, as it can be cumbersome in assembly while C can make short work of it. The data arrays can be done in either C or asm. There's more but we can discuss that later. I'll get the headers and startup code organized in a project folder when I can.


(336 replies, posted in Sega)

yoyz2k wrote:

I've try to build gendev.
Now I need to understand how to make an hello world with it.
Do you use it, it seem to be the sgdk for unix.
Great to hear improvement on the sound driver.
But what kind of facility does it provide ?

Gendev is what I was attempting to build but without internet I'm unable to. For the time being I'm combing through stef's XGM source to understand what needs to be modified to make it work with the internal tracker format, it should be easy according to stef.

Today was productive having finished an exception screen that prints cpu register information to the screen, useful for debugging. I was able to do all this from scratch in assembly but it shouldn't hurt our ability to do things in C as well. The exception screen works fine on hardware so all the code so far is good.

Before I start going all frankenstein with stef's driver I'd like to run some benchmarks on the z80 and see what we're looking at in terms of performance during bus requests and memory transfers. Anyways, yes gendev is what we'll be using for C. As far as a hello world for SGDK is concerned, I'm not too familiar with SGDK's functions yet, but you'll need to use code that has a rom header defined and initializes the Sega, before you can do anything with it at all. I can help you with that but all my string printing routines I did in assembly.

To answer your question about what facilities the driver provides, the sound driver handles everything sound related. All the pcm, FM, PSG, and playback is taken care of for us. We only need to pass the music data to the driver which is relatively trivial for us. Stef's driver is amazing and handles genesis/megadrive music exceptionally well, it is perfect for the chiptune scene. Whew... long message for touchscreen typing. I'll keep you posted and try to set up a repository or something here soon.

@TSC and @PULSELOOPER - It's the best of the 3 names and the tracker seems really happy with the new name. That means it's going likely to be permanent. smile


(336 replies, posted in Sega)

Updated main thread. Permission was obtained from Stef to use his z80 XGM sound driver for the new tracker. Added info on 32x/CD compatibility.


(336 replies, posted in Sega)

yoyz2k wrote:

Yes, I agree working without internet connection is really difficult.
Glad to know you have idea for managing the 64KB of ram efficiently.
I will need to read some doc to understand the memory, the IO subsystem, and how the two cpu communicate it will be the hard part for me because when I work with multiple processor and numa node, it is handled by linux for me.
So lot of thing to understand smile
Hope you will have your internet access soon.

Yes the z80 and 68k intercommunication is confusing. Last time I wrote this tracker, I never did any work on the z80. Just used bus requests as the 68k requires permission from the z80 to access the YM2612 sound chip, as the YM2612 resides in z80 memory space. This time however the sound driver should be done entirely and purely in z80. The 68k is a 16 bit cpu and YM2612 only accepts 8 bit writes with wait time in between writes, so using the 68k last time was wasteful. Have a look at the sega documentation, it's a must.

Now that I think about it, now would be a good time to start work on the new sound driver, since it's pure z80 I don't need sgdk for this one. By the way. You mentioned you've done x86 asm. 68k is easier and is a gorgeous architecture, it's very logical too. You should have no real trouble understanding it.


(336 replies, posted in Sega)

yoyz2k wrote:

When you have a full feature helloworld with c and asm on the 68k and z80 with the right toolchain I will be more than happy to help you on whatever.
I work on Debian, with emacs, gcc and git.
I've done some i386 dos asm so I think it could help me on the asm part.

Hey there. I can proceed no further with the Linux SGDK without an active internet connection to my laptop, the make process requires it unfortunately. The only internet I have is with a smartphone that isn't even mine and no tethering. However I have SGDK all set up on windows in the case that I can't find a chance to get online on my laptop. I might know someone who has internet that can help out here... just thought I'd give an update. In the mean time I've been thinking of many ways to make the tracker more efficient and have come up with good things so far. Especially in the realm of RAM efficiency.


(336 replies, posted in Sega)

Addendum: We're looking at the gcc toolchain and I forgot to mention, there will be z80 assembly too.