MAME-based per-pixel-accurate render plugin for the N64 video interface.

To install:
    1.  `/bin/x86_32/Windows/vigl.dll` goes in:  $emulator/Plugin.
    2.  `/bin/rdp_conf.bin` goes in           :  $emulator.

To compile:
    1.  Check angrylion's repository for any source updates.
    2.  If it's not too inconvenient, avoid using MSVC to compile this plugin.
        Try to use GCC if available.  (See `make_w32.cmd` or `make.sh`.)
    3.  Should the need arise, also provided with the source is `vigl.vcproj`
        (VS2005+) and `vigl.vcxproj` (VS2010+) for the Visual Studio IDE.
    4.  Most likely there will be tons of compiler errors if you lack a modern,
        complete <GL/glext.h> which is directly available from:
        * https://www.opengl.org/registry/
        * https://www.opengl.org/registry/api/GL/glext.h

-- updated 2015.06.13 --
    * renamed extension-loaded OpenGL functions to fix Mupen64Plus collisions
    * exporting non-zilmar-spec `ReadScreen' to fix SIGSEGV's on Mupen64Plus 1.5
    * removed the automatic window size adjustment for PAL images to 640x576
    * fixed premature blanking of the rainbow colored bars boot screen :(
    * added some more forced OpenGL state configuration commands
    * fixed leftover VI garbage seen for an instant when switching between ROMs
    * staticized texture coverage LOD fraction calculations
    * optimized filling large buffers of memory with a single byte
    * merged r84 from upstream angrylions-stuff/mylittle-nocomment
    * many optimizations to YUV texture element fetching and YUV-RGB conversion
    * merged r85 from upstream angrylions-stuff/mylittle-nocomment
    * improved 16-bit R5G5B5 frame buffer reads with dynamic branch weighing
    * optimized coverage buffer allocation and YUV texture LUT decoding
    * merged r86 from upstream angrylions-stuff/mylittle-nocomment
    * folded RGB comparisons for dithering
    * merged most of r87 from upstream angrylions-stuff/mylittle-nocomment
    * improved combiner equation performance with dynamic branch prediction
    * removed the 3-bit restriction on color dither randomization masks
    * supports newly discovered VI pixel destruction on clamped hres or h_start
    * merged r88 from upstream angrylions-stuff/mylittle-nocomment
    * statically preserving x_start initial value in case of RCP timing issues
    * some finalized corrections to horizontal pass max-clamping
    * merged r89 from upstream angrylions-stuff/mylittle-nocomment
    * guaranteeing sufficient VI divot and aliasing buffer sizes
    * passes some more technical RCP hardware tests involving x line caching

-- updated 2015.04.27 --
    * fixed typo in z64.h SIGN_MSB macro for non-MSVC builds (divot filter fix)
    * added FLAGS_x64 to `make.sh' Unix build script for 64-bit builds w/ -fPIC
    * Use Intel-architecture-fixed C optimizations on GCC also, not just MSVC.
    * small grammar, capitalization changes to the Win32 configuration GUI
    * added `USE_SSE_SUPPORT' to Microsoft Visual C++ preprocessor settings

-- updated 2015.04.24 --
    * sharper OpenGL rendering quality on the visual screen (NN and bi-linear)
    * better compatibility with older OpenGL implementations
    * OpenGL 1.5 extensions for hardware-accelerated rasterization of the VI
      image as two triangles, rather than pixel data sent through the CPU bus
    * compatible with OpenGL ES 1.x specifications
    * now fully ported to compile outside of Windows
    * able to maintain 64-bit and 32-bit Windows and GNU builds
    * renamed build files from "mylittle-nocomment" to "vigl"
    * no more VS2013 files, just vigl.vcproj and .vcxproj for VS2005 and VS2010
    * repaired old VI origin scanline regression when in 480i interlaced mode
    * rewrote RDP tex_rect and tex_rect_flip commands (fixed GE 007 menus)
    * up-to-date with latest revisions upstream on Google Code as of r83
    * more changes to the DLL configuration GUI by RPGMaster
    * changed some confusing, maybe misleading elements to the Win32 GUI
    * new GUI option to export 4, 8, or 16 MB RDRAM to a binary output image
    * changed screen captures to check old file names to prevent overwriting
    * changed screen captures to write shots thru DAC if not DP FB res. formula
    * screen clearing to black background color, not gray or magenta
    * some scattered improvements to vectorizing some more of the RDP in places
    * no longer any CRT dependencies, either dynamically or statically linked
      (no more msvcr*.dll requirement on Windows, uses plain kernel32)
    * I can't remember.  Too many more commits to read to name other changes.

-- updated 2014.03.28 --
    * moved crt/msvcr120.dll to a separate archive
    * added a conditional fix to DirectDraw down-scaling and a warning
    * fixed screen height from 237 pixels to 240 pixels

-- updated 2014.04.12 --
    * updated to provide dxguid and ddraw libraries in case of problems linking
    * rewrote all source code to C (nothing broken but no great speed-up either)
    * DllConfig will now toggle all VI filtering on and off when configuring the
      graphics plugin through an emulator (to substitute RDRAM pixel overlays
      emulation for speed, faster for testing the RDP without VI interference).
    * modularized the VI emulation to its own library, separate from the rest
      of angrylion's code, to organize RDP changes apart from VI changes
    * experimental screen capture option to 16-bit BMP image files
    * macro dynamics for changing the plugin name to something different if the
      plugin was compiled to scale to a 320x240 screen rather than 640x480

-- updated 2014.05.19 --
    * completely rewrote the RDP commands shuffle and execution unit decoders
    * some SIMD vectorization for 64-bit command FIFO buffering with MMX and
      some SSE2 for the triangle spans renderer
    * fixed VI line count regression with non-standard VI configurations
      (Mario no Photopie, Super Smash Bros. credits roll, others...)
    * fixed 32-bit VI frame buffer read endian (Resident Evil 2, Hexen, others)
    * fixed screenshots
    * new features for frame stepping (useful for ripping animations) and a
      bypass for simulating the AI thread priority over the VI (frame skip)
    * optimized render_spans_fill and rectangle/texture commands for some speed
    * experimental (possibly more accurate?):  re-ordered timing of 24-bit DRAM
      address masking to happen constantly during rendering phases
    * removed/replaced almost all of the surviving standard C run-time
      dependency functions in the Microsoft libraries (but not all of them yet)

-- updated 2014.07.03 --
    * rewrote DirectDraw7 code into OpenGL code to fix undefined GPU behavior
      and portability issues and add more flexibility and features
    * added full-screen mode
    * remove surviving CRT dependencies (no more MSVCR120.dll needed)
    * option to auto-resize the window to game's active video frame buffer size
      when said FB resolution changes
    * new config system with plenty of options, such as different screen sizes
    * remembering settings to a new file named `RDP_CONF.BIN'
    * option to choose between system, software blitting through the bus in
      glDrawPixels or hardware-accelerated, bi-linear upscale via textured quad
    * fix DirectDraw's scaled blitting problems by rewriting to OpenGL

-- updated 2014.07.19 --
    * included RPGMaster's GUI with the project
    * fixed raster origin offset when not using GPU-accelerated scaling
    * implemented DllTest feature to log description of chosen pixel format
    * added new message display methods (warnings and status bar texts)
    * added new OpenGL test methods and a SMPTE test bars screen render
    * RDP commands skipping now only skips triangles, not entire command lists
    * will now initialize (and usually work) after switching from other plugins
    * corrected synchronization status flag to not be constant (more speed)
    * now using GL_BGRA_EXT on Win32 instead of RGBA (more speed)
    * no longer constantly re-creating and destroying texture objects (speed)
    * clamped texture end edge coordinates with bi-linear upscale
    * moved initialization of OpenGL to screen/VI update emulation thread loop
