Homebrew [Homebrew] 3DS Remote Desktop

  • Thread starter Thread starter retrozelda
  • Start date Start date
  • Views Views 223,500
  • Replies Replies 297
  • Likes Likes 46
That was my first idea, to pass VBA window handle instead of screen handle. Unfortunately, as it says in GetFrontBufferData() reference, this function only works at full screen level. Passing a window handle instead of desktop handle causes a D3DERR_INVALIDCALL.
I know that most live-streaming programs, which used DX9, usually captured specific areas simply by cropping Desktop capture, so it seems there was some kind of limitation in DX9 in that regard. Whether it's worth switching to DX10 or not I don't know(I'm really new to all this :) ), probably not, but it could potentially add to performance.

I played around a bit, and getting the internal buffer would kinda be dumb now that i think about it(and because everything i did wouldnt work as you said lol). But, because some apps use openGL, a directX handle wouldnt work across everything. So I decided to go a different route and this is what I came up with:



sorry about an alarm going off, i was using my phone. regardless....
the code is still |**really**| ugly, but i was just focusing on getting the core functionality done. It is in the focus-window branch on bitbucket if you wanna pull it and try. But its not a big enough bottleneck to effect performance, as it is still the same.

EDIT: Code is much cleaner in the repo now

There have also been a lot of changes to wireless over the years, but not many improvements over the B/G spectrum. N and AC are where a lot of the focus is now in the 5Ghz spectrum. I think the improvement in speed is likely due to a lot of wireless routers and access points being capable of dual band which allows two streams of data transfer to take place at a time. Perhaps they added a second antenna to help which is one of the differences between the old and new 3DS.

I have a Meraki AP at home I could test with, it gives data input/output over time. Perhaps I can play with that over the weekend using youtube as a testing point on both units.

that info would definitely be sexy. but regardless of hte results, I think better compression would still be needed. OR! an Ethernet hardmod xD
 
Would the exe work on Wine? I've tried it but it displays the same message as it does on a Windows PC.("d3d9x_43.dll is not installed"). I've tried using the static one as well.
 
I played around a bit, and getting the internal buffer would kinda be dumb now that i think about it(and because everything i did wouldnt work as you said lol). But, because some apps use openGL, a directX handle wouldnt work across everything. So I decided to go a different route and this is what I came up with:

*snip*

sorry about an alarm going off, i was using my phone. regardless....
the code is still |**really**| ugly, but i was just focusing on getting the core functionality done. It is in the focus-window branch on bitbucket if you wanna pull it and try. But its not a big enough bottleneck to effect performance, as it is still the same.

Basically we've arrived at the same "Capture the whole screen then crop" solution, but your method of keeping focus is better :)
But you should still make a handle for desktop, cause not all people have 1920x1080 screens. Mine is 1920x1200 for example. That was present in my code, but either I'm stupid, or BitBucket doesn't allow me to make a pull request.
 
Would the exe work on Wine? I've tried it but it displays the same message as it does on a Windows PC.("d3d9x_43.dll is not installed"). I've tried using the static one as well.

idk much about wine, but i think you just need to instal the directX9 redist package

Basically we've arrived at the same "Capture the whole screen then crop" solution, but your method of keeping focus is better :)
But you should still make a handle for desktop, cause not all people have 1920x1080 screens. Mine is 1920x1200 for example. That was present in my code, but either I'm stupid, or BitBucket doesn't allow me to make a pull request.
PM your bitbucket username or your email address and I can grant you write access. Since GetFrontBuffer() require the monitor resolution, I hardcoded in mine and i just forgot to make it dynamic ><
 
no matter in which variant i enter my pc-ip on the 3ds ... i see nothing :(
My PC's IP configuration is: XXX.XXX.XX.X (9 digits)
Client IP configuration is: XXX.XXX.XXX.XXX PORT (12 digits)
How should I enter the IP on the 3DS?
E.G:
Server (Adress 0): 192.168.12.3
Input on DS?: 192.168.012.003 or 192.168.120.300 or what?
PLS help! :(
 
I get a similar problem with Wine. When I run the Server, it closes immediately.
d3dx9 is installed.
Couldn't this simply be ported to be cross-platform?
 

Attachments

  • Schermata del 2015-02-23 17:29:34.png
    Schermata del 2015-02-23 17:29:34.png
    14.9 KB · Views: 492
"Well thats very strange retrozelda said in his first post we would need ASCII decimal values but

provides us with Hexadecimal values?? Anyway could you specifie your problem a bit more? like does the 3ds even send any input or is the input data all scrambled up?

It should actually work with the first link i've sent...

(Here is a link wich is basicly the same as the first one but a bit better (if you ask me)
http://www.asciitable.com/)

P.S. Sorry for the delay but something is wrong with my post window ?_?
 
The 0x means it's a hexadecimal number. The ini file needs the values to be decimal. So, you just need to convert them first. I updated the first post, but you can use windows calculator or tools like this to get the dec value
 
  • Like
Reactions: Chrisser_75
IP shown by 3ds and Windows are not the same

the IP that shows in the 3DS you change to match whatever IP the server is running through. you can use the 3DS dpad to change it. The default one that is shown is mine and i left it in because i dont have a way to save the last connected IP/port yet. This is something that I have planned to do, but for now, you just have to change it everytime(or just recompile the client with your ip set as the default so you dont have to reenter it every time)
 

Site & Scene News

Popular threads in this forum