Close
0%
0%

Game Boy Cartridge plus Programmer

not the first cartridge on this platform

Similar projects worth following
Finally! After all these years I've made some progress and finished one of 5 designs I had in mind :D This might be working together with my ESP boards at some point, but first things first.

This one fits the DIP and PLCC sized ATMEL AT28C256 EEPROMs with the audio line / 5th channel of the Game Boy connected to the Programming pin.

I'll try to talk with the game boy over the Port on the side, basically start from here: https://github.com/enacuavlab/PPRZonGB

Boards are ordered after midnight! Not the brightest IDEA! Board is 0.8mm, hopefully will fit in a cartridge without cutting the cartridge.

Cartridge costs so far:

1,5 EUR for 1 out of 10 pack AT28C256

1,3 EUR for 1 out of 10 pack dirtypcbs.com boards

Plus some cents filament costs and a reasonable part of the price of the 3D printer I technically don't own, it's just here for the blog commenters.

I need Ideas for a cartridge header / socket. Taking apart classic consoles is a bit on the "don't want to do" side.


Library contains footprints for ICs and Edge connector.


OSHpark links (some coming soon)

PCB OSHPARKdirtypcbs.com
Cartridge with EEPROM and 32kB / AT28C256 -to be tested
Cartridge programmer based on AT90USB1286/1287 as soon as REV1 is done-
Bivert module (order in 0.8mm for thinnest design) Order from OSH Park to be panalized
GB link port WeMos D1 Mini Adapter as soon as port fitting is veryfied-

logo.gb

Hackaday Logo Background tiles

gb - 32.00 kB - 04/05/2017 at 21:58

Download

logo.c

Hackaday Logo Background tiles c code

C Source File - 12.69 kB - 04/05/2017 at 21:58

Download

pulseviewAPP.zip

Script Hack for pulseview, load firmware onto cypress before starting pulseview. appified.

Zip Archive - 13.55 kB - 03/06/2017 at 01:34

Download

lbr - 20.17 kB - 10/11/2016 at 00:31

Download

brd - 114.21 kB - 10/11/2016 at 00:20

Download

sch - 308.89 kB - 10/11/2016 at 00:20

See BOM Download

at28C256.pdf

Datasheet for rom chip

Adobe Portable Document Format - 659.59 kB - 10/10/2016 at 11:19

Preview Download

View all 7 files

  • Hackaday Prize 2017

    davedarko4 days ago 0 comments

    #WIFI Game Boy Cartridge - this is my entry for the hackaday.io prize. It is all based on the efforts I've made in this project. But everything I've done here was also in preparation for having an Internet connected Game Boy. Once the IoT segment of the prize is opened, I will submit the project to that as well.

    There is currently a funding round, where every like get's you a dollar - you probably have already heard about that ;) It would be great if you could head over there and add a like to the project - feel free to remove the like once the funding is over and maybe give it back once everything works :D that would be pretty motivational.

    Anyway, I wish all the contestants the best of luck!

  • Proud moment :)

    davedarko04/16/2017 at 12:36 3 comments

    finally! So I took the cartridge code and just placed it as an array on the at90usb1287. Teh, after writing, then reading to the eeprom I got it to work :)

  • writing is off after some bytes

    davedarko04/08/2017 at 21:58 0 comments

    So the Nintendo Logo is on the cartridge - I can see that because it scrolls down, but after the "bading" it stays black. A quick check comparing the original to the dump shows this:

  • hackaday logo ROM

    davedarko04/05/2017 at 22:03 0 comments

    http://www.chrisantonellis.com/gameboy/gbtdg/

    with the help of this little website I was able to create a little Game Boy ROM, that displays the hackaday jolly wrencher. You can find the code and rom in the file sections. I tried to upload the files and write it to the cartridge, but had no success so far. Not sure what's going on, but I'm too tired to try to find out.


    You only need to add the following code to the generated C file, depending on that your file was called something like HaDlogo.bmp - otherwise you have to rename stuff.

    #include <gb/gb.h>
    #include <stdio.h>
    
    void main()
    {
      set_bkg_data(0,255,HaDlogo_tile_data);
      VBK_REG = 1;
      set_bkg_tiles(0,0,20,18,HaDlogo_map_data);
      SHOW_BKG;
      DISPLAY_ON;
    }


  • Another idea

    davedarko03/04/2017 at 11:47 0 comments

    I will not persue this :D but having a lot of game boy pockets coming in, that have a broken display... I wonder if there could be a feasible replacement like an fpga / arm controlled display that grabs the input like the fpga vga adapter does. There was a blog post once and it was also integrated into the huge ben heck game boy. Could be interesting to try for someone whos into fpgas and gameboys.

  • Bivert Module

    davedarko02/28/2017 at 23:55 1 comment

    The bivert module I bought from handheldlengend.com has some design flaws, the unused inverters aren't grounded and there is no decoupling capacitor. So for future mods I will use one of these boards that feature a dual inverter named SN74LVC2G04. It's also smaller and potentially easier to install in the Game Boy Pocket.

    UPDATE: there is a smaller version for Game Boy Pockets to buy already at http://store.kitsch-bent.com/product/gb-pocket-lcd-inverter

    UPDATE2: a redesign with an dual XOR chip might be interesting, to revert the bivert. Sounds like a dance move :D


    Order from OSH Park

  • this is so pleasing!

    davedarko02/28/2017 at 21:14 0 comments

    I've "biverted" and added a backlight to the not so cheap Game Boy Pocket I own not so long :) This means testing homebrew cartridges with style! This is the yellow backlight of www.handheldlegends.com - the hex inverter module was quite the hassle with a Game Boy pocket. I should have designed it myself, but also wanted to support the website.

  • Just throwing an idea out

    davedarko02/27/2017 at 14:24 1 comment

    I think it might be possible to have the ESP8266 inside a cartridge, with an Atmega16A faking to be a dual port (SPI + parallel BUS) SRAM and the ESP8266 faking to be a memory bank controller. This way I could grab data from the web, put it into "RAM" and read it out with the game boy. This way I could also get rid of the dongle ESP idea. Some protocols would have to be written and thought out. Feeling very yoda-ish today. Gotta eat sth.


    Research update

  • multi bank roms are working too

    davedarko02/26/2017 at 20:07 0 comments

    I played around with the code and a Game Boy Camera module, but it all was very weird. I was able to read the header once, and only after I unsucessfully read parts of RAM I was able to read the header again. I'm testing cartridges with RAM modules and different memory bank controllers. I should write down everything I learned about the Game Boy at some point.


    Game Title: METROID2

    Cartridge Type: 3 - MBC1+RAM+BATTERY

    ROM Size: 3 - 256KByte (16 banks)

    RAM Size: 2 - 8 Kbytes (1 Bank)


  • woot :3 - Tetris is mine!!!!

    davedarko02/25/2017 at 00:10 0 comments

    [UPDATE] Ha! Nevermind, they are the same, Hex Editor told me that I was missing a "00" - now everything "checks out". Checksum pun.


    I've made it! I'm far from sharing anything, but I finally managed to read AND store a full game! Everything is based on the speedtest for the serial interface over USB and another file storing sample for C. I had to fiddle around with buffer sizes and remove a string in a hexfile editor, but it counts, the came works :) I get 4 times the same checksum for 4 cartridges, but somehow I get a different checksum for a downloaded ROM, and the files look very different.

    - Anyways, probably best to go to bed now :)

View all 25 project logs

Enjoy this project?

Share

Discussions

Adam Vadala-Roth wrote 04/09/2017 at 20:57 point

kickass work!

  Are you sure? yes | no

davedarko wrote 04/10/2017 at 06:28 point

Thank you :)

  Are you sure? yes | no

Jeremy g. wrote 11/27/2016 at 17:21 point

you can actually use PCI headers as they match up pretty well with the Gameboy cart headers.. this almost makes me want to complete my Gameboy cartridge project..

  Are you sure? yes | no

davedarko wrote 11/27/2016 at 18:20 point

:) thanks for the advice, for now I have the super game boy socket to work with.

  Are you sure? yes | no

Jeremy g. wrote 11/29/2016 at 17:50 point

nice! I'll keep an eye on this project. I'd like to see where it goes. I have to get motivated again to re start the project.. 

also look for gba replacement headers their surface mount and only need a small tab busted out and they work just fine. cost about 3$ if I remember right.

Good luck!

  Are you sure? yes | no

Yvan256 wrote 11/18/2016 at 21:14 point

Maybe contact the people on http://chipmusic.org/forums/topic/11867/gameboy-programmer-group-printing/page/2/ to learn where they got their connectors?

  Are you sure? yes | no

jaromir.sukuba wrote 10/11/2016 at 12:48 point

Never ever order boards after the midnight. No, it's not quote from Mr. Wing, but actual experience. Leave it for morning and you'll spot error or two. Granted.

  Are you sure? yes | no

davedarko wrote 10/11/2016 at 14:53 point

That's actually my rule, too :) boards are like gremlins..

  Are you sure? yes | no

jaromir.sukuba wrote 10/11/2016 at 16:40 point

Oh here we go. Sometimes I find fascinating how people around the world independently get to the same knowledge, as result of the same conditions :-)

  Are you sure? yes | no

Stuart Longland wrote 10/15/2016 at 03:10 point

But it's always midnight *somewhere*… ;-)

  Are you sure? yes | no

davedarko wrote 10/15/2016 at 05:48 point

This is not a gremlins plothole recovery project :) it's about the position relative to the gremlin because sience btw.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates