|
Re: Shadow Gangs (NeoGeo), scrolling issue going right only.
11/15/23 10:41 PM
|
|
|
Glad to hear you're making progress
and yes, if you want smooth sprite updates then you absolutely need to only update the spritelist in the period after the final scanline, before the first line is being drawn again.
The NeoGeo doesn't have "tilemap" backgrounds, so yes, you definitely want to use sprite strips, ideally only keeping what should currently be visible in spriteram, and nothing more (this is why a lot of NeoGeo games have bad clipping issues outside of the 304 pixel wide region in the center of the 320 visible area - they were TOO aggressive in optimizing this, assuming people wouldn't see that area)
The 68000 really isn't that fast (it's often a bottleneck in Neo games)
of course there are times when you might want to update some parts of the spritelist midframe, and you'd typically use the raster interrupt for that - triggering it on a programmed scanline and updating a few values in the spritelist at that point (unless you're mad and time the display manually like Master of Syougi does for the title screen animation) in those cases you'd only want to be changing the absolute minimum number of sprite positional registers and nothing else though, otherwise you'll end up with the same issue - anything beyond a rowscroll effect on a floor, or the pseudo 3d of the pitch in Super Sidekicks 2 (and higher) is probably asking too much in terms of what you can safely change during the display area.
I'm still not sure why it was only causing you an issue in a single direction (although there would be a logical reason) but it sounds like you're on the right track.
Even a lot of commercial NeoGeo games struggle to keep things both within the per-line sprite limit, and keep sprite updates within the desirable non-display period, often resulting in ugly tearing or sprite dropout even on real hardware.
> Update on this issue. > > I changed the way I was scrolling the backgrounds. > > I now use the chained sprites functionality of the NeoGeo, and also take advantage of > the rolling of the sprites at 512 pixels boundary of the NeoGeo, both vertically and > horizontally. > > This issue then disappeared, and I didn't see this glitch again. > (The question of why it showed up only moving right is still unknown, but I don't > care about it now). > > (I saw on Mame that after using 3 backgrounds, the characters weren't showing up on > screen, found out it was due to the sprite limits, and added a way to turn off > sprites off screen, while still having the rolling the backgrounds at 512 pixel > boundary). > Really enjoying programming the NeoGeo, as a simple thing like a scrolling which is > very easy and straightforward on modern machine, is not on the old hardware. > And Mame is a big help on this, gngeo still show sprites even if it hits the limit. > > Now the last hurdle is the get the 60 fps performance...
|
|