Limitations: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (lead: clarify what took off)
(Super NES pwned some limits but left others intact)
Line 22: Line 22:
''Tony Hawk'' series for Game Boy Advance soft-rendered a 3D player character in real time, but the GBA CPU is also fast enough to ''emulate'' the NES CPU.
''Tony Hawk'' series for Game Boy Advance soft-rendered a 3D player character in real time, but the GBA CPU is also fast enough to ''emulate'' the NES CPU.
An NES game with customizable characters, such as ''Cocoron'', has to store each animation of each body part seen from each angle and composite them at runtime, either drawing them into CHR RAM or overlaying numerous sprites (and risking flicker).
An NES game with customizable characters, such as ''Cocoron'', has to store each animation of each body part seen from each angle and composite them at runtime, either drawing them into CHR RAM or overlaying numerous sprites (and risking flicker).
'''By the Super NES era:''' Several games were 32 KiB or larger battery RAM, and a game using the GSU might barely be able to soft-render a 3D player character, though at a reduced frame rate.


== Creation ==
== Creation ==
Line 28: Line 30:
Games that allow for modification, such as modified game graphics, maps, and scripts, tend to be extremely limited.
Games that allow for modification, such as modified game graphics, maps, and scripts, tend to be extremely limited.
Part of this has to do with input limits: the NES never had an official alphabetic keyboard or precise pointing device.
Part of this has to do with input limits: the NES never had an official alphabetic keyboard or precise pointing device.
In Japan, Family BASIC shipped with [[Family BASIC Keyboard|a keyboard]], and the Oeka Kids paint program shipped with a graphics tablet, but these use the Famicom's DA15 expansion port, which the NES doesn't have.
In Japan, ''Family BASIC'' shipped with [[Family BASIC Keyboard|a keyboard]], and the ''Oeka Kids'' paint program shipped with a graphics tablet, but these use the Famicom's DA15 expansion port, which the NES doesn't have.
Videomation, a paint program for the NES with a [[CPROM|unique cartridge board]], has to use a clunky control scheme similar to the speed control in Image Fight.
''Videomation'', a paint program for the NES with a [[CPROM|unique cartridge board]], has to use a clunky control scheme similar to the speed control in ''Image Fight''.
(Its animation is also severely limited compared to ''Mario Paint'' for Super NES, and it can't save.)
(Its animation is also severely limited compared to ''Mario Paint'' for Super NES, and it can't save.)
There is a well-documented hack to use the Super NES Mouse with homebrew games on the NES or AV Famicom, but that's about all there is.
In 2011, it was discovered that NES games could use the [[Mouse|Super NES Mouse]] through a Super NES controller to NES adapter.


There are some external devices which can be used for extended save data: the [[Famicom Disk System]], the [[Family BASIC Data Recorder]], the [[Battle Box]], and the [[Turbo File]]. However, all are Japan-only, exceptionally rare, and the latter two only hold 8KiB of data anyway.
There are some external devices which can be used for extended save data: the [[Famicom Disk System]], the [[Family BASIC Data Recorder]], the [[Battle Box]], and the [[Turbo File]]. However, all are Japan-only, exceptionally rare, and the latter two only hold 8KiB of data anyway.
'''By the Super NES era:''' Support for the Super NES Mouse was common, and ''Mario Paint'' and the Japan-only ''Dezaemon'' led the way.


== Driving ==
== Driving ==
Limitations: No 3D graphics
Limitations: No 3D graphics


There are two ways to do a driving game: behind-the-car with a ''Pole Position'' style track (as seen in ''F-1 Race'' and ''Rad Racer'') and overhead/isometric style (as seen in ''RC Pro-Am'' and ''Micro Machines''.)
There are two ways to do a driving game: behind-the-car with a ''Pole Position'' style track (as seen in ''F-1 Race'' and ''Rad Racer'') and overhead/isometric style (as seen in ''RC Pro-Am'' and ''Micro Machines'').
In a behind-the-car view, the car can't turn all the way around.
In a behind-the-car view, the car can't turn all the way around.
The "morphmation" technique used to bend the racetrack limits the variety of scenery and track layout: for example, the track can't have hairpin turns or narrow segments without using an obscenely large multi-bank CHR ROM like that seen in ''Cosmic Epsilon''.
The "morphmation" technique used to bend the racetrack limits the variety of scenery and track layout: for example, the track can't have hairpin turns or narrow segments without using an obscenely large multi-bank CHR ROM like that seen in ''Cosmic Epsilon''.
Overhead view severely limits how far ahead one player can see, resulting in usually slower movement, and the camera generally has to follow one player or the other.
Overhead view severely limits how far ahead one player can see, resulting in usually slower movement, and the camera generally has to follow one player or the other.
(''Micro Machines'' uses the screen edge as a game mechanic.)
(''Micro Machines'' uses the screen edge as a game mechanic.)
'''By the Super NES era:''' Limit broken using mode 7 and later the GSU.


== Puzzle ==
== Puzzle ==
Line 51: Line 57:
Games with smaller tiles typically can't go over three unique colors, as seen in ''Dr. Mario'' and ''Tetris 2''.
Games with smaller tiles typically can't go over three unique colors, as seen in ''Dr. Mario'' and ''Tetris 2''.
One compromise involves drawing tiles in both players' playfields as a dithered combination of orange, green, and blue, much as CGA graphics were limited to three colors plus the backdrop.
One compromise involves drawing tiles in both players' playfields as a dithered combination of orange, green, and blue, much as CGA graphics were limited to three colors plus the backdrop.
It's not as clean as a Sega Master System game, but it gets the job done without having to destroy one of [http://bootgod.dyndns.org:7777/search.php?ines_op=%3D%60%40%60&ines=5&group=groupid&field=2&order=asc&rfa=1+2+11+3+9+20+41+53 13 donor games] to use [[MMC5]] ExGrafix.
It's not as clean as a Sega Master System game, but it gets the job done without having to destroy one of [http://bootgod.dyndns.org:7777/search.php?ines_op=%3D%60%40%60&ines=5&group=groupid&field=2&order=asc&rfa=1+2+11+3+9+20+41+53 13 donor games] to use the 8x8 pixel color areas of [[MMC5]] ExGrafix.
Another workaround would be to make a custom mapper on a CPLD that simulates some subset of ExGrafix.
Another workaround would be to make a custom mapper on a CPLD that simulates some subset of ExGrafix.
''Klax'' uses a mapper with a scanline counter to change the scroll position in mid-frame, making its 16-pixel-wide attribute areas less than 8 scanlines tall.
''Klax'' uses a mapper with a scanline counter to change the scroll position in mid-frame, making its 16-pixel-wide attribute areas less than 8 scanlines tall.
Line 58: Line 64:
This was tried in things like ''Magical Drop 2'', ''Wario's Woods'', and the 4-player "Familiss" mode of BPS's ''Super Tetris 3''.
This was tried in things like ''Magical Drop 2'', ''Wario's Woods'', and the 4-player "Familiss" mode of BPS's ''Super Tetris 3''.
''Lumines'' for PSP borrows the mechanic of two players fighting over space in a single playfield from ''FantaVision'' for PS2, and at least one fan-made clone of the single-player game ''Zoop'' makes the game cooperative with two shooters on one big field.
''Lumines'' for PSP borrows the mechanic of two players fighting over space in a single playfield from ''FantaVision'' for PS2, and at least one fan-made clone of the single-player game ''Zoop'' makes the game cooperative with two shooters on one big field.
'''By the Super NES era:''' Limit suffered comminuted fracture. Super NES has 8x8 pixel color areas, HDMA to change the vertical scroll position, lots of sprites with lots of overdraw, the 12x12 trick in mode 1, and a 256-color playfield in mode 3.


== Fighting ==
== Fighting ==
Line 73: Line 81:
That means you can't easily jump behind or roll past the other player and attack from behind unless the frames for facing the other player's back have dedicated cels.
That means you can't easily jump behind or roll past the other player and attack from behind unless the frames for facing the other player's back have dedicated cels.
In addition, backgrounds will be plain, and you'll probably need an advanced mapper with a scanline timer to perform multiple scroll splits at the status bar, play area, and ground.
In addition, backgrounds will be plain, and you'll probably need an advanced mapper with a scanline timer to perform multiple scroll splits at the status bar, play area, and ground.
'''By the Super NES era:''' Limit scarred across the chest with a Shoryuken. A competent port of ''Street Fighter II'' was a system seller. However, by ''Street Fighter Alpha 2'', the Super NES was showing its age. Games like ''Killer Instinct'' and ''Samurai Shodown'' also had to have camera zooming cut out because of limits of mode 7.


== Bullet hell shooter ==
== Bullet hell shooter ==
Limitations: Overdraw, CPU speed, 5-line OAM DMA delay
Limitations: Overdraw, CPU speed, 5-line OAM DMA delay


Shooters can be hard, like Recca, but they can't have more than 64 things in the air at once.
Shoot-em-ups can be hard, like ''Recca'', but they can't have more than 64 things in the air at once.
Some platforms (like GBA and Neo Geo) can rewrite part of the sprite table during rendering to expand the sprite capability, but the NES can't.
Some platforms (like GBA and Neo Geo) can rewrite part of the sprite table during rendering to expand the sprite capability, but the NES can't.
And even then, more than 8 on a line will flicker so bad that bullets will be invisible half the time.
And even then, more than 8 on a line will flicker so bad that bullets will be invisible half the time.
'''By the Super NES era:''' Boss and bullet patterns became more complex, but the need for constant access to OAM outside of vertical or forced blanking meant shmups still couldn't overcome the 128-sprite capacity of OAM.


== Party multiplayer ==
== Party multiplayer ==
Line 92: Line 104:
Memory accesses during sample playback occasionally cause a bit from the controllers to be skipped.
Memory accesses during sample playback occasionally cause a bit from the controllers to be skipped.
It takes longer to read 16 bits than 8, making rereading less practical, but the [[Four Score]]'s signature bits help detect bit deletions.
It takes longer to read 16 bits than 8, making rereading less practical, but the [[Four Score]]'s signature bits help detect bit deletions.
'''By the Super NES era:''' Limit blown to bits by ''Super Bomberman''. Overdraw increased to 32 sprites with 34 tiles and sprite palettes increased to eight, leaving plenty of room for players and their projectiles. And no more sample playback glitch.


== Music ==
== Music ==
Line 117: Line 131:
''Guitar Hero On Tour'' games for Nintendo DS are 128 MB each after several Moore's law doublings of ROM density.
''Guitar Hero On Tour'' games for Nintendo DS are 128 MB each after several Moore's law doublings of ROM density.
But with a typical NES ROM size of 128 to 512 KiB, a big fat sample like that is out of the question.
But with a typical NES ROM size of 128 to 512 KiB, a big fat sample like that is out of the question.
'''By the Super NES era:''' The audio subsystem supports streaming vocals from ROM through HDMA, but ROM was still limited to 4096 KiB with a handful of largely Japan-only exceptions.


== External links ==
== External links ==

Revision as of 03:11, 11 September 2015

Some of the limitations of NES hardware and common mapper hardware severely limit the system's capability to perform well in some genres. This could be part of why these genres took off after 1991 when more powerful hardware became more readily available.

To clarify something: Some of these limitations don't mean "can't" as much as "too expensive". In a commercial game project, managers have to balance the cost of solving technical problems like those listed below with the cost of exploring, implementing, refining, and balancing the game rules. A game for a powerful system will often be programmed inefficiently because it gets the game out the door faster. Building your own clone (or emulation device) of mappers and other external devices is also possible, although this may also be expensive and/or time consuming.

A clone or a port to a less powerful system keeps most of the game design, which is already paid for, and cuts down the design in ways that the porting team thinks the players won't care about. A team of amateurs with no deadline can eventually squeeze more capability out of a system than can a commercial game developer bound by opportunity cost and return on investment. Even commercial developers in a country with a low cost of living, such as China or Brazil compared to Japan or the United States, have a time-money tradeoff biased toward time: witness the "Hong Kong Original" Famicom reductions of 16-bit fighting games, platformers, and RPGs, and the Brazilian ports of games to Sega Master System and Sega Genesis.

Simulation

Limitations: 8 KiB PRG RAM; no 3D graphics hardware

Some kinds of simulator games, like SimCity, The Sims, Harvest Moon, and Animal Crossing, have large grid-based world maps and tend to need 8 KiB just to store this map, let alone the rest of the world's state. Very few NES cartridge boards (such as SXROM and EWROM) provided more than 8 KiB, and most of them were rare and/or Japan-only. Nintendo has been known to cancel finished products such as the NES port of SimCity and the English version of Mother because replication cost would kill the return on investment. Games would have to be planned carefully to fit their state into a cheap chip. Nowadays, it's possible to make a custom mapper on a CPLD that bankswitches a large work RAM and saves to an unused area of the PRG flash.

Games that allow the player to customize his appearance extensively, as in Animal Crossing and The Sims, typically rely on 3D texture mapping so that the changes to the appearance can be seen from all angles. Tony Hawk series for Game Boy Advance soft-rendered a 3D player character in real time, but the GBA CPU is also fast enough to emulate the NES CPU. An NES game with customizable characters, such as Cocoron, has to store each animation of each body part seen from each angle and composite them at runtime, either drawing them into CHR RAM or overlaying numerous sprites (and risking flicker).

By the Super NES era: Several games were 32 KiB or larger battery RAM, and a game using the GSU might barely be able to soft-render a 3D player character, though at a reduced frame rate.

Creation

Limitations: Input devices, mostly

Games that allow for modification, such as modified game graphics, maps, and scripts, tend to be extremely limited. Part of this has to do with input limits: the NES never had an official alphabetic keyboard or precise pointing device. In Japan, Family BASIC shipped with a keyboard, and the Oeka Kids paint program shipped with a graphics tablet, but these use the Famicom's DA15 expansion port, which the NES doesn't have. Videomation, a paint program for the NES with a unique cartridge board, has to use a clunky control scheme similar to the speed control in Image Fight. (Its animation is also severely limited compared to Mario Paint for Super NES, and it can't save.) In 2011, it was discovered that NES games could use the Super NES Mouse through a Super NES controller to NES adapter.

There are some external devices which can be used for extended save data: the Famicom Disk System, the Family BASIC Data Recorder, the Battle Box, and the Turbo File. However, all are Japan-only, exceptionally rare, and the latter two only hold 8KiB of data anyway.

By the Super NES era: Support for the Super NES Mouse was common, and Mario Paint and the Japan-only Dezaemon led the way.

Driving

Limitations: No 3D graphics

There are two ways to do a driving game: behind-the-car with a Pole Position style track (as seen in F-1 Race and Rad Racer) and overhead/isometric style (as seen in RC Pro-Am and Micro Machines). In a behind-the-car view, the car can't turn all the way around. The "morphmation" technique used to bend the racetrack limits the variety of scenery and track layout: for example, the track can't have hairpin turns or narrow segments without using an obscenely large multi-bank CHR ROM like that seen in Cosmic Epsilon. Overhead view severely limits how far ahead one player can see, resulting in usually slower movement, and the camera generally has to follow one player or the other. (Micro Machines uses the screen edge as a game mechanic.)

By the Super NES era: Limit broken using mode 7 and later the GSU.

Puzzle

Limitations: 16x16 pixel attribute tiles

A lot of tile-matching games, such as Columns (ported to NES as Magic Jewelry and Mystic Pillars), Yoshi's Cookie, Puyo Puyo, Wario's Woods, and Palamedes, have 16x16 pixel tiles. This limits each player's playfield to about 6x12 cells. Games with smaller tiles typically can't go over three unique colors, as seen in Dr. Mario and Tetris 2. One compromise involves drawing tiles in both players' playfields as a dithered combination of orange, green, and blue, much as CGA graphics were limited to three colors plus the backdrop. It's not as clean as a Sega Master System game, but it gets the job done without having to destroy one of 13 donor games to use the 8x8 pixel color areas of MMC5 ExGrafix. Another workaround would be to make a custom mapper on a CPLD that simulates some subset of ExGrafix. Klax uses a mapper with a scanline counter to change the scroll position in mid-frame, making its 16-pixel-wide attribute areas less than 8 scanlines tall.

Yet another thing that can be done is to make the single-player playfield wider than the 2-player playfield. This was tried in things like Magical Drop 2, Wario's Woods, and the 4-player "Familiss" mode of BPS's Super Tetris 3. Lumines for PSP borrows the mechanic of two players fighting over space in a single playfield from FantaVision for PS2, and at least one fan-made clone of the single-player game Zoop makes the game cooperative with two shooters on one big field.

By the Super NES era: Limit suffered comminuted fracture. Super NES has 8x8 pixel color areas, HDMA to change the vertical scroll position, lots of sprites with lots of overdraw, the 12x12 trick in mode 1, and a 256-color playfield in mode 3.

Fighting

Limitations: Overdraw

If both players' graphics are drawn as sprites, characters will have to be no wider than 32 pixels. Otherwise, they'll flicker like crazy when you cross the 8-sprite limit. You can get away with wider jumping poses because it's less likely that both characters will be in the air at once. Shaq-Fu was poor in execution, but its core idea of smaller characters could be made to work well on an NES. You could aim for something like Super Smash Bros., using platforms in the playfield as an additional source of tactics.

The other way to do this, allowing big characters like in Street Fighter, is to draw one character as 8x16 pixel sprites and the other as background tiles. This allows up to 64-pixel-wide characters, or slightly smaller counting projectile attacks. But you have to design the game such that only one player faces either direction, so that you can draw the other player with mirrored sprites. That means you can't easily jump behind or roll past the other player and attack from behind unless the frames for facing the other player's back have dedicated cels. In addition, backgrounds will be plain, and you'll probably need an advanced mapper with a scanline timer to perform multiple scroll splits at the status bar, play area, and ground.

By the Super NES era: Limit scarred across the chest with a Shoryuken. A competent port of Street Fighter II was a system seller. However, by Street Fighter Alpha 2, the Super NES was showing its age. Games like Killer Instinct and Samurai Shodown also had to have camera zooming cut out because of limits of mode 7.

Bullet hell shooter

Limitations: Overdraw, CPU speed, 5-line OAM DMA delay

Shoot-em-ups can be hard, like Recca, but they can't have more than 64 things in the air at once. Some platforms (like GBA and Neo Geo) can rewrite part of the sprite table during rendering to expand the sprite capability, but the NES can't. And even then, more than 8 on a line will flicker so bad that bullets will be invisible half the time.

By the Super NES era: Boss and bullet patterns became more complex, but the need for constant access to OAM outside of vertical or forced blanking meant shmups still couldn't overcome the 128-sprite capacity of OAM.

Party multiplayer

Limitations: Sprite palettes; overdraw

An NES Four Score hub provides four controller ports, one for each of the four palettes. If each player's car, uniform, etc. has the same graphics with a palette swap, there are no palettes left for anything else. If each player uses one palette, other things like projectiles and enemies would need to use the same palette as a player, or they would have to be background objects. It might be easier if the player sprites leave one color unused or if the game splits the players into two teams whose characters aren't palette swaps. Four 16x16 or 16x32 pixel sprites will also hit the 8-sprite limit with no room for projectiles unless the game is designed not to encourage them to be at the same vertical position.

Memory accesses during sample playback occasionally cause a bit from the controllers to be skipped. It takes longer to read 16 bits than 8, making rereading less practical, but the Four Score's signature bits help detect bit deletions.

By the Super NES era: Limit blown to bits by Super Bomberman. Overdraw increased to 32 sprites with 34 tiles and sprite palettes increased to eight, leaving plenty of room for players and their projectiles. And no more sample playback glitch.

Music

Limitations: Audio hardware, storage

A music game for the Famicom could put a digital audio player on the PCB. In fact, the JF-13 board in the Japanese version of Bases Loaded does just this for the umpire's voiceover. But unlike the 60-pin Famicom cart edge, the 72-pin NES cart edge lacks a pair of pins for an audio signal. Instead it has ten pins connected directly to the NES-001 Control Deck's expansion port. A 47 kΩ resistor from one of the cart pins to an audio pin on the expansion port enables audio out of the expansion port as on a Famicom, but Nintendo never released an accessory with this resistor, and top-loading NES-101 consoles don't even have this port. So NES games usually have to use the 2A03's internal APU channels. A mapper could trigger an IRQ when each sample is ready and offer a digital output on $4011 so that dec $4011 to read a sample from the mapper and write it back to the APU, but it was determined that OAM DMA would audibly interfere with that approach.[1]

Music games such as Beatmania, Dance Dance Revolution, and Amplitude use CD-quality audio played from a disc. Though the NES APU is capable of competent covers of popular music, as seen in D-Pad Hero, a lot of players demand the original studio recordings, or at least an electric guitar that sounds like an electric guitar and chords that don't sound warbly. Witness poor sales of the Game Boy Color versions of Beatmania and DDR.

Apart from DDR: Disney Dancing Museum for the Japanese N64 and games on Nintendo handhelds, most music games have come out on platforms with hundreds of megabytes of cheap storage: PCs and disc-based consoles. A lot of music games especially for consoles use a custom controller, shaped like a musical instrument or like the Power Pad. Because cartridges were much more expensive to replicate, bundling a controller with your game cartridge was cost prohibitive. Did anyone actually buy the Miracle Piano Teaching System?

Disc-based games using a standard controller, like Parappa the Rapper and Frequency, came on discs 600 MB to 4 GB in size and thus could afford to store the music tracks as two long samples: one for background music and one for the foreground instrument. (This pattern is called "keysound" in the Beatmania simulation community.) Guitar Hero On Tour games for Nintendo DS are 128 MB each after several Moore's law doublings of ROM density. But with a typical NES ROM size of 128 to 512 KiB, a big fat sample like that is out of the question.

By the Super NES era: The audio subsystem supports streaming vocals from ROM through HDMA, but ROM was still limited to 4096 KiB with a handful of largely Japan-only exceptions.

External links