Repository navigation
Releases: johnson-cooper/2004sp-ps2port
Release list
V1.8 PS2
v1.7 PS2
Introducing MMCE, HDD, & more support
Wherever the game is loaded from, it will now load properly besides just USB.
Full Changelog: v1.6...v1.7
v1.6 PS2
Callum and the magical audits, we finally fixed map loading!
Very dense cities may have a tiny bit of trouble, but it seems to be fixed.
v1.5 PS2
hotfix for audio map loading, didn't really do too much but audio was slightly optimized...
Full Changelog: v1.4...v1.5
v1.4 PS2
list of changes:
- introducing emergency mode (default on) - when below 15 fps, the game will remove objects from the game until fps stabilizes, then progressively add them back in as fps increases, objects can still be seen if two tiles away, this may introduce some minor pop in but completely stable fps
- fixed audio lag with the sound effects
- map loading is now pretty consistent, instead of waiting for map loads for the objects to spawn in, that shouldn't happen frequently as much
Full Changelog: v1.3...v1.4
v1.3 PS2
Nearly Full FPS - Maximum Optimization.
Full Changelog: v1.2...v1.3
v1.2 PS2
2004sp PS2 v1.2
This is a major update to the PlayStation 2 port of 2004Scape / RuneScape 2 Revision 254.
The biggest addition is finally having native music and sound effects working on real PS2 hardware, along with another round of performance improvements for crowded areas.
What's New
Full PS2 Audio
- Added RuneScape music playback on the PS2.
- Added RuneScape sound effects.
- Music and SFX are played through the PS2's native SPU2 hardware.
- Added an external
rs2midi.irxcompanion module for PS2 audio. - Audio initialization is delayed until after login/world entry to preserve the hardware-stable networking path.
- Added accurate per-song SoundFont-based music packs.
- Added support for the full Revision 254 music catalog.
- Added support for the full Revision 254 sound-effect catalog.
- Combined music and SFX into a single release-friendly
rom/audio.dat. - Added streaming from
audio.datrather than keeping the entire audio library resident in memory. - Added proper delayed sound-effect scheduling.
- Added support for RuneScape's different SFX loop variants.
- Added proper music/jingle behavior and area-song resume handling.
Audio Fixes
- Fixed incorrect MIDI instrument pitch.
- Fixed octave errors in generated instruments.
- Fixed ringing/stuck notes.
- Fixed note release behavior.
- Fixed incorrect high-frequency instrument playback.
- Fixed several incorrect instrument mappings.
- Fixed the flute/piccolo-style instruments in tracks such as Expanse that previously played noticeably out of tune.
- Short SoundFont loops are now repeated to PS2 ADPCM frame boundaries instead of being stretched and detuned.
- Improved SoundFont envelope handling.
- Improved percussion and multi-layer voice handling.
- Added safer SPU2 voice allocation and key-off behavior.
New Audio Setting
The controller settings menu now includes:
- Audio: Off / 25% / 50% / 75% / 100%
Audio defaults to Off for maximum performance.
When Audio is Off, the client does more than mute the speakers: it avoids initializing the PS2 audio backend and skips music/SFX processing entirely.
Audio can be enabled while playing.
Crowded-Area Performance
Player rendering has been made much more aggressive for PS2 hardware.
- Only the 5 nearest ordinary remote players are rendered in crowded areas.
- Ordinary remote players beyond the PS2 render radius are not submitted to the renderer.
- Network/player state is still fully tracked.
- Important/interacting players can bypass the ordinary crowd limit.
NPCs now have similar crowd optimization:
- Only the nearest ordinary NPCs are rendered in dense areas.
- Current limit is 8 ordinary NPCs within 8 tiles.
- NPC network/update state remains fully active.
- NPCs involved in combat, interaction, chat, or active effects can bypass the limit.
This substantially reduces the amount of character model transformation and software rasterization the PS2 has to perform in busy areas.
Adjustable Render Distance
Added a new controller setting for PS2 render radius.
- Minimum: 8 tiles
- Default: 12 tiles
- Maximum: 16 tiles
The original compiled 16-tile scene limit is still preserved, so increasing the setting cannot exceed the memory/layout assumptions of the PS2 renderer.
The new default of 12 provides more performance headroom for gameplay and audio.
AFK Timer Setting
Added an adjustable AFK timer:
- Forever
- 5 minutes
- 10 minutes
- 15 minutes
- 30 minutes
- 60 minutes
The default is now:
AFK Timer: Forever
Forever mode prevents the client from sending the normal inactivity timer solely because the controller has been idle, allowing the game to remain logged in during long idle periods.
Expanded Controller Settings
The L3 controller menu now includes:
- Left-stick deadzone
- Cursor speed
- Right-stick deadzone
- Audio volume
- Render radius
- AFK timer
- Reset defaults
Defaults are tuned specifically for PS2 performance.
PS2 Hardware Stability Work
A large amount of work also went into making the new features possible without breaking the very layout-sensitive PS2 build.
- Preserved the hardware-known-good normal
.dataand.bsslayout. - Added an isolated high-memory executable/data overlay for new PS2 runtime/audio code.
- Kept audio state outside the hardware-sensitive normal BSS.
- Added linker guards so normal code/data growth fails the build instead of silently moving known-good memory addresses.
- Added ELF layout verification tooling.
- Preserved the known-good networking initialization order.
- Kept
audsrvin the hardware-tested voice-only configuration. - Kept the new MIDI companion external to
client.elf. - Audio initialization occurs only after the client has safely connected and entered the world.
A lot of this work came from real PS2 testing where seemingly harmless ELF layout changes could cause networking failures that never appeared in PCSX2.
Release Layout
Copy the entire folder to your USB drive:
GME_2004sp/
├── client.elf
├── rs2midi.irx
├── config.ini
└── rom/
├── audio.dat
└── cache/
└── client/
└── ...
Keep all of these files together.
Edit config.ini and set socketip to the LAN IPv4 address of the PC hosting your 2004sp server.
Then launch client.elf on the PS2.
Summary
This release brings one of the biggest missing parts of the port to the PS2:
RuneScape now has music and sound effects on real PlayStation 2 hardware.
Alongside the new audio system, crowded-player/NPC rendering, adjustable draw distance, audio performance controls, and AFK controls make the port considerably more configurable for the PS2's limited hardware.
As always, the goal is to keep as much of the original 2004 RuneScape experience intact as possible while fitting it onto a console with only 32 MB of RAM.
Full Changelog: v1.1...v1.2
V1.1 PS2
v1.0 PS2
Introducing the Runescape 2 Rev. 254 Port
This port is based on 2004 Single Player Progressive (2004sp) project
which is a single player mod for the open source Lost City server / engine.
2004sp includes:
- Custom content (Bosses, Backports, & more)
- Bots that progressively climb the hiscores, trade, PVP, & more
- Complete 1:1 iteration of 2004 Runescape
- All quests completable
- No missing content
- Self hostable, no dependency on live servers
Due to 32mb of memory and the PlayStation 2 being a rocket ship of a system,
lots of optimizations had to be made.
Works on Hardware as demonstrated in this video here, filmed by @nathanneutrotic
Installation:
For server, PC:
Requires Git, Node
- Follow instructions to set up 2004sp on PC, links are in this message.
- once server is up, find your ipv4 address of the machine that's hosting the server
For Client, PS2:
Edit config.ini and change:
socketip =
httpport = keep default unless changed (advanced)
username -
password -
put ps2 release 'GME_2004sp' on mass0, keep everything inside
launch the elf while server is running, you should auto connect if successful
boot to login takes about 2-3 minutes at most, be patient
I really hope you enjoy this release.
You can see more information for 2004sp here:
https://www.2004sp.cc
Need help? Join the community.
https://discord.gg/YpZtGfun7r
Full Changelog: https://github.com/johnson-cooper/2004sp-ps2port/commits/v1.0