Zero

ZX Spectrum Emulator for Windows

Zero 0.4.6 – WoS Special!

The latest version 0.4.6 of Zero is finally available. Find available from the Download section.

Here’s what has changed from the previous version:

  • Switched to a more consistent set of icons.
  • Added display of information for standard data tape blocks.
  • Added Sound to options menu. Stereo/Mono, Enable AY for 48k options added.
  • Added Program Finder to allow downloading of programs, scans, docs etc directly from WoS archives.
  • Added Stereo ACB and ABC mode selection to Sound options.+ Added ability to play AY sound in 48k mode.
  • Added support for Spectrum 128ke.
  • Switched to Consolas as default font for Monitor. If font isn’t found on user machine, default font is used.
  • Fixed edge loading. Now faster and better and can handle most if not all tape loaders.
  • Fixed zoom level discrepancy (>50%)
  • Fixed data length displayed for standard data blocks
  • Fixed crash when a ROM couldn’t be located at startup and user tried to exit.
  • Fixed Spectrum 128k model incorrectly trying to load 128ke rom.
  • Some keyboard shortcuts have been moved around, noticeably for the window sizing functions (see ReadMe for details).
  • Fixed tape insert behaviour. Now, trying to insert a tape automatically ejects previous tape
  • Fixed crash when attempting to load a 128k tape in a 48k machine.
  • Fixed crash when the next button on tape browser is pressed repeatedly past end of tape.
  • Fixed Auto Rewind. Now tapes wrap around correctly.

As usual feedback, bug reports etc welcome!

20 responses to “Zero 0.4.6 – WoS Special!

  1. Francesco December 2, 2010 at 1:42 pm

    Hi.
    These are the bugs I found on your last release.

    1) When I change in configuration file fullscreen option TRUE, once I launch emulator, it always starts in windowed mode.
    If I choose scanlines TRUE in options and then save config, once I launch emu, it always starts without them.

    2) Once in windowed mode, I choose a tape file, then I can’t use anymore all the icons above the screen (configuration, model, debug etc). Once clicked they don’t do anything.
    If then I put the emu in full screen, these work again (but ONLY in fullscreen mode)
    This happens if I use directx driver or not

    3) 64 colour mode doesn’t work well.
    I’ve tried a 128k program that uses enanched colours and in “Spec Emu” emulator works as it should, in “Zero” it “doubles” the screen with two colours.

    Ok that’s it..
    Hope you fix them.

    I have a little suggestion.
    Could you implement a key that moves the main spectrum screen area x,y (leaving the border as it is)?
    Old tv used to display spectrum main display area not always centered and would be great to reproduce it. “Sinclairean” emulator does it but unfortunately the author has stopped the development of his software for PC/Windows.

    Is it difficult to do?

    Thanks for giving us this nice software!
    Francesco

  2. Arjun December 2, 2010 at 10:08 pm

    Thanks for the feedback Francesco.

    1) When I change in configuration file fullscreen option TRUE, once I launch emulator, it always starts in windowed mode.

    Right. I forgot about adding the start in fullscreen option. I’ll do that in the next update.

    2) Once in windowed mode, I choose a tape file, then I can’t use anymore all the icons above the screen (configuration, model, debug etc). Once clicked they don’t do anything.
    If then I put the emu in full screen, these work again (but ONLY in fullscreen mode)

    Yes, I noticed this too and have fixed it. Available in next update.

    3) 64 colour mode doesn’t work well.
    I’ve tried a 128k program that uses enanched colours and in “Spec Emu” emulator works as it should, in “Zero” it “doubles” the screen with two colours.

    Could you point me to the program that’s giving the problem?

    Regarding your suggest, I’m afraid this is a bit difficult to implement as this will require me to change quite a few things in the way things are rendered on screen.

    Cheers!

  3. Francesco December 2, 2010 at 10:17 pm

    Here it is
    http://hotfile.com/dl/86511820/8beeaba/vic20_190.tap.html

    Load this tape with 128ke configuration
    When the menu appears stop the tape, choose the vic 20 memory you want to be emulated and then press Y at the question about using 64 colours.
    After this start again the tape and wait the other blocks to be loaded.

    I have another request.
    Can you make an option to disable TAPE icon during loading taps in fullscreen mode?

    Have you planned to make some visual artifacts to emulate tv output like other emu do?

    Thanks

    • Arjun December 2, 2010 at 10:26 pm

      I can’t seem to download from the server. Keeps timing out.

      As for the tape icon. In fullscreen mode, it appears at the wrong place. I’ve fixed it.

      • Francesco December 3, 2010 at 12:07 am

        Try this:

        http://www.megaupload.com/?d=P5TANY5K

        Ok for moving tape icon loader, but can you give us the possibility not to show it at all?

      • Arjun December 3, 2010 at 4:39 pm

        There was indeed a bug in the ULA PLus code and I’ve fixed it now. Thanks for bringing it to my notice!

        As for the tape icon, I’ll be interested in knowing why you don’t want it. The reason it’s there is to give a visual feedback especially when the tape deck itself isn’t visible. It’s there only during tape operations anyway which shouldn’t interfere with running any programs. So any particular reason you don’t want it?

      • Francesco December 3, 2010 at 5:56 pm

        I don’t like tape icon because for me it is important to see a clean spectrum screen closest to the original one without any sort of pc addons.
        I understand people that may like to see an icon showing what’s going on on emulator, like tap loading, and that’s the reason why I’m asking you if you can add an option in the configuration panel to show it or not.

        Thanks

        Great for fixing ula plus!

      • Arjun December 3, 2010 at 6:35 pm

        Okay, I’ll add in an option to disable visual hints but this will happen only after I’ve added disk support, which will also require disk loading visuals.

        Cheers!

        -Arjun

  4. karingal December 28, 2010 at 5:48 am

    Utter shite. Spud is far better 😆

  5. Gale January 22, 2011 at 7:06 am

    For some reason, the emulator crashes as soon as I open it. Any tips on how to fix this?

    • Arjun January 22, 2011 at 1:21 pm

      Try downloading the Setup version from the site and installing it from there. If there are any dependencies missing, the installer should take care of it. Also make sure you’re installing to a separate directory from a previously installed version.

  6. Patricio February 4, 2011 at 6:00 am

    Hi,

    Thank you for this great emulator, it works really well. I’d like to ask you two questions:
    1. Is it possible to double the screen size? If not, how do I get the Full Screen mode? Could not find the option.
    2. When you search for a game in WOS archive, is it possible to directly download it and have it handy in the Programs folder from now on?
    Also, I tried another ROM files, for the the TK 90x and TK 95 (brazilian clones) and didn’t find any problem. How did I do it? Just by copying them to the ROMS directory and renaming them to 48k.rom. So I think you can safely add them to the list of emulated systems. Maybe another ROM files will also work well.
    Thank you again for this great application!

    • Patricio February 4, 2011 at 6:12 am

      Hi again,

      I just found the way to increase the screen size (Alt+Plus keyboard combination). Didn’t notice the popup menu, I apologize for it…

    • Arjun February 4, 2011 at 12:42 pm

      Hi Patricio,

      Right clicking on the emulator brings up more options. So be sure to check that out.
      Initially I had planned to make the Programs folder the default folder for downloads but I wasn’t sure if everyone wants it that way. Anyway, I’ll make it the default folder that can be modified by the user if they so wish.
      As for the ROM’s, theoretically any compatible 48K ROM can be used in place of the default one. And there’s an easier way to change the ROM to the one you want instead of renaming the original one in the ROMS directory: Open up the Options dialog>Hardware. Select ZX Spectrum 48K as the Model and in the ROM field, click Browse and select the ROM you want. The advantage of this method is that a) you can have as many 48K roms as you want in the ROMS directory and have Zero use only the one you want b) You can easily switch between any of the ROMS without leaving the emulator. Note that you can use the same method for any of the Spectrum Models so long as they are compatible with the original memory model.

  7. PK August 25, 2011 at 2:56 am

    Noob’s 2 questions:
    1. Where is the readme?
    2. Is there any more convenient way to start programs than to wait like 5 minutes for the “tape” to finish and then running via the Speccy command line?

    • Arjun August 25, 2011 at 5:38 am

      1) The readme should be the folder you installed Zero to.
      2) Yes. Open the Tape Browser, enable Edge Loading and Accelerated Loading, as well as Auto Tape Start/Stop. Tapes should load much faster now.

  8. Scotty March 13, 2013 at 7:24 am

    Hi
    This has to be the best speccy emulator!!!
    Found one problem, when emulator at full screen and you try to configure something and save it, windows throws up an error:
    Unhandled exception.
    Copied the details and here they are pasted for you…

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

    ************** Exception Text **************
    System.ArgumentException: targetBounds
    at System.Windows.Forms.Control.DrawToBitmap(Bitmap bitmap, Rectangle targetBounds)
    at ZeroWin.Form1.AdjustWindowSize()
    at ZeroWin.Form1.PostOptionsWindowShow()
    at ZeroWin.Form1.optionsButton_Click(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5466 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    —————————————-
    Zero
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zero/Zero.exe
    —————————————-
    System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5468 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    Speccy
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zero/Speccy.DLL
    —————————————-
    System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.5420 built by: Win7SP1
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
    —————————————-
    System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-
    System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    ZeroSound
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zero/ZeroSound.DLL
    —————————————-
    SlimDX
    Assembly Version: 2.0.9.42
    Win32 Version:
    CodeBase: file:///C:/Program%20Files%20(x86)/Zero/SlimDX.DLL
    —————————————-
    msvcm90
    Assembly Version: 9.0.30729.6161
    Win32 Version: 9.00.30729.6161
    CodeBase: file:///C:/Windows/WinSxS/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57/msvcm90.dll
    —————————————-
    Microsoft.DirectX.Direct3D
    Assembly Version: 1.0.2902.0
    Win32 Version: 9.05.132.0000
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX.Direct3D/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Direct3D.dll
    —————————————-
    Microsoft.DirectX
    Assembly Version: 1.0.2902.0
    Win32 Version: 5.04.00.2904
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll
    —————————————-
    Microsoft.DirectX.Direct3DX
    Assembly Version: 1.0.2902.0
    Win32 Version: 5.04.00.3900
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX.Direct3DX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.Direct3DX.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.

Leave a reply to Arjun Cancel reply