Huntington / Poughkeepsie

Square Gear is a Master System homebrew application that allows you to control the programmable sound generator in real-time without the need of any pre-tracking or external MIDI interfaces. Just load up the ROM into your Master System, Game Gear, or Genesis and fire away! Right now, Square Gear is little more than a proof-of-concept, locking you in C Major. Note selection is done on the D-Pad as follows:

        F    |    A
    E    -    +    -    B
        D    |    C (8va)

Needless to say, the program has a long way to go before it becomes the versatile live performance tool I'm hoping it'll one day grow into. The reason I'm releasing what in essence is a beta is two-fold:

-If there are any nasty bugs on hardware, I want to get ahead of them before the code becomes too convoluted. I've tested on my Genesis Model 2 but not on a Master System or a Game Gear (which is ironic considering the Game Gear is the real target platform hence the name).

-I want to know what you guys want! I have a to-do list for Square Gear but I want to implement the most-wanted features first because I have a feeling the program is gonna need a few total rewrites by the final release, and I also wanna make sure I'm not missing obvious features or going overkill on things that will never get used.

-Select different tonic notes and at the very least a natural minor mode. Would you guys want the full church-mode spread or is just minor fine?
-Use 1 and 2 to alter pitch- 1 by a half-step, 2 by an octave. User can choose between #/8va and b/8vb.
-Choice between soft or hard note attack and release.
-"Periodic Noise" Mode. Would people also be interested in pitched white-noise mode?
-Power chord mode to mimic arpeggiation.
-Other waveforms. Some of the stuff I saw on here and elsewhere to mimic other waveforms sounded really cool when I tried it in SnevenTracker, like two notes that are the same but slightly detuned, or playing in octaves with different volumes. Any specific techniques you want me to implement? 
-Allow all of the above to be controlled in a menu accessed by the Pause button.
-Cooler-looking interface

Square Gear will likely never be polyphonic, both due to the limitations of the joypad and the fact that I want all the channels free for additive synthesis. It will also likely never feature triad arpeggiation due to the challenge of calculating the chord quality and then building it on the fly. Who knows what the future will bring, though? I'm also aware of how difficult it can be to articulate D, F, A, and high C without getting blips of adjacent notes, at least on a Genesis pad or a computer keyboard. That might just be a reality of a D-Pad based note-selection scheme, but trying to find a solution is definitely on my todo list.

The code started as the enhanced version of Maxim's Hello World tutorial over at SMSPower. That site is such a wealth of information and passion, go check it out. Square Gear as it is right now is a very simple program, but I will keep working on it and hopefully the future will be full of crazy Master System solos and Game Gear choirs.

Yes, Square Gear was the coolest name I could think of. Sorry.



Yo catskull, can you try this out on my dual ended pcb? I haven't any 8-bit roms on hand.

Very cool. I can't wait to see it evolve into something larger.

Last edited by Jazzmarazz (Jun 5, 2017 12:22 am)


Nice one _NetNomad. I reckon I have bits for an EPROM cart at home so I should be able to give this a try.

+1 for SMSPower!


Yeah, I'll throw it on my everdrive and then see if I can track down an eprom and get my VM up and running.


-"Periodic Noise" Mode. Would people also be interested in pitched white-noise mode?

YES! People indeed would be interested in this. Support as much of the basic square and noise channel functions as possible. Including the pitched periodic noise (nasal bassy sound).

Can those wavetable synth techniques really function in real hardware like what Snoozetracker has? I'm interested to see what you can do with all that! smile

People have been waiting a long time for a live performance tool for Game Gear that can rival LSDj... at least I have! XD

Huntington / Poughkeepsie

Wow, I did not know about SnoozeTracker! Playing samples on the PSG is pretty well documented, but I had no idea there was a tracker that did it. I guess the big question there is whether the tracker is doing the wavetable synthesis and loading each note used as a separate sample or if the VGM file exported only has the base sample and the z80 is doing the looping and pitch-shifting. Wavetable is definitely something that would be way way way down the line for Square Gear but it's certainly on my radar. I'll have to give SnoozeTracker a test spin and try to see what it's doing.

You know, come to think of it, because sample playback is based on screwing with the volume, that might be a way to cheat at volume envelopes. I'll have to stew on that.

Unfortunately I'm not sure if Square Gear is going to be something that will ever rival LSDj, even if only because it's not planned going to have sequencer features. That's not to say the MS/GG will never have a sequencer nor does it mean I won't contribute to that, but the primary goal for Square Gear is to turn your system into a rudimentary mono synthesizer. The tradeoff there is that any calculations that aren't being used to read input and calculate pitches can be dedicated to exploring things like wavetable or pulse-width modulation without having to worry about patterns keeping time. Maybe in the future it'll be efficient enough that implementing polyphony and tracking will be a no brainer, but right now the source code is less than pretty and will only get worse lol

You can definitely expect pitched noise though! Right now all of the sound is coming out of the third square channel so it's already set up that the note selection routine works for the noise channel. If it's not a v1 feature it will probably be the very next thing after that.

Last edited by _NetNomad (Jun 6, 2017 10:52 pm)