Make your own console!

Miscellaneous Forums/General Discussion/Make your own console!

Like year ago I saw someone in Blitz irc channel talking about his own console. If I remember correctly he purchased some components and put them together but it was still prototype etc. I tried to google on this but all I could find was XGameStation which I dont think was that. Is there some websites etc for this kind of thing? Would be cool to make a linux mp3 player etc, but I reckon its very, very difficult. I have zero experience in electronics etc but would be a good start for a hobby :).


I have zero experience in electronics etc but would be a good start for a hobby :).



hmm, Before you go ahead with that one, You should grab yourself a 50-in-1 project lab.

Something like this:

http://www.hobby-warehouse.com/el50in1projl.html

It looks like a toy, and it is, but the books that come with them do an okay job at teaching you the fundamentals.

Once you get the hand of those, (and I did learn using one, and created a 1 and 4-bit soundcard out of one for my BBC) you'll be better prepared for more difficult tasks.

Then, you go find a more advanced set of projects to work on.

Once you understand what yee need, you can prob try then. Its a while away yet though.

http://www.arcadecontrols.com/arcade.htm

...

Thats building your own controls though :P

the 50 in 1 got me started when I was 7, great little kit! Although it looks like a toy, if you know nothing about electronics you will learn tons from it!

My parents got it for me for my 7th birthday from radio shack. Everything seemed foreign until my brain clicked on how transistors worked! Everything opened up after that (gates, flip flops, etc). Built a processor in highschool with the knowlege gained from that little 50 in 1 kit!

I recalled a user by the name of Zenith here making his own console.

You could buy one of those cheap and small motherboards that have most things integrated. Add a harddrive and install linux. Google around to learn how to (if possible) hide the boot messages and display an image instead. When linux is done loading it should launch a menu that shows the games installed on the harddrive, or the games on any cd you inserted.
Then put everything in a nice little box or something. Buy some usb joypads too.

Your home made console is done. :)

Your home made console is done. :)


Of course the downside is that there are still few games worth playing available on Linux these days, especially compared to windows or other 'mature' gaming platforms.

http://arcadecontrols.com/arcade.htm

Try building an arcade machine, it's great fun :)

If you want to learn about video signals and programming microcontrollers this is a pretty good project, i've seen it in kitset form at the local electronics store also.

The guy implements a Pong and Tetris game that plugs into the TV with about $5 of electronics:


Pic Pong


Ooh ooh im so interested now in my making my own console!

Probably (i think) the best way is just buy really cheap computer parts.

Any tips?

Oh who summoned me!

Yeah, haha I'm still cranking away at my console.. :)
http:// electrodev.100free.com/pcb001.png (copy paste it, my webhost doesn't like me image forwarding) latest shot of this new pcb I've been working on for it..

This new board isn't really much right now, more of a new idea.. working on a 'simple' video game console that uses ethernet soley. (Hopefully you can take a hint as to what I'm looking forward to.)

I've taken a 3 month rest from development on it, waiting for price changes, new parts to come out, etc. It seems silly, but I've been learning how to make my own console for about 3 years now. And still no ground breaking results. I've gotten video on a TV to work atleast, My own pixels, lighting up the screen, it sure feels good. :P

However, I don't use microcontrollers to do this, but actual digital logic, with the help of an FPGA (Field Programmable Gate Array). You can look them up yourself, if you are interested in them. They are basically a black box of digital logic that you can 'configure' into your own creations. I've been working on all kinds of things like, sprite generators, tile map generators, cpu's, memory managers, audio and video processors, sync generators -- all the works! All within a single chip. :)

It's like a pit of digital logic :P
Knowing the power you have, to create any kind of digital logic, and you can reconfigure it whenever you need. (Mainly on bootup) You then have a video game console, who's output can change. A video game console that can evolve over time. Or a Video Game that has it's own custom hardware, without needing any external components, just a stream of bytes. :)

Now add this to Ethernet, and you have an online community of game developers for an ever changing console... CPU, VIDEO, and AUDIO hardware developers building unique pieces to a puzzle that will someday be put together. :P

You can call this media buzz, but I think it's kind of my fate.

Anyway, that's what's going on around here. If any of you have any form of excitement from this, I could really use a few encouraging words. I nearly quit all together 3 months ago, because I couldn't find an audience/user base who would care. :)

To put it simply, my goal is a video game console, with hardware that changes. Say, I prefer Z80 opcodes over another CPU like 6502. Well just 'select' the core as your CPU. Now say you'd like a 'nifty NES style video core', set that as your video core. You now have a managed I/O system already setup for you, that allows your CPU to talk to the Video core, through a simple interface, which is either already coded for you, or as an advanced user, can setup for yourself. The options seem to be endless, if you don't even want to use a premade core, you could just as easily write your own. Better yet, come to the online community site, and download custom designed cores, by users who also make games and such.

Cores can be designed with the software that comes with the console, these are free development tools by the manufacturer of the FPGA, Xilinx. They include a schematic based system to design your cores, if you are totally hardcore. Or you can use a Hardware Description Language, such as Verilog or VHDL. I prefer Verilog myself, but I have a history of using schematic also, to get every single logic gate to the fullest. Think of schematics as a computer's ASM, and Verilog/VHDL as a high level language such as C. :)

I think I've said too much. Anyway, If anyone finds this idea to be really cool, please tell me! I'm looking for enthusiastic people to help. I'm not sure how they could help. But Help is nice.

Regular K - no, that's not the best way. :(
I wish it was also. I think it's taken me 3 years, because I'm a slow learner; but everyone is different. :)

Anyway, with the way my console will work, even if you don't have any electronic knowledge, with a simple tutorial on digital logic, you'll be able to design circuits that do everything a console does. Without the hassle of buying overly expensive parts, college courses, or any of that #$!@.

That's my mission, and I'm going to make it happen. Amazing enough, I'm pushing the limits in pricing, I'm kicking for a $60USD price range console!

You know whats funny, I just designed a cpu last night, and it took me 15 minutes to write, simulate, and finish. :)

Ofcoarse, the cpu isn't much, but it's a real (digital) life version of this: http://en.wikipedia.org/wiki/OISC

http://electrodev.100free.com/oisc.v <- that's the verilog description of the OISC cpu. :) (It has a whopping 140MHZ maximum clock period! :D)

Don't be scared by the language, I actually don't like verilog, but it's better than VHDL. (TO ME!)
Ok, I DO talk too much.

The http://www.xgamestation.com/ looks like a toy for playing around with - a bit like an old 8-bit console you can write stuff for!

Looks really interesting, Zenith! Funny that a similar type of conversation came up at work. Some team is using a kick-ass FPGA board about the size of a normal PC gfx card, that can recongifure to create something like 140 PowerPCs on the board. It costs a bomb, but the guy reckons you can get a chip that could be configured to say a single P4 for about 200 pounds.

Ill look into all this.

Very interesting!

Taking a peek at Express PCB, a blank board costs me at a minimium $80 USD! I live in Canada, so the ship costs, etc.
I did some search and I managed to find a motherboard and CPU that meets my needs for $36 in total.

It would be nice to be able to get hold of hardware diagrams, like memory layouts and cpu layouts for beginners. Like how to map out your very own 256KB memory storage. Then information on how binary is stored into memory using the diagram. Kinda cool topic this aswell.

I've bought Computer Organisation and Hardware Architecture from the states which took ages, but was well worth it in the end.

Express PCB isn't that great of a program, nore that great of a service, but atleast they are free. I don't reccomend even considering making a PCB if you have no electronics background. :)

Nomen - Yeah! They are using FPGA's alot more now, they are making some really cost-effective products, they even used them in the Mar's Rovers, Remember when they touched down broken? They reconfigured the FPGA's and fixed them, haha.

Anyway, even Nintendo uses them to prototype their systems. The GBA was first just an FPGA, but once it was finished they had it fabricated as an ASIC. All they really had to do was send their source code to a company, and fabricated the chips.

The difference between an FPGA and actual standard digital logic chips is; FPGA's use a ton of power, they suck up 200+mA easily, because every logic cell is powered by RAM. Standard chips use only transistors to build the gates themselves.

Actually, the XGamestation isn't really a toy, but a learning tool more than anything. I respect Andre for getting it out the door, but he's simply a Marketing Puppet. His Design Your Own Console book isn't bad though. Full of spelling errors, and weird diagrams, but I have the digital version. I might get the paperback version when it comes out. :)

Some interesting info there, Zenith!

Keep up the information flow Zenith :).

Zenith,

May be worth contacting Aaron Giles from the Mame program as he may be able to explain quite a few different arcade systems - as you have noted the Z80 as your preference he would have a lot of knowledge about that processor and hardware.

http://mavedev.com
http://aarongiles.com


You know whats funny, I just designed a cpu last night, and it took me 15 minutes to write, simulate, and finish. :)



How did you go about that?!

I actually prefer 6502 over z80, but who knows. :D
There are already z80 and 6502 Verilog/VHDL modules out there, that you could actually use in the console. But I'd rather write my own versions of them.

I was simply giving an example of what you *would* be able to do with my console.

Thanks for the motivation guys, It's helping. I'm really hoping to see a market in this, I'm not even in it for the money, I'm in it to build video game consoles and computers. It has been my life goal for way too long now. :)

RegularK - With experience I guess comes speed, I've been working on these things for about 2 years now, I'm just finally getting used to all the theory and idea behind it. Besides the point, the CPU itself only has 1 opcode. So it's VERY straight forward. :D

I've been working on a 16-bit cpu design, for the past week, and it's taking me alot longer to make, because it's a full fledge cpu.

Im wondering how you went about simulating it and writing it.

Interesting stuff your doing! Very interesting, I was never interested in hardware before.

Here's an example of simulating:

( electrodev.100free.com/cphase.png )
That is the colorphase circuit in the video portion of my console. It's job is to simply create 12 different phases of color for output to the TV. With more study on TV interfacing, you would better understand whats going on here.

( electrodev.100free.com/logen_it_works2.png )
Here's a better example of the simulator, what you are seeing is a graph of the logic signals from within the console's core, going high and low, representing ON and OFF. I was so excited, because this right here is the memory manager, it keeps everything in sync when reading and writing to memory, between the different cores like VIDEO, CPU, and AUDIO. Also, it allowed a core the ability to talk to other CORES. (Which thus alloud me to output video to a TV using my CPU)

( electrodev.100free.com/vga.png )
Here's an example of the schematic capture, part of the Xilinx Tools, My verilog code actually converts to this schematic or digital blueprint of my code as a logical circuit. This is zoomed out ofcoarse, close up you would see all the individual signals and their names, and where they are going, etc. What you see here is my VGA generator circuit. It outputs a VGA signal to a VGA monitor, and outputs a simple logical XOR pattern, it was pretty neat to see it working! After about 4 failed tries of writing one, I finally got it to work! Quite a motivational boost!

( electrodev.100free.com/sync.png )
Here's a very advanced looking signal, this is actually what my VGA signal generator outputs within the simulator. I don't expect anyone to understand it, until they get a basic grasp of the system design. But all will be taught. :)

It's a very large amount of learning, but my goal is to make it a simple process for even the most basic user to get started and become advanced in.

I'm glad you are interested in hardware, it's an amazing and fun branch of science. :D

I suppose your going to skip out on a GPU and let the CPU do the video.

EDIT: Downloading Xilinx ISE Webpack (I believe thats its name)

Okay, but I started with the 200 in 1.

That has everything you will ever need.

Including the Basic Microcontroller/Proccessor.

Starts out simple to.

Anywho, you could go to Fry's Electronics (If there is one) and find the isle that has all the IC's. And start lookin. Theres everything your need. Everything from audio amplifiers to Hex Buffers and even the replacment Sony Walkman laser control module. Hook some of that up with a few bus cables. Jam those into some hardrives. Pick up a small Video Processor (they have those to) wire it up with 1-3 OOPic Microcontrollrs (Or BasicX-24) Whrite the control program, download it in with the Serial Port Adapter. You might need mor ROM/RAM (both actualy), And you can also get that at Fry's. Add a few audio proccesors, and the much need voltage regulator (5-12vdc). Then the AV Cables and a program disc. And VIOLA!

Regular - no, I said I just talked plenty about the different parts of the GPU, I merely called it a VIDEO core though. The VIDEO core includes hardware accelerated sprites, tilemaps, and palettes. AND the video generation hardware, which includes the synchronisation pulses and the color burst generator, palette look-up-table, and such. :)

PCD - I don't think you'll get anything accomplished if you carelessly stuff things together, I'm sure you are just simplifying the work needed, but that's overly simplifying. :P

Well I shouldn't say anything, go have fun. :)

Ill defiantly have fun trying to mess around and fail, but this will merely inspire me to further properly look into the subject.

Hey, good, keep that attitude and you won't give up. =]!

How can you put your games etc to the PIC microprocessor for example?

edit: Nevermind. You need a programmer which uploads the software. You can use the free MPLAB to code, simulate and even upload your code.

Hey, here's some progress -- been working on this new board layout, so figured I'd better do a schematic also:
( electrodev.100free.com/schem1.png )
I've still got a ton to layout with schematic.
The FPGA itself, the power supply(regulated/switching 1.2V, 2.5V, 3.3V, 5V), the expansion board connections. Input/Output for controllers, the SPI bus, and the MCU (Going to be a PIC18XXXX)
Yeesh, got some work ahead of me. :)

here's 2 links you might find handy

http://www.bazix.nl/onechipmsx.html

Don't mention the grey block at the bottom, here:

http://www.msx.org/One-Chip-MSX-is-to-get-a-second-chance%21.newspost3354.html

it's announced, or at least reported, that production will take place.

By default it's an MSX2 .. but you can make any console out of it ofcourse.. for less than 200 euro .. complete with casing and everything! :P

Yeah I love that, I really want one. That will do the same thing mine will do, only mine has ethernet. Hehehe, I guess it opens up a ton more possibilities.

My friend, kevtris who's helped me in an infinite amount of things has built an NES with an FPGA - http://tripoint.org/kevtris/Projects/console/

Runs every NES game known to man, including the pirate collections! (chumz!)
It is really great! :D

He's really high pricing it though, because of so much more that it can do.

Zenith,

Nice project and great results.

PIC18XXXX???

Why not an Atmel AVR? Much faster (~1 MIP per mHz). Plus the instruction set is sweet compared to Microchip.

I've done some video generation using a microprocessor but only monochrome.

See www.speechchips.com

Funny, I'm still working on pricing and research on the microcontroller. :)

IMO, I prefer AVR more, and being that, I went back to AVR. Actually using an ATtiny26 :) (Amazingly all I will need) Can't beat the price, or the MIPs. :)

>Why not an Atmel AVR? Much faster (~1 MIP per mHz). Plus >the instruction set is sweet compared to Microchip.
>I've done some video generation using a microprocessor but >only monochrome.

Yeah, it's great! I own a few AVR boards myself. Atmega128 is prideful. :D

Thanks for the kind words =]

Wow quite an update:

I've just had an evolution in my console...

Specs: Arm7 16/32-bit cpu with 16k high-speed internal ram @ 66mhz(54MIPS), 512k program memory @ 66mhz, 512k bios @ 14.28~MHZ, independant video/audio hardware with reconfigurability (200k or 250k Xilinx Spartan 3(E) FPGA), 15-bit video (RRRRRGGGGGBBBBB), VGA/S-VIDEO/COMPOSITE NTSC/PAL output, 16-bit 96khz Stereo Audio, 128k VRAM @ 88mhz (might be upping it to 256k depending on your input), integrated USB 2.0 HOST and DEVICE @ 14.25Mbyte/sec maximum rate, 4 upstream ports (4 devices can be connected), and 1 downstream port (which means it can be connected to other USB hosts, such as a PC, perhaps as a storage device, and/or runtime debugging/emulation)

Parts total cost so far: $34.5816 USD :)
All that's left to add to the price is:
The console's case, connectors, PCB, and passive components.
I speculate the PCB and case will be the most expensive of these, meanwhile the passive components and connectors will probally add $2-4. :) The rest of the money is going to go to presentation, software cd, wifi or ethernet usb card, ($5-10 profit.. need to pay off the loan all this will take :)), cables and cords, possible optional usb gamepads by logitech.. :) and other periphials, usb cables, s-video cable, rca cable.. etc

Will come standard with either an ethernet to USB adapter, or a wifi USB. Optional USB Hard-drive (flash memory)

Notice, now that I'm using an ARM7 as the CPU, we will now be able to use free C/C++ compilers (GNU GCC, possible Blitzmax port?), and the likes for development. :)
Which also means, writing the Game SDK and Hardware API will be *SO MUCH EASIER*, not to mention games themselves.
Now think about the 4-port USB device interface.. That means you can have 4 USB devices connected (or more, using a USB hub on one of the USB ports) -- USB Keyboards, Mice, WIFI/ETHERNET, usb hard-drive(FLASH) will all be supported! (in due time)

This doesn't mean that the FPGA just has to be for VIDEO and AUDIO, that's just what it is standard, you could still put in a CPU core if you *wanted*, but the FPGA is 2X smaller than it was before, and the CPU is usually what takes most of the space in the FPGA. :)

All this, for around the same price.. Might be a bit more - $60-80 :%

The Software cd will come with a documentation onf the Game API, Learning Verilog, Writing Zengine FPGA cores, Writing Software for Zengine, Learn the Zengine Game Suite, and more. Also comes with the SDK libraries, GNU GCC, Xilinx Development Suite + Free ModelSim Verilog Simulator. Also included will be different programs, such as example game code, example periphial code, example video/audio core code. Also the programmer tools, IDE, and possible realtime-debugger. Also included will be the standard FPGA core's source code, and the BIOS source code. (except for the security bits ;)).. And some more I can't currently think of.

So as you see, I have alot of work ahead of me, and my team. :)

If any of you are enthusastic and have years of C/C++ experience, even just for help, I could use some help on USB device drivers.

More information on it soon.. :) (Quite a change right?)
A website is opening up soon, open to the public to see the development of the system as it's being designed. Dev Log, Specs, FAQ, and a Forum. :)

Make a site where you have a list of games/software where people can upload their games. Then you plugin usb cable from PC and click the games name to send it to the console.

Yeah, I am. It's going to be part of a highly connected internet based game lobby, game upload and review, core upload and review, previews, and all the sorts of things a community page would have. Not to mention, the console will connect up to the site itself.

But don't think of the page as a HTTP/HTML webpage, I'm not writing a web browser, but my own server architecture for it all. Don't expect to be able to goto the site by PC. :)
(It might seem weird, but it'll be better understandable later on)

If you wanna make your own operative system for it, use Quick Basic 4.5, and the UGL library, then you got a DOS/Bootsector compiler, Hi-Res (1280x1024x32) modes, 3d-accelerator (slowly because its software rendered), and 22kHz Wav sound. ;)

ROFL, no way. (I'm hoping you are joking?)

I don't think you know what this is targetted at, or what cpu it's using, etc. :P

hehe.. its that kind of people who look up the Xgamestation in the first place too, they wanna learn some quick hardware and then make PS3 consoles.

I would be happy to make a 256x256 screen on a tv, even black & white with some kind of tiles and animations going on. Even thats a big step if you're not used to hardware design.

Yeah, you should see some of the funny XGamestation forum posts. I frequent there, but usually don't post.

I think the problem with XGamestation is, he promised an FPGA video/audio hardware, and took it out at the last minute to use an SX. :)

But yeah, hopefully it won't be long before my console is out, and you will be able to do it. Hardware is actually easier to write sprites, and tile map hardware in, because you don't have to worry about clock cycles really.. The only clock cycles you have to worry about is the reading and writing to sram, unlike an cpu. :)

Basically it's a few state machines, with a multiplexer choosing which pixel to output to the screen at the right time. :D

(Anyway it will be one of the many things in the tutorials :))

Oh, I really should go home and get my Xgamestation out of the closet again :D

André Lamothe is working on a new Xgamestation now though, code named "Hydra".. he said something about twin processors and raw processing power. But that beast is more likely to become a software learning tool for advanced hardware though.

I was really surprised when I read the XGamestation Ebook, how easy it really was to create the video output. Just a microcontroller and a few resistors on the output and thats it :D

Ha, sorry if I'm reopening an ARCHIVE, yeah I learned about Hydra, imo just another chunky clut of marketing though. Oh well. :)

I would have an Xgamestation myself, but I couldn't seem to right the price. ;)

Anyway, to keep to topic, I just redid my video/audio board 3 times over. This is really just a method to prototype the new viedo and audio chip I'm going to use, and it connects up to my FPGA board. The actual system ofcoarse will all be one board. (I can't imagine the cost if it were all seperate)

This link will possibly work: (http://electrodev.100free.com/video8.png) Chances are you will have to copy paste it.

Fascinating stuff! I'm impressed and enraptured.

When I first heard about FPGAs, I assumed that we'd start seeing them on motherboards, in tandem with CPUs, so that advanced software (e.g. rendering, video/audio editing) could optionally snag (parts of) them and perform lightning-fast calculations. I wonder why this hasn't happened.

I was really into digital electronics a decade ago. In highschool, my Electronics project was going to be a dirt-simple computer with nine buttons (hex input + execute program,) a common cathode display for hex output, and just enough op codes to allow the creation of a machine-language prime number calculating program. It was going to be glorious. Unfortunately - due to circumstances out of my control - I had to leave highschool and find a job.

A couple years later, my roommate and I decided to build a simple robot - just three CMOS chips, a 556 timer, and a couple sensors. Basically the logic was: go forward, steer away from walls, if you bump into one reverse and turn for a while. That guy was crazy, but I'll be damned if there's something he can't make out of cardboard, metal tape, and coathangers: we had a pretty sweet chassis for the thing. Unfortunately, (and this is what killed my interest in electronics,) I could never figure out how to drive the motors. I had enough juice from the CMOS output to light LEDs in my H-Bridge to show what directions I wanted the motors to go, but not enough transistor theory to know how to ramp up the power enough to run the motors at more than a crawl.

Sorry if I'm blabbering on, this topic is exciting! :D

Designing a video core would be a blast. Designing and coding engines for games is my favourite part of the process - I like the challenge of designing an API which will be flexible enough to allow the creation of a variety of games, yet simple enough to keep the games' code eloquent. Designing a video core would be an extra step in that direction. Designing a programming language would be fun too, however daunting it might be. What I learned about the GBA's video core when I wrote a (simple) engine with GCC for it was fascinating.

I doubt I have the knowhow to help at all, but if you need a beta tester, let me know! ;)

Wow, that's not blabbering, that's excellent goals you have inside you somewhere, waiting to get out. ;)

Your name is very familiar, I'm not sure how but I swear I know you. It's great to hear someone who's into digital logic too! woo! You're exactly the kind of person I'm looking for. :D Yes, Video and audio core Design is the higher user learning experience that will be part of my console. Technically it's not really a console though, but it's not really a computer either. So I'll just say its a hybrid, right?

From the ground up I'll be getting people into designing them. They are really simple actually! :)

I think the problem with FPGA's is the pricing, they are actually getting to a point where I can use them now. $13 per FPGA for 100 Quanity. That's a deal and a half. (considering the last generation was $20+)


I'd really like to talk with you in realtime, got any instant messengers? Or even IRC.. :) (I'm on there too much! irc.blitzed.org #electrodev is my 'official' console channel, still a quiet room really. But there's also the blitzbasic channels #blitzbasic and #blitzcoder..) Anyway I'll go email you now.

Edit: Oh wait, you don't have an email listed, well email me. :)

Hey, the specifications are finally done. These are the REAL specifications that I am using:

http://www.blitzbasic.com/logs/userlog.php?user=2260&log=561
Sorry if it's not explained very well, if you have any questions, post them here, but chances are I've explained it before in the posts above. :)