Skip to content

Releases: luksamuk/engine-psx

v0.6 Beta

18 Aug 18:32
3bdfd3c
Compare
Choose a tag to compare

Warning

This game is still beta quality and the project is still focusing on building basic functionalities, so expect bugs and many unfinished levels.

Note

This is the demo for Sonic Amateur Games Expo 2025.
Builds are provided in two formats: BIN+CUE (compressed as ZIP, ideal for burning on CDs or converting to other formats) and CHD (MAME Disc Format, recommended for emulators and portability).
Each format also has three different versions, one for each region of your console (Japan, USA, Europe).
There are no differences between regions, except that the European build runs at 50FPS.

Warning

While this game has been tested on a real SCPH-5501 model, there is no guarantee that this game will work on unsupported hardware or on alternate emulation methods, even if these methods are "official emulators".
For example, this game is known to crash at boot when running on a PSP, which contains an "authorized" emulator for the PS1.
This is because PSn00bSDK performs certain operations related to hardware and memory mapping that aim to "correct" the way it was normally done with the official PS1 SDK, and some old emulators simply do not support these operations at all, as some bad practices were simply "normalized", even at BIOS level.

Changelog

  • Prevent situations where TOC wouldn't be loaded correctly
  • Add Amy Rose! Amy jumps higher than the rest of the cast, has a lower top speed and slips down steep slopes more easily than the rest of the cast. She also has a Piko Piko Hammer Attack, a Piko Double Jump, and a Piko Spin Attack.
  • Add framework for extra hitboxes on player
  • Add Tails/Amy extra hitboxes (Piko Piko Hammer, Piko Spin, tail attack)
  • Generalize behaviours on bosses and objects for ease of use
  • [R0] Fix a bug where the boss would continue going forward when defeated out of a swing animation
  • Add SPU SRAM debriefing on space available/used/free
  • Add hearts when Amy hits the ground with Piko Piko Hammer
  • Make Amy and Level Select unlockable upon beating campaign
  • Add a special text slide feature to show special messages
  • Render animals in front of player
  • Make animals from end-of-level capsule jump around the player
  • Show number of disc tracks on options menu instead of level select
  • Add a secret code to unlock all unlockable features
  • Fix a bug with player top sensors that allowed weird vertical zips
  • Add spindash dust, slightly fix spindash animations
  • Add default color function, escape sequence, and allow fade values for text
  • Amy's Piko Piko Hammer can destroy bombs (R0) and enemy projectiles (R2, R3)
  • Fix Tails's tails on Spindash animation

Known bugs

  • Collision issues: random speed resets may occur on some wavy ramps, especially on the Test Level. This is because of how collision is resolved along linecasts, and will be solved at collision refactoring.
  • Lack of 360° collision: The full 360 degree collision modes are currently deactivated on code because they still need work. Levels presented in this demo do not have big loops, so it is not really a concern for gameplay on main levels.
  • Small memory leak when respawning level: For each item monitor respawned when the player dies, a memory leak of a single byte or two may occur since monitors use "extra properties" to determine their subtype. This will be fixed soon since object states now have a proper subtype slot, but this memory leak will be insignificant on most scenarios, and should only cause problems after an unrealistic number of respawns.
  • Characters may appear slightly above ground on certain objects and platforms. This behaviour relates to how character rendering works and will be fixed once the new 360° collision feature is refactored.

v0.5.1 Beta

06 Aug 02:32
Compare
Choose a tag to compare

Warning

This game is still beta quality and the project is still focusing on building basic functionalities, so expect bugs and many unfinished levels.

Warning

While this game has been tested on a real SCPH-5501 model, there is no guarantee that this game will work on unsupported hardware or on alternate emulation methods, even if these methods are "official emulators".
For example, this game is known to crash at boot when running on a PSP, which contains an "authorized" emulator for the PS1.
This is because PSn00bSDK performs certain operations related to hardware and memory mapping that aim to "correct" the way it was normally done with the official PS1 SDK, and some old emulators simply do not support these operations at all, as some bad practices were simply "normalized", even at BIOS level.

Changelog

  • Fix a bug where the player would remain on air if restarting level while standing over an object
  • Fix a bug where old object placements were not being entirely cleared upon respawn
  • Fix a bug where the player would "slide" with an idle animation after holding right, on very specific manual respawns

Known bugs

  • Collision issues: random speed resets may occur on some wavy ramps, especially on the Test Level. This is because of how collision is resolved along linecasts, and will be solved at collision refactoring.
  • Lack of 360° collision: The full 360 degree collision modes are currently deactivated on code because they still need work. Levels presented in this demo do not have big loops, so it is not really a concern for gameplay on main levels.
  • Small memory leak when respawning level: For each item monitor respawned when the player dies, a memory leak of a single byte or two may occur since monitors use "extra properties" to determine their subtype. This will be fixed soon since object states now have a proper subtype slot, but this memory leak will be insignificant on most scenarios, and should only cause problems after an unrealistic number of respawns.
  • Tails's tail has no hitbox: When flying, Tails's tail cannot be used as a form of attack, so flying underneath bosses and enemies will hurt Tails.
  • Characters may appear slightly above ground on certain objects and platforms. This behaviour relates to how character rendering works and will be fixed once the new 360° collision feature is refactored.

v0.5 Beta

03 Aug 06:08
Compare
Choose a tag to compare

Warning

This game is still beta quality and the project is still focusing on building basic functionalities, so expect bugs and many unfinished levels.

Note

Builds are provided in two formats: BIN+CUE (compressed as ZIP, ideal for burning on CDs or converting to other formats) and CHD (MAME Disc Format, recommended for emulators and portability).
Each format also has three different versions, one for each region of your console (Japan, USA, Europe).
There are no differences between regions, except that the European build runs at 50FPS.

Warning

While this game has been tested on a real SCPH-5501 model, there is no guarantee that this game will work on unsupported hardware or on alternate emulation methods, even if these methods are "official emulators".
For example, this game is known to crash at boot when running on a PSP, which contains an "authorized" emulator for the PS1.
This is because PSn00bSDK performs certain operations related to hardware and memory mapping that aim to "correct" the way it was normally done with the official PS1 SDK, and some old emulators simply do not support these operations at all, as some bad practices were simply "normalized", even at BIOS level.

Changelog

  • Remove embedded debug font to make room for offscreen rendering
  • Add missing credits for AOZ music
  • Add improved, offscreen-buffered character rendering
  • Changes to R0Z4
  • Remove CD-XA BGM playback engine
  • Add CD-DA BGM playback engine
  • Add Options screen
  • Add visual data for Dawn Canyon (R4)
  • Add script for generating 128x128 tilemap from pre-existing Aseprite files (chunkmapper.py)
  • Add an option to draw some levels in front of player
  • Add level-specific object positioning and rendering
  • Duplicate size of common and level-specific object textures with same palette
  • [R0] Add Ballhog enemy and bouncing bomb
  • Change level and object rendering to leverage global/extern variables, thus
    accelerating the rendering process
  • Add extra sound effects (bomb, goal sign, Knuckles climb/drop)
  • Change 1-Up sound to be agnostic to player character
  • Add ceiling collision to dropped rings
  • Change goal sign art style to match characters
  • Add boss loading routine
  • [R0] Add boss (Egg Bomber)
  • Add routines to generate alternate palette for boss (when it is hit)
  • Fix animation fragment positioning when it is flipped
  • Make changes to camera so we have limits for boss arena
  • Limit player behaviour when camera is fixed on certain kinds of events
  • [R2] Add Motobug
  • Fix a bug with counting free objects on the scene
  • Redirect Sonic/Tails Test Level 3 redirect to title screen when completed
  • Rename known levels on level select
  • Fix camera Y movement on debug mode
  • Decrease camera max Y speed
  • Add per-character goal sign animations
  • Fix a bug with accessing unbounded memory when free objects had an animation fragment
  • [R3] Add Stegway
  • Add abstractions to enemy and hazard behaviour (player interaction, spawner
    behaviour, despawn routines)
  • Fix player sensor rendering on debug mode
  • [R3] Add buzzbomber and buzzbomber projectile
  • [R5] Add Bubbler's Mother and Bubbler enemies
  • [R5] Add Gator enemy
  • Enforce or forbid Knuckles when accessing certain Test Levels
  • Change "Engine Test" option to "Play Test Levels" on title screen
  • Fix autodemos to showcase Sonic, Tails and Knuckles
  • Change levels sequence for the next demo
  • Add new collision method for solid objects
  • Fix player not slipping down slopes unless rolling
  • Fix springs collisions so it is solid on sides that do not interact with player
  • Fix collision for switches
  • Change art style of some objects
  • Add SAGE 2025 logo
  • Add flag to disable debug behaviour on release target
  • Change level select so planned levels are not spoiled nor accessible
  • Change art for most slides
  • [R2] Add buzzbomber (Green Hill)
  • [R2] Add boss (Egg Wrecker)
  • [R2] Add a static rock and floating platforms
  • Add a new, medium-sized font (used on level score count title)
  • Add text-coloring escape sequences with some predefined default colors
  • [R2] Make GHZ2 a 100-ring, 1-Up level finished with a boss
  • Add level and character icons to level select
  • [DEBUG] Add documentation on properly using GDB to work with PCSX-Redux
  • Fix sprites looking distorted (especially on DuckStation and real hardware)
  • Reduce SFX default volume to 50%
  • Move most memory allocation to screen arena allocator, acquiring more control
  • Add selectable CD music modes: Stereo, Reversed Stereo, Mono
  • Convert all slides style to proper 320x240 resolution
  • Add a new, more stylized "Created By" slide
  • Rebuild level transitions framework
  • Add score count at end of levels (skippable by pressing start or cross)
  • Add a Perfect Bonus that appears when player collects all loose rings without losing them
  • Add a boss lock so music won't switch during boss
  • Add a proper respawn routine
  • Add object management during respawn. Checkpoints will be treated differently
  • Add player death/drown actions
  • Bosses will persistently mock you when you die during a boss fight
  • Fix a bug where a Knuckles climbing underwater would jump away from the wall in a speed greater than it should
  • Change loading logo
  • Add a routine to count emplaced static, loose rings (relates to Perfect Bonus implementation)
  • Restore control when jumping after slipping down slopes
  • Fix deaths on demo mode to prevent possible memory leaks
  • Re-record demos
  • Add a door object
  • Add unique IDs (Tiled map IDs) for all static objects (except objects created by dummy objects)
  • Add parent/child hierarchy to objects, along with special scripting and values to allow determining parenthood of objects within Tiled maps
  • [R5] Add doors and finish switch puzzles
  • Add end capsules to finish level, with proper transitions, etc
  • Add animals when destroying badniks and opening end capsules
  • [R3] Changes to level layout to prevent Knuckles from gliding infinitely
  • Many changes to level layouts in general
  • Add pause menu when debug mode is inactive
  • Fix Tails's tail slightly dislocated when walking on slopes
  • Change wrong level names on credits
  • Remove debug mode option from Options Menu when playing a Release build
  • Slightly change background of R5
  • Fix an issue with ledges and ceiling sensors

Known bugs

  • Collision issues: random speed resets may occur on some wavy ramps, especially on the Test Level. This is because of how collision is resolved along linecasts, and will be solved at collision refactoring.
  • Lack of 360° collision: The full 360 degree collision modes are currently deactivated on code because they still need work. Levels presented in this demo do not have big loops, so it is not really a concern for gameplay on main levels.
  • Small memory leak when respawning level: For each item monitor respawned when the player dies, a memory leak of a single byte or two may occur since monitors use "extra properties" to determine their subtype. This will be fixed soon since object states now have a proper subtype slot, but this memory leak will be insignificant on most scenarios, and should only cause problems after an unrealistic number of respawns.
  • Tails's tail has no hitbox: When flying, Tails's tail cannot be used as a form of attack, so flying underneath bosses and enemies will hurt Tails.
  • Characters may appear slightly above ground on certain objects and platforms. This behaviour relates to how character rendering works and will be fixed once the new 360° collision feature is refactored.

v0.1 Build (Beta)

24 Apr 20:20
Compare
Choose a tag to compare

Warning

This game is still beta quality and the project is still focusing on building basic functionalities, so expect bugs and many unfinished levels.

  • Change internal project references to SONIC XA instead of Engine
  • Add animations for ledge balancing and gulping bubbles
  • Add some checkpoint respawn code (still unused)
  • Fix game hanging when music loops by putting loop code outside of CD callback
  • Restructure and unify definitions of loop points for songs
  • Add animation rotation through GTE
  • Fix offsets for rolling animations and shield object
  • Snap angles of animations so character rotation isn't arbitrary
  • Change ISO name to "Sonic The Hedgehog XA"
  • Add Makefile target to run game on DuckStation
  • Add encoding targets for .VAG and .XA audio files
  • Remove all traces of FMV (.STR playback) code
  • Add a way to manually inform angles for collision geometry on 16x16 tiles
  • Manually fix some collision data on a few levels
  • Fix monitor and spring hitboxes and collision
  • Replace .psxcsv extension with .cnk
  • Create unified method to change player action (enables bugfixes)
  • Fix a bug with control
  • Remove PlayStation 30 Years anniversary assets and slide
  • Add Super Peel Out
  • Add R9 (extra level)
  • Change Sonic sprite
  • Change starting level to SWZ1
  • Layout changes to R0Z3 so it becomes a water test level
  • Add Tails! (including flight/swim and tail animations)
  • Add Knuckles! (including glide, glide turn, climbing, etc)
  • Add a Character Select screen before starting the game
  • Load all sound effects at beginning of game to decrease load times
  • Modify title screen to better suit the new layout
  • Add a constraint to the top of levels so characters won't go above Y = 0
  • Configuration and notes on GDB-Multiarch and DAP

Note

This is the first version to use semantic versioning. This makes very profound changes including the new Sonic sprites and the addition of Tails and Knuckles (sprites by CartoonsAnimate22).

Note

Builds are available in CHD (Mame Disc) and BIN+CUE (compressed as ZIP) formats, for all three regions (J, U, E).

New Year 2025 Build

02 Jan 20:45
Compare
Choose a tag to compare
  • Remove FMVs (code, functionality and .STR files from disc)
  • Add slideshow frames for most written information (such as screens before startup)
  • Change "coming soon" screen
  • Make the player move forward and stop any action at end of level
  • Fix some text alignment on title screen
  • Change level select options alignment and disposition
  • Add slide test on level select
  • Remove FMV test on level select
  • Add a few startup screens via slide functionality
  • Properly limit player left boundaries depending on camera's min X (affects level startup and end)
  • Add drop dash cancel when not holding jump button before hitting the ground
  • Fix speed shoes resetting the player's constants to surface behaviour when wearing off underwater
  • Make layout and tile changes to Green Hill Zone 1 so the navigation feels less "clunky" for now

Note

This is a hotfix which introduces a few changes for a better experience. This effectively introduces changes after observing a few people playing the Christmas build.

Christmas '24 Demo

25 Dec 14:24
Compare
Choose a tag to compare
  • Remake R1Z1 and R1Z2 into R0Z3 and R0Z4
  • Remove R1
  • Significant changes to R5Z1
  • Add water tint, surface waves, splash effect
  • Ensure that the water in R5 parallax always matches water surface
  • Fix a bug where the player would lose speed when hitting a horizontal spring from above
  • Add autodemo for R5Z1
  • Add bubble spawner object
  • Add bubble object (many sizes and number bubbles)
  • Add a big part of drowning code (emitting bubbles, sound effects, air count)
  • Add separated structure for movement constants, enabling for dynamic switching
  • Add water physics
  • Add speed shoes physics and music behaviour
  • Fix a bug when generating object placement with default extra properties
  • Add AOZ1 after SWZ1 when playing the demo
  • Optimize water and parallax rendering, adjust R5Z1 parallax accordingly
  • Speed-up BGM and FMV playback by pre-storing .XA and .STR disc locations on boot-up
  • Fix a game-halting effect when switching immediately from one .XA music to another (this enables seamless speed shoes music)

Note

This is a very stable Christmas build that finally adds Amazing Ocean Zone as one of the levels that are playable outside of level select.

Eggmanland

16 Dec 01:13
Compare
Choose a tag to compare
Eggmanland Pre-release
Pre-release
  • Add Eggmanland Zone (R8) (WIP)
  • Add title cards and title card fonts
  • Add Amazing Ocean Zone (R5) (WIP)
  • Fix timer-locked animations when time is not running
  • Fix single-tile parallax
  • Add switch/button object
  • Add front layer on chunk mappings
  • Add a framework for recording and playing auto-demos
  • Add cycling auto-demos on title screen
  • Changes to R0Z1
  • Add working titles to R6 and R7
  • Fix calculation of rounds/acts
  • Show game logo during autodemo
  • Add speed shoes music (still unused)
  • Fix how collision angles are generated for collision geometry
  • Improve collision angle deduction and add rounding
  • Add initial support for 360° collision mode change (inactive for now)
  • Change "inspired by" FMV in favor of "PlayStation 30 Years" logo
  • Small fix to avoid losing much speed when hitting horizontal springs from above
  • Fix collision sensors positioning and sizes
  • Add an FMV Test, much like Sound Test, on level select

Dawn Canyon

23 Nov 15:11
Compare
Choose a tag to compare
Dawn Canyon Pre-release
Pre-release
  • Changes to R0Z1
  • Add support for levels with no data (so levels can be built part by part)
  • Make MDEC playback less resilient (errors result in finishing playback again. This decision was necessary to avoid breaking the game)
  • Add level R4: Dawn Canyon Zone (only background and music for now)
  • Change moving rings collision (check for collision every frame and bounce on walls)
  • Create a centralized BGM structure with support for looping and stopping points
  • Add a BGM sound test on level select

Note

This release marks the starting concept for Dawn Canyon Zone (R4).

(Rev 01) Free Objects

14 Nov 05:19
Compare
Choose a tag to compare
(Rev 01) Free Objects Pre-release
Pre-release
  • Add the concept of free (short-lived) objects and object pool
  • Add ring loss with vertical collision
  • Add monitor image functionality with delayed behaviour
  • Change debug mode controls within level screen (change cycling, add damage
    button)
  • Changes in SWZ1, R0Z1, R1Z2
  • Fix extended camera not moving when player direction changes at high speed
  • Fixes to CD-ROM usage and management for BGM looping and MDEC
    playback. Minimizes stuttering!
  • Add shield
  • Add 1-Up sound effect
  • Change title screen to start on Playground 1, but continue on Green Hill 1

Note

This build introduces objects that live freely on a short object pool. These objects can have a free position on the world and may also hold X and Y speed information. So now we can have very interesting objects such as moving rings and shields, but also other kinds of objects as well!

This build had two revisions. The second one introduces a fix for the MDEC which goes lighter on the disc reader, so now FMVs will likely play without much hazzle.

Collision, Fonts and Damage

14 Nov 05:18
Compare
Choose a tag to compare
Pre-release
  • Changes in SWZ1 (R3Z1), R0Z1
  • Add big and small basic fonts
  • Change level select to use a proper small font
  • Add credits screen
  • Add level HUD
  • Add XA playback music volume controls
  • Mute music when game is paused
  • Make RELEASE the default target (for performance reasons)
  • Title screen now show version based on Git tag (if existing) or commit SHA1
  • Improve Player sprite generation instructions and formalize process
  • Add Spring, Hurt and Death (still unused) animations
  • Add in-game timer and score count at end of level (still a work in progress)
  • Fix parallax in GHZ (R2)
  • Fix top/bottom collision issues when running at a wall at full speed
  • Add Player taking damage (currently only triggered by spikes)
  • Fix Player sprite rendering position

Note

This build introduces many bugfixes, especially related to Player collision with objects and tiles. Also adds many new visual features to make the game play a little more like it should. The player can also finally take damage.