Thanks to nitro you can now easily add custom wav channel waveforms to mGB with your favorite hex editor!

Read the tutorial and download the freshly customized rom here: http://blog.gg8.se/wordpress/2014/06/30 … waveforms/

Here's a couple of waveframes to try out (just enter the digits from the top and bottom of the screen into any one of the rows 4000 thru 40FF in your hex editor)  -->

"First 32 digits of pi"

"Shitty Saw"

_________________________________________________________________

Original post:

Is there a patcher that will allow me to add custom wav channel waveforms to mGB?

EDIT:  this sounds like a nice little project for nitro wink

Last edited by egr (June 30, 2014 7:56 am)

I will look at the hex real quick to see if I find the data loaded to FF30-FF3F, but it would be readily possible if I had the source.

I can't seem to find FF30 in the hex (or 30 FF when it comes to 16-bit register addressing for that matter.) The only thing I can imagine is that the address was loaded into HL at some point, loaded with register A, containing 8-bits of the sample and then HL is incremented and register A is again loaded; repeat until FF3F is loaded.

i'll try to analyze the memory viewer in  VisualBoyAdvance while switching samples and see what happens.

Thanks, jazz.  I've been googling around trying to find some specifics on mGB wav channel but no luck yet.

Here are the samples. The WAVE RAM is located at FF30-FF3F. I cannot change the icon associated with the selected sample, but we can now find these samples in the ROM...I hope and replace them.
















Interesting!

Im looking through the hex to find them, but I fear they also may be results of equations and not hard-coded sample data.

hex samples, in order as played (not read):

0123456789ABCDEFFEDCBA9876543210 - ramp
225577AABBDDEEFFEEDDBBAA77664400 - sine
0123456789ABCDEF0000000000000000 - short saw
FFEEDDCCBBAA99887766554433221100 - long saw (incorrect icon, needs reversed)
FF000000000000000000000000000000 - 6.25% duty square wave
000000000000000000000000FFFF0000 - 12.5 %duty square wave
FFFFFFFF000000000000000000000000 - 25% duty square wave
0000000000000000FFFFFFFFFFFFFFFF - 50% duty square wave
1613AAB32581E82A1BEBF885E128FFA4 - noise 0
340991a763b899a13FE4D06166735973 - noise 1
- noise 2
- noise 3
- noise 4
- noise 5
- noise 6
- noise 7

Still working on this ^^^

Last edited by Jazzmarazz (June 29, 2014 5:29 pm)

Before you pull your hair out to much, I did notice on the arduinoboy page that "Current Source code available upon request. (Its a bit of a mess without comments. wink" so maybe we should see if we can get hold of trash80?

Last edited by egr (June 29, 2014 6:41 pm)

i linked him the thread, curious to see where this goes

e.s.c. wrote:

i linked him the thread, curious to see where this goes

Word.

egr wrote:

EDIT:  this sounds like a nice little project for nitro wink

Does it really? Well fine then...

http://blog.gg8.se/wordpress/2014/06/30 … waveforms/

Well well well!! Nicely and clearly done, thank you! Now I just gotta start coming up with some more interesting waveforms.

Here's a couple waveframes, also edited topic title and added info to first post.

"First 32 digits of pi"

"Shitty Saw"

egr wrote:

"First 32 digits of pi"

Bro, do you even hex?

http://www.wolframalpha.com/input/?i=pi+hexadecimal

3.243f6a88 85a308d3 13198a2e 03707344 a4093822299f31d0082efa98ec4e6..._16

nitro2k01 wrote:
egr wrote:

"First 32 digits of pi"

Bro, do you even hex?

http://www.wolframalpha.com/input/?i=pi+hexadecimal

3.243f6a88 85a308d3 13198a2e 03707344 a4093822299f31d0082efa98ec4e6..._16

touché

nitro2k01 wrote:

In other words, the actual data starts at address 3C9C and is spaced out so every 6th byte is waveform data.

THATS WHY I COULDN'T FIND THEM!!! *grumble*....