4DO
An open-source, low-level emulator based on the FreeDO source code.
  • Project Status
  • Compatibility List
  • Wiki
  • Forum
  • Screenshots
  • Downloads
Home  /  Releases  /  4DO 1.0.6.0 Alpha Released!

4DO 1.0.6.0 Alpha Released!

fourdo-admin September 04, 2011 15 Comments

Key Features:

  1. Replaced GDI rendering with DirectX11 (Direct2D) rendering.
  2. Vsync
  3. Improved performance. (As a result of the above changes)

Say goodbye to that irritating video tearing!

I got Direct2D up and running relatively quickly. However, I still saw some tearing, although it wasn’t nearly as noticeable as before. I wrestled with DirectX for days on this. As it turns out, the games themselves were responsible for some of the tearing. The FreeDO core already had a mechanism in place (named “multitask”) to help this. Once I figured that out, the last of the tearing was dead.

This will reduce strain on the CPU for many systems (including mine). This should reduce audio anomalies for some. I’ve seen some reports of sporadic timing (which will also cause audio popping) in the comments, and I would expect that it is still a problem. I suspect that my use of “Thread.Sleep” isn’t providing enough resolution on certain systems. I’ll have to chalk that up to future developments (most likely within beta?).

I will also be considering leaving the GDI rendering option in 4DO. This would require fleshing out those half-done “plugin” frameworks. The GDI solution would be a good fallback if DirectX is unavailable. I’m going to be trying out 4DO in a remote desktop session and seeing what happens! If I put the GDI solution back in, it’ll probably be during beta, which is when I figured I’d work on the plugin framework.

My next focus is uniquely identifying games. This also will have some effects on the save state system. For example, if you load a game from a CD drive, I want it to use the same save state it would from any CD drive on you computer as well as an identical ISO image on your hard drive. This unique identification will also be important much further into 4DO’s future. If 4DO starts providing any game-specific features (such as low-level workarounds or fixes), then unique game identification can identify when to flip these switches based on the game that’s been opened. This is the one remaining task I have before I’m going to mark 4DO as “beta”.

By the way, a friend of mine is letting me borrow an Xbox 360 controller for a while, so I will also tackle that.

I am going to change the download links on these release announcements to point to the 4DO download page instead. That may help to keep newcomers aware of the 4DO prerequisites.

To try out 4DO 1.0.6.0 alpha, head to to the download page:
4DO Downloads

Woohoo! Let’s keep 3DO alive!

Previous Article
Next Article

About Author

fourdo-admin

Related Posts

  • 4DO 1.3.2.4 Released!

    4DO 1.3.2.4 Released!

    December 26, 2015
  • 4DO 1.3.2.3 Released!

    4DO 1.3.2.3 Released!

    September 29, 2013
  • 4DO 1.3.2.1 Released!

    4DO 1.3.2.1 Released!

    January 26, 2013

15 Comments

  1. Faust Log in to Reply
    September 4, 2011 at 3:11 am

    Minor problem occured after load a BIOS FILE (I think that it is problem with gfx)

    ee the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.BadImageFormatException: Próbowano załadować program w niepoprawnym formacie. (Exception from HRESULT: 0x8007000B)
    at FourDO.Emulation.FreeDO.FreeDOCore.FreeDoInterface(Int32 procedure, IntPtr datum)
    at FourDO.Emulation.GameConsole.Start(String biosRomFileName, IGameSource gameSource, String nvramFileName)
    at FourDO.UI.Main.DoConsoleStart(Boolean alsoAllowLoadState)
    at FourDO.UI.Main.Main_Load(Object sender, EventArgs e)
    at System.Windows.Forms.Form.OnLoad(EventArgs e)
    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    at System.Windows.Forms.Control.CreateControl()
    at System.Windows.Forms.Control.WmShowWindow(Message& m)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.Form.WmShowWindow(Message& m)
    at System.Windows.Forms.Form.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
    —————————————-
    4DO
    Assembly Version: 1.0.6.0
    Win32 Version: 1.0.6.0
    CodeBase: file:///C:/Users/Faust/Downloads/4DO_1.0.6.0_alpha/4DO.exe
    —————————————-
    System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.236 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    SlimDX
    Assembly Version: 4.0.11.43
    Win32 Version:
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/SlimDX/v4.0_4.0.11.43__b1b0c32fd1ffe4f9/SlimDX.dll
    —————————————-
    WaveLib
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Faust/Downloads/4DO_1.0.6.0_alpha/WaveLib.DLL
    —————————————-
    System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    CDLib
    Assembly Version: 1.0.4257.1993
    Win32 Version: 1.0.4257.1993
    CodeBase: file:///C:/Users/Faust/Downloads/4DO_1.0.6.0_alpha/CDLib.DLL
    —————————————-
    System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

  2. Faust Log in to Reply
    September 4, 2011 at 3:17 am

    BTW: This problem exist after SNV197 (Now using slimDX/direct2d for final screen blit.).

  3. Sedabi Log in to Reply
    September 4, 2011 at 4:38 am

    Hi Jhonny.
    To begin with, that to move forward and that’s good.
    Next:
    Using Direct 2D gave a good bonus to speed, but sometimes there are audible clicks, but you wrote this b.
    The image looks slightly unfortunately not clear, I think it is a feature of Direct2D.
    Mzhet popobovat revised to include plug-ins and Direct 3D, this could be the use of trilinear filter dramatically improve parts quality pictures.
    Please, put on the sides of the mosaic and leave a clean black border.
    Phoenix 3 – when you click on start game menu appears, where you can choose the difficulty, sound, etc.
    So a measure of the menu bar and do not show normal text.
    With great respect Sedabi.
    PS How can I ever contact you in addition to the forum?

    • Johnny Log in to Reply
      September 5, 2011 at 12:31 am

      Hi Sedabi.

      I will add an option for the “clean black border” like you mention (before the final, non-beta release). The background has been useful for initial development and debugging, but ultimately I find it unnecessary too! 🙂

      I have also been wanting a way for users to correspond without having to post. I’ve installed “Private Messages” on this site. http://www.deluxeblogtips.com/2009/10/private-messages-for-wordpress.html

      This should will allow you to send me a private message and vice versa. I think you have to go to your “Dashboard”, then click “Messages”. I haven’t used it before, though.

  4. aspyd Log in to Reply
    September 4, 2011 at 9:18 am

    why its dont work on windows xp?

  5. BryWI Log in to Reply
    September 4, 2011 at 11:46 am

    I get that same crash upon start up. Below is the English Version. I noticed some of the descriptions above were a different language. Choosing continue will load the program but nothing will run.

    This is on Win7 64-bit core i7 processor with 6GB of ram and nvidia 330m.

    I got the emulator to run on Vista 32bit, it’s performance was very low though and the audio completely stuttered to the point of unplayable. That machine is a 2.4ghz quad core with 4Gb of ram and an Nvidia Geforce GTS 8800.

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
    at FourDO.Emulation.FreeDO.FreeDOCore.FreeDoInterface(Int32 procedure, IntPtr datum)
    at FourDO.Emulation.GameConsole.Start(String biosRomFileName, IGameSource gameSource, String nvramFileName)
    at FourDO.UI.Main.DoConsoleStart(Boolean alsoAllowLoadState)
    at FourDO.UI.Main.Main_Load(Object sender, EventArgs e)
    at System.Windows.Forms.Form.OnLoad(EventArgs e)
    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    at System.Windows.Forms.Control.CreateControl()
    at System.Windows.Forms.Control.WmShowWindow(Message& m)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.Form.WmShowWindow(Message& m)
    at System.Windows.Forms.Form.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.237 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
    —————————————-
    4DO
    Assembly Version: 1.0.6.0
    Win32 Version: 1.0.6.0
    CodeBase: file:///C:/Emu/3do/4DO/4DO.exe
    —————————————-
    System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.236 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    SlimDX
    Assembly Version: 4.0.11.43
    Win32 Version:
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/SlimDX/v4.0_4.0.11.43__b1b0c32fd1ffe4f9/SlimDX.dll
    —————————————-
    WaveLib
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Emu/3do/4DO/WaveLib.DLL
    —————————————-
    System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    CDLib
    Assembly Version: 1.0.4257.1993
    Win32 Version: 1.0.4257.1993
    CodeBase: file:///C:/Emu/3do/4DO/CDLib.DLL
    —————————————-
    System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

    • BryWI Log in to Reply
      September 4, 2011 at 11:52 am

      One more thing, I don’t have an XP machine to test on but would using directx 11 make the program not work on xp? And perhaps it would slow everything down on vista? DX 11 if I am not mistaken is exclusive to win7. If I got it running on vista I can only assume it was trying to do it all in software instead of hardware. I am going to go to an old version on my vista machine to see if it improves since this was the first version I tested on vista. I will report back soon.

      Strange thing on the vista machine though… it was running 60fps but the audio was stuttering like crazy. It doesn’t make sense.

      • BryWI Log in to Reply
        September 4, 2011 at 12:04 pm

        1.0.5.1 is just as slow on my vista machine as 1.0.6.0 so scratch that theory. My vista machine just doesn’t like this emulator. Its almost kind of like how freedo after 1.8 until 2.x didn’t like my vista machine. It runs 60fps but the audio stutters for no reason. oh well. But anyways, perhaps the crash report is a 64bit issue?

      • Johnny Log in to Reply
        September 4, 2011 at 3:00 pm

        Uh oh. Yes. you’re right. Looks like direct2D has no XP support. I definitely want to support XP, so I will have to try to solve this using directx 9 instead. That’s going to be painful! 🙁

        I’m not yet sure what the crash is about.

  6. aliast Log in to Reply
    September 4, 2011 at 12:04 pm

    4DO 1.0.6.0 fix for Exception 0x8007000B
    http://www.megaupload.com/?d=CDDLDADT

    • BryWI Log in to Reply
      September 4, 2011 at 12:06 pm

      What is this fix?

    • Stranno Log in to Reply
      September 4, 2011 at 1:01 pm

      😀

      Many thanks man, it works perfect now

    • Johnny Log in to Reply
      September 4, 2011 at 3:02 pm

      Hi aliast, could you let me know what the change was?

  7. Wolf-5 Log in to Reply
    September 4, 2011 at 7:17 pm

    I am just confirming I have same error as the people above.

    Win 7 SP1 64bit

    • Stranno Log in to Reply
      September 5, 2011 at 8:50 am

      Then use the fix version, posted above

Leave a Reply

Cancel reply

You must be logged in to post a comment.

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