
         
                   
                               
                   
No, it doesn't run "Balloon Force"! 

License agreement:
You must not view this file in Notepad. Use Edit.
If you don't agree you should delete this program immediately.

uNESsential 0.20
By Johannes Holmberg, Bjrn "_Bnu" strm and Don "FrodoDead" Jarrett.


0. Contents
  1........Introduction
  2........What's new
  3........Instructions
  4........Requirements
  5........Emulation
  6........Misc Stuff
  7........Credits
  8........Disclaimer
  9........More stuff
                           

1. Introduction
                                                                   
  uNESsential is a NES emulator written in QBasic. It is written by
  Johannes Holmberg, Bjrn "_Bnu" strm and Don "FrodoDead" Jarrett


2. What's new
                               
  Version 0.20
  - Scrolling
  - Fixed huge timing bug
  - Palette emulation
  - Page Up/Page Down can be used in file requester (buggy)
  - Opcode SBC fixed.
  - Frameskipping.


3. Instructions                                                    
                                                                     
  How to use it:                                                     
  There are two ways to run uNESsential.
  Either by typing
  "uness rom.nes"
  or by simply typing
  "uness"
  which will bring up the file requester.

  Joypad Keys:                                                       
  Arrows - Directional pad                                           
  Z      - A                                                         
  X      - B                                                         
  C      - Select                                                    
  V      - Start                                                     
                                                                     
  Other Keys:                                                        
                                                                     
  Q      - Quit                                                      
  O      - Toggle opcode output (slightly out of order)                                     
  I      - Toggle opcode output (slightly out of order)
  P      - Toggle palette emulation
  B      - Set breakpoint
  +      - Increase frameskip
  -      - Decrease frameskip

  Opcode output is broken as of version 0.14. You can still use the
  O key to look at the registers though.
  Maybe I'll have it fixed in the next version.
  Joypad emulation works on a toggle basis. Don't keep the physical
  keys pressed, or you will go deaf.
  To set a breakpoint, press B and then use the keys 1,2,3 and 4 to
  choose a breakpoint and hit enter.


4. Requirements                                            
                                                             
  I'm not sure about system requirements really, but here's  
  what I think should be sufficient:                         
                                                             
  A PC capable of VGA graphics.                              
  About 100kb of hard drive space for swap files.            
  A few kilobytes of conventional memory.                    
                                                             
  A Pentium II is highly recommended.
                                                             
  To play games at full speed (60 fps) you will need a       
  processor of at least 100Ghz.                              


5. Emulation                                                  
                                                                
  What it emulates:                                             
  - All of the 6502 opcodes (I think).
  - Most of the PPU
  - Joypad 1
                                                                
  What it will emulate in the future:                           
  - Joypad 2 (Possibly 3 and 4 too)                             
  - Sound (only if we manage to speed up emulation remarkably).  
  - Some mappers.                                          


6. Misc.                                                     
                                                               
  Other things you should know:                                
  
  If a game seems to get stuck on the title screen.
  Give it some time, go eat lunch or something.
  Some games need more than 100 frames to actually
  get into the game. (Usually because the want to play some music)

  I destroyed the opcode outputting because it was coded in a stupid way
  which slowed down emulation. It will be back in the next version.

  Sprite flipping does not currently work in the y-axis with 8x16 sprites.
  I don't know of any game which uses it which means that any implementation
  of it will be terribly buggy.

  A few words on the palette emulation:
  uNESsential runs in a 16 colour video mode. This means that good palette
  emulation is impossible.
  Palette emulation currently works like this:
  uNESsential includes a NES palette which uses only 16 colours.
  When the background is rendered. A few of these colours are chosen and
  are assigned to then actual 16 colours of the pc.
  When sprites are to be rendered, they will look throught the palette,
  and if they find the colours they need, they'll use them.
  If any colours are missing, some parts of that sprite will be black.
  This wastes colours, but it is pretty fast.

  Compatibility list:
  As of v0.20 quite a lot of games work.
  I don't feel like making a list though.
  Some games that work are.
  Super Mario Bros, Balloon Fight, Donkey Kong Junior and Ice Climber.
  If anyone wants to make a list, please do,
  and I'll post it on the homepage.

  Why uNESs? The extra 's' is because I don't want people to   
  confuse uNESsential with another emulator called             
  Ultimate NES (uNES).                                         


7. Credits
                                                              
  Thanks to the following people who made this possible:
                                                              
  - Marat Fayzullin and Yoshi for their invaluable NES docs.  
  - Loopy for making LoopyNES which has helped incredibly.    
  - Goroh for taking the time to answer my sprite questions.  
  - Tony Young for creating Junkrom and Mouser.               
  - Chris Covell for making his various NES ROMs.             
  - AtLaS for thinking of the name uNESsential.               
  - AkIlLa^ for pointing out errors and making suggestions,
            and implementing the zaniest features in Nes4pc
            just to allow me to debug my cpu core.
  - Whoever wrote the cart.nes rom.
  - Probably some more people. Mail us if we forgot you.       


8. Disclaimer
                                                                    
  Who cares anyway? Let us just say one thing: "It's not our fault!" 


9. More stuff                                           
                                                          
  Feel free to mail me (Johannes) at bapple@home.se,
  _Bnu at klass9.v@jokkmokk.se,
  FrodoDead at r.jarrett@worldnet.att.net
  The latest version of uNESsential can be downloaded at: 
  http://www.emucamp.com/unessential/                     
  Copyright - Johannes Holmberg, Bjrn strm and Don Jarrett 1999


"Oh no, run!" -R.W.
