Jump to content


SysDVR 6.0

¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter, Mastodon o Threads!

SysDVR es una modulo experimental del sistema (sysmodule) para Switch que nos permite capturar el juego que se está ejecutando a un PC.

Existen dos versiones, una que hace el stream vía USB y otra que lo hace a través de la red (TCP). Por ahora no es posible usar las dos al mismo tiempo.

Usar mpv player es la opción más recomendada para capturar, así como cualquier otro reproductor que tenga soporte para stream h264 en raw vía tcp o stdin, aunque habría que configurarlo manualmente.

294524482-2fdef695-e96a-496b-a643-a099b957e910.png

Limitations

  • Video quality is fixed to 720p @ 30fps with h264 compression (hardware limit)
  • Audio quality is fixed to 16bit PCM @ 48kHz stereo. Not compressed
  • Only works on games that have video recording enabled (aka you can long-press the capture button to save a video)
  • Video and audio are two different streams, they're likely to desync as they require two different player instances. Vlc does support a secondary audio stream but i didn't manage to get it working properly.
  • Only captures game output. System UI, home menu and homebrews running as applet won't be captured
  • Video feed is not realtime, there will always be a minimum of ~1 second of delay.
  • Stream quality depends heavily on the environment, bad usb wires or low wifi signal can affect it significantly.
  • Stream quality is also affected by software configuration, more details at the bottom.
  • USB streaming is not available when docked
  • Requires firmware >= 6.0.0

Clearly with these limitations this sysmodule doesn't allow "remote play" and does not replace a capture card.

Usage

Setting up the sysmodule

The provided builds already contain the correct file structure, you should just be able to extract them to your sd card.
To remove the sysmodule just delete the atmosphere/titles/00FF0000A53BB665 folder from your sd card.
CFWs other than atmosphere should work but i won't provide support for them.

Network streaming

This is the easiest way to stream, In this mode the sysmodule is completely standalone, you should be able to play the video stream just by running mpv tcp://<switch ip address>:6666 --no-correct-pts --fps=30 and mpv tcp://<switch ip addr>:6667 --no-video --demuxer=rawaudio --demuxer-rawaudio-rate=48000 for audio.
When using network streaming it's not recommended to stream both audio and video at the same time as it may cause slowdowns. In general network streaming has more lag and delay compared to USB, it is worth the time to set it up, especially for gameplay recording.

USB streaming

To stream via usb you need the UsbStream program, it's built using dotnet core 3.0 and is compatible with linux as well.
First of all you should make sure your drivers are set up correctly (only the first time) :

Driver setup on windows

On windows you may get the device not found or unsupported driver errors or very bad performance on the stream, in this case you may have the wrong driver set up, download zadig and install the libusb-win32 driver for the "Nintendo Switch" device. This won't interfere with other application that communicate with the switch via usb as this sysmodule uses a different product id.

Driver setup on linux

On linux you may have errors about loading the libusb-1.0 library, this happens when the file name is different than the one expected by dotnet, you can make a symlink as described on the LibUsbDotNet repo:
sudo find / -name "libusb-1.0*.so*" and then

cd /lib/x86_64-linux-gnu
sudo ln -s libusb-1.0.so.0 libusb-1.0.so

(Example commands, change the paths with the one you find on your pc)

Streaming

UsbStream supports three streaming modes:

  • mpv or stdin : pipes the received data directly to a video player via stdin, this will use no caching so you'll have low delay but it may lag. Using mpv will automatically add the needed configuration for mpv, stdin will require you to type the args to pass to the player
  • tcp : opens a tcp server so players can connect to it and use their own caching mechanism to remove or reduce lag (at the price of an higher delay)
  • file : writes the received data directly to a file so it can be converted to a common format later.

Launch UsbStream like this: UsbStream video <streaming mode> <arg> audio <streaming mode> <arg>
When using mpv the arg is the mpv executable (.com file on windows) path, you have to repeat it twice if using both streams.

The tcp option requires a free port number and the file option the output file path.

To disable a stream just omit the name and its fields.

Example commands:

UsbStream audio mpv C:/programs/mpv/mpv : Plays audio via mpv located at C:/programs/mpv/mpv, video is ignored
UsbStream video mpv ./mpv audio mpv ./mpv : Plays video and audio via mpv (path has to be specified twice)
UsbStream video tcp 1337 audio file C:/audio.raw : Streams video over port 1337 while saving audio to disk


Note that on windows you should use the mpv.com file and not mpv.exe, omitting the extension will automatically use the right one Launching UsbStream without any parameter will display more options and examples.
To connect to the tcp streams you can use: mpv tcp://localhost:<video port> --no-correct-pts --fps=30 for video and mpv tcp://localhost:<audio port> --no-video --demuxer=rawaudio --demuxer-rawaudio-rate=48000 for audio

Tips
To get the most out of this sysmodule you have to do a lot of testing to find the best configuration that works for you, here are some tips and answers to common issues :

  • If the video stream doesn't start immediately try moving the camera around in the game, to display something the video player needs to acquire a video keyframe first
  • If the stream is very poor try a different usb cable and driver with zadig, for network stream bring your console closer to the router, try using a lan adapter or windows' own hotspot mode.
  • An usb 3 wire is slightly better than usb 2, but both should work.
  • Quality also depends on the cpu utilization of the game you're running, OC can improve performances.
  • Using cache will reduce lags at the cost of an higher delay, for mpv it's on by default (except when using usb stream with mpv mode), if you want to try without it the command line arg for mpv is --cache=no --cache-secs=0. There's a lot of room for experimenting here, try different values to find the combination that works best for you.
  • If using no caching when the screen goes full black or white (eg loading screens) it may cause some desync and the stream will start to drop frames, eventually it will fix by itself but it could take some time, the fastest solution is to open the home menu for a few seconds and then resume the game, for usb stream you can try setting the --desync-fix flag (this will introduce glitches).

Known issues/TODOs

  • Memory usage is kept as low as possible (512K for usb ver, 3MB for network) but running this with many other sysmodules, or ones particulary heavy like sysftpd will not work or hang your console on boot.
  • The usb version stops working when launching another homebrew that requires usb access like nxmtp or goldleaf.
  • Implement a key combination to reinitialize usb when this happens (?)
  • Merge the usb and network stream versions and make an homebrew app to toggle between the two
  • Improve automatic desync detection and fix for UsbStream

Credits

  • Everyone from libnx and the people who reversed grc:d and wrote the service wrapper, mission2000 in particular for the suggestion on how to fix audio lag.
  • mtp-server-nx for their usb implementation

by exelix11.


Que novedades incluye la versión 6.0

Released

  • SysDVR Client ahora viene con una GUI multiplataforma completamente reescrita, no importa qué sistema operativo esté usando, obtendrá la nueva interfaz de usuario, ya no es necesario usar la línea de comando
    • Sin embargo, la interfaz de línea de comandos todavía está disponible y es mayoritariamente compatible con la sintaxis anterior. Tenga en cuenta que se eliminaron algunas funciones; puede ejecutar SysDVR-Client --help para ver los nuevos comandos.
  • El cliente SysDVR ya está disponible para Android
    • La versión de Android solo es compatible con Android 10 y versiones posteriores solo en dispositivos con una versión de Android de 64 bits. Esto limita la compatibilidad con televisores inteligentes y Chromecast más antiguos, pero es una limitación desafortunada de dotnet.
    • A partir de la versión 6.0, SysDVR Client solo se distribuye en esta página de GitHub, cualquier recarga en Play Store u otras tiendas no es oficial y no debes descargarlo.
  • La nueva GUI admite la captura de videoclips y capturas de pantalla en tiempo real.
  • Se introdujo soporte para el descubrimiento de redes locales.
    • El cliente puede detectar consolas en su red local y conectarse a ellas, ¡sin tener que escribir más direcciones IP!
    • El protocolo también está completamente documentado en este repositorio en caso de que desee crear su propio cliente.
  • SysDVR Client ahora está creado como una aplicación nativa, esto significa que simplemente funcionará™ sin necesidad de instalar dotnet.
    • A partir de esta actualización, deberá descargar la versión exacta para su sistema operativo y arquitectura de CPU.
    • Para arquitecturas que no se tratan aquí (sobre todo Raspberry Pi y Windows on Arm), puede descargar la compilación multiplataforma de estilo antiguo llamada SysDVR-Client-dotnet.7z y configurar dotnet 8 y las bibliotecas nativas necesarias por su cuenta; consulte el manual. sección de instalación de la guía.
  • Algunas funciones del cliente se eliminaron durante la reescritura; dependiendo de las solicitudes de los usuarios, es posible que se introduzcan en futuras actualizaciones; en particular, las siguientes funciones ya no están disponibles:
    • Transmitir a otros jugadores usando las opciones --stdout y --mpv
    • Retransmitir la transmisión con la opción --rtsp en el cliente. El servidor RTSP de la consola "Modo de red simple" todavía está disponible.
    • Grabación de video de línea de comando con la opción --file
  • Múltiples correcciones para errores reportados por los usuarios:
    • Se corrigió la grabación de video que no funciona en Linux.
    • El audio fijo no funciona en mac os.
    • Se agregó una opción de salida de audio alternativa para computadoras con Windows donde el audio no funciona

No te pierdas nada, síguenos en Twitter, Mastodon o Threads!
Preguntas, aportes y peticiones en el foro.

  • Contenido similar

    • Por Dekuwa
      JKSV es una aplicación multipropósito para Nintendo Switch.

      Cosas que se puede hacer actualmente con JKSV:
          Volcar y restaurar datos guardados. Esto incluye la capacidad de volcar y restaurar a / desde cualquier ubicación en SD presionando menos y usando el modo avanzado. Los datos guardados se pueden descargar y restaurar directamente desde y hacia archivos ZIP habilitando Exportar a ZIP en los menús de opciones. Las carpetas seguirán siendo detectadas y utilizables incluso con esta opción habilitada.     Sistema de volcado de datos guardados El volcado de estos datos siempre está habilitado, pero la escritura debe estar habilitada desde el menú de opciones. Escribir a esto puede ser muy peligroso.     Abrir y explorar las particiones de almacenamiento bis a través del menú Extras BIS Storage se abre dentro de un navegador de archivos básico. La lista de la partición está a la izquierda. Tu SD está a la derecha. Solo la copia a SD y las propiedades de archivo funcionan en particiones BIS. La escritura y la eliminación están deshabilitadas a menos que estén habilitadas, como los datos de guardado del sistema.     Extras: Posibilidad de eliminar las actualizaciones de firmware descargadas de NAND. Esto se encuentra en el menú de extras (ZR en la selección de usuario) Terminación de procesos por ID. Permitiéndole volcar archivos del sistema que normalmente no se pueden abrir. Montar por ID de guardado del sistema. Normalmente se usa cuando el proceso terminado hace que JKSV no pueda volver a escanear títulos sin que el Switch se bloquee. Monte y abra RomFS del proceso, el menú de homebrew se hace cargo (si se inicia como NRO). Mantén presionada la tecla R mientras abres un juego o subprograma con Atmosphere para que se cargue el menú de homebrew. Abra JKSV y presione menos y seleccione Montar proceso RomFS. Las romfs de la aplicación deberían aparecer en el navegador junto con su SD a la derecha. Guía rápida de uso de JKSV:
      Se puede definir una ruta personalizada creando "sdmc: /switch/jksv_dir.txt" y escribiendo la ruta que desea utilizar. Por ejemplo, sdmc: / switch / JKSV / forzará a JKSV a crear su carpeta en la carpeta switch homebrew.
      Se pueden configurar "títulos seguros" personalizados creando un archivo llamado titleDefs.txt en su directorio JKSV. Estas son las carpetas de la SD en las que se almacenan las partidas guardadas. Por ejemplo, si crea este archivo y agrega la línea 0100BFE00E9CA000 = "The Witcher 3 CE", The Witcher 3 usará el directorio [ruta] / JKSV / The Witcher 3 CE / en lugar de su ID de título. Estos deben ser ASCII o no funcionarán.
      Selección de usuario A abre los archivos guardados del usuario seleccionado. Y Vuelca todos los datos guardados de todos los usuarios, los datos guardados del dispositivo y los datos guardados de BCAT. Los datos de guardado del sistema no están incluidos en esto. X Cambia el modo de interfaz de usuario a uno basado en menú de texto para las personas que prefieren los menús de texto de estilo 3DS JKSM. Menos Abre el menú Opciones. ZR abre un pequeño menú de extras. Seleccionar título A Abre el título para realizar copias de seguridad y restaurar. L y R cambian el usuario actual. Y Vuelca todo lo guardado para el usuario seleccionado actualmente. X agrega el título seleccionado a una lista de favoritos que se colocan en la parte superior de la lista de títulos / íconos. Menos agrega el título seleccionado a una lista de títulos ignorados. ZR BORRADOS El título seleccionado se guarda del sistema. Esto es lo mismo que ir a la configuración y eliminar a través de la gestión de datos. ESTO NO BORRA LAS CARPETAS DE GUARDAR DE JKSV. Menú Copia de seguridad / Carpeta Menos abre el modo de archivo. El modo de archivo es un explorador de archivos básico para mover archivos y carpetas individuales. Esto también agrega la capacidad de restaurar guardados desde cualquier ubicación en su tarjeta SD. Si mantiene presionada la tecla L o R mientras selecciona nuevo con A, automáticamente le asignará un nombre a la copia de seguridad sin abrir el teclado. A crea una nueva copia de seguridad JKSV agrega algunas sugerencias al diccionario del teclado, tales como: cadenas de fecha, el nombre del usuario actual si es seguro y el título actual o una abreviatura generada. Y Restaura los datos guardados de la carpeta seleccionada. X Elimina la carpeta seleccionada. ZR BORRA los datos guardados actuales para el título de su sistema, pero deja el archivo en NAND. Modo de archivo A abre directorios. B vuelve a subir una carpeta si es posible. X abre un pequeño menú de opciones para archivos y directorios: Copiar a [X]: copia el elemento seleccionado actualmente en la ubicación abierta en el otro panel. Seleccionando el primero. utilizará el directorio abierto como raíz para copiar. Eliminar elimina el elemento seleccionado actualmente. Renombrar cambia el nombre del elemento seleccionado actualmente. Make Dir crea una carpeta. Propiedades obtiene el tamaño del archivo y el tamaño del directorio. ZL o ZR Cambia el menú controlado. Extras SD To SD Browser abre el navegador de archivos con su SD abierta en ambos paneles BIS: [X] abre la partición [X] en el navegador de archivos. Eliminar actualización elimina las actualizaciones del sistema descargadas de Nintendo y solicita reiniciar el sistema para deshacerse del problema de la actualización. Terminate Process solicita una identificación de título para finalizar. Mount System Save solicita el ID de guardado para montar. Esto es para cuando JKSV no puede volver a escanear con un proceso terminado. Volver a escanear títulos vuelve a cargar la información de los datos guardados. Esto se puede usar para recargar después de que se termina un proceso o cuando se cambian las opciones. Mount Process RomFS abre las romfs del título que se toman para iniciar el menú de homebrew. Esto solo funciona como NRO. El NSP solo abrirá el propio RomFS de JKSV. La carpeta Backup JKSV escribe la carpeta JKSV completa en un archivo ZIP y la coloca en su carpeta JKSV. Opciones Incluir Dev Sv agregará juegos de Device Save como Animal Crossing a los guardados de su cuenta de usuario para facilitar el acceso. AutoBackup creará una copia de seguridad de su guardado actual antes de restaurarlo por si acaso. Overclock sincronizará la CPU de su Switch a 1224MHz en el arranque. Mantener presionado [X] desactivará la necesidad de mantener presionado A para confirmar una acción. Forzar montaje solo permitirá que JKSV enumere los títulos que puede abrir. La desactivación dará una lista completa de todos los guardados en su sistema Account Sys. Los guardados le permitirán ver y abrir los guardados del sistema asociados con las cuentas de usuario. Escriba a Sys. Los guardados le permitirán escribir datos en los archivos guardados del sistema. Esto puede resultar peligroso. El modo de interfaz de usuario de texto permite una interfaz de usuario simplificada que solo usa menús de texto Direct FS Commands usa un contenedor simple en lugar del stdio de libnx. Omitir selección de usuario salta directamente al primer usuario encontrado en lugar de requerir que se seleccione un usuario. Exportar a ZIP utiliza minizip para comprimir los datos guardados en un archivo ZIP en lugar de en una carpeta llena de archivos. Esto ahorra espacio y hace que los ahorros en movimiento sean más convenientes. Ordenar cambia la forma en que se ordenan los títulos. Alfabéticamente, más tiempo reproducido o por último título reproducido. Aplicación creada por J-D-K.
    • Por Dekuwa
      PKHeX es un editor de partidas guardadas, programado en C#, de la serie de videojuegos Pokémon, compatible con títulos de Switch, Nintendo 3DS y GameCube.
      Soporta los siguientes tipos de archivo:
      Archivos de partidas guardadas ("main", *.sav, *.dsv, *.dat, *.gci) Archivos de la tarjeta de memoria de GameCube (.raw, .bin)que contienen las partidas guardadas de los juegos Pokémon de GC. Archivos de juego de Pokémon (.pk*) Archivos de regalo misterioso (.pgt, .pcd, .pgf, .wc*) incluyendo la conversión a .pk* Importación de equipos desde los Battle Videos desencriptados de 3DS Transferencia desde una generación a otra, convirtiendo formatos sobre la marcha.
      Los datos se muestran en una vista que se puede editar y guardar. La interfaz se puede traducir con recursos/archivos de texto externos para que se admitan diferentes idiomas.
      Los conjuntos de Pokémon Showdown y los códigos QR se pueden importar/exportar para ayudar a compartir.
      Los contenedores de datos guardados de Nintendo 3DS usan un AES MAC que no se puede emular sin las claves de 3DS, por lo que se requiere un servicio de renuncia (svdt, save_manager, JKSM o SaveDataFiler).
      No apoyamos ni aprobamos hacer trampa a expensas de otros. No uses Pokémon significativamente pirateados en la batalla o en intercambios con aquellos que no saben que se están usando Pokémon pirateados.
      PKHeX es una aplicación creada por Kaphotics.
    • Por Dekuwa
      uLaunch es un reemplazo/reimplementación personalizado y de código abierto del Menú Home (qlaunch) de Nintendo Switch, extendiéndolo con funcionalidades orientadas al homebrew y así sacarle más partido a la consola.
      Esto no es una especie de extensión del menú Home, inyección, parche, etc. uLaunch es una reimplementación completa, 100% de código abierto, que también se hace cargo de los applets de eShop y Control parental (todos ellos bastante inútiles con esta reimpl) para su funcionalidad ampliada. Para aquellos que estén interesados en cómo se hizo la interfaz de usuario, este proyecto es, como Goldleaf, un buen ejemplo de lo poderosas que pueden ser las bibliotecas de Plutonium para crear hermosas interfaces de usuario. Funcionalidades de uLaunch
      Ejecución adecuada y gestión en primer plano: iniciar, suspender y cerrar aplicaciones y subprogramas Manejo general adecuado de canales (algunos de ellos pueden no estar implementados): suspensión, apagado, reinicio, detección de presionar el menú Home Ajustes: Muestra el nombre de la red WiFi conectada, la dirección MAC y la dirección IP ... Abra el subprograma de conexión en caso de que el usuario quiera cambiar la configuración de red Cambiar el idioma de la consola y mostrar uno activo Cambiar el apodo de la consola y mostrar el actual Funciones de usuario: Permitir crear usuario en el menú de inicio Mostrar la página del usuario (para editar el apodo, icono, amigos ...) Soporte de Homebrew Lanzamiento como applets (¡sin necesidad de Álbum!) Lanzamiento como aplicaciones (¡usando un título de donante!) Menú casero básico personalizado Opción para agregar accesos NRO personalizados al menú principal (artículos caseros o personalizados fácilmente accesibles, ¡no más necesidad de reenviadores!) Interfaz de usuario Temas (diferentes a los temas oficiales del menú HOME / NXThemes) Iconos personalizados, recursos de menú y gráficos (imágenes personalizadas, colores, tamaños, posiciones ...), fondo ... ¡Música de fondo y efectos de sonido personalizados! Carpetas para mantener organizado su menú principal. Usuarios Inicio de sesión similar al de una PC en el inicio (seleccione el usuario y úselo para todo, cierre la sesión, registre / cambie / elimine la contraseña ...) Soporte de contraseña de usuario! (hasta 15 caracteres) Extras varios Navegación web (a través de web-applet) directamente desde el menú principal. Captura de pantalla de la consola desde la propia PC (solo Windows) a través de un cable USB-C y la herramienta uViewer.




      Disclaimer
      uLaunch le permite iniciar homebrew como una aplicación, aprovechando el título de la aplicación incorporado 'flog' del sistema, que fue eliminado pero no eliminado, por lo que su contenido puede anularse a través de LayeredFS y ejecutarse.
      Dado que lanzar este título debería ser imposible, podría implicar un riesgo de prohibición. uLaunch tiene esta opción deshabilitada por defecto, así que habilítela y úsela bajo su propio riesgo. Asegúrese siempre de estar a salvo de prohibiciones (utilizando herramientas como 90DNS) antes de usar uLaunch para evitar posibles riesgos.
      Créditos
      Several scene developers for help with small issues or features. SciresM for libstratosphere. Switchbrew team for libnx and hbloader, the base of *QHbTarget projects (they're some useful wrappers of hbloader in the end) C4Phoenix for the amazing design of this project's logo. Icons8 website for a big part of the icons used by the default style. Everyone from Discord or other places whose suggestions made this project a little bit better ? by XorTroll.
    • Por Dekuwa
      SaltyNX es un proceso en segundo plano de la Nintendo Switch para la modificación de archivos/códigos.
      Este fork incluye muchas mejoras QoL y además de soporte para plugins también soporta parches.
      Parchea el patrón:
      filename es símbolo de función con filetype .asm64, dentro del archivo escriba con el editor hexadecimal las instrucciones que desea sobrescribir para esta función, pon este archivo en SaltySD/patches para que funcione con todos los juegos, o en SaltySD/patches/*titleid* para que funcione con un juego específico. Para funciones adicionales necesitas SaltyNX-Tool
      Las pruebas se realizaron en FW 7.0.1-16.0.0 con Atmosphere hasta 1.5.0.
      No hay soporte técnico para:
      Forks de Atmosphere SX OS Kosmos ReinX SaltyNX es una aplicación creada por masagrator.
    • Por Dekuwa
      Un mitm kip modificado de fs_mitm.
      ldn_mitm implementa la conectividad LAN reemplazando el servicio ldn del sistema.
      El servicio ldn original solo es responsable de llamar al servicio WiFi para escanear y conectarse al Switch cercano. ldn_mitm utiliza LAN UDP para emular este proceso de escaneo. Por lo tanto, ldn_mitm generalmente se usa con switch-lan-play.
       

      ldn_mitm ha sido creado por espaciomeowx2.
×
×
  • Crear nuevo...