Cannonball - Enhanced OutRun Engine

A place where you can chat about anything that isn't to do with games!
User avatar
SunJammer
Posts: 142
Joined: Tue May 24, 2011 5:54 pm
Location: Seattle, WA

Cannonball - Enhanced OutRun Engine

Post by SunJammer »

this is awesome -
Reassembler wrote:I'm delighted to announce the release of Cannonball; a portable C++ OutRun engine. This is the product of many years of reverse engineering, hacking and debugging.

ImageImage

The entire OutRun codebase has been decompiled and rewritten from scratch in C++. This extends to the Z80 sound program code and therefore full audio is supported.

Not only that, but the game now runs at 60 frames per second and many bugs present in the original code are eradicated.

This is just the beginning. Future releases will include a full menu, proper control, video & audio configuration plus an array of options and game modes not present in the original game.

I'm hoping to find OutRun enthusiasts who will port Cannonball to a variety of platforms. I'd love to see Linux, Mac, Wii, Raspberry Pi and other platforms supported. I will facilitate serious offers of help. We can ensure that any changes make it into the master branch, so it's easy to keep ports up to date.

The codebase isn't perfect; the original code from 1986 can prove messy and inconsistent. Some of this is naturally carried through to the rewrite. For now, the focus has been on the accuracy of the conversion, at the expense of serious refactoring. But that's not to say this isn't a viable future goal. And I've been working on this long enough, it's time to release.

Why do this? Because I love OutRun, and no one else would have done.
homepage:
http://reassembler.blogspot.co.uk/p/can ... ngine.html
User avatar
Obiwanshinobi
Posts: 7463
Joined: Sun Jul 26, 2009 1:14 am

Re: Cannonball - Enhanced OutRun Engine

Post by Obiwanshinobi »

My, I was just thinking about Coast 2 Coast (and western takes on Sega games, particulary OutRun 2006 and SMB Jr.).

Much like with the SoR remake, I expect Sega to politely let them finish their job, then say "stop" (when everything's out anyway) and let the ageing Sega kids do the internet bitching.
I like the idea of this being on the Wii. How about the GBA port?
The rear gate is closed down
The way out is cut off

Image
User avatar
louisg
Posts: 2897
Joined: Wed Jul 20, 2005 7:27 pm
Location: outer richmond
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by louisg »

WOW! I may have to link to this from my pseudo 3d roads page (http://extentofthejam.com/pseudo).

EDIT: Just realized you're not the original author.. but.. Holy damn! I am blown away. This kind of commitment puts my short attention span to shame.
Humans, think about what you have done
User avatar
null1024
Posts: 3811
Joined: Sat Dec 15, 2007 8:52 pm
Location: ʍoquıɐɹ ǝɥʇ ɹǝʌo 'ǝɹǝɥʍǝɯos
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by null1024 »

Hrm. The legality of this is... non existant, because it was remade from disassembly, even if it doesn't provide original game rom data for Outrun. If you could do that legally, the ReactOS team would have just done that with Windows and called it a day.

Sega mightn't care though, Sonic Retro hasn't been sent C&Ds, and they have complete split disassemblies on SVN. Sega is weird like that.
Come check out my website, I guess. Random stuff I've worked on over the last two decades.
User avatar
Obiwanshinobi
Posts: 7463
Joined: Sun Jul 26, 2009 1:14 am

Re: Cannonball - Enhanced OutRun Engine

Post by Obiwanshinobi »

I think Sega do care, but not being sore losers, they don't mind. The point at which they said "no" to the SoR remake speaks volumes. Those developers weren't stealthy while still working on it, were they?
I guess now it's Nintendo's turn to get schooled by amateurs.
The rear gate is closed down
The way out is cut off

Image
User avatar
1up
Posts: 1105
Joined: Thu May 25, 2006 7:50 am
Location: Denmark

Re: Cannonball - Enhanced OutRun Engine

Post by 1up »

While I find the whole proces very interesting I can't see what the point is? Isn't mame already out on every imaginable device?
User avatar
Obiwanshinobi
Posts: 7463
Joined: Sun Jul 26, 2009 1:14 am

Re: Cannonball - Enhanced OutRun Engine

Post by Obiwanshinobi »

It is a port. Runs at 60 fps (Saturn port already could do that). Can be enhanced without romhacking. Last but not least, I assume it has lower system requirements and is more faithful (higher framerate notwithstanding) than emulation.
I'm not sure how it deals with scaling the graphics up to modern resolutions (whether it's fullscreen post-processing or something groovier), but I wouldn't be surprised if it simply looked better on LCD than MAME can.
The rear gate is closed down
The way out is cut off

Image
PC Engine Fan X!
Posts: 8552
Joined: Wed Jan 26, 2005 10:32 pm

Re: Cannonball - Enhanced OutRun Engine

Post by PC Engine Fan X! »

The GBA port of OutRun runs at a silky-smooth 60fps framerate...looks great running on a low-res 15kHz arcade monitor with a Gamecube + GB Player + modded JPN D-Terminal cable to VGA output plugged into an Ultracade uVC + the usual candy cab setup = priceless. Even though the GBA's res is 240 x 160, it's still impressive nevertheless.

PC Engine Fan X! ^_~
Last edited by PC Engine Fan X! on Fri Dec 07, 2012 11:35 pm, edited 1 time in total.
User avatar
louisg
Posts: 2897
Joined: Wed Jul 20, 2005 7:27 pm
Location: outer richmond
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by louisg »

1up wrote:While I find the whole proces very interesting I can't see what the point is? Isn't mame already out on every imaginable device?
The thing that's most interesting about this is if you're a programmer and interested in how old games work. It's open source, and it's pretty clean code. While before you could always disassemble a game like the author did, that is extremely hard and tedious to read through. He took it a few steps further and actually rewrote it in an easy-to-digest form, which I think is a great service.

It also will enable OutRun fans to modify the game, so maybe we'll see something creative come out of this.
Humans, think about what you have done
User avatar
Obiwanshinobi
Posts: 7463
Joined: Sun Jul 26, 2009 1:14 am

Re: Cannonball - Enhanced OutRun Engine

Post by Obiwanshinobi »

Fully featured (down to PS2-PSP connectivity) Coast 2 Coast ported to this engine for the heck of it is not utterly unthinkable.
Didn't know about the GBA port. Colur me interested, OutRun being about the only Super-Scaler game I fancy playing rather than watching.
GBA is jolly good at sprite scaling (see SMB Jr.) and digital controls could be less of a downgrade than you'd think (see SMB Jr.). Shame about the sound (straight porting hardly ever does it justice on GBA).
The rear gate is closed down
The way out is cut off

Image
User avatar
louisg
Posts: 2897
Joined: Wed Jul 20, 2005 7:27 pm
Location: outer richmond
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by louisg »

Obiwanshinobi wrote:Fully featured (down to PS2-PSP connectivity) Coast 2 Coast ported to this engine for the heck of it is not utterly unthinkable.
Yeah, it's been ported a few times by Sega-related groups, but I *assume* at that point that they were porting it from commented code-- if not the arcade source, then some other version which may have shared a lot of the same ideas. I could be wrong. But what makes this so impressive is that it's an independent effort that didn't have that benefit.
Humans, think about what you have done
reassembler
Posts: 6
Joined: Sat Dec 08, 2012 5:23 pm

Re: Cannonball - Enhanced OutRun Engine

Post by reassembler »

Hi all,

Just to clear up some stuff that was posted.

louisg: Love your road page. Wish I'd come across that before I started the porting work. The road code is one of the weaker elements of the codebase, so you may be able to help clean it up somewhat... :)

PC Engine Fan X: The GBA version of OutRun is not a port sadly, it's what I'd call an interpretation of the original. According to a post I read on sonicretro, the programmers were not provided with the original codebase. The GBA version plays nothing like the original as a result. Lots of the things that make OutRun feel right simply aren't there. From memory, the road traffic is quite dumb and doesn't attempt to change lanes to avoid you, as per the original. That's just one example.

The only two genuine ports of OutRun are the Saturn version and the codebase used for the Dreamcast GameWorks/Shenmue release - which is also used as the basis for the Xbox unlockable game in OutRun 2.

The Dreamcast version has a bunch of graphical changes and other quirks (including a different car due to the Ferrari licensing), some of which are carried forward to the Xbox conversions. The music is also rendered differently. The Xbox conversion also isn't true to the original, and reintroduces some bugs present in the arcade game that are bizarrely fixed in the Saturn conversion.

I suspect the Saturn version was largely converted with some sort of automated tool, due to the Saturn hardware being an evolution of the super-scaler arcade hardware. This could also be the reason we've never seen this version reused, as it was probably a portability dead-end.

With the state of the Ferrari licensing continually hindering new versions of OutRun, and Sega's Xbox/Dreamcast engine being a bit crap (IMO) it was time to fix the problem once and for all!

Don't forget this is really a springboard for lots of other work. Imagine a proper widescreen mode. Imagine a cool level editor. Imagine ghost racing. I can't promise any of this stuff quickly, but it is all possible now.

I'd also argue that MAME really isn't that portable to low-end systems, and a game such as OutRun is going to struggle to hit 30fps on a Raspberry Pi and some older handhelds. Hopefully this means we get a slick version of OutRun on a lot of systems.
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

I used cannonball-v011-mingw32.zip
I had to put rev b and rev a in the roms folder before getting it to work.
This is awesome. The guy even fixed some bugs. Can´t wait for alternate hacked levels.
How about analog steering support? Can the colors of the cars be changed?


Also for you outrun heads, it is possible to force the Sega Ages v.13 Out Run to 16:9
http://psx-scene.com/forums/f293/ps2-wi ... ndex7.html
I play it on a real ps2 console in widescreen. Even though it is not the best Out run out there, playing it in widescreen is an awesome feature. Loads of 3D ps2 games can be force to widescreen either with hex edits or using cheat coding software like ps2rd.
User avatar
Obiwanshinobi
Posts: 7463
Joined: Sun Jul 26, 2009 1:14 am

Re: Cannonball - Enhanced OutRun Engine

Post by Obiwanshinobi »

How's that any better (less deformed) than stretching the picture via TV settings? The resolution isn't really higher after all (I think among last gen consoles, only the first Xbox - in SOME games - outputs "true" widescreen).
Phony widescreen (anamorphic) can be found in some N64 (Jet Force Gemini) and Saturn (Panzer Dragoon Zwei) games. I am not impressed.
The rear gate is closed down
The way out is cut off

Image
reassembler
Posts: 6
Joined: Sat Dec 08, 2012 5:23 pm

Re: Cannonball - Enhanced OutRun Engine

Post by reassembler »

I'm looking to implement a true widescreen mode (no stretching) in the future. For now the engine adds borders in full screen mode unless you specify otherwise.
ZellSF
Posts: 2659
Joined: Mon Apr 09, 2012 11:12 pm

Re: Cannonball - Enhanced OutRun Engine

Post by ZellSF »

Phony widescreen (anamorphic) can be found in some N64 (Jet Force Gemini) and Saturn (Panzer Dragoon Zwei) games. I am not impressed.
Jet Force Gemini is letterboxed, not anamorphic. You can imagine how nice N64 letterboxed 240p widescreen looks on a modern HDTV :P
How's that any better (less deformed) than stretching the picture via TV settings? The resolution isn't really higher after all (I think among last gen consoles, only the first Xbox - in SOME games - outputs "true" widescreen).
You could say the same about DVDs.

How is watching widescreen DVDs better than watching the 4:3 versions and have your TV stretch them to widescreen, the resolution isn't really higher after all.

And before you ask, yes that hack posted makes the game anamorphic widescreen, it does not simply stretch the game.
I'm looking to implement a true widescreen mode (no stretching) in the future. For now the engine adds borders in full screen mode unless you specify otherwise.
Is it complicated to add? Really looking forward to this.

Wish more games had as dedicated fans as you (or alternatively more developers cared as much about their own games as id software).
User avatar
gameoverDude
Posts: 2269
Joined: Wed Jan 26, 2005 12:28 am
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by gameoverDude »

louisg wrote:
1up wrote:While I find the whole proces very interesting I can't see what the point is? Isn't mame already out on every imaginable device?
The thing that's most interesting about this is if you're a programmer and interested in how old games work. It's open source, and it's pretty clean code. While before you could always disassemble a game like the author did, that is extremely hard and tedious to read through. He took it a few steps further and actually rewrote it in an easy-to-digest form, which I think is a great service.

It also will enable OutRun fans to modify the game, so maybe we'll see something creative come out of this.
The latter possibility is interesting. A version with the tracks from SMS Out Run 3-D wouldn't be bad. OR 3-D looks like a mix of original OR tracks and some new ones.

@Reassembler: Good work on Cannonball.

JFTR, Road Rash shames a lot of other Sega Genesis titles with its realtime sprite scaling. So does Street Racer. It looks to me that the cart versions of Super Hang-On and Super Thunder Blade don't push the Genesis like they should have. Sega took a cheap way out with pre-scaled sprites and it shows in the choppiness. RR and SR look a lot smoother. Sega really needed to whip up a good SW scaling engine on 16-bit, even if they'd have to cut down sprite sizes to avoid overtaxing the Genesis.

Power Drift could probably have been done on Genesis as a 12 Meg or higher cart. The tilt would definitely be taken out, and there'd be major sprite size reductions and fewer roadside objects. It's pretty sad that the Genesis wasn't given a chance when the lowly C64 pulls off a game that captures the arcade gameplay and speed decently given the system limits.
Kinect? KIN NOT.
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

gameoverDude wrote:RR and SR look a lot smoother.
Ridge Racer & Sega Rally? Well, they´re 3D
Thanks for the Street Racer vid. I remember hearing good things about it in the pre-youtube era. This is the first time I see it in motion! Looks pretty impressive.
Thanks for the info on the genesis ports.

Also for the cannoball, would it be possible to change the music and sound effects?
I do hope we´ll see some remixed versions as well.
And analog steering support. Those ps2 controller to usb adapters are cheap enough. hint.
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

reassembler wrote:I'm looking to implement a true widescreen mode (no stretching) in the future. For now the engine adds borders in full screen mode unless you specify otherwise.
I´d very much like to do testing for future features. Let us know if there are test builds. I like testing software and I like outrun very much. Great news about the Pandora port http://reassembler.blogspot.co.uk/2012/ ... -port.html Crazy news to hear about the break in. Take care. Your work is really appreciated.
User avatar
gameoverDude
Posts: 2269
Joined: Wed Jan 26, 2005 12:28 am
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by gameoverDude »

D wrote:
gameoverDude wrote:RR and SR look a lot smoother.
Ridge Racer & Sega Rally? Well, they´re 3D
Thanks for the Street Racer vid. I remember hearing good things about it in the pre-youtube era. This is the first time I see it in motion! Looks pretty impressive.
Thanks for the info on the genesis ports.
Oops... no reference to 32-bit games intended. Actually, I meant Road Rash & Speed Racer on Genesis being compared to Super Thunder Blade & Gen Super Hang-On.
Similarly, Space Harrier II should've been smoother. While SH2 is playable and not near the sluggish choppy mess of Super Hang-On's 16-bit port, the pre-scaled sprites kind of detract a little.
Kinect? KIN NOT.
reassembler
Posts: 6
Joined: Sat Dec 08, 2012 5:23 pm

Re: Cannonball - Enhanced OutRun Engine

Post by reassembler »

ZellSF wrote: Is it complicated to add? Really looking forward to this.
As it turned out, no. I managed to implement the entire thing in a day. Which surprised me.

The background tilemaps proved the most troublesome area, but I found an easy solution.

ImageImage

Enjoy guys.
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

reassembler wrote: As it turned out, no. I managed to implement the entire thing in a day. Which surprised me.The background tilemaps proved the most troublesome area, but I found an easy solution. Enjoy guys.
:shock: :shock:
You are incredible & god. I bet you can make a 1080p version of the game. The sprites would need to be redone in HD. And OutrunHD is born. But that´s asking for too much. Outrun169 is great! The config.xml is so easy to use. I need the deluxe cabinet, put in the biggest plasma I can find and make this run on the original hardware. Could it be done? It plays great in 16:9 btw.
Incredible. Back to play so more :D
reassembler
Posts: 6
Joined: Sat Dec 08, 2012 5:23 pm

Re: Cannonball - Enhanced OutRun Engine

Post by reassembler »

The thing is, I'm not a big fan of the idea of remaking OutRun with new graphics although I certainly wouldn't want to stop anyone from trying. I love the original pixel art; for me it's a massive part of the experience and I don't want it changed.

I'm up for doing anything that enhances the original game whilst retaining it's vibe. (higher fps, widescreen, more game modes, japanese track selection, level editing etc.)

The config.xml is just a temporary solution. Eventually, they'll be a proper front-end menu. But you can still edit the xml if you want.

If you want to build an OutRun style cab with a PC in it, you should check out what this guy has done:
https://www.facebook.com/OutRunAndSpace ... as?fref=ts

This is a replica cab built from scratch with a PC in it:
Image
User avatar
louisg
Posts: 2897
Joined: Wed Jul 20, 2005 7:27 pm
Location: outer richmond
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by louisg »

Hi reassembler! I wanted to say that I think your work is fantastic. A track editor might be almost as educational as the source code itself-- that'd be great.

gameOverDude, if you want your mind blown by Road Rash, check out the SMS version. It ditches the realtime scaling, but other than that, is very close to the Genesis one. It makes me think RR could've ran really fast on the Genesis if they'd cut down a little on the fx!
Humans, think about what you have done
User avatar
Enemy
Posts: 314
Joined: Wed Nov 10, 2010 3:09 pm
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by Enemy »

Very nice, would like to see someone put scanlines and maybe some video filters in this baby.
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

I would love to be able to make some color changes.
Blue testa with red haired babe? maybe
The trucks with gray or black or white with dirt (you know how trucks get dirty)
But OutRun is perfect the way it is. I just want to see how it looks with some subtle color changes.
Since Turbo OutRun runs on the same hardware, it might have some similarities.
Or did AM2 rewrite everything when developing Turbo OutRun?
http://www.system16.com/hardware.php?id=697
The pcb looks amazing, two layers of raw Sega power.
I am fascinated by OutRun. I had the Saturn version, modded running 60hz & RGB out, enabled the 60fps mode playing with the analog Night controller and also Yu Suzuki´s Game Works on the Dreamcast.
Now I just have OutRun2SP & Sega Ages OutRun for the ps2, which is not as bad as people claim, could have a been a hell of a lot better, but still.
Also OutRun Coast to Coast for the pc.
Back in the days a buddy of mine had the c64 port, which was okay. At home we had the Spectrum version. One day I have to get a Japanese Sega Master System (FM sound chip) & play OutRun & OutRun 3D with nice fm music.
Best logo ever:
http://bp1.blogger.com/_84--XCXrG7Y/SJG ... n_logo.jpg
Now my desktop background
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

New version!
http://reassembler.blogspot.co.uk/2012/ ... ystem.html
download here:
http://reassembler.blogspot.co.uk/p/can ... ngine.html
Now you can even have your own music! And loads of other new options like joypad support (I had to use joy2key before)
Here´s the music I´m using!
<custom_music>
<!-- Magical Sound Shower Replacement -->
<track1 enabled="1">
<title>Turbo Out Run - Who Are You</title>
<filename>01_Turbo Out Run [Who Are You].wav</filename>
</track1>
<!-- Passing Breeze Replacement -->
<track2 enabled="1">
<title>Turbo Out Run - Rush a Difficulty</title>
<filename>02_Turbo Out Run [Rush a Difficulty].wav</filename>
</track2>
<!-- Splash Wave Replacement -->
<track3 enabled="1">
<title>S.S.T. Band - GP Rider [Time Attack]</title>
<filename>03_S_S_T_ Band, GP Rider [Time Attack].wav</filename>
</track3>
<track4 enabled="1">
<title>LAST WAVE (OUT RUN)</title>
<filename>04_LAST WAVE (OUT RUN).wav</filename>
</track4>
</custom_music>
Works great. Now tranferring to laptop to play on 50" plasma. joy!
reassembler
Posts: 6
Joined: Sat Dec 08, 2012 5:23 pm

Re: Cannonball - Enhanced OutRun Engine

Post by reassembler »

Good stuff, glad you got the music replacements working! :D

I'm working on getting the Japanese course layout and alternate tracks included next.
User avatar
jonny5
Posts: 5081
Joined: Sat Feb 16, 2008 5:48 pm
Location: toronto

Re: Cannonball - Enhanced OutRun Engine

Post by jonny5 »

Awesome!! Was messing with this the other night and ended up giving up as I couldn't get joy2key to work with my windows 360 pad, and didn't feeling like installing xpadder.

Will check this out today.

Thanks for all the work on this!!

Oh, and for those looking for good music to use with this, I would highly recommend Laserhawk's album, Redline. Awesome music inspired by Outrun. It would be perfect for this!
User avatar
D
Posts: 3744
Joined: Tue Feb 01, 2005 3:49 pm
Location: Almere, Netherlands
Contact:

Re: Cannonball - Enhanced OutRun Engine

Post by D »

Post Reply