SysDVR - Stream gameplay directly to a pc

SysDVR
Stream/record gameplay to a PC via USB or network.
upload_2019-10-21_9-21-20.png

Update: Version 5.0 has been released with low latency streaming, be sure to check it out on github.

This is an experimental sysmodule that allows capturing the running game output on a pc.
As this uses switch's built-in game recording feature it has the same limitations: 720p@30fps and only works on the games that enable it, but by sending the video to another device there's no time limit to the recording.

There are two modes: USB and Network, both work fine but USB is slightly better, at least compared to wifi, didn't try with a LAN adapter.
Players like mpv or vlc can play the stream directly so you can use any screen recording applications but it's also possible to write the stream directly to a file.
To use the USB version you need the UsbStream program you'll find on the github page, it's built using .NET 5 and works on both windows and linux, haven't tried mac but in theory it should work too.

You can see it in action in the two teasers i posted while working on it:

As you can see it's not meant for remote play, but it can work as a basic capture card, audio output is uncompressed so it can be useful for ripping OSTs .

Download and wall of text guide on github: https://github.com/exelix11/SysDVR/
To get notified of updates you can follow this thread or join my new discord server (i also have a twitter account where occasionally post development updates).

Please make sure to read the full readme before reporting issues as it explains the most common problems you may encounter.
 
Last edited by exelix11,
View attachment 547377

So you are saying SciresM is wrong?:ph34r:

No. I was saying that the release notes for sysdvr are wrong. I was just giving a heads up for if they maybe wanted to change it. But also now that you are wrong, as you are reading the Atmosphere release notes incorrectly. It's the same roughly 10MB less as before, not an additional 10MB less. Notes for Atmosphere 1.9.5 for FW 20.x state "We can only steal a maximum of 14MB from the applet pool, down from 40MB." If there was an additional 10MB gone again with 21.x, we'd be down to around 4MB left. Did you open an overlay to check before you accused me of being wrong? Oh, that's right. I didn't think so. Because you'd have seen that we absolutely do not have only 4MB remaining. Are YOU saying SciresM is wrong? ;)

 
Last edited by Earthshine,
Notes for Atmosphere 1.9.5 for FW 20.x state "We can only steal a maximum of 14MB from the applet pool, down from 40MB." If there was an additional 10MB gone again with 21.x, we'd be down to around 4MB left.
Atmosphere is stealing 14 MB from Applet pool and giving it to System pool. Since 21.0.0 System pool available free space with Atmosphere is 10 MB smaller. System pool already had some free space available and stealing from Applet pool gives even more space. What was stolen from Applet pool is not the only thing that is used for sysmodules.

And stolen Applet pool decreased from 14 MB to 7 MB for 21.0.0+ per Atmosphere source code.

https://github.com/Atmosphere-NX/At...rd/nintendo/nx/kern_k_system_control.cpp#L367

So 10 - 7 = 3.
3MB more space in System pool is now utilized.

SciresM was not wrong. You were.
Cope harder.
 
Last edited by masagrator,
  • Haha
Reactions: Earthshine
Atmosphere is stealing 14 MB from Applet pool and giving it to System pool. Since 21.0.0 System pool available free space with Atmosphere is 10 MB smaller. System pool already had some free space available and stealing from Applet pool gives even more space. What was stolen from Applet pool is not the only thing that is used for sysmodules.

And stolen Applet pool decreased from 14 MB to 7 MB for 21.0.0+ per Atmosphere source code.

https://github.com/Atmosphere-NX/At...rd/nintendo/nx/kern_k_system_control.cpp#L367

So 10 - 7 = 3.
3MB more space in System pool is now utilized.

SciresM was not wrong. You were.
Cope harder.

There is not 10MB less available for sysmodules in 21.x than there was in 20.x. Technicalities of who, what, when, where, why don't matter. And I never once said SciresM was wrong. He said in his testing there was 16 available. Stop moving goal posts.
 
He said in his testing there was 16 available.
It has no less than 20.x did.

20.1.1 Emummc
2025122507103100.jpg
Tesla mappings when running this overlay, calculate yourself how much to add:
Code:
Mappings (starting from 0x0000000000):
  0x0000000000 - 0x002bdfffff     ----- Free ----- ---- [0, 0]
  0x002be00000 - 0x002be05fff r-x Code             ---- [0, 0]
  0x002be06000 - 0x002be07fff r-- Code             ---- [0, 0]
  0x002be08000 - 0x002be08fff r-- CodeData         ---- [0, 0]
  0x002be09000 - 0x002be0efff rw- CodeData         ---- [0, 0]
  0x002be0f000 - 0x0049389fff     ----- Free ----- ---- [0, 0]
  0x004938a000 - 0x00493b9fff rw- Stack            ---- [0, 0]
  0x00493ba000 - 0x005b7d8fff     ----- Free ----- ---- [0, 0]
  0x005b7d9000 - 0x005b7d9fff rw- ThreadLocal      ---- [0, 0]
  0x005b7da000 - 0x0072cedfff     ----- Free ----- ---- [0, 0]
  0x0072cee000 - 0x0072cf0fff rw- Stack            ---- [0, 0]
  0x0072cf1000 - 0x038522afff     ----- Free ----- ---- [0, 0]
  0x038522b000 - 0x038526afff r-- Shared           ---- [0, 0]
  0x038526b000 - 0x04f7fa2fff     ----- Free ----- ---- [0, 0]
  0x04f7fa3000 - 0x04f90a2fff r-- Shared           ---- [0, 0]
  0x04f90a3000 - 0x0b5bb2bfff     ----- Free ----- ---- [0, 0]
  0x0b5bb2c000 - 0x0b5bbf4fff r-x AliasCode        ---- [0, 0]
  0x0b5bbf5000 - 0x0b5bc18fff r-- AliasCode        ---- [0, 0]
  0x0b5bc19000 - 0x0b5bc1efff r-- AliasCodeData    ---- [0, 0]
  0x0b5bc1f000 - 0x0b5bc2dfff rw- AliasCodeData    ---- [0, 0]
  0x0b5bc2e000 - 0x0b92ffffff     ----- Free ----- ---- [0, 0]
  0x0b93000000 - 0x0b93101fff --- Normal           L--- [0, 0]
  0x0b93102000 - 0x0b93121fff rw- Normal           ---- [0, 0]
  0x0b93122000 - 0x0b93124fff --- Normal           L--- [0, 0]
  0x0b93125000 - 0x0b9312afff rw- Normal           ---- [0, 0]
  0x0b9312b000 - 0x0b9313ffff --- Normal           L--- [0, 0]
  0x0b93140000 - 0x0b93140fff rw- Normal           ---- [0, 0]
  0x0b93141000 - 0x0b93290fff rw- Normal           --D- [0, 1]
  0x0b93291000 - 0x0b935fffff rw- Normal           ---- [0, 0]
  0x0b93600000 - 0x0fffffffff     ----- Free ----- ---- [0, 0]
Also you must add additional space utilized by emummc driver, dunno how to calculate this. (If I'm right, it's less than 1 MB)
Even without it you can clearly calculate that there is more than 19 MB available.

Now 21.0.1 Sysmmc
2025122507151600.jpg
Code:
Mappings (starting from 0x0000000000):
  0x0000000000 - 0x00164cffff     ----- Free ----- ---- [0, 0]
  0x00164d0000 - 0x00164fffff rw- Stack            ---- [0, 0]
  0x0016500000 - 0x003bb84fff     ----- Free ----- ---- [0, 0]
  0x003bb85000 - 0x003bb87fff rw- Stack            ---- [0, 0]
  0x003bb88000 - 0x0052bbcfff     ----- Free ----- ---- [0, 0]
  0x0052bbd000 - 0x0052bbdfff rw- ThreadLocal      ---- [0, 0]
  0x0052bbe000 - 0x00691fffff     ----- Free ----- ---- [0, 0]
  0x0069200000 - 0x0069205fff r-x Code             ---- [0, 0]
  0x0069206000 - 0x0069207fff r-- Code             ---- [0, 0]
  0x0069208000 - 0x0069208fff r-- CodeData         ---- [0, 0]
  0x0069209000 - 0x006920efff rw- CodeData         ---- [0, 0]
  0x006920f000 - 0x05a15fffff     ----- Free ----- ---- [0, 0]
  0x05a1600000 - 0x05a1701fff --- Normal           L--- [0, 0]
  0x05a1702000 - 0x05a1721fff rw- Normal           ---- [0, 0]
  0x05a1722000 - 0x05a1724fff --- Normal           L--- [0, 0]
  0x05a1725000 - 0x05a172afff rw- Normal           ---- [0, 0]
  0x05a172b000 - 0x05a173ffff --- Normal           L--- [0, 0]
  0x05a1740000 - 0x05a1740fff rw- Normal           ---- [0, 0]
  0x05a1741000 - 0x05a1890fff rw- Normal           --D- [0, 1]
  0x05a1891000 - 0x05a1bfffff rw- Normal           ---- [0, 0]
  0x05a1c00000 - 0x0b570bffff     ----- Free ----- ---- [0, 0]
  0x0b570c0000 - 0x0b57188fff r-x AliasCode        ---- [0, 0]
  0x0b57189000 - 0x0b571acfff r-- AliasCode        ---- [0, 0]
  0x0b571ad000 - 0x0b571b2fff r-- AliasCodeData    ---- [0, 0]
  0x0b571b3000 - 0x0b571c1fff rw- AliasCodeData    ---- [0, 0]
  0x0b571c2000 - 0x0cbdb86fff     ----- Free ----- ---- [0, 0]
  0x0cbdb87000 - 0x0cbec86fff r-- Shared           ---- [0, 0]
  0x0cbec87000 - 0x0e41364fff     ----- Free ----- ---- [0, 0]
  0x0e41365000 - 0x0e413a4fff r-- Shared           ---- [0, 0]
  0x0e413a5000 - 0x0fffffffff     ----- Free ----- ---- [0, 0]
As you can see by mappings, tesla usage is the same.
So...
3MB more space in System pool is now utilized.
I was right? No way. I must be cheating! /s Bear with me, this coincidence will clear up.

Here are raw values instead of what that overlay shows up:
20.1.1
2025122507263500.jpg
21.0.1
2025122507293600.jpg

So system pool is in fact lower by 7 MB, but in 21.0.1 sysmmc System pool utilization is lower by 4 MB which gives us 3 MB of difference in comparison to 20.1.1 emummc. Did the same thing to be sure that utilization follows the same pattern usage: Turn on airplane mode (disable everything in airplane mode), Reboot console, go straight to System Settings

So your statement that "it has no less" is wrong. But 10 MB was a stretch. So yeah, SciresM was wrong. :D

I clarified with him this issue and he was aware of it. So yeah, difference is around 3 MB, not 10 MB.

Since I proved you were wrong with your initial statement, I will use laughing emoji now as reaction to your post as an answer to your laughing emojis.
 
Last edited by masagrator,
20.1.1 Emummc
View attachment 547413
Tesla mappings when running this overlay, calculate yourself how much to add:
Code:
Mappings (starting from 0x0000000000):
  0x0000000000 - 0x002bdfffff     ----- Free ----- ---- [0, 0]
  0x002be00000 - 0x002be05fff r-x Code             ---- [0, 0]
  0x002be06000 - 0x002be07fff r-- Code             ---- [0, 0]
  0x002be08000 - 0x002be08fff r-- CodeData         ---- [0, 0]
  0x002be09000 - 0x002be0efff rw- CodeData         ---- [0, 0]
  0x002be0f000 - 0x0049389fff     ----- Free ----- ---- [0, 0]
  0x004938a000 - 0x00493b9fff rw- Stack            ---- [0, 0]
  0x00493ba000 - 0x005b7d8fff     ----- Free ----- ---- [0, 0]
  0x005b7d9000 - 0x005b7d9fff rw- ThreadLocal      ---- [0, 0]
  0x005b7da000 - 0x0072cedfff     ----- Free ----- ---- [0, 0]
  0x0072cee000 - 0x0072cf0fff rw- Stack            ---- [0, 0]
  0x0072cf1000 - 0x038522afff     ----- Free ----- ---- [0, 0]
  0x038522b000 - 0x038526afff r-- Shared           ---- [0, 0]
  0x038526b000 - 0x04f7fa2fff     ----- Free ----- ---- [0, 0]
  0x04f7fa3000 - 0x04f90a2fff r-- Shared           ---- [0, 0]
  0x04f90a3000 - 0x0b5bb2bfff     ----- Free ----- ---- [0, 0]
  0x0b5bb2c000 - 0x0b5bbf4fff r-x AliasCode        ---- [0, 0]
  0x0b5bbf5000 - 0x0b5bc18fff r-- AliasCode        ---- [0, 0]
  0x0b5bc19000 - 0x0b5bc1efff r-- AliasCodeData    ---- [0, 0]
  0x0b5bc1f000 - 0x0b5bc2dfff rw- AliasCodeData    ---- [0, 0]
  0x0b5bc2e000 - 0x0b92ffffff     ----- Free ----- ---- [0, 0]
  0x0b93000000 - 0x0b93101fff --- Normal           L--- [0, 0]
  0x0b93102000 - 0x0b93121fff rw- Normal           ---- [0, 0]
  0x0b93122000 - 0x0b93124fff --- Normal           L--- [0, 0]
  0x0b93125000 - 0x0b9312afff rw- Normal           ---- [0, 0]
  0x0b9312b000 - 0x0b9313ffff --- Normal           L--- [0, 0]
  0x0b93140000 - 0x0b93140fff rw- Normal           ---- [0, 0]
  0x0b93141000 - 0x0b93290fff rw- Normal           --D- [0, 1]
  0x0b93291000 - 0x0b935fffff rw- Normal           ---- [0, 0]
  0x0b93600000 - 0x0fffffffff     ----- Free ----- ---- [0, 0]
Also you must add additional space utilized by emummc driver, dunno how to calculate this. (If I'm right, it's less than 1 MB)
Even without it you can clearly calculate that there is more than 19 MB available.

Now 21.0.1 Sysmmc
View attachment 547415
Code:
Mappings (starting from 0x0000000000):
  0x0000000000 - 0x00164cffff     ----- Free ----- ---- [0, 0]
  0x00164d0000 - 0x00164fffff rw- Stack            ---- [0, 0]
  0x0016500000 - 0x003bb84fff     ----- Free ----- ---- [0, 0]
  0x003bb85000 - 0x003bb87fff rw- Stack            ---- [0, 0]
  0x003bb88000 - 0x0052bbcfff     ----- Free ----- ---- [0, 0]
  0x0052bbd000 - 0x0052bbdfff rw- ThreadLocal      ---- [0, 0]
  0x0052bbe000 - 0x00691fffff     ----- Free ----- ---- [0, 0]
  0x0069200000 - 0x0069205fff r-x Code             ---- [0, 0]
  0x0069206000 - 0x0069207fff r-- Code             ---- [0, 0]
  0x0069208000 - 0x0069208fff r-- CodeData         ---- [0, 0]
  0x0069209000 - 0x006920efff rw- CodeData         ---- [0, 0]
  0x006920f000 - 0x05a15fffff     ----- Free ----- ---- [0, 0]
  0x05a1600000 - 0x05a1701fff --- Normal           L--- [0, 0]
  0x05a1702000 - 0x05a1721fff rw- Normal           ---- [0, 0]
  0x05a1722000 - 0x05a1724fff --- Normal           L--- [0, 0]
  0x05a1725000 - 0x05a172afff rw- Normal           ---- [0, 0]
  0x05a172b000 - 0x05a173ffff --- Normal           L--- [0, 0]
  0x05a1740000 - 0x05a1740fff rw- Normal           ---- [0, 0]
  0x05a1741000 - 0x05a1890fff rw- Normal           --D- [0, 1]
  0x05a1891000 - 0x05a1bfffff rw- Normal           ---- [0, 0]
  0x05a1c00000 - 0x0b570bffff     ----- Free ----- ---- [0, 0]
  0x0b570c0000 - 0x0b57188fff r-x AliasCode        ---- [0, 0]
  0x0b57189000 - 0x0b571acfff r-- AliasCode        ---- [0, 0]
  0x0b571ad000 - 0x0b571b2fff r-- AliasCodeData    ---- [0, 0]
  0x0b571b3000 - 0x0b571c1fff rw- AliasCodeData    ---- [0, 0]
  0x0b571c2000 - 0x0cbdb86fff     ----- Free ----- ---- [0, 0]
  0x0cbdb87000 - 0x0cbec86fff r-- Shared           ---- [0, 0]
  0x0cbec87000 - 0x0e41364fff     ----- Free ----- ---- [0, 0]
  0x0e41365000 - 0x0e413a4fff r-- Shared           ---- [0, 0]
  0x0e413a5000 - 0x0fffffffff     ----- Free ----- ---- [0, 0]
As you can see by mappings, tesla usage is the same.
So...

I was right? No way. I must be cheating! /s Bear with me, this coincidence will clear up.

Here are raw values instead of what that overlay shows up:
20.1.1
View attachment 547416
21.0.1
View attachment 547417

So system pool is in fact lower by 7 MB, but in 21.0.1 sysmmc System pool utilization is lower by 4 MB which gives us 3 MB of difference in comparison to 20.1.1 emummc. Did the same thing to be sure that utilization follows the same pattern usage: Turn on airplane mode (disable everything in airplane mode), Reboot console, go straight to System Settings

So your statement that "it has no less" is wrong. But 10 MB was a stretch. So yeah, SciresM was wrong. :D

I clarified with him this issue and he was aware of it. So yeah, difference is around 3 MB, not 10 MB.

Since I proved you were wrong with your initial statement, I will use laughing emoji now as reaction to your post as an answer to your laughing emojis.

Thanks for proving me right, numb nuts. I've been saying all along there is not an additional 10MB less. LMFAO! What a complete fail on your end. HAHAHAHAHAAA! Like I said, moving your goal posts. Now, time to put your sorry dumb ass on ignore.
 
Earthshine you've been here 6 months and all you do in every thread is argue with everyone condescend and troll, how are you not banned is what I'm wondering. Masagrator is a respected contributor to this community, what have you contributed besides the 3 things I just said?
 
Last edited by masagrator,
Earthshine you've been here 6 months and all you do in every thread is argue with everyone condescend and troll, how are you not banned is what I'm wondering. Masagrator is a respected contributor to this community, what have you contributed besides the 3 things I just said?

LMFAO! Says the guy making a complete troll comment. :rofl:

That is a flat out lie. There are PLENTY of comments where I have helped people. PLENTY. In fact, there are more of those from me than what you say I do in "every thread". Regardless, I can agree or disagree with whatever I like & you just have some kind of weird selective reading issue. Only time I "argue, condescend, and troll" is when the other person has done so first. But with you being a boot licker to earn brownie points, I don't expect you to comprehend. Added to my ignore list.

Edit: I will admit I was wrong when I said "It has no less than 20.x did." But It does not have 10 MB less as many people are saying. No problem admitting I was at wrong on one of two aspects, but the accusation of "argue with everyone condescend and troll" "in every thread" is complete bs.
 
Last edited by Earthshine,

Site & Scene News

Popular threads in this forum