CONTENTS
Thanks to /dev/ghostline’s server emulator it is now possible to use online functionalities of the game again.
On this page you will find technical explanations and download links of network patches.
The server emulator is currently reachable through the following URL: bosrv.org.
Three steps are mandatory to properly connect to the server emulator:
The original server URL and the DNAS logic are located in the game executable (SLXX_XXX.XX) which is to be loaded in the EE (Emotion Engine) memory aka the “main” memory. Tampering with the EE memory is widely supported both on the emulation side (PNACH, Cheat Engine, etc.) or real hardware side (Action Replay, ps2rd, etc.).
However the certificate validation is located in an IRX file (DRTYSCKF.IRX, EA’s “DirtySock” library handling all the network communications while playing online) which is to be loaded in the IOP (I/O Processor) memory. Tampering with the IOP memory is pretty uncommon and can’t be achieved easily on real consoles. On the emulation side, PNACH patches can target the IOP but using fixed memory addresses tends to be unreliable.
Initially, the usual method for connecting to the server emulator was to apply xdelta patches to the game disc image. This method doesn’t involve any memory tampering but requires the ability to run modified disc images, implying for real hardware owners to rely on homebrews/swapping tricks/etc. Two downsides in my opinon.
On the emulation side, PNACH patches targeting both EE and IOP were also available, but as said earlier, IOP memory patches (patch=1,IOP,[...]) aren’t reliable, these patches weren’t working for everyone.
I didn’t want to look further into the PNACH IOP issue and wanted to investigate onto something guaranteed to work on both sides, and I ended up finding an alternative method (now outdated) to patch and load DRTYSCKF.IRX while only using the EE.
Knowing that the action of telling the IOP to load an IRX file is initiated from the EE by calling a function named sceSifLoadModule, I looked around “sceSif” functions and noticed a very interesting one called sceSifLoadModuleBuffer. As its name describes, it can load an IRX file from a buffer residing in the EE memory, exactly what I needed.
This approach consists of mapping DRTYSCKF.IRX from the disc into an EE memory buffer (using sceOpen, sceRead, etc.), patch it as we wish and then make the game call sceSifLoadModuleBuffer instead of sceSifLoadModule when DRTYSCKF.IRX gets loaded. This will prevent the IRX file to be retrieved directly from the game files and use our buffer instead.
While working on some network patches for Revenge, I got curious about a ProtoSSL bug which has been briefly discussed in the Burnout Online Discord server, opinions were mixed regarding its existence in PS2 Burnout games but it didn’t went a lot further.
I decided to give it a shot and noticed that the bug was indeed present in DRTYSCKF.IRX for both Takedown and Revenge. After some tweaking, I managed to make the server emulator certificate reach and trigger the bug. I made a merge request which has been accepted. We can now access the server emulator without altering the IOP.
| Patch Title | Patch Description |
|---|---|
| Disable UPnP | Prevent the game from using UPnP |
| Ensure SSL | Prevent the game from falling back to insecure (no SSL) mode (can sometimes happen and cause errors) |
| Server URL (bosrv.org) | Replace the original server URL in order to connect to /dev/ghostline's server emulator |
| Bypass DNAS | Fully bypass the DNAS sequence |
| Buddies/Disable Module | Disable the Buddies module (which is currently causing pre-game timeouts) |
| Lobby/Allow Single Player | Set the minimum number of players required to start a game to 1 |
| Lobby/Heavyweights Globally Available | Allow heavyweights to be selectable in the garage regardless of the chosen game mode |
| In-Game/Hide Lost Connection Message | Hide the "Lost connection to other players" error message (useful while playing alone) |
Online mode for Burnout Revenge is currently unstable, you need to activate some temporary fixes to avoid frequent game crashes.
You also need to create an account on Burnout 3: Takedown in order to properly log in on Revenge, EA Nation is not supported yet.
For more information, you can try to ask on the Burnout Online Discord server.
| Patch Title | Patch Description |
|---|---|
| Disable UPnP | Prevent the game from using UPnP |
| Ensure SSL | Prevent the game from falling back to insecure (no SSL) mode (can sometimes happen and cause errors) |
| Server URL (bosrv.org) | Replace the original server URL in order to connect to /dev/ghostline's server emulator |
| Bypass DNAS | Fully bypass the DNAS sequence |
| Buddies/Disable Module | Disable the Buddies module |
| Lobby/Reduce Server Connection Timeout | Reduce the timeout delay of the connecting screen to 10 seconds before throwing an error when the server is unresponsive (default is 2 minutes) |
| Lobby/Allow Single Player | Set the minimum number of players required to start a game to 1 |
| Lobby/Show Logout Popup (L3+R3) | Press L3+R3 for an attempt to show the logout popup (might help in case of softlocks, etc.) |
| Lobby/Traffic Attack (Hold L1+R1) | Hold L1+R1 in game options and press continue to set the game mode to Traffic Attack |
| Lobby/Revenge Racer By Default | Directly focus on the Revenge Racer (when available) after entering the car select menu |
| In-Game/Disable Drag Coeff | Disable the adaptative drag coefficient based on distance away from other players |
| In-Game/Enable Crashbreaker | Enable Crashbreaker in online games |
| Temporary Fixes/Account Verification | Prevent the "verifying account" game crash |
| Temporary Fixes/Rankings | Disable some rankings-related logic to prevent game crashes |
| Serial | PCSX2 | PS2 |
|---|---|---|
| SLES-52584 | ⬇️ | ⬇️ |
| SLES-52585 | ⬇️ | ⬇️ |
| SLKA-25206 | ⬇️ | ⬇️ |
| SLPM-65719 | ⬇️ | ⬇️ |
| SLUS-21050 | ⬇️ | ⬇️ |
| Serial | PCSX2 | PS2 |
|---|---|---|
| SLAJ-25066 | ⬇️ | ⬇️ |
| SLES-53506 | ⬇️ | ⬇️ |
| SLES-53507 | ⬇️ | ⬇️ |
| SLKA-25304 | ⬇️ | ⬇️ |
| SLUS-21242 | ⬇️ | ⬇️ |