Cross platform ggpo gui client for windows, mac osx and linux

papasipapasi N Ken is the truthJoined: Posts: 1,568
https://github.com/doctorguile/pyqtggpo

major props to pof for reverse engineering the protocol!

http://poliva.github.io/ggpo/
eltrouble "I doubt that ST will be on the main stream ever again."
OhNuki: Real men play ST!!
James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/

Comments

  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    version 0.0.3 alpha

    per request from furntree this version has support for the `Unsupported Games` game room on ggpo.


    https://github.com/doctorguile/pyqtggpo/releases


    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
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • JedahsMinistryJedahsMinistry BattousaiCV Joined: Posts: 542
    The unsupported state server/switching feature is great!
    Gettysburg, PA
    Netplay Poverty - http://www.twitch.tv/randomalt
    X-Men COTA and stuff - http://www.youtube.com/user/BattousaiCV
    Blurbs about games - http://twitter.com/BattousaiCV
  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    edited March 2014
    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

    https://github.com/afurlani/ggpostates

    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
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    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.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    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).
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    papasi wrote: »
    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);
    

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    edited March 2014
    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
    [mame ui](http://qmc2.arcadehits.net/wordpress/style-sheets/)
    [dark orange](http://tech-artists.org/forum/showthread.php?2359-Release-Qt-dark-orange-stylesheet)
    [xp](http://newsgroup.xnview.com/viewtopic.php?t=16181)

    ### QT stylesheet reference
    [reference](http://qt-project.org/doc/qt-4.8/stylesheet-reference.html)
    [examples](http://qt-project.org/doc/qt-4.8/stylesheet-examples.html)

    ## 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.

    https://github.com/doctorguile/pyqtggpo/releases/tag/v0.0.5

    #version 0.05
    auto check for savestate changes when you join unsupported game channel
    Post edited by papasi on
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • JedahsMinistryJedahsMinistry BattousaiCV Joined: Posts: 542
    First time using Github, just submitted a pull request for 6 new savestates.
    Gettysburg, PA
    Netplay Poverty - http://www.twitch.tv/randomalt
    X-Men COTA and stuff - http://www.youtube.com/user/BattousaiCV
    Blurbs about games - http://twitter.com/BattousaiCV
  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    edited March 2014
    OK with the help of netmon and Process Explorer, the mystery is solved.

    http://www.microsoft.com/en-us/download/details.aspx?id=4865
    http://technet.microsoft.com/en-us/sysinternals/bb896653

    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.

    https://github.com/doctorguile/pyqtggpo/releases

    #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
    Post edited by papasi on
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • JedahsMinistryJedahsMinistry BattousaiCV Joined: Posts: 542
    Would it be possible to add timestamps to the chat?
    Gettysburg, PA
    Netplay Poverty - http://www.twitch.tv/randomalt
    X-Men COTA and stuff - http://www.youtube.com/user/BattousaiCV
    Blurbs about games - http://twitter.com/BattousaiCV
  • papasipapasi N Ken is the truth Joined: Posts: 1,568
    edited March 2014
    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


    Post edited by papasi on
    eltrouble "I doubt that ST will be on the main stream ever again."
    OhNuki: Real men play ST!!
    James Chen: there is something special about playing ST on a cab. It just feels so goooooood.
    Super Turbo Hitbox & safe jump guide http://www.strevival.com/hitbox/
  • Missing PersonMissing Person Righto. Joined: Posts: 13,813
    I mentioned this on GGPO's forums, but no chance of a GTK version?

    Still, awesome work. :tup:
    XBL: WatCnBrwnDo4U | PSN: LanierIsPlusEV/FORpowerfulGame | CFN: MissingPerson/YddeDdeDe GGPO/FightCade: Missing Person | Steam: [TAS] Missing Person | Battle.net: MissingPersn#1365
    Twitter: JTMMissingPersn | Instagram: jtmmissingperson | Twitch: twitch.tv/missingpersonsrk
  • narsnars Your local Gunta Hunta. Joined: Posts: 289
    wait wait wait, so I can finally play GGPO on my macbook? and this is xplatform, so I can play a buddy on windows?
  • blood spit nightblood spit night Joined: Posts: 96
    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
  • marumarumarumaru Joined: Posts: 3
    I got error message ''Couldn't initialize DirectDraw7/ Direct3D7 Enhanced video output module''. How to install ? Im using wine on macosx.
Sign In or Register to comment.