Jump to content
IGNORED

FPGA Based Videogame System


kevtris

Interest in an FPGA Videogame System  

682 members have voted

  1. 1. I would pay....

  2. 2. I Would Like Support for...

  3. 3. Games Should Run From...

    • SD Card / USB Memory Sticks
    • Original Cartridges
    • Hopes and Dreams
  4. 4. The Video Inteface Should be...


  • Please sign in to vote in this poll.

Recommended Posts

Other open source HDL repos are pacedev.net (seems down) and opencores.org (bit outdated). They are mirrored on github when used by Minimig or MiST cores.

 

A Genesis core was written for the DE2 board by Torlus, but it lacks sound and hasn't been ported elsewhere yet. He also did a Jaguar core but I don't think he released the source for it (just a couple of vids).

Link to comment
Share on other sites

Small update: I have been hard at work designing a universal cart/EPROM/ROM emulation system and the PCB is done on that, just need to get it manufactured. This is a PCB that contains an FPGA, 4Mbyte of RAM, and some level translators and other random things to allow me to emulate most "single bus" cartridge ROMs including some bankswitching. There's also a bunch of general purpose IO that I was thinking would be great for interfacing to link ports/serial ports and LCD displays to allow taking screen shots of LCD games.

 

This emulator then plugs into small adapter boards that have the shape of a system's cartridge, but has connectors for the emulator instead. Was thinking I could put a UART on it so the system under test can receive and send data to help reverse engineering efforts. I had a UART and used it well when reverse engineering the Supervision. There was a small piece of code that was stuck on an EPROM and used the UART to talk with the PC so I could write and read the Supervision's registers directly. This proved to be extremely awesome and made figuring out what everything did relatively easy.

 

Unfortunately writing those pieces of code is a huge pain if you have to program an EPROM to test it each time until it works. I think it took 7 or 8 tries to get the Supervision one working. Also I had to make a custom cartridge with a UART, decoding logic, and EPROM socket on it. This was done using an existing cart + some perf board, and while it worked was ugly and error prone.

 

I know I should probably work on making PCBs but adding 5 or 6 more cores seems like more fun right now so that's what I am going to do, dammit. The list of cores I will be working on using this emulator are:

 

* Game King (probably first)

* game.com

* Gamate (I need to buy one, but won't pay $200+ on ebay. I hope someone can sell me one for $100-120 range. I'd pay that)

* Game Master

* Atari Lynx

* APF MP-1000

* Bally Astrocade/vision

 

Of these 7 systems, I have all of them except the Gamate and Bally. I kind of wanted to buy a Bally so I can reverse engineer the audio system on it. I guess the audio on it is pretty damn tricky and it'd be nice to be able to reverse engineer it. Adding a core would be relatively simple other than audio, it's just a frame buffer with tricks and a Z80. APF MP-1000 looks easy too, CRTC and a 6800.

 

The reason I am doing all these at once is because the logic analyzer is huge and takes up a lot of desk space, so I figured might as well get some economies of scale and reverse engineer a bunch of systems at once. Hence the idea of making this debugging ROM emulator doodad.

 

Each system will get the "Breakout treatment" (no, there's no ball and paddle involved) which is where every signal of interest is broken out to some headers that the logic analyzer can suckle off of. So far, the Lynx and game.com have been "broken out". I have the Game King and Game Master in the mail so don't have those yet. Since these systems are small, hand held and surface mount, the breakout was done using wire wrap wire, some perf board and .1" headers. Here's a picture of what that looks like:

 

lynx broken Out Top

lynx broken Out bottom

 

 

The emulator doodad itself is here:

 

eprom emulator layout 1

And the two current cartridge adapters:

gamecom cart

lynx cart

 

 

I took time lapse video of me doing the emulator PCB routing and breaking out the game.com (no pics of that yet) so that will be posted probably once the PCBs come in and I stuff/test them.

  • Like 7
Link to comment
Share on other sites

Kevtris, you are awesome! If you can get this thing caught up to 1991 (16-bit era including Genesis/TG-16/SNES) that would be amazing! Or if you get Vectrex working in 1080p :lust:

 

Whatever I know SNES is a beast though with tons of custom chips inside. Kudos on getting started on the Lynx. It's a kick-ass handheld.

 

However I'm a bit worried though if you continue to try to emulate every obscure system out there including the kitchen sink, you'll never get around to finishing the Zimba 3000.

Link to comment
Share on other sites

 

However I'm a bit worried though if you continue to try to emulate every obscure system out there including the kitchen sink, you'll never get around to finishing the Zimba 3000.

 

It makes sense to me. He is doing the reverse of Mike-ism. Cores/software first, design hardware around them, and then design a case around that. Anyway, stuff is happening! :D

  • Like 1
Link to comment
Share on other sites

Yeah I know, but this is supposed to be a fun project for me since I have not put up a $2M kickstarter :-) I need some good electronic therapy after finishing that HDMI NES adapter. I don't want this project to turn into a paid for slog after awhile. Been over a year since I have added a core or done any real work on it too. Now that the Hi Def NES adapter is out of the way I can get back on it.

  • Like 2
Link to comment
Share on other sites

I must admit that I'm having a bit of a hard time understanding your explaination of what your "doodad" does. If I understand this correctly, you've made a video game cartridge emulator? So you just plug your hardware into any video game console and then analyze every nook and cranny of this console via its cartridge port? If so, that's pretty darn cool! :)

 

Yeah I know, but this is supposed to be a fun project for me since I have not put up a $2M kickstarter :-) I need some good electronic therapy after finishing that HDMI NES adapter. I don't want this project to turn into a paid for slog after awhile. Been over a year since I have added a core or done any real work on it too. Now that the Hi Def NES adapter is out of the way I can get back on it.

I'm glad to see you're having fun with this again, and for a guy like me watching from the sidelines, it's all very fascinating. :)

 

But you do realize that people around here are just keeping their fingers crossed wishing for the Zimba 3000 to become reality, right? That's the common denominator that permeates this entire project, from a public point of view.

 

I think everyone here understands that you're a master hardware guy who gets a kick out of figuring out commercial hardware, and you get to apply all your acquired knowledge into FPGA cores that run on a single FPGA machine. That's all fabulously cool, but the rest of us are just waiting for you to share the fruits of your labors with the rest of the planet, and not just via pictures and YouTube videos, if you catch my drift. ;)

 

Producing the Zimba 3000 is going to be hard work, certainly not always fun. I'm sure you perfectly understand what I mean given that you've tasted the "not-so-much-fun" part recently with your HDMI NES adapter. For what it's worth, I support your current effort to add more cores, because when the Zimba is (hopefully) eventually released to the masses, people will be clamoring for the 16-bit cores (Super-NES and Genesis in particular) but they'll have all your existing cores to play around with while they wait. The NES, SMS and Game Boy cores alone should keep people busy for a while, and they'll have all those other cores to experiment as well.

 

I hope you will find competent collaborators who will help to take some of the burden off your shoulders, because once the Zimba hits the streets, it's going to take over your life for at least a couple of years. Heck, it's going to take over your life even before it hits the streets. :P But we'll all be very grateful for your sustained efforts, that's for sure. The Zimba really is the dream machine that no one thought could ever exist. :)

 

Keep up the good work, Kev!

  • Like 1
Link to comment
Share on other sites

The Zimba really is the dream machine that no one thought could ever exist.

I believe that anything can exist. :P Once humans are advanced enough, they'll be able to create things in another dimension using thought and make them pop into this reality fully formed. That's supposedly how some aliens create their spaceships and other things. That's also why their ships are so smooth and don't look like they were made out of a bunch of different pieces. They don't use or need assembly lines. :D

  • Like 1
Link to comment
Share on other sites

I believe that anything can exist. :P Once humans are advanced enough, they'll be able to create things in another dimension using thought and make them pop into this reality fully formed.

Or in other words, the human race will evolve into the Q Continuum. It's cool to know that one of our evolved descendants will one day go back in time and pester Jean-Luc Picard. :D

  • Like 2
Link to comment
Share on other sites

I believe that anything can exist. :P Once humans are advanced enough, they'll be able to create things in another dimension using thought and make them pop into this reality fully formed. That's supposedly how some aliens create their spaceships and other things. That's also why their ships are so smooth and don't look like they were made out of a bunch of different pieces. They don't use or need assembly lines. :D

Looks like Mike Kennedy was ahead of his time then. Seemed he believed that he could just think up an idea and just have it magically materialize.

 

dead-horse.jpg

  • Like 1
Link to comment
Share on other sites

But you do realize that people around here are just keeping their fingers crossed wishing for the Zimba 3000 to become reality, right? That's the common denominator that permeates this entire project, from a public point of view.

 

I think everyone here understands that you're a master hardware guy who gets a kick out of figuring out commercial hardware, and you get to apply all your acquired knowledge into FPGA cores that run on a single FPGA machine. That's all fabulously cool, but the rest of us are just waiting for you to share the fruits of your labors with the rest of the planet, and not just via pictures and YouTube videos, if you catch my drift. ;)

 

I'm wishing that the bold from the first paragraph comes from the things in bold in the second paragraph as an extension of those things. What I mean is that I hope that his end goal isn't to create a finished product to sell but more like an achievement for himself, a challenge, a being the first to climb to the top of a mountain kind of thing, bragging rights, something to be proud of, etc. and then when the only way he can say,"Look what I can do!" any further is from us experiencing it first hand would be the motivation to sell it. In other words, I don't want him to ask himself,"What would they buy?" but more like,"What could I do with this that would make me impress myself to the point that I just have to share its awesomeness with others?" because that being the motivation to create would create a product that I would really want to buy.

 

  • Like 1
Link to comment
Share on other sites

I believe that anything can exist. :P Once humans are advanced enough, they'll be able to create things in another dimension using thought and make them pop into this reality fully formed. That's supposedly how some aliens create their spaceships and other things. That's also why their ships are so smooth and don't look like they were made out of a bunch of different pieces. They don't use or need assembly lines. :D

 

With nano-tech something like that will eventually happen. Objects would just be 3D printed from nano-factories in such a way that they would look like they are not made out of a bunch of different pieces because they would be made out of a lot of microscopic pieces. It is like how our bodies look like nothing is really connecting anywhere when really there are billions of connections between our cells everywhere.

Link to comment
Share on other sites

I just had a crazy thought... Thinking far ahead, I figure the Zimba 3000 probably won't come bundled with any controllers in order to keep its price tag down (just use your favorite USB controller) but it would be cool if there was an official controller for the Zimba, even if it was sold separately (perhaps even made by a third-party completely separate from Kevin and his collaborators).

 

I'm thinking of a USB controller with a small built-in touch screen, similar to the Nintendo DS/3DS, but the touch screen would be a little bit smaller. The idea is that this controller could be remotely programmed by the Zimba to display a custom interface on the touch screen, and whenever the player presses a sensitive area (like an on-screen button or flip-switch) the controller would send a certain signal to the Zimba, which would affect either the active core or the game currently being played.

 

This built-in touch screen could be used in a wide variety of ways with a multi-console system like the Zimba. For instance, it could display an image of a ColecoVision controller overlay, or an Intellivision overlay, or an Atari 5200 overlay. It could also provide a generic display of the switches on an Atari 2600 console (color/B&W switch, difficulty switches, game select, game reset). Some custom programming could also be devised for specific games, like a custom-made touch screen interface for Space Shuttle on the Atari 2600 (to replace the generic 2600 console switch display). More advanced uses of the touch screen could include a trackball emulator, a steering wheel emulator, or a paddle emulator (which could work using a horizontal scrollbar instead of a virtual rotary device). Or the touch screen could have much simpler applications, like simply offering virtual switches to toggle turbo modes on fire buttons for such systems as the NES.

 

The technical question that comes to my mind is how the Zimba would interact with such a controller at boot time. I figure the controller's custom programming could be stored in a file on an SD card (and loaded in parallel with the selected core + game ROM) but the Zimba would need to a) detect and identify the controller, and b) know how to send the customizing data code to the controller before booting the actual game.

 

From a broader perpective, any USB controller could have its own capabilities and quirks that could require special configuration (this includes a USB mouse, or a steering wheel setup) so I guess I'm talking about a software driver system. :)

 

Anyhow, if there was ever a gaming console that could use a controller with a programmable touch screen, the Zimba 3000 would be it. :D

Link to comment
Share on other sites

That sounds like the controller would take more work than the Z3K. Wouldn't it be easier if it worked with any USB controller/original controllers with USB adapters, could map the controllers to work how you want with whichever core you want, and then for that touch screen stuff just create an app for a phone/tablet to work with the Z3K?

  • Like 1
Link to comment
Share on other sites

That sounds like the controller would take more work than the Z3K. Wouldn't it be easier if it worked with any USB controller/original controllers with USB adapters, could map the controllers to work how you want with whichever core you want, and then for that touch screen stuff just create an app for a phone/tablet to work with the Z3K?

I guess that could be an easier setup at the hardware level, but you'd still need to upload custom code to the phone/tablet (hello multiple-vendor support) and then manage communications (most likely wirelessly) which could be just as complicated. More control could be exercised over a custom dedicated wired controller where communication protocols and general software support are concerned.

 

In my non-expert opinion, I expect Kevtris will have no choice but to implement some kind of software driver system (even if it comes down to config options written in an INI file on an SD card) regardless of whether this proposed touch-screen-equipped controller ever sees the light of day. But if such a controller did come into existence, I just hope the Zimba could use it to its full potential.

Link to comment
Share on other sites

Yeah I know, but this is supposed to be a fun project for me since I have not put up a $2M kickstarter :-) I need some good electronic therapy after finishing that HDMI NES adapter. I don't want this project to turn into a paid for slog after awhile. Been over a year since I have added a core or done any real work on it too. Now that the Hi Def NES adapter is out of the way I can get back on it.

 

Do you have a running list of what is done, what is being worked on, and what is coming up?

Link to comment
Share on other sites

Yeah I know, but this is supposed to be a fun project for me since I have not put up a $2M kickstarter :-) I need some good electronic therapy after finishing that HDMI NES adapter. I don't want this project to turn into a paid for slog after awhile. Been over a year since I have added a core or done any real work on it too. Now that the Hi Def NES adapter is out of the way I can get back on it.

Were I to visualize myself as a character in the old Fat Albert cartoon TV series, I might initiate this dialog:

"You should just call me 'Flat Tire'".

"Flat tire? Why flat tire?"

"No pressure."

 

I miss Saturday morning cartoons. :)

Link to comment
Share on other sites

I just had a crazy thought... Thinking far ahead, I figure the Zimba 3000 probably won't come bundled with any controllers in order to keep its price tag down (just use your favorite USB controller) but it would be cool if there was an official controller for the Zimba, even if it was sold separately (perhaps even made by a third-party completely separate from Kevin and his collaborators).

 

I'm thinking of a USB controller with a small built-in touch screen, similar to the Nintendo DS/3DS, but the touch screen would be a little bit smaller. The idea is that this controller could be remotely programmed by the Zimba to display a custom interface on the touch screen, and whenever the player presses a sensitive area (like an on-screen button or flip-switch) the controller would send a certain signal to the Zimba, which would affect either the active core or the game currently being played.

 

This built-in touch screen could be used in a wide variety of ways with a multi-console system like the Zimba. For instance, it could display an image of a ColecoVision controller overlay, or an Intellivision overlay, or an Atari 5200 overlay. It could also provide a generic display of the switches on an Atari 2600 console (color/B&W switch, difficulty switches, game select, game reset). Some custom programming could also be devised for specific games, like a custom-made touch screen interface for Space Shuttle on the Atari 2600 (to replace the generic 2600 console switch display). More advanced uses of the touch screen could include a trackball emulator, a steering wheel emulator, or a paddle emulator (which could work using a horizontal scrollbar instead of a virtual rotary device). Or the touch screen could have much simpler applications, like simply offering virtual switches to toggle turbo modes on fire buttons for such systems as the NES.

 

The technical question that comes to my mind is how the Zimba would interact with such a controller at boot time. I figure the controller's custom programming could be stored in a file on an SD card (and loaded in parallel with the selected core + game ROM) but the Zimba would need to a) detect and identify the controller, and b) know how to send the customizing data code to the controller before booting the actual game.

 

From a broader perpective, any USB controller could have its own capabilities and quirks that could require special configuration (this includes a USB mouse, or a steering wheel setup) so I guess I'm talking about a software driver system. :)

 

Anyhow, if there was ever a gaming console that could use a controller with a programmable touch screen, the Zimba 3000 would be it. :D

Why not just add a 5Ghz Wifi chip and have it interface a Wii-U Gamepad? The lamo encryption Nintendo uses to communicate with it has already been cracked. Use someone else's tech. No reason to reinvent the wheel... :grin:

Link to comment
Share on other sites

I must admit that I'm having a bit of a hard time understanding your explaination of what your "doodad" does. If I understand this correctly, you've made a video game cartridge emulator? So you just plug your hardware into any video game console and then analyze every nook and cranny of this console via its cartridge port? If so, that's pretty darn cool! :)

 

 

I'm glad to see you're having fun with this again, and for a guy like me watching from the sidelines, it's all very fascinating. :)

 

But you do realize that people around here are just keeping their fingers crossed wishing for the Zimba 3000 to become reality, right? That's the common denominator that permeates this entire project, from a public point of view.

 

I think everyone here understands that you're a master hardware guy who gets a kick out of figuring out commercial hardware, and you get to apply all your acquired knowledge into FPGA cores that run on a single FPGA machine. That's all fabulously cool, but the rest of us are just waiting for you to share the fruits of your labors with the rest of the planet, and not just via pictures and YouTube videos, if you catch my drift. ;)

 

Producing the Zimba 3000 is going to be hard work, certainly not always fun. I'm sure you perfectly understand what I mean given that you've tasted the "not-so-much-fun" part recently with your HDMI NES adapter. For what it's worth, I support your current effort to add more cores, because when the Zimba is (hopefully) eventually released to the masses, people will be clamoring for the 16-bit cores (Super-NES and Genesis in particular) but they'll have all your existing cores to play around with while they wait. The NES, SMS and Game Boy cores alone should keep people busy for a while, and they'll have all those other cores to experiment as well.

 

I hope you will find competent collaborators who will help to take some of the burden off your shoulders, because once the Zimba hits the streets, it's going to take over your life for at least a couple of years. Heck, it's going to take over your life even before it hits the streets. :P But we'll all be very grateful for your sustained efforts, that's for sure. The Zimba really is the dream machine that no one thought could ever exist. :)

 

Keep up the good work, Kev!

 

Yes, that's exactly what it does. It's a ROM emulator with add-ons for helping the reverse engineering process. Was just going to buy a ROM emulator on ebay and saw the $300 price for a kinda crappy one and figured it was better to make my own for less, that does more.

 

I was hoping to find some people to help but am not sure if this is possible. It would mean the price would go up (I'd have to pay someone, etc) for one. They almost would have to be local, too. I do not want to have someone work then screw them out of compensation.

  • Like 2
Link to comment
Share on other sites

I just had a crazy thought... Thinking far ahead, I figure the Zimba 3000 probably won't come bundled with any controllers in order to keep its price tag down (just use your favorite USB controller) but it would be cool if there was an official controller for the Zimba, even if it was sold separately (perhaps even made by a third-party completely separate from Kevin and his collaborators).

 

I'm thinking of a USB controller with a small built-in touch screen, similar to the Nintendo DS/3DS, but the touch screen would be a little bit smaller. The idea is that this controller could be remotely programmed by the Zimba to display a custom interface on the touch screen, and whenever the player presses a sensitive area (like an on-screen button or flip-switch) the controller would send a certain signal to the Zimba, which would affect either the active core or the game currently being played.

 

I actually did think about this before- the reasoning behind it was so that I could emulate the buttons for systems such as Intellivision/Coleco (imagine having little images of the keypad overlay that you could touch?) and the various buttons on the systems (2600 reset/select switches, difficulty, etc). The problem with that is if there wasn't an existing one I'd have to make one somehow. Electronics wise it isn't too tough, but mechanically and physically it'd be really hard. I was going to basically show somewhat static pictures on it, and it wouldn't be able to do full screen animations probably but it doesn't have to; it's designed to be a configurable keypad basically.

 

 

I think it would be kind of cool and funny if he named the firmware for the SD card the Core Store,"Just copy the Core Store to your SD card, add you ROMs, insert it into your Zimba 3000, and then everything just works." :D

 

Hahah, I just might do that. damn you for giving me that idea :-) /system/ is boring, but /corestore/ is better. If nothing else, the cores ARE stored there...

  • Like 5
Link to comment
Share on other sites

 

I was going to basically show somewhat static pictures on it, and it wouldn't be able to do full screen animations probably but it doesn't have to; it's designed to be a configurable keypad basically.

 

E-Paper?

 

And have you any plans for Odyssey 3? Since you already have the core for Odyssey 2....

Edited by LS_Dracon
Link to comment
Share on other sites

I actually did think about this before- the reasoning behind it was so that I could emulate the buttons for systems such as Intellivision/Coleco (imagine having little images of the keypad overlay that you could touch?) and the various buttons on the systems (2600 reset/select switches, difficulty, etc). The problem with that is if there wasn't an existing one I'd have to make one somehow. Electronics wise it isn't too tough, but mechanically and physically it'd be really hard. I was going to basically show somewhat static pictures on it, and it wouldn't be able to do full screen animations probably but it doesn't have to; it's designed to be a configurable keypad basically.

Small touch screens are difficult to find nowadays (most are too big to fit on a game controller) but there are a few like this one or this one or perhaps this one which could perhaps fit the bill.

 

But otherwise, yeah, I have to agree that making a good controller is quite hard. Just finding a good D-pad component can be a challenge. It's too bad you can't team up with Logitech. With their expertise in game controllers, they could make a quality touch-screen-equiped controller for the Zimba. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...