
 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. System Requirements
 ----------------------

   Minimum      :
   - Cpu        : Any CPU that supports SSE1 (AMD Athlon XP and later, Intel Pentium 3 and later)
   - Video Card : DirectX9 compliant video card with Projected Texures support. (Geforce MX, ATi Radeon)
   - Ram        : 256 MB
   - OS         : Windows 2000/XP/2003
   - December Redistributable of DirectX 9c (Included on the setup package)
   - VisualC++ 2005 Service Pack 1 Runtimes (Included on the setup package)

   The above requirements are considered as the absolute minimum in order to run the emulator. The 
   emulator is expected to malfunction or to not work on systems that don't meet these requirements.


   Recommented  :
   - CPU        : AMD 3000+ or Intel Pentium 4 at 2.6GHz or equivalent.
   - Video Card : DirectX9 compliant video card With Vertex shader support. (Geforce 3 TI, ATi Radeon 8500)
   - RAM        : 512MB Dual channel DDR333

   Systems that meet the recommended requirements should get acceptable speeds for most games.


 Notes:

   - Some games have higher requirements than the rest and have speed issues even on systems that meet 
     the recommended requirements. In that case a faster CPU/Memory 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 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 recommended requirements.

   - nullDC will run on Windows Vista. However, hardware requirements will be a 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 load 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 Keyboard [WinHook]" connects a dreamcast keyboard.

    "nullDC Mouse [WinHook]" connects a dreamcast mouse.

    "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" bypasses the bios and boots a dreamcast disc directly.This is for testing only can 
             and lead to compatibility problems.

  "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 7 covers cases where changing some options can affect performane and graphics/sound.



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

   NetPlay is 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, NetPlay didn't make it in this release.

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



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

  - If the application fails to start showing an error message you may not have the required runtimes and DirecX version
    installed. Try downloading the setup package of the emulator instead of the plain files package.

  - 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.

  - 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.

  - Some games may have problems if the "Constant Propagation Optimisation Pass" option is enabled.
    Soul Reaver and Toy Commander are known to be affected.

  - 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 or using a higher refresh rate 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.

  - Specific Echelon intros make nullDC crash with a "Not Implemented Opcode" message.
    This cannot be fixed by using different plugins or options.

  - There are audio related problems on some games that cannot be fixed by using different plugins or options.

  - There are various GFX related problems on some games that cannot be fixed by using different plugins or options.



 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.
