-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
BBA: Tap-less/Built-in network translation #10564
Conversation
…o real size. tap-less device more stable
…ke it more proxy friendly
Can you please rebase this PR to fix the merge conflict in |
FYI, you can click "view all 115 lines" to see the whole list of lint errors (the default view only shows the last 30 lines). |
Yes thx! just missed a few doing them by hand |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I gave it a first look. You might want to take inspiration from Common/Network.h
and Core/NetworkCaptureLogger
for some of the packet construction facilities we have.
You might want to have a look at Core/IOS/Network/Socket
for the socket handling if relevant (TCP/UDP socket and the socket table). I don't known how tight to SFML's socket the code is but I'm sure with a more object oriented approach many if-else
can be removed using a class.
// i18n: MAC stands for Media Access Control. A MAC address uniquely identifies a network | ||
// interface (physical) like a serial number. "MAC" should be kept in translations. | ||
address_label = new QLabel(tr("Enter the DNS server to use:")); | ||
address_placeholder = QString::fromStdString("8.8.8.8"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't QStringLiteral("8.8.8.8")
be used?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mabe, i honestly just did like the 2 other one (tap and xlink)
i will take a look at those network stuff
Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp
Outdated
Show resolved
Hide resolved
Source/Core/DolphinQt/Settings/BroadbandAdapterSettingsDialog.cpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments regarding the coding style.
Does this work for games like MK:DD, Kirby Air Ride and 1080 Avalanche, which don't use a server? |
@JMC47 Doing the fine tuning for them, got all of them working on my setup, doing some more testing with other ppl |
Following @ShiftaDeband I commented the line number 502 Testing with PSO Episode 3 lobby loaded at the correct speeds Specs: Wonderful work you guys are doing! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested a last time on macOS and it seems very stable. But I cannot find the new setting to setup the IP as the commit comment says
BBA_BUILTIN_IP <- i made it a ini config only, set it to an ip to force it, or remove to have it auto. This was needed for LAN play, games send theire IP in various packets and it work better if the IP being given to the gamecube is the same as your pc/mac/host For server game like PSO and Homeland any ip should work. The option is there for MK DD, Air ride and 1080. Those game also relay on Simple discovery service(port 1900) wich is also used by windows and probably macos. On windows stoping the SSDPSRV service is needed for game to find each others |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those game also relay on Simple discovery service(port 1900) wich is also used by windows and probably macos. On windows stoping the SSDPSRV service is needed for game to find each others
If that behaviour is detected, you should probably add a dedicated log message or popup to warn users about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another thing I missed, since you use pointers to raw memory and memcpy
a lot, you should add a static assert in all the structures in Network.h
and BuiltIn.h
ensuring that these are trivially copiable.
Also, C++ doesn't guarantee memcpy
to be available in the global namespace so you should prefix them with the std::
namespace.
When possible, you should also prefer using std::fill
and std::fill_n
rather than std::memset
.
… emulation is slow. partial ACK now supported
Recommended PR title: "BBA: Tap-less/Built-in network translation" |
@sepalani can you run the build so i can see the lint errors! Also all major issue have been resolved so this would be ready to review and eventualy merge |
fyi: you will need to rebase it on current master to make windows build work (sorry) |
FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:
automated-fifoci-reporter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments regarding the code.
What would be nice to change if that doesn't impact the performance and the behaviour would be replacing the C-style approach with their C++ equivalent:
- static array ->
std::array
- allocated array ->
std::vector
- C style cast -> C++ cast
Can you rebase this on master and clean up the commit history? Just squashing to 1 commit is fine if there's no meaningful intermediate state. |
some vector fix
I messed up by fetching instead of a rebase, i cannot clean most of the commit. i will close this pr and make a new one with a single commit |
You don't need to close the PR, you can just redo things locally and force-push to the same remote branch name. If you want to, you can even reopen this PR. |
You can also use |
Added a new network option for gamecube, no Tap needed.
Also fixed a bug in the BBA code where the buffer end 1 early.
This is a WIP and has been tested on PSO GC for now. Build tested on windows and Linux.