iammud
05-25-2010, 02:00 PM
Did you know that you can launch Xbox games through Hyperspin? The idea is to launch the game on your Xbox over FTP, then switch the controls and video using an automated process from the PC. I don't use HyperLaunch so I won't be providing you with AHK scripts, but this can certainly be achieved with it. This logic can also be applied to many systems, such as Naomi, N64, SNES, NES, Genesis, and more. Though, for this "tutorial" we'll be using the Xbox as an example. Xbox1 & 360 are pretty much the same in regards to this.
While it's not required, I'm somewhat expecting anyone reading this to figure out how to control relay switches from a computer (Arduino, Teensy, parallel port, whatever). At minimum, know how to use an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster). I also talk about RS-232 (http://en.wikipedia.org/wiki/RS-232), which is the interface serial or parallel use to talk to many electronic devices. I'm also going to assume you can handle most of the script coding yourself.
Also, to do this you'll need a modified Xbox with Evox or XBMC for the original and Freestyle Dash for the 360. I'll get into the rest of the hardware required below.
Game Launching
First, connect a modified Xbox to your PC, using a router, hub, or switch cable. Create a batch file on the PC with this code (unique info is in italics).
ftp -s:xboxexec xbox IP address goes here
xbox
xbox
quote
site execute f:\games\gamedirectory\default.xbe
*Note - This method is for Evox.
For XBMC: site runxbe f:\games\gamedirectory\default.xbe
360 is the same as above, except the raw command might be different depending on the dashboard you're using, and you'll use XEX instead of XBE.
The launch will be instant since you're executing the game and not transferring it. Next you need to swap your video and controls to the Xbox. I've simplified my setup to a few command lines to trigger two com ports that control my monitor and USB switch via RS232. However, the chance of you having my monitor and setup is pretty slim, so I'll have to generalize on how this can be done.
Warning!
From here on out most of these are only ideas on how you can achieve this. I'm just trying to spark a flame, not give you a step by step guide. I have tested some of these, but I don't have the gear to test them all. While most of the methods to achieve this are harmless, other methods involve using relays to disable controller ports and power, which if done improperly may damage your monitor, system, or life. Attempt these at your own risk!
Video Switching
You're probably thinking the best way to get the Xbox displaying on the same screen as the HS computer is by importing the video signal into the computer using a capture card of some sort. While these would be ideal, I have yet to find one of these that doesn't create at least some video lag.
If you have a TV that can accept both your computer and Xbox video inputs, you can switch between them with an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster). IR Blasters can be had for relatively cheap, and aren't difficult to use.
Most presentation monitors can be controlled from a computer via RS232 or similar. Sometimes these are DB-9 serial ports, but often they're HD or DB 15, making them easy to overlook, so check your manual. I personally use the NEC XM29 (http://www.jurai.net/~jjpatt/forsale/NEC_XM29.pdf), which has RS232 and its own I/O interface. The XP29 is ideal for something like this, because it accepts component as well. As well, quite a few newer HDTVs & monitors can be controlled through a network or RS232.
Many high end stereo receivers have custom integration features, allowing you to control them from the PC. Again, look for the DB9 or RJ45 jacks on the back. Most of these should allow you to switch between a few A/V inputs. If not, nearly every receiver has R support, which again can be controlled by an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster).
While they can be hard to find for the original Xbox, most consoles have VGA adapters that also have a throughput for your computer. What I've seen done in the past with these is replace the manual switch on the side with a relay. Alternatively, a-lot S-Video/Composite to VGA boxes a throughput, too.
Keyboard Video Mouse switches work great. Various companies make RS232 controlled KVMs. As well, there's VGA only matrix switches if you wish to have more than a few consoles on your setup (practically every game system is capable of RGBHV with some effort).
Belken makes them with remote switches (http://www.belkin.com/IWCatProductPage.process?Product_Id=379847). Controlling these is essentially the same as controlling any relay with a microcontroller. Even a parallel or serial port (or usb->serial adapter) can be used to switch these. *Warning - doing this wrong will destroy your KVM. Attempt at your own risk.
A KVM with hot key support can be used if you're using a keyboard encoder (with a PS/2->Xbox adapter) instead of the Xbox pad. I suggest finding one that allows you to customize your hot key. This is not ideal since it would require either 2 start/quit buttons, or similar. While I've never actually seen it, I hear you can simulate keystrokes through PS/2 via RS232 (http://www.gedanken.demon.co.uk/rs232-converters/ps2.html) or RS232 to USB (http://www.vetra.com/335Utext.html). *Note that while RS232 to USB keyboard devices are expensive, they can also be used to macro game launches for PS3s and Xboxes, since these have keyboard support.
For you wire haters, various companies make IR controlled KVMs (http://www.amazon.com/2PORT-Switch-Includes-Microphone-Cables/dp/B0007ZAF6M), which again can be controlled from an IR Blaster. There's also RF ones, but I don't know how to transmit RF from a computer.
There are A/V switch boxes that have RS232 (http://es.startech.com/AV/Conmutadores/Conmutador-de-Video-Componente-4-Puertos-con-RS232~VS421CPNTA) and IR (http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10112&cs_id=1011201&p_id=3027&seq=1&format=2). Also, a component A/V switch could be used to switch VGA, Just use a multimeter to make sure it has a throughput for each channel, and doesn't encode the YPbPr signal, then use VGA->BNC 5 wire cables and BNC->RCA adapter plugs.
VGA Video
The easiest way to get VGA is from a S-Video/Composite to VGA box (http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10114&cs_id=1011407&p_id=4722&seq=1&format=2) or Component to VGA. Unfortunately the ones manufactured for the Xbox aren't much better than these, and are hard to find.
The better solution is to make a VGA cable (http://forums.xbox-scene.com/index.php?showtopic=213487). This (http://forums.xbox-scene.com/index.php?showtopic=213487) tutorial also shows you how to get 15khz out of the original Xbox.
For 360 they make VGA cables. However, I suggest staying away from the cheap ones if you wish to use them above 48khz (1024x768). If you don't plan on going above that resolution, these are ideal in many situations since they usually have a built in optical audio port. I also don't think it's possible to get 15khz out of these.
Controls
You likely already know that all wired Xbox1 controllers are USB, just a different plug. If you don't know how to convert these over, I suggest you stop now, and find something else to do. With that being said, if you're using a KVM just plug your controllers into the master keyboard and mouse usb ports, then output back to your PC and Xbox. Use the XBCD drivers (http://www.redcl0ud.com/xbcd.html) on the computer. This is probably the cheapest method for most.
Toodles' MC Cthulhu (http://www.shoryuken.com/showthread.php?t=162026) supports Xbox1. It doesn't actually support 360 on board, so just use a PCB made for 360 if you want that.
Wireless controllers with dongles would work great. Unlike WiFi or Bluetooth (360 & PS3), RF or IR will work on multiple devices at once. Get an extra dongle for your wireless controller, and hook one up to the console and the other to the PC (using the XBCD drivers). Back up your dashboard ini, then remove all of the items from it that pertain to launching games or apps (rebooting, etc), so no button presses will affect the Xbox until the game is booted. Hyperspin will ignore inputs just the same as being in an emulator, so this will work perfect. Unfortunately, due to syncing, this will not work on wireless 360 controllers, unless maybe if they're a third party one that uses RF.
The best way is to use a keyboard encoder (1 per player), and use one of a PS/2 to Xbox (http://www.xcm.cc/XFPS.htm) adapter to convert the encoder to Xbox controls (again, 1 per keyboard encoder). This obviously is the most expensive method, but it's worth it if you use games on the PC that have no gamepad support (joy to key methods add input lag). I've never used one of these before and have heard bad things in the FPS community, but then I know people who play fighting games with them that claim they're great (I assume it's the mouse that's crappy on these).
Xgaming's (http://www.xgaming.com/) X-Arcade encoders (http://www.xgaming.com/store/arcade-parts-and-accessories/product/x-arcade-byo-arcade-usb-ps2/) w/ adapters (http://www.xgaming.com/store/category/x-arcade-adapters/) would work, but I really don't like these. This is the alternative method to having keyboard encoder on pc that'll also work on the Xbox. If you plan on using one of these on a KVM prepare to be in adapter hell. The easier method with these is to just use the Xbox USB, but this will kill the keyboard functionality of the encoder. If money isn't an issue, you can get an electronic DB9 switch that uses all 9 channels of the port (just make sure it's not exclusive to RS232, and has a throughput for each channel).
Control Switching
If you're running wireless controllers then you don't have to switch anything, because you're relying on Hyperspin and your stripped dashboard's abilities to ignore the controller at the appropriate times, while sharing their signal data.
If you're using a USB KVM, just plug them into the keyboard and mouse ports. This may not work great on all KVMs for 2 players, but will work great for nearly all of them for single player.
Alternatively, there are many ways to hack USB switches (http://hackaday.com/2011/09/29/remote-controlled-usb-switch/) to do this.
Power Cycling
The Xbox needs to be rebooted once you're finished playing, so it's ready to launch another game. For 360 you can always use the home button. However, since you likely want to use your start/quit button to do this, you need to find a way to reboot the system remotely from the PC.
Really, you should hardwire a start/quit button to the computer, omitting this function from the Xbox controls altogether. These are easy to make using a serial port (http://www.jezra.net/projects/serial_switch), or USB to serial adapter. Since ghosting isn't an issue with just a single button, ANY hacked keyboard will work. While it's a huge waste since you're only using only one button, any keyboard encoder could be used, too.
With the original Xbox there's some tricks to achieve power cycling from software. For example, Evox can be setup to ignore reboots while on dashboard. Assign your start game button to the same button as your bios reboot. This way the reboot function does nothing until an Xbox game is started. However, you'll need to modify your bios to reboot from 1 button, or I assume you could just attach 4-6 buttons used to reboot the Xbox controller to 1 button. As well, a script will have to be written for the PC to listen for Xbox FTP to become available, so it knows it's time to switch the controls and video back. I hate this method because your quit time takes as long as it takes for your Xbox to reboot. There's still quite a few ways these things can be used to create a decent power cycle method, so they're worth a mention.
Luckily most consoles are capable of auto-booting on power restore.
For the original Xbox, simply remove the faceplate from the box, pull the power/eject PCB out, and close the circuit on the back of the power switch with some solder and wire.
The 360 is able to boot from keyboard, so I have a hunch that if you closed the circuit on a keyboard key, and leave it plugged into the box it will always boot when power is restored. You should also be able to use a RS232 to USB Keyboard (http://www.vetra.com/335Utext.html) device (again, these can be used for a range of things, so don't let the price fool you). Alternatively, 360 has an IR sensor, which can be used with an IR Blaster.
Now that the Xbox is setup to boot whenever power is connected, we need a way to disconnect the main AC. If you're using a hardwired start/quit button from the PC, you can power cycle from the console's mainline quite a few ways. The easiest and safest way is to use a USB controlled power strip (http://www.pwrusb.com). Or for 360, use the IR Blaster.
I've seen plenty of IR (http://www.bakatronics.com/shop/item.aspx?itemid=765) controlled 120VAC and 220VAC relay switches. I have no clue if these are China crap or not, though. *Attempt at your own risk.
For those of you using a USB microcontroller such as the Arduino or Teensy, splice a 120VAC (safer w/ 220VAC) capable relay into your power cable. *Again, do at your own risk!
Controlling Relays
Throughout the tutorial I'm sure you've heard me mention wiring in a relay. To do this you'll need a controller board.
Devices such as the Arduino (http://www.arduino.cc/playground/uploads/Learning/relays.pdf) and Teensy (http://www.pjrc.com/teensy/) are made for this.
You can build a controller using a UART cable and an Atmega IC (http://www.larsen-b.com/Article/370.html).
Or simply use a parallel port (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=parallel+port+relay+switch#hl=en&safe=off&sclient=psy-ab&q=parallel+relay+switch&oq=parallel+relay+switch&aq=f&aqi=g-v1&aql=&gs_l=serp.3..0i15.9229.14532.1.14723.38.22.2.3.3.8 .275.3888.0j19j3.22.0...0.0.fzWhuM75zkA&psj=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=34e53121a770dfc0&biw=2016&bih=1155).
Other Systems & Launch Methods
The video/controls/power switching method I described above can be applied to many other systems besides Xbox. Also, there's other ways besides FTP to get console games to launch.
The Freestyle Dashboard (http://www.teamfsd.com/) on the 360 has FTP raw commands. The above batch example should work fine if you change to XMB to XEX. I don't have a JTAG/glitched box at the moment to test this on, but IIRC the execute command is the same as Evox; at worst the raw command is different.
Everdrive (http://krikzz.com/) flash carts (N64 (http://krikzz.com/ed64.html), SNES (http://krikzz.com/severdrive.html), Genesis (http://krikzz.com/link-unit.html), and soon TG16) all have the ability to transfer the game to a flash cart, via USB. Only one command sent from HS (usbtool c:/rom.bin). Once the file transfer is finished the game automatically starts. Unfortunately, there's around 15-45 seconds of load time for each game.
For NES use the CopyNES (http://www.retrousb.com/product_info.php?cPath=24&products_id=36) with a programmable flash cart (http://www.retrousb.com/product_info.php?cPath=24&products_id=35). *Unfortunately RetroUSB isn't selling the CopyNES at this moment. Alternatively, you can use the serial controller port mod (http://youtu.be/iaVdaMGswi4) with a PowerPak (http://www.retrousb.com/product_info.php?cPath=24&products_id=34).
I once met a guy who used to control his Atari 800XL over a network, using command prompt to launch games on it. I assume the Lantronix Device Server (www.lantronix.com/device-networking/external-device-servers/mss100.html) could be used to achieve this. For models that are cartridge only, the Maxflash Multi-Cart (http://www.atarimax.com/flashcart/documentation/) has USB support. However, I have no clue if these work like the Everdrives.
PS3 does not have any way to execute or stream games over FTP. However, since Playstation's XMB can be controlled by keyboard or IR, an IR Blaster or RS232 to USB keyboard converter (http://www.vetra.com/335Utext.html) can be used to macro game launches.
Alternatively, 1 game on the PS3 can be launched using the PS3 Macro Hexcode for Teensy (http://www.ps3news.com/ps3-hacks-jailbreak/ps3-controller-automation-with-teensy-2-0-macro-arrives/). For Xbox, you can use Teensy's USB keyboard code (http://www.pjrc.com/teensy/usb_keyboard.html) to essentially do the same thing. These methods are also the solution for those who wish to keep their Xbox unmodified.
While it's a slower method, Naomi Net Dimms can transfer and launch (http://youtu.be/tY0SF-JTzZA) games via FTP. Additionally, a PSX to arcade adapter allows you to have one controller work on both the PC and Naomi. Switching the controls might prove to be difficult, though.
I bet Dreamshell (http://web.vtc.edu/users/cph11120/DreamcastProject/Software/Dreamshell.htm) has some pretty cool tricks up its sleeve, since it's just Linux. Still waiting to receive my adapter from China. At worst I'll have to rely on my favorite little RS232 to USB keyboard converter (http://www.vetra.com/335Utext.html) thingy.
Obviously the hard part of a multi-console setup is the controls. If you want hardwired arcade, Toodles' makes a Multi-Console Cthulhu ([URL="http://www.shoryuken.com/showthread.php?t=162026"). For the consoles the Cthulhu doesn't support they make/made PSX adapters for, so it can be used with practically anything. Again, since there's PSX adapters for every system I've described you can use Playstation 1/2 controllers, too. However, neither of these control methods will allow you to hook 1 controller up to multiple consoles at once. There's someone working on his own PCB to do this, but he's got hacked Genesis 360 and Dreamcast controller PCBs in his design, and is using relays to switch everything. Someone else I know is designing a simple circuit that uses five 16-channel multiplexers and 16 (or less) relays, which will let you output a single Cthulhu to every system it supports. More on this later.
That's it. Good Luck, Have Fun!
While it's not required, I'm somewhat expecting anyone reading this to figure out how to control relay switches from a computer (Arduino, Teensy, parallel port, whatever). At minimum, know how to use an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster). I also talk about RS-232 (http://en.wikipedia.org/wiki/RS-232), which is the interface serial or parallel use to talk to many electronic devices. I'm also going to assume you can handle most of the script coding yourself.
Also, to do this you'll need a modified Xbox with Evox or XBMC for the original and Freestyle Dash for the 360. I'll get into the rest of the hardware required below.
Game Launching
First, connect a modified Xbox to your PC, using a router, hub, or switch cable. Create a batch file on the PC with this code (unique info is in italics).
ftp -s:xboxexec xbox IP address goes here
xbox
xbox
quote
site execute f:\games\gamedirectory\default.xbe
*Note - This method is for Evox.
For XBMC: site runxbe f:\games\gamedirectory\default.xbe
360 is the same as above, except the raw command might be different depending on the dashboard you're using, and you'll use XEX instead of XBE.
The launch will be instant since you're executing the game and not transferring it. Next you need to swap your video and controls to the Xbox. I've simplified my setup to a few command lines to trigger two com ports that control my monitor and USB switch via RS232. However, the chance of you having my monitor and setup is pretty slim, so I'll have to generalize on how this can be done.
Warning!
From here on out most of these are only ideas on how you can achieve this. I'm just trying to spark a flame, not give you a step by step guide. I have tested some of these, but I don't have the gear to test them all. While most of the methods to achieve this are harmless, other methods involve using relays to disable controller ports and power, which if done improperly may damage your monitor, system, or life. Attempt these at your own risk!
Video Switching
You're probably thinking the best way to get the Xbox displaying on the same screen as the HS computer is by importing the video signal into the computer using a capture card of some sort. While these would be ideal, I have yet to find one of these that doesn't create at least some video lag.
If you have a TV that can accept both your computer and Xbox video inputs, you can switch between them with an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster). IR Blasters can be had for relatively cheap, and aren't difficult to use.
Most presentation monitors can be controlled from a computer via RS232 or similar. Sometimes these are DB-9 serial ports, but often they're HD or DB 15, making them easy to overlook, so check your manual. I personally use the NEC XM29 (http://www.jurai.net/~jjpatt/forsale/NEC_XM29.pdf), which has RS232 and its own I/O interface. The XP29 is ideal for something like this, because it accepts component as well. As well, quite a few newer HDTVs & monitors can be controlled through a network or RS232.
Many high end stereo receivers have custom integration features, allowing you to control them from the PC. Again, look for the DB9 or RJ45 jacks on the back. Most of these should allow you to switch between a few A/V inputs. If not, nearly every receiver has R support, which again can be controlled by an IR blaster (http://en.wikipedia.org/wiki/Infrared_blaster).
While they can be hard to find for the original Xbox, most consoles have VGA adapters that also have a throughput for your computer. What I've seen done in the past with these is replace the manual switch on the side with a relay. Alternatively, a-lot S-Video/Composite to VGA boxes a throughput, too.
Keyboard Video Mouse switches work great. Various companies make RS232 controlled KVMs. As well, there's VGA only matrix switches if you wish to have more than a few consoles on your setup (practically every game system is capable of RGBHV with some effort).
Belken makes them with remote switches (http://www.belkin.com/IWCatProductPage.process?Product_Id=379847). Controlling these is essentially the same as controlling any relay with a microcontroller. Even a parallel or serial port (or usb->serial adapter) can be used to switch these. *Warning - doing this wrong will destroy your KVM. Attempt at your own risk.
A KVM with hot key support can be used if you're using a keyboard encoder (with a PS/2->Xbox adapter) instead of the Xbox pad. I suggest finding one that allows you to customize your hot key. This is not ideal since it would require either 2 start/quit buttons, or similar. While I've never actually seen it, I hear you can simulate keystrokes through PS/2 via RS232 (http://www.gedanken.demon.co.uk/rs232-converters/ps2.html) or RS232 to USB (http://www.vetra.com/335Utext.html). *Note that while RS232 to USB keyboard devices are expensive, they can also be used to macro game launches for PS3s and Xboxes, since these have keyboard support.
For you wire haters, various companies make IR controlled KVMs (http://www.amazon.com/2PORT-Switch-Includes-Microphone-Cables/dp/B0007ZAF6M), which again can be controlled from an IR Blaster. There's also RF ones, but I don't know how to transmit RF from a computer.
There are A/V switch boxes that have RS232 (http://es.startech.com/AV/Conmutadores/Conmutador-de-Video-Componente-4-Puertos-con-RS232~VS421CPNTA) and IR (http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10112&cs_id=1011201&p_id=3027&seq=1&format=2). Also, a component A/V switch could be used to switch VGA, Just use a multimeter to make sure it has a throughput for each channel, and doesn't encode the YPbPr signal, then use VGA->BNC 5 wire cables and BNC->RCA adapter plugs.
VGA Video
The easiest way to get VGA is from a S-Video/Composite to VGA box (http://www.monoprice.com/products/product.asp?c_id=101&cp_id=10114&cs_id=1011407&p_id=4722&seq=1&format=2) or Component to VGA. Unfortunately the ones manufactured for the Xbox aren't much better than these, and are hard to find.
The better solution is to make a VGA cable (http://forums.xbox-scene.com/index.php?showtopic=213487). This (http://forums.xbox-scene.com/index.php?showtopic=213487) tutorial also shows you how to get 15khz out of the original Xbox.
For 360 they make VGA cables. However, I suggest staying away from the cheap ones if you wish to use them above 48khz (1024x768). If you don't plan on going above that resolution, these are ideal in many situations since they usually have a built in optical audio port. I also don't think it's possible to get 15khz out of these.
Controls
You likely already know that all wired Xbox1 controllers are USB, just a different plug. If you don't know how to convert these over, I suggest you stop now, and find something else to do. With that being said, if you're using a KVM just plug your controllers into the master keyboard and mouse usb ports, then output back to your PC and Xbox. Use the XBCD drivers (http://www.redcl0ud.com/xbcd.html) on the computer. This is probably the cheapest method for most.
Toodles' MC Cthulhu (http://www.shoryuken.com/showthread.php?t=162026) supports Xbox1. It doesn't actually support 360 on board, so just use a PCB made for 360 if you want that.
Wireless controllers with dongles would work great. Unlike WiFi or Bluetooth (360 & PS3), RF or IR will work on multiple devices at once. Get an extra dongle for your wireless controller, and hook one up to the console and the other to the PC (using the XBCD drivers). Back up your dashboard ini, then remove all of the items from it that pertain to launching games or apps (rebooting, etc), so no button presses will affect the Xbox until the game is booted. Hyperspin will ignore inputs just the same as being in an emulator, so this will work perfect. Unfortunately, due to syncing, this will not work on wireless 360 controllers, unless maybe if they're a third party one that uses RF.
The best way is to use a keyboard encoder (1 per player), and use one of a PS/2 to Xbox (http://www.xcm.cc/XFPS.htm) adapter to convert the encoder to Xbox controls (again, 1 per keyboard encoder). This obviously is the most expensive method, but it's worth it if you use games on the PC that have no gamepad support (joy to key methods add input lag). I've never used one of these before and have heard bad things in the FPS community, but then I know people who play fighting games with them that claim they're great (I assume it's the mouse that's crappy on these).
Xgaming's (http://www.xgaming.com/) X-Arcade encoders (http://www.xgaming.com/store/arcade-parts-and-accessories/product/x-arcade-byo-arcade-usb-ps2/) w/ adapters (http://www.xgaming.com/store/category/x-arcade-adapters/) would work, but I really don't like these. This is the alternative method to having keyboard encoder on pc that'll also work on the Xbox. If you plan on using one of these on a KVM prepare to be in adapter hell. The easier method with these is to just use the Xbox USB, but this will kill the keyboard functionality of the encoder. If money isn't an issue, you can get an electronic DB9 switch that uses all 9 channels of the port (just make sure it's not exclusive to RS232, and has a throughput for each channel).
Control Switching
If you're running wireless controllers then you don't have to switch anything, because you're relying on Hyperspin and your stripped dashboard's abilities to ignore the controller at the appropriate times, while sharing their signal data.
If you're using a USB KVM, just plug them into the keyboard and mouse ports. This may not work great on all KVMs for 2 players, but will work great for nearly all of them for single player.
Alternatively, there are many ways to hack USB switches (http://hackaday.com/2011/09/29/remote-controlled-usb-switch/) to do this.
Power Cycling
The Xbox needs to be rebooted once you're finished playing, so it's ready to launch another game. For 360 you can always use the home button. However, since you likely want to use your start/quit button to do this, you need to find a way to reboot the system remotely from the PC.
Really, you should hardwire a start/quit button to the computer, omitting this function from the Xbox controls altogether. These are easy to make using a serial port (http://www.jezra.net/projects/serial_switch), or USB to serial adapter. Since ghosting isn't an issue with just a single button, ANY hacked keyboard will work. While it's a huge waste since you're only using only one button, any keyboard encoder could be used, too.
With the original Xbox there's some tricks to achieve power cycling from software. For example, Evox can be setup to ignore reboots while on dashboard. Assign your start game button to the same button as your bios reboot. This way the reboot function does nothing until an Xbox game is started. However, you'll need to modify your bios to reboot from 1 button, or I assume you could just attach 4-6 buttons used to reboot the Xbox controller to 1 button. As well, a script will have to be written for the PC to listen for Xbox FTP to become available, so it knows it's time to switch the controls and video back. I hate this method because your quit time takes as long as it takes for your Xbox to reboot. There's still quite a few ways these things can be used to create a decent power cycle method, so they're worth a mention.
Luckily most consoles are capable of auto-booting on power restore.
For the original Xbox, simply remove the faceplate from the box, pull the power/eject PCB out, and close the circuit on the back of the power switch with some solder and wire.
The 360 is able to boot from keyboard, so I have a hunch that if you closed the circuit on a keyboard key, and leave it plugged into the box it will always boot when power is restored. You should also be able to use a RS232 to USB Keyboard (http://www.vetra.com/335Utext.html) device (again, these can be used for a range of things, so don't let the price fool you). Alternatively, 360 has an IR sensor, which can be used with an IR Blaster.
Now that the Xbox is setup to boot whenever power is connected, we need a way to disconnect the main AC. If you're using a hardwired start/quit button from the PC, you can power cycle from the console's mainline quite a few ways. The easiest and safest way is to use a USB controlled power strip (http://www.pwrusb.com). Or for 360, use the IR Blaster.
I've seen plenty of IR (http://www.bakatronics.com/shop/item.aspx?itemid=765) controlled 120VAC and 220VAC relay switches. I have no clue if these are China crap or not, though. *Attempt at your own risk.
For those of you using a USB microcontroller such as the Arduino or Teensy, splice a 120VAC (safer w/ 220VAC) capable relay into your power cable. *Again, do at your own risk!
Controlling Relays
Throughout the tutorial I'm sure you've heard me mention wiring in a relay. To do this you'll need a controller board.
Devices such as the Arduino (http://www.arduino.cc/playground/uploads/Learning/relays.pdf) and Teensy (http://www.pjrc.com/teensy/) are made for this.
You can build a controller using a UART cable and an Atmega IC (http://www.larsen-b.com/Article/370.html).
Or simply use a parallel port (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=parallel+port+relay+switch#hl=en&safe=off&sclient=psy-ab&q=parallel+relay+switch&oq=parallel+relay+switch&aq=f&aqi=g-v1&aql=&gs_l=serp.3..0i15.9229.14532.1.14723.38.22.2.3.3.8 .275.3888.0j19j3.22.0...0.0.fzWhuM75zkA&psj=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=34e53121a770dfc0&biw=2016&bih=1155).
Other Systems & Launch Methods
The video/controls/power switching method I described above can be applied to many other systems besides Xbox. Also, there's other ways besides FTP to get console games to launch.
The Freestyle Dashboard (http://www.teamfsd.com/) on the 360 has FTP raw commands. The above batch example should work fine if you change to XMB to XEX. I don't have a JTAG/glitched box at the moment to test this on, but IIRC the execute command is the same as Evox; at worst the raw command is different.
Everdrive (http://krikzz.com/) flash carts (N64 (http://krikzz.com/ed64.html), SNES (http://krikzz.com/severdrive.html), Genesis (http://krikzz.com/link-unit.html), and soon TG16) all have the ability to transfer the game to a flash cart, via USB. Only one command sent from HS (usbtool c:/rom.bin). Once the file transfer is finished the game automatically starts. Unfortunately, there's around 15-45 seconds of load time for each game.
For NES use the CopyNES (http://www.retrousb.com/product_info.php?cPath=24&products_id=36) with a programmable flash cart (http://www.retrousb.com/product_info.php?cPath=24&products_id=35). *Unfortunately RetroUSB isn't selling the CopyNES at this moment. Alternatively, you can use the serial controller port mod (http://youtu.be/iaVdaMGswi4) with a PowerPak (http://www.retrousb.com/product_info.php?cPath=24&products_id=34).
I once met a guy who used to control his Atari 800XL over a network, using command prompt to launch games on it. I assume the Lantronix Device Server (www.lantronix.com/device-networking/external-device-servers/mss100.html) could be used to achieve this. For models that are cartridge only, the Maxflash Multi-Cart (http://www.atarimax.com/flashcart/documentation/) has USB support. However, I have no clue if these work like the Everdrives.
PS3 does not have any way to execute or stream games over FTP. However, since Playstation's XMB can be controlled by keyboard or IR, an IR Blaster or RS232 to USB keyboard converter (http://www.vetra.com/335Utext.html) can be used to macro game launches.
Alternatively, 1 game on the PS3 can be launched using the PS3 Macro Hexcode for Teensy (http://www.ps3news.com/ps3-hacks-jailbreak/ps3-controller-automation-with-teensy-2-0-macro-arrives/). For Xbox, you can use Teensy's USB keyboard code (http://www.pjrc.com/teensy/usb_keyboard.html) to essentially do the same thing. These methods are also the solution for those who wish to keep their Xbox unmodified.
While it's a slower method, Naomi Net Dimms can transfer and launch (http://youtu.be/tY0SF-JTzZA) games via FTP. Additionally, a PSX to arcade adapter allows you to have one controller work on both the PC and Naomi. Switching the controls might prove to be difficult, though.
I bet Dreamshell (http://web.vtc.edu/users/cph11120/DreamcastProject/Software/Dreamshell.htm) has some pretty cool tricks up its sleeve, since it's just Linux. Still waiting to receive my adapter from China. At worst I'll have to rely on my favorite little RS232 to USB keyboard converter (http://www.vetra.com/335Utext.html) thingy.
Obviously the hard part of a multi-console setup is the controls. If you want hardwired arcade, Toodles' makes a Multi-Console Cthulhu ([URL="http://www.shoryuken.com/showthread.php?t=162026"). For the consoles the Cthulhu doesn't support they make/made PSX adapters for, so it can be used with practically anything. Again, since there's PSX adapters for every system I've described you can use Playstation 1/2 controllers, too. However, neither of these control methods will allow you to hook 1 controller up to multiple consoles at once. There's someone working on his own PCB to do this, but he's got hacked Genesis 360 and Dreamcast controller PCBs in his design, and is using relays to switch everything. Someone else I know is designing a simple circuit that uses five 16-channel multiplexers and 16 (or less) relays, which will let you output a single Cthulhu to every system it supports. More on this later.
That's it. Good Luck, Have Fun!