.......................   
 Welcome to year 2000!     RockNES 0.991 - Released on January, 09th 2000.
.......................    Copyright (c)1998,1999,2000 - Fabiano Lopes (Fx3)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

   Disclaimer:

   - I am not affiliated with Nintendo or any other company, not advocates
the piracy of Nintendo games.
   - This software is freeware. You can to distribute it freely, as long as
it is non-modified. Commercial games can't be packaged with this emulator.
   - When you use this software you do so at your own risk. The author cannot  
be responsible for any loss or damage resulting from the use or misuse of
this software.
   - If you don't agree with these terms, DELETE THIS SOFTWARE NOW.

[===========================================================================]
   \Warnings/ before you e-mail me...

 1. Many games don't work correctly (or at all), so don't bug me. There are
*tons* of bad dumps, mostly with junk in the header. Use a good tool to fix.
 2. Don't ask how to use rocknes (read this doc).
 3. Don't request commercial games.
 4. Don't send any files (emulators, games or any other kind of junk).
 5. Be sure you are using a VESA mode, or the speed should be *very* slow!
Get SciTech Display Doctor (http://www.scitechsoft.com) and good lucky.
 6. I can't add netplay, so stop asking for support. If you can write this
stuff, it should be welcome here.
 7. If you don't like RockNES, so try other emulator such as LoopyNES.

[===========================================================================]
WHAT'S NEW:

Version 0.991

- Fixed a crash problem of mapper #0 games writting to $8000-$FFFF (?), now
Ms PacMan (Namco version) works;
- Fixed a couple of mirroring bugs in the mappers;
- Fixed NES hard reset (I hope);
- Key F5 enabled for NES reset;
- Moved a lot of stuff (internally) to avoid too much public stuff;
- GUI items not finished are not displayed for a while;
- Added VS Unisystem palettes selection in the GUI;
- Removed some junk code and minor GUI glitches.

Note: if you want to check out past changes, feel free to edit 'oldnews.txt'.

[===========================================================================]
   Index

 1. The emulator and its features
 2. Configuration file and default controls
 3. Using the GUI
 4. iNES file format description.
 5. VS Unisystem palettes (a must read).  <---- new
 6. "What is a NES mapper??"              <---- new
[===========================================================================]

 1. The emulator and its features
 ================================

    This is a Nintendo Entertainment System (NES 8 bit) videogame emulator
for DOS. I wrote this piece of soft 'cause NES is/was my pretty videogame.
    RockNES 0.99 is a full rewrite of original RockNES. It was designed to
be very compatible and faster. Currently, the following features are added:

- 6502 CPU emulation, using a slightly changed version of Marat's 6502 core.
- Full PPU emulation with scanline gfx engine.
- NES I/O (such as joypads), partial sound emulation (4 channels), palette;
- Backed battery (if present in a game).
- Mappers 0,1,2,3,4,7,8,9,10,11,13,15,16,17,18,19,21,22,23,24,25,26,32,33,
34,64,65,66,68,69,70,71,78,79,85,99,151,228,231. Most of these 39 mappers
are partial.

Note: if you want to get emulated a non-listed mapper, send me docs.

    The following extra features are added:

- VS Unisystem arcade machines (missing linked-system) in .NES format;
- NES Movies (*.RMx, x=0..9).
- Save states (*.RNx, x=0..9). Please, check 'rnstate.txt' for information.
- GUI.

    The following extra features are missing due the rewrite:

- EAGLE effects;
- VS Unisystem arcade machines (missing linked-system) using ROM sets;
- PlayChoice-10 arcade machines (missing "How-to-Play" panel, not necessary);
- Game Genie codes;

    About the speed and requirements:
    ---------------------------------

- You should have, at least, a P166Mhz with 8Mb of RAM (I didn't try on 4Mb).
- VESA support enabled.

Note: RockNES works with fine speed in my P166 using frameskip 1.
      With no VESA support present, the emulation should be *VERY* slow.

    About the NES Movies:
    ---------------------

    You can record your gameplay. This mean you can record your gameplay! :P
Now, both joypads are logged.

[===========================================================================]

 2. Configuration file and default controls
 ==========================================

    When you run RockNES by first time, a config file (rnsetup.cfg) is
generated at current directory. This file is very commented, so, please,
edit it and see the options you can change (video, sound, inputs etc.).
    During the emulation, keys works as follow:

 <ESC> - Quit to OS prompt / leave GUI and back to game.
 <F1>  - Swap to GUI (emulation stop).
 <F2>  - Save state (*.RNx, x=0..9).
 <F3>  - Slot selector (0..9).
 <F4>  - Load state.

 <F5>  - Reset (soft).
 <F9>  - Movie record (again to stop).
 <F10> - Movie play (again to stop).
 <F12> - Save a screenshot (.PCX).

 KEY PLUS PAD (+)  - Increase frameskip (default=0, limit=9).
 KEY MINUS PAD (-) - Decrease frameskip.

Note: with sound enabled, speed has 60FPS as limit. There is no speed
control with sound disabled (no autoframeskip).

    [player 1] - input is KEYBOARD1 (setup 1)
    UP, DOWN, LEFT, RIGHT = keyboard arrow keys.
    A = 'X' key.
    B = 'Z' key.
    SELECT = 'Tab' key.
    START  = 'Enter' key.

    [player 2] - input is KEYBOARD2 (setup 2)
    UP     = 'U' key.
    DOWN   = 'J' key.
    LEFT   = 'H' key.
    RIGHT  = 'K' key.
    A      = 'S' key.
    B      = 'A' key.
    SELECT = 'Q' key.
    START  = 'W' key.

[===========================================================================]

 3. Using the GUI
 ================
   
    After a long time, here's the GUI. It's easy to use. Tell me if you can't.
A lot of items must to be finished/added with the time.
    GUI items are:

 [Game]
  - Load ROM.........: It loads .NES files from a directory.
  - Load VS game.....: (DISABLED FOR A WHILE).
  - Free ROM.........: Free a ROM loaded (not recommended).
  - ROM header.......: (DISABLED FOR A WHILE).
  - Write VROM.......: If there is video ROM, it can be dumped.
  - Save screenshot..: (DISABLED FOR A WHILE).

 [CPU]
  - Reset............: It works like you press RESET buttom in the console.
  - Hard reset.......: The same, but works like power OFF and ON.
  - NES timing.......: (DISABLED FOR A WHILE).
  - Game Genie.......: (DISABLED FOR A WHILE).
  - Advanced.........: (DISABLED FOR A WHILE).

 [Misc]
  - Inputs...........: (DISABLED FOR A WHILE).
  - Directories......: Paths for ROM and VS Unisystem games.
  - Resolution.......: You can change video card and video resolution.
  - NES movie........: Record, play, stop and status of a NES movie.
  - EAGLE effects....: (DISABLED FOR A WHILE).
  - Save state.......: The current game state will be saved in a slot.
  - Load state.......: Back to game to get the state restored.
  - ROM information..: Information about mapper, mirroring... from header.

 [Help]
  - Help.............: A little help.
  - System...........: Shows the current display driver and sound card.
  - About............: About the emulator.

Note: Directories can't be saved to disk if changed by GUI (for a while).

  That's all.

[===========================================================================]

4.iNES Format (.NES)
  ------------------
    +--------+------+------------------------------------------+
    | Offset | Size | Content(s)                               |
    +--------+------+------------------------------------------+
    |   0    |  3   | 'NES'                                    |
    |   3    |  1   | $1A                                      |
    |   4    |  1   | 16K PRG-ROM page count                   |
    |   5    |  1   | 8K CHR-ROM page count                    |
    |   6    |  1   | ROM Control Byte #1                      |
    |        |      |   %####vTsM                              |
    |        |      |    |  ||||+- 0=Horizontal Mirroring      |
    |        |      |    |  ||||   1=Vertical Mirroring        |
    |        |      |    |  |||+-- 1=SRAM enabled              |
    |        |      |    |  ||+--- 1=512-byte trainer present  |
    |        |      |    |  |+---- 1=Four-screen VRAM layout   |
    |        |      |    |  |                                  |
    |        |      |    +--+----- Mapper # (lower 4-bits)     |
    |   7    |  1   | ROM Control Byte #2                      |
    |        |      |   %####00PU                              |
    |        |      |    |  |  |+- VS Unisystem arcade         |
    |        |      |    |  |  +-- Playchoice-10 arcade        |
    |        |      |    +--+----- Mapper # (upper 4-bits)     |
    |  8-15  |  8   | $00                                      |
    | 16-..  |      | Actual 16K PRG-ROM pages (in linear      |
    |  ...   |      | order). If a trainer exists, it precedes |
    |  ...   |      | the first PRG-ROM bank.                  |
    | ..-EOF |      | CHR-ROM pages (in ascending order).      |
    +--------+------+------------------------------------------+

[===========================================================================]
 5. VS Unisystem palettes (a must read).
 ---------------------------------------

 In the GUI, you can select a correct palette for a VS Unisystem game.
 These are the choices you can do in the menu:

 (1) Main NES palette
 (2) VS CastleVania
 (3) VS Excitebike
 (4) VS Super Mario Bros
 (5) VS Goonies
 (6) VS Ice Climber
 (7) VS Gradius
 (8) VS Hogan's Alley

 Some of games should use a same palette. Check the list below:

 [GAME]................[PALETTE]
 VS Golf/LadyGolf       Use VS CastleVania, not perfect.
 VS Mach Rider          Use VS CastleVania, not perfect.
 VS Pinball             Use VS Gradius (7), perfect.
 VS Soccer              Use VS Goonies (5).
 VS Platoon             Use VS Gradius (7), not perfect, but the best.

 For others games, try by yourself. :P

[===========================================================================]
 6. "What is a NES mapper??"

 I've found around emulation world this question (from emulators users).
 Here's a shorty description:

 1. Mapper is a chip present in cartridges. It does extra functions to suit
 the game, such as video ROM switching (the character data, graphics), PRG
 pages (data which should be a game music, stage data or own 6502 program),
 IRQs (mostly to display scores, like Super Mario Bros. 3 score, or some
 cool wave effects, such as Rockman 6 title screen), extra sound channels
 (such as Akumajo Densetsu, the japanese CastleVania 3) and more.

 2. When a game uses a mapper (notice that Super Mario Bros. or any other
 simple game DOES NOT USE), the CPU writes to some memory areas, mostly to
 $8000-$FFFF. Each address does something, or a range by itself.

 3. You *must* to emulate these chips to get these games working. There are
 not much docs avaliable, and with no information, no way to do your pretty
 game get working in an emulator.

 4. We write functions to emulate a mapper, which has an identification, such
 as a number, chip ID, board etc..

 That's all.

[===========================================================================]
WEB: RockNES website
http://www.emucamp.com/rocknes
fx3rnes@hotmail.com
[===========================================================================]
//eof
