Code Monkey home page Code Monkey logo

cannonball's Introduction

Cannonball - OutRun Engine

CannonBall is an souped up game engine for the OutRun arcade game. The original 68000 and Z80 assembler code has been rewritten in C++. This makes it possible to make improvements suitable for modern platforms, including a higher frame-rate and widescreen support. It requires the original ROMs, as these contain elements including the graphics and audio data.

Please note that I maintain the Windows build of CannonBall. Whilst I strive to ensure this is a fully cross-platform project that compiles across Linux, Wii, Mac, Pi4 etc. I do not maintain those ports. Port specific issues should be raised with the respective person.

Thank you! Chris White (Project Creator).

Getting Started

CannonBall is coded in C++ and makes use of the SDL 2 and Boost libraries.

CannonBall has been successfully built for Windows, Mac OS X, Linux, Open Pandora and the Raspberry Pi.

CannonBall can use OpenGL, OpenGLES (mobile platforms) or plain SDL2 for rendering.

I have recently deprecated support for SDL 1, to focus on SDL 2. But feel free to grab an older version from github if you need it.

  • Install your favourite C++11 environment (e.g. GCC, Visual Studio, Xcode, MingGW etc.)
  • Install CMake. This generates your platform and compiler build files.
  • Extract the Boost Library somewhere, for example: c:\coding\lib\boost_1_74_0 Note that Boost does not need to be compiled, as only the header libraries are used. This keeps things nice and lightweight.
  • Extract the SDL Development Library somewhere, for example: c:\coding\lib\SDL2-2.0.12
  • Read the SDL documentation & build the SDL Library for your system.
  • Windows only: I needed to copy cannonball/cmake/windows_copy_to_sdl2_lib_directory/sdl2-config.cmake to c:\coding\lib\SDL2-2.0.12
  • Windows only: download and install the Direct 8.1 SDK. This is used for force-feedback and a legacy from when I was using SDL 1. I should update it sometime to use SDL 2 instead.
  • Extract the Cannonball code somewhere, for example: c:\coding\cannonball
  • You may need to create a .cmake file for your system to configure specific options. See the cmake subdirectory for more details.

Build

  • Run CMake to generate the relevant build files for your compiler. You can optionally pass -DTARGET=filename to pass a custom .cmake file
  • Compile using your chosen compiler. Further details below.

Visual Studio 2019 Community Edition

  • Create to the sub-directory you want to create your build files in (e.g. or vs_build)

    cmake -G "Visual Studio 16 2019" ../cmake

  • Open the created CannonBall solution in VS 2019.

  • Right click and choose 'Set as StartUp project'.

  • Set working directory to something sensible. Right click -> Configuration properties -> Debugging

  • Ensure config.xml is in the working directory. You can specify an alternate location on the command line

  • Edit config.xml to reflect the paths of your roms and res directories. By default, they should be in the working directory.

  • Copy the OutRun revision B romset to the roms subdirectory.

  • You can then compile, debug and run from Visual Studio as expected.

cannonball's People

Contributors

djyt avatar vanfanel avatar fraggerfox avatar dantheman827 avatar carstene1ns avatar lopespm avatar sairuk avatar arunh avatar psyke83 avatar jaoxford avatar jbeich avatar jpouderoux avatar ryanfb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.