6 ms·
I built my own Sega Genesis (Mega Drive) hardware dev kit from scratch
- brokenmachine 5y agoAwesome stuff, I love reading about DIY hackery like this.
- Nexxxeh 5y agoReally cool read. Am I right in thinking it works like a flash cart, but with volatile memory?
- tndata 5y agoAuthor of the blog post here. Yes, I basically emulated the cartridge rom using static memory. That was the simplest at the time.
- tsmarsh 5y agoI bought Ben Eater's Motorola kit and was overwhelmed, I have a whole new respect for folks that can do this.
- tndata 5y agoAuthor of the blog post here. Thanks, it was a quite long project, but the device have a pretty simple and plain architecture that made it easy. Todays consoles are much harder to hack, due to multiple layers of encryption and protection.
- jbluepolarbear 5y agoI had to build an rtos (real-time operating system) for the m68k and dealing with how m68k stack pointers work with interrupts was really frustrating.
- fit2rule 5y ago
- kingcharles 5y agoContemporary with the console, the two kits I had for development were SN System's PsyQ, and the one you could buy at a decently stocked video games store was the Super Magic Drive which used floppies. https://twitter.com/bigevilboss/status/1142031487317020672 https://twitter.com/bigevilboss/status/1142031487317020672 https://segaretro.org/Super_Magic_Drive https://segaretro.org/Super_Magic_Drive
- tndata 5y agoWow! Nice hardware!
- nsxwolf 5y agoWhat's the sponge for?
- tndata 5y agoBlog post author here. I used it just to reduce the stress on the vertical circuit board.
- bluedino 5y agoI would love to read this kind of article along with all the drawings and pictures of a similar kit for the NES, from the 1980's A lot of those early programmers knew electronics they just built their own stuff. Crazy compared to your average developer now. A lot of guys had to build their own terminals/keyboard etc back then (especially the 70's computer clubs). At some point the hardware and software kind of split up (lucky for us that didn't have any real hardware knowledge)
- tndata 5y agoTinkering with hardware back then was much easier because the frequency of the devices was pretty low (like 1-8 MHz) and the interfaces and system bus was much easier to work with compared to todays advanced protocols like (USB, etherhet...)
- hnthrowaway0315 5y agoYup, I guess we can still do it today, for ourselves and for our kids, with the right tools. I'm thinking maybe it is not a huge amount of effort to build your own hardware back in the day because so may people did that. At least they had kits too back in the day.
- hnthrowaway0315 5y agoLaughing out loud, cheering and clapping my hands when seeing lines such as "As I was on a very tight budget, I decided to build my own. How hard could that be?". I wish I had that intuition and courage to build my own birdfeeder back in the day. And of course the author managed to do much cooler things.
- tndata 5y agoOriginal blog post author here! Thanks! :-) Perhaps its not to late to build that bird feeder :-)
- hnthrowaway0315 5y agoThanks man! Definitely working on that direction. Do you have other contemporary projects to show? I'm going to browse through your blog this weekend :D
- tndata 5y agoThere are a few other projects I did listed here https://nestenius.se/about/ https://nestenius.se/about/ Besides that, my biggest project so far is that I created a developer community around 1996 called Programmers Heaven that became my main living for many years :-)
- londondev45 5y agoA message of appreciation, you sound very cool. I'd love to have seen this when I was a young sega mega drive obsessive
- tndata 5y agoOriginal blog post author here! Thanks for the kind words!
- InvaderFizz 5y agoOne point I didn't see in the article. How complete was your dev kit? Could it actually run commercial games?
- tndata 5y agoYes, I could run games and I also wrote some simpler demos where I for example could move a player around the screen using the joystick. So, it was fully functional.
- codazoda 5y agoI never really dared to dig into electronics like this. I had a nack for breaking things when I did. As an example, I purchased a Pentium machine back in the day. I had a feeling it was running too hot (or maybe I was trying to over-clock, I don't recall). But I decided to build a simple PCI card. So simple, in fact, that it just had a 12v case fan on it. I wired up the +12v pin and the ground pin to the 12v +/- of the fan. Then I plugged the PCI board into the PC. It worked! Except, it was now the only thing in the PC that worked. After removing it, the machine no longer worked. I returned it to the shop I purchased it from and they informed me that I must have had a surge. Everything was destroyed. The CPU, the RAM, the Video card, it was all gone.
- tndata 5y agoThe Sega Mega drive was a very robust machine and it did survive numerous short-circuits over the years and even today it still works!. but yes, I have blown numerous PC-motherboards over the years though... I guess that comes with the trade! One time I damaged my motherboard that was powered-off by using the vacuum cleaner to get rid of the dusts from one of the fans. The spinning of the fan resulted in a power-surge that damaged my motherboard :-(
- poyu 5y agoIf you want to get into digital electronics and computer building, here is a really good series on building your own 8-bit computer. https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2...
- djmips 5y agoThis is pretty similar to hardware made by Radical Software and Accolade for professional development back in the day. Also the EA dev hardware was similar but more advanced since it contained additional hardware for capturing the bus like a logic analyzer might. For the Accolade version it was very similar to this design. I worked on the debugger and it was a lot of fun. At the time we used the Lattice C compiler and I supported C source level debugging including watches that could use a C like parser.
- rightbyte 5y agoHeh ... ut: *wait for datapacket to be stored att $FF0000 lea $ff0000,a5 I like how he slips in three Swedish spelling "friend words" there. For some reason I have always found a relief in programming and mixing in my native tongue randomly. Like, it gives a playlike non tryhard touch to it. And the flow is nicer.
- tndata 5y agoAuthor here, never anticipated 30 years ago that someone else would actually look at the code :-)
- rahen 5y agoIt's great to see some new projects being wire wrapped. It's becoming some kind of lost art nowadays.
- tndata 5y agoAuthor here, wire-wrapping is like therapy for your mind! like solving a sudoku!
- hnlmorg 5y agoLove the way you phrased that because I'm often asked by my wife and friends why I spend time on highly technical personal projects and my response is usually the same: you relax by solving sudokus and those personal projects are my equivalent of a sudoku. It's a comparison I've used a lot over the years too.
- deleted 5y ago[deleted]
- jdmoreira 5y agoI feel like this would be an inferior development experience in 2022 compared to this approach: https://hackaday.io/project/1507-usb-megadrive-devkit https://hackaday.io/project/1507-usb-megadrive-devkit Which is an fpga in the cartridge that also serves as a gdb stub over serial. You can debug with gdb directly on the hardware.
- tndata 5y agoOriginal author here, wow! What a cool project!
- djmips 5y agoIf you haven't implemented a debugger and want to you may contact me if you want to hear more about how we did it 'back in the day' if you are interested.
- deleted 5y ago[deleted]
- mikepavone 5y agoI have a UMDK and it's a neat piece of hardware, but it sadly has some design flaws that make it hard to recommend. One problem is that it doesn't make use of the !CE0 signal (the main chip select for the cartridge) on the cart slot which means it will get into bus fights on systems with TMSS (Trademark Security Sysstem, i.e. the thing that displays the "Produced or Under License by Sega Enterprises, Ltd." text). The bigger problem is that it has issues with DMA transfers on a lot of systems resulting in severe graphical corruption in some cases.
- djmips 5y agoIt's probably better than what the original poster has made, however you can debug with gdb directly on the hardware with the simple design of bidirectional communication / dual port RAM and a little bit of ROM code to boot your debug code into the Genesis / MD memory. That's what we did. Single stepping is supported by using 68K trap instructions. The command set isn't very big. Mostly read memory / write memory / Run. I can't remember how we implemented stop but IIRC it was polling from an interrupt routine that was running from a timer. In any case you can get a lot of mileage out of a simple bit of hardware.
- klodolph 5y agoFantastic stuff! There are plenty of modern flashcarts around for various systems, but most of them are designed to let you load up a bunch of (often pirated) games onto an SD card and play them, and they're not very good for development. Nobody wants to build their ROM image, copy it to an SD card, swap SD cards around, and then reboot the system. (Plenty of people do that, it just sucks.) It goes to show that making your own cartridge for development is not as hard as you might expect. There are some high-end cartridges out there that let you do everything, with both SD cards and USB ports, but it's less common to see pure development cartridges, which could be made much more cheaply.