alyosha-tas / GBAHawk

Gameboy Advance Emulator fork of BizHawk
Other
12 stars 2 forks source link

Pokemon Sapphire intro rendering #11

Closed alyosha-tas closed 1 year ago

alyosha-tas commented 1 year ago

One of the 5 water ripples is partially cut off.

There isn't enough time to render 5 x 64 width affine and double sized sprites (that would take at minimum 128 2 5 = 1280 cycles and only 1232 exist in a scanline.) And this not even counting OAM fetch times.

I've double checked my rendering code and it matches up with current knowledge, nothing seems amiss.

Somehow it works on console though, so maybe some pixels out of range in the x direction don't get fetched? Time has to be saved somewhere.

fleroviux commented 1 year ago

I had this same issue at one point. Sprites are indeed horizontally clipped. That is all the sprite pixels which are out-of-bounds on the left side of the screen are skipped. So basically the sprite engine can skip pixels at the start/left side of the sprite but the same is not true for the end/right side. I hadn't gotten around to document this yet (most of my documentation was written before I set out to do a final implementation of cycle PPU), so there definitely are some not documented yet things.

alyosha-tas commented 1 year ago

Ah ok, that makes sense, thanks for verifying, shouldn't be too hard to implement then.