Rock Nes

download Rock Nes

of 7

Transcript of Rock Nes

  • 8/17/2019 Rock Nes

    1/7

      R o c k N E S  A NES 8-bit videogame emulator    (c)1998-2007 Fx3, version 5.00B3, January 3rd 2007  Freeware, for absolutely non-commercial use  hotmail.com @fx3rnes (swap to fix)

      http://www.geoshock.com/rocknesBB/ 

      LICENSE AGREEMENT:

      - This is free software for home use, meaning no commercial ways and no  warranties, so you use it at your own risk. You cannot package commercial  ROM images, never, as a sign of your mental sanity. Please, don't bother  me if you messed up the things.  - If you disagree with these terms, DELETE THIS SOFTWARE NOW.

      HARDWARE REQUIREMENTS:

      - RockNES features cycle precision timing emulation.  - There's no test for a minimal hardware to get RockNES running at 60FPS,  but a +1Ghz CPU might do the task. Notice it's not target to run on older

    machines - that's the price for its accuracy.  --------------------------------------------------------------------------  ----------------------------------------------------------------------

    ** NOTICE ** This is a beta version, might be unstable.

     What's new for version 5.00 BETA 3 (01/03/2007) ----------------------------------------------- - Timer tweaked a bit, it's better.

     - Fixed display messages and flickering. - Some internal changes and minor fixes.

     [==========================================================================]  Notes: * Read 'oldnews.txt' for complete history of updates.  * Report any problems in a descriptive way at  http://www.geoshock.com/rocknesBB [==========================================================================]

     1. Description 2. Configurations and default controls 3. Using the GUI + Game Genie.

     4. iNES file format description. 5. VS Unisystem games. 6. "What is a NES mapper?"

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

     1. Description -------------- > This software emulates the Nintendo Entertainment System videogame (NES). > RockNES is fully coded in C. It uses the great Allegro library.

     * Emulated hardware *

      - 2A03 CPU emulation (Motorola 6502 variant) using cycle precision.  - 2C02 PPU emulation using a 'pixel-by-pixel' engine.  - Joypads 1 & 2.

  • 8/17/2019 Rock Nes

    2/7

      - Full pAPU emulation, including squares, triangle, noise and DMC/RAW channels.  - Konami VRC6 sound emulation, used in 'Akumajou Densetsu' and 'Madara'.  - Famicom DiskSystem and VS-Unisystem are partially emulated, still buggy.  - Backed battery save to disk.  - Supported iNES mappers: 0,1,2,3,4,7,9,10,11,13,15,16,18,19,20,21,22,23,24,  25,26,32,33,34,40,41,42,43,44,57,64,65,66,67,68,69,70,71,72,73,75,76,78,79,

      83,85,88,90,91,92,94,97,99,100,101,110,113,117,118,119,151,160,180,184,187,  189,225,226,227,228,229,230,231,232,233,234,235,240,243,246 and 255.

     NOTES: 1. Famicom DiskSystem emulation (as mapper #20) requires the BIOS file  named 'disksys.rom'

    2. RockNES uses a custom RGB palette taken from Rockman Complete Works,  and a few 'holes' indexed with Chris Covell's palette.  3. I have no interest to emulate mapper #5 (MMC5, CastleVania 3).

      > Other features available:  ---------------------------  - PPU color emphasis and monochrome masking.

      - Accurate sprite #0 triggering and 8-sprites limitation.  - Joypad data logging (replay).  - Save states (emulation freezing).  - NESticle savestates are supported (.STA files).  - GUI and config file.  - Game Genie codes (still buggy).  - Exclusive ROM data patching.  - Sound logging (WAVE file).  - Built-in PRG-ROM data disassembler.  - Optional fake-stereo sound output.  - PPU image filtering on 640x480 as Pixelated, Scanlines or Stretched.

     * Unemulated hardware *

     - All illegal CPU opcodes. - European NES console (PAL 50Hz) and japanese Famicom. - Input devices such as LightGun (Zapper), microphone, PowerPad and others. - Joypads 3 and 4. - VS-Dualsystem. - Playchoice-10 upper monitor (z80 emulation). - Extension sound chips other than VRC6.

     > NOTES: ********  - RockNES has ZIP file loading.  - You can record your gameplay. The joypad states are saved to disk, so the gameplaycan be exactly reproduced.  - Game Genie codes are supported.  - When first run, RockNES creates a config file named 'rocknes.ini'. There's a lot of options, so open the file using an editor, like MS Notepad, and have fun.  - NES memory dumping is supported, as listed below.

     Legend: T = text file, B = binary file.

     # Menu -> CPU -> Dump... -> "RAM",  "Work-RAM"

      "CPU $8000-$FFFF"  "CPU registers"  "PRG ROM data"

  • 8/17/2019 Rock Nes

    3/7

      "CHR ROM data"  "Palette RAM"  "Pattern table"  "Nametables"  "Sprite RAM"

      +---------------------+------------------+---------------+------+

      | context | CPU memory range | filename | type |  +---------------------+------------------+---------------+------+  | System RAM | 0000h-1FFFh | nes_ram.bin | B |  | PRG ROM data | built-in | gamename.prg | B |  | PRG RAM data | 8000h-FFFFh | gamename.p8f | B |  | Work-RAM | 6000h-7FFFh | nes_wram.bin | B |  +---------------------+------------------+---------------+------+

      +---------------------+------------------+---------------+------+  | context | PPU memory range | filename | type |  +---------------------+------------------+---------------+------+  | CHR RAM data * | 0000h-1FFFh | gamename.gfx | B |

      | Nametables | 2000h-3EFFh | gamename.nam | B |  | Palette RAM | 3F00h-3FFFh | pal_ram.bin | B |  | Sprite RAM | built-in | sprites.ram | B |  | CHR ROM data | built-in | gamename.chr | B |  +---------------------+------------------+---------------+------+  * As known as Pattern table. # Menu -> File -> Game Information # Menu -> CPU -> Dump... -> CPU registers  +---------------------+------------------+---------------+------+  | context | Information | filename | type |  +---------------------+------------------+---------------+------+  | iNES header info | 16 bytes header | gamename.txt | T |

      | CPU registers | Actual CPU state | cpu6502.txt | T |  +---------------------+------------------+---------------+------+

     [==========================================================================] * KNOWN EMULATION ISSUES (version 5.00):

     - Better PPU support is required to run mapper 4 games, plus to get perfecttiming to fix some picky games (Battletoads), but I'd need to rewrite/tweak myPPU core in order to work like the NES PPU does the tile fetching thing... -_- - Famicom Disksystem driver is junked, as I don't plan a fix or update for now. - No mapper 4 games will work, as Super Mario Bros 3, due to mapper IRQs. - MMC2/MMC4 games are 1 tile glitched usually in the right side. - Mapper #90 Mortal Kombat Special uses a slightly different hardware, soexpect a few issues. - Some mappers might be still broken due to lack of proper testing. - Garbaged scanline(s) with games that require a perfect IRQ timing. - Battletoads might hang during stage 2 (Impact Crater). You could get thatmegawarp at the beginning, rushing directly to Turbo Tunnel... ^_^;; [==========================================================================]

     2. Configuration and default setup ----------------------------------

     > Default keys (by default) are:

      [player 1] - device is KEYBOARD  UP, DOWN, LEFT, RIGHT = keyboard arrows  A = 'X' key

  • 8/17/2019 Rock Nes

    4/7

      B = 'Z' key  SELECT = 'Tab' key  START = 'Enter' key

      [player 2] - no device assigned (KEYBOARD)  UP = 'U' key.  DOWN = 'J' key.

      LEFT = 'H' key.  RIGHT = 'K' key.  A = 'S' key.  B = 'A' key.  SELECT = 'Q' key.  START = 'W' key.

      > Joypads:

      UP,DOWN,LEFT,RIGHT = D-pad  A - button 1  B - button 2

      SELECT - button 3  START - button 4  Quit Emulator - button 5  Fast Forward - button 6

     > Other keys:

      - Switch to GUI / back to gameplay.

      - toggles Frames-Per-Second display on/off. - save state from selected slot  - slot selector to save/load a state (0,1,2,3,4,5,6,7,8 or 9)  - load state from selected slot

      - NES soft reset (RAMs are not cleaned)  - FDS disk side flip (A->B->C->D->A...)  - FDS disk insert/eject  - to insert coins (VS Unisystem)

      - gameplay logging  - gameplay player  - unused?  - take screenshot

      - Quit to OS

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

     3. Using the GUI + Game Genie -----------------------------  (notice that some of the items might be outdated,  perhaps I'm too lazy for updating them, heh)

     [Main]  - Load ROM...........: Lists files of extension .NES/.NEZ/.FDS/.BAK/.ZIP- Game information...: Displays iNES header information + CRCs.

      - Screenshot.........: Takes a screenshot (BMP).  - WAVE logging.......: Record WAV files.

      - Quit...............: Close the emulator.

     [CPU]

  • 8/17/2019 Rock Nes

    5/7

      - Reset..............: Emulation reset.  - Save state.........: To save your progress.  - Load state.........: To load your progress.  - Load NESticle state: Ability to load a NESticle progress.  - Dump...............: NES memory dumping (lots of options).

     [Misc]

      - Video resolution...: You can change the video card/resolution.  - Movies.............: Record, play, stop and status of a NES movie.  - Palettes...........: Set the current palette (for VS Unisystem games).  - ROM cheat..........: You can patch the loaded ROM data.  - Game Genie.........: You can enter Game Genie codes (up to 10).  - ROM Corruptor!.....: Corrupts a certain memory range.

     [Help]  - System.............: Disabled.  - About..............: Software revision ID.

     

      GAME GENIE

     > GameGenie codes can be either 6 or 8 digits and use the letters:  A P Z L G I T Y E O X U K S V N

    // To test game genie 6 char code - SXIOPO Super Mario 1 Unlimited lives// To test game genie 8 char code - SXEZSKOZ Super Mario 3 Skywalker

     > To input a GameGenie code, go to Misc->Game Genie. A small window will appear requesting a code, disregarding case (SXEZSKOZ, SxEzSKoz or szezskoz are acceptable). Any invalid letter is ignored. Click OK to finish or CLEAR to delete all inserted codes. > No way to enable/disable a code during gameplay. For 6 chars codes only,

     you must reset the emulation to take effect.

     Note for advanced users:

     > A 6-char GG code will patch data at 8000h-FFFFh on reset only. If a game uses bankswitch, there are chances to get an useless code. The 8-char code has no problem - it keeps patching whatever appears there.

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

     4. iNES header format ---------------------

     > RockNES supports only .NES files within the iNES header created by Marat Fayzullin years ago. Here's the description:

      +--------+------+------------------------------------------+  | Offset | Size | Content(s) |  +--------+------+------------------------------------------+  | 0 | 3 | 'NES' |  | 3 | 1 | 1Ah |  | 4 | 1 | 16K PRG-ROM page count (size=x*0x4000) |  | 5 | 1 | 8K CHR-ROM page count (size=y*0x2000) |  | 6 | 1 | ROM Control Byte #1 |  | | | %mmmmvTsM |

      | | | | ||||+- 0=Horizontal Mirroring |  | | | | |||| 1=Vertical Mirroring |  | | | | |||+-- 1=Backed battery |

  • 8/17/2019 Rock Nes

    6/7

      | | | | ||+--- 1=Trainer data (512 bytes) |  | | | | |+---- 1=Four-screen mirroring |  | | | +--+----- Mapper # (lower 4-bits) |  | 7 | 1 | ROM Control Byte #2 |  | | | %MMMM00PU |  | | | | | |+- 1=VS Unisystem arcade |  | | | | | +-- 1=Playchoice-10 arcade |

      | | | +--+----- Mapper # (upper 4-bits) |  | 8-15 | 8 | 00h |  +--------+------+------------------------------------------+

     Legends: ======== a) PRG-ROM stands for PRoGram ROM, or actual 6502 CPU instructions. b) CHR-ROM stands for CHaRacter ROM, or the game graphics.

     Notes: ====== 1. Needless to say that ROM stands for Read-Only Memory. Understand that

     a RAM type allows writes too.

     2. Next data is PRG-ROM (in linear order) and then CHR-ROM if exists. A certain game can use VideoROM (paged gfx data) or VideoRAM at ppu I/O 0000h-1FFFh space.

     3. By default, if 4-screen mirroring flag is set, then it's *hardwired* and cannot be changed.

     NOTICE: ======= > Dirty headers are still present around ROM images, causing bad header parsing, usually getting the mapper number as #66.

     > Mappers 0-255 are valid numbers. However, some pirated/unlicensed games can bring unusual mappers being assigned over #255 - low 4 bits of byte 7 is used, sharing the byte for arcade hardware flags. RockNES has no support for these unusual mappers. > The header brings the game data size. If the real file size does not match the size specified in the header, the loading proccess is halted.

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

     5. VS Unisystem ---------------

     > VS Unisystem are Nintendo arcade machines with titles such as Pinball, Super Mario Bros. and others (insert coin$). The color signal is different, hence the NES palette won't fit, so you must select a new palette in the GUI for your specific game. RockNES uses the iNES format too.

     * DIP Switches are not supported.

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

      CREDITS (no special order)  **************************

     * Special thanks to Shay Green for his test ROMs, or else RockNES wouldn't

    reach its current state. * Thanks to Brad Taylor for his superb NES documents; * Thanks to _Bnu for his 6502.TXT (6502 Microprocessor) document;

  • 8/17/2019 Rock Nes

    7/7

     * NESdev (http://nesdev.parodius.com) and everyone over there!

     DJGPP package http://www.delorie.com/djgpp/

     Allegro's library by Shawn Hargreaves http://www.talula.demon.co.uk/allegro

     http://alleg.sourceforge.net

     Binary compressed using UPX The Ultimate Packer for eXecutables Copyright (c) 1996-2001 Markus Oberhumer & Laszlo Molnar http://wildsau.idv.uni-linz.ac.at/mfx/upx.html http://upx.sourceforge.net

     Alastair Bridgewater - Darcnes http://www.dridus.com/~nyef/darcnes

     Parodius Networking - website hosting

     http://www.parodius.com

     Super2xSaI and SuperEagle cores Copyright (c) Derek Liauw Kie Fa, 1999 Modifications for Allegro 3.9+ comptibility by Robert J Ohannessian. Original web site: http://members.xoom.com/derek_liauw/

    unzip -- IO for uncompress .zip files using zlib Version 1.00, September 10th, 2003 Copyright (C) 1998-2003 Gilles Vollant

     Blargg's Home

     http://www.slack.net/~ant/

     [=========================================================================] [=========================================================================]//eof