Getting started?

Started by Zener, April 07, 2009, 10:00:30 PM

Previous topic - Next topic

Zener

I'm a game designer (for fun, I just write design documents, I've never gotten anything off the ground) and I recently got the crazy idea to actually make a new NES game. Just the ROM for emulator use, of course, not in an actual cartridge. I've got the design documents, a few programmer friends; we might just get this thing off the ground.

It would be blasphemy, though, not to use an actual NES controller to play with, so I googled and found out that it's actually possible to take any sort of game controller, really, and hack it to plug into USB (which is why I find myself at this very forum). "I'm an A-student, I'm relatively smart, I can do this," I thought. But I was wrong, very wrong; almost everything I could find relating to hacking controllers requires some degree of technical expertise (in what I would assume is electrical engineering) which I don't have. Even this...
http://www.gamesx.com/controldata/usbsatpad/index.shtml
...blew my mind. The schematic alone befuddles me.

So, I've decided to take on a project -- learn electrical engineering! Or at least the basics, such that I can look at that schematic and understand it, or read, "Where every other button is held high (+5v) by the chip until grounded (0v) by the button-press, the A button is held 'kinda high' by a resistor (R1) until the button makes it 'very high' by connecting it to +5 volts." and understand what the heck that means.

I don't want to take a class (I'm in college and I have no room to take an introductory EE course) but I really want to learn this stuff. I've always found electronics fascinating, and the thought of cracking open a controller or similar and messing around with it makes a child-like part of my brain giddy with excitement. Plus, I'm an artsy guy (writer, poet, playwright, game designer), I don't know from science, and it's always a good idea to branch out into uncomfortable academic territory.

So, long story short; can anyone recommend me some books to learn the basics of, again, what I assume is electrical engineering? I don't just want someone to hold my hand through the process of hacking a controller or buy an already-hacked one (where's the fun in that?) -- I want to understand it myself.

And uh, just so I know (I don't have that much free time), how difficult roundabouts is it going to be for a complete novice (I'm tech savvy, not a total newb, but PCBs look like Antikythera mechanisms to me) to learn EE enough to understand controller hacking and pull it off? How difficult and how time-consuming?

Thanks.
Stainless Steel vs Permanent Marker: Which company gets sued?

ken_cinder

You don't need to know the ins and outs of everything to do this, just read as much as you can, ask questions where necessary (ie; AFTER trying to figure it out from reading/doing).

The biggest thing though......don't be afraid to screw up! You want to learn to mod an NES controlller? Have 3 or 4 of them, and expect to ruin at least one while learning.

Zener

That's just it -- what do I read? Can you recommend any books or websites? I'm googling and most of what I find on electrical engineering, PCBs, schematics and so forth is too technical or too user-unfriendly (walls of text with no illustrations).
Stainless Steel vs Permanent Marker: Which company gets sued?

viletim

You want to learn electronics, which is a subset of electrical engineering. Go out a buy a beginner's electronics book (or borrow from the library), preferably one with a digital section. Then buy some parts (kits?), multimeter, and soldering iron and build some simple projects.

There's an amazing amount of misinformation on this topic available online so I suggest you learn from a book. There's www.allaboutcircuits.com but it's useless for absolute beginners.

NFG

I wonder if we have the knowledgebase and energy to put together something here...  Hrm!

Zener

@viletim: Electronics, of course, dunno why I kept saying EE. Actually, looking at that website you linked to, Volume I looks entirely managable to me. I do have a high school education, after all, I know about Faradday and the basics of the physics behind magnetism and electricity and so forth, I just don't know how it specifically applies to electrical circuits (and specifically, as I said, how to read schematics and so forth).

I don't know why the prospect of cracking open videogame controllers is intimidating to me. Last year, a CD shattered inside my computer so I cracked it open, took out the disc drive, cracked it open, grabbed some tweezers and removed all the plastic shrapnel. Snapped everything back together the way it was and it's been working fine ever since. I also installed a new HD for my computer when the old one died on me. It's just, for some reason, cracking open videogame stuff seems so much more taboo. You're essentially supposed to open up your own computer when something needs fixed or replaced or added, but videogame manufacturers go to amazing lengths to prevent the end user from opening things up.

Anyway, just to make sure I'm on the right track, as far as I understand it, to convert an NES controller (or any controller, but NES is what I'm doing at first) to USB, all I essentially need to do is get a USB cable, crack open the NES controller, remove its NES cable and hook up the USB to the circuits, right? By soldering the correct wires together, that is. I have soldered before, I tried and failed to make a wireless Wii Sensor Bar. Had problems with the heat shrink (my hair dryer won't get nearly hot enough) and the soldering itself (clumsy fingers), but I'm ready for another try.
Stainless Steel vs Permanent Marker: Which company gets sued?

kendrick

The step you're missing is to change out the controller chip. In the olden days, controllers did literally just close circuits and function as a set of switches, each with its own dedicated wire. Today, controller ports are essentially serial signal connectors that expect an encoded input that tells it which of many switches is closed or open.

Check out the Wiki, as there's a pretty detailed tutorial there.