-
-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Network lag (dc) #17
Comments
PS2 version address note. fix gp address for broken ps2dis:)
buffer frames
|
The problem that flycast doesnt work smoothly can be solved by increasing modem poll rate. |
@gh0stl1ne
I call build.sh from git bash. This is based on original appvayor.yml Note: |
This is my investigation of DC version DX. Setup ghidra
You have to learn SH4 operations. If you really need analysis, I recommend to do decompiling a small function by hand. How to serach.Firstly, search ps2 version with ps2dis, and find the corresponding function with Ghidra. In SH4, a signed 1-byte constant may be used in an immediate instruction.
|
Function starting with 0c0366ce is ReflectMsg function. Address 0c3abb91 probably stores current pad-delay. The new pad-delay value is compared with the upper limit before set. (see 0c03534c ~ 0c03534e) |
inada-s/flycast@994a439 With modem polling rate fix and pad-lag fix, The game is now playable level on local server. |
The final target is: This is the same of zdxsv. |
Know only some things about the Kddi DC games but happy to help. |
O, Oh..? Sega-AM2 Co., Ltd ..? I'm working on this project while I'm staying at home because of the coronavirus. |
First, I dumped the PPP communication during a 4 players battle. |
I found ppp_recv still has some overhead.
|
Yes, official.. However I can help you out on spare time, like now. Is this the whole packet log(s) you captured? What is Flycast..? EDIT: I checked it out, emulator. I dont need it, have a Katana 5.24 right here. |
game server90% of lobby server and battle server have been implemented. game clientThis server does not implement the ppp server. Only above tcp. Flycast is a Dreamcast emulator. The modem emulation and is also working. current problemWe can play on the local network, but if it's over the internet, network lag becomes a problem. I live within walking distance of Tokyo Station. |
I can do this in realtime on Katana development hardware.. Anyway, for regular consoles, one can use codebreaker codes OR vmu save, or even a patcher disc like BluCrab PSO Patcher disc, which also was done for Alien Front Online to patch address to connect to. Let me know if you need help with something specific. |
The game connects to the Internet using a hard-coded KDDI phone number, PPP login ID and password. After that, connect to the game server with TCP over PPP. My current goal is to be able to play on the emulator. |
Flycast modemflycast's modem have a number of receive overhead factors that are difficult to eliminate The biggest problem is interrupt callback jam. UpdateSystem() delayThis is caused when Synchronous Rendering is enabled. rend_end_sch blockhttps://github.com/flyinghead/flycast/blob/836780d8a74c880c1cfdf3ddb0d19a5d031a0963/core/hw/pvr/Renderer_if.cpp#L438 Increasing the delay of sh4_sched_request(render_end_schid, n) may reduce the block. AicaUpdate blockstested on:
this blocks ~18ms. Waiting for audio buffer(?) On second thought, even if the emulator accept receiving modem data for entire frame, Next stepFor the time being, I leave this problem and continue developing gdxsv with 8fr padlag . movie: https://youtu.be/I9rtGcymcRA
|
I came up with the idea that insert short-sleep interrupt so that a single frame process ends in just one frame time. |
Well done! |
@inada-s Great job on this server! I wanted to share with you that with a few modifications were made by a developer named Shuouma, and now the game works very well on real Dreamcast Hardware! Hope to see more Japanese Dreamcast game servers reversed engineered! Thank you for your hard work! |
I'm surprised to see the news. |
I didn't think about the release yet, so I didn't put the license file. |
I'll forward that question to Shuouma. He wanted your permission before releasing any code. Its just hosted on a private server for now :) |
It was pretty much ready to go, just needed to increase the SetReadDeadline timeout in the mcs from 10 to 30, due to the DC loading time. I deployed it just to help out on this issue. If you still want to do a UDP Proxy I would gladly help setting up a TCP<->UDP on the actual dreampi. |
thanks I'll fix it.
The effect of UDP proxy is very good. |
We will test more, but I cant "feel" any input delay when playing on the actual hardware. |
@ShuoumaDC for your information, the input lag reduction memory hack is here: https://github.com/inada-s/flycast/blob/e000712ba3d31d75eb0a2c4b4e33f2b21ed4d86b/core/gdxsv.cpp#L60-L61 |
By installing a patch in the game and bypassing the modem implementation, we were able to get zero modem overhead. I didn't really want to do this (because it didn't contribute to the flycast) |
goal
The text was updated successfully, but these errors were encountered: