Releases: luksamuk/engine-psx
Dawn Canyon
- 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
- 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
- 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.
Surely Wood
- Add Surely Wood Zone 1 (R3Z1)
- Improvements on orthogonal springs collision
- Restore RELEASE target (which improved performance by A LOT!)
- Improve MDEC playback code by making variables
volatile, so we don't get
errors on real hardware - Changes to GHZ1 (R2Z1)
- Change initial main menu level to GHZ1
Note
This is a build which introduces performance fixes and the new Surely Wood Zone.
(Rev 02) Backgrounds and Parallax
- Add parallax data (.PRL file format)
- Add parallax logic inspired by how title screen works
- Change spring collision so they are much simpler and less buggy
- Add diagonal springs
- Add parallax background for R0 and GHZ (R2)
UaiDev Build
- Fixes to Sonic and monitor hitbox
- Changes to R0Z1, R0Z2, R1Z1, R1Z2, GHZ1 (R2Z1)
- Partial implementation of springs
- New ring and braking sound effects
- Add Player spawn point object
- Change and mix level music and sound effects so they are not too loud
- Add title screen fade-in and fade-out
- Add tevel select background animation
- Add git info (branch and latest commit) within builds
- Add level fade-in and fade-out
- Add first implementation of checkpoint
Note
This is the build presented for free play on UaiDev Talks 6.0 (2024). GIF animations of it were also included on the presentation.
(Rev 02): Level Objects
- Changes to R0Z1, R0Z2, R1Z1, R1Z2, GHZ1 (R2Z1)
- Introduce collision info on chunk mappings (for one-way platforms)
- First attempt at converting .RSD models into a custom format (.MDL file type)
- Add model test
- Add common level objects definition (.OTD file type)
- Add common level objects placement (.OMP file type)
- Change disclaimer screen
- Fix a bug where the CD would lock on some emulators
- Add a proper loading logo
- Fix screen clearing at beginning of game
- Add rendering for most common objects
- Add object frame control optionally tied to global timer
- Add interaction between Player and some objects (rings, goal sign, monitors)
- Add goal sign level transition (WIP)
Note
This build introduces many visual changes to tweak level and screen visualization, but also introduce common level objects, and a custom model format for 3D objects.
Sonic XA Begins
- Add Player drop dash
- Add title screen
- Change level select music
- Rework R2 into Green Hill Zone
- Improvements on level select
Note
This is the first build with the name SONIC XA, giving the game an actual face and some personality. "XA" comes from the .XA audio format, which is exclusive to the PlayStation.
From now on, builds are also more spaced in time.
MDEC and FMV Playback
- Separate logic for each screen on their own library
- Add MDEC/FMV playback!
- Add Sonic CD intro FMV example
- Add Sonic Team logo FMV example
- Add control flow for screens and for predefining FMVs
- Skip level select and start at R0Z1
Note
This build is preceeded by two others:
- 28/08/2024 (which had seven reviews)
- 29/08/2024 (which had three reviews)
These builds had many attempts (six reviews, over 15 burned discs) until it worked on an actual SCPH-5501. Most problems arised from the way the hardware expects variables for FMV playback, and from lack of care when controlling CD speed and .STR streaming.
(Rev 01) Spindash and More Slopes
- Add Spindash and Rolling
- Fix extended camera
- Add Player control lock
- Adjust Player slope physics for slippery slopes
- Changes to R1Z1, R1Z2