Monday, January 14, 2013

Higher Resolution Mode

I'm working on running OutRun in a higher resolution using the native graphics (i.e. no new graphics are required). 

In the below screenshot, I've split the image between the original resolution scaled up (left) and the higher resolution (not using scaling). Ignore the fact that the road and background are missing for now, as this is still work in progress.

You can see that the start sign and road signs on the right are much clearer. 


This doesn't help objects really close to the camera, as the original sprite files aren't particularly high resolution to begin with. But it does help images in the distance. The Dreamcast port does something similar

OutRun actually has five copies of each sprite, manually tweaked to look as good as possible at different zoom levels. I made an initial attempt to go one step further and completely replace the lower resolution sprites with their higher resolution counterparts. But the results didn't look good. I'll keep working on this. 

13 comments:

matt said...

This is awesome.

Alex said...

I'm 98% sure that the Dreamcast version (in Shenmue II) doesn't run at a higher resolution. The higher resolution is an emulation error.

yt said...

Alex - Would it be a result of the emulators rendering the textures at a higher quality than originally intended? Anyway this can be checked (I don't know much about the current state of DC emulation).

Alex said...

It would be because Dreamcast emulators don't attempt to preserve the resolution the hardware runs at. They render at the size of the emulation window, so if the window is 640*480, it scales up the polygons rather than the framebuffer.

I got out my Shenmue II discs and save files and checked on real hardware. The signal information from my monitor says it's a 640*480 signal, but it's definitely running in 320*224 at 30 FPS. It doesn't have the color problems the picture in the link has.

Also, it doesn't simulate the max-sprites-per-line limitation, and doesn't seem to have the shadow bug or scaling bug.

For the higher resolution mode, instead of using the highest resolutions sprite all the time, have you tried just changing the distance the detail switches occur, or selecting the detail level based on on-screen sprite size? For example, use the highest detail level until you have to shrink the sprite to half its size, then switch to a lower detail version. And if that is at half size, switch to the lowest detail.

yt said...

Thanks for investigating. (My Dreamcast and VGA box are packed away).

I did experiment with changing the level of the detail switch as you mention. The initial results weren't good. But I will investigate further.

To be honest, the current hi-res approach with the sprites look s good. And you do want a certain level of blur as things are further away from the camera. But let's see.

I'm messing with the road resolution at the moment. It's more complicated than the sprites.

yt said...

After much faffing, I just finished increasing resolution of the road layer.

The results are pretty cool I must say (although I think whether you want this is quite subjective compared to something like 60fps).

It feels like you're almost playing a new/updated game at times. I'll update the image in due course...

Dave Wellington said...

3D mode coming soon :)?

yt said...

My plan after this is to move onto steering wheel and pedal support. I just bought a cheap Logitech Momo steering wheel off ebay for £30 :)

Marcus Herbert said...

Hi there,

I compiled the source for Apple Mac OS X (32bit INTeL + PowerPC, 10.5/10.6/10.7/10.8), fixed a big-endian issue, added a few lines of code, made an application from it and uploaded it here: http://www.spam-filter.de/osx/cannonball_-_the_enhanced_c_outrun_engine

Thanks for your work - I like that game very much! :D

Duobix said...

I just want to say: dude, I love you for the stuff you do. I'd be delighted to see some new features included into cannonball (choosing cars? New tracks? Some Rad Racer/Chase HQ love mode? Heart mode like OR2?) I really am looking foward for your work! :)

yt said...

Marcus - can you send me your changes, so we can roll them back into the main source tree! Thanks

http://javagear.co.uk/images/email.png

yt said...

Actually, just realised the source is included in your dmg.

Can you run a git diff against the main source tree and send me the results?

Cheers!

yt said...

@Duobix - all possibilities in the future! :)

Ideally we need to allow people to skin the game more easily than at present.