Giter VIP home page Giter VIP logo

directplay-lite's Introduction

DirectPlay Lite

What is this?

DirectPlay Lite is an open-source reimplementation of Microsoft's DirectPlay API, intended to help preseve old games as official support for DirectPlay wanes.

Rather than being a full reimplementation of the DirectPlay specification, DirectPlay Lite aims to provide a compatible API to games, while removing some of the other complexity, such as support for multiple service providers - games requesting the TCP/IP or IPX service providers will actually use IP, masquerading as another protocol where necessary.

NOTE: This is currently early in development and aimed at people or companies repackaging old games. Only a limited portion of the DirectPlay (8) APIs are implemented and installing it isn't user-friendly.

Building

All programs and DLLs in the distribution can be built by running build.bat from the x86 Visual Studio command prompt.

Using

DirectPlay Lite can be loaded into a game using the two following methods.

Installation as a COM DLL

This is the way DirectPlay and COM were designed to operate. The DirectPlay class registrations are added to the registry and the DLLs are copied somewhere for all applications to use.

Registration from a hook DLL

This method is less invasive, but depends on undefined behaviour and may not work everywhere. A "hook" DLL is placed alongside the game, which masks one of the libraries it usually loads. When the hook DLL is loaded, it hooks some of the COM APIs in order to inject the DirectPlay class registrations and loads the masked library, redirecting any function calls into it.

The following hook DLLs are currently built:

  • ddraw.dll
  • dsound.dll

New hook DLLs can be built by dumping a list of exported functions from the DLL you want to wrap, producing a stub assembly listing with mkstubs.pl and updating build.bat to build it.

NOTE: Only ONE hook DLL should be used.

Copyright

Copyright © 2018 Daniel Collins [email protected]

Includes the Minhook library by Tsuda Kageyu.

directplay-lite's People

Contributors

solemnwarning avatar

Watchers

 avatar

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.