Post navigation

Across the goal line

4DO is no longer titled as “beta”. The emulation is in a good state, and the primary features of the emulator have been stable for quite a while.

It’s been a overall a quick revival since the release of the FreeDO source code, and 4DO now provides 3DO fans with a clean, functional emulator.

4DO was able to inherit many great features from FreeDO: high-definition rendering, clock speed adjustments, and the impressive emulation accuracy! The FreeDO user interface was not open-sourced, but the resulting rewrite for 4DO was an overall benefit. The development of 4DO has introduced several unique features as well:

Intuitive controller setup, native joystick support, and support for up to 6 players

Game identification system

Easy-to-use quick save/load system

Game compatibility fixes (mainly through the efforts of Viktor!)

Support for 6 languages

An Abbreviated 4DO History

It’s probably not commonly known that 4DO was first started about 4 and a half years ago in 2007. I had been eager to see an open-source 3DO emulator and was disappointed that there was still none available. The aim of the project was still the same as it is today: to provide a full-featured, open-source emulator for 3DO.

At the time I was attempting a high-level emulation (HLE) approach. Progress was reasonable, and I managed to get the CPU emulation concrete enough to run many of the non-Opera binary files like the mildly famous sonic example (the screenshots of this are still available on the sourceforce site, for any emulation historians interested). However, the HLE approach was proving to be too laborious without additional help. After staring at disassembly for countless hours, I cancelled the attempt in early 2010.

Note: For those interested, the Russian “Phoenix” project is also attempting HLE emulation and results so far are impressive! I believe it is in closed beta, and be aware that there are fake versions of this emulator out in the wild.

Later the same year (November 2010), FreeDO released the code to its core emulation as open source! I found out about this in July of 2011, started rebuilding the user interface, and restarted 4DO with the FreeDO core. At this time, 4DO became a low-level emulator like its ancestor. Since then 4DO has crept along introducing features up to the ones you see today!

Elsewhere in the world, and also sometime after the FreeDO source code was released, Viktor created 3DOPlay with similar hopes of improving 3DO emulation. We discovered each others’ projects about a month ago. Since then, Viktor has been contributing help, and his efforts have been improving game compatibility significantly!

The Future of 4DO

I do not have particularly strong opinions of the features or changes that should be introduced into 4DO. There are a few things I would like to see added: light gun or mouse support, screenshot support, and save slot visualizations (like in NESticle).

With 4DO released, I personally am going to cut back on my involvement, and I have no expectation for how long. I am very happy to have helped the 3DO emulation and I feel that 4DO has accomplished its primary objective of providing a full-featured open-source emulator. I don’t intend to halt 4DO development; I’m still available for bug fixes to any major issues, and I intend to continue to perform any releases. I am hoping Viktor is available to continue help as well. I’ll likely be playing 3DO games too, so I can continue to add features when the desire hits me.

I would like to reiterate that anybody interested in contributing code changes to 4DO is welcome to do so! If you message me in the forums, I will be happy to help you get started.

If you aren’t interested in helping out as a developer, there’s always value in contributing updates to the Compatibility List.

Thank You For Your Help!

3DO emulation would be in poor shape today if it weren’t for the feedback and interest from the sparse, world-wide community of 3DO fans. I’d like to thank everyone who helped identify problems, iron out issues, or just drop by for moral support!

I made some updates to the publishing tools in the 4DO repository, this includes a fix in which the SlimDX.dll file was in the “Tools” directory in the zip file (this was seen in the original 1.1.6.5 zip file uploaded, but was later fixed).

If you try out the installer and find issues, please leave a comment!

If you want to try 4DO 1.2.0.0 beta, head to to the download page:4DO Downloads

There are no functional changes in 1.1.6.5 beta. This release provides the introduction of the 4DO installer. If you find an issue, please provide feedback!

4DO will continue to provide an option for the Zip file distribution, since many people prefer that option. As you can see on the download page, each release will now provide two ways you to download and use 4DO:

Wing Commander 3 video rendering fixed. It took me quite a while to track down the problems, but the video rendering in Wing Commander 3 is now fixed! Additionally, Viktor has added some freeze fixes to resolve several of the freezes seen when playing videos! As a result, the game is now quite playable! Please be aware that I have still run into a couple freezes during the videos a couple times. If you happen to find a reproducible case, please leave a comment!

Timing / freeze fixes. Viktor has added timing behavior to work around occasional loading screen freezes in these games:
- Immercenary
- Scramble Cobra
- Twisted (EU version)
- Street Fighter II (There were no known freezes for this one, this is just a timing fix)

As a result of the rendering fixes, some of issues seen in other games are also fixed. Known examples (spotted by Viktor) are:
- The Horde
- Jurassic Park – in the car mission
- Wicked 18 – fonts fixed
- more?

This version also includes some corrections to the French translations.

I dug into the CEL rendering logic and documentation enough to understand the bugs causing Wing Commander 3′s video issues. It took the whole week! I finally saw the resulting clean images at about 4:30am last night .

If you want to try 4DO 1.1.6.3 beta, head to to the download page:4DO Downloads

Game fixes. Provided by Viktor! This involves changes that resolves the remaining freezing issues seen in Phoenix 3. These fixes also make the following games fully playable:
- Twisted
- Space Hulk
- Games published by “American Laser Games” (Drug Wars, Mad Dog McCree, Crime Patrol, Space Pirates, etc.)

Ability to specify game file/drive via command . Similarly, users may also request fullscreen on startup. See details below.

Graphical transparency fix. Resolves certain overly-transparent features in Immercenary. Possibly other games, but I could not find others exhibiting the issue.

This version also includes some corrections and improvements to the French and Chinese (simplified) translations.

Those looking to load games from the command line may now do so with the new command line options available:
======================================================================
= 4DO (1.1.6.2) command line options usage =
= Basic usage: 4DO.exe [-option value][/option "value"][--switch] =
======================================================================
-StartLoadFile [filename] : Loads a game from file.
-StartLoadDrive [letter] : Loads from CD of the drive letter.
--StartFullScreen : Start Full Screen.

If you want to try 4DO 1.1.6.2 beta, head to to the download page:4DO Downloads

Thank you again to Viktor, “money”, Enio Marconcini, and Benjamin Siskoo for taking the time to translate the interface elements!

4DO should default to your system’s default culture. In case you have a different preference (or something goes wrong), you can always set the culture via the “Options” menu. Your default culture is used to append text on the language menu items in case you choose one you can’t read:

If you want to try 4DO 1.1.6.1 beta, head to to the download page:4DO Downloads

4DO will soon support multiple languages. To support a specific language, we need the program’s resources (the textual data) to be translated.

There are already current volunteers for English, Russian, and Portuguese.

If you would like to see another language and are willing to help add translations, please head to the related forum post for instructions, and message me in there (rather than here on WordPress where your email address will be public!).

A couple good fixes this time. There is one currently known bug that I will explain below.

Improvements:

Fix for Phoenix 3 hanging in load screens – A continuation of the changes to move 4DO to the new timing behavior. It will not always work (it works about 50/50, in my experience), so you will have to save beforehand and try skipping the cutscenes at differing times. But the game is otherwise quite playable!

Once-a-second stuttering/lag spike resolved – It was discovered that some systems were slower to perform than others in polling for input devices, which was causing a noticeable delay in emulation every second. This is now resolved.

However there is one bug I know of in the system which I just recently noticed. As of 1.1.5.0, the emulation is presently working slightly too fast from normal. This is also causing the audio playback to get pushed ahead about once every 4 seconds if using the default audio buffer size. You could run 4DO with “-DebugLogging AudioDebug” to see the symptoms. This is a result of the new timing improvements that are newly worked in, so it will be ironed out in time. Anyway, please be aware that this issue exists in both 1.1.5.0 and 1.1.5.1.

I’ve also updated the about screen to more clearly Viktor’s contributing role. I am hoping he stays motivated to continue helping with core emulation improvements!

As always, I reiterate that any feedback is appreciated, especially for spotting recent changes!

If you want to try 4DO 1.1.5.1 beta, head to to the download page:4DO Downloads