darkNESs v0.13 A NES emulator for the Amiga (C)1997 Mark Van Hal Introduction : darkNESs is a Nintendo Entertainment System emulator for the Amiga. To use it you will need any Amiga with a 68020+ and OS 2.0+, you will also need ROM image files for the games that you wish to play. These files must be in .NES format as is used by iNES, NESticle, and other NES emulators on the PC. Since darkNESs is coded in 100% C, you will need a fast Amiga to play games at a reasonable speed. Using darkNESs : From the CLI type : darkNESs file.nes [-(P|O)] [-F] Replace file.nes with the name of the .nes format ROM image file. If the cartridge uses battery backed memory, then a file with the same name but with an extension of .SAV instead of .NES will be created the first time that you use it, and will be used to save the contents of the battery backed RAM. The -P or -O options are only of use to NTSC users. Since the NES has a resolution of 256 x 224, and a standard NTSC LORES screen is 320 x 200, 24 lines of the NES screen would not normally be visible on the screen. So, by using the -P option, you can run darkNESs in a PAL LORES screen which has a resolution of 320 x 256, or you can use the -O option which will use an NTSC LORES screen with overscan to allow you to display the full NES screen. Note : If you use the -P option, make sure that the PAL monitor driver is in Devs:Monitors. The -F option tells the emulator to set the initial frame-skip to 3 (draw every third frame). This speeds things up a bit, but some games don't look as good when doing this. The frame-skip can be adjusted with F3 while the emulator is running. Pressing F3 increases the frame-skip value by 1, up to 8. When the frame-skip value is 8, pressing F3 sets is back to 1. Controls : Once darkNESs is running, you can use the following controls : Cursor Keys - Joypad LShift or A - Button A LAlt or Z - Button B Return or ] - Start RShift or [ - Select F1 - Select Controller 1 F2 - Select Controller 2 F3 - Increase Frame-skip Value (See Above) F10 - Reset Ctrl - Toggle Mirroring (Horizontal/Vertical) Esc - Exit Problems : Can't open Screen error message - Not enough chip memory or you are using the -P option and the PAL monitor driver is not loaded. Out of Memory error message - Not enough memory to load ROM image. Can't allocate Bitmap error message - Not enough chip memory. File Not Found error message - The ROM image file you specified cannot be found. Unknown MMC error message - The ROM image that was loaded uses a MMC (memory mapper) that is not supported by darkNESs. Currently darkNESs supports the following MMC's : 0,2,3 - 100% working 1 - 90% working 4 - 70% working 7 - 40% working 9 - Untested 11 - 80% working No other MMC's are currently supported. Graphics appear wrong - With ROM images with MMC types 0,2,3 the type of mirroring that the games uses is stored in the .NES header. If this is set incorrectly, the graphics may appear wrong. Press Ctrl to change the type of mirroring, and press F10 to reset the game. If this does not fix the problem, then it may be that the game is not compatible with darkNESs. Note : MMC types 1 and 4 automatically set the mirroring to whatever the game needs, so do not use Ctrl to try to fix these games as it will not work. Game doesn't work, or doesn't work correctly - darkNESs v0.13 is still an early version, and many games still do not work (most of these are due to unsupported MMC's), and some games do not work correctly (these are often caused by timing problems or by games using parts of the NES hardware that are not yet implimented (or not implemented correctly). I am working on making darkNESs as compatible as possible, but it will take time, so if a game doesn't work, wait until the next version comes out, and try it again. The Future : I have many plans for improving darkNESs to make sure it is the best NES emulator available for the Amiga, these include re-writing many parts of it in ASM, adding support for more MMC's and improving compatibility. Note : If anyone has any technical documentation on the NES (other than the ones by Marat Fayzullin and Y0SHI) please contact me by E-Mail at : e0fkgkfo@mail.erin.utoronto.ca (This will change september 1997) Note : Do NOT send me E-Mail asking for ROM images or complaining that a game doesn't work, you will not get any ROM images from me, and I know about most games that don't work. Credits : Marat Fayzullin - For the NES documentation and the 6502 emulation, which is Copyright (C) Marat Fayzullin 1996 Alex Krasivsky 1996 Without which darkNESs would have taken much longer to develop Paul Robson - For releasing the source to NESA, his NES emulator for the PC, from which I borrowed(stole) the palette. Craig Howard - For doing some great icons for darkNESs, which will be included as soon as I create a GUI for it. Y0SHI - for his NESTECH.DOC which is a great source of info on the NES. "Yet when I hoped for good, evil came; when I looked for light, then came darkNESs." - JOB 30:26