Acerca de RGB-Pi y Raspberry Pi4

From RGB-Pi Wiki
Revision as of 21:34, 24 January 2022 by DreamCRT (talk | contribs) (Created page with "* El nuevo controlador KMS ahora está terminado y funcionando. * Se ha creado un nuevo Device Tree Overlay .dtbo para que sea 100 % compatible con KMS. * Se ha creado un nuev...")
Jump to: navigation, search
Other languages:
English • ‎español

RGB-Pi in Raspberry Pi4 and Beyond

Como muchos de ustedes preguntan si los dispositivos RGB-Pi serán compatibles con los últimos modelos de Raspberry Pi4, queríamos aclarar algunos puntos aquí:

  • Desde el punto de vista de la especificación GPIO, todos los dispositivos RGB-Pi actuales son 100 % compatibles con Raspberry Pi4/Pi400.
  • Desde la perspectiva del software, la introducción del nuevo controlador de video KMS hizo imposible usar la forma anterior de cambiar las resoluciones a través del controlador personalizado de firmware.


About Raspberry Video Drivers

  • Legado: hasta Pi3, Raspberry usaba un controlador de video personalizado que se comunicaba directamente con el firmware (que solo tenía una implementación personalizada de OpenGL ES) y tenía acceso directo al framebuffer. Esto ahora es heredado y ya no es totalmente compatible con Pi4.
  • FKMS (Falso/Firmware KMS): utiliza la API Dispmanx personalizada para comunicarse con el firmware. Fue el controlador predeterminado de Pi4 durante algún tiempo y no admitía el uso de cambios de framebuffer a través de los comandos fbset, tvservice o vcgencmd.
  • KMS: el kernel se comunica directamente con los registros de hardware sin pasar por el firmware. A partir de hoy, este es el controlador de video estándar de la industria y el nuevo controlador predeterminado en todos los modelos Pi actuales y futuros.


Development Status

Frontend

  • La interfaz, que utiliza Pygame SDL1 y objetos de superficie, se ha rediseñado desde cero para evitar los problemas de rendimiento que sufrían en Pi4 debido a los cambios en las bibliotecas de videos. Ahora está basado en sprites y está preparado para migrar fácilmente a Pygame SDL2. Hay un error en Pygame SDL2 que nos impide reiniciar el video mientras se ejecuta la interfaz. Este problema está siendo abordado actualmente por el equipo de desarrollo de Pygame.
  • Los controladores de audio ALSA se cambiaron para hacer que algunos de los dispositivos virtuales internos cumplieran con la configuración y la denominación estándar. Eso dio como resultado que algunas características de audio, como el ecualizador y el conector de audio, no funcionaran. Se han resuelto todos los problemas con el audio ALSA.
  • Los descriptores y la clasificación del concentrador PCI USB de Raspberry han cambiado, lo que hace que el orden del controlador ya no coincida con Retroarch. También RetroArch cambió su motor de clasificación. Después de algunos trabajos en el motor de nuestro controlador, ahora ya está completamente adaptado para coincidir con todos estos cambios.


Video Driver and Timings

  • El nuevo controlador KMS ahora está terminado y funcionando.
  • Se ha creado un nuevo Device Tree Overlay .dtbo para que sea 100 % compatible con KMS.
  • Se ha creado un nuevo módulo de kernel personalizado para proporcionar un puente entre KMS y DPI.
  • Se ha creado un nuevo kernel personalizado para admitir resoluciones entrelazadas (480i).
  • Se ha creado un nuevo kernel personalizado para admitir CSYNC nativo.
  • Se ha creado un nuevo RetroArch personalizado para admitir KMS y el nuevo subsistema de video personalizado DynaRes (más información en la sección 'Nuevas funciones' a continuación).


New Features

DynaRes

File:Dynares.gif

We have developed a custom version of RetroArch which includes a new video subsystem (DynaRes) to fully manage all the video modes and options. the main features of DynaRes are the following ones:

  • Does not require any external timings database.
  • Can set the proper resolution and native refresh rate, as provided by the core, when launching games.
  • Can change the resolution on the fly as requested by the core/game while playing.
  • Support different monitor types (15khz, 25khz, 31khz, etc.)
  • Timings calculated based on Calamity switchres.
  • Automatic H and V image positioning and centering.
  • Has different working modes (all of them using native refresh rates):
    • Native: games will run on native H and V resolutions. On the fly timing changes will happen on both H and V resolution changes.
    • SuperX: games will run on native V resolution. H resolution is super res dynamically calculated using integer scale with 8px of overscan. On the fly timing changes will happen only on V resolution changes.
    • Custom Fixed: games will run in a fixed resolution. This is useful for scenarios like Dreamcast 240p/480i, or TATE games played rotated.
    • Handheld Full: systems like GBA and NGP can be displayed in special fullscreen mode.


Lightgun

File:Lgun.gif

We have developed a custom driver to support original Namco GunCon 2 lightgun. Currently, only original blue(EU), black(JP) and orange(US) original guns are supported. We are working on supporting clones and original XBOX gun in the future if feasible. It is very important to know that there are 4 different kinds of gun games based on the hardware they used. While nothing prevents us on playing any of them, different results could be faced:

  • Lightgun blanking based. The main example is the NES Zapper. These games play really well. Some cores like Genesis Plus GX do not provide any precision adjustment, so SMS games for instance become more challenging.
  • Lightgun beam read based. The main example is PSX GunCon. These games work and play perfectly fine.
  • Lightgun + IR receiver based. Sega Menacer is the main example. These games play well as long as they do not have big black areas. An example of game that do not work well is Megadrive T2 the Arcade. The sky in this game is black, so the gun cannot read the beam. On the other hand, SNES version which is prepared for beam read based gun plays well since the sky changes to a blue color.
  • Fake Lightgun. There are many examples of this in arcade. For example Operation Wolf arcade cabinet uses a joystick disguised as gun. Again, the playability here relies on games not having many and/or big black areas on the screen.


Final Words

While we are still working on more and new features, fixing bugs, etc., the system is currently in a very advanced Alpha status and working very nicely. Please be patient, all this work is made in my spare time (rTomas). The system will be for sure released at some point in 2022. For quick updates, photos, videos, etc. you can follow me on Twitter @rtomasal

To be continued...