4DO
An open-source, low-level emulator based on the FreeDO source code.
  • Project Status
  • Compatibility List
  • Wiki
  • Forum
  • Screenshots
  • Downloads

Monthly Archives: August 2011

4DO 1.0.5.1 Alpha Released!

fourdo-admin August 29, 2011 29 Comments

Key Features:

  1. Multiple player support

I certainly didn’t think I’d be able to get this feature up and running as quickly as I did! I left the interface a tad lacking, but oh well. Let me know if you experience issues with this. I tested it out as best as my brain could handle flubbing around with several controllers at once.

By the way, the controllers are set to be always active, meaning the 3DO system will think they’re always plugged in. I think this is a safe assumption, but let me know if any games complain or fail as a result.

Also, 4DO currently supports only 6 players; I tested these using Fifa soccer. I’m pretty sure there’s at least one game with support for 8 players, but I’m considering that a pretty low priority (and I’m not sure how the game managed to fit those last two controllers into the number of bytes I believe are available). Besides, I doubt that there are 8 rabid 3DO fans living in close proximity just waiting to test it out. Obviously, 6 people is downright feasible.

You can download 4DO 1.0.5.1 alpha here:
http://sourceforge.net/projects/fourdo/files/4DO_1.0.5.1_alpha.zip/download

4DO 1.0.5.0 Alpha Released!

fourdo-admin August 29, 2011 16 Comments

Features:

  1. Joystick Support
  2. Support for multiple bindings per control

It’s been a long run for joystick support, but I’m quite happy with the results; this ain’t your little sister’s joystick support. I’ve been burned by crappy input settings on emulators (and retail games, come to think of it), so I want to keep 4DO from failing in that area. Here are some of the little things about the joystick support that you may appreciate if you have been exposed to crummy joystick support in the past:

  • Joysticks/Controllers that you set up should be saving with a unique joystick GUID (supplied by DirectInput). This avoids cumbersome problems in a more simplistic system using something like device number. You should be able to set up two controllers of the exact same brand and 4DO will recognize them as unique. This held true for any joysticks I have, but I would like to know if someone experiences an issue.
  • If a joystick gets unplugged while you’re playing, 4DO won’t freak out. It will not continually press whatever you last had pressed, and you can plug the joystick back in to resume playing.
  • You can bind the same joystick button to several 3DO buttons and vice versa. I’ve never liked the “key is in use” I’ve seen elsewhere.
  • Support for any joystick axis, including accelerometers. I do not have a joystick with any accelerometer features, so I’d appreciate feedback from anybody who does (I worry that the noise data involved in merely holding a joystick with them will cause them to be noticed and bound unconditionally). I have also ensured that point-of-view controls (PoV) can be bound.
  • You do not have to choose a specific device (keyboard or joystick) when setting up a 3DO controller. You can bind both keyboard keys and joystick controls to the same 3DO controller. This avoids having to go back to the setup screen if you don’t have the controller handy.
  • Documentation tells me that SlimDX supports XBox 360 controllers, and so 4DO should too. However, I don’t have one to try. Edit: Feedback from Wolf-5 has shown that Xbox 360 controllers do not work in 1.0.5.0.

Please note that this new version introduces a new dependency that must be installed (SlimDX). If you’d like to try this version of 4DO, please first go to the SlimDX Download page to download the .NET 4 version.

You can download 4DO 1.0.5.0 alpha here:
http://sourceforge.net/projects/fourdo/files/4DO_1.0.5.0_alpha.zip/download

Enjoy! If you find a problem, please post a comment and let me know!

Installers and Joysticks are coming

fourdo-admin August 28, 2011 6 Comments

It’s been a long night. I attempted to create a setup package for 4DO, which by the looks of it will be using SlimDX. To start off, I sought out to install just two things: C++ 2010 runtimes and the .NET 4 framework. Little did I know that I was in for some real punishment when I decided I wanted to have a single all-encompassing “.exe”.

I started with the visual studio installer. I quickly discovered how very clumsy that worked, so I broke open Wix, which I hear good things about. It was long before I ran into a dilemma with x64 and x86 thanks to the C++ 2010 runtimes. I solved it by opting for a 32-bit and 64-bit installer, but I’m unhappy with this.

The real disillusionment came with the “built-in” visual studio bootstrapper. Why does their bootstrapper not gob everything into a single “.exe”? On top of that, why is there no option to do so? It’s not 1995 anymore, people are not installing from CD these days!

And then I found IExpress.exe to bootstrap the bootstrapper, which is an absolute joke, but I managed to get it “working”. In the end, there’s an installation for 4DO that both includes and installs the .NET 4 runtimes and the MS C++ 2010 runtimes. But, SlimDX is not yet included, and there’s still a 32-bit flavor and a 64-bit version of the installer. Also, thanks to those dependencies, the installer is 45 megs.

Ugh, what a nightmare! I am convinced that I need to start over and look into Inno or NSIS for creating a more reliable installer. I definitely would prefer to have a single installer for 32 and 64 bit.

Well, the good news is that I have made progress on the joystick support.

ControlsNew

I personally have always hated it when the input configuration for an emulator is clunky or limited. The new input settings interface combines several features that I feel have been useful to me with other emulators:

  • Multiple sets of bindings per device. You could have multiple keys or buttons bound to the same device. Later I intend to extend this to allow for binding custom keys to things like “Save State” and “Load State”.
  • Visual glow to identify the button you’re mapping.
  • Easy access to clear all or set all bindings in a set.

Just to be clear, it still only supports one device. I will probably release 1.0.5.0 without support for additional devices.

Status Update : The Roadmap for Beta

fourdo-admin August 17, 2011 10 Comments

First of all, thank you for the feedback and the friendly encouragement!

Just so you know, I intend to add joystick/controller support next. Two player support is also important to me, but I will probably be leaving that for later (at least until beta).

Currently 4DO is “alpha”, and I intend to enter “beta” after:

  • joystick support
  • drawing the main canvas using OpenGL rather than GDI
  • settling on how and where to store “save states”

I have been mentally separating alpha and beta by figuring that in alpha any of your save states or settings may be lost from one version to another. Once it’s in beta, I intend to keep that to a minimum.

4DO 1.0.4.0 Alpha Released!

fourdo-admin August 16, 2011 15 Comments

Features:

  1. Audio Oddities Solved — I’ve put more work into the audio system. After playing a game for a while you may have noticed garble-ing noises. This was due to the playback getting ahead of the write buffer. 4DO now monitors for this situation (and vice versa) to move the audio read buffer’s position when it gets out of sync.
  2. Audio Playback Enabled on Some Machines – On initialization, the audio playback now “scans” for the highest supported audio bitrate on the system. This previously would just attempt to load a device with 32-bit fidelity, and gave up if it didn’t find one. This will result in audio being heard on machines that otherwise would have heard none. This could be improved later to give the user the option to choose the audio device to playback to.

Bug Fixes:

  1. NVRAM now gets initialized with proper structures when the NVRAM file does not exist.. This will prevent certain games like Need For Speed from thinking that there is no save data space. I did not bother changing the filename, so if you ran into this issue, you should delete the NVRAM_SaveData.ram file you have if you’re dropping this new version of 4DO in the same directory.
http://sourceforge.net/projects/fourdo/files/4DO_1.0.4.0_alpha.zip/download

4DO 1.0.3.1 Alpha Released!

fourdo-admin August 14, 2011 4 Comments

This is a bug fix release only.

* NVRAM was not actually saving data to the NVRAM file.

Sorry about that. I had changed NVRAM to do a delayed write (rather than write to file after every byte written) and forgot to add back the final save-to-file logic. So, NVRAM previously was simply not saving to disk!

By the way, I didn’t find the problem myself, I personally stick to save states and don’t really use the 3DO internal save data. This bug was reported by a chap called BryWI. I greatly appreciate the bug report! I think this goes to demonstrate how valuable feedback is in the alpha stage. So, if you are seeing issues, please let me know. Even the constant stream of “Crash and Burn doesn’t work” comments are at least informative!

I find myself unsure how well mixing save states and NVRAM use is going to function. The save states do not currently save the NVRAM data. Examples:

  • If you save state in a game that’s already loaded information from NVRAM, and then later you drop in a new copy of NVRAM that is different and hit “load state”, I’m concerned that the game might bomb out when it finds that the data isn’t what it just loaded. Games were most likely written to assume they’re the only ones that will be editing their NVRAM contents while the game is running.
  • If you save state while it’s loading or saving to NVRAM, that of course is just asking for trouble.

I am considering saving NVRAM data on a per-game basis and possibly even per-save-state, which I think would be pretty easy to understand and resolve a lot of potential issues. This would make Game Guru absolutely useless, though. So, I don’t think the books are closed on ideal NVRAM behavior yet. I would be interested to hear how well it currently works.

www.FourDO.com is live!

fourdo-admin August 13, 2011 1 Comment

Today I’ve put together this simple site to help facilitate news posts and release information. I’ve imported various news posts (releases, discussions) from elsewhere for archival purposes.

4DO 1.0.3.0 Alpha Released!

fourdo-admin August 13, 2011 2 Comments

Key changes:
* CD-Rom support – Play straight from CD!

Minor changes:
* I added a “File -> Close” option to close whatever is currently open.
* The option to “load state” on startup has changed into an option to “load state” whenever a game loads. For example, if you open a different game while 4DO is open, it’ll do an automatic “load state” for that game.
* 4DO now remembers the directory that you last selected a CD image file from.
* I renamed some of the menu items to make their use more clear.

https://sourceforge.net/projects/fourdo/files/4DO_1.0.3.0_alpha.zip/download

I took way longer than I anticipated figuring this out. This one cost me a lot of time, so hopefully you folks just flat-out love that CD support! Woohoo! Long live 3DO!

The next feature I will concentrate on is the Joystick/Controller support. I may also do a little housecleaning. I think it’s about time I got an installer for the folks less capable installing the dependencies. Also, I’m avoiding any use of residual files like user settings in “C:Documents and Settingsetcetc” and trying to keep all settings and files just plainly in the 4DO directory. Keeping with this trend, I also intend to do this for save states. So, save states will likely be moved to a “SaveState” folder that pops up in the same directory that 4DO gets run in. I’m also not so sure I like the “save slot” idea as currently implemented. With emulators I’ve typically found that I fumble and press the change save slot buttons on accident. I would also like to save screenshots with each save state, but the current system doesn’t have anywhere of use that I could provide a screenshot. I’m uncertain how I’d prefer it to work, though. If anybody has seen nifty, intuitive ideas regarding save states in an emulator, I’d like to hear them.

So… how many people are still left that are even interested in a 3DO emulator anyway? A dozen? My guess is somewhere around a hundred.

Correspondence with FreeDO

fourdo-admin August 11, 2011 1 Comment

Altmer provided me with some helpful information. He tells me that the FreeDO source that is available on google code includes many of the improvements from FreeDO 2.1. As far as 4DO is concerned, that’s great news.

He is also working on a “new” emulator. New as in not FreeDO. One of the things he intends to include is the hardware accelerated graphics (which I referred to on another thread). I don’t really know what else the new emulator involves other than a rewrite. He also figures it would be difficult to work together on it. Considering the language barrier, I have to agree. Altmer provided clarification that his new emulator will NOT be open source, but that the interface to it will be. He also said he could try to keep the interface similar to the one FreeDO had so that I could more easily use it with something like 4DO. That’s a minor point. But, that’s all the info I have.

So, it looks like there is no FreeDO development going on whatsoever, and FourDO is using the latest copy. Altmer is working on a new, different (low-level) emulator, and meanwhile I’m adding features to 4DO to basically produce a more swanky version of FreeDO. Hopefully some day in the future, Altmer’s new emulator is released and a clear improvement, and 4DO or something like it can help out by plugging in and padding out the interface with features. As far as I know, that sums up the only 3DO emulation development going on in the world.

Back in 4DO land, I have been working on getting CD-Rom support online. Some games load just fine. For some reason, on other games I’ll get a “give up” error visible on the screen after it fails to load. I think this may be the copy protection I’ve heard about. I have noticed that 2.1 FreeDO does not have the problem, so I am going to try to iron out what I’m missing.

4DO 1.0.2.0 Alpha Released!

fourdo-admin August 08, 2011 Leave a Comment

Version 1.0.2.0 alpha includes:
* NVRAM support : Quite the lazy job on my part. It just saves to “NVRAM_SaveData.ram” in the same directory as 4DO.exe. This is non-configurable, but it works!
* Fix to a crash on startup resulting from toggling certain settings.

So, it’s now full-featured, though a bit hairy. Anyway, you can get it here. Woohoo!
https://sourceforge.net/projects/fourdo/files/4DO_1.0.2.0_alpha.zip/download

In other news, I’ve been attempting to touch base with any remainders of the FreeDO development team. There are several versions of FreeDO that were never “officially” released. These versions have noticeable improvements (mainly graphics) in the core that I would like to make use of. It seems like a waste to have two 3DO emulators developed simultaneously when there is such little development going on at all. I’m unsure if this will mean me merging into what’s left of the FreeDO development effort, or if it means them merging into 4DO, or if it means that my diplomatic efforts fail and I’m just given the finger and told to mind my own business. I’m pretty certain that it will affect what happens with 4DO in the future.

I got in touch with the FreeDO developer I know (Altmer), and he is apparently still working on it, though slowly. I don’t know this for sure yet, but I think he was single-handedly responsible for the post-official releases like “2.1 alfa”. Those versions have improvements that I would like to incorporate into 4DO if possible…

I think we both should be working on the same emulator. However, I don’t really know that Altmer would be cool with me swooping in, taking his work, and rebranding it as “4DO”. So, I’ve offered to join up with him, which may mean I’d help improve FreeDO and leave 4DO alone. I’m unsure if he’s even interested in accepting help or open-sourcing what he’s done.

1 2 Next →

Site Navigation

  • Project Status
  • Compatibility List
  • Wiki
  • Forum
  • Screenshots
  • Downloads

Recent Posts

  • 4DO 1.3.2.4 Released!
  • Android Port: Testing Needed
  • 4DO 1.3.2.3 Released!
  • 4DO 1.3.2.2 Released!
  • 4DO 1.3.2.1 Released!

Recent Comments

  • YukoAsho on 4DO 1.3.2.4 Released!
  • Woodi on 4DO 1.3.2.4 Released!
  • YukoAsho on Android Port: Testing Needed
  • Viktor on 4DO 1.3.2.3 Released!
  • maccaslasher on 4DO 1.3.2.3 Released!

Archives

  • December 2015
  • September 2015
  • September 2013
  • April 2013
  • January 2013
  • December 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • October 2011
  • September 2011
  • August 2011

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Theme by ThemesPie | Proudly Powered by WordPress