Divisions of Research and Development

From ProjectPokemon Wiki
Jump to: navigation, search

Within Project Pokemon, there are a few main divisions which determine categorically where certain subjects fall. All of these are heavily related, but some borders between these divisions can be defined.

ROM Research and Development

ROM Research and Development involves the analysis or modification of a game's internal non-running state. This state is usually considered Read-Only, hence ROM (Read Only Memory), but software implementations and hardware modifications exist to make such editing possible.

File Types

The standard ROM extension for a Nintendo DS ROM is .nds. The ROM extension for a Nintendo 3DS ROM is .3ds (or .3dz in some instances). Each of these have an internal structure, similar to a directory tree or archive, that allows for various other file types.

SAV Research and Development

SAV Research and Development involves the analysis or modification of the game's saved non-running state. This state is initially created when a New Game is selected and updated after each Save during game play.

File Types

The standard SAV extension is .sav. Because saves between different games are fundamentally different, there are a variety of tools meant to operate on saves of a specific game. SAV files generally have complex structures which can be pulled out as individual files depending on their purpose, eg. a WCD File represents a saved wondercard.

RAM Research and Development

RAM Research and development involves the analysis or modification of a game's actively running state. Hardware such as the Action Replay allow users to give the games code to be executed at run time. Debuggers allow for memory to be viewed or modified as an emulator emulates a game.

RNG would fall under RAM R&D because it relies on the currently active state. Game play mechanics also fall into this category.

Service Research and Development

External services involve the analysis of services that take place outside of normal game play. These include interaction between devices or interactions with a particular server that has a dedicated function, such as the GTS.