Main > Raspberry Pi & Dev Board
Raspberry Pi - cab CPU & game dev platform?
MonMotha:
Anything adhering to a USB class standard fully and not requiring any special software to use is likely going to work. The drivers required just aren't that big, so there's little reason to axe them. This should include things like mass storage (flash drives, card readers, etc.), HID (keyboards, mice, etc.). USB webcams (UVC class - aka "Vista Compatible") should work fine if they bother to include Video4Linux, which frankly isn't that big.
Where you'll run into trouble will be the typical vendor-specific stuff like printers, scanners, Wi-Fi dongles, etc. These are things that have spotty support to begin with and that require somewhat substantial userspace software to help make them work (CUPS, SANE, etc.). Many Wi-Fi dongles on Linux are supported by something called NDISWrapper that basically loads the Windows driver. Unfortunately, this is essentially impossible on ARM since the Windows driver is x86 only.
I've done Linux on ARM for years. In general, if your SoC is supported, once you get the kernel booting on it, lots of stuff "just works". It was a somewhat funny experience to go from a system that frankly did NOTHING USEFUL (Kernel wasn't booting) to a login prompt with full Internet access, USB flash drives working, keyboard/mouse hooked up to an X server, etc. in about 15 minutes. The big challenge is putting a usable desktop environment on it, if that concerns you. Getting a command prompt with all the "guts" working is easy and surprisingly small (I've crammed it into 8MB pretty easily several times).
As for using it to replace a PLC, you can certainly replace the LOGIC side of it - it's MORE than capable. Heck, a little 8-bit, 8MHz MCU is about as capable as your average PLC these days in terms of computation. The reason PLCs cost so much is the bulletproof I/O on them. Swaths of isolated, ESD, and AC line voltage fault tolerant I/O lines just aren't cheap to build. It's a lot of hardware.
Oh, and for what it's worth, I have yet to see a commercial PC based arcade game that makes any real attempt to hide the fact that it's PC based. Most of them show all the BIOS startup screens, and many of them even show the Linux bootup or Windows startup sequence. I'm sure some games hide it, but most don't bother.
AlanS17:
Is there even an ARM version of MAME?
MonMotha:
--- Quote from: AlanS17 on May 01, 2012, 09:56:12 pm ---Is there even an ARM version of MAME?
--- End quote ---
Even if there isn't, MAME is open-source. As long as the programmers didn't make any x86 specific assumptions (and I believe they're careful not to, as a matter of project policy), you can just compile it for ARM. Somebody surely will if it hasn't been done already.
Handily ARM has similar conventions to 32-bit Intel x86 (similar usual type sizes, endianness, etc.), so even if some assumptions were made that may be non-portable, it may just happen to be compatible regardless. Most of the libraries MAME uses on Linux are known to build on ARM already.
Looks like Debian (which is what most embedded "full" distros are derived from - the other popular options being OE/Angstrom and buildroot which are not really "distributions" in the typical sense but more of a "distribution builder") doesn't have a package built for ARM, but it apparently builds for SPARC, which is about as different from x86 as it gets, so it's probably just a matter of somebody doing it.
Generic Eric:
This is kinda relevant
Tutorial - Python - Space Invaders
kahlid74:
--- Quote from: AlanS17 on May 01, 2012, 09:56:12 pm ---Is there even an ARM version of MAME?
--- End quote ---
Yes, there is an ARM version of MAME but it's built of RiscOS so it's a no go for the Pi - http://caesar.logiqx.com/php/emulator.php?id=armmame
MAME is also available in the Debian repositories but withou XMame it fails. This guy appears to have gotten XMAME to work on Debian Arm - http://old.nabble.com/cross-compile-X-mame-td10267580.html
Thanks for the clarifications MonMotha!
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version