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

Game Stream

Hope everyone can help me improve it for a better experiment.

Banner done by : @farfar123

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:

add mutex for process data ( that is the main cause crash on server )

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

[NEXT] v0.6:

- Reactivate multi threads for sockManager. so now it have a new way to transfer data.

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 )

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

What todo next:

Spoiler

------------------------------------------------------------------

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:

Spoiler //-----------------------------------------------

// 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

Update v0.5.7:------------------------------------------------------------------Fix minor bugs and some critical bug on serverRewrite 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.===================================================Change:- UI revamp- demo new virtual keyboard inputIssues:- Reconnect have problem so don't do it ( i want to give out this version ASAP so you guy can test the input )===================================================- fix possible crash on client- add mutex . texture drawing now thread-safe.- improve streaming.===================================================- 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:===================================================v0.4.1a Server Update:- Add monitor index in config file. Used to capture monitor===================================================v0.4aFirst Note:- 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.- please report any bug or crash in this thread and step to reproduce.- 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 :and===================================================v0.3v0.2===================================================v0.1

: 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.: 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 ---------------------------------------------------------------Platform: Windows (Mac later)Change Logs:- 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-pad2, 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 )- Change libjpeg to turbojpeg -- Optimized Video stream format (50%)===================================================- 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 bemore optimize for speed and stable.===================================================Old version change logs.===================================================