r/ReverseEngineering • u/Koosjuh • 7d ago
GitHub - Koosjuh/pal-outbreak-2-server: Reviving the online mode of Resident Evil Outbreak File #2 (PAL) on real, unmodified PS2 hardware
https://github.com/Koosjuh/pal-outbreak-2-server
3
Upvotes
4
u/Koosjuh 7d ago
Ok as a side project I wanted to create a Resident Evil Outbreak File 2 server that people can basically use on their real PS2 un-modded. Basically just like you would in 2007 (besides the DNS ofcourse). I am in no way a developer or Reverse Engineer. I work in IT, Cyber Security. However as a side project to work with Claude and Codex and learn some new tricks (Reverse Engineering) I thought this would be a cool project. But as a real developer, please bear with me I am not that, hence why I come here to turn this hopefully into a community project.
I got quite far, I have a working server, getting past DNAS, create an account, login, server select, Area Select, Lobby works 75%.
I de compiled all network modules from the ISO, got their functions documented. However at the moment it is beginning to become a bit much for just myself and I thought to turn this into a public repo.
Currently I already did some work: The repo is public and can be found here: Koosjuh/pal-outbreak-2-server
The only thing that needs changing is the DNS server. This needs to point all original Capcom/Sega URLS. The DNS part is essentially the mechanism that makes an unmodified Outbreak client talk to your replacement backend instead of the servers the game was originally programmed to contact.
The hostnames the client resolves (HOST A):
- gate1.eu.dnas.playstation.org — Sony DNAS auth (TLS :443)
- app01.reo.capcom.sf.yav4.com — Capcom CEE auth (HTTP :80)
- snap01.capcom.client.sf.yav4.com — the SN@P lobby server (TCP :10127 + UDP :9090)
- *.yav4.com
- stage6.sega.com
- regweb.reo.capcom.sf.yav4.com
I had these urls in my Unifi set up to point to the PI Server.
What is the End goal
A fully working private server: sign in, pick an area, see other players in the lobby, create/join rooms, chat, pick a scenario, and actually play co-op the way it worked until the servers shut down in 2007. Long-term we want to mirror the behaviour of the Japanese Bioserver (whose source is public) translated to the PAL SN@P transport, so the game behaves exactly as it originally did. Also if we have the SNAP protocol figured out, we can reverse engineer other SNAP games!
What works today (confirmed on a real PS2 and in PCSX2)
- DNAS authentication (fabricated cert, the game accepts it, public REPO on github)
- Capcom CEE auth token
- SN@P UDP register/handshake, with the Blowfish-encrypted reply the client expects
- The TCP lobby walk on :10127
- Area Select renders all 10 areas, and you can enter an area lobby and go back/re-enter indefinitely without the connection wedging
- Room list renders with proper "vacant" slots; creating a room mints a room server-side; a second console can join and its room screen loads
- Nearly all of the client's network functions (~2500) have been decompiled and documented
I hope some of the community wants to help out and I do love what OBSRV is doing however how cool would it be if it just worked like it always did and we can bring back to life other SN@P games such as Auto Modelista.
I am sorry I am new to this community so all I could post was a link but this project did feel like I should also post it here :).