79 lines
3.1 KiB
Plaintext
79 lines
3.1 KiB
Plaintext
This file contains information on the implementation of the direct play
|
|
and direct play lobby features.
|
|
|
|
Most methods and APIs are not implemented at this point. Examine the code
|
|
to see what has been implemented. Stay tuned for some information here once
|
|
there is more implementation (and I figure out what the heck I'm doing).
|
|
|
|
The files are include/dplay.h, include/dplobby.h, multimedia/dplobby.c and multimedia/dplay.c.
|
|
The .c files will be moved to appropriate dll directories at some later time.
|
|
|
|
I think I can safely say that any application which requires direct play
|
|
or direct play lobby will not work at this point. Priority will be to get
|
|
examples from the sdk running. Once they're at least partially working, I can
|
|
get down to trying to get some of the games working.
|
|
|
|
A small issue will be the fact that DirectX 6.1(ie. DirectPlay4) introduces a layer of functionality
|
|
inside the DP objects which provide guaranteed protocol delivery. This is
|
|
even if the native protocol, IPX or modem for instance, doesn't guarantee it. I'm going to leave
|
|
this kind of implementation to as close to the end as possible. However, I
|
|
will implement an abstraction layer, where possible, for this functionality.
|
|
It will do nothing to start, but will require only the implementation of the
|
|
guaranteness to give final implementation.
|
|
|
|
|
|
TODO:
|
|
- (done) Header files for DP4 and DPL3
|
|
- (done) Add stub functions for all DP4 and DPL3 interfaces
|
|
- (done) Correct naming of the parameters for DP3 and DPL2
|
|
- (done) Seperate out DP and DPL into multiple .c files
|
|
- (done) Allow CoCreateInstance to create the new interfaces
|
|
- (started)Implement mutual exclusion on object data for existing functions
|
|
- (done) Create and move to correct dll directories (dplay and dplayx)
|
|
- (done) Implement dplay in terms of dplayx
|
|
- (started) Need a better internal implementation for the objects which scales and
|
|
preferably doesn't involve casting structures
|
|
- (started) More generic initialization and destruction helper methods based off
|
|
the chosen internal implementation
|
|
- How to deal with all the incorrect interfaces for IUnknown methods. The standard
|
|
wine macros are incorrect in that they always give IUnknown* rather than DirectPlayLobby2A
|
|
for instance. Are we forced to cast?
|
|
- Implement a lib main for the dplayx dll
|
|
- Ensure that all dll stubs are present and the ordinals are correct
|
|
- Implementation of functionality
|
|
- bug fixes ;)
|
|
|
|
Programs to make work:
|
|
- lserver.exe (from sdk)
|
|
- override.exe (from sdk)
|
|
- dpchat.exe (from sdk)
|
|
- duel.exe (from sdk)
|
|
|
|
Next API to implement on a per program basis:
|
|
override.exe
|
|
- IDirectPlay3AImp_EnumConnections
|
|
- ?
|
|
|
|
dplaunch.exe
|
|
- IDirectPlayLobbyAImpl_EnumLocalApplications
|
|
- ?
|
|
|
|
lserver.exe
|
|
- IDirectPlayLobby2WImpl_Connect
|
|
- IDirectPlay3WImpl_CreatePlayer
|
|
- IDirectPlay3WImpl_CreateGroup
|
|
- IDirectPlay3WImpl_SetGroupData
|
|
- IDirectPlay3WImpl_Send
|
|
- ?
|
|
|
|
bellhop.exe
|
|
- DirectPlay3AImpl_EnumConnections
|
|
- ?
|
|
|
|
dpslots.exe
|
|
- IDirectPlayLobbyAImpl_SetConnectionSettings
|
|
- IDirectPlayAImpl_EnumConnections
|
|
- ?
|
|
|
|
Peter Hunnisett - hunnise@nortelnetworks.com
|