Clean ROMs
"Clean ROMs" is a term thrown about a lot by a few people and it is a subject that some may want clarifying for them, it is likely worthwhile reading the whole of this article as some things may be of interest to both GBA and Nintendo DS ROM users yet were hard to categorise.
Introduction[edit]
Cartridge games and other things require memory to store them. Groups of people and individuals take the time to get the code of the original memory (known as dumping or ripping), repackage it (in some compressed format) and often add small textfile normally with the extension ".nfo" which contains information about the release, people responsible for it, methods to get it to work and other things and then release it to the world.
This code is known as a ROM image, often shortened to ROM, if it is taken from a cartridge (the cartridges nearly always use some form of Read Only Memory: hence ROM) or in the case of CD/DVD/(some other optical media) or a floppy disc the code is known as an ISO. This article is going to be centred on GBA and DS ROMs while other systems may be alluded to.
EZFlash users that have carts that use linkers i.e. EZFlash I,EZFlash II or EZFlash III can use EZClient and their linker to dump GBA ROMs and if they choose to modify their linker very heavily they can dump GB and GBC ROMs too, EZ4 and EZ5 users due to the lack of a linker can not however dump ROMs currently. In the future it may be possible to dump the DS ROM directly to the memory card similar to how most of the current methods of dumping DS ROMs.
Simply put a clean ROM is one that is the same as is found on a cartridge it came off of, however as this ROM image is computer code it can be altered and by doing so it no longer can be considered clean.
There are many things that can be done but the most common are people add introduction graphics and music (often the case with ROM release groups), or they may alter the text, images or sound contained within the ROM either for translation/improvement or on occasion for more questionable purposes. "The scene" as it is known (groups of people responsible for the release and distribution of ROMs) often encourages intros to be added as a sort of badge of honour for the release group although if the ROM image is too heavily altered "The scene" considers it a "nuke".
With the exception of some rom hacks and occasionally trainers it is usually desireable to use clean roms with emulators and flash carts.
GBA ROMs:[edit]
The most prominent type of alteration done is the addition of an intro.
Intros on handheld consoles (Amiga/PC rips with intros were commonplace) started with the Gameboy game Hollywood Pinball when the release group Capital included a small intro with their release of said rom and in doing so caused an uproar. Back to the GBA, intros were included on numerous ROM releases the most prominent would be those of the release groups MODE7 and Rising Sun which are often not able to be skipped and last quite a few seconds.
Early GBA intros also added code to the last part of the ROM image and due to the way cartridge memory works(*) the last parts of the ROM image are often junk code and are given the hexadecimal values: 00 or FF.
The intros added replaced these sections of 00's and FF's which can be nearly always be safely trimmed from a ROM image without losing anything at all. Simply put these intros affected the ability to trim ROM images to fit on flash carts causing headaches for some.
(*) it is nearly always 2^N in size where N is a natural non negative number (the counting numbers) i.e. 2^2, 2^4, 2^413...: your games/programs code has no such limitations however).
Various groups of people such as No-Intro and Good Tools got and re-dumped these intro bearing ROMs and made patches typically in IPS format to get them back to pure/clean status.
Other people coded tools to remove simple intros from ROMs (some of the more well made intros can display a F-you type message upon attempted removal), EZClient has some built in support for removing GBA intros but standalone tools are recommended with GBA Tool Advance being one of the best, it also includes support for IPS patches if you need one.
Intros can cause problems with flashcarts but are considered undesirable/annoying by most and many will seek to remove them. ADVANsCEne is a very good place to search for patches and methods with which to clean your ROM images. Kilgore's IPS patch Archive is a very good place to find most of the IPS patches you will need for fixing/cleaning your ROMs.
Other things like replaced text and more simple things that still make ROMs "nukes" have occurred during the GBA's time, however this is on occasion hard to detect. To this end checking your ROMs is advised:
You can check ROMs in a few ways, the most common is a CRC32 check against a known/reliable source such as ADVANsCEne.
As checking/verifying ROMs is a tedious task there exist multiple tools for checking ROMs such as ClrMAME Pro, GoodGBA, Offline List, GBA-renamer and many more. ADVANsCEne also maintains a few DS dats (data files) for a few of these programs.
On the whole clean ROMs are desirable however various games get released in Japan that never get translated into English/your preferred language or take ages to do so. When using emulators such as pocketnes to play NES games on your GBA hardware the fonts used by the original game can be too small. Sometimes things are added or taken away when released in a different region which can later be put back. People sometimes do not want to mess around with gamesharks, codebreakers and other cheating devices/programs.
To this end people translate games (those who would desire a Chinese language translation here is a good place to start), hack fonts(GBA hacks here,put things back that were removed and make trainers*.
No ROM having had techniques applied in the two paragraphs above can be considered pure but none the less the things detailed above are useful to many people so while the mantra "a clean ROM is a good ROM" is a good concept it is not absolute.
(*)trainers can cause troubles with ROMs so it well advised to verse yourself in cheating mechanisms instead.
Nintendo DS[edit]
There exists something of a misnomer regarding clean Nintendo DS ROMs. The way the ROMs are currently dumped for it means they have to have an area of the ROM called the secure area decrypted to do so. In doing this the ROM is no longer clean and this is the viewpoint taken by No-Intro so read carefully what DAT/CRC32 value you are getting if you use their data, there also exists some debate as to whether the ROMs re-encrypted by the new NDSTool or No-Intro's own tool are correct. Should you wish to re-encrypt your ROMs for some reason either grab a later version of NDStool or use the No-Intro tool.
EZFlash carts when making use of DS ROMs however require that ROMs have the secure area decrypted and probably all ROMs released that you will find will not be re-encrypted. Most places that hold ROM data like GBATemp , PlayerAdvance ,GBARL.it and ADVANsCEne will have ROM info for the ROM images that are not re-encrypted.
The above however is something of an intellectual debate and the following sorts of dump can all be considered "nukes"/not clean.
Golden Sun Team releases:
Golden Sun Team were (they do not seem to do anything anymore) a release group that dumped ROMs only for the DS kit known as the Neoflash, the ROMs dumped were hacked to work and only work with the Neoflash kits, other flash carts have had ROMs pre patched for them but the were not as prolific as the Golden Sun Team ones.
Prepatched ROMs
In late 2005 release group WRG released a copy of Mario Kart for the DS that had been patched with their generic patcher although the particular version used being in closed beta. It works on most carts (early GBA and some of the more obscure carts have trouble), honourable intentions aside it is still a "nuke", a few other pre-patched ROMs are around but this is the most common.
Ripped/Enhanced/Translated ROMs
Various groups and people have put DS ROMs out that have had sound files altered/replaced and sections stripped out hence the ROM is ripped, often this is done with the intention of shrinking the ROM so as to dodge the 256mbit limit of some carts or simply to get more ROMs onto the cart or on occasion to enhance the ROM, see the ripping section of DS commercial roms (running) and general usage for a guide and links and for tools to do it.
While once again intentions of most of these are honourable the ROMs are still nukes.
Translations on the DS have started to appear: there have been several Chinese translations of Japanese games and Final Fantasy 3 was translated to Thai. Work in progress Jump Super Stars translation: http://www.translationrl.it/ Thai translation of Final Fantasy 3: http://www.kenghot.com/ Chinese translations: http://www.yyjoy.com/yy/
With regard to translations the DS filesystem method and the fact many ROMs use uncompressed plain ASCII, Shift JIS or a simple relative text system for text means provided you have a hex editor you yourself can even partially translate a ROM. The New Super Mario Brothers game is a good example of this with the files in the data\script directory holding some menu data in Unicode.
Trainered ROMs DS cheating is not quite as advanced as GBA and other systems (there exists a few applications and action replay devices) but there does exist a few trainers for ROMs, grab them here. Obviously as things have been added they are not clean, ROMs have not been distributed with trainers attached yet (occasionally an already released rom gets a trainer added and then rereleased) but there is the possibility. -Fail Trainers are designed to edit gamesaves any changing to the ROM is a patch
Some early ROMs releases (and a few later ones)
Currently ROMs for the Nintendo DS are dumped only by a few people, see this article on the Pocket Heaven Wiki for the ways to do it/how it is done and even these few groups do not have it down as an exact science yet..
The first/main way was made by a group called Silver Moon Team (not to be confused with Golden Sun Team) which had a few bugs with early versions of the software. This caused ROMs to be dumped badly and for the ROMs to need patching so should you have ROMs that need it ADVANsCEne will have the patches you will need, the EZ3 compatibility article has direct links to the pages required.
Release group SCZ also made a few bad dumps (and corrected it) in early 2006, ADVANsCEne will once again contain patches should they be needed.
The recent Metroid Prime Hunters European versions had issues as well.
Some of the ROM checking methods mentioned above in the GBA section have not been made so that DS ROMs can be checked or simply do not support them at this time: Offline List with the DS DAT made by ADVANsCEne (click on the dats link in the flash section on the left hand side of the page) are good. ClrMAME Pro also has a few dats for the DS. ADVANsCEne also has its own checker called NDScrc but it is still in beta.
Intros have not come about yet for the DS although many believe then to not be far off (the .NFO's from Rising Sun's releases promise intros soon and intros exist on the trainers).