The NES techniques thread
category: code [glöplog]
I was reading on the developement of the game "Super Mario Bros. 3", wich is the finest game I ever played, and I would like to know if someone can elaborate on this:
My knowledge of coding on the NES is limited, but isn't the graphics all done with a sprite "table"? So they generated all the shapes in realtime and assembled them to produce the character right?
Also are there other games that uses this technique?
Man... oldschool coders are on something else... ;-)
Quote:
The character graphics were created by using a special graphics machine ("Character Generator Computer Aided Design") that generated a collection of all the graphical shapes used in the game. Shapes in the collection were assigned numbers that the game's code uses to access in real time, and are combined to form complete images on the screen in real time.
My knowledge of coding on the NES is limited, but isn't the graphics all done with a sprite "table"? So they generated all the shapes in realtime and assembled them to produce the character right?
Also are there other games that uses this technique?
Man... oldschool coders are on something else... ;-)
This sounds as if they used some kind of look-up table. I.e.
lut [0] = address where sprite 0 starts,
lut [1] = address where sprite 1 starts,
etc.
lut [0] = address where sprite 0 starts,
lut [1] = address where sprite 1 starts,
etc.
I think that means the way NES handles tiles (8x8px) and metatiles(4 tiles in 2x2 arrangement) and how SMB3 combines bigger objects out of multiple metatiles. Sprites are handled the same way, as the hardware sprites are always just 8x8 but combining multiple out of the total of 64 you can display 8 on same scanline without flicker, more if you cycle the sprite ids (with flicker).
Quote:
The character graphics were created by using a special graphics machine ("Character Generator Computer Aided Design") that generated a collection of all the graphical shapes used in the game. Shapes in the collection were assigned numbers that the game's code uses to access in real time, and are combined to form complete images on the screen in real time.
To me that just reads like a description of tile-based rendering in layman's terms.
Most old-school video game consoles used this approach, because it lowers the requirements on both VRAM size and CPU speed. It's not specific to the NES or SMB3.
Quote:
as the hardware sprites are always just 8x8
They can also be 8x16 on the NES depending on the value of $2000.5.
Yeah to me it sounded simple but the name "Character Generator Computer Aided Design" was something out of a novel... I thought it was something out of this world...
Still, it's a kick-ass game. I wonder who had the idea to make Mario fly??? Shigeru himself?
Still, it's a kick-ass game. I wonder who had the idea to make Mario fly??? Shigeru himself?
I was already reading video gaming magazines on a regular basis when SMB3 came out. It received a rating of 95% in the leading German video gaming magazine, "Video Games". The editors called it "the best platform game of all times". I was also quite fond of it when I played it. But I cannot understand that nowadays. These days I think Sonic is better than Super Mario.
I never liked Sonic because you just run, run, run and leave lot's of areasbehind, while in Mario the gameplay is more oriented to exploration.
pickle wars, best platform game of all times!
Oh God, I actually remember that game.
Sounds like they have drawn the complete sprites as you see them in the game, then used the tool to extract the tiles from that, and try to reuse some of them in multiple sprites. Without a tool for that you'd have to draw the small tiles first, then try to arrange them in a way that does not look too bad.
Remember that all of this was done in 1986, and what sounds like some easily written converter tool today may have been quite complicated to write back then, depending on the available hardware. What was the computer used to develop NES games, btw ?
Remember that all of this was done in 1986, and what sounds like some easily written converter tool today may have been quite complicated to write back then, depending on the available hardware. What was the computer used to develop NES games, btw ?
@PulkoMandy: That probably varied between different companies. Here are some photos from Nintendo from around that time:
The computers on the bottom picture would likely have been some variant of HP's 64000-series systems:
The computers on the bottom picture would likely have been some variant of HP's 64000-series systems:
Yes they are HP 64000. They have been used for NES development for good reasons :
- can do microprocessor emulation.
- have a PROM/EPROM programming device on the right side of the keyboard (useful to test image on the real thing)
- workstations can be connected together sharing harddrive and other devices (well i guess this was already possible on a 1981 IBM PC)
- can do microprocessor emulation.
- have a PROM/EPROM programming device on the right side of the keyboard (useful to test image on the real thing)
- workstations can be connected together sharing harddrive and other devices (well i guess this was already possible on a 1981 IBM PC)
Quote:
can do microprocessor emulation.
So does a turing machine?
so does a 1980 computer with special hardware to do that at reasonable speed...
Last three words explains it all then! ;p
mic thanks! I love pictures of japanese oldschool game dev :-D
You made my night.
You made my night.
mic, what is the computer used to draw? look almost like an Amiga.. but I guess might be some Nec, Fujitsu or other Japanese computer back then which we did not get?
Linky: http://www.chrismcovell.com/secret/weekly/Stars_of_the_Family_Computer.html
Fujitsu FM R-50
Fujitsu FM R-50
Lolll funny coincidence. I started to code game in '89... Spooky ;-)