SNES Computer [SNESpc]

I was just wondering what the latest info. is on this project.

Is it ready for production yet? :laughing:

JK

If you’re looking for an expensive paperweight, yeah, it’s completely ready! :laughing:

Seriously, though, I have the hardware bit 95% done. Everything is at least in place to make it functional. But it seems like the software side is just out for my blood. I installed Debian Linux and couldn’t get the drivers to work, so the video was stuck at 640x480. I installed Suse, and I get a black-screen-of-death when I try to boot. Oh yeah, and the resolution was stuck at 640x480 througout the installation process.

I got frustrated with the project and had to set it aside for a while. This weekend I hope to have a chance to work on it again.

Who knows? I may actually get it to work this time!

That is the best thing to do, just take a break and come back later. :laughing:

ya, like some famous guy once said “Leave it, work on it, than smash it”… or was that me?? :smiley:

Project Update

I’ve revisited this project after quite a long delay, and I’ve got both good news and bad news. The good news is that I finally have the SNESpc working! The bad news is that I had to resort to installing Windows XP to do so.

On the Linux side, I tried installing Debian (Sarge, I believe), SuSe, and Debian Etch, with varying results every time. The best result was with Etch, and even that wasn’t satisfactory. I wasn’t pleased with the command-line interface for the emulators I found, and my SNES-to-USB converters weren’t being recognized by the majority of the emulators I tried. The TV-Out would not work, although in hindsight that was probably because the jumper setting was incorrect for that. (This actually wasn’t my fault; the jumper information in the M10000 documentation was listed backwards.)

When I caved and installed Windows XP, surprisingly enough, everything went smoothly. The emulators work, the controllers are recognized, and after some trial-and-error experimentation, the poor jumper documentation was overcome and the TV-Out works. (And as a plus, the computer boots and shuts down in a matter of seconds. It’s impressive compared to my computer here at work, but I suppose it just comes from being a fresh install and having no additional programs installed.)

The 1ghz processor is plenty fast enough to run the SNES games, which was the original goal of the project. Unfortunately, it’s not quite fast enough to run GameBoy Advance games. I’d hoped to be able to play my GBA games on a larger screen to give my poor eyesight a break, but alas, I’ll have to make due with squinting at the tiny screen. :laughing:

As far as the hardware/mechanical bits go, I think I’m going to have to make a SNES-shaped case, as the ones I have are fragile beyond acceptability. (I knocked a chunk of the case off by bumping it with the CD drive I was using for software installs.) I’m thinking vacuum forming (vacuuforming?) would work well, at least based on my admittedly limited knowledge on the topic.

I have to find a way to protect the metal bits on the hard drive from touching metal bits on the motherboard, and I’ve not yet come up with a winning idea on that front, either.

As usual, I apologize for my long-winded post. Praise and/or constructional feedback is welcomed, especially on the topics of the last few paragraphs. :wink: Pictures are coming, as soon as I can put down the controller. (Zelda isn’t addictive. Really.)

I found this project awhile back. I like the work, and have been tempted in the past to make my own ITX console, though I wanted to transform an N64 or ColecoVision.

As far as Linux goes, I’m surprised you couldn’t get Debian Etch to work. What X.org config did you try? The video is an S3 Unichrome, and unfortunately the vesa and S3 X.org modules probably don’t work. There is a Linux Unicrome project unichrome.sourceforge.net/, though they are not imcorperated into Etch already. I found this review informative also: flaviostechnotalk.com/wordpress/index.php/2005/07/17/reviews-via-epia-m1000-mini-itx-motherboard/

Your Smart-Joy USB SNES adaptors are known to work on Linux as plug and play HID devices. I’m surprised you had issues.

SNES9x has regressed in terms of features. The Windows version a number of years back was much better than it is today. There was a working Linux version, but the one I have is very flakey. My guess is there was a code dispute or something. ZSNES has menus under Linux and uses SDL, so should be okay.

As far as the hard drive goes, you might want to try a DOM if you’re tight for space inside the SNES. Creative placement of the drive in an SNES cartridge permantely stuck into the console might also work if you really need the hard drive space.

Also realize that the M1000 is a really underpowered system. Intel sold the Mhz myth, but not all 1.0 Ghz machines are not created equal. The C3 in that system is not even the most powerful 1.0 Ghz C3 that exists. There was a review on mini-itx.com that said the later model C3 was actually slower, though used less wattage. Think more like a Pentium III 350 Mhz, and that video card is around the level of a Voodoo Banshee. As much as it might suck to have to buy a new ITX board, there are much, much more powerful options. This is something to seriously consider.

If you intend to stick to XP you might have a look at litepc.com/

could free up a couple of those precious hz

nick_a

@Nick_A: Yep, that was going to be my next step as soon as I can get to it. There’s so much additional crap–er, unnecessary applications and whatnot that I could get rid of from XP.

@Tillin9: Thank you! An N64 would be interesting to see. (As for the ColecoVision, well, the NES is about as far back as I can remember. I’m sure it’d be interesting as well, though.)

Ah, Linux. I am but a mere dabbler when it comes to Linux, and while in some applications the lack of knowledge and experience would be passable, in this I am simply over my head. About a week or so ago a Linux-guru friend of mine came down from Chicago to help me out, and in the limited time we had, we could get it to boot Etch, and run the emulators, but had problems with the controllers and the TV-Out. (We could see the controllers in the list of bits attached to the computer, but couldn’t figure out how to interface with them. I’m fairly confidant that given more time, we could have made it work, but with the constrictive time limit, it was a no-go. Also, the TV-Out not working was the fault of the incorrect documentation, as the jumper was in the wrong position. Of course, there’s no easy way to tell if it would have worked had the jumper been in the correct position.)

I’m using a laptop hard drive via a converter; it’s small, so I don’t see any problems with it. I just need to figure out how to protect it from touching other metal bits in the case. (I’ve read about people covering the hard drive with electrical tape, but that seems a bit overkill, as well as a possible heat problem.)

I checked out that review, as well as some of the newer models of ITX boards; informative, and perhaps a bit disappointing. When I purchased my board – it was, wow, about a year ago, now – I bought the M10000 because it looked good, had positive reviews that I could find, and fit within the budget I had allocated for the project. I only see up to 1.5ghz boards; not sure how much of a difference the .5ghz would make. I’ll probably just stick with the board I have now, as I’ve already used the funds for the project, and, well, it works the way it is now. :wink:

Thanks for the replies, sorry for writing a book, etc. :wink:

Sorry to have to point this out, and I can more than understand if you don’t want to spend more money on getting a new motherboard, but your statement of there not being a much better board is incorrect.

You might want to check out this thread lynxmotion.net/viewtopic.php?t=1978&postdays=0&postorder=asc&start=0. I give an example of a set of rather high-end ITX of systems I am currently working on. The ITX board pictured there actually supports even higher end chips, but I plan on using a Core Duo 2 E660 2.4 Ghz processor, and spending a total of $1015, $400 for the board, $315 for the processor, $300 for 4GB of Cosair Dominator DDR2 RAM. I would estimate this combination as a good 12-14 times more processing power than the M1000. It also allows for the use of a PCIe x16 graphic card. I haven’t decided what I will get, and am hoping for one of the new ATI R600 based line of cards for use in my new desktop.

If you’re limiting yourself to VIA realize the difference between the C3 and the newer C7. This newegg.com/Product/Product.aspx?Item=N82E16813181021 board is also VIA and more reasonably priced, but while still 1.0 Ghz, probably about 3-4 times faster than the M1000.

If Linux isn’t your cup of tea, I can somewhat understand if things didn’t work. I highly suggest before going to PC lite to download Spybot Search and Destroy and using the Startup tools in Advanced Mode. This will let you disable all those useless systray and resident programs which get installed by default and consume precious resources. Of course the actualy spyware scan and immunization doesn’t hurt either. One of the reasons I can afford to go so high end now is because for the past 6+ years I’ve been using a set of PIIIs as my primarly computers (the Core Duo 2 workstation I get to play with isn’t mine, it belongs to the lab) and hopefully I’ll get just as long a life out of these new machines. While I’ve never tried XP on something as slow as the M1000, it works just fine on my PIII 650 after getting down to roughly 18 processes at startup.

Sorry again about being pedantic. Hope anything I said was helpful.

Ah, sorry for the slight misunderstanding, but I just meant that I only found a few 1.5ghz board on the website I was looking at. (mini-box.com) And I wasn’t sure how much difference the .5ghz would make.

I’ve noticed you keep mentioning the M1000 board, but what I have is the M10000. Not sure if it’s just a persistent typo, or if the extra “0” doesn’t mean anything, but I thought it best to point that out.

Also, this might be a silly question, but how do you know which processors/boards are faster or slower? (I poked around a bit but didn’t see any mention of “this board is fast!” or the like. :laughing: )

I wasn’t necessarily limiting myself to any specific brand/technology, but VIA was recommended to me way back when I started this project.

Thanks for the tip; I’ll have to check out that program. While I doubt I can get rid of enough Windows-installed junk to be able to run the GBA emulator, getting rid of the stuff certainly can’t hurt.

No problem; it helps to be able to talk to people about this project.

Yea that’s odd, a lot of places refer to the M10000 and M1000 as the same thing. The review I found is titled M1000 but looking at the pictures of M10000 on mini-ITX.com, they’re clearly the same board. I’ll have to double check the review I was looking at which benchmarked speed, but am reasonably sure it was talking about the right board.

As far as processor speed, to compare speeds between processors of the same family you compare clockspeed. To be able to do this, you need to know the core of the chips you’re comparing. Different cores have different properties. I may become a little verbose here, but the idea is that there are many ways to implement the same functionality in silicon, some being faster at the cost of using more transistors. As you can pack more transistors onto a processor, some of these speed/ size tradeoffs become economically viable.

A good thing to look up is binary adders en.wikipedia.org/wiki/Adder_(electronics) (yes, phpBB won’t format URLs with ()s correctly), since this is usually the first thing taught. A ripple carry adder is the slowest adder (well, I’m sure in theory one could design slower) but uses very little silicon. It is just a chain of single bit binary adders. The downside is that to figure out the values at bits further down the chain, the carry input has to ripple down the chain. This takes time. To make things faster adders, you can increase the amount of hardware used. Carry look ahead adders do this by computing the result of the addition if the carry in was 0 and 1 for a specific block of the adder, they use a multiplexer to pick the right value when the carry of the previous block is done. There are even faster adders, but it gets much more complicated. This idea carries across for all microprocessor functions. In addition to using more transistors, there are ways to do the same things more efficiently. Again this is rather complex and usually finding it is the result of high-level research, i.e. there is usually no choice to use something less efficient with the same number of transistors, though something like fabrication complexity might play a factor here.

x86 is also further complicated in that Intel has expanded the lowest level instruction set many times. You might be familiar with terms like MMX, SSE, SSE2, etc. Each set of extra functions implemented in hardware allows for the processor to be faster. This assumes the software utilizes it and the problem of a compiler to turn high-level instructions like C code into good machine code is a very hard one. Because Intel knows their chips the best, this is why binaries generated with the Intel C compiler are faster than those generated by gcc.

The VIA cores have three revisions, Ezra, Nehemiah, and Esther. Most C3s are Nehemiah and all C7s are Esther. The design philosophy of these chips is to make then smaller (i.e. fewer transistors) than their Intel and AMD brethren. The idea is fewer transistors means less heat and makes them also cheaper to produce. Thus while the Core Duo utilizes a crazy branch predictor compressor tree adder, the C7 uses a slower carry look ahead. Similar speed compromises are present in the rest of the architecture, for example the chip does not have the ability to execute instructions out of order (something Intel and AMD CPUs do to improve speed), and nearly all the more complex x86 instructions (MMX, SSE, etc.) are faked in microcode, i.e. they are turned into the previous slower software implementations as a combination of simpler functions. Although both chips actually have hardware multipliers, since multiplication is simply repeating addition, one can in theory only have an adder on the chip and simply implement a multiply command by repeated additions. Processors that must utilize an absolute minimum of transistors (like the Basic Atom’s PIC CPU) may do something like this. (I honestly don’t know what the inside of the PIC looks like.)

Anyway…I could go on, but the important thing to remember is that the Pentium III is a much more efficient core in terms of instructions it can execute per clockcycle than a C3 and C7 (although VIA did close the gap a bit with the C7), but remember Intel came out with chips better than a Pentium III. All of the general efficiency is reflected in CPU benchmarks like SPEC (Sandra uses a highly related benchmark called Whetstone). A slightly less scientific, but often used, benchmark is the number of BogoMIPS the Linux kernel reports at startup. A Core Duo 2 is in the 8000 range, where as a Pentium 4 D is around 5000 and a Pentium III is closer to 600. Using SPEC benchmarks is how I came up with those numbers and comparisons.

Oh come on… why not make a small PVC board for the HDD to sit on and protect the electronics. I am sure you will slap your head for not thinking that but sometimes it does help to step away for a while.

I agree electical tape would not be the best idea… might work but that leaves a major Getto feeling.

Ok, here goes. -Slaps head!- :laughing: Yeah, that’s a major d’oh! moment. :blush:

[size=75]I was too excited about being able to play Zelda again to think about the details.[/size]

hehehe yeah maybe it was a good thing for me to come back when I did :wink:

Project Update

Well, although I haven’t been posting here, I have in fact been working on the SNESpc. I now have everything working under WinXP, and I’m getting ready to fit it all in the case.

The emulator I’m using requires the use of the “Esc” key to access the menu. Rather than haul around an entire keyboard, I opted instead to gut a cheap USB one (roughly $4 from NewEgg), and retrieve the electronics from inside. By checking continuity on the traces under the “Esc” key on the plastic sheets inside the keyboard, I was able to figure out which bits of the board need to be connected to trigger a press of the “Esc” key. Soldered a switch to the board, superglued the switch near the Reset button on the SNES case, and voila! Pressing the SNES reset button now enters or exits the emulator’s menu.

http://www.snailkeeper.com/images/projects/snesputer/lid01.jpg

I’ll be connecting the keyboard to the USB hub I bought, and as soon as I make a shelf for the harddrive and hook up the power switch, it’ll be time to close it up.

More pictures will be taken later!

That is very nice! I cant believe you made such a cool thing! :smiley:

I’ll take that as a compliment. :wink: Thanks!

It’ll be even cooler once it’s all wired properly and sealed up. I’ll be posting images, video, and making a tutorial when I get all the kinks worked out. =D

Haha, of course it was a compliment :smiley:

This is a cool bit of engineering. The USB keyboard hack is very slick.

I have a Messiah Generation NEX and a big pile of carts, so I can relate. :smiley: I might have to play a little Solomon’s Key after work today…

You are going to install a cooler on it too?

8-Dale