Post Reply 
 
Thread Rating:
  • 4 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Dissidia 012: Duodecim Final Fantasy
11-03-2015, 03:17 AM (This post was last modified: 11-03-2015 03:31 AM by AdamN.)
Post: #118
RE: Dissidia 012: Duodecim Final Fantasy
(11-03-2015 02:47 AM)Shinoda Wrote:  
(11-02-2015 11:30 PM)AdamN Wrote:  * Host (who create a room) will broadcast UDP data to everyone in the same Group on AdhocServer (usually everyone playing the same game) using port 1 every few seconds.

* When Host started the battle, Host will delete the room and bind to port 1,2,3 (UDP) and 4 (TCP) and Clients will automatically try to connect to these ports on Host (when client detects that the battle has been started) and communicate for the rest of the battle using these ports.
If one of the client failed to connect to these ports on Host the rest of the players will stuck unable to start the battle.

So both the room and one of the potential ports for the battles is Port 1 (UDP)? Sounds like potential conflicts if packets don't go fast enough... I'm guessing that's built-in the game and not something the emulator could attempt to stabilize though, right? Like, Room is port 1 (UDP) and Battle is port 2 (UDP). No random ports and clients scanning for which of the 4 Host might have picked?

We did some tests tonight (with results that I think Sys should be posting soon) and we got it to work sometimes (Once in about 10 tries). Couldn't isolate variables. Some clients got to "Preparing for battle" and some others got "Room deleted" and even a few times the emulator just crashed when the host would start the battle.. Maybe the "Room deleted" events happened because of that random port crap and the others got the preparing for battle because they succeeded in finding the port?

No blank screens to report though.

I don't think it use random ports, everytime i tested it it always use port 1-4, i know it's an absurd port number in most system, but on a real PSP no other application is using those port, and all port can be used by the game i guess.
I updated my build recently to add another network option (thanks to LunaMoo) to change the port offset value so it won't use absurd or privileged (<1024) port anymore.

And client didn't actually "scan" but it listen to broadcasted data from host in order to know that there is room available.

Anyway, i think the remaining issue is caused by memory corruption in the PSP memory, which probably related to adhoc callback, as i have no information whether the buffer used by the callback should be managed (freed) by system or by the game, currently i assume it's allocated and freed by system (part of adhoc implementation) and i'm sharing the same buffer to be used for all matching events.
I'll try to separate the buffer for each event later to see whether it makes any difference when i had the time.

My Modified PPSSPP (old version):
=========================
Win32: https://www.dropbox.com/s/iowb4kr00nzbs7k/PPSSPPWindows.zip?dl=0
Win64: https://www.dropbox.com/s/dujdrcnec3nryrq/PPSSPPWindows64.zip?dl=0
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Dissidia 012: Duodecim Final Fantasy - AdamN - 11-03-2015 03:17 AM
Dissidia 012 Support? - xokrath - 01-29-2014, 03:20 PM
Duodecim lobby problems - Scrawny - 08-21-2014, 12:18 PM
Dissidia Duodecim 012 - Esperstarr - 10-31-2014, 03:47 AM
Dissidia 012 online - 12771a - 04-04-2015, 01:41 AM

Forum Jump: