tag:blogger.com,1999:blog-77556416673892834532024-03-14T03:41:41.025-04:00DIY: Gameboy Cartridge ProgrammingVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-7755641667389283453.post-38518282418545754382014-09-30T18:55:00.000-04:002014-09-30T20:08:58.438-04:00This blog is coming back to life! (maybe)Hello to anyone who might read this. I happened to think of this blog today as I was filling out an "application" for a research position (clearly written by a psychopath), and noticed on my blog stats that this actually gets some traffic. Also it looks like all my links are broken, which is what I actually wanted to prevent from happening. I believe I still have the HDD with all of these apps and tools on it, so I will try to fire it up this weekend to re-upload this stuff.<br />
<br />
I'd really like to get back into blogging -- it may not be through this blog but I did enjoy doing GB/A development while I did it. Maybe I'll get back into that, if I can find the time to make a cartridge connector breakout board.<br />
<br />
Since this blog I've purchased a domain, over at <a href="http://embedded-tech.com/" rel="nofollow">embedded-tech.com</a>. I may move all this content over there (editing out the useless content, of course) and host ALL the content on my own server, that way MediaFire won't give me bullshit like removing my files:<br />
<blockquote class="tr_bq">
<b>This is usually caused because the file is no longer stored on MediaFire. This occurs when the file is removed by the originating user or MediaFire.</b></blockquote>
<br />
So, that means the idiots over at MediaFire just <i>decided</i> to remove my files? What the hell?<br />
<br />
<br />
Anyways, since I've had a ton more experience with both programming and electronics (and neuroscience, but that's rather unrelated) part of me wants to give another shot at fabricating my own flash cart -- possibly even for SNES, since my SNES is still in pristine condition and I'd love to have another copy of Super Metroid to mod to my heart's content.<br />
<br />
To sum all this up, I will likely be migrating this blog (and updating the Devrs link!) to my own personal website and server, that way I can keep all of the files locally and won't have to trust the clearly unreliable folks over at MediaFire to keep it.<br />
<br />
I'd love to hear from anyone who reads this. Thoughts? Complaints? Insults? Perhaps you're the person who wrote the application I referred to above? At any rate I'd enjoy reading comments.Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com0tag:blogger.com,1999:blog-7755641667389283453.post-54764610750378665682011-05-30T15:52:00.000-04:002011-05-30T15:52:36.280-04:00A long overdue postWow, this month went fast! I was extremely busy getting everything sorted out for college and finishing up my classes, but now I have the next 6 months free.<br />
<br />
Firstly, I managed to get my hands on the Gameboy image quantizer, shown <a href="http://www.devrs.com/gb/hmgd/supp.html">here</a>. I got a copy from someone who managed to download it in the 6 or so weeks it was available at the link on that page. You can find a working download link <a href="http://www.mediafire.com/?6r949mbgh9pmqsy">here</a>.<br />
<br />
I decided to take apart my Propeller-powered ROM reader, and rebuild it with an ARM7 cortex-m3, which I'm hoping will make it cost less in the end and give me a chance to brush up on C.<br />
<br />
Also, I WILL be making a Gameboy programming tutorial over the next 3 months, which will include code snippets for the various parts of the Gameboy (for example, the LCD initialization code, reading buttons, etc etc).<br />
<br />
On a final note, I would like to get an idea of how many people would buy a USB Gameboy cartridge reader/writer for around $30. Just leave a comment or email me -- that way, I can get an idea of if this is worth taking my time to make into a product.<br />
<br />
<br />
--VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com21tag:blogger.com,1999:blog-7755641667389283453.post-40394791288548252712011-04-16T13:45:00.002-04:002011-04-16T14:08:50.270-04:00My ROM reader is progressing!Ok, I have made a vow to post to this blog at least once every month. Now that I'm not as busy with school (I have the week of the 18th off for spring break) I will be churning through my projects, starting with my Gameboy projects.<br />
<br />
Now then, for the interesting stuff.<br />
As I mentioned in my previous post, I rebuilt my ROM reader with a much better and more recent propeller module that has an on-board FTDI chip for USB communication. Here's some pictures of the ROM reader, revision 3.0:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvr3NgE_tnFJQwoPXEpWKGBtKS25gl6EwaDGoRkA9efka_YNPjmr_7anMS3NvekkO7LhyphenhyphenEWiS8s0JIuMT5vBfHfemFQMIpdIDTmpiwWRl2iQanOY3KOAsYaUNWrDCcMkYai0hqTtiLILc/s1600/P5160005.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvr3NgE_tnFJQwoPXEpWKGBtKS25gl6EwaDGoRkA9efka_YNPjmr_7anMS3NvekkO7LhyphenhyphenEWiS8s0JIuMT5vBfHfemFQMIpdIDTmpiwWRl2iQanOY3KOAsYaUNWrDCcMkYai0hqTtiLILc/s320/P5160005.JPG" width="320" /></a></div>Above is a picture of the ROM reader, with its 30 or 40 jumper wires.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjLUKOtdURfXw9Lxgev9xq-_mujJGG7JXYbyiQLPcHyGh4vdp-Q4SwpCbRxQO_KiS3WKEMqS2_L0bQ9M9lRFPq_LdvJVM9WNaHXupEsxwssMZ9sUZjaPqTdCcPaXuuWzL5ZIwmwfwa8o8/s1600/P5160002.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjLUKOtdURfXw9Lxgev9xq-_mujJGG7JXYbyiQLPcHyGh4vdp-Q4SwpCbRxQO_KiS3WKEMqS2_L0bQ9M9lRFPq_LdvJVM9WNaHXupEsxwssMZ9sUZjaPqTdCcPaXuuWzL5ZIwmwfwa8o8/s320/P5160002.JPG" width="320" /></a></div>A close up picture of the module I'm using. I actually got it for free at a Propeller Expo. :D<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfGQOcOfznskbuaW5hzoLwJs-r0XvXRR_P2ZjYwcye6E4NRPhLAniDkPrMGPqN0yk2H-G487Auj9URjZm43nC2nb3tKr9uRDPJl73ZRQrv4ffqZPIWsN5dm5Tzi6QBCJiyWqIQAuQfvYA/s1600/P5160003.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfGQOcOfznskbuaW5hzoLwJs-r0XvXRR_P2ZjYwcye6E4NRPhLAniDkPrMGPqN0yk2H-G487Auj9URjZm43nC2nb3tKr9uRDPJl73ZRQrv4ffqZPIWsN5dm5Tzi6QBCJiyWqIQAuQfvYA/s320/P5160003.JPG" width="320" /></a></div>Here's a close up of the ROM chip. It's a 64Kbyte UV EPROM I got two of them for $3 or so at a big surplus warehouse.<br />
<br />
My goal is to get a read speed (including sending the data to the computer) of under 10 seconds for these 64Kbyte chips. Right now I have gotten it down to about 20 seconds by removing unnecessary dummy objects and by removing the transfer of, essentially, another byte for each byte I'm reading. Today I will also look around for some faster communication methods (there's a rather promising looking 5Mbit/sec method that I am really eager to test out) and maybe make another post if I make leaps in technology that could impact the world's perception of UV EPROMs and their viability as storage devices.<br />
<br />
Oh, and on a side note -- I found out that there are 3 others who are building GB cartridge readers/writers. Two of them use the arduino, and one of them is basically the exact same one I built last year, except they stole the plans from the two Polish students who copyrighted it. One of the arduino-based flasher is featured on hackaday, and can be found at <a href="http://www.insidegadgets.com/">Inside Gadgets</a>.<br />
<br />
--VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com1tag:blogger.com,1999:blog-7755641667389283453.post-73201566954148057172011-03-13T13:11:00.000-04:002011-03-17T09:04:09.386-04:00My [not quite finished...] cart reader/writerI have been working on a ROM reader/writer for a while, originally as the basis for a universal programmer, but that can wait -- I have decided to implement it as a GameBoy (and possibly other platforms!!) cartridge reader/writer. So far all I have done is created a huge mess of wires on a breadboard, and tried reading a 512k UV EPROM.<br />
<br />
So, here's the amazing pictures of this groundbreaking technology:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdmx68TyCjthQapvNouG-dBVhFeeVlmxH2u8LM_wgJmmC_RsZ4ui5XpI9ZnA29snKb1zKknejCV3C5UYxavqZp0Osin2Mi5gFoxt1ZkfDopSJOI3yq7leclP3uBbF3Ue7PkQBeDUpsBZ0/s1600/rom+reader+3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdmx68TyCjthQapvNouG-dBVhFeeVlmxH2u8LM_wgJmmC_RsZ4ui5XpI9ZnA29snKb1zKknejCV3C5UYxavqZp0Osin2Mi5gFoxt1ZkfDopSJOI3yq7leclP3uBbF3Ue7PkQBeDUpsBZ0/s320/rom+reader+3.JPG" width="320" /></a></div>The above photo shows the microcontroller I'm using, which is actually in a handy little module [which, by the way, is a DIY module that I paid next to nothing for] and it shows the jumble of all the jumper wires I own, and the 512k UV EPROM, which may or may not have been damaged by the camera flash...<br />
<br />
<br />
As you can also see somewhat on the right, there's a RCA connector for a TV. Since the microcontroller that I used (the Parallax Propeller, if you didn't recognize it) can do 1-pin video, I displayed all the ROM data on the TV.<br />
<br />
Here's some more pictures:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIrrapiVlf7GyN3V1pwzJZL32BpiiEQif2AudR7kqUihatZEi5ns4i3ZG6fc0qLx5sysVsUFMrqzL3jcWWpfw0b8Lj0UotGgPfDKLNKsERli3hip1GguIjwzigPE0GGQ66tDDr9yFCHSg/s1600/rom+reader+1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIrrapiVlf7GyN3V1pwzJZL32BpiiEQif2AudR7kqUihatZEi5ns4i3ZG6fc0qLx5sysVsUFMrqzL3jcWWpfw0b8Lj0UotGgPfDKLNKsERli3hip1GguIjwzigPE0GGQ66tDDr9yFCHSg/s320/rom+reader+1.JPG" width="320" /></a></div>On this one, you can even see my little 2.1mm power connector to breadboard adapter, which has come in handy for a BUNCH of projects. The huge mess of wires is also a bit more noticeable here too.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJ_XrYSxU_IqD9YMUHTgDmHqI_Q6lAL1HalyewGn4sEG_sbterfU56IaJi9KsvjzlKl4qJpP-1ZgGGTzYQK8QSXXM87_rqDIkVmg7FouN5cjYRA2-yRGSXY1qXvfj-1O0jf96iQsgxP8/s1600/rom+reader+2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJ_XrYSxU_IqD9YMUHTgDmHqI_Q6lAL1HalyewGn4sEG_sbterfU56IaJi9KsvjzlKl4qJpP-1ZgGGTzYQK8QSXXM87_rqDIkVmg7FouN5cjYRA2-yRGSXY1qXvfj-1O0jf96iQsgxP8/s320/rom+reader+2.JPG" width="320" /></a></div>This is just the same thing, different angle. Can you spot the Kid Icarus Mask ROM chip?<br />
<br />
<br />
Now, for a summary of the code...<br />
<br />
First, since this is the Propeller, you need to define the clock speed at 80MHz (yeah -- that fast, not even overclocked) and define the Output Enable (OE on most flash/ROM chip pinouts) and Chip Select (sometimes called chip enable; labeled as CS or CE). I put them as IO pins 27 and 28, simply because it made everything much easier.<br />
<br />
You also need to define the variable for the address you'll be incrementing. I called mine "addr" for simplicity. Also define another variable, which will be the actual data held in the addresses -- "data" seems to be a fitting name...<br />
Since this is the Propeller, you also need to define what objects (if any) you will be using for your program. The demo program I have uses the 1-pin TV text object, which was a lifesaver, since I wouldn't have had enough jumper wires for normal 3 pin TV.<br />
Now for the actual process of reading (I havent tried writing chips yet, since I only have one flash chip, which is currently in my cartridge). What you do is define "addr" as: %0_0_0_0_0_0_0.... Basically, you need to have as many zeros as there are address lines on the ROM chip. Once I configure it for GB carts, it will be 16 zeros. Then, you will need to set OE and CS to outputs, set the pins connected to the address lines of the ROM to outputs, and set the data lines to input. To read, you set OE and CS to low, write "addr" to the address pins, wait a few moments (moments are of course, microseconds) and then read the data pins. Wait a few more microseconds and then repeat as many times as there are addresses in the ROM chip.<br />
<br />
<br />
That's pretty much all there is to it! As you can see, its <i>super</i> simple...<br />
<br />
<br />
I will be working on reconstructing this on my breadboard today and tomorrow. I'm hoping to get some more pictures and maybe even a video of it working.<br />
<br />
Finally, I am planning on selling this project once it's completed, for about $20 to $25, fully assembled and ready-to-go, as long as I can find an alternative connector...<br />
<br />
That's all for now... If any of you know of a source for an equivalent to the GameBoy cartridge connector, PLEASE leave a comment with a link!<br />
<br />
<br />
--VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com1tag:blogger.com,1999:blog-7755641667389283453.post-27893323631012895542011-02-24T09:55:00.000-05:002011-02-24T09:55:41.462-05:00An important update, including a link to download GB Assembler Studio.Wow -- This blog is over one year old! It's been a while since I last made a post...<br />
<br />
The main reason I am posting this is because there are some issues with the Gameboy Assembler studio download in the previous post -- I forgot that the website with that file doesn't work/exist anymore.<br />
<br />
I just found out that I can upload the zip directly to google docs! Here's the download link:<br />
<a href="https://docs.google.com/leaf?id=0B9ioaCT9nnhLMDFhZTMwNTctOTFlOS00NmZhLThjNzEtMWNkOTlkNzQyNjBm&sort=name&layout=list&num=50">Download GB Assembler Studio.</a><br />
<div><br />
</div><div>A final thing I'd like to mention is that I've added a "contact me" page. You can find it just above the blog title, in depressingly small text. If you can figure out my text spamblocker of encrypted awesomeness, then you can email me; I will usually get back to you within 24 hours (as long as I don't disable the google mail checker extension in chrome...)</div><div><br />
</div><div>Well, everything went better than expected, and I am happy that there is a way around having to upload files to some virus-teeming site like megaupload or some torrent site...</div><div><br />
</div><div>Tell me if the download link works.</div>Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com5tag:blogger.com,1999:blog-7755641667389283453.post-12534820237675866202010-09-16T11:19:00.001-04:002010-09-16T11:33:33.810-04:00Yet Another Update PostI finally decided to get this blog on Devrs.com, since it seems to have enough info. By the looks of it, there have been a lot more visitors since.<br />
<br />
I keep putting off posting a tutorial, because of schoolwork, testing, and planning for college I don't have much time to spare. However, I am definitely going to start posting ASM tutorials within the next two weeks.<br />
<br />
<br />
EDIT: I found that the Gameboy Assembler Studio application that I use to program the gameboy is no longer up on the web. I will try to get it uploaded somewhere useful and provide a working link for it when I have the time. It's a really great GUI that was designed for windows 95, but it still works great for me on Windows 7.<br />
<br />
<br />
To end this short update, I have a question for you who visit this site. Should I create development blogs for other classic systems, such as the NES/SNES and maybe even the Gameboy Advance? I have some information on those systems, as well as great tools I have downloaded throughout my journey of the internet.<br />
What do you think?<br />
<br />
<br />
<br />
Another post is sure to come soon, plus an article from another GameBoy developer from YouTube.<br />
<br />
--VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com9tag:blogger.com,1999:blog-7755641667389283453.post-7730472161995245752010-06-24T10:14:00.000-04:002010-06-24T10:14:21.654-04:00Assembly School LinkI found the ever-elusive ASM School website, which is a pretty good Gameboy Assembly tutorial:<br />
<a href="http://gameboy.mongenel.com/asmschool.html">http://gameboy.mongenel.com/asmschool.html</a><br />
<br />
I have another big project in the works right now, so once I finish that I'll write up a tutorial or two on my assembly adventures.Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com2tag:blogger.com,1999:blog-7755641667389283453.post-65886490819370175162010-06-18T11:41:00.000-04:002010-06-18T11:41:51.090-04:00UpdateNow that school is finally over and the ACT's are in the past, I can get into the real programming of the Gameboy, which is what this blog is all about.<br />
<br />
I found this really awesome program for the computer that is probably the only windows application (not command line crap) for creating gameboy games. It's called Gameboy Assembler Studio, and it can be downloaded right <a href="http://web.telia.com/~u31802901/nicbit/gameboy.htm">here</a>. Since that site may go down in time, I'll get permission from the site admin to post a zip file of that program on this blog if that ever happens.<br />
<br />
Since I have never coded anything in assembly before, I will have to browse around for some good tutorials and post a few links of good tutorials in a few days.<br />
<br />
Also, I will be making my own gameboy cartridge reader/writer from scratch, and I'll probably sell it on my main website for $20 to $30 if I can find a low-priced cartridge connector.Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com2tag:blogger.com,1999:blog-7755641667389283453.post-37264184702848225512010-01-25T11:16:00.000-05:002010-01-25T11:16:06.766-05:00<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><br />
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9600746-3");
pageTracker._trackPageview();
} catch(err) {}</script>Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com1tag:blogger.com,1999:blog-7755641667389283453.post-13085476294946728542010-01-21T12:45:00.000-05:002010-01-25T07:57:46.372-05:00UpdateI haven't posted in a while because I have been so busy working on school and this project. However, I finally got it to work! I got a null-modem adapter from amazon.com and hooked it up to my ancient IBM laptop.<br />
<br />
I also got the reprogrammable gameboy cartridge done. I will post the pictures and info on it soon. If you are reading this and want to make a reprogrammable gameboy flash cartridge, then do what I did ONLY if you are quite confident in your soldering skills, you have a 32-pin DIP flash chip (and found a load of guides for using PLCC's or SOIC's and don't know what do you with your through-hole chip) and you have 30+AWG wire or copper strands with a thin laminate coating. :) Otherwise, you will be in for a lot of pain and misery.<br />
<br />
For those of you that are true DIY drones such as myself, I can give you a few pointers here and now on how to make a DIY gameboy flash cartridge.<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">- The first thing for you to do is to print out the image below. This is a schematic of a Gameboy cartridge with the standard MBC1 chip.<br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKdTlYlmairuISF3nMIICxxB0q95Y_sqgZqJUgyUG4DlmObl_kFVI539xGlCw_gi2FS7bBrWPxXpuMaORKu3HZ8N7sRGh3iTO2qzptvVJpf0MQvVN3z4MRPFvuWpqJJazgihSqoFtoJA/s1600-h/gameboy+cart.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKdTlYlmairuISF3nMIICxxB0q95Y_sqgZqJUgyUG4DlmObl_kFVI539xGlCw_gi2FS7bBrWPxXpuMaORKu3HZ8N7sRGh3iTO2qzptvVJpf0MQvVN3z4MRPFvuWpqJJazgihSqoFtoJA/s640/gameboy+cart.gif" /></a><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Now you should print out the one page of your datasheet that has the pinouts of both the DIP chip <strong>AND </strong>the PLCC chip.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Next, print out the image below as well.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlMHuwO-EqXSbbX01XYETPbOsT_gC_ynjBCWp6xWMe5kXV8-YrEJZYh_elVuop77XM3rvcYFQMnPwNm1g4YtajJgZ5j4eBRWmMsuB75flUS2dYqFwER7fr0LdQTvv02TQg9XKE9HrxB2s/s1600-h/c3cart.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlMHuwO-EqXSbbX01XYETPbOsT_gC_ynjBCWp6xWMe5kXV8-YrEJZYh_elVuop77XM3rvcYFQMnPwNm1g4YtajJgZ5j4eBRWmMsuB75flUS2dYqFwER7fr0LdQTvv02TQg9XKE9HrxB2s/s640/c3cart.gif" /></a><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Now, if you are using a standard dip chip for this, then you probably wouldn't have to print those out if you don't want to, but I suggest that you always have a hard copy of these old development diagrams, because the sites are ticking down to their expiration date. In fact, I am fairly sure that one really excellent site went down just last night. I don't know if it will be put back up, but it is eye-opening.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- If you are using the PLCC chip, then just print out that second diagram and follow that--it will be a LOT easier than what the DIP chip folks will have to do...<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- For you who don't want to get a PLCC chip and want to have a DIP socketable flash cart: Now that you have your datasheet and those two diagrams, look at the pin labels of the DIP chip, and compare them to the schematic. They should be identical, except for a few pins.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- What I did was I used tiny little wires and soldered one to each individual SOIC pad. This entire project, including making a board for the DIP chip to go on, took me around 5 hours. However, it should only take you 3-4 hours as you aren't documenting it and experimenting along the way. :)<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- (so much for a few short tips...)<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- For my wire, I actually got some stuff off of an old CRT monitor I disassembled, and it happened to be the magnetic coil wire. This meant that it had a thin coating of some plastic-ey material, but only the very ends of the wire were bare.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- First you need to remove the original ROM chip in the cartridge. This can be done by either x-acto-kniving it out or by using a desoldering braid and a screwdriver to pry it out. It is essential that you don't remove any of the pads that the chip is on!!<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- What I did was I put solder on each of the SOIC pads; as depicted below.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- This is one of the numerous tricky parts: with your spool of wire, soldering iron with a very fine tip, and the victim-to-be cartridge, heat up the solder you just placed on the pad, and insert the wire at a 30 degree angle from the opposite side. This way, the wire is certain to be electrically connected to the pad.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCcxPydn_zMwVQu48WDUdzPgEw0afn0gQtSiHrGaEt0afuy2OIjdtGfvAAJRdzfZ5Oqt1tI817_RviuUujfxyHFQ8mo-Rce19cHvKuIpWT-BZdnSV2Ypp3Noi-vyuuFry2J2tX7zqW9bQ/s1600-h/Solder+on+pads.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCcxPydn_zMwVQu48WDUdzPgEw0afn0gQtSiHrGaEt0afuy2OIjdtGfvAAJRdzfZ5Oqt1tI817_RviuUujfxyHFQ8mo-Rce19cHvKuIpWT-BZdnSV2Ypp3Noi-vyuuFry2J2tX7zqW9bQ/s640/Solder+on+pads.JPG" /></a><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Don't leave your soldering iron there too long--you might end up moving it and create a blob between two pads, and end up using your solder sucker to get it off.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Once you got it soldered on there, give the wire a small tug, wiggle it around a bit, and make sure it won't fall out the moment you have it all together. If it passes this test, then cut the wire off of the main spool. Be sure to leave LOTS of slack on your wire--around 2-3 inches in length for each wire will be good.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Repeat this.... 32 times!!! Mwahahaa.... But seriously--there are 32 pads you need to solder dinky wires to. It is a pain, but it has fairly good results.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- What I did when I made mine was I had all the wires leading to the left, as shown below.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1UNyHH2G1TkU7A_MUfqYFhX82AVQ21ZOZ-zDJD-Kd8hZ5KgDKu4rwSvOCYrVnru2NdRVWMiyafyEOjNaXDbqL6cX9maC2cPtf0YHy3TOtUdALkrBNS_qOd4Mv9onE1RUmCiv3hqzg0F4/s1600-h/1-16+wires.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1UNyHH2G1TkU7A_MUfqYFhX82AVQ21ZOZ-zDJD-Kd8hZ5KgDKu4rwSvOCYrVnru2NdRVWMiyafyEOjNaXDbqL6cX9maC2cPtf0YHy3TOtUdALkrBNS_qOd4Mv9onE1RUmCiv3hqzg0F4/s640/1-16+wires.JPG" /></a><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Then I just repeated the process of putting solder on the pads, heating up the solder, inserting the wire and cutting the wire for the other side.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- Be sure to have the wires for pads 17 through 32 leading off to the left as well. This will make it much easier for you.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- With all your wires leading off to the left side of the cart, now would be a good time to test for continuity, and to put down tape over the battery and/or other chips if you want.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- For this next part, you will need some tweezers or micro pliers. What you are trying to do is to get it so your cartridge looks like this:<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWSo1lVtdz2wjLAcSqSsXKG1HV4ukz_a-c1fcGZbJc5GNZtOxLucfz6LRvTNnBGisJM0zV7ItVR72_XKHw4R22mYz9wMA8FpE94rH1eXkHgJveVPUz0is3aJGTbpt2ez1_BNOgsCHP_I/s1600-h/bend+the+wires!.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWSo1lVtdz2wjLAcSqSsXKG1HV4ukz_a-c1fcGZbJc5GNZtOxLucfz6LRvTNnBGisJM0zV7ItVR72_XKHw4R22mYz9wMA8FpE94rH1eXkHgJveVPUz0is3aJGTbpt2ez1_BNOgsCHP_I/s640/bend+the+wires!.JPG" /></a><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- To do this, simply use the tweezers to bend the tiny wires so they go vertical. Try to get the bend as close to the solder pad as possible without accidentally breaking off the wire. I had to re-solder two of my wires when I did this.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- You are almost there! All that's left to do is to decide how you want to go about positioning the flash chip. But while you think about that, you need to hack up the cartridge case.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">- If you want to make it so the chip is right where the "Nintendo Gameboy" text is on the cartridge front, then you will need to cut slots with the spacing of your flash chip so it can sit in there. Then you will simply solder the wires on to the corresponding chip leads (except for pin one of your chip, which REQUIRES no connection). You could also socket the chip this way, and I regret not doing my cartridge like that. I actually made a board that sticks out the top of the cartridge and is really wobbly, causes glitches and poor connections, and will be desoldered today!<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">Now, for an initial test, you should build the gameboy cartridge flasher project I described and <strong>BEFORE </strong>you follow all those steps, copy the game ROM file to your computer, or just download it off the internet. You still need the cart flasher to program your cart, though.<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">To program your beta-flash cart, you need to click on the "write FLASH" button in the GB Cart Flahser 1.1 software and select the ROM file you want to load. NOTE--for a first test, just use Metroid II--it is a small file, and supports RAM and battery saving. Once you program it, I suggest using your beta flash cart on a gameboy advance (not advance SP) because the gameboy's cartridge slot is rather limited concerning space. Then, just power it on and see if it works!<br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">If you need help on this project or want info on development/flash carts for the SNES, NES and Gameboy, feel free to comment.<br />
</div>Vaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com1tag:blogger.com,1999:blog-7755641667389283453.post-38679560403239004392010-01-05T10:48:00.000-05:002010-01-05T10:48:34.614-05:00Odd happenings....Well, it seems that in my troubleshooting process, I never once had the software for the Gameboy Cartridge Flasher up without the actual device plugged in. However, I was in a hurry to run a few more tests and had my cable connected to the computer and not the device, and strangely enough, it found the Cartridge Programmer!<br />
...<br />
Wait a minute... That can't be right... I don't have an IR receiver on the GBCF!<br />
<br />
It turns out that my cable was not a straight through serial cable, so I am now finally just making my own DB-9F to DB-9F null modem cable and returning the $11 RipoffShack null modem adapter.<br />
<br />
-VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com0tag:blogger.com,1999:blog-7755641667389283453.post-17358774299698295802010-01-04T16:45:00.000-05:002010-01-04T16:45:00.026-05:00IntroHello,<br />Welcome to my blog page! Just so you know, this is for my own use just as much as yours. For starters, what I am trying to do is to be able to program games or apps to modified Gameboy carts containing a Flash chip.<br />If you want to do some Gameboy programming, I suggest <a href="http://www.reinerziegler.de/readplus.htm">this site</a>. It's where I got a lot of info and got a guide on what I have built: the Gameboy Cartridge Flasher.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTqS9Yz4GYyi81SIo7PASff8zSlQnzYoveRLSse4vNOW_JChGFNAP2Vj0g0XHzHMgUsWkLXTZ5obcY046dPmzCs4kOZrMqCoxns3d9Qjnx4dffhIBVcjS2BG01YnbrrFso6MsdBwQzizk/s1600-h/P1300492.JPG"><img id="BLOGGER_PHOTO_ID_5422954662472282242" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTqS9Yz4GYyi81SIo7PASff8zSlQnzYoveRLSse4vNOW_JChGFNAP2Vj0g0XHzHMgUsWkLXTZ5obcY046dPmzCs4kOZrMqCoxns3d9Qjnx4dffhIBVcjS2BG01YnbrrFso6MsdBwQzizk/s320/P1300492.JPG" border="0" /></a>This is my Gameboy Cartridge Flasher. I etched the PCB, ordered the parts I was missing, gutted my broken Gameshark for the connector, and programmed the chip....<br />IT DOESN'T WORK.<br />My guess is that the program itself must be bad, or I didn't program it correctly. I don't know if I need to program the ATmega8515 with ALL the parts connected to it, or just the crystal.<br /><br />I am going to be posting some more once I have more free time, and if you have any feedback, feel free to comment.<br /><br />-VaatiVaatihttp://www.blogger.com/profile/09778085583048745246noreply@blogger.com0