3dox - Xbox 360 New Years Day Pre-Release - V0.03


3dox - A 3DO emulator for your Xbox 360. Based on FreeDO/FourDO/3dox Xbox

About a year ago i became interested in porting FreeDO (the 3DO emulator) to the Xbox 360. It turns out that incrediclint had an Xbox 1 port of FreeDO/FourDO port up and running called 3dox. His source code in turn became the core code that I then used for the majority of my work.

incrediclint stopped working on his Xbox 1 port due to the fact that it would not run at a good framerate due to the limitations of Xbox 1 hardware.

The Xbox 360 port initally did not fare much better. Initially it would not run. The FreeDO codebase is not Big Endian friendly. I quickly got it working on big endian and found out that emulation performance was terrible. Averaging 20-25fps.

Generally speaking, the CEL engine code is the main cause for performance issues. I spent quite some time optimizing functions to be more PPC friendly it helped gain 10-15fps or so.

At that point i tried some multi-threading but nothing seemed to help. So i abandoned the project and tossed it in the "not to release pile" due to the fact that the performance was still not great (35-40ps on average)

Fast forward to December 2012 - I decided to take another look at the sourcecode and see if i can speed it up. Long story short,  with a clear head and a fresh look at the code. The idea was to thread the DSP and CEL emulation. Some pain along the way but threading was implemented and working nicely-  Now emulation is (generally) at 60fps. 

So welcome the new year with a new emulator for the Xbox 360. Remember this is a pre-release :)


- Fast 3DO emulation.
- Full graphics/sound support
- NVRam saving.
- Pixel Shader support.
- Big Endian friendly (PS3/Wii/Wii(U) port anyone?)
- Source code released.

Pre-Release Info/Issues

- 1p controller support only at this time.
- Sound has issues (scratchy/off pitch/generally pretty bad). 
- Random pauses and stutters occur.
- Performance issues with some games.
- Savestates are not implemented.
- .ISO extension and .BIN extension are supported only
- The launcher will load games only. There are currently no other options.
- There are graphics issues. Wrong color palette at times. Theres still endian issues to address.
- Game specific timing fixes are not implemented.
- Pixel shaders are working but you cant select one. For now you need go into the shaders folder and rename/copy the shader you want to use and called it 'default.fx'. I've included CRT, HQ4x shaders to use.

Installation Notes

- Place 3DO bios file inside bios folder. File MUST be called bios.rom
- Roms go in the Roms folder. Files must be .ISO or .BIN otherwise they wont work.
- Run 3doLauncher to start.
- Press 'A' to launch the rom. While in game - right thumbstick to quit back to launcher.

Controller Mapping

 Game Select Screen:
  A: Launches the game.
  B = A
  A = B
  B = C
  Start = P
  Back = X
  Left Trigger = Left Button
  Right Trigger = Right Button
  DPad = DPad
  Right Thumb Stick Click = Exit to launcher

Credits and Thanks

Freedo Team: Alexander Troosh, Maxim Grishin, Allen Wright, John Sammons, and Felix Lazarev @ www.freedo.org

FourDO Team : JohnnyDude - quite alot of 3dox is based off his code.

incrediclint for his Xbox 1 3dox sourcecode.

Artik @ Logic-Sunrise for supporting the 360 homebrew scene

Raskar @ homebrew-connection.org for supporting the 360 homebrew scene!