don't click here

Cannonball - Enhanced OutRun Engine Released

Discussion in 'Engineering & Reverse Engineering' started by reassembler, Dec 2, 2012.

  1. reassembler

    reassembler

    Tech Member
    23
    0
    0
    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.

    [​IMG]
    [​IMG]

    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.
     
  2. ICEknight

    ICEknight

    Researcher Researcher
    Very interesting! I'd love to see a Wii port of this.

    Do the planned video options include higher resolutions modes than the original? That would be a nice addition.



    EDIT: Watching this game running at 60 FPS is so cool... Perhaps you could try to reach SEGA, like The Taxman did with his Sonic CD project?


    EDIT 2: Just one thing, though. The "Last Wave" track can never be fully heard since it stops when the "Best Outrunners" ranking comes in.
    I don't think this happened in the original cabinet, as I used to stay sitting in there until it fully ended, when I was very little...
     
  3. reassembler

    reassembler

    Tech Member
    23
    0
    0
    Hi Iceknight.

    Higher resolution is definitely on the consideration list. The thing to remember is that a lot of the sprites and pixel art are pretty low-res to begin with. So you'd benefit from the scenario where Sprites are clearer whilst zoomed out - but not when you're close to them. I believe this is what the Dreamcast version does, so playing that on a monitor will give you an indication of the quality. The road rendering would also benefit. It's something I'd want to quickly prototype to see if it falls into the easily doable category... :)

    Last Wave music - should be a one line fix, thanks for pointing that out.

    Reaching Sega - OutRun has problems with the Ferrari license and so forth. So not sure it would be any help. Part of the reason for this project is that there hasn't been a decent version of OutRun since the Sega Saturn.

    A Wii port should be easy as I believe it has SDL available for it. Might only take a couple of hours. I'm hoping some others can take up the porting work, leaving me to focus on the core engine stuff.
     
  4. reassembler

    reassembler

    Tech Member
    23
    0
    0
    Just tried the original (both the Japanese and US release) and it's the same behaviour. I guess you misremembered?
     
  5. Truner

    Truner

    Member
    Would a PSP version be also possible? I love the idea of having old games like this natively running on different consoles.
     
  6. reassembler

    reassembler

    Tech Member
    23
    0
    0
    Yes. The PSP has SDL support, so hopefully a quick job. (I don't have a PSP though, so someone else would have to give this a go).
     
  7. Glaber

    Glaber

    Has Beaten Sonic Genesis for GBA Oldbie
    in regards to the Ferrari licence, Sonic and Sega All Stars Racing uses a simlar car for Jacky to drive. Base it on that and you should be able to get around the license like Sumo did.
     
  8. Elratauru

    Elratauru

    Little Shiny Emurralds Member
    Man, now this is cool. I'd love if we had the same thing for Outrunners though, because for me, it's the best OutRun version. That aside, holy 60fps.
     
  9. Aerosol

    Aerosol

    Not here. Moderator
    11,163
    573
    93
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    I'd like to see something like this done for the Genesis Sonic games.
     
  10. Elratauru

    Elratauru

    Little Shiny Emurralds Member
    Well...some time ago I believe that LOst made something pretty similar, I'm not sure if it used the original rom data or dissasambly but I tested a version of it and hell it was accurate...though it happened pre-Sonic 2HD and I'm gonna guess it was his starting point. I was focusing on the art so I didn't care too much about it.

    Though I agree, It would be amazing to develop a port of the engine that used the original rom data.
     
  11. Mastered Realm

    Mastered Realm

    Member
    3,828
    553
    93
    -
    Hey, I love this! Please consider adding 'Sharper Bilinear'! In which you can upsize the image to an integer value higher than the screen and then using bilinear to downscale! Looks pretty good and is the best way to filter images to non-integer scales!

    And more importantly: OGG support for remixes <3 (looping ogg would be awesome, as it's easy to read the looping tags from the metadata!).

    EDIT:
    Also: please remove the 21-character limit on the Replacement track title and fix the tile missing on the sea from the course map:

    [​IMG]
     
  12. Jayextee

    Jayextee

    Unpopular Opinions™ Member
    3,253
    60
    28
    Atro City
    I DONE MAKED GAMES.
    Any plans to support any kind of editability? You know, for cats who want to produce their own hi-def/res/octane/whatever graphics packs, or goons like myself who just want to pretend they done made an Outrun game of their own, derp.
     
  13. reassembler

    reassembler

    Tech Member
    23
    0
    0
    Yes, that's the plan in the long-run. Currently I'm finishing off the force-feedback support and then I'll probably move onto it.
     
  14. LocalH

    LocalH

    roxoring your soxors Tech Member
    Isn't that basically Taxman's Retro Sonic engine, as seen in the 2011 Sonic CD ports?

    Anyone know if he had to restrict usage of that engine after signing on to work with Sega? I don't remember if he discussed that or not.
     
  15. reassembler

    reassembler

    Tech Member
    23
    0
    0
    Without knowing much about the specifics of the project, almost certainly yes it would have been restricted by the terms of the contract.

    Did he release the source code, or was it closed source?

    My personal view is I don't see the value of a project like this unless it's open source so able to be extended and ported, and available to all (I.e. not owned by a corporation).
     
  16. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,218
    965
    93
    Long-term happiness
    I thought the engine was his entirely and that was part of the contract he signed? It's not just for Sonic titles, after all.
     
  17. The Taxman

    The Taxman

    Tech Member
    673
    7
    0
    Retro Engine & Related Projects
    Correct. Obviously, the Sonic CD specific stuff like the game assets and scripts etc are SEGA IP so that's not something I could willingly give out. Which I guess goes with Reassembler's point that unless it's fully open source and publicly available, it's not really much use :P
     
  18. Aerosol

    Aerosol

    Not here. Moderator
    11,163
    573
    93
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Not at all. I want the genesis Sonic games ported to C++. Not a nefariously accurate recreation of those games using a wonderful engine. And most importantly, I'd like to see that port being open source...like Cannonball.
     
  19. dsrb

    dsrb

    Member
    3,149
    0
    16
    But then you'd need a separate port of each game from the trilogy, and you'd have to choose whether you wanted them ported as-is, in which case the version (rev 2, etc.) you wanted, or you'd have to choose which of the various accumulated bug-fixes and refinements you wanted in each.

    If you wanted to run them all in the same engine, I.e. a maximally fixed-up S3&K, well, by the time all the work was done to make that possible, if it is, you'd practically have AeStHete or whatever anyway. :v:
     
  20. reassembler

    reassembler

    Tech Member
    23
    0
    0
    I've had access to the original Megadrive Sonic source code. It's a complete dog!

    So arguably, the SonicCD reimplementation is a better route to go down :-)

    But yes, having a fully portable and open engine is the way to go with these things, if you're not worried about the commercial possibilities.