release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > WikiUsers > AaronHuggins > PluginTuxNES

NES Plugin Development

At this time, there is no plugin, not even a test version. Please do not ask the rockbox developers about the inclusion of this plugin or direct questions to them. The place for discussion is on this forum topic. Please do not post questions in the forum asking about progress! This is where you will find the latest progress. Do not contact us about ROMs or where to get them, as we will ignore such requests.

Status

  • NOTE: I have been stalled while in school, but have been making some progress on porting FCEU. Hopefully will have some results by summer.
This project is no longer at a stage of research. Early development is currently taking place.

Help Us

For those interested in assisting us, a few things should be noted. We are sticking to the absolute basics of functionality at the research and developement stages of the plugin. That means only a handful of games will be focused on and only after figuring out how to get it running on Rockbox. Technical research would be appreciated on any level and discussion of that research in the forum topic. Please read below to see what we have found and what we have rejected so that no one has to waste precious, and greatly respected, time. Thank you, AaronHuggins and RobertMenes.

Current Findings

AaronHuggins: 6502 code - Both FCEU and nofrendo have very attractive cpu cores. Will have trouble deciding which to implement.

FCEU mapper implementation should probably be ported. Correct me if I'm wrong.

Tux NES needs better sound implementation. Perhaps there is something special we could do for Rockbox?

Old - Portable 6502 code by Marat (closed-src) - http://fms.komkon.org/EMUL8/M6502-010807.zip. FCEU mapper and cpu src will be very useful. Marat gives detailed information on both FDS and NES, need to find sound architecture/information, or pull code from FCEU.

RobertMenes: I have found a good comprehensive listing of most of the iNES mapper formats that are known at the FCE Ultra Documentation page: http://fceultra.sourceforge.net/docs.php

Another site of interest (and with lots of juicy information!) would have to be the NesDevWiki page.

We may be able to garner a little information about the sound architecture/information by researching the NSF sound format, since NSF files are nothing more than an NES ROM with all graphic/map/program data stripped away and only the audio engine and data left in and a small header added to the data.

NES Hardware Specifications

  • CPU - Ricoh 2A03 CPU (NTSC) or 2A07 (PAL), both of which are the MOS 6502 without a decimal mode.
    • Clock speed of 1.79 MHz for NTSC regions, and 1.66 MHz for PAL regions
  • Memory - 2 KB located at $0000-$8000 on the CPU memory map
  • Video
    • Ricoh 2C02 PPU (Picture Processing Unit)
    • Resolution - 256 x 240 pixels
    • Colors - 48
    • Palette - 5 grays
    • Tiles - 8 x 8 pixels tiled background
    • Sprites - Up to 64 8x8-pixel or 8x16 pixel sprites
  • Sound - Implemented into the 2A03/2A07, with registers mapped to $4000-$4017.
    • 2 Pulse wave channels
    • 1 Triangle wave channel
    • 1 Noise channel
    • 1 DPCM channel*

Rejected Findings

FDS Emulation is too much work to implement. Emulation of FDS may be unattainable for a Rockbox target.

Game Genie support is also too much work. It would require a Game Genie ROM, plus a way to have the Game Genie start up to enter codes before starting the game. Another solution MAY be looked at, but for now, it's rather pointless.

Since there would be absolutely no logical way to implement them on a DAP, certain special controllers like the Zapper and Power Pad will not be supported.

Relevant Emulation Resources

FCE Ultra pages - Sourceforge Project/downloads :: Homepage

Tux NES pages - Sourceforge Project/downloads :: Homepage

NES Architecture Documentation by Marat Fayzullin - http://fms.komkon.org/EMUL8/NES.html

Wikibook on NES assembly programming - http://en.wikibooks.org/wiki/NES_Programming

Zophar's Domain NES Technical category - http://www.zophar.net/tech/nes.html

Wikipedia entry - http://en.wikipedia.org/wiki/NES

Wikipedia entry on the MMC - http://en.wikipedia.org/wiki/Multi-Memory_Controller

Emulators on ARM based platforms - ArchOpen's aoNES which is a port of Little John's NES emulator for the GP32

r21 - 02 Apr 2021 - 20:46:07 - UnknownUser

Copyright © by the contributing authors.