We're almost done with graphics on the NES! Coming up we have the background images and some details into how timing works. Hope you're enjoying the series so far, let me know what you think and if there's anything you'd like to see more of in these videos.
@Nesguy92Ай бұрын
Thank you been looking for nes sprite videos.
@sodapopinski992215 күн бұрын
Ok this has been bugging me for ever, so you have the sprite loaded in memory say the same position as ur arrow so as the scan line makes it where the 8x8 tile it will jump to memory output for sed sprite for 8 pixels turn off for the rest of the line drop to next scan line continue with the background until it reaches line 2 of the 8x8 draw 8 more pixels shut off and drop to the next line and repeat until all 8 x8 tile is drawn? And this is done with multiple sprites
@EmulationOnline14 күн бұрын
The actual approach used in the hardware here is pretty tricky. There's a clever dance the PPU performs in order to make the most of limited hardware. Before any scanline, the PPU will determine which sprites will be drawn on the next line. The information for the 8 winning sprites for that line are placed in some internal memory on the PPU (often called secondary OAM). When the PPU is drawing to the screen, it is loading internal shift registers based on what will be drawn for the next 8 pixels. It then shifts out these buffered values, and selects from either this (possibly empty) sprite or the background. This process is often called "sprite evaluation" if you want to look for more details.
@sodapopinski992213 күн бұрын
@@EmulationOnline thanks I have trouble in my head imagining the speed of how this happens.. I mean the timing at these speeds is crazy especially with no buffer--so basically it’s using the shift registers to make a continuous stream…. Per scan line then usiwa the blanking period to setup the next scan line… as long as ur fast enough and can keep the timing this avoids needing a whole page of buffering and vram
@EmulationOnline13 күн бұрын
@@sodapopinski9922 Yep, the shift registers help render at high speed. Each byte from vram has info for several pixels. Fill the shift register from vram, then shift the bits out just as they are needed for rendering.
@sodapopinski992213 күн бұрын
@@EmulationOnline is it in code we keep track of the vertical bits and use the shift register to keep track of the 8 bits horizontal in an 8x8tile So basically I’m wondering it knows what tile it wants how does it keep track how many lines from the tile have been drawn is there a register to keep track that you he system checks every scan line