General console overclocking question

Started by Vertigo, May 11, 2005, 11:53:30 PM

Previous topic - Next topic

Vertigo

Does overclocking the CPU, as well as going some way to getting rid of slowdown, do anything to alleviate the flickering that comes as a result of horizontal sprite limits?
The most noticable case of this that I can pluck from random parts of my brain is NES Teenage Mutant Ninja Turtles (or, in fact, the vast majority of badly-programmed NES games) where all the sewer sections are a horrid mush of slowdown and sprite flicker/disappearance.
Answers?

Aidan

If it's a hardware limitation (IE, the sprite generator), then overclocking the CPU won't help with the flickering. On the other hand, it /might/ help slowdown, depending on what's causing it!
[ Not an authoritive source of information. ]

atom

I wouldnt blame the flickering on the programming, I would call it a horrid GPU. Like the atari has a ball for pong built into its hardware the nes gpu has stuff for horizontal scrolling. Remember mario could only go forwards? Coders got more clever and figured out how to get around the glitching, doesn't mean the original coding was wrong.
forgive my broked english, for I am an AMERICAN

Vertigo

#3
QuoteCoders got more clever and figured out how to get around the glitching, doesn't mean the original coding was wrong.
That's what I'm referring to when I say 'badly programmed'.
OK, how about if you overclock the GPU to match the CPU?
Probably not possible on the NES because of all the integration going on in there.

atom

#4
Nope, then your tv wont be able to display the new frequency which would be a side effect of overclocking the PPU. I guess we should call it PPU. Thing is, these glitches are not caused by slowdown, they are just that: glitches. You would have faster flickering.
forgive my broked english, for I am an AMERICAN

Guest

I thought the per-line sprite limitation might have had something to do with the speed the PPU can generate sprites at and if it can't generate them within that frame because it just plain can't, then it just doesn't bother, hence the flicker and disappearance of sprites or parts of sprites that are on the affected scanlines. I know that what usually happens is that you get slowdown because the current frame holds in the video buffer until the next full frame is drawn, so you're saying that glitching is the case here. Glitching where exactly? How do these effects take place, when usually what happens when a GPU can't draw that much stuff is slowdown? Is it literally just the GPU trying to draw but not being able to do enough so basically saying oh yeh fuck it, put the frame on-screen as is and move on to the next one?
The SNES does it too, but the SNES also experiences slowdown in similar circumstances, so when does one manifest itself instead of the other?

atom

#6
Ive never coded for a NES like you, im just throwing out theories. I imagine the flickering is caused by the ppu missing the vsync in certain mappers. But  I cant imagine it ever just deciding not to draw a sprite because it would take too long to get it in the frame, thats not really logical. A chip never makes decisions for itself, it simply does what the coding tells it to do, which is to move things around in memory. I dont ever remember seeing this sideeffect in the SNES, but your turtles brings back many memories to me.
forgive my broked english, for I am an AMERICAN

Aidan

From what I understand of sprite generation (not a lot), typically the limitations are hardware, such as memory bandwidth, or simply the number of DMA registers in the sprite generator. When you come to things like memory bandwidth, it's then down to which devices get the most memory bandwidth, and how many sprites are actually in use, and which order they get drawn in.
[ Not an authoritive source of information. ]

Confused

The NES can display a maximum of 64 sprites on screen with a maximum of 8 per scanline.

When this hardware limit is reached sprites flicker so that only the maximum amount is displayed at any one time.

Take Double Dragon II for example notice how the sprites flicker severely when there together in a row compared to when there spread out.

Overclocking your NES will help slow down but it wont allow the NES to display more sprites.

Vertigo

OK, so, the per scanline limitation gives you the flicker, when too much is on one horizontal line at a time you get disappearances because the hardware physically can't render that much on each scanline.

So, slowdown without flicker results in the hardware not sending the next frame to the video buffer to be displayed because it hasn't drawn it yet so it displays the last frame it was given. This can be solved by overclocking because you speed up the CPU, allowing it more operations per second so it doesn't have as much trouble creating the next frame to send out to the screen.

Have I understood correctly?

And slowdown with flicker is called a Master System ;)

By the way atom, you can see the sprite flicker effect on the SNES most easily when you kill a boss in Zelda and it does the big exploding. The flickering is there.

atom

#10
Yup you got all that down. I am pretty sure the flickering in Zelda is done on purpose however. In fact its a common thing in 2d games for bosses that are being defeated to flash like that. Now you have me wondering though.

Depending on the game, overclocking the cpu may or may not help. Think of the cpu as doing more of the math and calculations of player movements, processing the controller, AI, anything like that. The PPU of course is the chip that draws all the sprites to the screen. So if the slowdown is from too many blits in a frame, overclocking the PPU would help. Since the PPU also acts as a Codec, this would not be possible unless using RGB. If the slowdown is because Both player one (sonic) and player two (tails) are pushing the the button to open the gate and swing down the bridge at the same time the flying bee has to dive in for an attack and then when it does the coins have to fly everywhere, then overclocking the CPU will help. You can see how the overclocking the cpu will help a lot, but in some cases it just wont help at all. Overclocking these older systems dont have the great results you would expect because most game developers obviously tried to avoid slowdown. But when things happen all at once like that, the slowdown happens... and it can be annoying to us modern day speed freaks.

atom out
forgive my broked english, for I am an AMERICAN

Aidan

Most video hardware will hard limit you to what it's capable of. That's because things like sprites are generally not on the same playfield as other graphical things. Hence, if the video hardware can't generate the image in time, the display device loses sync, and you get a headache.

On the older consoles (such as those with dedicated sprite hardware), the video hardware combines the foreground/background/sprite/playfield elements in realtime as they're displayed on the screen. As the way the whole video hardware works is very closely tied in with the timing of the TV signal, you don't generally have the option to overclock any of the video hardware.

Generally slowdown is caused by the CPU not having enough time in a frame to process all the information it needs to, either because it's not fast enough, or because of some other physical constraint such as not getting enough time on the bus.
[ Not an authoritive source of information. ]