Here's the technical explanation: http://blog.gg8.se/wordpress/2013/01/16 planation/
haha way to link a topic i started
love the explanation its great
{O___O} If this is the first two weeks we'll have Gameboy Skynet up and running by Christmas
That's a pretty epic Kludge Nitro! You're a top notch improvisational programmer. Really cool idea
Very very awesome. Only two weeks in and this is my favorite thread ever.
Cool, I really like these type of projects. Break the System! Dominate the Machines!
Last edited by egr (Jan 17, 2013 12:32 am)
Here's the technical explanation: http://blog.gg8.se/wordpress/2013/01/16 planation/
ha! that's brilliant. reminds me of how the C64 SID chip's volume register could be hacked to produce a "4th" channel. could something similar be done with the DMG hardware?
What kind of waveform does this sound resemble?
Theoretically a squarewave, though because the sound is played indirectly through interference, the actual waveform isn't exactly defined. Maybe somewhere between a square wave and a triangle. (Edit: Talking about my ROM...)
Last edited by nitro2k01 (Jan 16, 2013 11:23 pm)
What kind of waveform does this sound resemble?
well, the characteristic clicks that would occur when you set the SID's volume register could be controlled to click at different rates. modulate this and it would act like a DPCM channel.
http://blog.gg8.se/wordpress/2013/01/20 -midi-rom/
nitromidi1 is a very simple Gameboy MIDI ROM. It can be used with an Arduinoboy or Nanoloop USB MIDI adapter. It’s not meant to be all that practically useful atm. Rather, I created it to have all the plumbing in place for future MIDI software.
It currently responds to the following things:
MIDI channel 1 only.
Gameboy pulse channel 1 only.
Note ons. (But currently not note offs!)
The typical “panic” button. (Channel mode messages $7B, all notes off and $78, all sound off.)
The pitch wheel, currently with a fixed range of +/-7 semitones.
CC 71/$47 which controls the pulse width of the wave.
CC 72/$48 which is a combined attack/release control, ie. the second nibble of the envelope byte. The control scans from short decay to long decay to constant volume output to slow rise to fast rise. In other word, the following envelope values mapped onto a knob: 1-7,8,F-9.
As noted above, it doesn’t respond to note offs, so be careful with rising envelopes!It has no GUI except a lines pattern indicating CPU usage. This is literally made by changing the background palette when the CPU is busy.
Have fun, and report any bugs/anomalies/feature requests.
Cool, you've done it again nitro! I've always wondered why in LSDJ envelopes it put fast attacks before the slow ones :-P
I've always wondered why in LSDJ envelopes it put fast attacks before the slow ones :-P
Because that's what the hardware does. If you look at the binary numbers, the envelope part is divided into two parts, the top bit is for the direction, while the bottom 3 bits are for the speed. So 9 is binary 1001 where the first 1 is for the direction and 001 is for the speed (fastest.)
do you comment your source? (C or ASM)
and, would you be willing to post it?
(i think a lot of people could learn much from this, myself included, without having to work backwards from the bin)
do you comment your source? (C or ASM)
and, would you be willing to post it?
(i think a lot of people could learn much from this, myself included, without having to work backwards from the bin)
^ that would be amazing