loading
Know a little BASIC or C? You can make games with El Jugador, a retro open-source game console based on a Parallax Propeller.

NEW!  We've improved El Jugador, it's called Quick Player and you can check it out here.

Features:
  • Make Your Own Games with just a little coding experience
  • SD Card bootloader so you don't need any special programming hardware
  • PAL or NTSC video output with audio
  • Dual Controller Portsfor multiplayer games
  • Modular so you can add modules things like battery packs or protoboards.
  • High-Performance 32-bit, 160 MIPS CPU
  • Open Source under the MIT license
  • Overclock-able up to 200 MIPS with a 6.25Mhz Crystal
This project is fine for beginners, there's some soldering but even if you've never soldered before it should be no problem. You can etch a board or breadboard it, or pick up a kit from Gadget Gangster.

Go to the next step and check out some of the games!

Step 1: FAQ

What is El Jugador?

El Jugador is an open-source, DIY video game console, it's designed to sit on top of the Propeller Platform and provide gamepad, video / audio, and SD card connections.

How do you program it?

It's programmed just like any Propeller, it can be programmed in C, Spin, or Assembly. My favorite is Spin. Later, I'll show you 'Hello World'  — the entire program is 8 lines!

It also has a bootloader so you can run programs without needing programming hardware. You just write your program, copy it to an SD card and insert the SD card into El Jugador. When it boots up, use your controller to select the game/program you want to play.

What kind of games can I make / play on it?

Your imagination (and your skill) is really your only limit. A few demo videos are below.  Graphics are on par with a TurboGrafx-16. Better than an NES, but not quite as clear as an SNES. Not all games take full advantage of the graphical power, of course.

Here are a few of my favorite demos:

X-Racer


Wolfenstein 3D


Fancy 3D Graphics Demo




I've never soldered before!

Even though El Jugador does some pretty cool stuff, it's easy to put together. It uses just 16 components (8 resistors, 2 caps, a card slot, 4 jacks, and pin headers). As a kit, the card slot comes pre-soldered, too.

If this is your first time soldering, I'll show you the tools you'll need on the next step, but El Jugador will take 15-20 minutes to assemble.

Licensing

The Hardware design and firmware are available under the MIT license. Downloads are at the end of this howto.

I did the layout for El Jugador and baggers contributed the SD bootloader (with a little tweaking from OBC). The bootloader is based on femtobasic's fsrw objects from Tomas Rokicki & Mike Green. THANKS GUYS!

Step 2: Preparation: Tools

This is a great project to learn how to solder. There are a ton of great instructables on how to solder, you can find one here.

There is one Surface Mount component on El Jugador (the SD Card slot). As a kit, this part comes pre-soldered to the board, so don't worry about Surface Mount soldering.

Tools
You'll need a few tools to assemble the project;

1 - Soldering Iron and solder. Leaded solder is easier to work with, and a 15-40 watt iron is just fine. A conical or chisel tip works well.

2 - Dikes. Diagonal cutters are used to trim the excess leads from components after soldering them down. 

Step 3: Preparation: Parts

Check to make sure you have the following parts. If you've ordered a kit, double check to make sure your package has all the parts listed. If there's anything missing, just email us at info@gadgetgangster.com.

Also, as a kit, El Jugador comes with an EEPROM that's pre-programmed with a bootloader, so you don't need any programming hardware. The SD Card slot will come pre-soldered, too.

R/A RCA Jack
Mouser Part # 161-0390-E
Qty: 2

SD Card Slot
Mouser Part # 517-SD-RSMT-2-MQ
Qty: 1
- There's one shown in the photo, but the updated circuit board doesn't need one.

47 uF Electrolytic micro-mini Cap
Mouser Part # 140-L25V47-RC
Qty: 1

0.1 uF Ceramic Cap
Mouser Part # 80-C410C104K5R-TR
Qty: 1

El Jugador PCB
Source: Gadget Gangster
Qty: 1

40 pin header strip
Qty: 1

10k Ohm Resistor (Brown - Black - Orange)
Qty: 4

1.1k Ohm Resistor (Brown - Brown - Red)
Qty: 2

560 Ohm Resistor (Green - Blue - Brown)
Qty: 1

270 Ohm Resistor (Red - Violet - Brown)
Qty: 1

NES Gamepad Jack
Source: Parallax
Qty: 2

You'll also need:

Propeller Platform
El Jugador is designed as an add-on module for the Propeller Platform, so you'll need one of those.

SD Card
Full size or mini/micro with adapter. Max size is 2gb.

Gamepad
The OG NES gamepads work fine. I sell gamepads, too

Step 4: Make: Resistors

Iron warmed up? Let's get started!

R4, R5, R6, R7 are all 10k resistors (Brown - Black - Orange). Here's how you add them:
  • Fold the leads at a 90° angle,
  • insert them into the board,
  • splay the leads apart,
  • flip the board over,
  • heat up the lead and pad with your soldering iron for about 1 sec, then add a bit of solder.
Once the solder has melted, you remove your iron and let it cool down for a few seconds. Then use your dikes to trim the excess leads.

let's do a few more resistors:
R1: 1.1k Ohm (Brown - Brown - Red)
R2: 560 Ohm (Green - Blue - Brown)
R3: 270 Ohm (Red - Violet - Brown)

Last resistor,
R8: 1.1k Ohm (Brown - Brown - Red)

Step 5: Make: Capacitor

Now the Capacitors:
C1 is the Electrolytic Capacitor, it's shaped like a little can, and there's a stripe on one side of the can.

The lead on the stripe side is shorter than the other lead and it goes through the circular hole.  The longer lead (non-stripe side) goes through the square hole, closer to the '+' marked on the circuit board.

C2 is a Ceramic Capacitor. It is not polarized, so it doesn't matter which direction you insert it.

Step 6: Make: Connectors

We'll add the connectors now, the video and audio connectors go at the spots marked 'TV' and 'Audio'. Insert them, flip the board over and solder them down.

Add the gamepad connectors at #1 and #2. Insert them, flip the board over, and solder them down. Note that the pins for the gamepad connectors are pretty thick, so it will take an extra second or two to get them up to temperature when soldering them in.

Lastly, add the pin headers on the outside row. It's easier to first insert the pin headers into the Propeller Platform, drop El Jugador on top, and then solder the pin headers to the board.

Pull El Jugador off, remove the EEPROM in your Propeller Platform, and insert the EEPROM that came with El Jugador. This EEPROM is pre-flashed with an SD Card Bootloader.

Here's how you set it up:


Step 7: Using It: Playing Games

Downloads

Here are a few games to get you started:
X-RACER

(.binary) (more info)

WOLFENSTEIN 3D

(.binary) (more info)

DODGY KONG

(.binary) (more info)

DR. HYDRA

(.binary) (more info)

OXYGEN

(.binary, add-on) - put both files on your SD Card  (more info)

SPINTRIS

(.binary) (more info)

ALIEN INVADER

(.binary) (more info)

JETPAC

(.binary) (more info)

HYDRAMAN

(.binary) (more info)

BALL BUSTER

(.binary) (more info)

LOCK N' CHASE

(.binary) (more info)

There are a ton more games out there, Check OBC's game index to download more.

Loading Programs

  1. Copy the .binary file to your SD Card
  2. Insert the SD card into El Jugador
  3. Turn it on and plug your controller into the #1 socket. Use up or down to select a program and hit 'A' to load it up. Here's a brief video;


If you want to switch games, just hit the reset button on the Propeller Platform (right under the SD card slot). The bootloader menu will come up again and you can select another program.

Step 8: Using It: Making Games

You've got some choices when programming, there are compilers / IDE's for C, Spin, and Assembly. There are also a number of 'specialty' development tools like 12Blocks and PropBasic.

Let's do our first program in Spin. Spin is a high-level language developed just for the Propeller - it's a bit of a mix of BASIC and C. My background is in php and I found Spin pretty easy and straightforward.

Creating a Program

Let's start with 'Hello World':
  1. Download the Propeller tool (windows) (Mac) (Linux)
  2. Here's the complete Hello World program:

    CON
    _clkmode        = xtal1 + pll16x
    _xinfreq        = 5_000_000
    OBJ
    term    : "tv_terminal"
    PUB start
    term.start(12)    'start the tv terminal
    term.str(string("Hello World")) 'print Hello World

Copy and paste that program into the Propeller Tool and hit F8 on your keyboard.  You'll see:

(full size)

Click on the button labeled 'Save Binary File', and save the binary file to your SD Card. Pop the card in El Jugador, boot it up and select the file. Your screen should say, 'Hello World".

Making Games

Showing you how to make games is beyond the scope of this howto, but here are some tips and resources to get you started;

How to program the Propeller
The Propeller Manual shows you how to use Spin and you can download the PDF here.

How to do graphics
The Graphics_demo is a great program to understand how to draw graphics, lines, circles, etc. Run it as-is, then make changes to the code to see how the graphics change.

How to read the controller
The NES controller object includes an example program, so you can see how to read the gamepad.

How to do sound
There are several sound objects out there, this one works well but you've got choices. I suggest you spend plenty of time on sound, I think it's an often overlooked part of game design that can really make your game more rich and interesting.

Putting it together
Take a look at other programs (linked in the previous step) to understand how they combine sound, input and graphics to make a game.

Step 9: Downloads & Links

Development Software

Propeller Tool — START HERE! This is the tool for programming in spin or ASM (Windows) (Mac) (Linux)
Imagecraft — this is the tool for programming in C (website)

Other Languages 
PropBasic (website)
12Blocks (website)

Debuggers
Viewport (website)
GEAR (website)

Reference

Propeller Manual (.pdf)
Propeller Fun Book (.pdf) (sourcecode)
Hydra Book (website) (CH6 sample) (CH25 sample)
Programming & Customizing the Propeller (website)

Notes on Graphics_Demo.spin (website)

Software

Propeller Object Exchange (website)
A few of the my favorite objects:
NES Controller
SD Card
Xbox 360 Chatpad (very cool 2 pin keyboard)

Hydra Libraries
A lot of the cool game demos came from here (Download Files).

El Jugador Files

All are available under the MIT License
Layout (.pdf) (.dip)
Schematic (.pdf) (.dch)
Bootloader (sourcecode) (.binary)


Buy the kit from Gadget Gangster;
http://www.gadgetgangster.com/265



<p>Nice project. See also this Retro DIY Game Console based on an ATMEL AVR controller:</p><p>https://www.instructables.com/id/DIY-retro-game-console/</p>
can you copy and paste games from internet to here? if you could id play <br />MiniCraft ( do google search )
Is there any way to upgrade the graphics? No offense, I'm a fan of the retro era games my self, I was just wondering as I am new to this.
Seeing this made me super happy and wanting to do more. How could you make a chip to play SNES Roms on your TV or even play a install file like cave story? Is one of the 2 things I just said possible?
Has anyone tried porting Marathon to this?
Can you make this use a USB controller instead of the ones used in the instructable? If so, how?
For those who like to dig deep into hardware...<br>http://lucidscience.com/pro-lazarus-64%20prototype-1.aspx<br>
You said that this is designed to sit on the propeller platform, but what alterations would be required to make it compatible with arduino instead?
Checkout Uzebox for opensource gaming with Arduino. You won't be able to get sophisticated games like prop. You can think of Uzebox as an equivalent of the old atari consoles where Propeller get's you close to super nintendo performance.
Uzebox uses an AVR microcontroller, but I'm pretty sure it doesn't have the arduino bootloader, though. The uzebox is pretty cool, though!
Good point - it does not have the Arduino bootloader but you could put that in easily if you wanted to (why you would I don't know). But, yes, it's AVR. I'm currently using WinAVR to program it right now.
Won't work with Arduino - it's not fast enough to generate video. There's an arduino shield to do simple black and white text (http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm), though. You'll also need a board to connect the SD card and NES jack. The NES controllers will work at 5V or 3V, but you'll need additional circuitry to connect the SD card, it interfaces at 3.3v.
have you got your finished project in an encloser? theres probably alot of retro type things you could put the board into. like a nes cartridge, betamax tape. clever instructable.
How much does this weigh? I have an idea that can use this, but I would need to know the weight.
I suggest you re picture it plugged-in in front of the TV, with fingers on the buttons. My word I never thought I'd see &quot;JetPac is loading&quot; again!<br /> <br /> L<br />
Good idea!<br /> <br /> Thanks - baggers did the jetpac conversion. El Jugadar is the result of a lot of people's hard work - baggers also helped out with the bootloader.<br />
Out of interest, since these are all 8-bit games (surely) - is the 32-bit processing under-used, or cleverly-used?<br /> <br /> L<br />

About This Instructable

38,864views

139favorites

More by Gadget Gangster:Hack Your Car Talking Resistor Calculator Bananaphone: A Touch Capacitance Synth 
Add instructable to: