Homebrew [Release] TinyVNC (VNC viewer for Nintendo 3DS)

Moon164

Well-Known Member
Member
Joined
Nov 21, 2015
Messages
672
Trophies
0
Age
23
XP
2,149
Country
Brazil
It's work on Old 3DS ?

I was thinking of using this to play some Steam games on my 3DS.

[EDIT]

Works perfectly on the Old 3DS. I'm really impressed, it worked on the first try, the 3DS commands for the PC are extremely fast, I didn't notice practically any delay, but the video is very slow... I tried it at 800x600, I didn't use a Virtual Machine but I will try later using lower resolutions.

7oqz7p2.png

VNC transmitter homebrew for switch wen?
I would love a version of that for the Wii U.
 
Last edited by Moon164,
  • Like
Reactions: Badda

IGHOR

Well-Known Member
Newcomer
Joined
Sep 16, 2017
Messages
46
Trophies
0
XP
299
Country
Ukraine
Works great on N3DSXL
Suggesting features:
Auto reconnect on connection drop, and turn off/turn black the bottom screen option.
 
  • Like
Reactions: Badda

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
New version 1.0 is available - I decided to go straight to stable :P
Changes towards v0.9 are:
  • added CIA/3DS version
  • added streaming audio support (mp3 via HTTP)
  • added on-screen keyboard
  • configurable scaling (on/off)
  • key value to toggle bottom backlight (8)
Some remarks:
  • The streaming audio needs a separate server on the VNC server machine. This can be easily setup using VLC media player (https://www.videolan.org/vlc/). I will write a small tutorial on the OP how to set this up.
  • There are some additional function key values that can be mapped to in /3ds/TinyVNC/keymap:
    1 = toggle keyboard
    2 = disconnect
    3-7 = mouse button 1-5 (1=left, 2=middle, 3=right, 4=wheelup, 5=wheeldown)
    8 = toggle scaling
    9 = toggle bottom screen backlight
    Some of these functions are not mapped per default, so if you want them, you need to edit the above file.
https://github.com/badda71/TinyVNC/releases

Have fun! :yay3ds:
 

Moon164

Well-Known Member
Member
Joined
Nov 21, 2015
Messages
672
Trophies
0
Age
23
XP
2,149
Country
Brazil
New version 1.0 is available - I decided to go straight to stable :P
Changes towards v0.9 are:
  • added CIA/3DS version
  • added streaming audio support (mp3 via HTTP)
  • added on-screen keyboard
  • configurable scaling (on/off)
  • key value to toggle bottom backlight (8)
Some remarks:
  • The streaming audio needs a separate server on the VNC server machine. This can be easily setup using VLC media player (https://www.videolan.org/vlc/). I will write a small tutorial on the OP how to set this up.
  • There are some additional function key values that can be mapped to in /3ds/TinyVNC/keymap:
    1 = toggle keyboard
    2 = disconnect
    3-7 = mouse button 1-5 (1=left, 2=middle, 3=right, 4=wheelup, 5=wheeldown)
    8 = toggle scaling
    9 = toggle bottom screen backlight
    Some of these functions are not mapped per default, so if you want them, you need to edit the above file.
https://github.com/badda71/TinyVNC/releases

Have fun! :yay3ds:
I think my 3DS crashed on the screen '' Saving default keymap in / 3ds / TinyVNC / keymap''

[EDIT]
Nop, it just took a long time to go. Apparently it no longer works at 720p resolution, but 1024x768 went without problems.
UFIu25Z.png

jzaZowp.png


~ Old 3DS.
 
Last edited by Moon164,
  • Like
Reactions: MarioKartFan

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
Works great! Keyboard looks awesome!
Is there a way to hide logs?
Well, if you show the keyboard, then the log is halfway hidden. And if you map a button to value 9, you can turn the bottom screen backlight off when pressing this button, meaning the bottom screen is black. Apart from this, there is no possibility as of now.
Nop, it just took a long time to go. Apparently it no longer works at 720p resolution, but 1024x768 went without problems.
720p resolution is actually 1280×720px - which is too large for TinyVNC (>1024px). Even the previous version did not support this.
 
  • Like
Reactions: Moon164 and Zense

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
OP is now updated with a short tutorial on how to set up an audio server to use with TinyVNC. If the tutorial is not clear, please notify me here in the tread!
 
  • Like
Reactions: Zense

IGHOR

Well-Known Member
Newcomer
Joined
Sep 16, 2017
Messages
46
Trophies
0
XP
299
Country
Ukraine
Well, if you show the keyboard, then the log is halfway hidden. And if you map a button to value 9, you can turn the bottom screen backlight off when pressing this button, meaning the bottom screen is black. Apart from this, there is no possibility as of now.

Great! It is working ,thanks.

I'm trying to get a pixel perfect picture at the original resolution 400x240, so I set the same resolution on the Raspberry Pi (and vnc server of course), but the screen of TinyVNC is still blurry, how can I fix it?
 

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
I'm trying to get a pixel perfect picture at the original resolution 400x240, so I set the same resolution on the Raspberry Pi (and vnc server of course), but the screen of TinyVNC is still blurry, how can I fix it?
I cannot reproduce the issue. Can you post a screenshot of both your 3DS screens and the RPi screen?

Edit: One side note: The server screen is transmitted to TinyVNC using JPEG compression which is a lossy image format. This means, the VNC screen will never be a 1:1 copy of the server screen - it will always have very slight differences. Maybe this is what you are referring to?
 
Last edited by Badda,
  • Like
Reactions: Zense

IGHOR

Well-Known Member
Newcomer
Joined
Sep 16, 2017
Messages
46
Trophies
0
XP
299
Country
Ukraine
Here is screenshot of the top screen, uncompressed.
The Raspberry Pi resolution set to 400x240 via command:
DISPLAY=:0 fbset -depth 16 -xres 400 -vxres 400 -yres 240 -vyres 240

And the VNC server started with that command line:
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared -geometry 400x240
 

Attachments

  • 2020-10-16_22-13-58.402_top.bmp
    281.3 KB · Views: 113

IGHOR

Well-Known Member
Newcomer
Joined
Sep 16, 2017
Messages
46
Trophies
0
XP
299
Country
Ukraine
I cannot reproduce the issue. Can you post a screenshot of both your 3DS screens and the RPi screen?

Edit: One side note: The server screen is transmitted to TinyVNC using JPEG compression which is a lossy image format. This means, the VNC screen will never be a 1:1 copy of the server screen - it will always have very slight differences. Maybe this is what you are referring to?

Here is screenshot of the top screen, uncompressed.
The Raspberry Pi resolution set to 400x240 via command:
DISPLAY=:0 fbset -depth 16 -xres 400 -vxres 400 -yres 240 -vyres 240

And the VNC server started with that command line:
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared -geometry 400x240

Started Tightvnc and it looks much better now!
 

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
Here is screenshot of the top screen, uncompressed.
The Raspberry Pi resolution set to 400x240 via command:
DISPLAY=:0 fbset -depth 16 -xres 400 -vxres 400 -yres 240 -vyres 240

And the VNC server started with that command line:
x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared -geometry 400x240
Yes, this is the JPEG-compression. If you move the mouse over the blurry screen portions, they should clear up.

How to open or bind the Right Mouse click button? Or context menu?
You need to edit the file /3ds/TinyVNC/keymap and assign the right mouse button (5) to a 3DS key.

If connection is lost and trying to close the app, it is stuck forever on waiting.
Hm, this would be a bug. Will check into that ...
 
Last edited by Badda,

alcazar

New Member
Newbie
Joined
Nov 8, 2019
Messages
4
Trophies
0
Age
20
XP
87
Country
United States
So this might be a silly question, but I'm trying to use TightVNC inside of a VirtualBox vm and I can't quite figure out how to connect to the VM. I was able to connect to a VNC server on my host PC just fine, and from what I've been able to find, connecting to a VM should be an identical process (for reasons I admit I don't really understand ). I've also tried with ports both 3389 and 5900 but no dice. The 3DS and host PC are on the same network, and by all rights it really should work since I was easily able to connect to a server on my pc normally. Any guidance would be appreciated ^_^
 

Badda

Nu Member
OP
Member
Joined
Feb 26, 2016
Messages
303
Trophies
0
Location
Nirvana
XP
1,533
Country
Tokelau
So this might be a silly question, but I'm trying to use TightVNC inside of a VirtualBox vm and I can't quite figure out how to connect to the VM. I was able to connect to a VNC server on my host PC just fine, and from what I've been able to find, connecting to a VM should be an identical process (for reasons I admit I don't really understand ). I've also tried with ports both 3389 and 5900 but no dice. The 3DS and host PC are on the same network, and by all rights it really should work since I was easily able to connect to a server on my pc normally. Any guidance would be appreciated ^_^
It depends on how your network adapter is configured for your virtual machine. If you want your VM to be visible to the outside network, you need NAT with port forwarding or bridged networking. I recommend the later. See here: https://www.virtualbox.org/manual/ch06.html#networkingmodes
 
Last edited by Badda,
General chit-chat
Help Users
  • No one is chatting at the moment.
    Ophelia_Later @ Ophelia_Later: good night