All Beauty Must End

Yesterday, I implemented the last remaining bit Urban Runner needed for 16bit graphics support, making all my dithering exploits useless. 🙂

After ScummVM got 16bit support for GSoC 2009, I chose to wait a bit before adapting the gob engine, since a lot of other code was entangled into the problem, including the CoktelVideo classes and the Indeo3 decoder.
But then clone2727 came along and completely revamped the VideoDecoder interface, making it 16bit-ready. So I rewrote the IMD/VMD classes to fit that interface accordingly. Next, I rewrote the gob engine drawing functions to support 16bit surfaces as well, and plugged everything together to get Urban Runner’s Indeo3 VMDs running in 16bit colour mode.

Unfortunately, I then hit a road block. One big thing still missing for a full 16bit Urban Runner experience was still high-color non-Indeo3’d VMD videos. I tried several approaches, but after the CoktelDecoder rewrite, they either didn’t work anymore or were dead-ugly. Becoming frustrated quickly, I started several other projects, handled some RL problems, etc., basically stopping working on it completely for several months.

Until yesterday. I found a way to implement the missing pieces, fixed a few smaller issue, and can now lay all that all to rest. So, I officially declare my dithering “series” dead :P.

Now, what’s next?
First of all, the one big problem in Urban Runner, the hotel lock-up, is still present. However, a guy by the handle of SylvainTV took a good look and gave me some valuable hints: The videos are supposed to play “in the background”, while the script execution continues. According to him, he hacked in a small proof of concept, and with that, the lock-up is gone. Of course, I need to find the proper way of hooking that into the engine, otherwise I invite all hell of strange bugs :P. I already have a few suspicious I need to check out.

Another glitch that’s bugging me is how the sprites aren’t completely correct yet. All sprite data in Urban Runner is in YUV (or YUV840, I guess you’d call it, since each 4×4 block of Y has one U and V value) and I apparently haven’t figured the exact format out yet. As you can see in the following screenshot, it looks like one colour channel is a bit offset to the lower right. The original does not feature that glitch, so it’s obviously my fault. 😛

Urban Runner menu, 3x magnified, showing a colour channel glitch

Urban Runner menu, 3x magnified

Anyone who might me interested in looking over my code and fiddling a bit with it, please contact me. 🙂

UPDATE: Thanks, again, to SylvainTV, the YUV glitch is fixed. 🙂

Urban Runner menu, 3x magnified, showing no colour channel glitch

Urban Runner menu, 3x magnified, fixed

10 comments

  1. After falling for clone 2727’s Urban Runner April Fools last year I made certain by checking the calendar that it wasn’t April 1st already.
    I got as far as the hotel with a Wii build of ScummVM. !990s live-action game on a 92 cm TV. A strange experience.

    • In the current trunk, you can even complete Urban Runner now. 🙂
      There’s still some graphical glitches, and you shouldn’t switch more than once between Max and Adda in the Cemetary/Lab screens, though. 😛

      • Just read the ScummVM news posting.
        In the coming week I’ll find some time to (urban) run through the game. Grab some screenshots to upload and note problems (if any.)
        I’ll bear in mind what you said about the Cemetary/Lab.
        Thanks Doctor – and SylvainTV.

  2. Thanks a lot to DrMcCoy & SylvainTV for your work on Urban Runner. I really love this game !

    Using version 1.3.0svn55503, I managed to get beyond the hotel chapter. The little glitch on the menu is gone too.

    If screenshots are still needed, I may upload some.

  3. It is generally incredible to see exactly where technology goes and the foreseeable future of gaming is no unique. There are many cool and extremely revolutionary technologies arising. There is no way to tell which one particular will make the following major wave, but one particular issue is for positive, it will have one thing to do with getting rid of the remote as we know it!

  4. Sorry, I’m too lazy for open an account on scummvm ‘s forum…
    I’ve an italian version on Urban Runner…this message popup on console window:

    The game in ‘i:\Backup\Giochi\ScummVM\urban\’ seems to be unknown.
    Please, report the following data to the ScummVM team along with name
    of the game you tried to add and its version/language/etc.:
    {“intro.stk”, 0, “9ea647085a16dd0fb9ecd84cd8778ec9”, 1253436},

    Thank you.