EMS64? I wouldn't think the power supply in the GB could provide enough current to damage anything downstream from it which would suggest it is the source of the smell. Which part of the cart is getting hot if you can pinpoint it?

I don't think a bad battery would cause a burning smell... If the cart was failing it is possible for the GB to run code it is not supposed to and corrupt your data. Is the smell coming from the cart or the gameboy? Is either getting hot?

Ahh Fantastic! Thank you very much! I should have the code completed tonight.

Forgot about the 0-127 value range, i'll need to fix that up in the ROM too.

I'll take a look for you tonight. I remember it being defined in one of the modules if you want to take a look

I think the instruction would be something like Serial.print(midiData[1], HEX);

That should print out the value of midiData[1] as a hex number in the terminal

Should be displayed in the Arduino 'terminal' or even open hyperterminal (Do they still ship that with the later windows releases?) and see it in there.

It may not even be printf... I just assume it is as its C based. I'll give it a Google.

I used an Arduino once for a project at work, I disliked everything about it, the syntax, the libraries, no branching, code size and the speed it executes your code at. It takes what is a competent microcontroller and reduces it down to a black box with a weak, slow and limited instruction set. Just my opinion.

mGB mode i suppose.

Yes, the string is in the source though I am not fluent in Arduino. I can see exactly what the code is doing with the incoming MIDI instruction but I don't have the Arduino IDE installed and really cant be bothered looking through all those ino files to find the defines for all the various bit masks that are used throughout.

Something as simple as adding printf(midiData[n]); after each sendByteToGameboy(midiData[n]); would do the trick. I just don't have an arduino handy, or optocouplers or din sockets. If you have an Arduinoboy and the IDE installed could someone dump the 3 bytes to the serial port and post them here?

Once I get the string (well, only really need the first byte as the other two are passed through without modification) I can add a filter to the serial handler in gb303 and it'll be finished and I can start working on the bug fixes.

Thankyou for the offer egr but I am all the way down in Australia and economy shipping would take as long as if I put an order in from China. Hopefully someone can add those 3 debug lines to the sketch and post the results?

Jazz, that would be appreciated!!!!!!

Heard the ROM didn't work on the Derp, fixed up the ROM header so that should be all good now. Also removed a lot of the Pot code, just referenced to 3 ROM locations now. Once I get a sample of the 3 bytes the ArduinoBoy sends out I can finish off the serial handler routine to populate these three ROM locations and we'll have ourselves an external Pot controlled GB303 that will run from your average Flash Cart.

Latest Iteration here: www.bennvenn.com/GB303_Snapshot3.rar

Sorry, no github yet. I'm using what scraps of spare time I find to work on the coding.

Can anyone tell me the 3 bytes the Arduinoboy sends the gameboy on a CC instruction via the MIDI interface? Otherwise I need to order an arduino and throw one together - could take a few weeks from China...

Thanks for the bug report! I'll look into the auto Format routine upon bad SRAM detection tonight. It is implemented but must be a loose branch in there somewhere.

Thank you both, completely get what you are saying, problem still being my XP and apparent non-compatibility with Github. I'll start editing code on my Win8 Laptop so you should see my code on Github soon enough. Until then, here is my latest iteration. Full SRAM port, Auto load, load and save both pattern and songs. www.bennvenn.com/GB303_Snapshot2.rar

There is still code in there I need to pull out and also code that needs updating.

Please test out the SRAM implementation and let me know if I have missed anything.

Next update will be MIDI control of the 3 pot controls.

How does the actual interface work on the PC side of things, does it only work on specific .git files?

OK, I'll read into it a little more. I might need to re-fork and apply my code changes again to satisfy the client.

How is it we can all work on the code at the same time and not step on each others toes? It seems the way Furrtek has coded the ROM a lot of modues are inter-connected and a change in one routine has consequences on others. We could leave the original code there and build around it but that would bloat the binary with unused routines and make it very confusing for new contributors.

I haven't worked in an environment where there are multiple contributors so this is new to me. I do comment almost every line or atleast function to make it easy for others to follow. In my mind, 2 people working blindly on one project will end in disaster. Ideas?

Yes, I installed the Git 'client' and from that I can make commits to my fork but it seems to want to deal only with .git files. There is probably a simple way to roll my working folder into a .git file, or maybe its more of a change log. I'm not sure. If someone has set up an environment on an XP machine and would like to give me a quick run down on the procedure I'll adopt it. Otherwise, the focus should be on the task at hand.

I was looking through the serial handler routine a few days ago and noticed no real frame reconstruction. As you may know, MIDI isn't one byte per instruction; it uses a series of bytes. Furrtek's code looks for the start byte (This is all from memory, could be a lil bit off) and then processes it if it satisfies its filter. This is likely why it takes a few consecutive midi strings to re-sync. Should be an easy fix - Had to implement something similar in my linker code.

I tried installing the WinXP Github program that was linked earlier but no good. The installer wants some service pack that I'm not running. I think I'll give up with the whole Github thing. It would be very usefull but isn't necessary.

We can discuss the code dev here?

I just had a poke around your fork. I can see how it can be a very helpful tool for a developer. It would be good to work with you on this, what are your goals on the midi expansion?

Furrtek, your code is a maze!

EEPROM read and writes fully replaced, I've been finding little snippets of EEPROM code in random places that needed re-directing. Formatting is complete as is Saving songs and patterns to SRAM. Still need to work on the loading side of things but most of the hard work there is done.

Took the code for a spin on my flash cart, first boot throws an error due to un-formatted SRAM (which is formatted for you) Second and subsequent boots are all good.

Once the load routines are patched for SRAM I'll work out his save structure and if it isn't too hard coded I'll look at expanding the data saved. Worst case, I'll use the same addressing for the upper 16kbytes as the lower and replace it with all the settings that weren't saved in the original.

We're getting places!

For those playing at home, get the latest build here www.bennvenn.com/GB303_Snapshot1.rar

Files modified in that build include: main.s;eeprom.asm;pots.asm;gfxutil.asm;save.asm;input_loadsave.asm and params.asm