David Haywood's Homepage
MAME work and other stuff
February 25, 2013 Haze Categories: General News. 40 Comments on Brake!

Here is the video to go with this update


Content not available.
Please allow cookies by clicking Accept on the banner

Another interesting aspect of the Cool Riders hardware is the way the palettes work, and this is also tied directly to the compression.

Due to the palettes for the sprites being hardcoded in the compressed gfx ROM with the sprite data it would be quite tricky to do colour cycle type effects without storing an entire extra copy of the palettes just for one or two changes. Sega realised this and covered it by allowing secondary ‘partial’ palette entries to be used, substituting a specified range of colours in the original palette if enabled. This is how the tyres and brakelights on the Player and Rival bikes work. If you look at the older screenshots like the one below:


OLD Cool Riders screenshot
(old screenshot from previous update, note the tyres / light on the bikes are wrong)

You’ll see that the wheels and brakelights appear are bright blue/green colours. This is because those data entries are a actually meant to use data from the 2nd palette index specified, not the first. This means that by cycling the secondary palette index value, and leaving the first alone the wheels of the wheels can be animated without storing the colours needed for the rest of the object. If you render just the second palette index values, ignoring the primary one you end up with the following, note, the tyres and brakelight are correct


Cool Riders, 2nd palette index
(test screenshot, just the using the 2nd palette index instead of the first, note for the bikes ONLY the tyres / light are correct)

Interestingly, if you render the scene using ONLY the second palette indexes get a lot of objects are still correct, because for most they duplicate the same palette entry in both.

Combining the two you get this


Cool Riders
(new screenshot, all bike graphics are correct)

How does this work? Well we know the basics, it’s done when decompressing the RLE sprites, using the 2nd index in certain situations, but beyond that is where things become confusing. The problem is this effect seems ONLY to be used on the bikes, giving little evidence of how it should actually work. Maybe for certain sprite type it’s always enabled, so they have to ensure both palette indexes point to the same place, but even then there is what should be a mask / threshold value which is set to 00 for everything except the bike anyway, and there is a bit ONLY set on the bike which would seem a sensible bit in a sensible location to use to enable the effect. Either way, it works, but that’s sometimes the downside of hardware with only one game, making limited use of something. If the game didn’t use this here we wouldn’t know about it at all. Another point of interest is that OutRunners also uses a special way to do the brakelights on the bikes, although a different one to the one we have here, but again it points at some of the System32 thought processes going into the design here.

One effect used more widely is the RGB brightness control, and it’s the reason some things turn an odd colour in the background in the current video. Kale has done a preliminary hookup of this effect, but right now it’s not quite right (has various modes) and in addition it should apply to the full screen, including sprites, so you can’t even see if if you’re in a tunnel right now, or you have a background partially made of sprites. It’s used for various thing, including flashing the screen red when you crash, and a white ‘flash’ when you come out of a tunnel, as an attempt to simulate the time it takes for your eyes to readjust to the light.

Kale also added an interpretation of some other registers, allowing the InVision logo, and filmstrip part of the attract to render with solid backgrounds, rather than the background tilemaps which shouldn’t appear there.

The filmstrip also uses another feature, clipping windows. For each part of the filmstrip a window is specified, this clips all graphics to within the specified area and is noticeable on a number of the animations, especially the zooming one (we’re still missing a heart on the TV there, but that’s another matter) This effect is also used between stages (not quite sure why) and occasionally gets set to erroneous(?) values on certain levels like Romania, the second time you encounter Dracula. Not sure what that should do, if anything. I’ve implemented this effect, interestingly the format for these windows is basically the same as the format used for the framebuffer copy params. Furthermore there might be yet another way to specify this using another set of blitter registers, used in the end sequence (you can’t notice with the ending in the video, but for the one in the previous video the text should get clipped to the TV screen area, currently the game just sends a ‘full-screen’ setting via the usual method so that needs further investigation)

Anyway, that’s yesterday’s work. I might take a break from things today before looking at the blending.

The routes, for people interested

Stage 0: Prestage

Left Route
1st Stages: Niagra Falls
2nd Stages: Greenland, West Indies, Brazil
3rd Stages: Rumania, England(1), Spain, Egypt, Kenya
4th Stages: Arctic, Russia, China, Japan(1), Hong Kong, India, Antarctic

Middle ROute
1st Stages: New York
2nd Stages: Washington, Niagra Falls (2), Chicago
3rd Stages: Atlanta, Mississippi, Desert, Grand Canyon (2), Rocky Mountains
4th Stages: Florida, Houston, Texas, Hawaii (1), Las Vegas, San Francisco, Alaska

Right Route
1st Stages: Grand Canyon (1)
2nd Stages: polynesia, Hawaii(2), Canada
3rd Stages: Australia, Indonesia, Japan(2), Mongolia, Russia
4th Stages: Antarctic(2), Kenya, France, Switzerland, England(2), Sweden, Arctic(2)

Stage 5: Extra Stage

– total 50 stages

————————————–
Left Route (starting Niagra Falls)
————————————–
-Greenland
–Rumania
—Arctic
—Russia
—China
–England
—Russia
—China
—Japan
–Spain
—China
—Japan
—Hong Kong

-West Indies
–England
—Russia
—China
—Japan
–Spain
—China
—Japan
—Hong Kong
–Egypt
—Japan
—Hong Kong
—India

-Brazil
–Spain
—China
—Japan
—Hong Kong
–Egypt
—Japan
—Hong Kong
—India
–Kenya
—Hong Kong
—India
—Antarctic

————————————–
Middle Route (starting New York)
————————————–
-Washington
–Atlanta
—Florida
—Houston
—Texas
–Mississippi
—Houston
—Texas
—Hawaii
–Desert
—Texas
—Hawaii
—Las Vegas

-Niagra Falls (2)
–Mississippi
—Houston
—Texas
—Hawaii
–Desert
—Texas
—Hawaii
—Las Vegas
–Grand Canyon (2)
—Hawaii
—Las Vegas
—San Francisco

-Chicago
–Desert
—Texas
—Hawaii
—Las Vegas
–Grand Canyon (2)
—Hawaii
—Las Vegas
—San Francisco
–Rocky Mountains
—Las Vegas
—San Francisco
—Alaska

————————————–
Right Route (starting Grand Canyon (1))
————————————–
-Polynesia
–Australia
—Antarctic(2)
—Kenya
—France
–Indonesia
—Kenya
—France
—Switzerland
–Japan
—France
—Switzerland
—England

-Hawaii(2)
–Indonesia
—Kenya
—France
—Switzerland
–Japan
—France
—Switzerland
—England
–Mongolia
—Switzerland
—England
—Sweden

-Canada
–Japan
—France
—Switzerland
—England
–Mongolia
—Switzerland
—England
—Sweden
–Russia
—England
—Sweden
—Arctic(2)

40 Comments

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

Haze you’re the best!

Wohoooo Haze, great explanation and great work :3

Almost there! We got two obstacles left!

Anyway, what Blending Effects that something you talked about on the next progress?

there should be some blending effects to make the waterfalls and clouds etc. on some levels semi-transparent (and the reaper things show in attract / used on romania)

Great work as always Haze, I remember dropping a few coins into this one back in the day and I look forward to giving it a spin again. It’s indeed very much like OutRunners, quite a lot of fun to play.

I have been teaching myself C++ the past few months after doing Java and Python for a few years, and I think I’m arriving at the point where I could start contributing useful things to the mame/ume project. I’ve already developed a modular ume frontend/media library hybrid in Qt and made a few hundred cropped, transparent title snaps, and I intend to release both soon to the community. Apart from that I would like to get involved with mame itself, perhaps maybe starting off with fixing simple things such as input names, dipswitches, things like that, and gradually learn my way around the source code, and move on to more ambitious things when I’m ready for it. Could you give me your email so I could ask you a few questions? I can’t find it on this site.

Regards

Yeah I played this one too, they had it at an airport (can’t remember if it was East Midlands or Luton) about 6-7 years back.

Actually airports were good for obscure games at the time, there are still a couple we haven’t seen dumps of including a Korean game which ripped the game mechanics straight from Crazy Taxi but was on bikes (can’t remember the manufacturer / title, I thought Chris Hardy said he had one years ago, but IIRC it was PC based and never dumped)

I’ll drop you a mail later if the contact details you left here are correct.

Is Blending Effects related to the full screen transition effects I watched Guru’s videos and its supposed to play on full screen rather than in the 2D Sky

no, that’s the RGB control, it currently only gets applied to the tilemap palette, not the framebuffer graphics.

Pooshh: We’re happy to take general C/C++/Qt questions on the MESS forum as well, and I’m looking forward to seeing your frontend.

Very impressive progress.

The game looks like a bastard child of Outrunners and Cruisn’ USA.

Yeah, unfortunately it does have that trashy side to it like Crusin’ USA and many other US developed games, which puts me off most US stuff made in the 90s…

I guess that was kinda the intended audience for this tho.

The game is full of WTF moments, if you go through Chicago there are Basketballs on the road, if you hit the people holding the signposts at the end of the level they go flying (using the rotate effect to do 4 frames of rotation) Houston has Nasa and a section on the ‘moon’ with Aliens, Florida has a Daytona bit, for the Antarctic levels you drive through a whale…

but at the same time several of the levels are really just dull filler levels, and while the two Niagra Falls levels are significantly different the two Antarctica ones may as well be the same level.

It strikes me as Sega’s attempt to do a Parodius Team-style game. It hits some similar notes, but it’s way, way more ham-fisted. I keep expecting Kyle Hodgetts to pop up in a corner and yell “Toasty!”

The Romania level seems like a weak-sauce Castlevania homage. Dracula’s animation is similar to the intro of Haunted Castle when he snags your fiancee, and they have you drive through a castle wall at one point to make sure you got it.

Basketballs for Chicago makes kind of sideways sense because the mid ’90s was fairly soon after Michael Jordan’s retirement (he played for Chicago, for the sports-averse) and Space Jam was around that time.

It didn’t make me think of Castlevania, although I’ve never been a huge fan the series, so it’s possible I missed some reference. It just seems to be a parody based on stereotypes about the regions, in that case the Dracula / Transylvania theme. (and yes, the game uses ‘Rumania’ instead of ‘Romania’ for whatever reason)

Russia has a cold war theme, Las Vegas has a giant drive-through casino, Japan has Ninjas (just noticed there are 2 Japan stages, not sure if they differ much) Spain puts you through a bull-ring, China along the Great Wall.

One of the Hawaii levels has a storm effect going on near the end of the stage.

looks like this is helping to flesh out the Wikipedia article too, and while it does annoy me a bit when they take some info from MAME which doesn’t always have a bearing on reality (# of colours is a typical one) it does help build up a better overall picture of a game currently surprisingly ill-documented for a Sega title.

Also, why would an old man in a bicycle travels across the World and the USA kinda like a baby driving a Corvette in Cruisn Exotica? And whats up with Goku-wannabe in China and Dracula in Romania distracts the race? Are they going to attack me or something? :P

I’ve been following the progress of this game, and I am just in awe with the dedication of the MAME devs and Haze have in regard to getting the emulation right.

Not only that, this game has actually shown me MAME’s philosophy of emulation and with the examples shown here it shows why you guys take the purist’s route.

The geeky side of me will want to read the source code for the drivers for this game just so I can be completely bowled over by your work!

Sorry if this sounds over slushy (LOL)

I gave it a try and it ran perfectly fine on my old Core2Duo 3Ghz. Great job the game is a fantastic update of Outrunners, I imagine there’s a huge amount of work to get there and I’m just full of admiration for all that.

Hey man, don’t diss Crusin’ USA. That game rocked the arcades over here for years, and so did Cruisn’ World. And they still hold up today in a “so bad it’s good” way.

Woah… Look slike OutRunners on Steroids :)
Really nice progress!

Hey sat keep up with Model 2 and Model 3 net emulation for Bart!

Houston and Texas? Wasn’t Sega checked back at the Geography of America? It’s like saying Los Angeles as a city while Caliornia is a city!!

well the Loch Ness Monster is apparently in England, and Spain also has parts of Holland in it I think…

so no, I don’t think Geography was the strong point here ;-)

Houston is an interesting stage with the moon part anyway, Texas is more or less a filler stage with a bunch of Oil Refineries and trains with oil tankers.

Ol’ Nessie has upped roots and moved?

The Scottish aren’t gonna be best pleased with the English (again!!) Although would explain the M25 today LOL

I just gave Cool Riders a try in MAME this evening – and it plays like an even wackier version of OutRunners and the Cruis’n series. This game is so silly – even the crash and “game over” animations are so messed-up.

When I tried to edit most of the Wikipedia article this morning, I could not come up with the names of some of the riders until I played the game for the first time in MAME.

Gameplay-wise, LoveMachine and I.C.B.M. (the first two bikes I tried) reminded me of Speed Buster and Bad Boy from OutRunners. (I used a PlayStation 3 controller to master those ultra-tight corners…I.C.B.M. almost made me lose it angrily – the bike is SO HARD TO CONTROL!!!)

Oh, and WHY is the CPU controlled DAI-OH so hard to beat in the Extra Stage? I came SO close to beating him and his kid *twice* at the end using the two bikes as described above.

There’s also a Sonic reference in this game! His head is one of the icons on the name entry screen as well as his friend Tails.

Crazy characters, crazy digitized graphics…where do they get all this?

He got it from Guru.

Haze, with this last series of articles you’ve reached a milestone, because you’ve begun to start really explaining what you’re doing as you go along. You’ve gone above even pseudo code, to exposing concepts, methods, lines of reasoning.

With a slight shift of focus you would be in magazine-article land. Perhaps now still a bit opaque to non-programmers, but it seems your most intended audience, i.e. people who could reinvigorate UME development, know exactly what you’re saying.

So I’ve been reading this blog since the beginning, which hasn’t been that long :) and I’m declaring this a high point.

And one more thing, the time you take making screenshots and videos is amazing. That sh*t takes a lot of time. I know, believe me. It’s something you could easily slack on. But, obviously, you know how important it is to document your progress in a compelling fashion. You know that the words and pictures you take the time to compile now will be available as a reference to all for innumerable years to come. And, most importantly, you know it serves as inspiration and motivation for programmers and other contributors right now.

Or maybe I’m just projecting my awesome personal qualities onto you. Oh yeah. LOL

PS did you catch how I said “UME development”? Do you know why I wrote that? Because “UME” is so much easier to write than “MAME/MESS”.

As an end-user, I still haven’t begun to use the MESS side of UME, for various reasons. But in my mind the development part is certainly unified. It’s a meme, derived from logic, that you originated, and sold with persistence. Carry on.

Here are the movie references on this game.

The pirate ships in the West Indies are a spoof to Pirates of the Caribbean.

The Dracula and the haunted castle in Romania is a parody of Bram Stoker’s Dracula.

The floating guy in the China stage reminds me of the First Dragonball.

England stage reminds me of Braveheart or Beowulf lol

Any Bruce Lee parody in Hong Kong?

I’ve done detailed updates etc. for this game because to me it’s a rather important one. H1 is the final Sega ‘2D Scaler’ hardware, and Sega hardware tends to have lot of little quirks and useful hardware ideas to talk about.

H1 is no exception, and by talking about it you get some insight into how it remained unemulated for so long, and even if progress ended up happening very quickly in the end a lot of that was because already emulated Sega platforms have given us certain expectations when it comes to likely features etc. even if this one is totally unique in several ways.

There are definitely other features of th hardware this game doesn’t use, I’d put a bet on the tilemap having the usual Sega paging system but this game just sets what looks like a linear map at startup and leaves it at that.

In the end real 3D hardware won, and this had no real place in the market, but there must have been a level of belief within Sega that there was a future to sprite scalers for the level of investment clearly involved with this platform.

Obviously if I’m looking at something which is “very basic tilemap + very basic sprites, emulated in half an hour” then I can’t do updates like this ;-) but from a hardware point of view this one is special, and it’s Sega, so it captures the imagination of people a bit too. Figuring these things out can be a combination of frustration and fun, I hope the updates reflect that. Much like Little Robin (where I also put up multiple videos) this one was definitely the source of frustration for a long time, so to have everything start slotting into place was a great feeling.

Is this game popular in Japan? Because I heard that the Japanese are not interested with digitized sprites as much as America did.

I can’t speak for Japan, but I never saw one of these machines in the US and I was in arcades a fair amount in 94/95/96 when Sega owned racing.

And yes, CR’s geography is about as accurate as Super Amazing Wagon Adventure’s.

I’ve seen it in the UK, more than once. Although according to that other Sega Wiki it was never released in Europe :-p

Region is selectable US/Japan/Other anyway, like a lot of the Model 2 stuff.

The audio channel must be setup the same thing as outrunners on System 32: example, player 1’s audio is on the left side while player 2’s on the right. Its just to avoid the overlapping audio in both sides

> Sorry if this sounds over slushy (LOL)

Nobody thanked me on all your effing comments, and if it wasn’t for me the game was either black screen or an acid trip.

So to me the “slushy” sound stands till 2020 at very least. End of story.

I kind of miss sprite scalers, their distinctive look and feel. Imagine the kind of sprite scaling racer they would be able to make nowadays with current gen-tech. Waiting for your mail btw Haze ;) and hey Arbee, you’re also somewhat of a hero to me, I’ve been a passive MAME user for well over ten years (since the Nicola Salmoria days even).

Thanks for everything Kale! We all recognize this is a team effort. It’s just that, well, this is Haze’s blog, so most replies are directed toward him.

I’ll bookmark your blog and get in the habit of going there too.

(Which is BTW at http: // mamedev.emulab.it/kale/)

Hey Kale, don’t take it too personal, I guess most didn’t read the whole thing.
Thanks for all the hard work not just on this, but for everything else. Same goes to Haze, thanks.

We used to have this in the arcade I used to work at.
It was a lot of fun. We also had a bunch of strange prototypes and imports for market and game testing.

Hey Kale, don’t feel left out – you deserve just as much credit as the next MAMEdev – I’m particularly impressed with what you’ve achieved with the Seibu COP protection so far.

In my defense (albeit a bad one) the only rss feed from MAMEDEV seems to be from this blog, so I (wrongfully) took this blog as a one person journey, unfortuanatly I tend to speed read therefore missing out on some points.

My bad :(

* rrs feed that outoook picks up (sorry if this looks like spamming)

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