I'll let DSC answer that one. I don't yet have an arduinoboy myself

If Github progress is that important I'll transfer it to my laptop and commit from there.

Update: No progress made last night, I had to catch up on a few orders and re-assemble my milling machine. I Should be good for a few hours tonight.

DSC has offered custom arduinoboy code to the project. His version incorporates external pots which can be used in place of the original hardware pots. Most people already have an arduinoboy so the mod should be relatively easy.

Im running XP, I have 8 on my laptop and Ubuntu on my desktop but most work gets done in XP. The shell script examples are based in a Linux environment. It doesn't really matter, code development is what is important. I'll upload each iteration to my site and if someone wants it, or wants to put it up on Github they are welcome to do so.

"The easiest way to use GitHub on Windows
is unfortunately not supported by your OS. Upgrade to Windows 7 or newer."

Never used Github and my VCS is usually replicate my working folder and begin an updated revision of my code, time stamping each folder as I go. Not optimal but works for me. I just read the Github help page and seems pretty easy though most commands are shell based. I suppose there are GUI apps to do it on a windows PC?

So yes, please share any info you think I'll need on the git VCS.

I have not uploaded it yet, I don't have a github logon. I will make one tonight and update my progress. I'd like to update once I'm happy with a code change though, not a half finished SRAM implementation. It would be useless for someone to try pick up from a semi-complete routine. If you prefer I can zip and email you the code as it is developed? Or just upload once I'm happy with an update. I'd do it now but the work gateway won't allow it.

Jazzmarazz wrote:

The analog pins on the arduino. Not the cart.

Ahh that makes more sense. Real-time CC control via the AVR?

Manukinuki: My understanding is there were less than 20 carts actually shipped, a large number of the owners wouldn't hold the hardware to re-flash these. This would be an awful lot of coding, in two forks of the code to be done by one person, for the sake of only a few. If we get more coders onboard then we will work though all the original hardware issues. For now, my intention is to produce a flash cart compatible version for the widest possible distribution. As the bugs are fixed it would be as simple as updating the asm files in the original source if you wish to re-flash your own original cart.

Biere: Waveform replacement will be something to address after the bugs are fixed.

I would love Furrtek to resume work on this or at the very least contact me. I understand priorities shift and he may no longer have the time or want to work on this but a snappy chat would speed up this whole process.

KeFF: Aira GB? If you want to submit some art I can roll it in.

Progress so far...

I've re-written the EEPROM handling routines to use SRAM instead. This is mostly complete, I need to re-write the 'format' routines to initialise a corrupt/fresh SRAM. Other than that, the SRAM port is complete. Already this will provide around a 20x increase in read speed and over 100x write speed.

I’ve bypassed the ADC (pot) input detection. I’ll have these routines instead use MIDI CC data passed into the GB. This also has the option to use multiple inputs to control all aspects of the waveform generation, not just 3.

Furrtek's code used 16kbytes of EEPROM. A standard cart is 32K. I’ll change the Save routines to use the full 32K and have it save every user input.

That is enough to keep me busy for now.

I didn't see a schematic/gerber/BOM on there. I could have missed it but reverse engineering something is very different to forking source.

That could only be an option if the general consensus was to allow reproductions of original hardware...

Check the R/C network on the reset line of the CPU. Sounds like the CPU isn't being reset properly at startup.

-Saving - the volume and speed of the SRAM on an EMS will allow the saving of ALL user defined parameters in the software instead of a select few to maintain speed.

-Sync – I’ve only had a quick look through the serial handler but there is room for improvement. In particular MIDI cc decoding / state machine. This should repair the midi sync function and allow a fix for slave mode in general.

-Pots –There is no real way to debug this issue at my end unless the decision to produce the hardware has been vetoed. Then there would be the decision to modify the original design to fix a few bugs, or try fix the problems in software to allow owners of the original hardware to update their ROM…

As for navigating, this is something we can all work on together. A simple flow chart of menu's would be easiest to implement.

Thanks, the more hardware we can test it on the better support we will grow. This includes all external peripherals that are typically interfaced to the GB, as well as common carts. I don't have a nanoloop usb-midi adapter but I believe it is well documented and having others offering to test and debug will make this all possible.

Looking at the source the issue with clock modding was due to the ADC and EEPROM being bit-banged via the data bus which is timing sensitive. Removing the EEPROM and ADC SPI removes this limitation.

I agree, Github is the best way to move ahead. My spare time is sporadic and having not just the source but development public will help other developers pick up when I am unavailable and also to suggest more efficient ways to tackle a problem. An outside perspective is always welcome with problem solving.

Thankyou for the offer SBSM. If you could post here all the issue's you've had with your original hardware, what you think could be improved upon and what you think should be removed that would be very helpful.

I’d like to have a stable flash cart compatible release available soon to make this ROM accessible to the widest possible audience

I'd like to start first by acknowledging all the hard work that has gone into this project and I do not want to ‘steal’ it or profit from it in any way. I have been approached by a number of people (I’m not sure if they are active members but reside in all corners of the globe) who have used my hardware to dump the ROM and start re-coding it. They wish to fix bugs and add features and no doubt cover their costs.

The recent announcement of the source being released on github gives the impression that the source is free to those that wish to download it (Creative Commons gives an exact report of what can and cannot be done with the code)

I have not ordered a GB-303 and by the look of the GB-303 thread it seems there will not be an opportunity to do so.

The source is beautifully crafted, well commented, logical and very modular. For those with experience in GB Asm will appreciate the effort that has gone into this code and at the same time see the potential of what Furrtek has apparently abandoned.

My intentions are as follows:

Modify the code so it can run on a standard flash cart (EMS/BennVenn) and utilise the onboard Save RAM instead of the GB-303’s EEPROM. This will allow correct operation of clock modded DMG’s as well as future updates.

Fix the save issues that have been raised on the GB-303 thread.

With no intention on reproducing or ‘cloning’ the hardware, the ADC and pots will not be used. Instead greater MIDI support will be added in its place allowing slave control under arduinoboy etc…A MIDI controlled percussion based bass synth.

All source modification/updates will be posted to github or the like. Everything will be fully transparent to everyone and you are all welcome to submit requests & suggestions to be implemented as the code is continuously improved. Who knows how this source will evolve.

Understand that the source code has been released. It is just a matter of time before someone tries to profit and release clones. As much as you disagree with it, it is going to happen. I would prefer the ROM be available to everyone, without bugs and with all the features that you request, FREE. It will hopefully remove the incentive to clone and instead help develop an amazing tool for the chip music community.

Likewise, if you believe external pots are essential then make this clear and I’m sure someone will take on the task.

This is not a thread for arguments or slander. Please be constructive in your comments. If you feel this whole thread is in bad taste that is your opinion. The source has been posted by the author into the public domain. The terms and conditions of github are clear and a programmer as experienced as Furrtek will be fully aware of them.

I hope this will be the start of something truly great!

I think the concept is fantastic, an aesthetic PCB using original CPU+PPU with great attention to detail on the board itself. If the HDMI up-scaling is done correctly it means it will once again have the same 'warmth' that my original does on an 80's CRT which will add to the immersability into the game I'm playing - just as I did when I was 7.

The enclosure conforms to today's expectations i.e. Bose, Foxtel, X-box etc... I feel the PCB should really be in the spotlight as so much effort has gone into it's development yet remains hidden away in what IMO is unbecoming in the context of 'Retro', 'Vintage' and the NES I grew up with.

Art is art and while it should promote debate and discussion I don't think it should be the tool used to manipulate a legitimate thread into a personal pie throwing competition. Mmmmmm pie.....

Yes, that is v1.0

There were a few issues in that firmware release, the first was the reply to the SCSI scan inquiry. I respond with a 32byte string which satisifes Windows but gave linux a hard time as it was expecting 36 bytes. This is purely a device serial number so V1.01 fixed that by adding a few bytes.

Next is the 570mb storage size. This came about because the BennBenn cart > 8mbytes and fat12 can only index a limited drive size. Technically, 570mb in fat12 can not work with a standard cluster size. I increased the cluster size which made all the numbers come together to form 570mb which by the spec was legit and windows had no problem with it. Linux did. I've pushed the drive size back down to the original Fat12 spec and now linux is happy.

The input/output error was due to Linux trying to address a cluster which was simply not there. It couldn't comprehend the larger than usual cluster size (decided to ignore the byte in the MBR) so assumed a standard cluster size which exceeded the 12bit address FAT12 uses.

The latest version, v1.02 includes all these fixes but still doesn't satisfy Win8.1's implementation of Fat12. I've been told by a few customers that if they use a 3rd party app that doesn't call on the OS's Fat12 drivers there is no problem. An example was using GBcameraDump program to read/write the .sav file.

If you PM me your email address I'll forward you the latest firmware now