
 nullDC v1.0.0 BETA User Manual
 ------------------------------



 1. What is it?
 --------------

 nullDC is a plugin based Dreamcast emulator for x86 based computers running Windows Operating Systems.



 2. Recomended System Requirements:
 ----------------------------------

   - CPU: AMD Athlon XP/64/Turion at 2GHz or Intel Pentium 4 at 2.6GHz or equivalent.
   - Video Card: Nvidia GeForce 4 TI or ATi Radeon 8500.
   - RAM: 512MB
   - Operating System: Windows 2000/XP/2003
   - December Redistributable of DirectX 9c

  The above requirements are considered as the absolute minimum in order to run the emulator as it was
 intended to run. The emulator might be able to run on systems that do not meet these requirements
 but with issues (like slow speed, GFX errors or Sound errors).


 Notes:

   - Some games have higher requirements than the rest and have speed issues even on systems that meet 
     the recomended requirements. In that case a faster CPU is necessary to reach full speed.

   - Pentium 4 CPUs perform some tasks slower than other CPUs, thus the clock speed of 2.6GHz is needed.
     On the other hand, Pentium M CPUs perform the same tasks much faster
     (A Pentium M 750 at 1.86GHz should be enough to reach full speed).
     Intel Celeron and AMD Duron (and probably Sempron) CPUs are slow and it's expected to perform worse than the rest

   - Nvidia Geforce 4 MX video cards are worse than the TI series and they do not meet the minimum requirements.

   - DirectX 9c has many redistributables. It's common to have an older version installed that misses certain necessary
     files.
     Be sure to download and install the December redistributable or the default graphics plugin will fail to Load.

   - nullDC will run on Windows Vista. However, hardware requirements will be a little higher than the ones mentioned
     above and there will probably be sound related issues (as with many other applications running on Vista).



 3. Preperations/Other Requirements
 ----------------------------------

  Before running the emulator make sure that you have the necessary Dreamcast BIOS and Flash files dumped from your
 Dreamcast.
  The BIOS must be named "dc_boot.bin" and the Flash must be named "dc_flash.bin". Both files must be placed in the "Data"
 directory which is in the location where you installed the emulator.

 The emulator will fail to run any game or software if you don't have these files.

  Please note that original Dreamcast discs (GD-ROMs) are special discs that cannot be accessed by common PC DVD/CD drives.
 Because of this it is not possible to run these discs directly on an emulator. The only way to run such a disc is
 to make a backup copy (a dump) of it using some "special" methods either by using a Dreamcast or a modified PC DVD/CD drive.



 4. Usage
 --------

 When you run the emulator for the first time you will be asked to select the plugins you are going to use.

 Here is a list of the plugins that come with the emulator:

 -PowerVR (Graphics) Plugins:

  "nullPVR" is the graphics plugin that was made by the nullDC team.
  "Chankast's video" is a port of the PowerVR (graphics) core that was used on Chankast (another great Dreamcast emulator).

 -GDRom Plugins:

  "Image Reader" is used to run images of discs (ie: cdi, mdf/mds, nrg).
  "zNullGD" is used to run discs directly from the PC DVD/CD drive.

 -AICA (Sound) Plugins:

  "nullAICA" is the sound plugin that was made by the nullDC team.
  "Chankast's AICA" is a port of the AICA (sound) core that was used on Chankast (another great Dreamcast emulator).
  "Empty AICA" is an audio plugin that produces no sound. It has reduced compatibility but is faster than the rest.

 -Maple (Input/Saves) Plugins:

   There is only one available maple plugin available that covers all the maple related functions. It has 2 divisions.
  Its first division handles each controller port and its second division handles the expansion slots of the peripheral
  connected to each controller port. Each division has various states. Divisions and states are explained below.

   Controller Division:

    "nullDC Controller [WinHook]" connects a normal dreamcast controller using input from the keyboard.

    "nullDC Controller [WinHook.NET]" connects a normal dreamcast controller using input from the keyboard but for
     NetPlay usage.
     *Refer to the NetPlay section for more information about NetPlay.

    "None" acts like no controller is connected to the port.

   Expansion Slots Division:

    "nullDC VMU" declares that a VMU (memory card) is connected to the expansion slot of a peripheral.
    "None" acts like nothing is connected to the expansion slot of a peripheral.

    In case the above looks confusing... Imagine a Dreamcast, it has four ports, you connect a controller (peripheral)
   to a port, then a memory card to the controller (the Dreamcast controller has two slots for memory cards etc.).
   Maple uses the same structure. See? Simple. ;)

 -External Device (Modem/Broadband Adaptor) Plugins:

  "nullExtDev" acts like no modem or broadband adaptor is connecter to the external device slot of the dreamcast.

 After all the necessary plugins are selected and the "OK" button is pressed the emulator window and console will appear.



 5.1 Menus
 ---------

  Here's a brief explaination of the menu options and their usage. Whenever a menu option has an arrow next to it it will
 expand revealing more options. If it doesn't have an arrow then clicking on it will pop up a configuration/message box.


 Clicking on the "File" tab will reveal 5 options.

  "Normal Boot" boots a dreamcast disc or an image (depends on the delected GDRom Plugin).

  "HLE Boot" boots a dreamcast disc or an image using hight level GDRom emulation.

  "Open bin/elf" boots a dreamcast homebrew/development application/demo.

  "Load bin/elf" loads a dreamcast homebrew/development application/demo into memory.

  "Exit" exits the emulator... maybe.


 Clicking on the "System" tab will reveal 3 options.

  "Start" starts emulation.

  "Stop" stops emulation.

  "Reset" resets the emulator.


 Clicking on the "Options" tab will reveal 7 basic options.

  "nullDC Settings" has the core options of nullDC. It expands revealing options to enable/disable the Dynarec and CP pass.
   Clicking on the "Show" option will open a configuration box with the options and more information.

  "Select Plugins" opens the plugin selection box.

  "PowerVR" contains the available options of the selected PowerVR (graphics) plugin.

  "GDRom" contains the available options of the selected GDRom plugin.

  "Aica" contains the available options of the selected AICA (sound) plugin.

  "Maple" contains the available options of the selected Maple (input/saves) plugin.

  "ExtDevice" contains the available options of the selected External Device (Modem/Broadband Adaptor) plugin.


 Clicking on the "Debug" tab will reveal the "Debugger" option which opens the SH4 debugger.


 Clicking on the "Profiler" tab will reveal 2 options.
  
  "Enable" enables the profiler.

  "Show" shows the profiler.


 Clicking on the "Help" tab will reveal the "About" option which opens the about box.



 5.2 Plugin Specific Menus
 -------------------------

  Each plugin can add its own menus to the interface of the emulator. These options will appear as an extension of the
 corresponding option that each plugin has under the "Options" tab.
  For example, if you run the emulator and go to "Options"->"PowerVR" you will notice some available options.
 Now if you select another PowerVR plugin and go to "Options"->"PowerVR" again you will see that some options
 are changed, added or deleted.


  Most of the options of each plugin do not need explaination but there are specific options with results that the
 end user cannot understand. Section 8 covers cases where changing some options can affect performane and graphics/sound.



 6. NetPlay
 ----------

   NetPlay (unfortunately) didn't make it in the initial release. It's in very early stages at the moment and many
  necessary checks for it are not yet implemented. Using different plugins and different versions of the same game
  on each machine leads to synchronization loss and to faulty NetPlay. Thus it's missing from the initial release.
  Expect it to be implemented soon however. :)

  In case you wonder, every thing needed for netplay comes with the current release... Apart from the Server application.



 7. Known Problems and Possible Solutions
 ----------------------------------------

  - If the VisualC++ 2005 SP1 runtime is missing you may get the 'This application has failed to start because the 
    application configuration is incorrect. Reinstalling the application may fix this problem..' message.Just download
    the setup package , it includes all the runtimes needed.

  - The console that opens when you run the emulator displays some vital information which will help you report possible
    problems that a game may have. However, on some cases it may stay open and make the system slow even after you close
    the emulator. Minimizing the console before running a game will fix that.

  - There is no way to exit fullscreen mode at the moment apart from pressing Alt+F4.

  - nullAICA syncs audio to match the speed of the rest emulator parts. If a game runs below 100% its real speed, sound
    will be choppy and will have occasional "clicks". It would be better to use Chankast's AICA on that case.

  - Some games run slower and some others run faster than they should even if they report that they run at 100% speed.
    Disabling speed limiting will boost the speed of "slow" games if your system can handle it but if a game runs faster
    than it should then not many things can be done.
    ("Dead or Alive 2le" is an example of games that run slower than normal. "Resident Evil: Code Veronica" is one of the
    games that run faster than normal.)

  - The emulator might crash sometimes when trying to close it.

  - If you are asked to enter the date and time every time you try to run a game then the flash file might got corrupted.
    Try going to the "data" folder and deleting the "dc_flash_wb.bin" file. This will probably fix the problem.

  - If the emulator init fails once , nullPVR will lockup on second try.This will happen if you do run, select cancel on
    image selection , and press no in the "Do you want to boot..." messagebox.It affects only nullPVR.

  - Some games may have problems if the Constant Propagation optimisation pass is enabled.Soul Reaver and Toy Commander 
    are known to be affected.

 8. Hits and Tips
 ----------------

  - Systems below recommended requirements will get a speed boost with the "No AICA" plugin and might get better graphical
    results with Chankast's video PVR.

  - Some games have problems with specific plugins. Using a different plugin might fix some issues.

  - nullPVR has an option called "Versioned Textures". Enabling this will result in better graphics on some games
    (ie: Soul Calibur) but it will make some other games too slow (ie: Guilty Gear X, Virtual On).

  - nullAICA has options to enable frame limiting and adjust the sound buffer size. If you get constant "clicks" while
    running a game and the emulator runs at or above fullspeed try enabling the frame limiting and increasing the
    sound buffer size.
    Using a 60Hz screen refresh rate and having V-Sync enabled from the configuration of your video card can also produce
    "clicks". Disabling V-Sync will fix that.

  - Chankast's Video PVR has two options called "ZWrite" and "Alpha Test ZWrite". Enabling or disabling them can make
    some games look better when some graphics appear in front or behind things they shouldn't.



 9. About
 --------

 Credits	:

  drk||Raziel 	: main coder
  ZeZu 		: main coder
  GiGaHeRz 	: plugin work/misc stuff
  PsyMan 	: Mental support, managment, beta testing & everything else
  Xant 		: www & forum, beta testing

 Beta testing   : emwearz, Miretank, gb_away, Raziel, General Plot, Refraction, Ckemu

 Many thanks to : Jim Denson, Flea, Jupi, Chankast team and everyone else we forgot.
