How Graphics worked on the Nintendo DS | MVG

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] when nintendo launched the ds in 2004 it was said that the product was not meant to replace the game boy advance family rather to complement it as a new option but the nintendo ds with its store screens appealed to a larger demographic introducing casual players with its touchscreen and ease of accessibility the ds would supersede the game boy advance family and would go on to sell over 150 million units worldwide with games such as new super mario brothers selling a staggering 30 million units but technically the nintendo ds was once again inferior to its competition the sony psp the ds would add innovation not seen in handhelds before but in order to keep the cost down some cuts were made along the way with dual screens and the ability to render 3d graphics at a glance it would seem that the nintendo ds would require some significant processing power to make it all work but some sacrifices had to be made to ensure that the handheld offered a high quality gaming experience but also ensured a long battery life as we know the nintendo ds was a very successful machine but its competition at the time the sony psp ran rings around it when it came to graphical performance but the nintendo ds had a few tricks up its sleeve the nintendo ds has two screens both rendering at 256 by 192 pixels which is larger than the 240x160 resolution found on the gameboy advance both screens pick from an 18-bit color palette and run at 60 hertz the system is capable of both 2d and 3d and many games combine both for some interesting effects on screen now you might be wondering if the nintendo ds graphics subsystem is similar to the sega saturn in that regard which too handled both 2d and 3d in reality there's not much in common between the systems at all 2d sprites on the saturn was simply texture map polygons and the texture would be the sprite itself on the nintendo ds there is a dedicated 2d and 3d engine available for 2d it makes use of an evolution of the proven 2d tile based engine that graced nintendo consoles before it which was known as the ppu on the nintendo ds the ppu or 2d engine as it's known is a crucial part of the system but it's also quite similar to the game boy advance but does contain some new enhancements the nintendo ds assigns a 2d engine to each display but each engine is not created equal the main 2d engine and the sub 2d engine can be assigned to each of the top and bottom screens if the main 2d engine is assigned to the top screen the sub 2d engine will be allocated to the bottom and vice versa a game can assign a main and sub in any way they like the nintendo ds comes with 656 kilobytes of vram which is a significant upgrade over the 96k found on the gba but not all of it is available as one continuous chunk instead they are split into banks four of them are 128k one is 64 one is 32 and 16 kilobytes for the remaining three the vram banks can either map to background memory which contains tile sets tile maps or bitmaps or sprite memory which contains tiles for each sprite and depending on the video mode selection will determine what vram banks can be accessed there are two overarching ways to render 2d graphics on the ds either using tiles or direct to the frame buffer in bitmap mode this is very similar to the game boy advance but the nintendo ds is overall more powerful and contains additional enhancements like the gba the ds has six individual screen modes each mode has a total of four background layers mode 0 is purely tile or text based which can be up to 512 by 512 pixels wide and a total of 1024 tiles can be used mode 1 contains three text and one a fine layer the a fine layer supports real-time transformations that include scaling rotation reflection shearing and more this is similar to a fine transformations found on the gameboy advance the drawback however of the inclusion of an affine layer means that the number of tiles is reduced from 1024 to just 256. mode 2 contains two text and two affine layers modes three four and five add an extended affine layer this can either be tile or bitmap-based setting the layer to bitmap-based means directly accessing the frame buffer to plot pixels this means combining bitmaps with tiles to produce some interesting effects i did mention that each mode must have four background layers but there's also a sixth mode which contains two background layers one text layer and one large a fine extended layer for a single frame buffer mode 6 can only be assigned to the main renderer we touched on tiles these are 8 by 8 pixels and haven't changed much since the early days of the game boy but the nintendo ds enhances on the tiling engine found in previous nintendo systems each tile can be flipped both horizontally and vertically and can contain 16 colors and each tile can choose from 16 individual palettes for a total of 256 colors tile flipping may not sound like a big deal but it's very important when it comes to saving space on the system take for example this image if you look carefully you'll notice that it's only using two tiles and two pellets with some clever tile flipping manipulation it looks like there's a lot more tiles being utilized hardware scrolling is also available on the nintendo ds a background layer can move both on the x and y axes there are eight individual scrolling registers found in the nintendo ds hardware two for each background horizontal and vertical multiplied by the four background modes available sprites on the nintendo ds take the same features of the game boy advance in that they can be a minimum of 8 by 8 pixels to a maximum of 64 by 64 in size on the nintendo ds the amount of memory available for sprites has been increased but more importantly sprites no longer are required to be tile based they can also be bitmaps directly read from vram and to add additional complexity tile-based and bitmap-based sprites can co-exist on the same display at the same time now we know that the nintendo ds had a powerful 2d engine but it also would include a simple 3d engine when combined with that 2d engine was capable of some amazing results the most interesting part of the nintendo ds aside from its dual screens is its ability to render 3d graphics on the gameboy advance 3d was achieved all in the cpu via effective use of arm optimized assembly language and the results were often impressive at first glance the ds appears to be managing its 3d and software as well with a blocky pixelated look however the ds contains dedicated 3d hardware that handles geometry and rendering at a very fast level of performance we mentioned earlier that there are two renderers unique to the nintendo ds main and sub the 3d engine can only be applied to the main renderer and this works by combining the 2d engine on main with a 3d engine this sounds complex but it's actually fairly simple if you take another glance at all the video modes that the nintendo ds supports there must be at least one text or static background layer across all modes the 3d that is output by its engine can be applied to a static background and it's for this reason that mode 5 is considered the best all-round mode to use it offers the ability to use 3d but with two extended affine layers you can mix in bitmap graphics and also combine tiles and sprite objects from the other layers taking a closer look at new super mario brothers which combines 2d and 3d we can see that it contains sprites in its object layer for the number of coins and the timer background layers 3 and 4 are tile and bitmap-based that contain the level data including coins for the level background 2 is the horizon layer and clouds which uses a fine transformations to animate the clouds in parallax and background one is the 3d model of mario that's used in the game we said earlier that 3d is confined to the main display only but there are some tricks to render 3d on both screens but how is this actually possible we've said previously that there must be a main and a sub screen for every ds game but there is no constraint on swapping them mid frame with some clever code that flips main and sub every single frame you can construct and render 3d graphics on both screens as shown by the simple demo the 3d engine is comprised of two main pieces the geometry engine handles the vertex information while over on the rendering engine it can do things like texture mapping perspective correction grad shading depth buffering alpha blending stencil fog and anti-aliasing the ds also comes with the ability to add shadows in hardware as well as a unique feature known as toon shading this essentially is a shader that applies a cell shading to the model it's simply a hardware feature and cannot be programmed cell or toon shaded games were quite popular at the time and the ability to apply this in hardware without painstakingly developing one was a nice touch undoubtedly the biggest limitation of 3d on the nintendo ds is the number of polygons there is a hard limit of only 2048 available essentially this means in general nintendo ds 3d models are rendered at a lower polygon count but this limitation does make sense considering the screen resolution and size of the nintendo ds is quite small if we compare super mario 64 from the nintendo 64 side by side with the nintendo ds there are certainly some differences the nintendo 64 incorporated features such as bilinear filtering mipmapping and subpixel precision the nintendo ds on the other hand does not support any of these features so in general 3d models on the ds tend to look a lot more pixelated but even with these low polygon counts and limitations developers made clever use of the depth buffer to blend 3d models with 2d objects that became a very effective technique in a lot of games compared to the sony psp which could store a much higher polygon count the ds was not anything special when it came to 3d but the combination of 2d 3d bit mapped or tiled based sprites and clever use of blending 3d with 2d made for some stunning effects and a real showcase of what was possible this would be nintendo's first handheld with dedicated 3d support but it certainly wasn't a slam dunk they omitted features that were considered normal for 3d hardware at the time the low polygon count meant that developers had to get creative it also meant that many games would run at a higher level of performance with no slowdowns effective use of 2d and 3d engines working together meant that with clever optimizations could produce fast and impressive looking graphics [Music] in the end the ds was a calculated gamble by nintendo taking its cues from the game boy the ds wasn't based on cutting edge tech they went in the opposite direction a mix of already proven 2d and the introduction of basic 3d but with enough flexibility to achieve some amazing results well that will do it for this episode thank you so much for watching if you liked it leave me a thumbs up and i'll catch you guys in the next video bye for now [Music] you
Info
Channel: Modern Vintage Gamer
Views: 866,378
Rating: undefined out of 5
Keywords: nintendo, ds, 3ds, dual screen, gameboy, gba, graphics, ds graphics, main, sub, 2d, 3d, 2d engine, 3d engine, ppu, nintendo 3ds, nintendo ds, handheld, dual screens, mvg, modern vintage gamer
Id: kBgQJJ93nFM
Channel Id: undefined
Length: 13min 27sec (807 seconds)
Published: Mon Jan 18 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.