• Please review our updated Terms and Rules here

How mcuh more advanced was a NES to computers at the time?

facattack

Veteran Member
Joined
Mar 7, 2007
Messages
954
Location
Bucks County, PA
In terms of performance, the hardware in the NES is designed to use as little CPU as possible. It's graphics processor uses tile-based graphics, so all the NES has to do in order to redraw the display is to update a few parameters. In contrast; all the major graphics cards for the PC (up to VGA) are based on bitmapping, so PCs will have to use CPU to redraw every single pixel that changes during a game. This leaves a much smaller ratio of CPU power to actually run the game.

Thanks, per! When I think about it, the way a game tells the CPU to continue to load the tile for a given level or when to stop must have been ingenious.

Continue, Mario jumped over the pipe at co,ords then stomped the koopa at co,ords.

STOP!, Mario jumped over the pipe at co,ords then was killed by the koopa at co,ords. Reset level to beginning. Minus one life.

It's just ingenious also in how what direction you come into contact with an enemy depends the outcome of the collision. Mostly if you land on top an enemy who isn't spiked, you kill or injure it (depending on what it is). But if its a water-based enemy inside a water level, you take damage even if you hit on top.

So obviously a lot of math and thought was put into even something like a "simple" side-scroller. You couldn't literally compare the machines. Also, it isn't what the raw tech of the chips were in the machine that count, it's how they were programmed to work!

Thank you, tile-based programming! If it weren't for the genius of Nintendo and its many affiliates making games for its systems, it is unlikely we would be still in the middle of a gaming culture. Yes, Sony took the reigns to the kindgom, but even at third place Nintendo is still in the running. :D
 

vwestlife

Veteran Member
Joined
May 2, 2008
Messages
5,177
Location
central NJ
If it weren't for the genius of Nintendo and its many affiliates making games for its systems, it is unlikely we would be still in the middle of a gaming culture. Yes, Sony took the reigns to the kindgom, but even at third place Nintendo is still in the running. :D

Part of the NES's success was that it didn't look like a video game system; instead of a woodgrain console with joysticks, it looked like a miniature VCR with a pair of sideways remote controls. And at a time when VCRs were all the rage, that was a good thing -- even if the VCR-style "toaster" mechanism became its least reliable part.
 

VileR

Veteran Member
Joined
Jul 21, 2011
Messages
579
Location
Israel
per said:
In contrast; all the major graphics cards for the PC (up to VGA) are based on bitmapping, so PCs will have to use CPU to redraw every single pixel that changes during a game. This leaves a much smaller ratio of CPU power to actually run the game.
While it's true that the PC has no hardware sprites or tiles, EGA and VGA do support hardware smooth scrolling. Making games like Commander Keen 4-6 possible on a fast 8088 or slow 286, because they do not need to redraw the whole screen.

Smooth scrolling was possible on the PC before EGA/VGA - I've personally seen CGA games do it; Prohibition (1987/Infogrames) employes clever timing tricks to do exceptionally smooth 4-way scrolling, and apparently so does Super Zaxxon though I've never seen that one in action. Commander Keen 4-6 have CGA versions too.

Several games for the PCjr could also do smooth scrolling, if that platform counts. Off the top of my head there's River Raid and Pitfall II, though they only scroll vertically.

On that note... is Commander Keen's scrolling really that smooth? I've always found that it kinda fell short of the hype, at least parts 1-3.
 

Plasma

Veteran Member
Joined
Nov 7, 2005
Messages
1,373
As far as I know, any CGA game that scrolls is doing it all in software, since there isn't enough video memory to fit more than one screen. Software scrolling CGA is less taxing than EGA since you are only moving half the data (2-bits versus 4-bits per pixel).

If you compare the CGA version of Keen 4 with the EGA you will see that it doesn't scroll as smoothly, because it is doing software scrolling. I think Keen 1-3 scrolls as smooth as 4-6 (EGA), but the controls are clunkier.
 

VileR

Veteran Member
Joined
Jul 21, 2011
Messages
579
Location
Israel
Here's a description of how Prohibition does CGA hardware scrolling (according to Trixter; taken from the game's Mobygames entry):

Prohibition holds the distinction of being one of the only two games (Super Zaxxon being the other) to support four-way hardware scrolling in IBM CGA at 60Hz, which is notable because IBM CGA only had one video page that took up exactly the size of the screen, so scrolling (in any direction, let alone all of them) shouldn't have been possible.

The game achieves this trick by exploiting a quirk of how IBM implemented CGA in conjunction with the Motorola 6845 character generator chip. IBM only used 14 bits for addressing, so attempting to scroll in any direction using the MC6845 shows the screen "wrapping around" to the other side as addressing space is used up. Prohibition draws new information into the section that is about to wrap around, and then scrolls anyway, bringing that new information into place.

Because the program is literally "racing the beam" to get that information into place before the MC6845 starts drawing the screen, it took careful precomposition of the game's graphics in system RAM so that no calculation would be necessary other than moving memory to video RAM.

So it's not all in software - technically a rather impressive way of getting around the single video page limitation. All I really know is that I was certainly impressed with it back then as a wee one. It really compares very well with games that do fast and smooth hardware scrolling in VGA like Battlestorm from Titus.

Not sure about the CGA versions of Keen 4-6, but it has been claimed that they added CGA support (which wasn't there in parts 1-3) only because they independently discovered a way to scroll it smoothly in hardware... take that for what it's worth. *shrugs*
 
Last edited:

Trixter

Veteran Member
Joined
Aug 31, 2006
Messages
7,262
Location
Chicagoland, Illinois, USA
Here's a description of how Prohibition does CGA hardware scrolling (according to Trixter; taken from the game's Mobygames entry):

Glad you found that; now I don't have to repeat myself :)


Not sure about the CGA versions of Keen 4-6, but it has been claimed that they added CGA support (which wasn't there in parts 1-3) only because they independently discovered a way to scroll it smoothly in hardware... take that for what it's worth. *shrugs*

I talked to Romero a few years back and got the straight dope about Keen. Keen 1-3 doesn't actually use smooth scrolling as much as you think it does; it only scrolls left/right up to 7 pixels and draws everything else. Keen 4-6, however, uses a true intelligent tile engine with a 4-directional sliding window. When you scroll in any direction, only the bits coming into frame are drawn. On EGA/VGA, the entire playfield uses screen RAM; for CGA, they uses system ram and then just copy the entire visible window to screen RAM. A lowly 8088 can update the entire 320x200x4 graphics screen roughly 15 times a second which is acceptable for an action game.

Here's what Romero told me exactly:

Jim,

Each Keen engine was different. The Keen 1-3 engine worked as you
described: using the EGA panning register to get pixel-smooth scrolling and
when it was about to hit a tile boundary it refreshed only those tiles on
the screen that needed to change (thus "smart tile refresh").

Keen 4-6's engine was different in that it not only used the EGA panning
register for pixel-smooth horizontal scrolling but it also used the CRTC
ADDRESS register to change the start of screen memory as the screen
scrolled. This means that the entire 64k area of EGA RAM was used for the 2
page-flipped screens. As the player moved around, the start address of
screen RAM changed and tiles were drawn off the edges so when it scrolled to
that area of memory the tiles were already there.

For example, if the player started falling down a hole the CRTC ADDR start
would be moving down through memory as the engine drew tiles off the bottom
of the visible screen area. Eventually you would be wrapping around the EGA
screen segment (0xa000) - it didn't take too long because both screens (for
page-flipping) were in the same segment and ate twice the RAM.

Pretty crazy eh?
 
Top