Skip to main content
GameDev.net gamedev.net
🔒 Locked

Building a handheld system

Started by caseyd Apr 10, 2007 at 4:34 PM 7 replies 3.7k views
Original Post
caseyd
caseyd
Hey, I am signing up for courses for next year later this week and one of the courses that is coming up for me next spring is my first Computer Engineering design project. My school requires three design projects spread out over the last three semesters, for the B.Sc in Computer Engineering. I was thinking about some possible things to do and I happened to receive the Digipen course catalog in the mail today. Looking through it I saw that one of the design projects in their CE program was to design and build a hand held system along the lines of the game boy color. I thought this would be an interesting and fun project that would enable me to bring the game development side of things into my program of study. Has anyone attempted this or a similar project? If so, how long did it take you to complete? (Design, implementation etc..) What were the major challenges you faced in attempting this project? Feedback most appreciated. Thanks, Casey
outRider
outRider
It might cost you a few hundred dollars to build, unless your school has a lot of suitable components. Boards with multimedia outputs and LCDs tend to be a bit pricey. If by "spread out over the last three semesters" means spread out over 9 or so months, then that sounds like enough time to do a decent handheld.

I would get a huge FPGA from Altera or Xilinx and use one of their soft-CPUs (Nios, MicroBlaze), then scour OpenCores.org for a suitable VGA/LCD controller IP block, and any other blocks you think might be useful. If you have access to a board with a real CPU and integrated FPGA then that would work nicely also.

If you limit yourself to a system with a CPU, RAM (preferably real DRAM), some kind of PROM/Flash, and some sort of basic video controller it shouldn't be too difficult. Even audio isn't too hard, as long as you come up with a simple enough design for the controller.

Do you have access to a good board? I don't know what Digipen does but I imagine they might provide their students with mid to high-end boards to work on, multimedia capable hardware generally isn't the cheapest.
H4rb1ng3r
H4rb1ng3r
As engineering isn't my line of work I have no experience with designing and building hardware, but I do have some with using many portable devices.

What is your goal as far as what the system will actually do?

Games?
Internet?
Media Player?

You may want to consider running a light version of linux on it to keep the possibilities open.
caseyd
caseyd

Quote:
What is your goal as far as what the system will actually do?


Nothing huge. Just play games from some type of media (flash?). I have been thinking about just having it output to a tv instead of trying to do some kind of portable thing. I would like to be able to match the game boy color as far as graphics go but that isn't really that important to me as completing the project.
I would also have to write a game and maybe a couple of demos for it as well.
frob
frob
Quote:
Original post by caseyd

Quote:
What is your goal as far as what the system will actually do?


Nothing huge. Just play games from some type of media (flash?). I have been thinking about just having it output to a tv instead of trying to do some kind of portable thing. I would like to be able to match the game boy color as far as graphics go but that isn't really that important to me as completing the project.
I would also have to write a game and maybe a couple of demos for it as well.

As far as a hardware/computer engineering project goes, making the games and demo apps should be far less important than creating the device.

Simply making the device would be challenging enough with that much time. Having worked closely with several hardware developers who built DSPs and worked with FPGAs, I can attest that both tasks can be difficult and consume all the time you allow them to.

A CE project is most likely focusing on the hardware, not the applications that run on it. Make sure you keep the proper focus and not get too hung up on making a fun game.
H4rb1ng3r
H4rb1ng3r
You could always make a nice case for a mini pc to sit inside. There are a few really cool ones that have looked pretty nice, and it would work with your "output to the tv" idea.

Jack PC - http://www.jadeintegration.com/jackpc.php (Terminal)
Linutop - http://www.linutop.com/

Those are the coolest two i can think of off the top of my head. They just show you how small something can get without compromising graphics.

+ Just something I thought of, but if you could do it, you could build software for a person's pc that takes a cd they have and imports an iso of the cd onto the "handheld", which has software on it that enables it to run that ISO and output to a TV. (I'm not sure how legal this is, but if you were to put a restriction on how long an iso can be stored in the system's flash mem that may be MORE legal. Microsoft uses that for file sharing on their Zune)
Ravuya
Ravuya
You could probably build a pretty competent machine off an LCD evaluation board like this one; cuts down the amount of electronics work you'd have to do and gives you a pretty nice environment to start from.
Ravyne
Ravyne
Definately keep it simple.

I'd strongly recommend to use a fast microcontroller if it meets the requirements for the course-work. Something like the 16-bit Pic Microcontrollers, which you can find with 128k flash / 16k sram. They have some neat features like single-cycle hardware multiply, DMA, and can map a portion of flash into the sram address space -- very usefull for things like bitmaps, maps, and sounds. They even have support for the SPI bus, which many SD cards support directly -- however, microcontrollers only run from internal flash, you'd have to use its self-programming feature to load applications.

You should be able to drive a simple color LCD or generate composite/s-video or even an RGB signal with a little external hardware.

Since they run at up to 40mhz, you should be able to do something like a tiled renderer with sprites (something like the NES, SMS/gamegear, or genesis.)


All you'd need to do is wire the micro to the display (or possibly a DAC in the case of RGB), some input, and an SD card/serial eeprom for saves(optionally). Maybe wire up some port-addressable sram for extra points.

Consider putting the micro on the "game cartridge" and all the other stuff on the "system board" so you can swap games.
throw table_exception("(? ???)? ? ???");
Monder
Monder
What you should do depends upon what kind of time/resources you have available (It may be over three semesters but are you meant to be spending half the time you have available on this, or maybe an hour a week?) and what is expected of you by the course (If it's an upper level course they might want some pretty serious engineering, if it's lower level coupling a PIC with a screen and some buttons may do fine).

At the simpler end you have something like a PIC coupled to an LCD that has it's own controller so you don't need to drive it with a video signal (i.e. there's an interface that you can use to read and write pixels, you don't need to supply a VGA signal or other such thing), you could put that kind of thing together with a breadboard in a reasonably short amount of time (depending upon your level of skill and experience).

At the more complex end you could use an ARM with external memory and an FPGA which you build custom graphics and sounds processors with, this option would require access to decent PCB prototype production facilities, and ability to actually solder the surface mount components. You could use a FPGA prototyping/demo board in which case depending on what's on the board you may not need to mess around with making PCBs etc, though you might need to construct some external hardware to hook up to the board if needed.

Personally I've built most of a very simple console using a parallax properller chip (if you look in my journal there's an entry or two about from ages ago), I've never quite finished it off (didn't get audio going) mainly because I lacked time and then got access to a DE2 demo board which allowed me to do far more fun things. I'm planning to make a console using that at some point (so far I've built a simple VGA controller that displays images read from SRAM and can handle DMA transfers from the main system SDRAM). I've already used it to built a sampling synthesiser capable of playing 16 samples from SDRAM at once which was a uni project I was doing last term.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.