Author Topic: My dedicated emulation machine based on an original xbox  (Read 10418 times)

0 Members and 1 Guest are viewing this topic.

Offline Jamesbeat

  • Thread Starter
  • Posts: 126
My dedicated emulation machine based on an original xbox
« on: Mon, 27 February 2012, 09:23:06 »
I mentioned this in another post, and a couple of people asked for further details.
Rather than hijack the other thread, I thought I'd make a new one explaining what I did and how.
If you're interested in doing something similar yourself, then by all means ask questions and I'll do my best to help.


I wanted a machine just for emulation, and I ended up using the xbox for the following reasons:

Original xboxes are pretty old now, and thus very cheap. You may know someone who has one they don't want any more, or you can get one on ebay for peanuts, especially if you snipe auctions.
As a rough guide, I got everything I needed for $67, including various cables, a couple of games (needed for the mod) and four controllers.
The price of HTPC or similar would be much higher, and to be frank would be a waste.

The xbox is already set up to work with controllers and a TV.

The hardware is standard across all xboxes, so the people who coded the emulators knew exactly what hardware they were coding for. This means that the problems usually associated with emulators (display and sound settings etc) are practically non existent.

The xbox controller ports are actually USB ports with a proprietary connector. It's very easy to make an adapter to enable standard USB devices to be used. This is very handy when emulating old 8 bit and 16 bit computers, which usually need a keyboard.
All of the emulators have virtual keyboards, but it's handy to have the option of plugging in a physical keyboard.

The xbox boots fast, and can be safely shut down just by hitting the power button.

The xbox hacking scene was huge, so there is a lot of very mature software to help us.


Now, a quick word on legality.
I am not suggesting that you do anything illegal, that part is up to you. IANAL, and I'm not going to attempt to give legal advice. Do some research and make up your own mind.
The main legal issues are that some of the software (emulators etc) was made using the xbox sdk, and thus violates the terms of the sdk license.
To get this software, you must look in the 'usual places', but it is freely available, and Microsoft doesn't seem to care.


I'm not going to make a detailed step by step guide, because all of the steps are well documented elsewhere.
What I'm going to attempt to do is explain how these various things come together to make a dedicated emulation box.



The basic steps are:

1. 'Softmod' (or hardmod if you're so inclined) the xbox.

2. (Optional) Install a larger hard drive.

3. Install the emulators.

4. Configure the software launcher (called the 'dashboard') to provide a nice user interface.

5. Transfer the games.


Here we go!

1. Modding the xbox.
We need to mod the xbox to allow us to run unsigned code.
This can be done with a 'modchip', but that's expensive and not really necessary, as the xbox can be 'softmodded'.
The softmod is performed by taking advantage of a software bug in one of three games.

I'm not going to repeat the entire process here, because there are loads of guides on the internet already, but one thing I will advise is that you use the Splinter Cell version.
The reason for this is that the other two games (Mechassault and 007 Agent Under Fire) had the bug corrected in later versions, so you need to check the serial number of the game disk before you know if it will work.

Splinter Cell on the other hand, was never corrected, and as far as I know, any version (including the platinum re release) will work. This makes it a lot easier to buy a copy of the game on auction sites etc without having to worry about whether or not it will work.

So, for this stage, google the words xbox, softmod, and splinter cell and you'll find loads of guides.

One other point: If you'd like to save yourself some work and use my menu system, install the 'Unleashx' dashboard instead of the 'evox' one.


2. Install a larger hard drive.
This is optional, because most emulators and game collections require very little space.
The xbox HDD is either 8 or 10gb, but because of the way the drive is partitioned, you can only really use about 4.5gb for your game files. This is plenty unless you want to have a lot of emulators.
I installed a larger HDD because I am emulating every single system that both my wife and I ever owned, but even so, a 40gb HDD is overkill.

I'd advise you to use a piece of software called 'xboxhdm', as this is very easy to do, and gives you a way to build a new drive if your drive ever fails.
You need this because the xbox locks the hard drive with a unique code, so if your hard drive ever fails and you don't have this code, you're pretty much out of luck.
For this reason, I advise you to make an xboxhdm cd even if you don't upgrade the hard drive.
Use xboxhdm, keep the cd somewhere safe, and you can sleep soundly.


3. Install the emulators.
This part is easy, just ftp into the xbox (google for a guide if you don't know how) and transfer the folders containing the emulators you downloaded to the E: partition on your xbox. If you installed a larger hard drive, put the emulators on the F: partition instead.
Keep the names of the folders simple (C64, NES, SNES etc) to make writing the launcher easier later on.


4. Configuring the software launcher.
I'm not a programmer, so this was the hardest part for me.
I ended up making a combination of a config.xml file and an unleashx 'skin' to make the simplest menu possible.
When I boot my xbox, I get a fullscreen photo of the first system on the list (Atari 2600). If I press up or down on the controller, I can cycle through full screen photos of all of the other systems.
This is nice and simple, no text, just a big photo of each system.
Hit a button, and it launches into the appropriate emulator.

I'm going to post the code in this thread, and I'd love it if someone else gets some use out of it too.
I'm just going to reiterate that I am not a programmer, so please don't laugh, I had to teach myself from scratch and it works great.

5. Transferring the games.
You can now transfer the games across via ftp.
Emulators usually have a folder for games, and you can also usually reconfigure the emulator to use a different default directory. You'll have to play around with each emulator to decide where to put the games.

There is one big caveat here: the xbox uses a file system called xfat, and xfat does not like filenames over 42 characters!
A lot of game files have very long filenames containing the name of the game, publisher, year published, etc etc and this will cause problems with the transfer.
The way I got around this was to add xbox media center (xbmc) to the xbox and gave it a place in the menu system.
Unlike most of the dashboards (including unleashx) xbmc automatically truncates long filenames, so keep it on your system as a utility for transferring files (it's also a darn good media center, but I didn't build my emulation machine for that)



Ok, I think that covers it!
Code in the next post, any questions, just ask and I'll do my best to help :)

Offline Jamesbeat

  • Thread Starter
  • Posts: 126
My dedicated emulation machine based on an original xbox
« Reply #1 on: Mon, 27 February 2012, 09:31:31 »
Here's the config.xml file for unleashx.
Just copy and paste it into a text file, then rename it to config.xml and transfer it to the xbox to replace the existing config.xml

If you examine the code, you should be able to work out how it works, just rename the items to the emulators you're using.
You'll need to make a folder called 'icons', put photos of the systems in there and drop it into the E: partition (for standard HDD) or F: partition (for upgraded HDD)

If you are using the the standard HDD, change all of the 'F:'s to E:

I'm probably not explaining all of this very well, so feel free to bombard me with questions!


Code: [Select]






<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>

<UnleashX>

<Settings>

<xboxdashBoard>C:\xboxdash.xbe</xboxdashBoard>

<Network Enable=&quot;Yes&quot; Type=&quot;Static&quot;>

<IP>192.168.1.101</IP>

<Subnet>255.255.255.0</Subnet>

<Gateway>192.168.0.100</Gateway>

<DNS1>0.0.0.0</DNS1>

<DNS2>0.0.0.0</DNS2>

</Network>

<FTP Enable=&quot;Yes&quot;>

<User>xbox</User>

<Password>xbox</Password>

<Port>21</Port>

<MaxUsers>2</MaxUsers>

<AllowAnon>No</AllowAnon>

<Greeting>Welcome to XBOX FTP Server</Greeting>

</FTP>

<Newsfeed Enable=&quot;False&quot; Interval=&quot;30&quot;>

<URL>www.xbox-hq.com/html/backend.php</URL>

</Newsfeed>

<Preference>

<Games AutoLaunch=&quot;No&quot;></Games>

<DVD AutoLaunch=&quot;Yes&quot;>F:\Apps\DVDX\default.xbe</DVD>

<AudioCD AutoLaunch=&quot;Yes&quot;>C:\xboxdash.xbe</AudioCD>

<Data AutoLaunch=&quot;No&quot;></Data>

<SNTP Synchronize=&quot;No&quot;>216.244.192.3</SNTP>

<FanSpeed>1</FanSpeed>

<ScreenSaver Wait=&quot;60&quot;>

<Text> </Text>

</ScreenSaver>

<AutoTurnOff>0</AutoTurnOff>

<EnableDriveF>True</EnableDriveF>

<EnableDriveG>True</EnableDriveG>

<Skin>Blackbox</Skin>

</Preference>

</Settings>

<Menu>

<Item Action=&quot;F:\atari 2600\default.xbe&quot; Icon=&quot;F:\icons\2600.jpg&quot;>Atari 2600</Item>





<Item Action=&quot;F:\zx spectrum\default.xbe&quot; Icon=&quot;F:\icons\spectrum.jpg&quot;>ZX Spectrum</Item>





<Item Action=&quot;F:\commodore 64\default.xbe&quot; Icon=&quot;F:\icons\c64.jpg&quot;>Commodore 64</Item>





<Item Action=&quot;F:\amstrad cpc\default.xbe&quot; Icon=&quot;F:\icons\amstrad.jpg&quot;>Amstrad CPC</Item>





<Item Action=&quot;F:\atari st\default.xbe&quot; Icon=&quot;F:\icons\st.jpg&quot;>Atari ST</Item>





<Item Action=&quot;F:\nes\default.xbe&quot; Icon=&quot;F:\icons\nes.jpg&quot;>Nintendo Entertainment System</Item>



<Item Action=&quot;F:\gameboy\default.xbe&quot; Icon=&quot;F:\icons\gameboy.jpg&quot;>Nintendo Game Boy</Item>



<Item Action=&quot;F:\snes\default.xbe&quot; Icon=&quot;F:\icons\snes.jpg&quot;>Super Nintendo</Item>





<Item Action=&quot;F:\Sega Master System\default.xbe&quot; Icon=&quot;F:\icons\master.jpg&quot;>Sega Master System</Item>





<Item Action=&quot;F:\Sega Genesis\default.xbe&quot; Icon=&quot;F:\icons\genesis.jpg&quot;>Sega Genesis</Item>



<Item Action=&quot;F:\n64\default.xbe&quot; Icon=&quot;F:\icons\n64.jpg&quot;>N64</Item>





<Item Action=&quot;F:\scumm\default.xbe&quot; Icon=&quot;F:\icons\scumm.jpg&quot;>SCUMM</Item>





<Item Action=&quot;E:\XBMC\default.xbe&quot; Icon=&quot;F:\icons\xbmc.jpg&quot;>XBMC</Item>





</Menu>

</UnleashX>

Offline Jamesbeat

  • Thread Starter
  • Posts: 126
My dedicated emulation machine based on an original xbox
« Reply #2 on: Mon, 27 February 2012, 09:34:07 »
And here is the skin.
Just unzip it, put it in a folder called 'skins' and put it in the same directory as unleashx.

Offline SmallFry

  • ** Moderator Emeritus
  • Posts: 3887
  • Location: Wisconsin, USA
  • Leaving 6/15; returning 6/22 or so.
My dedicated emulation machine based on an original xbox
« Reply #3 on: Mon, 27 February 2012, 16:06:42 »
I quite like this, but have no need for an emulation system. I have my SNES still hooked up! :laugh: Makes for a good ol' time playing the games older than myself. I also belive my dad has his old Atari 2600 in the basement, but I haven't asked to hook that one up.

Offline Jamesbeat

  • Thread Starter
  • Posts: 126
My dedicated emulation machine based on an original xbox
« Reply #4 on: Tue, 28 February 2012, 07:35:13 »
Well, if you're only interested in one system and the games you already have, I guess this project would be rather pointless.
On the other hand, all of the systems on my xbox have been owned by either myself or my wife at some point in the past. Just imagine the cost, inconvenience, and storage problem involved in owning all of those systems and their games...

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Posts: 5057
  • Location: SF Bae Area
My dedicated emulation machine based on an original xbox
« Reply #5 on: Tue, 28 February 2012, 07:45:38 »
Thanks for posting, I would love to do this.

Offline Jamesbeat

  • Thread Starter
  • Posts: 126
My dedicated emulation machine based on an original xbox
« Reply #6 on: Thu, 01 March 2012, 08:49:04 »
Quote from: hashbaz;529278
Thanks for posting, I would love to do this.


Do it then! :D