Game:
- Sound improvements
- More natural volume attenuation over distance - @Bobbar
- Added reverb - @Bobbar
- Fixed incorrect pitches and durations - @Bobbar
- Fixed incorrect spatial audio volume - @Bobbar
- Consistent sample rate - @Bobbar
- Reduced excess sounds (landing from fall, wind) - @Bobbar
- Added signage hum sound - @Bobbar
- Added elevator arrival sound
- Proper sounds for portal open/close/change
- Proper sounds for moving platforms and walls
- Fixed sounds sometimes not playing on save file load
- Fixed sounds sometimes not pausing when the game is paused
- Fixed pause/unpause ending sounds early
- Fixed incorrect volume levels after pause/unpause
- Fixed incorrect sound volume and effects when listening from behind a portal
- Fade out sounds during elevator transitions
- Fade out sounds more aggressively when farther away
- GLaDOS dialogue is interrupted for key level progression events
- Reimplemented audio sample generation (reduced memory usage, fixed crashes, and increased max sounds)
- Cutscene system improvements
- Support for spatial audio
- Support for particle effects
- Support for random delays
- Support for looped animations
- Support for interrupting queued sounds
- Culling improvements
- Reduced false positives for room visibility
- Added doorway cover object, for distance-based culling
- Level object changes
- Added missing observation room desks and fixed incorrect model used in some cases
- Fixed ball launcher/catcher texture mapping
- Portal gun pedestal:
- Charging sound is now only played when about to shoot
- Updated rotation speed and initial orientation to match original game
- Turret:
- Improved death effect (shutdown sound and fading eye)
- Improved line of sight and aiming
- Added bullet spread
- Bullets push physics objects
- Clock: fixed some digits not updating on PAL
- Added some behind-the-scenes materials and models
- Test chamber 16 changes
- Added broken cube dropper effect
- Performance improvements
- Fixed some walls turrets should not have been able to see through
- Added Rattmann den
- Control improvements
- Added zoom feature (toggle with d-pad right by default) - @samuelroyal
- Fixed grabbing through portals sometimes not working
- Fixed incorrect object throw angles through ceiling portals
- Controls menu no longer closes when binding the B button
- Every bound controller now rumbles, not just the first
- Consistent rumble duration between NTSC and PAL
- Controller icons show controller number if using multiple
- Controller bindings are ordered by recency
- Fixed controller prompts appearing for already-pressed buttons in some cases
- General improvements
- Reduced save file size
- Reduced checkpoint memory usage
- Improved performance when entering levels with many collision objects
- Fixed animation bugs
- Consistent UI spacing
- Manual saves are reloaded on death if more recent than the autosave
- Opposite portal to the one opening now always flashes
Development:
- Build improvements
- Dependency versions are checked for compatibility where relevant
- Fixed build failure if CMake is run before copying original game files
- Fixed build failure when path contains
.character - Avoid git warnings
- Fail on first error
- Library abstraction
- Move non-platform-specific code out of platform-specific layer
- Clean up controller and rumble abstraction
- Abstract cartridge read and write (DMA)
- Abstract frame buffer reading
- Abstract audio playback
- Enabled compression for sounds where it was missing
- Support UV mapping for materials with multiple tiles in Skeletool
- Support recording and playing back inputs when multiple controllers are bound, and added a script to convert recorded data for playback
- General cleanup
- Removed unused code
- Refactoring