Hi, so picking up from last time we said we are going to just do “some minor ppu fixes”, right? wrong.
as i was refactoring the PPU and working on the STAT interrupts i noticed that the current way of doing things is really a mess, so far the PPU worked by drawing a whole scanline in one shot this unfortunately breaks a lot of games (unless you do some ugly mode 3 length calculation hacks which would still leave you with some broken games).
so i made what is probably gonna be a mistake, i decided to rewrite the whole PPU to use the much more accurate to the hardware pixel fifo model (a fifo is “First-in First-out” a fancy way of saying a queue), every beginner resource on emulation recommended that i don’t bother with it and just use clock hacks to do what i want but that’s seems perhaps a little too unclean to me so off i went trying to implement it.
and let me tell you this is not ez, i have been so far only able to render the background correctly with completely wack timing that i was trying to fix before noticing that i should probably make a devlog explaining things :>
i don’t know all the specifics of how the pixel fifo works yet, so i am gonna try to explain more in the next devlog
also important to mention is that i am doing that ppu rewrite on a git branch called pixel-fifo until hopefully it gets functional enough that we can discard the old renderer and merge with the master branch
here is the tetris background layer rendering with the pixel fifo renderer, the sound is kinda messed up right now using the new renderer but hopefully i’ll be able to fix it later
Log in to leave a comment