major props to pof for reverse engineering the protocol!
version 0.0.3 alpha
per request from furntree this version has support for the Unsupported Games
game room on ggpo.
Support a database of ggpo unsupported game save states in the Unsupported Games room
Keyboard shortcuts for resizing splitter
Embedded command line interface as chat commands
Type /help to see a list of commands available
/away - away from keyboard
/back - become available to play
/accept [name] - accept incoming challenge
/decline [name] - decline incoming challenge
/challenge [name] - challenge player
/cancel - cancel outgoing challenge
/watch [name] - spectate a game
/ignore [name] - ignore a player
/unignore [name] - unignore a player
/motd - clear screen and show message of the day
/help - display help menu
Fixes
fixes send / receive challenge in 3s and kof rooms
disable login button while waiting for response from ggpo.net
The unsupported state server/switching feature is great!
I’m really bad with this but credits go to furntree and hanasu for the original idea and providing the savestates
Please help out submitting the missing game’s savestate by contacting them at github
All you have to do is load up the game, get to the title screen and save a state.
PM/Email furntree/hanasu or submit a pull request to their repo
It’s really nice don’t have to worry about flash wasting resources.
Only thing really missing is adding Input delay to make the matches smoother.
Features i can think of are custom theme and automatically decline a challenge if the ping is too high.
I already gave furntree my old savestate for Breakers Revenge Training.
POF doesn’t know about how to change the input delay, I don’t think the input delay option is one of the client-server ops.
It’s probably a undocumented option argument to pass to ggpofba.exe.
Couldn’t get a response from Ponder either, but if you know I can add a setting for that easily.
For custom styles, everyone is welcome to submit additions.
http://qt-project.org/doc/qt-4.8/stylesheet-reference.html
http://qt-project.org/doc/qt-4.8/stylesheet-examples.html
We can load external qss files but if resources (checkbox png, etc) are needed (mostly required for darker themes)
they will need to be specified in absolute paths and a bit PITA.
If it’s bundled those can be loaded from resources (qrc).
Took a quick look at the fba source. Only thing that looks to be dealing with frames for the command line is “quark:synctest”.
I only looked in fba_ggpo.cpp
sscanf(connect, "quark:synctest,%[^,],%d", game, &frames);
So furntree found this in ggpo\config\ggpofba.ini
// — ggpo settings ---------------------------------------------------------
nLatencySmoothing 1
I grep the fba source code I don’t see they read this from ini at all.
And when you change the smoothing in the official client, they don’t modify the ini but instead saved it in adobe air local db
C:\Documents and Settings\USERNAME\Application Data\com.doubleperfect.ggpo\Local Store\SharedObjects\ggpo.swf\ggpo.sol
username
password
ignoredUsers
smoothing
So it seems like it might be a client-server op after all. Probably an wireshark trace while using the official client, change that setting and start a game will help.
BTW https://github.com/doctorguile/pyqtggpo/releases
#Version 0.04
- Unsupported game room - Add rom prefix in chat
- More themes and Custom Qt Stylesheet
Sample stylesheets
QT stylesheet reference
Fixes
- fixes error when someone who challenged you left the room
You can now load external stylesheet.
The mame ui has some cool themes but they only skin the widgets that they used. So QTableView is not styled.
If anyone has a completed one feel free to send it my way and I can include them in the build.
#version 0.05
auto check for savestate changes when you join unsupported game channel
First time using Github, just submitted a pull request for 6 new savestates.
OK with the help of netmon and Process Explorer, the mystery is solved.
http://www.microsoft.com/en-us/download/details.aspx?id=4865
This is how the official client invokes ggpofba with a smoothing of 4
ggpofba.exe quark:served,ssf2t,challenge-06366-1395521015.66,7000,4 -w
I think the current released ggpo source code is not current
QuarkInit(TCHAR *connect) {
if (strncmp(connect, “quark:served”, strlen(“quark:served”)) == 0) {
sscanf(connect, “quark:served,%[^,],%[^,],%d”, game, match, &port);
ggpo = ggpo_client_connect(&cb, game, match, port);
}
}
From the [MEASURING GGPOFBA MICRO STUTTER] thread, to port ggpo to the latest fba we’ll need an update source tarball from Ponder.
I think I have all the things I personally want checked in now. If you guys have any bug reports feel free to contact me.
#Version 0.06
- Support recall chat history with up and down arrow keys
- Fix emoticon button size issue
#Version 0.07
- Add smooth networking settings like in official client
- Add a custom scheme url for accept decline challenge.
- Support custom emoticons
- Use green color for links
#Version 0.08
- Option to show country flags in chat
- Allow double click on player names to challenge/cancel/spectate
- Show Ping and Country for incoming challenge
- Remove challenge/decline table column
#Version 0.09
- display game title etc info when selecting unsupported game savestates
- support cli command
/incoming
to list all challengers
Would it be possible to add timestamps to the chat?
Yeah it was on my todo but I deleted it somehow.
Added in version 0.1.1
- option to show timestamp in chat
Version 0.12
- support filter when picking savestates
I mentioned this on GGPO’s forums, but no chance of a GTK version?
Still, awesome work. :tup:
wait wait wait, so I can finally play GGPO on my macbook? and this is xplatform, so I can play a buddy on windows?
is there a possibility to add a challenge filter by ping/country, ie anyone over 150 ping can’t challenge you or only people from US/NA can challenge
I got error message ‘‘Couldn’t initialize DirectDraw7/ Direct3D7 Enhanced video output module’’. How to install ? Im using wine on macosx.