Hardware [DISCUSSION] A better way to capture high quality 3DS video footage

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
Foreword: Recently I became really frustrated with how overpriced and featureless all of the video capture devices are. The worst thing about this is that nobody has ever made an open source video capture device. You can say that these devices are expensive, because stuff has to be licensed(like a usage of an HDMI connector), but that doesn't explain the cost of console capture devices. And so I thought: it's probably time that we stop all of those capture card makers from ripping us off and make an open source solution that anyone with soldering skills can assemble for cheap. I will provide my ideas on how to accomplish this on the example of the Nintendo 3DS. But before that, let's compare all of the existing methods that we have for capturing 3DS footage.

Here's a list of them(sorted from highest to lowest video quality):
1. A commercial capture card(like Loopy or Katsukity)
PROS:
+High quality video output(full resolution without compression at constant 60fps and even the ability to record stereoscopic 3d!)
+As this is a hardware solution it will work without any problems with any software version
CONS:
-Way overpriced for what they are(200$ for installation into your own console (plus shipping to Nippon), 500+$ if you want a new premodded unit), especially considering that pretty much all the components are widely and cheaply available
-Modifying hardware voids warranty and has a small chance of bricking your system
-No DIY kits(seriously why not give people the kit for less money, so they can install it themselves. Many people like soldering stuff)
2. Software streaming over WiFi(e.g. NTR or HorizonM)
PROS:
+Easy to set up and doesn't require any hardware modifications
+Works wirelessly, eliminating cable mess(though that's barely a pro)
CONS:
-Video quality is ABOMINABLE. JPEG sucks and that's not a thing we can change, since 3DS's amazing IEEE 802.11n/g compliant WiFi chip(54Mbit/s max) makes it impossible to transfer anything of a higher quality(for reference: transfering 3DS's video as uncompressed RGB888 will take up ≅275Mbit/s and that's without considering packet overhead and other required data)
-Even when on lowest setting and holding my N3DSXL right up the antennas of my PCI-E WiFi card, I still can't achieve anything close to 60fps(thought at that point 20% of the incoming data is the actual image and the other 80%+ is just noisy junk)
3. Just put a camera in front of the screen
(do I really need to explain how crappy this method is???)

So with that out of the way, let me tell you about my ideas on a better way for capturing 3DS footage.
Note: these are just my ideas. I can be(and probably am) wrong with some of these.
From what I've read on 3dbrew, 3DS sends it's video signal to the top screen as RGB888, HSync, VSync and Clock. It's not hard to tap into these pins, as there are test points all over the mainboard.

1. Just replicate the Katsukity board (the most realistic one)
Well, the simplest thing to do is to find cheap, reliable and widely available components, do some coding and grab the soldering iron. The list of required components: an FPGA that is fast enough(or we can just use the same thing as in Katsukity boards), a USB 2.0/3.0 controller, a PCB(although we can just use a piece of perfboard(assuming that we can find a DIP style FPGA and USB controller IC)), some complementary components (caps, resistors, a micro USB port). I, sadly, don't have any experience programming FPGA's (as I never owned or seen one in my life), but it probably wouldn't be too hard to convert 8-bit RGB to YUV for use with UVC protocol or to just make our own software to decode RGB888 on the PC side.

2. VGA method (I'm not sure about this this one)
Note: this is not really a capture method. It would just allow us to play 3DS games on a VGA monitor.
So, at one point I thought: why can't I just solder an 8-bit DAC to every color's 8 pins and shove those three signals, ground and already existing HSync and VSync into a VGA plug to get a component video out of the system. This, of course, can be used to capture video with a capture device(but they're also 200$ a piece, so you're just better off sending your 3DS to Japan to get it hardmodded)

3. Draw call tracer (most unlikely)
Another crazy idea of mine is to make a homebrew, which would log PICA200 draw call and either send them over WiFi(unlikely, see above for reasons) or save it as a file to the SD card. And then we could replay these recordings(possibly with a higher internal resolution!) with a program based on Citra's video core. Citra team actually made something similar. It is called CiTrace, although it only records draw calls from the emulator, but as of any recent(and even quite old) commit Citra can no longer run CiTrace player and just outright crashes.

In conclusion: I hope that at least a few of my ideas made some sence. I'm interested in hearing from you guys how my ideas were wrong(or how much I suck at english) or what would be your idea for a better capture method on the Nintendo 3DS. (And I also hope that this is the right section of the forum to post this in)
 

Sliter

Well-Known Member
Member
Joined
Dec 7, 2013
Messages
3,264
Trophies
0
Location
ᕕ( ᐛ )ᕗ
XP
1,770
Country
Brazil
3. Draw call tracer (most unlikely)
Another crazy idea of mine is to make a homebrew, which would log PICA200 draw call and either send them over WiFi(unlikely, see above for reasons) or save it as a file to the SD card. And then we could replay these recordings(possibly with a higher internal resolution!) with a program based on Citra's video core. Citra team actually made something similar. It is called CiTrace, although it only records draw calls from the emulator, but as of any recent(and even quite old) commit Citra can no longer run CiTrace player and just outright crashes.
thought about something similar to that, being able to record and store on the SDcard with better resolution, but how this could be done?
Maybe we would need to have a lot of free space but it's less of a problem
This looks the more reliable, that sor someone making a real rivalry to Katsukity so bot would need to have better prices/ letting the user install it themselves
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,939
Country
United States
Here's a solder-less video capture card kit for the Nintendo DS. A board acts as an intermediate receiving video signal from the motherboard and outputs to the top LCD and to the USB. I wonder why such an "easy" setup was never replicated on the 3DS series.
01_01.jpg


07_02.jpg
 

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
Here's a solder-less video capture card kit for the Nintendo DS. A board acts as an intermediate receiving video signal from the motherboard and outputs to the top LCD and to the USB. I wonder why such an "easy" setup was never replicated on the 3DS series.
I didn't know that thing for the DS existed. How much does it cost tho? It's a great thing you don't have to solder anything, but a DIY soldering wouldn't be bad either(and if it would cost way more than it should). It's probably possible to do on a N3DSXL, but I've opened up mine a lot and the display ribbon cables are really tight(and there's no space to put the board)
 
  • Like
Reactions: Stealphie
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,939
Country
United States
I didn't know that thing for the DS existed. How much does it cost tho? It's a great thing you don't have to solder anything, but a DIY soldering wouldn't be bad either(and if it would cost way more than it should). It's probably possible to do on a N3DSXL, but I've opened up mine a lot and the display ribbon cables are really tight(and there's no space to put the board)

A plug and play version of that type of video capture card in easy to install form for the 3DS. Flex cables to allow locating the capture card somewhere with more room.

3DS Motherboard
↓​
Flex Cable
↓​
Capture CardFlex Cable (adapter / extension) → Top LCD
↓​
wire
USB Port (board)
 
  • Like
Reactions: Stealphie

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia

A plug and play version of that type of video capture card in easy to install form for the 3DS. Flex cables to allow locating the capture card somewhere with more room.

3DS Motherboard
↓​
Flex Cable
↓​
Capture CardFlex Cable (adapter / extension) → Top LCD
↓​
wire
USB Port (board)
I literally can't find it on that website(can you give me a direct link?)...and the DS one is too dang expensive. I still think 65$ is very expensive for just a PCB with a chip and a micro usb connector(and that doesn't even include shipping)
 
  • Like
Reactions: Stealphie

PhantomModz

New Member
Newbie
Joined
Nov 28, 2018
Messages
3
Trophies
0
Age
18
XP
70
Country
Ireland
I'm thinking if we use ntr over a virtual network broadcasting to itself with better software it might work since the folks over there already figured out how to capture and send footage
 

bennyman123abc

Well-Known Member
Member
Joined
Mar 21, 2013
Messages
920
Trophies
1
Age
22
Location
Alton, IL
XP
1,196
Country
United States
I like the draw call tracer idea. Only problem there is accuracy, but if Citra Team already has a tool that can do it with Citra, then someone could port it to a new file for the 3DS.

But there also comes the issue of textures. You'd have to provide the CIA file, or we would have to take the called byte of VRAM for each instruction.
 

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
I like the draw call tracer idea. Only problem there is accuracy, but if Citra Team already has a tool that can do it with Citra, then someone could port it to a new file for the 3DS.

But there also comes the issue of textures. You'd have to provide the CIA file, or we would have to take the called byte of VRAM for each instruction.
The accuracy probably isn't the main concern, but probably the performance. 3ds already can't run certain games at their native framerate(even with forced 800MHz clock and L2 cache)
 

bennyman123abc

Well-Known Member
Member
Joined
Mar 21, 2013
Messages
920
Trophies
1
Age
22
Location
Alton, IL
XP
1,196
Country
United States
The accuracy probably isn't the main concern, but probably the performance. 3ds already can't run certain games at their native framerate(even with forced 800MHz clock and L2 cache)
We can artificially fix those framerate issues through the "capture" program though. If we are talking about during recording, we could probably slow down how often we take those calls, or write to a buffer in RAM that, overtime, writes to the SD card. We'd have to do this through a System Service anyway.
 

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
We can artificially fix those framerate issues through the "capture" program though. If we are talking about during recording, we could probably slow down how often we take those calls, or write to a buffer in RAM that, overtime, writes to the SD card. We'd have to do this through a System Service anyway.
If we skip capturing certain draw call at capture time then we may mess up the image. It'd be easier to skip whole frames of draw calls. I totally agree with you that we should run it as a system service.
P.S. I'm not really experienced in 3DS homebrew programming(and C/C++ programming in general, I'm more into C#), but I'll at least try learning how to do it.
 

PhantomModz

New Member
Newbie
Joined
Nov 28, 2018
Messages
3
Trophies
0
Age
18
XP
70
Country
Ireland
Hey guys found some pics of keity's 2ds and 3ds setup some we know solder points and looks like the fpga is a old one so either outdated image or keity used outdated parts as I cannot find anywhere to buy them cheaply and on ebay they cost like 80pound 100euro
 
  • Like
Reactions: Stealphie

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
Hey guys found some pics of keity's 2ds and 3ds setup some we know solder points and looks like the fpga is a old one so either outdated image or keity used outdated parts as I cannot find anywhere to buy them cheaply and on ebay they cost like 80pound 100euro

I remember seeing the shot with the boards some time ago...The big chip is the FPGA and can be found on aliexpress for not that much(thought they sell them in lots, not by piece, which might make you thing they cost a lot). The smaller chip is a USB controller as far as I remember...the shots with the wiring for 3DSs other than O3DS(and DSs) are pretty useful, thanks.
 

CursedToast

Member
Newcomer
Joined
Oct 13, 2018
Messages
13
Trophies
0
Age
34
XP
117
Country
United States
Just a thought, but is there anything particularly special about the screens in the old model 2ds? Specifically the ribbon cable? I just want to be able to capture the top screen, and I do not need the console to even be in a portable state. Basically, what I'm wondering, is if there's some sort of way to feed a different ribbon cable going to another device that would allow capture somehow?
 

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
Just a thought, but is there anything particularly special about the screens in the old model 2ds? Specifically the ribbon cable? I just want to be able to capture the top screen, and I do not need the console to even be in a portable state. Basically, what I'm wondering, is if there's some sort of way to feed a different ribbon cable going to another device that would allow capture somehow?
Why not? Theoretically you can solder thin patch wires to the test points on the board and run it to an external device(but don't quote me on that, because I'm not entirely sure how long they can be made). And the external device would need to contain an fpga and a usb controller just like the katsukity board.
 

CursedToast

Member
Newcomer
Joined
Oct 13, 2018
Messages
13
Trophies
0
Age
34
XP
117
Country
United States
I guess I was more or less just wondering if there's anything specifically special about the screen the old 2ds uses, and the ribbon cable it connects to the motherboard. Because if not, I was wondering if there's another device i could, in theory, plug its cable directly into the 2ds motherboard slot, and then capture video from. Probably not, but just trying to get creative. I have a hardwired TAS-like project I'm trying to capture game footage from in a non-janky way. Since it's an old 2ds model, NTR streaming isn't an option
 

CHEMI6DER

Well-Known Member
OP
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,035
Country
Russia
I guess I was more or less just wondering if there's anything specifically special about the screen the old 2ds uses, and the ribbon cable it connects to the motherboard. Because if not, I was wondering if there's another device i could, in theory, plug its cable directly into the 2ds motherboard slot, and then capture video from. Probably not, but just trying to get creative. I have a hardwired TAS-like project I'm trying to capture game footage from in a non-janky way. Since it's an old 2ds model, NTR streaming isn't an option
Oh that's what you were talking about. I don't think the 2ds screen is any special...heck, it probably just uses a single ribbon since it doesn't do 3d(I only have an N3DSXL so IDK how other 3DS h/w revisions are constructed). Such a device can be made, but you should keep in mind that ordering custom ribbon cables isn't as easy as PCBs...actually I think only a finite number of companies can make you a custom ribbon cable in small quantities.
 

ThoD

GBATemp Addict (apparently), but more like "bored"
Member
Joined
Sep 8, 2017
Messages
3,631
Trophies
1
Age
27
XP
3,049
Country
Greece
First of all, this thread here is kinda outdated. HorizonMod has been re-written from the ground up and can get very good FPS with nice quality on N3DS systems with stable 60FPS on N2DS (because of the extra processing power over N3DS).

However, as far as other alternatives go, you can always open up the 3DS shell, find the ribbon cable that goes from the GPU to the screens, trace the pins in it to see what handles what (eg: colors, pixels, power, ground, etc.) and map those to the pins of an HDMI cable, then assuming you know enough about electronics to make your own circuits since you have gotten this far, just design a small converter board to convert the signal to HDMI and output to a TV, which can then be used with anything that can record (VCRs, console capture cards like the Elgato which are pretty cheap and so on), but know that you WILL lose all functionality from the screens AND it may eventually fail since HDMI signal output requires more power than what the 3DS is allowed by it's battery and PSU to go to the GPU. DVI-2 (the version with the flat pin without the two pins above and below the flat one) output is the only one that uses a level of power the 3DS can handle. Capture cards don't "steal" the signal, they copy it, reason they can bypass power limitations as they don't have to force the GPU to send out consistent max FPS signal that won't have losses upon conversion.

Another option would be to just design your own capture card, which takes slightly higher level of skill than the above method but lets you use HDMI. It's not anywhere near as hard as it sounds honestly, you just need a VERY good grasp of how the console works then an understand of video capture.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: Good night