Dolphin, the GameCube and Wii emulator - Forums

Full Version: Feature Request Thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(02-17-2020, 09:50 AM)Lucario Wrote: [ -> ]What's the use of "Null" as video backend?

Performance testing and debugging.
(02-17-2020, 06:54 PM)JosJuice Wrote: [ -> ]Performance testing and debugging.

Right, but is it still used for testing today? I was thinking maybe it's time to go, the emulator always need a vision so...
(02-19-2020, 08:45 AM)Lucario Wrote: [ -> ]Right, but is it still used for testing today? I was thinking maybe it's time to go, the emulator always need a vision so...

Nope. That won't happen. Testing is an ongoing process, don't expect that to ever come to a conclusion. I rather expect Dolphin going downhills from here if we get just rid of all the debugging tools, so yeah... Don't do that.

Besides... The Null Backend doesn't really bother me. It's not that it's in my way and it doesn't complicate the usage of Dolphin itself.

Why would you want it removed?
An option to set dolphin online / offline would be nice.

Some games cause problems, hangs, when trying to connect online to nintendo servers.
I talked to JosJuice on IRC about where to put my feature requests (the advice was to make 3 separate threads after discussing the nature of the requests)
However after seeing this topic I felt it would be more appropriate to post them here.

The backstory is that I am in a netplay/modding community and thus most of the requests are related to this.
I'd love it if @josjuice , @helios and @spycrab could take a look at the feasability of these requests.
Apologies if some of these are already on github/in the works.

The feature requests can be divided into three categories:



Netplay:
► More settings for host input authority mode
- From our testing and from what I've read in the progress reports this mode is quite a bit more responsive and has less stuttering than the traditional netplay
- options the only downside is that the host gets a "lag advantage" since there is less input delay for him, it would be nice if there was some way
- to match the delay the opponent has (if such an option is not already present) - (not talking about golf mode however)

► Show frametimes of host and opponent in netplay window
- faster melee and other (ishiiruka based) builds already have this feature, this will basically allow us to see if someone's computer can keep up with dolphin or not.

► Show if players are connected to wifi or wired network (through icon next to name)
- basically a nice to have, but if a system call or similar is needed for this functionality I can understand why it won't be implemented

► Independent buffers (separate settings for min buffer and max buffer)
- Not actually sure what the added value of this is, but it's in some of the ishiiruka based builds (faster melee)

► Rollback netplay See reply by JosJuice

- Not my own request but by a fighting game enthusiast friend. From what I've read this is basically very hard to do because of buffering/savestating

- that dolphin does 60 times (or less) per second which is very resource intensive, however maybe something has changed between what I read and now.

Android netplay:
► Netplay for android
- Currently android doesn't have netplay options, and I can understand why. However with the rise of cheaper smartphones with Snapdragon 845, 855 and higher
- processors and preparations for 5G network being made I think that a lot of people will be able to/want to play netplay on the android build.
- Are there currently any plans for netplay on Android? I don't know how often the android builds get updated.



Gecko codes:
► Support for Folders or metadata (tags) or both in the gecko codes (and AR codes?) tab in game properties.
- When the gecko codebase for a game grows it becomes much harder to manage, currently there's no good way to categorize the codes or to only turn codes of a
- certain type/category on and off, it would be nice if we could make our own folders or tags for these codes

► Hold mouse button (2s?) to select/deselect codes faster
- basically just to turn a row of codes on or off much faster

► Ability to load gecko codes (or perhaps better yet load a gecko codes folder) from external .txt file
- the usecase here is that mod communities who want to frequently test and distribute new builds can make sure that their test or playerbase
- always loads the latest codeset, further research is required on whether such a feature doesn't create an unwanted information security attack vector however.



TAS tools and misc:
► TAS input table (TAStudio)
- This feature is currently only in bizhawk and a select few emulators to my knowledge, last I read bizhawk and the latest dolphin versions don't play nice together
- (although I have been unable to find the time to test this for myself)
- Example is included as a screenshot.
- It would be nice if you could edit the input table like an excel sheet (and copy paste to repeat certain inputs, perhaps even from excel itself)
- TASinput already exists within dolphin and is nice, but it only allows you to edit/input things one frame at a time
[Image: VKaj1vK.png]

► Faster loading (usb loading emulation?) See reply by mbc07 and the message thread after, currently even with the option mbc07 point out the loading is still significantly slower than ishiiruka based builds.

- So in the past some builds of dolphin had much faster or slower loading than normal, most noticeable on say a game like smash bros. brawl

- during the zelda>sheik transformation, this seems to have changed since about the 5.0-6900 and up builds (don't know the exact build number)

- now all the loading mimics a real wii's loading time, which is good for the accuracy of the emulator.

- however wii's with a usb devices could load assets/this transformation a lot faster, and the ishiiruka based builds have at least somewhat faster loading

- is there perhaps some game.ini setting I'm aware of that could do this or does this need to be an actual feature request?

► Other TAS tools
- Just thought I'd throw this out there since BizHawk made their own little TAStools feature comparison table and why TAS'ers might want them
- http://tasvideos.org/EmulatorResources/Features.html#2



○ game.ini settings questions
- not a feature request but two questions regarding game.ini settings
1. I remember reading about a setting that could up polling on controllers, what is this setting and is there documentation on it?
2. same for audio stretch
(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Faster loading (usb loading emulation?)
- So in the past some builds of dolphin had much faster or slower loading than normal, most noticeable on say a game like smash bros. brawl
- during the zelda>sheik transformation, this seems to have changed since about the 5.0-6900 and up builds (don't know the exact build number)
- now all the loading mimics a real wii's loading time, which is good for the accuracy of the emulator.
- however wii's with a usb devices could load assets/this transformation a lot faster, and the ishiiruka based builds have at least somewhat faster loading
- is there perhaps some game.ini setting I'm aware of that could do this or does this need to be an actual feature request?

That one already exists, but it has to be enabled per-game. Right-click the game on the game list, go to properties and check the "Speed Up Disc Transfer Rate" option. I made a feature request years ago to have a global toggle for this option (disabled by default) but the devs were hesitant to add it because it reportedly can break some games, even through most games seems to benefit from this. I've manually enabled this option for every game I own and hadn't encountered any issue (on current development builds, I didn't encounter the audio issues with Smash Bros Melee anymore, which I remember happening in the past when Speed Up Disc Transfer was enabled)...
(03-10-2020, 01:03 PM)mbc07 Wrote: [ -> ]That one already exists, but it has to be enabled per-game. Right-click the game on the game list, go to properties and check the "Speed Up Disc Transfer Rate" option. I made a feature request years ago to have a global toggle for this option (disabled by default) but the devs were hesitant to add it because it reportedly can break some games, even through most games seems to benefit from this. I've manually enabled this option for every game I own and hadn't encountered any issue (on current development builds, I didn't encounter the audio issues with Smash Bros Melee anymore, which I remember happening in the past when Speed Up Disc Transfer was enabled)...

Thank you for the information, I've written it down for future reference.
Since the feature is already present in dolphin and you already made a feature request I'll be marking it red in my original post.
Hopefully the dolphin devs will have time to take another look at your request sometime in the future since the last update was 3 years ago.
(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► More settings for host input authority mode
- From our testing and from what I've read in the progress reports this mode is quite a bit more responsive and has less stuttering than the traditional netplay
- options the only downside is that the host gets a "lag advantage" since there is less input delay for him, it would be nice if there was some way
- to match the delay the opponent has (if such an option is not already present) - (not talking about golf mode however)

Do you mean that you want an option that adds artificial latency for the host? If that is added, it would be possible for the host to "cheat" by hacking this additional latency out of their build of Dolphin, but it is something that should be possible to add. (But I don't know enough about the netplay code to know if it would be easy to add...)

(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Show frametimes of host and opponent in netplay window
- faster melee and other (ishiiruka based) builds already have this feature, this will basically allow us to see if someone's computer can keep up with dolphin or not.

Is there a reason why you want the frametime specifically? If I'm understanding the reason why this is wanted correctly, what you want is a measure of how long it takes for each player to emulate a timeslice during which no time is spent waiting on receiving input from other players (since otherwise the performance of the other players and the network will influence the measurement). However, the polling interval for (most? all?) games is greater than 60 Hz, so Dolphin will in fact have to wait for input in the middle of each frame. Wouldn't it make more sense to measure the time it takes to emulate each poll-to-poll timeslice rather than each vblank-to-vblank (or XFB-to-XFB or similar) timeslice?

(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Show if players are connected to wifi or wired network (through icon next to name)
- basically a nice to have, but if a system call or similar is needed for this functionality I can understand why it won't be implemented

This would indeed require system calls, with a different one being needed for each operating system (if this even exists on all the major operating systems we support – I haven't checked). Perhaps it would make more sense to show some kind of graph of network latency?

(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Independent buffers (separate settings for min buffer and max buffer)
- Not actually sure what the added value of this is, but it's in some of the ishiiruka based builds (faster melee)

I don't understand this option at all. Could you explain?

(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Rollback netplay
- Not my own request but by a fighting game enthusiast friend. From what I've read this is basically very hard to do because of buffering/savestating
- that dolphin does 60 times (or less) per second which is very resource intensive, however maybe something has changed between what I read and now.

This would be very resource intensive, and nothing has changed regarding that recently. Dolphin's savestate system is too slow to run every frame while still having the game run at full speed.

(03-10-2020, 11:53 AM)FourSword Wrote: [ -> ]► Netplay for android
- Currently android doesn't have netplay options, and I can understand why. However with the rise of cheaper smartphones with Snapdragon 845, 855 and higher
- processors and preparations for 5G network being made I think that a lot of people will be able to/want to play netplay on the android build.
- Are there currently any plans for netplay on Android? I don't know how often the android builds get updated.

I would like to add this at some point. However, very few people are working on Android right now, and I'm busy with various things myself, so I wouldn't be surprised if this ends up taking years to get added.

Also, for the reference, netplay typically does not work on mobile networks due to carrier-grade NAT being in use. (You can test this right now if you connect a PC to a mobile hotspot.) You would need to use Wi-Fi or Ethernet.
(03-10-2020, 11:44 PM)JosJuice Wrote: [ -> ]Do you mean that you want an option that adds artificial latency for the host? If that is added, it would be possible for the host to "cheat" by hacking this additional latency out of their build of Dolphin, but it is something that should be possible to add. (But I don't know enough about the netplay code to know if it would be easy to add...)

Yes basically equalizing the amount of delay both parties have, if they hack their additional latency out of their build isn't there a chance of desyncing? anyway I'm not sure if many people would know where to look/hack this, and if it's an option in the netplay window they can always turn it off if both parties agree

Is there a reason why you want the frametime specifically? If I'm understanding the reason why this is wanted correctly, what you want is a measure of how long it takes for each player to emulate a timeslice during which no time is spent waiting on receiving input from other players (since otherwise the performance of the other players and the network will influence the measurement). However, the polling interval for (most? all?) games is greater than 60 Hz, so Dolphin will in fact have to wait for input in the middle of each frame. Wouldn't it make more sense to measure the time it takes to emulate each poll-to-poll timeslice rather than each vblank-to-vblank (or XFB-to-XFB or similar) timeslice?

Don't necessarily want frametime specifically; the request is if there is some way to visualize whether an opponent is able to run dolphin at full speed or not.
so some kind of graph over time for the last minute (or more depending on what the devs think would be a good idea) would probably fulfill this feature request and most end users better.


This would indeed require system calls, with a different one being needed for each operating system (if this even exists on all the major operating systems we support – I haven't checked). Perhaps it would make more sense to show some kind of graph of network latency?

I see, and yes it probably would make more sense to show some kind of network latency graph over time

I don't understand this option at all. Could you explain?

I'm not sure if I can explain as I stated in my post, but the faster melee (FM ishiiruka based builds) have this option, I have been unable to find one of the people that created this option for comments on it.
From my basic understanding it will always pick the minimum frame buffer (best case scenario) when everything works correctly and jump up to a maximum frame buffer (Worst case scenario) if the connection deteriorates for some reason, basically it allows you to set a floor and ceiling?


This would be very resource intensive, and nothing has changed regarding that recently. Dolphin's savestate system is too slow to run every frame while still having the game run at full speed.

Good to know will scratch it out

I would like to add this at some point. However, very few people are working on Android right now, and I'm busy with various things myself, so I wouldn't be surprised if this ends up taking years to get added.

Also, for the reference, netplay typically does not work on mobile networks due to carrier-grade NAT being in use. (You can test this right now if you connect a PC to a mobile hotspot.) You would need to use Wi-Fi or Ethernet.

I don't personally mind not having android netplay, but I am noticing a trend in that smartphone hardware is getting cheaper and that soon more people will have smartphones that can run it at full speed, when that happens the popularity will probably exponentially rise.
(03-10-2020, 01:03 PM)mbc07 Wrote: [ -> ]That one already exists, but it has to be enabled per-game. Right-click the game on the game list, go to properties and check the "Speed Up Disc Transfer Rate" option. I made a feature request years ago to have a global toggle for this option (disabled by default) but the devs were hesitant to add it because it reportedly can break some games, even through most games seems to benefit from this. I've manually enabled this option for every game I own and hadn't encountered any issue (on current development builds, I didn't encounter the audio issues with Smash Bros Melee anymore, which I remember happening in the past when Speed Up Disc Transfer was enabled)...

(03-10-2020, 02:13 PM)FourSword Wrote: [ -> ]Thank you for the information, I've written it down for future reference.
Since the feature is already present in dolphin and you already made a feature request I'll be marking it red in my original post.
Hopefully the dolphin devs will have time to take another look at your request sometime in the future since the last update was 3 years ago.

Btw mbc07, I turned this option on in the 5.0-10888 build I had. It seems to be on by default?
From my testing however it's still much slower than the Faster melee (FM) ishiiruka based loading (2x to 3x slower)