Homebrew [WIP] NKStreamer - Remote desktop streaming to 3ds

What need to do next after Input Mapping ?


  • Total voters
    16
  • Poll closed .

namkazt

Well-Known Member
OP
Newcomer
Joined
Jul 21, 2017
Messages
79
Trophies
0
Age
30
XP
225
Country
Vietnam
Offical Discord For PinBox: Link
Gbatemp Link: https://gbatemp.net/threads/pinbox-desktop-remote-streaming.493302/



NKStreamer - [Deprecated ]
version 0.5.8

NKStreamer is a tool using for stream PC desktop screen (or windows) to 3DS with input. Im start working on it from 19/07/2017.
You can use it for play video, play game​
Q&A:
Movie stream : you can accept the delay (around 1~2 secs) to exchange with FPS and smoothy even stream 3D movie. Some game can still use this mode if no require realtime action.
Game Stream: lag and delay is not acceptable in some action game so this mode is optimized for it. Allow latency ~100ms but it will be abit lag at sometime or with low-end wifi router

---------------------------------------------------------------
v0.5.9 test only. ( this version was implemented new way to transfer data also add additional data slot for sound )
experimented for test only.

Server: Link
Client: Link CIA

---------------------------------------------------------------
Download Client v0.5.8: Link
Download Server v0.5.8: Link

Hope everyone can help me improve it for a better experiment.
Source Client : https://github.com/namkazt/NKStreamer
Source Server : https://github.com/namkazt/NKStreamer-Server-


Banner done by : @farfar123
Older Version Download : Link

Platform: Windows (Mac later)

How to Use:
1, Config server: in root folder of server have "server.cfg" file. Inside it have port config. Please enter your or keep it as default (1234)
2, After run server it will list a list of IP address. please select 1 ( normally it will be the last IP )
3, start app . enter IP and port and press connect.



Change Logs:

Version 0.5.8
Change Logs:
- add mutex for process data ( that is the main cause crash on server )
- fix circle pad data read
- add config for mouse support in profile
- implement libconfig to save configable variables
- mouse support :
1, if mouse support = false -> circle pad using as d-pad
2, if mouse support = true -> circle pad using as mouse ( ZL and ZR become mouse left and right - new 3ds only )
- change profile at runtime ( from 3ds client )


===================================================
[NEXT] v0.6:


Done:
- Reactivate multi threads for sockManager. so now it have a new way to transfer data.
- Change libjpeg to turbojpeg - performance + 5~10%
- remove libsfil libjpeg libpng libwebp ( no need for now )
- Add UI options to change how many threads run on your devices ( Old 3ds should be 3~4 - New 3ds can up to 6~8 )


WIP:
- Xbox input and GamePad Driver Emulator -> input will directly understand as from a gamepad.

- Optimized Video stream format (50%)
- Writing new method for server that allow split frame into small pieces ( in order to work perfectly with multithreads socket) (50%)

===================================================
What todo next:

- New streaming data format optimized for speed. ( i have the ideas about it )
- Sound
- Zoom
- Graphic display current use sd2d and sfil what is no longer support. Implement new method will be
more optimize for speed and stable.

===================================================
Old version change logs.
===================================================
Update v0.5.7:
------------------------------------------------------------------
Fix minor bugs and some critical bug on server
Rewrite Input handler.
[Movie Mode] is not stable and slow ( please do not use it if you do not want to get a crash )
Mouse is added but it not working as i expected so just leave it here to testing.

Message: Video mode is abit low frame rate ( im trying to improve it in next version )
Client v0.5.6:
- fix some crash bug on server
- fix freeze bug on threads ( mostly done with it )
- add some new configable option :
---> Threads number : number of thread will run ( select your self depend on your device )
---> Frame Quality : image quality ( 10 to 100 )
---> Streaming Mode : Movie stream or Game Stream
---> Split frame mode : [Not active for now]
Server v0.5.6:
- fix memory leak on capture frame.
- fix some unstable method
- add Split frame mode.
===================================================
v0.5.5 - UI Revamp


Change:
- UI revamp
- demo new virtual keyboard input

Issues:
- Reconnect have problem so don't do it ( i want to give out this version ASAP so you guy can test the input )
===================================================
v0.5.1 - Playing Stardew Valley in 3DS


- fix possible crash on client
- add mutex . texture drawing now thread-safe.
- improve streaming.

===================================================
v0.5a:


- fix bugs on server and client cause crash ( not all, still have some bugs )
- edit UI, add new stream button. Connect now do not auto matic stream video ( but input do )
- add Input Redirection and config:
//-----------------------------------------------
// Input mapping profiles
//-----------------------------------------------
// profile can be change on run-time to fit with application
// or game you are playing
//-----------------------------------------------
input =
(
{
name = "Default";

btn_A = "L";
btn_B = "K";
btn_X = "I";
btn_Y = "J";

btn_DPAD_UP = "W";
btn_DPAD_DOWN = "S";
btn_DPAD_LEFT = "A";
btn_DPAD_RIGHT = "D";

btn_START = "Z";
btn_SELECT = "X";

btn_L = "U";
btn_R = "O";
btn_ZL = "Y";
btn_ZR = "P";

//---------------------------------------------
// TODO: add circle mapping, and mouse mapping.
//---------------------------------------------

} // NOTE: add "," here if you add new profile bellow

//---------------------------------------------
// Add your custom profile here
// custom profile must have exactly same field like default
// but you can change the mapping.
//---------------------------------------------

);

===================================================
v0.4.1a Server Update:

- Add monitor index in config file. Used to capture monitor

===================================================
v0.4a

First Note: Please read
- this version release do not include Input Controller ( so don't ask if it have or not )
- this version for alpha testing only so it may crash or something. use at your own risk.
- please report any bug or crash in this thread and step to reproduce.

Change logs:
- Server: Port config
- UI: IP Input
- Rework on socket thread system that allow easy config for multi thread or not ( but seem like multi socket thread is not much better than 1 ).
- Add option : Movie stream and Game Stream. ( currently hard code to test Mixed mode ( between Movie stream and GameStream )

===================================================
v0.3

FPS: 29~30
Delay: 0.3 sec ?
Input: not implement yet
UI: not implement yet
Sound : not implement yet
3D view: not implement yet

change:
- Add Theading for SocketManager.
- Add Webp ( not implement yet ) it seem like better quality and smaller.
Note: FPS can be more on good wifi device.

thinking about changing to UDP socket. because streaming with TCP have more delay if net glitch. UDP would be better.

Release will be on v0.4 when UI is added because current IP is fixed in code so it only work on my PC for now.

===================================================

v0.2

FPS: around 25~30
Delay: 0.5 sec ?
Input: not implement yet
UI: not implement yet
Sound : not implement yet
3D view: not implement yet

change:
- Completely rewrite server from Golang to C++


===================================================
v0.1
FPS: 15
Delay: 0.5 sec ?
Input: not implement yet
UI: not implement yet
Sound : not implement yet
3D view: not implement yet

 
Last edited by namkazt,

namkazt

Well-Known Member
OP
Newcomer
Joined
Jul 21, 2017
Messages
79
Trophies
0
Age
30
XP
225
Country
Vietnam
Last edited by namkazt,

3dslove79

Well-Known Member
Member
Joined
Jul 27, 2014
Messages
140
Trophies
0
Age
30
XP
166
Country
Italy
Hi @namkazt ,if it is possible you can use the Nvdia gamestream Service thought moonlight opensouce api on github for the 3ds,right?(it works like a charm on my android device)
 

Zhongtiao1

Well-Known Member
Member
Joined
Feb 24, 2015
Messages
815
Trophies
0
Age
24
XP
2,532
Country
United States
Hi @namkazt ,if it is possible you can use the Nvdia gamestream Service thought moonlight opensouce api on github for the 3ds,right?(it works like a charm on my android device)

Moonlight only works with NVidia gpus. Also, even if it was possible, the 3ds's gpu isn't powerful enough to support it.
 

namkazt

Well-Known Member
OP
Newcomer
Joined
Jul 21, 2017
Messages
79
Trophies
0
Age
30
XP
225
Country
Vietnam
Update new video.
Almost playable for now.


--------------------- MERGED ---------------------------

Hi @namkazt ,if it is possible you can use the Nvdia gamestream Service thought moonlight opensouce api on github for the 3ds,right?(it works like a charm on my android device)
im not using GameStream service. but this way working too also smoother
 

namkazt

Well-Known Member
OP
Newcomer
Joined
Jul 21, 2017
Messages
79
Trophies
0
Age
30
XP
225
Country
Vietnam
  • Like
Reactions: Deleted-379826

majoru

Well-Known Member
Member
Joined
Dec 13, 2016
Messages
116
Trophies
0
XP
497
Country
Morocco
i remember asking for this somewhere just 2-3 months ago , and people making fun of me and saying that i was impossible
 
General chit-chat
Help Users
    FAST6191 @ FAST6191: https://www.youtube.com/watch?v=R4RKGels8Wo