2-cell vertical scrolling + horizontal scrolling
Moderators: BigEvilCorporation, Mask of Destiny
2-cell vertical scrolling + horizontal scrolling
These 2 games, Kawasaki Super Bike Challenge & F1 from Domark both use the same engine which makes use of the 2-cell vertical scrolling VDP feature (each 16-pixels column can have a specific vscroll offset from VSRAM).
They also use horizontal scrolling which make the left-most column sometime only partially displayed and I have always wondered how the VDP would apply vertical scroll values in that case (since there are more visible columns that usual)
Now, if you let the demo mode run in any emulators, you can see that the left-most column is glitched when the screen scroll horizontally. This does not happen on real hardware as shown on these videos:
http://www.youtube.com/watch?v=5odFf_lx ... re=related
http://www.youtube.com/watch?v=Dm5iWm5Z ... re=related
Interestingly, if you disable vertical scrolling for the left-most column when it is partially displayed, then the display is fine in emulators (what they indeed do usually is to apply VSRAM first entry to the partially shown column and the next one).
You could think it's just another dumb VDP limitation and an easy fix for emulators but here comes the tricky thing: another game, Gynoug, also uses 2-cell vertical scrolling (in the first level, when the screen begins shaking and rocks falling) BUT this time, if vertical scrolling is disabled for the left-most column when it is partially displayed, it will be glitchy.
The only difference I could think about is that the two first games are running in 32-cell mode while Gynoug uses 40-cell mode. VSRAM seems to have room for 40 words (2planes x 20 columns) so maybe there is a trick which makes the left-most partial column uses one of the unused VSRAM entry in 32-cell (16-columns) but loop back to first entry in 40-cell mode ?
They also use horizontal scrolling which make the left-most column sometime only partially displayed and I have always wondered how the VDP would apply vertical scroll values in that case (since there are more visible columns that usual)
Now, if you let the demo mode run in any emulators, you can see that the left-most column is glitched when the screen scroll horizontally. This does not happen on real hardware as shown on these videos:
http://www.youtube.com/watch?v=5odFf_lx ... re=related
http://www.youtube.com/watch?v=Dm5iWm5Z ... re=related
Interestingly, if you disable vertical scrolling for the left-most column when it is partially displayed, then the display is fine in emulators (what they indeed do usually is to apply VSRAM first entry to the partially shown column and the next one).
You could think it's just another dumb VDP limitation and an easy fix for emulators but here comes the tricky thing: another game, Gynoug, also uses 2-cell vertical scrolling (in the first level, when the screen begins shaking and rocks falling) BUT this time, if vertical scrolling is disabled for the left-most column when it is partially displayed, it will be glitchy.
The only difference I could think about is that the two first games are running in 32-cell mode while Gynoug uses 40-cell mode. VSRAM seems to have room for 40 words (2planes x 20 columns) so maybe there is a trick which makes the left-most partial column uses one of the unused VSRAM entry in 32-cell (16-columns) but loop back to first entry in 40-cell mode ?
-
- Very interested
- Posts: 745
- Joined: Sat Dec 15, 2007 7:49 am
- Location: Kazakhstan, Pavlodar
-
- Very interested
- Posts: 292
- Joined: Sat Apr 21, 2007 1:14 am
Re: 2-cell vertical scrolling + horizontal scrolling
Just curious, are you testing this with Genesis Plus? I did a lot of research to make sure the leftmost column scrolled like it does on the real hardware for 40 cell mode. But now that I think about it, I may have not tested 32-cell mode and assumed the same rules apply...Eke wrote:These 2 games, Kawasaki Super Bike Challenge & F1 from Domark both use the same engine which makes use of the 2-cell vertical scrolling VDP feature (each 16-pixels column can have a specific vscroll offset from VSRAM).
I think you have found another interesting VDP quirk.
Re: 2-cell vertical scrolling + horizontal scrolling
I checked. Genesis Plus works fine for Kawasaki (32-cell) but not for Gynoug (40-cell) -- partial column on the left is wrong.Charles MacDonald wrote:Just curious, are you testing this with Genesis Plus? I did a lot of research to make sure the leftmost column scrolled like it does on the real hardware for 40 cell mode. But now that I think about it, I may have not tested 32-cell mode and assumed the same rules apply...
Just so it's clear, Kawasaki (and presumably F1) renders one or two cell-wide columns of patterns with some vertical offset, likely based on the current scroll values (i.e., it's altering the pattern not the scroll values). I haven't seen the code yet, but it's clearly compensating for a predictable bug.
Eke, I like your theory about the unused VSRAM entries in 32-cell mode. It might be worth checking out.
Just curious, are you testing this with Genesis Plus? I did a lot of research to make sure the leftmost column scrolled like it does on the real hardware for 40 cell mode. But now that I think about it, I may have not tested 32-cell mode and assumed the same rules apply...
Yes, I'm testing on Genesis Plus. In fact, in your original code (1.2a), you initially disabled left-most column vertical scrolling (I mean, only when the horizontal scroll value makes it partially visible on the left side).I checked. Genesis Plus works fine for Kawasaki (32-cell) but not for Gynoug (40-cell) -- partial column on the left is wrong.
I changed that in my port because I once noticed Gynoug was wrong this way (btw, I think I remember you left some notes in render.c indicating there was some stuff to fix about that) but then later I noticed about these two other games that would require partial left-most column to be locked.
First level, when that big one-eyed robot appears.Eke wrote:I didn't noticed this one, is it used in a particular level ?HardWareMan wrote:And what about "Contra Hard Corps", wich used 2-cell vertical scrolling to?
some more that I remember:
- Lava Reef boss in Sonic & Knuckles,
- The flying battleship in Gunstar Heroes
- Andy asteroids in Earthworm Jim
most of them don't do hscroll at the same time though.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
Funny thing about these two games is that I've had both Kawasaki and V.R. on the real console back then, but I've played Kawasaki a lot, and V.R. only turned on few times.
Well, it is easy to see that SVP increases number of polygons considerably in the game, V.R. is much more detailed, however for some reason I can't say it is playable, at least it isn't addicting for me.
Well, it is easy to see that SVP increases number of polygons considerably in the game, V.R. is much more detailed, however for some reason I can't say it is playable, at least it isn't addicting for me.
-
- Very interested
- Posts: 3131
- Joined: Thu Nov 30, 2006 9:46 pm
- Location: France - Sevres
- Contact:
Of course it's polygon rendering, i had a quick look on disassembled code and we can easily find sort of fast polygon fill methods. But that doesn't mean the game is real 3D. As you can notice the world is never rotated (V cell scroll is used to simulate it) or anything like that, we only have basic translation which simplifly *a lot* the transformation calculation.sheath wrote:Have we confirmed that there are no polygons in these games? With the way the stands and buildings look as you pass them I couldn't figure they were not polygonal. I kept expecting to see some sort of bitmap/2D telltale and never did.
Anyway the fast polygon drawing stuff is already quite amazing imo !
Last edited by Stef on Tue May 18, 2010 7:48 am, edited 1 time in total.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
Okay, those last two posts were confusing... let's be straight on what you're referring to. We know VR is "real" 3D polygons. Were you guys referring to something else in the last couple posts?
EDIT: Okay, I played Kawasaki and I see what you're talking about - they do a very good job of sticking a few polygons on top of a "standard" 2D racer program. It really enhances the look of the game.
Now as to how fun it is compared to VR, can't say. I'd have to play it a while, but I'm a huge VR fan, so it would have to be REALLY fantastic to beat VR with me.
EDIT: Okay, I played Kawasaki and I see what you're talking about - they do a very good job of sticking a few polygons on top of a "standard" 2D racer program. It really enhances the look of the game.
Now as to how fun it is compared to VR, can't say. I'd have to play it a while, but I'm a huge VR fan, so it would have to be REALLY fantastic to beat VR with me.