Classic NES Series
Classic NES Series |
---|
Also known as: Famicom Mini (JP), NES Classics (EU/AU) This game has anti-piracy features. |
The Classic NES Series, also known as the Famicom Mini series in Japan, is a series of Game Boy Advance cartridges with emulated ROMs slapped onto them. The carts are infamous for the fact that the games' graphics have been resized to account for the GBA's screen resolution, making the sprites look rather ugly, with the most prominent example naturally being "Hunchback Super Mario Bros."
Still, at the time, they were a decent official way to play Famicom and NES games on the go (certainly less cumbersome than the e-Reader in that regard).
Contents
Anti-Piracy
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Document this fully. Endrift's blogpost is a good resource. Also, doesn't the use of mirrored memory also trip up some flashcarts? |
To do: Rewrite to be more accurate to what's happening. |
If the cartridge detects that it is pirated, the above error screen appears. Lower-accuracy emulators (such as VisualBoyAdvance) can also trigger this screen.
...Wait, lower-accuracy emulators? Yes, you're reading that right. Among emulator developers, the Classic NES Series is believed to be the earliest examples of measures specifically against emulation.
Save Auto-Detecting Measure
GBA cartridges can have one of three ways of storing save data: they can either have battery-backed SRAM, Flash memory, or use EEPROM. The way emulators support this is that they catch the first attempt to read or write to one of the three types of save data, and set up the appropriate areas in memory. The Classic NES Series tries to catch emulators off-guard: even though all games use EEPROM for saving, they attempt to write to SRAM anyway, which will fail on real hardware due to the obvious lack of an SRAM chip. If the write, however, succeeds (due to the emulator having caught the call and set up an appropriately sized SRAM area), the Game Pak Error screen displays.
Executing Code in VRAM
The Classic NES Series copy executable code to VRAM (video RAM) and try to execute the code directly from video RAM. The GBA's architecture allows this, but many emulators did not; if the attempt to execute code from VRAM fails, the Game Pak Error screen displays.
Usage of "Mirrored Memory"
The GBA uses an ARM chip that uses a 32 bit address space, however the device itself has only enough RAM to require an 18 bit address space. The GBA architecture uses the top 8 bits to signal what device should have access to a memory address, and the bottom 18 for the actual memory address. This leaves 6 bits in the middle that are technically unused, and due to a quirk in the GBA's processor, these bits are ignored when determining the address being accessed. The Classic NES Series uses this quirk to detect and confuse some low-accuracy emulators: memory addresses with those middle 6 bits set would effectively "mirror" the memory addresses of those without those bits set. The Classic NES Series would, then, write to one section of memory and then try to read from one of the "mirror" addresses.
- Pages missing developer references
- Games developed by Nintendo
- Pages missing publisher references
- Games published by Nintendo
- Game Boy Advance games
- Pages missing date references
- Games released in 2004
- Games released in February
- Games released on February 14
- Games released in June
- Games released on June 2
- Games released in July
- Games released on July 9
- Games with anti-piracy methods
- To investigate
- To do
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To do
Cleanup > To investigate
Games > Games by content > Games with anti-piracy methods
Games > Games by developer > Games developed by Nintendo
Games > Games by platform > Game Boy Advance games
Games > Games by publisher > Games published by Nintendo
Games > Games by release date > Games released in 2004
Games > Games by release date > Games released in February
Games > Games by release date > Games released in February > Games released on February 14
Games > Games by release date > Games released in July
Games > Games by release date > Games released in July > Games released on July 9
Games > Games by release date > Games released in June
Games > Games by release date > Games released in June > Games released on June 2