Cannonball - Enhanced OutRun Engine Released

Discussion in 'Game Development General Discussion' started by djyt, Dec 4, 2012.

  1. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    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.
    :smile-new:
     
  2. Mqark

    Mqark Robust Member

    Joined:
    Mar 24, 2006
    Messages:
    244
    Likes Received:
    7
    Can you post a video of it running (I don't want to download the code + ensure I have the correct rom just to get a quick feel for the work).
    Has anyone provided any alternate courses or graphics for it yet?

    It would be really interesting to see this getting developed with new courses and game modes. Some form of RPG road trip driving game could be interesting.
     
  3. Rabid Peanut-Butter

    Rabid Peanut-Butter <B>Site Supporter 2013</B><BR><B>Site Supporter 20

    Joined:
    Nov 20, 2004
    Messages:
    557
    Likes Received:
    1
    Very cool! Do you have plans to support Turbo Outrun, which ran on the same hardware? Or even tackle other sprite scaling games like Galaxy Force, G-Lock, etc?
     
  4. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    Given that it took 3 years of part-time work to get this including the decompilation and rewrite then no. The fact that they run on similar hardware doesn't speed things up that much.

    My short term focus is adding a ton of options and turning it into more of a user facing experience.

    No new courses or graphics yet - it's only been out a day. I do plan to integrate the Japanese courses though at some stage. And a level editor would be a cool project.
     
  5. aksfdkd

    aksfdkd Member

    Joined:
    Jul 3, 2010
    Messages:
    9
    Likes Received:
    0
    are there plans to port the new configurables to the service menu for the arcade games or Outrun Enhanced Edition?
     
    Last edited: Dec 6, 2012
  6. Guaripolo

    Guaripolo Spirited Member

    Joined:
    Jun 6, 2010
    Messages:
    123
    Likes Received:
    0
    i've compiled and tested it, !!!it's an AWESOME work!!!! ¡¡¡THANK YOU!!!
     
  7. aksfdkd

    aksfdkd Member

    Joined:
    Jul 3, 2010
    Messages:
    9
    Likes Received:
    0
    you mean you compiled it back to the chip form and put it back in the machine? If so how do you do that. thanks.
     
  8. GodofHardcore

    GodofHardcore Paragon of the Forum *

    Joined:
    Mar 31, 2007
    Messages:
    11,821
    Likes Received:
    454
    I hope some unique hacks of outrun show up soon. It's my favorite pre sonic Sega game.
     
  9. Guaripolo

    Guaripolo Spirited Member

    Joined:
    Jun 6, 2010
    Messages:
    123
    Likes Received:
    0
    nope, i've downloaded the source and compiled it in GNU/Linux
     
  10. aksfdkd

    aksfdkd Member

    Joined:
    Jul 3, 2010
    Messages:
    9
    Likes Received:
    0
    i see. congrats on that.
     
  11. Guaripolo

    Guaripolo Spirited Member

    Joined:
    Jun 6, 2010
    Messages:
    123
    Likes Received:
    0
    well, now i've done a preliminar port for Dreamcast. It runs fine, but pretty slow (about 3-4 fps), seems like some optimization needs to be done.
    Captura de pantalla - 010113 - 03:34:50.png
     
  12. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    It's cool that you tried this.

    It may be worth chatting to ptitSeb who ported the engine to the Pandora handheld. His initial version was very slow, but then he managed to figure out a bunch of compiler specific optimisations that got it running at 60fps.

    http://repo.openpandora.org/?page=detail&app=cannonball_ptitseb
     
  13. Guaripolo

    Guaripolo Spirited Member

    Joined:
    Jun 6, 2010
    Messages:
    123
    Likes Received:
    0
    i'm working with an old version of cannonball, i see that some optimizations were done to the drawing, so i'm integrating them into the port, lets see if it can improve the performance a little.
     
  14. Jamtex

    Jamtex Adult Orientated Mahjong Connoisseur

    Joined:
    Feb 21, 2007
    Messages:
    5,472
    Likes Received:
    16
    Thanks for the Enhanced Out Run ROMs, it is so nice to be able to save the High Score table, have a good Free Play mode (I originally screwed a Microswitch to the coin mech so when the coin return button was pressed it added a coin....), and have a KM/H setting. Although I did remove the music continues playing fix as that is what I expect Outrun to do, it is like an extra atrract mode, "Yes no one is at this machine, listen to the mind blowing music, you know you want to play me..." and put back the sea sounds for the radio screen as again I expect it. As the ROMs can only be used in a Upright or Cabinet machine anyway, why not use Dip Switches 1&2 on bank 2 to allow people to change these? :)
     
  15. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    The ROMs can be used in all versions of the coin-op, not just upright and cabinet.... they will work with the sitdown machine too. :)
     
  16. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    Also, regarding the Dreamcast - there may be a few other things to try:
    - Ensure the screen is not being scaled (set scale to 1 and stretch to off)
    - Try changing the SDL rendering settings to whatever is fastest on the DC in sdl/video.cpp (HW_SURFACE / SW_SURFACE) and bits per pixel.
    - Compile with sound disabled to check the performance impact (flag is in globals.hpp)
    - Lock the engine to 30fps. Kind of obvious, but hey.
    - Turn on all compiler optimisations (-Ofast etc.)
     
  17. PrOfUnD Darkness

    PrOfUnD Darkness Familiar Face

    Joined:
    Mar 13, 2004
    Messages:
    1,121
    Likes Received:
    48
    Did you document the bugs you found?
     
  18. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    Most of them:
    http://reassembler.blogspot.co.uk/search/label/bug

    Other fixes include:
    - Incorrect time displayed during Extend Time section
    - Misplaced tile on music selection screen
     
    Last edited: Jan 2, 2013
  19. PrOfUnD Darkness

    PrOfUnD Darkness Familiar Face

    Joined:
    Mar 13, 2004
    Messages:
    1,121
    Likes Received:
    48

    Cool nice read!

    I hope someone port it to android someday.
     
  20. djyt

    djyt Member

    Joined:
    Dec 2, 2012
    Messages:
    10
    Likes Received:
    0
    Not as such. Many of the new options (60fps, widescreen, extra level objects etc.) wouldn't be possible on the original hardware.

    It's also tricky hacking changes into the original game as it currently stands. Ideally, I need to get my decompilation compiling to make it easier to edit the assembler. But that would be a time consuming project for what would amount to a relatively small number of changes...
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page