You are on page 1of 10

RockNES X

a nintendo entertainment system (8-bit) emulator


First release (version 1.0): March 9th, 2000
This release (version 2.0): April 14th, 2002
developed by Alexandre da Veiga
original DOS version (RockNES) developed by Fx3 (fx3rnes@hotmail.com)
www.rocknes.kinox.org
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
INDEX
1. Disclaimer
2. Warning about bad dumps
3. Minimum Requirements
4. RockNES X description/features
5. Playing with RockNES X: the basics
6. Netplay
7. Optimizing the RockNES X performance
8. About the RockNES X development
9. The RockNES X History (development progress)
10. Special thanks
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
1. DISCLAIMER
I am not affiliated with Nintendo or any other company, nor advocate the piracy
of
Nintendo games. This software is freeware, for absolutely non-commercial use. It
may
be distribute freely *as is* (non-modified). Commercial games cannot 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 o
r
misuse of this software.
-------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
2. WARNING ABOUT BAD DUMPS (BAD ROMS)
There are tons of bad dumps, most of them with incorrect information in its head
er.
Use a tool that is able to recognize the rom content and fix its header.
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
3. MINIMUM REQUIREMENTS
- Pentium MMX or greater processor
- a 3D (Direct3D-compatible) videocard for 3D support
- A DirectSound-compatible soundcard
- Microsoft DIRECTX 8.1 (get it from www.microsoft.com/directx if you don't have
it)
- Windows 98/ME/2000/XP supported
Netplay recommended requirements:

- xDSL, cable or LAN connection


---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
4. ROCKNES X DESCRIPTION/FEATURES
This software is a Nintendo Entertainment System 8-bit (NES) emulator. This is t
he
Windows version for the original RockNES developed for DOS (by fx3).
What is emulated:
-

NES 2A03 CPU (by Metthey Conte);


NES 2C02 PPU emulation with scanline gfx engine;
NES I/O;
Sound emulation of all 5 channels: pulses, triangle, noise and PCM;
Video Palette, very close to real NES;
Color emphasis and monochrome mode;
WorkRAM (battery);
Accurate emulation of sprite #0 hits;
Accurate emulation of PPU I/O (pass ok in the test program).

The following extra hardware is also emulated:


- Konami's jap. VRCVI sound hardware emulation (used by Akumajou Densetsu/Madar
a);
- VS Unisystem arcade machines (missing linked-system) in iNES format;
- Famicom DiskSystem, emulated as mapper #20 (BIOS 'disksys.rom' required,
must to be in the same directory of the RockNESX executable);
- Mappers: 0,1,2,3,4,5,6,7,8,9,10,11,13,15,16,17,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.
Most of these 85 mappers have full support.
These extra features are also provided:
-

NES Movies (record/play);


Save states;
NESticle saved state loading (partially supported);
Game Genie codes

The X features:
- Video at any resolution/color depth supported by the videocard
- Full Screen and Windowed modes
- Stretched video mode;
- 256x224 alternate video mode;
- Scanlines support;
- Full 3D Hardware support (faster)
- Joystick support;
- Netplay support (TCP/IP, IPX, serial, modem), including remote savestate load
ing;
- Screenshot support (video buffer and NES buffer modes);
- SuperEAGLE, Super2xSai, 2xSai video filtering;
- Command line support
- ZIP file support

About command line support:


You can use ROCKNESX <romfile> to start a game from the prompt, or to
create game shortcuts.
About Zip support:
The RockNES X loads the first NES file found in a .zip file.
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
5. PLAYING WITH ROCKNES X: THE BASICS
a) Configuring your ROMs path
To load a ROM, you can simply use the menu option File->Open and Play ROM, choo
se
a file and begin playing. Although, the preferred way is to tell RockNES X wher
e your
ROMs are located, so they you show up in the GUI every time you start the
emulator. To do this, use the menu option Options->Folders and add the folders
where
your ROMs are located. You can also tell RockNES X to look for ROMs in the subf
olders.
Since the ROM names and locations are stored in a file (to allow the fast start
up),
use the menu option View->Refresh Game List when you change the location of a R
OM
file.
b) Default Controls
Player 1:
UP, DOWN, LEFT, RIGHT - keyboard arrow keys
A - 'X' key
B - 'Z' key
SELECT - Right Shift
START - Enter
During the emulation, the following keys are also available:
ESC - Stop the emulation
F1 - Show this list of keys
F2 - Save a state in the current slot
F3 - Increase the slot number
Shift + F3 - Decrease the slot number
F4 - Load a state from the current slot
F5 - Reset (Soft Reset)
F6 - FDS Disk Side Change
F7 - FDS Disk Insert/Eject
F9 - Start/Stop movie recording (using the current slot)
F10 - Start/Stop movie playing (using the current slot)
F11 - Toggle between full screen and windowed mode
F12 - Take screenshot
These commands are also available on the GUI (when using windowed mode).
c) Configuration

Use the options in the 'Options' menu to configure the video, audio and control
lers.
For performance tips, check out the 'Optimizing the RockNES X performance' sect
ion.
note: the config file (rockconfig.dat) is created when you run RockNES X the fi
rst
time or when it is in an older/invalid format. This file contains machine-speci
fic
information.
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
6. NETPLAY
a) To play a game using the netplay, both players must have the ROM file with t
he
exact same name. The ZIP format is fully supported, so the following scenarios
are
allowed:
[Player
[Player
[Player
[Player

1]
1]
1]
1]

romname.nes
romname.nes
romname.zip
romname.zip

[Player
[Player
[Player
[Player

2]
2]
2]
2]

romname.nes
romname.zip
romname.nes
romname.zip

b) To start a netplay game, use the option menu Netplay->Start. If you select t
o
play as player 1, a netplay session will be started. The player 2 then have to
connect to the player 2 machine to start a game:
Playing as player 1:
- Select 'play as player 1' and click 'Start'. The connection window will show
up.
Wait until the player 2 connects.
Playing as player 2:
- Select 'play as player 2' and click 'Start'. Enter the player 1's machine add
ress
when prompted. The connection window will show up.
From this point, any player can invite the other player to start a game.
The players can play many different games without having to repeat the process
above.
The netplay mode ends only when the menu option Netplay->Stop is selected.
note: the emulation will run at the slowest machine's pace.
c) About the netplay buffer
This buffer may be usually set to a value a little bit higher than the ping val
ue.
The higher this value is the slower is the control response.
Both players can change this value.
d) Remote Loading

The remote save state loading is supported by RockNES X. So, when you load a sa
ve
state, it will be remotely sent to the remote player. This may take a while dep
ending
on the connection speed.
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
7. OPTIMIZING THE ROCKNES X PERFORMANCE
a) Emulation Speed
The RockNES X must run at 60 'emulation frames per second' at all times, so the
games
are emulated at the correct speed. The emulation is ONLY cpu-dependant, so any
machine with a Pentium 200 or better processor should run the emulation at full
speed.
If this is not happening, try the following procedures:
1) If you are running Windows 2000/XP or above, go to Options->Advanced and set
Emulation to 'Time Critical'. This setting will tell the emulator to run the em
ulation
with the maximum precision. No relevant processing time is consumed doing this.
This is
not true for Windows ME or older systems, so try settings above the recommended
value, but not too high.
2) The video rendering is so slow that it's requiring too many CPU processing.
In this
case, select a slower resolution, disable any video filtering or scanline suppo
rt.
Usually the video is faster using the 3D video hardware, so try it. As a last a
lternative,
go to Options->Advanced and set the video setting to a lower value.
b) Video
The RockNES X video speed relies basically in the video driver/hardware. It wil
l render as
many frames as possible (at a maximum rate of 60 fps). Try different video mode
s to find
out which ones are better handled by your videocard. For slower videocards, try
320x240x8 resolution. For faster (newer) videocards, the video should never be
an
issue, except when using video filtering, because this mode also uses a lot of
cpu
processing.
c) Sound
The default value for the sound buffer is 66 ms. This value is very conservativ
e and
should work with most sound cards. Although, if you have a good sound card (suc
h as
Sound Blaster Live! or Audigy) and a fast cpu, you can try lower values, to red
uce the
lag between what you are seeing and what you are hearing. If fact, the value 33
ms
means that the maximum lag between the emulation and the sound is 33ms. Since

RockNES X uses double/triple buffering for the video, the lag between the video
and
the sound is virtually zero.
If you are experiencing sound 'popups', try to increase the sound buffer size.
If this also
doesn't help, try increasing the audio priority at Options->Advanced.
d) System Performance Examples:
Using 800x600, 32 bit color, 2D/3D
Pentium 233 cpu, Trident videocard: 60 fps (emulation), 35 fps (video)
Pentium II 300MHz cpu, TNT2 videocard: 60 fps (emulation), 60 fps (video)
Pentium III 1GHz cpu, Trident videocard: 60 fps (emulation), 10-30 fps (video)
Athlon 1.2GHz, Sis6326 videocard: 60 fps (emulation), 40 fps (video)
Athlon 1.2GHz, GeForce3 videocard: 60 fps (emulation), 60 fps (video)
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
8. ABOUT THE ROCKNES X DEVELOPMENT
The
The
The
The

c/c++ code is compiled with Microsoft Visual C++ compiler.


x86 assembly code is compiled with NASM.
GUI is developed with the MFC framework.
video/audio/input/netplay code is developed with DirectX 8.1.

The RockNES X contains about 30000 lines of code.


The RockNES X runs in four basic threads (code running in parallel):
-

GUI thread (to control the GUI, basic requests, message control)
Video Thread (video rendering)
Audio Thread (audio thread)
Emulation Thread (emulation core)

(other threads are added for netplay)


That's why RockNES X can run with ultra-low audio latency, full emulation
speed even with very slow audio/video cards and auto video frameskip.
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
9. THE ROCKNES X HISTORY
Version 2.0 final
- AUDIO, GUI: SERIOUS bug fixed in the sound setup: the soundcard information w
as
being incorrectly stored. This fixes some odd errors on audio initialization.
- GUI: Fixed a few typos.
- GUI: Removed the warning telling that the filtering mode is not supported whe
n
running with 3D Hardware support
- GUI: The GUI was not using correctly the rocklist.dat file during the startup
. Fixed.
- GUI: fixed a bug that was preventing the list of ROMs to show the last rom in
some
cases.
- INPUT: Fixed a bug that was causing the joystick to stop working after a vide

o mode
switch (during the emulation)
- INPUT: In some systems the keyboard was starting to beep after a few minutes
of
continuous play. Bug is fixed.
- VIDEO: new multithreaded gfx engine: now the emulation is able to run at full
speed
even if very slow videocards. The gfx engine will try to render the maximum n
umber of
frames possible (60 fps is the maximum). This means auto frameskip support.
- VIDEO: added official video filtering support (MMX cpu required)
- VIDEO: 2D slow blit fixed
- VIDEO: SERIOUS bug fixed when switching video modes during the emulation. Thi
s fixes
random crashes when the emulation is stopped
- VIDEO: Many fixed bugs in the video filtering mode
- VIDEO: Fixed many bugs that was avoiding the full screen mode to resume after
the
window is minimized
- VIDEO: The RockNES X help in-game text was moving incorrectly using
windowed and 2D mode.
- CORE: fixed some memory access violation bugs
- CORE: sync (to maintain the emulator at 60 fps) greatly improved
- CORE: frames per second measurement improved
- CORE: Gamegenie support added
- CORE: In some systems after the RockNES X was closed the desktop was affected
.
- CORE: command line support fixed
- CORE: .dat format updated
- EMU: based on the latest rocknes release.
- NETPLAY: added support to .zip filenames (even when the remote side has a .ne
s file)
- NETPLAY: fixed a bug that would cause the emulator to crash when the initiali
zation fails
in the remote side
- NETPLAY: Added support to have a .zip file in one side and a .nes file in the
other.
- NETPLAY: In some cases the player 1 would have to wait for a long time after
stopping
the netplay mode. Fixed.
- NETPLAY: Fixed the loss of sync when switching the video mode during the emul
ation
- NETPLAY: Fixed the loss of sync after a remote save state loading
- NETPLAY: The temp dir (used to store a remote savestate) was not set correcly
. This
could prevent non-admin users to use such feature under Windows 2000/XP.
- README: readme text greatly improved!
Version 2.0 beta2
- The battery save is FINALLY working
- The GUI menu item File->Play Selected Rom has been fixed
- Now RockNES X stores the roms list in a file (rocklist.dat), so it do not nee
d to search for
your 5000 roms every time the emu is started :)
- The way screenshots are named has changed. Now, the screenshots are automatic
ally
saved as <romname> 0.bmp, <romname> 1.bmp... <romname> N.bmp. It is not
needed to change the slot to save different shots during the gameplay. Using
the

old system (slots), you could save up to 10 shots per game. Now this number h
as been
increased to 4 billion :)
Version 2.0 beta1
This is the first beta release of the RockNESX 2. It has new features, such as
Netplay,
3D mode, Zip support.
DIRECTX 8 NEEDED!!!!!
- The way RockNES X and the RockNES core interacts has been completely rewritte
n
- Input Control partially rewritten (major joystick bugs fixed)
- Sound Engine rewritten: the output quality is better and the lag has gone awa
y :)
- Added 48kHz support to the Sound Engine
- Sound Device selection fixed
- The audio buffer size can be configured now
- Scanline support rewritten. This new version is MUCH faster
- Now it is possible to toggle between Windowed and Full Screen Mode while play
ing
(using the F11 key)
- 3D Hardware Support added (of course using bilinear filtering!)
- Font Engine Optimized and partially rewritten, to support the 3D mode
- Frameskip support removed (due to the RockNES emulation core requirements)
- The Screenshot system has been improved and also supports the 3D mode
- The GUI has been improved (lots of bug fixed, things added/removed)
- The Folders dialog now has the "look subfolders" option
- The .dat (the RockNES X config file) format has changed, to support more opti
ons and
future format updates
- Netplay mode (support for TCP/IP, serial port, IPX and modem2modem). Remote
savestate loading is also supported
- Several other bug fixes
- Error handling HEAVILY improved
- Zip support added (finally! :))
- In sync with the latest RockNES source (1.9x).
Version 1.61
-

This new RockNES X version can be 40-120% faster than the previous version.
Added triple buffering
8 bit rendering engine optimized
Auto frameskip added (highly recommended!)
Ppu code optimized
Now RockNES X creates automatically the savegames, movies and battery save
directories when necessary.
- Battery save fixed
- Added screenshot support
- all the emulation core is in sync with the newest RockNES (DOS) version.
Version 1.42
- Windows 2000 bug solved!
- Small GUI problems fixed (now you know when the ROM is incorrect)
- Better noise emulation (by Fx3)
Version 1.41

-Improved Rendering Engine


-Windowed Mode Support
-VS Palettes Support
-Pause Key
-Improved Joystick Support
-GUI bug fixes
-GUI support for NES, VS and FDS roms
-and... ALL the core is in sync with the newest RockNES (DOS) version.
(TONS of changes to describe here!)
Version 1.201
- Joystick mapping fixed
- Now you can play again with sound disabled ;o)
Version 1.2
- Joystick support!!!!
- Load Game fixed
- GUI improvements and fixes
- New artwork
- New Font Engine
- Pixel Interpolation (if supported by the hardware)
- Scanline modes added
- The 16-bit mode is now compatible with old videocards
- 24-bit mode fixed
- 8-bit color palette now is 100% correct
- new synchronism system: now the video is smooth even on ultra-fast machines
- now a thread controls the sound output. Many sound related problems (mainly w
ith
slow machines) were solved
- Command line support. Now you can type "RockNESX game.nes" or create shortcut
s to
your favorite games!
- A ROM can be loaded by a Windows standard load file dialog (you asked for it.
..
so you got it!)
- FULLY compliant with the RockNES 1.06 (newest DOS version)
Version 1.05
- All the emulation related changes in the rocknes 1.05 (dos) release
- Minor speed improvements in the rendering engine
- High color and True Color modes support (16, 24, 32 bits)
- if supported by hardware, the stretched mode uses pixel interpolation...
on a Viper 770 it looks just great!
- in newer video cards (like Viper770), the 16-bit mode is faster than the 8-b
it mode
- 2 players support (thanks!)
- The keys are now configurable
- now the configurations are saved when are editing them, not only when you clo
se
the RockNES X
- the savestate format changed (because of the new CPU core)
- Better sound output
- New keyboard controls
- Now the GUI supports files with any extension
- GUI bug fixes
- General code optimization

- Minor bug fixes


Version 1.0
- First release
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
10. SPECIAL THANKS TO
Fx3 - for all the emulation core!
Roberto - for all the support and testing!
Luiz - for the artwork!
everyone else - that helped me developing this piece of software
---------------------------------------------------------------------------------------------------------LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)
KEEP PLAYING... KEEP THE DREAM ALIVE.
RockNES X 2.0, 2002
LO DESCARGASTE DE YOUTUBE.COM/PINKUTUTORIALS :)

You might also like