David Haywood's Homepage
MAME work and other stuff
February 22, 2013 Haze Categories: General News. 24 Comments on The Road…

I like to do articles about interesting / unique things I find when emulating a platform, and the way the road is drawn on Cool Riders is one of those things.

While most hardware uses a ’tilemap’ like chip to draw a road with linescroll and lineselect type parameters to do bends and curves (that’s how it works on OutRunners for example) or simply throw a ton of layered sprites at the job (F1 Super Lap) Cool Riders takes a hybrid approach.

You’ll have noticed that in the previous update, even the latest video I added to it was lacking the center of the road, this is because the road is somewhat special. While it does still use the regular sprites / blits it has an extra parameters on them. This parameter allows every line in the sprite to use a lookup value specifying the zoom and scroll offsets for that line of the sprite. This essentially allows you trapezoid shaped sprites by having a table of increasing zoom values. That’s exactly what Cool Riders does, meaning this extension to the sprite system lets them use normal sprites in a way more suited to drawing the road.

Here are some screenshots, sorry about the bad colours and priority, I haven’t figured those things out yet. Also there are gaps in the zooming because my algorithm is imperfect.


Cool Riders Road

Cool Riders Road


Hooking up the road has actually made it much harder to play for now, because it gets drawn over the bike, the priority scheme looks to be non-trivial at this point.

Anyway, Cool Riders also sports another fairly uncommon feature. As well as being able to flip sprites in the horizontal and vertical direction it can also rotate them by 90 degrees. This is used on the map screen. All 3 forks of the main tree are the same sprite with rotation applied. Quite why all roads lead to New York at opposite ends of the earth I don’t know, especially not when it’s the 2nd stage. From memory some Dynax hardware supports a similar effect.


Cool Riders Rotation

What happens if you enable both effects at once? I haven’t seen the game do that, and I likely don’t want to know ;-)

Overnight Kale confirmed something I’d been thinking for a while, the Sprite palettes are in the compressed ROMs (they appear to be uncompressed tho) This allowed him to fix the palettes for the text in test mode, but still needs work for actual game graphics etc.


Cool Riders
Cool Riders
Cool Riders
Cool Riders

CRT test screens can be handy, I’ve started to (hopefully) improve the palette addressing based on it

Cool Riders

Getting there..

Cool Riders

That’s better.. fixes some ingame objects too (but still not right ingame)

Cool Riders

Some Ingame colours, note still broken transparencies, imperfect zoom, and broken priority.. so you can’t actually see much


Cool Riders
Cool Riders
Cool Riders
Cool Riders
Cool Riders

24 Comments

You can follow any responses to this entry through the RSS 2.0 feed.

Hm, I wonder how that per-line zoom/scroll work. Lookup table next to the draw commands? That’s about the most economical way I can imagine this happening.

it’s a table in RAM, the sprite list contains a pointer to it.

it’s similar to how the ASCII drawing works, that also uses a pointer to a table containing 8-bit character codes.

Kinda neat tho :-)

Yeah, figured. That’s how the Saturn did gouraud shading as well. The whole thing with sprites gives me a Saturn vibe here, especially as previous sega arcade sprite scalers have had relations to parts of the Saturn hardware (I recall it was Charles MacDonald who called the VDP2 an evolution of the System32 video chip).

In fact, I just looked up the chip numbers, and what do you know:
Saturn used custom sega chips 315-5687 to 5690,
H1 hardware used custom sega chips 315-5691 to 5698,

Very likely just a coincidence as they were possibly done by entirely different teams… But sort of neat.

Awesome work, David.

Thanks for taking the time to write these more technical articles.

zyrobs: VDP1 and VDP2 both bear a strong resemblance to their System 32 counterparts, although the interface between the two was a step backwards in the Saturn. (Hence the prevalence of mesh mode).

As a trivia point, that makes Saturn the first and only Sega console derived from previous Sega arcade hardware. SG-1000 was an MSX/Colecovision clone and the SMS and Genesis evolved from it (although the extended TMS9929 design was definitely showing the strain in the Genesis). And Dreamcast was a clean sheet.

So this would be the “missing link” of Sega Racers then?

The road is essentially using a rudimentary form of texture mapping if I’m understanding correctly.

The road draw is best described as a more primitive version of how the Saturn fakes polygons. (The Saturn h/w computes all the tables for you; here it’s done manually).

Was there any kind of security that prevents from correcting the in-game palette?

the saturn allows you to place all 4 corners, unless there is a 2nd indirect lookup not used by the game, this only allows you to stretch lines relative to the original 16-pixel lines of each tile, the shapes you can create always have flat top / flat bottom.

although in theory you could create a ( ) type shape sprite with this, you couldn’t do that on the saturn.

and no, the game is unprotected.

Thanks but keep it up! This is the most underrated Sega Racers to be emulated!

Also in theory the 90 degree rotate + the road draw would give you a little more flexibility if you can use them both at once.

The more that’s found out about this hardware the more likely I think it is that this is the long-rumored 2D only original Saturn from before they found out Sony was going 3D. They just tossed out Cool Riders later to try and recoup a little bit of the R&D on the lost chipset.

From another angle, I love that “COOLRIDER OF COOLRIDERS” is the same number of characters as “OUTRUNNER OF OUTRUNNERS”. Almost makes the whole thing seem like a high-end bootleg, or a KH game.

That’s why this game didn’t have a home port cause of the delays of the Saturn hardware.

Awsome progress in so short time.
Love your work.

RB, there’s an interesting detail in that sprite hardware too. It’s using tiled sprites. The only other sega tile sprite hardware of that era is system24.

Meanwhile, as you probably remember, the vdp1 is very, very similar to system32 sprites, including obvious things like end-of-line indicators, and less obvious ones like the hotspot position. I really wonder if we see the effect of two concurrent teams there.

I wonder if the tilemap hardware is closer to system24 or 32?

OG.

this has hotspot positions too (left/center/right) (top/center/bottom)

CONGRATULATIONS!
This is coming around extremely fast.
At this rate, you’ll have it nailed in no time.
Keep on being awesome, Haze.

I have been following these dynamic changes over the past few days. Quite remarkable to view what you guys have achieved in a relatively short space of time. Well done!

Been keeping a wee on the cool riders WIP
seems everytime i checkback there’s big progress
great work guys

I’ll be putting some new screenshots up in the morning too :-)

why waiting… put it now..

based at source changes, you did many new “things” :)

Good job Haze, but this week we’ll see this bad boy in action!

oh, i forgot.. what about sound/music?? what hardware are inside?

guru mention that he can’t get sound on read arcade board (something is missing, he wrote @ youtube)..

so?

A big thumbs up for you Haze and everyone else involved behind the scenes. This is an awesome piece of work within close to no time !

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close