NOTE TO USERS WHO HAVE v0.05 and below: Change the "cycles_per_scanline" in
squeem.ini to "115", this was a problem i have forgot to remove when it makes
a cfg file.  If you dont do this, it will go slow.

NOTE: the default video plguin is SLOW, its there so you can explore the
features and stuff.  switch to the "ddvideo" plugin, its way faster and
fullscreen, but switch AFTER you explored all the neato features :)

YET ANOTHER NOTE: i will trade the squeem source code for a real famicom
system, email if you are interested (my email is at end of this file).

UH HUH, ANOTHER ONE: if ya wanna config squeem, run it once and exit real
quick to make the ini file, then edit it, then play


squeem - By: Dead_Body
----------------------
Hey, this is my emulator for Windows, called squeem (no, its not related to
bleem).  It is very basic and, well, rather shitty BUT it IS going to improve
a whole bunch!  Im going to try to make it the next NESticle, but i doubt it
will ever get that good, because im 15 and not as experienced as Sardu (the
author of WONDERFUL NESticle).  Well, thats the basic story of squeem, i hope
you like it and support it.

Everyone get Pretendo!  The makers of that like help me so much, so get thier
emu!  Pretendo website - http://www.pretendo.org/

Oh yeah, i dont know what these things called "roms" are, so dont email me
asking what they are, what they do, how to get them, how to make them, why
you need them, who should have them, how old they are, what they smell like,
if they will go out with you, if they taste good, if they are legal, when i
will know what they are, how many there are, why they are cool, why they
murdered your hampster, if they work with squeem, if they are for sale, if
they made one for you, why you cant find any, why there is so many, when
people will release them, how they eat, what they eat, when they eat, why
they eat, how much they eat, what thier blood type is, if they have a
favorite band, why they drive small cars, how they can talk, what planet
they are from, who created them, if they have a rom god, if they can come out
and play, why they dont wanna kiss you, if they play with you cat, how they
look, if they look good, if they wanna watch tv with you, and finally if you
can have them.

squeem can run it full speed in windowed mode with a frame skip on 1 on my
machine, its a Cyrix 133mhz processor with 16mb ram.  It can run at full
speed with a frame skip on zero with the ddvideo and g2video plugins.  squeem
is the fastest nes emulator for windows out on the internet, if you find a
faster windows one, lemme know (NESten dont count :P).

squeem can also run at 60 frames-per-second in dos mode, with a frame skip at
Z-E-R-O on my Cyrix 133mhz processor with 16mb ram.  its fast, but not the
best dos emulator.


Plugins
-------
Yes, squeem uses plugins.  The idea came from PSEmu Pro (when i started, i
didnt know about the other kick ass nes emulator pretendo).  Here is the
recomended plugins to use:

   ddvideo for the video plugin
   wininput for the input plugin
   nulsound for the sound plugin
   oldrndr for the renderer plugin

Them should get you up and running your games very fast.  If, for some weird
reason, the ddvideo plugin or any other plugin dont work, e-mail me and we
can meet somewhere over the internet and talk about the problem (if i havent
already fixed it).  As far as i know, all the plugins should work on any
system (except for g2video, which requires a 3dfx card).


Cheat dialog
------------
For a picture which makes it easy to understand, visit this webpage:
   http://squeem.emucamp.com/cheat.htm

The cheat dialog...very handy and complicated device.  I will explain what
each button does in each group.  It would be easier to visit the webpage on
it, but whatever pulls your little red wagon will do.

   "Cheats loaded" section
   -----------------------
   This section shows all loaded cheats in a listbox.  There are three
   buttons up top for you to use, here is what they do:
      Delete: Delete the selected cheat
      Load: Load up a new set of cheats from a file
      Save: Save the current set of cheats to a file

   "Add (hex)" section
   -------------------
   In this section, you can add memory locations, game genie codes, or the
   location selected in the search list box (see below).  To add a game genie
   code or memory location, enter it in the edit box.  If its a memory
   location, enter it in like a hex digit (0 through F).  If you enter a
   memory location or select a search result, you will need a value for it to
   do something useful, so enter it in below in the "Cheat value" box in the
   "Edit (integer)" group (see below).  After you have entered something in,
   or searched and selected a memory location from the search results box,
   press one of the buttons below the edit box, here is what each button
   does when you click it:
      Add memory: Add a memory location you entered in the edit box (with
         values set)
      Add game genie: Add a game genie code you entered in the edit box
      Add search: Add a memory location selected in the search results list
         (with values set)

   "Edit (integer)" section
   ------------------------
   Here you can change RAM values or set the cheat value for a cheat.  If you
   want to set a RAM value, enter it in in the RAM value edit box.  If you
   need to add/edit a cheat's value, use the Cheat value edit box.  Here is
   what the two buttons do when you click them:
      Refresh: Refreshes the RAM value edit box with the current RAM value
         for the selected cheat
      Set: Sets the new RAM value and Cheat value with the one in the boxes

   "Search (integer)" section
   --------------------------
   Man all this typing sucks...oh well.  Here you can search the RAM for
   values you enter in the "value" edit box.  Just enter a value and select
   what to search from (new or the old results) then where to search
   (currently RAM only) and press the "Start searching" button.  Easy huh?


Debugger
--------
Umm...since this is easy to figure out and understand, ill let you figure it
out.  But there is just one little note: if you plan on changing a, x, y, s,
or pc, you should pause the emulation, bring up the debugger, then change and
apply them.  If you dont bad stuff may happen...


Buttons to press
----------------
Here is what the buttons do:

  Keys you would want to use:
    F1     - Pause emulation
    F4     - Save current state
    F5     - Load current state
    F9     - Enable/Disable cheating
    F11    - Show/Hide fps counter
    F12    - Screenshot to file 'screen.bmp'
    -      - Decrease frame skip
    =      - Increase frame skip
    Escape - Quit the emulator
   *Up     - Joystick up
   *Down   - Joystick down
   *Right  - Joystick right
   *Left   - Joystick left
   *Z      - B button
   *X      - A button
   *Tab    - Select button
   *Enter  - Start button

* = default "wininput" plugin only

  Internal debugging keys:
    F10 - Dump the screen to "screen.out"
    F11 - Shutdown the video plugin
    F12 - Init the video plugin


What it does do
---------------
   * Emulates the 6502 completely and fast by using a kick ass 6502 emulator
   * All PPU registers, but PPU isnt 100% done yet
   * Scanline based background and sprite rendering
   * Sprite priorities
   * Plugins for video, input, and (coming soon) audio
   * Save/Load states
   * Really nifty icon you can stare at :)
   * Palettes
   * Windows versions Mappers: depends on which plugins you have now
   * Dos versions mappers: 0,1,2,3,7
   * Horizontal and vertical scrolling
   * Sprites: 8x8 and 8x16
   * Input (2 controllers and working on powerpad and zapper)
   * FAST FAST FAST emulation!
   * Debugger
   * Cheat dialog, for game genie and a little fun :) (not complete)
   * Frameskip
   * It prolly does more then this, cause im too lazy to update this section


What it dont do
---------------
   * Disk system and other weird add-ons (Zapper, Powerpad, etc...)
   * More mappers
   * Other crap is cant remember :)


Known bugs
----------
   * Mapper1 games half the framerate
   * Scrolling in some games is messed up
   * Stretching and eagle mode at the same time cause mental retardation


Version history
---------------
   * Version 0.01 (first release)
      - First version and initial release (for DOS)
   * Version 0.02
      - Made it Windows
   * Version 0.03
      - Added mapper 2
   * Version 0.04
      - INPUT!
      - Fixed palette mirroring (thanks to Proxy)
      - Added mapper 7 (kinda)
      - Fixed up "wininput" plugin
      - Started to add powerpad support
      - Been a week, and FINALLY fixed the chrrom problem (VERY VERY stupid
        mistake >:(
   * Version 0.05
      - Added all sound registers, but they so you dont get 82 million
        "unhandled write" messages
      - Made it more beautiful looking in fullscreen, and touched up ddvideo
        plugin
      - Made a Glide 2.x plugin, FAST
      - Added nifty debugger and cheat dialog
      - Added partial mapper1, mapper11, and mapper71 support
      - Added full mapper3 support
      - Created a Joystick Input plugin
      - Background priority for sprites (kinda)
      - Almost finished background renderer in assembly
      - Changed the $2002 register in the PPU to set write for $2005 (do you
        understand any of this? :)
      - Touched up mapper7
   * Version 0.06
      - Fixed a problem with default cycles per scanline
      - Little side note (im pissed): wasted a day looking for a bug because
        i changed the type of a variable.  That really sucks a fat one eh?
      - Added full mapper32 and mapper78 support
      - Added partial mapper9 and mapper34 support
      - Loading and saving of SaveRAM now
      - Fixed mapper2 bug
      - Completely rewrote mapper1
      - Pulse1 (Square Wave1) channel added (but no sound for you...yet)
      - Made 2 sound plugins (wavsound and nulsound)
      - Added fameskip-ish thing (uperiod in ini file)
      - Started to add Famicom DiskSystem support (dont use it yet :)
      - A windowed video plugin (using windows dib)...but its slow.
      - New settings dialog added
      - Save/Load state (squeem is almost the shit now, eh? :)
      - Customizable directories (roms and saves so far)
      - Fixed up the user interface a little (easier to use)
      - Started mapper4 and mapper15 (nothing works yet)
      - All the things in the menu works (except for the webpages, too lazy
        to add them)
      - Thing to see the average fps in the debug file when you quit (not
        quite working)
      - Improved lots of mappers (more games work)
      - Completely rewrote the mapper system, faster hopehully (i might of
        broke some games, and i might of fixed some games, who knows? :)
      - New menu item to load another rom without having to quit (big wow :)
      - You can resize the window now if your using a windowed video plugin
      - PPU renderer plugins now, mainly for testing
      - Working on new renderer, which will be 100% accurate when finished
      - Started my OWN 6502 emulator (currently with 3 opcodes and
        questionable addressing)
   * Version 0.06a (dos beta)
      - Started adding zapper support (dont work yet)
      - Now using Neil Bradley's m6502 core v1.6 (old one was v1.3)
      - Bank masking fixed, a more games work (windows version)
      - Little improvments here and there
      - Dos only due to slowness of windows cause i took out 16mb of ram to
        sell other comp so i can buy a better one to develop squeem on
      - Added mappers 0 in dos version
   * Version 0.07 (dos only)
      - Game Genie support (uses crc of prg data to index codes, so people
        with different rom names, but same game, can share cheat files)
      - Fixed one scrolling bug
      - Optimised the renderer and mirroring
      - SPRITE PRIORITIES! (maybe a little slower)
      - NameTable viewer
      - Added mappers 1,2,3,7 to dos version
      - Changed the this file so you can read it in dos's edit program
      - State save format changed (but most saves _should_ still work)
      - Added joystick support (may not work with all joystick, cuz i have just 1)
   * Version 0.08 (dos only)
      - Added eagle mode to the video thing, enable thru the ini file
      - Added 100% and 50% scanlines mode to video thing, enable thru the ini file
      - Config thing in the GUI
      - Spiffy cheat finder thats full of bugs!
      - Major code cleanup and partial rewrite
      - Bug fixes in a few things, less crashes, more fun


Notes
-----
   * You should use the default video mode for "ddvideo", or else it may have
     crap on screen
   * squeem slow on you?  try changing the "uperiod" setting to a higher
     value (uperiod = frameskip)


Contact info
------------
   E-mail: dead@deadmail.8k.com
   Web: http://squeem.emucamp.com/

   You should get these emulators for windows because mine sucks:
      Pretendo - http://www.pretendo.org/
      NESten   - http://tnse.zophar.net/


Credits
-------
   "Multi-6502 CPU emulator by Neil Bradley (neil@synthcom.com)"  <-- l33t :)
   #n!&${@&)%# (secret channel ;) for help and stuff
   Mark Adler for CRC32 code i borrowed from zlib
   \Firebug\ for the really cool mapper docs
   uzplayer for getting me the hook up with a good site for hosting (Emucamp!)
   Marat Fayzullin for his emulator how-to, nes docs
   Goroh for the FDS docs
   Jeremy Chadwick for the kick-ass nes documentation
   TNSe for a little help and mapper stuff - NESten: http://tnse.zophar.net/
     i borrowed some mapper code from him (mapper 1 and 0)
   Crix_Sunrider for like being a great friend and beta tester :)
   PrOxY and Delta for helping me a lot with just about everything
   Lycia for explaining to me linear and ascending stuff
   Tennessee Carmel-Veilleux for the powerpad doc he wrote, and zapper help
   Chrome_X for beta testing my emulator
   ReaperSMS for telling me about stanknes (which i bummed a little code from :)
   Dirk Stevens for Eagle.  Visit the Eagle HomePage at www.retrofx.com (note:
     i had to modify the eagle engine to remove cpuid, cause my cpu dun support it
