Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - How to make a tracker?

Reply to topic
Author Message
.dymos//
  • Guest
Reply with quote
How to make a tracker?
Post Posted: Mon Jun 09, 2003 1:32 pm
I have a generic question which is not intended to be explained fully but more to give me some direction. Where can I get some good technical documentation on:

a) How the SMS sound chips work
b) How VGM / VGZ files are constructed

I'm interested in making a tracker although I'm very limited, I have programming knowledge in AS which is similar to java but I'd like to do it in C++ so anyone who can shoot me in the right direction, I have Visual C++ and Bloodshed Dev so any code or examples would be good cos I'll be starting C basically from scratch! ( i.e. windows sound api info would be good! )

.dymos//
 
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8661
  • Location: Paris, France
Reply with quote
Post Posted: Mon Jun 09, 2003 2:01 pm
Quote
> I have a generic question which is not intended to be explained fully but more to give me some direction. Where can I get some good technical documentation on:
> a) How the SMS sound chips work

It's well documented in the development section (see "documentations").

Quote
> b) How VGM / VGZ files are constructed

See documentations available on this section. The format is open and well known.

Quote
> I'm interested in making a tracker although I'm very limited, I have programming knowledge in AS which is similar to java but I'd like to do it in C++ so anyone who can shoot me in the right direction, I have Visual C++ and Bloodshed Dev so any code or examples would be good cos I'll be starting C basically from scratch! ( i.e. windows sound api info would be good! )

That's a wide question... You may want to check out existing VGM related code (I'm particularly thinking about Maxim plugins and tools).
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14755
  • Location: London
Reply with quote
Post Posted: Mon Jun 09, 2003 4:36 pm
Quote
> Where can I get some good technical documentation on:

> a) How the SMS sound chips work

PSG
FM

Those are the best docs I know of (modesty, pah).

Quote
> b) How VGM / VGZ files are constructed

VGM spec

Quote
> I'm interested in making a tracker although I'm very limited, I have programming knowledge in AS which is similar to java but I'd like to do it in C++ so anyone who can shoot me in the right direction, I have Visual C++ and Bloodshed Dev so any code or examples would be good cos I'll be starting C basically from scratch! ( i.e. windows sound api info would be good! )

Well...

Writing a tracker for FM will be easier than for PSG because the YM2413 (FM chip) handles almost everything; you just need to initialise some stuff (volumes) and then send it "key" data exactly like in a MIDI file - only in Z80 assembler.

The PSG is a LOT harder because all it does is frequency and volume - to give different "instruments" with different volume envelopes, vibrato, etc will require all of that to be programmed explicitly in a music engine in Z80 assembler.

For both you'll need to figure out a way to encode the data, possibly with compression, and have some Z80 code to decode it and output it to the sound chips.

This is basically the same as what is done by NSF-creating trackers, for example.

In top of that you have the requirements of creating a tracker - a GUI, defining music events and properties and saving to some proprietary format before exporting to Z80 code and data. Doing all that in C is hard because GUIs are always hard in C.

Maxim
  View user's profile Send private message Visit poster's website
Memblers
  • Guest
Reply with quote
Post Posted: Thu Jun 12, 2003 3:21 am
Quote
> I have a generic question which is not intended to be explained fully but more to give me some direction. Where can I get some good technical documentation on:

> a) How the SMS sound chips work
> b) How VGM / VGZ files are constructed

> I'm interested in making a tracker although I'm very limited, I have programming knowledge in AS which is similar to java but I'd like to do it in C++ so anyone who can shoot me in the right direction, I have Visual C++ and Bloodshed Dev so any code or examples would be good cos I'll be starting C basically from scratch! ( i.e. windows sound api info would be good! )

> .dymos//


I'm working on a tracker, also. (Not for the SMS, but I would love to have an SMS/Coleco tracker to kick around with).

Don't worry about the VGM format at all, IMHO that'd be a bad direction to go. Instead, maybe you should try to team up with someone who's experienced with Z80 ASM that could create a replay engine for your tracked file format. Then you could run that in an emulator to record a VGM file.

So, the first steps (and fairly large ones, at that) would be to come up with a file-format and figure out how the tracker would work. Then make it work, document the music file format, and hope someone can take it from there to make it play back on an SMS.

I've been messing around with chipmusic trackers for a little while. If you want to hear some of my general ideas and suggestions, just say so.
 
Reply to topic



Back to the top of this page

Back to SMS Power!