Code Monkey home page Code Monkey logo

booma.proxy's Introduction

Booma.Proxy

Booma.Proxy is actually not a Proxy. It is a collection of C#/.NET libraries for communication, understanding and emulating Phantasy Star Online Blue Burst. These can be used to construct an emulated PSOBB server or an emulated PSOBB client. In fact this repository contains an in-development implementation of a client in Unity3D.

This project is built on top of 17 years of the reverse engineering work done by many in the community, Sodaboy's proxy, Sylverant's opensource C++ DC/BB/GC server implementation and one of the most recent public Tethella releases.

Special thanks to Soly for implementing and explaining the cryptography involved!

How and Why

Booma.Proxy's libraries relies on the extendable and flexible metadata based serializer that I built for the World of Warcraft protocol, FreecraftCore.Serializer. FreecraftCore.Serializer was chosen because of the productivity, readable and usability it provides. Although it originally started as a WoW serializer inspired by Blizzard's on internal serializer it has become a staple for any emulation work that I do. Rewriting the same manual serialization that has been written 1,000 times since the Dreamcast isn't helpful or useful to anyone anymore so I feel it's time to step it up a notch and bring industry grade serialization techniques and workflows to PSOBB packets.

Structure

There are 5 main services in Phantasy Star Online Blue Burst. These are Patch, Login, Character, Ship and Block. They each contain a set of service specific operation codes and payloads (the data part of the packet). Additionally many of the game services have shared packets that they use.

Some of these projects are empty, such as Login, or nearly empty. This is either because the majority of the packets are shared between the other services or they have yet to be implemented.

Each packet has a 2 byte operation code. For the Patch service that operation code is called PatchNetworkOperationCode and for the Game services that operation code is called GameNetworkOperationCode.

Packets, or payloads as their data is referred to in the project, are usually dispatched to handlers that can handle them. There can be more than one handler per-payload defined. Depending on the situation you may want to use one or the other. See an example of a handler here that's called SharedWelcomePayloadHandler. It handles a welcome message and initializes the provided encryption IVs.

TODO continue doc

Builds

TODO

Tests

AppVeyor: Build status

License

Contributions including pull requests, commits, notes, dumps, gists or anything else in the repository are licensed under the below licensing terms.

AGPL with an unrestricted perpetual non-exclusive license granted to HelloKitty/AndrewBlakely

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.