PPU Page overhaul

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
PPU Page overhaul
by on (#15787)
I was working on adding general information about the layout and timing of a frame, since nothing like that is mentioned on the wiki, then I figured I might as well go ahead and re-organize and re-do most of the PPU info on the page. I mean there's so little there and it's not layed out very well... it really needs a complete overhaul.

I figured I should give you guys a heads up in case there's something specific you don't want me to change or remove. I'm going to wait until I have a considerable chunk together before I change anything -- hopefully I'll have it done this weekend, but I might not get done until a bit into the week.
Re: PPU Page overhaul
by on (#15790)
Disch wrote:
I figured I should give you guys a heads up in case there's something specific you don't want me to change or remove.

As long as you keep the fact that registers have names, I don't have a problem with making the PPU page clearer or even splitting it into several pages. I just hate referring to registers by their addresses.
Re: PPU Page overhaul
by on (#15791)
tepples wrote:
As long as you keep the fact that registers have names, I don't have a problem with making the PPU page clearer or even splitting it into several pages. I just hate referring to registers by their addresses.


Heh, alright. I actually feel the exact opposite (the address is easier to remember and much more clear, IMO... there's no mistake what $2002 is, but 'PPUSTATUS' could be any number of things).

But yeah, I'll leave that in. It's probably better for the average nesdev'er.

I've pretty much got the frame/scanline stuff mapped out. Gonna try and cover PPU memory mapping and Scrolling/PPU Address stuff. After that, it's pretty much just a reorganization thing -- taking what's already there and shaping it up.

by on (#15793)
The reason $2002 means more to you than PPUSTATUS is because you (and most of us) use $2002 in your code; if you used PPUSTATUS, the situation would be reversed, thus the reason for leaving symbolic names in. The two main benefits of them are easier learning and less room for error, because the typographical and visual distance between PPUSTATUS and PPUCTRL (or whatever another register is called) is much greater than between $2002 and $2001. The main disadvantage is that it adds a layer of indirection, making debugging slightly more difficult (when debugging, you want to be able to trace things down to what's really going on as easily as possible).

As for the PPU page, please split it up. Perhaps the division could be along the lines of generally-useful behavior and the really low-level stuff.

by on (#15800)
blargg wrote:
The reason $2002 means more to you than PPUSTATUS is because you (and most of us) use $2002 in your code; if you used PPUSTATUS, the situation would be reversed, thus the reason for leaving symbolic names in.

I guess I'm just used to the GBA environment, where such symbols (DISPCNT, BGCTRL[], DISPSTAT, BGOFFSET[]) are the norm in the community. Perhaps this is because the GBA has several times more registers than the NES (which has only 30 not counting mapper registers).

Quote:
The main disadvantage is that it adds a layer of indirection, making debugging slightly more difficult (when debugging, you want to be able to trace things down to what's really going on as easily as possible).

That is, until FCEUXD SP is patched to use symbols for known registers in the CPU and in each mapper.

by on (#15894)
Well in case you guys hadn't noticed, I didn't finish in the weekend -- and I'm too burnt out during the week to really work on it. I'll try to get around to it this weekend. If not, perhaps I'll take the wimp way out and just upload what I have and not worry about sorting/organizing.


One other thing I should ask about --- PPU Scrolling registers. What name should I refer to them as?

I was using Loopy_T and Loopy_V for the scroll reg stuff -- but I think I might have slipped "PPU Address" in other areas. I'd like to just pick a term and stick with it. The problem is I can't think of a Loopy_T version of "PPU Address" -- and I kind of don't like the loopy names (no offense, Loopy).

What do you guys think? What should I call them?

by on (#15899)
I think "loopy_t" and "loopy_v" stand for "PPU Temporary Address" and "PPU VRAM Address" or the like.