Source and data to build Sonic 3 A.I.R. (Angel Island Revisited) and the Oxygen Engine

Related tags

Game sonic3air
Overview

Sonic 3 A.I.R.

Source code incl. dependencies for "Sonic 3 - Angel Island Revisited", a fan-made remaster of Sonic 3 & Knuckles.

Project homepage: https://sonic3air.org/

Disclaimer

Sonic 3 A.I.R. is a non-profit fan game project. It is not affiliated in any way with SEGA or Sonic Team, the original creators of Sonic 3 and Sonic & Knuckles.

Sonic the Hedgehog is a trademark of SEGA. All copyrights regarding Sonic the Hedgehog, including characters, names, terms, art, and music belong to SEGA. All registered trademarks belong to SEGA and Sonic Team.

The developers of Sonic 3 A.I.R. have no intent to infringe said copyrights and registered trademarks. No financial gain is made from this project.

Any commercial use of this project without SEGA's explicit consent is strictly prohibited.

Repository overview

This repository is split into several different projects:

  • The larger external dependencies (namely SDL2, Ogg/Vorbis, zlib) inside the "framework" directory. These are copies of the respective open source projects, with a few custom changes applied where needed - see the "how-to-build.txt" files in there for details.
  • The librmx libraries that together with the external dependencies build a foundation for my own projects (S3AIR and my private stuff). This primarily consists of rmxbase, a collection of helper and utility classes, and rmxmedia, which is providing a basic game framework built on top of SDL2 & OpenGL.
  • Lemonscript language library, with compiler and runtime environment for script execution.
  • Oxygen Engine, the backbone game engine powering Sonic 3 A.I.R. This includes input, graphics, audio handling, and all the other game application stuff, as well as a simulation environment built around lemonscript that - as far as needed for the purposes of S3AIR - emulates aspects of Sega Genesis hardware. Note that Oxygen can be built as its own application (OxygenApp) that lacks the S3AIR C++ code.
  • S3AIR-specific C++ code, scripts and data in the "Oxygen/soncthrickles" directory. Yes, that's what it's named.

External dependencies

External libraries and code used in this project:

  • SDL2 - in "framework/external/sdl"
  • libogg & libvorbis - in "framework/external/ogg-vorbis"
  • zlib incl. minizip - in "framework/external/zlib"
  • jsoncpp - in "librmx/source/rmxbase/jsoncpp"
  • GLEW - in "librmx/source/rmxmedia/glew"
  • Sound chip emulation related code from Genesis Plus GX - in "Oxygen/oxygenengine/source/oxygen/simulation/sound"
  • Discord Game SDK - in "Oxygen/soncthrickles/source/external/discord_game_sdk"
  • xBRZ upscaler shader code - in "Oxygen/oxygenengine/data/shader" and once more in "Oxygen/soncthrickles/data/shader"
  • Hqx upscaler shader code & data files - in "Oxygen/oxygenengine/data/shader" and once more in "Oxygen/soncthrickles/data/shader"

How to build

For information on how to build for different platforms, find the readme files in the respective subdirectories of "Oxygen/soncthrickles":

  • Windows: "build/_vstudio"
  • Mac: "build/_xcode"
  • Linux: "build/_cmake"
  • Android: "build/_android"
  • Web: "build/_emscripten"
  • Switch: "build/_make"
Issues
  • Added MSYS2 Build system for Windows

    Added MSYS2 Build system for Windows

    I don't use personnally Visual Studio to build open source projects on Windows. I use here MSYS2 : https://www.msys2.org/

    Tested on Windows 10 - 64 bits. Instructions are available on howtobuild.md file in Oxygen/soncthrickles/build/_make_msys2/howtobuild.md .

    ZipFileProvider.cpp and FileHelper.cpp have been modified to add MSYS2 support and original compilers support ( to avoid to break users that use Visual Studio for instance : i don't want to break other methods )

    opened by ghost 1
Releases(v22.05.08.0-test)
  • v22.05.08.0-test(May 8, 2022)

    This is mostly a bug fix release for the previous test build:

    • Fixed missing music after opening the in-game options
    • Fixed that some options got disabled for the main menu options menu as well after opening the in-game options menu once
    • Refinements for the in-game options warning messages
    • Removed the unnecessary "Back" buttons between mods in the mods options
    • Game speed is now applied correctly again
    • Fix for wrong animation sprite when Knuckles loses his super form while climbing
    • Fix for Sonic's broken finger in "Score Millionaire" achievement image
    • Fixed that in lemonscript, defines that referenced other defines could lead to a compile error
    • Added new script functions for modding: "System.callFunctionByName", "System.getGlobalVariableValueByName", "System.setGlobalVariableValueByName"
    Source code(tar.gz)
    Source code(zip)
    sonic3air_game.zip(138.74 MB)
  • v22.04.23.0-test(Apr 23, 2022)

    Includes everything from the previous test builds, plus a few new fixes and features:

    • Added a reduced version of the Options menu to the in-game Pause screen
    • Replaced the static main menu background with an animated (and moddable) one
    • For the highest anti-flicker setting, reduced intensities of Hyper Sonic screen flash and screen shake effects
    • Allowing for extended camera & camera outrun in Time Attack
    • Fix for positioning of Death Egg in SSZ end cutscene, which didn't work in all level layout settings
    • Fix for a regression of the background blur effect in Time Attack results screen
    • Fix for PS4 controller LED color when playing as Sonic & Tails
    • Several fixes in scripts and documentation - thanks especially to Veenee, Lave slime and Dynamic Lemons
    • Connection to game server is now only established when actually needed (for Update Check or Ghost Sync)
    • Smaller performance optimizations for rendering
    • Improvements for frame interpolation (though it's still far from final)
    • And as always a bunch of other smaller changes, see the individual commits for details

    Edit: There's a known regression in the transition from title screen to main menu - a glitch in the music. That will get fixed for the next version.

    Source code(tar.gz)
    Source code(zip)
    sonic3air_game.zip(138.73 MB)
  • v22.02.13.0-test(Feb 13, 2022)

    This build is mostly about new additions to the lemonscript language used for script modding:

    • Constants can now be defined locally inside functions as well, where they are limited to their respective scope, like local variables
    • Constant arrays allow for having a lookup table for a list of fixed integer values or strings; they can be defined globally or locally
    • Strings feature a ".length()" method, and specialized operators + (concatenation of strings) and <, <=, >, >= (string comparisons)
    • Preprocessor directives #define and #error

    All of these are described in the Oxygen Handbook PDF (located at "bonus/oxygenengine/Handbook.pdf" inside the game installation).

    Aside from that, there's a few other improvements:

    • Fix for a bug in Data Select when left + right is pressed at the same time
    • Optimizations for the script compiler to reduce RAM usage and compilation times
    • Plus all changes from the previous two test builds

    Hotfix: The attached sonic3air_game.zip was updated to include hotfix v22.02.13.1 that fixes a possible crash when loading script mods.

    Source code(tar.gz)
    Source code(zip)
    sonic3air_game.zip(138.86 MB)
  • v22.01.23.0-test(Jan 23, 2022)

    Includes all fixes and features from former test build, plus:

    • Lemon script feature level 2 check for equality comparisons whose result is not evaluated (this is practically always a mistake, typing two == where an assigment is intended)
    • Added option for using the Prototype Knuckles' Theme in the Hidden Palace fight against him
    • Fixed palette errors from the original game in some places
    • Dev Mode does not disable Time Attack any more now
    • And some more minor changes, see commit list for details
    Source code(tar.gz)
    Source code(zip)
    sonic3air_game.zip(138.68 MB)
  • v22.01.09.0-test(Jan 9, 2022)

    Fixes and improvements

    • Fix for a crash that can occur when entering the Options menu with certain controllers attached
    • Fixed that audio mods used reverse mod priority
    • Sound Test in Options menu now shows a proper name for each music track as well
    • Enforcing a fixed simulation update rate of 60 Hz in Time Attack
    • Off-screen tails display for player 2 now correctly renders his tails as well
    • Modding: Added "Renderer.drawText" script function for easy text rendering
    • Modding: Added a better way of defining constants in scripts by using the "constant" keyword

    Early preview of larger work-in-progress features

    • Networking test cases, especially Ghost Sync (needs to be enabled in the config.json)
    • Frame Interpolation (needs to be switched to via Alt+H)
    • Lemon script feature level 2: Introduces "string" as a dedicated data type with only limited compatibility to u64 + check for parentheses after "if" (need to be enabled for script mods with "//# script-feature-level(2)")
    Source code(tar.gz)
    Source code(zip)
    sonic3air_game.zip(138.55 MB)
Owner
Eukaryot
Eukaryot
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 11 Jan 9, 2022
Rogy-Engine- - My 3D game engine source code.

Rogy-Engine Development My 3D game engine. (NOT THE FINAL VERSION- Windows only) Features: PBR shading and reflection probes with parallax correction.

AlaX 92 Jun 18, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.7k Jun 19, 2022
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 49.8k Jun 22, 2022
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 27 Jun 12, 2022
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2k Jun 29, 2022
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.4k Jul 1, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 51 Jun 10, 2022
Hyperion Engine is a 3D game engine written in C++

Hyperion Engine About Hyperion Engine is a 3D game engine written in C++. We aim to make Hyperion be easy to understand and use, while still enabling

null 130 Jun 28, 2022
A Vulkan game engine with a focus on data oriented design

The Fling Engine aims to be a cross platform Vulkan game engine that will experiment with the following: Low-level engine systems such as render API a

Fling Engine 295 Jun 18, 2022
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Panda3D 3.3k Jun 21, 2022
Free, open-source, game engine and a 3D sandbox.

Work-in-Progress The official "early alpha" release should be available around April 2021 SGEEngine SGEEngine is an open source (MIT License), C++ cen

ongamex 65 Jun 13, 2022
Project DELTA - An open-source trainer built on the Void Engine for Toby Fox's games and their spin-offs.

Project DELTA v3 Project DELTA - An open-source, modular mod menu for Toby Fox's games and their spin-offs. Important note to Grossley: Yes, it is out

Archie 7 Apr 20, 2022
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 7.2k Jun 22, 2022
Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.

Amazon Lumberyard Amazon Lumberyard is a free, AAA game engine that gives you the tools you need to create high quality games. Deeply integrated with

Amazon Web Services 1.8k Jun 22, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.7k Jun 28, 2022
KlayGE is a cross-platform open source game engine with plugin-based architecture.

KlayGE KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to

Minmin Gong 1.7k Jun 22, 2022
MIT Licensed Open Source version of Torque 2D game engine from GarageGames

We've moved! All torque engines have moved to a new organization, Torque Game Engines. Torque2D can be found at https://github.com/TorqueGameEngines/T

GarageGames 1.7k Jun 18, 2022
My 3D game engine source code.

Rogy-Engine Development My 3D game engine source code. (NOT THE FINAL VERSION) Features: PBR shading and reflection probes with parallax correction. S

AlaX 92 Jun 18, 2022