Hola Esta es una consola de juegos retro basada en la Raspberry Pi. En un cartucho de la consola de juegos NES. Se puede usar una pantalla integrada para el juego. Al emitir video a través de HDMI, muestra la imagen de la portada del juego, así como la temperatura central, ver foto. Sugiero un poco de nastalgit y lea sobre el ensamblaje y la configuración de dicho dispositivo. Precaución, luego mucho tráfico y fotos.
Nostalgia
En la infancia, a nosotros, que ahora tenemos entre 25 y 35 años, nos encantaba jugar a las consolas. Entonces no había una palabra nueva para la consola, así que los llamaré así. Mi conocimiento de las consolas comenzó con Dandy (clon de NES). Super Mario Bros, Contra, Ducktales, Battletoads son solo
algunos de los éxitos de la época. Luego, todo el patio iba a jugar con mi amigo Sega (Sega Mega Drive), en éxitos como Sonic, Ultimate Mortal Combat 3, Contra Hard Corps y
más . Y cuando salió Play Station, debo decir que no nos llegó de inmediato, la serie Resident Evil causó un deleite realmente aterrador.
Esta imagen me ayudó a limpiar una lágrima de nostalgia. Debo decir que no soy el primero en crear una Raspberry Pi en el cartucho NES. Sí, este no es mi dispositivo. Y este cartucho es casi ideal para estos fines, es pequeño y hermoso. Y adentro hay mucho espacio. Juzga por ti mismo.
Dentro de Raspberry Pi Zero, un concentrador USB y un par de cables de extensión. Todos los palitos se fijan con pegamento termofusible.
Asamblea
Quería coleccionar algo igual o similar. Se seleccionó el mismo cartucho de NES. Otras opciones son muy pequeñas o no se ven muy bien. El Raspberry Pi 3B fue el corazón ardiente del automóvil retro. También se compraron conectores USB con pines de soldadura convenientes en Ali. Eso es todo
Ah, sí, repetirá este proyecto, no tome cartuchos de impacto. Hay muy pocos de ellos. Toma algo más común o menos conocido. También hay una opción para llevar un cartucho con Ali, pero el original, calienta el alma. Mi lanzamiento de 1986.
También necesitará un destornillador
nes especial si el cartucho se
atornilla en tres tornillos. También hay opciones de cartuchos iniciales con cinco tornillos; se desenroscan con un destornillador plano normal. Solo tengo uno.
Todas las partes que interfieren se cortan y se cortan del cartucho con un cuchillo de oficina y una hoja de sierra para metales.
Los conectores sobresalientes fueron soldados a la Raspberry Pi. Los expertos dicen que puede prescindir de una estación de soldadura, si primero desmonta cuidadosamente los conectores con cortadores de alambre y luego suelda una pata a la vez. Todo pegado a la fusión en caliente. Entre los conectores USB y la frambuesa se colocó un aislante hecho de plástico no consumible. No olvide conectar el GND Raspberry Pi y el cuerpo del conector USB (no se muestra en la imagen de arriba). De lo contrario, algunos joysticks no funcionarán.
El último
Retropie se instaló en la
frambuesa . Al principio estaba
Recalbox , pero lo
rechacé , porque no admite la vibración de los joysticks en Playstation 1. Pero debo decir que Recalbox es un poco más conveniente en términos de lo que funciona de fábrica y no necesita configurar nada. En Retropie, hay un montón de configuraciones que puedes personalizar sin fin. Esto es lo que me gustó.
Esto es lo que pasó. Todos los joysticks con xinput están conectados.
Pantalla
El apetito viene con comer. ¿Qué hay de incrustar la pantalla en el cartucho? Para jugar o mostrar la imagen de portada del juego.
Tal pantalla fue ordenada. Esta es una pantalla DPI paralela de 800 * 480 3.5 pulgadas que usa casi todos los GPIO de Raspberry Pi. Funciona para mí en modo de 120 Hz (pero el renderizado aún está a 60 Hz), la respuesta es instantánea. Lo único negativo es la matriz de 6 bits. Solo 262,144 colores. Aunque, en general, esto no es particularmente notable, juzgue usted mismo.
Captura de pantalla del juego Comix Zone (Clickable)
Todas las patas de la pantalla y la Raspberry Pi fueron soldadas. La pantalla estaba soldada por dos cables de un viejo cable IDE andrajoso. Las hipotecas de 5 mm se instalan debajo de la pantalla, no toca la pared inferior del cartucho. Se pega una cinta aislante alrededor del perímetro de la pantalla para que no haya destellos laterales. Todo está pegado al pegamento caliente. En la cubierta superior, corté una ventana y pegué un vaso de 2 mm de espesor.
Para iniciar la salida de imagen a esta pantalla, debe corregir la configuración
/boot/config.txt . Recomiendo
WinSCP para propietarios de Windows, que, cuando se conecta a Raspberry Pi a través de SSH, ofrece una presentación de los archivos como en Total commander. Muy comodo Especialmente si lo ejecuta en modo
shell sudo su - , que le da acceso a todos los archivos.
Desafortunadamente, cuando la pantalla DPI está encendida, la salida de video HDMI no funciona. Por lo tanto, creé dos
archivos de configuración en la carpeta
/ boot / , uno
config_hdmi.txt y el segundo
config_dpi.txt . La configuración
config_hdmi.txt estableció la resolución en 1080p60Hz y eliminó el overscan.
config_dpi.txt contiene la configuración de DPI de la pantalla.
config_dpi.txt# uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 disable_overscan=1 # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=1 #hdmi_mode=1 # Sound output. Set to 0 or comment for autodetect, 1 for DVI, 2 to force HDMI. #hdmi_drive=2 # Using /etc/modules is deprecated and no longer supported on 4.4 kernel # So manually enable audio dtparam=audio=on config_hdmi_boost=0 # force hdmi while the tv can take time before sending the signal on the hdmi output hdmi_force_hotplug=1 # uncomment for composite PAL #sdtv_mode=2 # uncomment for lirc-rpi #dtoverlay=lirc-rpi #3.5 HD tft screen 800x480 dtoverlay=dpi24 overscan_left=0 overscan_right=0 overscan_top=0 overscan_bottom=0 #Banggood framebuffer_width=800 framebuffer_height=480 dtparam=spi=off dtparam=i2c_arm=off enable_dpi_lcd=1 display_default_lcd=1 dpi_output_format=0x6f015 dpi_group=2 dpi_mode=87 hdmi_timings=480 0 16 16 24 800 0 4 2 2 0 0 0 120 0 46080000 6 display_rotate=3 # if you plug your tv at the same time as your rpi and that the rpi switches from the hdmi or give a low resolution because tv had no enough time to initialize it boot_delay=3 # uncomment if you don't want the rainbow at startup #disable_splash=1 # default CEC name #cec_osd_name=recalbox dtparam=spi=off # Overclock gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256 overscan_scale=1 gpu_mem=256 start_x=0 enable_uart=0 avoid_safe_mode=1 kernel=zImage
config_hdmi.txt # For more options and information see # http://rpf.io/configtxt # Some settings may impact device functionality. See link above for details # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) hdmi_group=1 #1080p60fps hdmi_mode=16 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on dtparam=spi=off # Uncomment this to enable the lirc-rpi module #dtoverlay=lirc-rpi # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256 overscan_scale=1 gpu_mem=256 start_x=0 enable_uart=0
Cambiar las configuraciones será nuestro autoscript que está disponible en la red
\\ 192.168.x.xxx \ configs \ all \ autostart.sh o en la carpeta en el dispositivo /opt/retropie/configs/all/autostart.sh
También se
escribió el script
switchscreen.sh , que debe colocarse en
/ home / pi / RetroPie / retropiemenu / . Este script cambia manualmente las configuraciones y se puede acceder desde el menú principal de configuración de Retropie. Después de iniciarlo, debe extraer el cable HDMI, de lo contrario, después de reiniciar, todo cambiará automáticamente. No olvides registrar el script
chmod +x /home/pi/RetroPie/retropiemenu/switchscreen.sh
Autostart.sh muestra trazas de código que deshabilitan el DPI de la pantalla cuando se activa HDMI. Copié este script en Internet, por lo que no funciona en nuestra pantalla. Podríamos confundirnos con los transistores para apagar la pantalla, pero ¿por qué si necesitamos mostrar la imagen de portada del juego que se está ejecutando actualmente? Solo necesita descubrir qué es DPI.
Interfaz de pantalla paralela (DPI)
DPI, como se ha dicho, es una interfaz paralela para pantallas. La información en esta interfaz
una vez ,
dos veces y se
calculó mal . Bueno, ahora estará aquí, en ruso.
Todos los intentos de habilitar DPI con comandos de consola durante la operación HDMI han fallado. Tal vez estaba haciendo algo mal. El plan B fue adoptado para su implementación: muestra la imagen en una pantalla pequeña, tirando de las patas GPIO mediante programación.
DPI se caracteriza por el hecho de que un píxel se transmite a la pantalla por ciclo de reloj de la señal de reloj. Dado que tenemos una matriz de 6 bits, estos son 18 pines para tres colores, y también hay habilitación de visualización (indica una fecha válida), h_sync (establece la dirección de línea horizontal en cero en el controlador de pantalla), v_sync (establece la dirección de línea vertical en cero en el controlador de pantalla ) El ajuste de datos ocurre en el borde descendente de la señal del reloj. Esto se sabe si desciframos la línea "dpi_output_format = 0x6f015" de nuestro
config_dpi.txt de acuerdo con esta terminología.
dpi_output_format output_format = (dpi_output_format >> 0) & 0xf; rgb_order = (dpi_output_format >> 4) & 0xf; output_enable_mode = (dpi_output_format >> 8) & 0x1; invert_pixel_clock = (dpi_output_format >> 9) & 0x1; hsync_disable = (dpi_output_format >> 12) & 0x1; vsync_disable = (dpi_output_format >> 13) & 0x1; output_enable_disable = (dpi_output_format >> 14) & 0x1; hsync_polarity = (dpi_output_format >> 16) & 0x1; vsync_polarity = (dpi_output_format >> 17) & 0x1; output_enable_polarity = (dpi_output_format >> 18) & 0x1; hsync_phase = (dpi_output_format >> 20) & 0x1; vsync_phase = (dpi_output_format >> 21) & 0x1; output_enable_phase = (dpi_output_format >> 22) & 0x1; output_format: 1: DPI_OUTPUT_FORMAT_9BIT_666 2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1 3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2 4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3 5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1 6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2 7: DPI_OUTPUT_FORMAT_24BIT_888 rgb_order: 1: DPI_RGB_ORDER_RGB 2: DPI_RGB_ORDER_BGR 3: DPI_RGB_ORDER_GRB 4: DPI_RGB_ORDER_BRG output_enable_mode: 0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID 1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS invert_pixel_clock: 0: RGB Data changes on rising edge and is stable at falling edge 1: RGB Data changes on falling edge and is stable at rising edge. hsync/vsync/output_enable_polarity: 0: default for HDMI mode 1: inverted hsync/vsync/oe phases: 0: DPI_PHASE_POSEDGE 1: DPI_PHASE_NEGEDGE

La secuencia de bits se muestra en la figura anterior. Para cada línea que comienza con VSYNC, hay un ciclo completo de medidas de la línea HSYNC. Este es un cuadro. Back and Front porch son los llamados sangrados de la pantalla, que están en la memoria del controlador, pero no están en la pantalla.
Ahora decodifique la línea "hdmi_timings = 480 0 16 16 24800 0 4 2 2 0 0 0 120 0 46080000 6" de nuestro config_dpi.txt. Aquí no hay nada complicado, solo escriba los parámetros en orden.
En esta imagen se muestra qué patas GPIO se usan para la reproducción del color. Tenemos el Modo 5. ¡Atención, estas no son patas en orden, es decir, la notación GPIO! Otras señales Reloj - GPIO 0, DE - GPIO 1, VSYNC - GPIO 2, HSYNC - GPIO 3.
Se instaló rápidamente una pitón, la biblioteca GPIO necesaria y se escribió un script de saludo, al menos coloreando la pantalla en azul. Y también tuve disonancia cognitiva cuando Notepad ++ en Windows no mostró la sangría donde estaban en nano, mientras que al hacer saltos de línea hice pestañas, no espacios. Por cierto, VSCode peca de la misma manera, cómo solucionarlo, no lo encontré.
Script de Python from gpiozero import LED from time import sleep sleep_time = 0.0 clock = LED(0) de = LED(1) vsync = LED(2) hsync = LED(3) red2 = LED(16) red3 = LED(17) red4 = LED(18) red5 = LED(19) red6 = LED(20) red7 = LED(21) green2 = LED(10) green3 = LED(11) green4 = LED(12) green5 = LED(13) green6 = LED(14) green7 = LED(15) blue2 = LED(4) blue3 = LED(5) blue4 = LED(6) blue5 = LED(7) blue6 = LED(8) blue7 = LED(9) def v_sync(frame): vsync.on() for n in range(frame): clock.on()
Demasiado lento, Python. Fue una sorpresa para mí que los píxeles ya renderizados desaparezcan. Aunque lo que esperaba era obvio.
Se decidió reescribir todo en C. Funciona más rápido, a unos pocos cuadros por segundo. La pantalla se ondula como en los viejos monitores CRT o radares. Lo que necesitas Retro! El código está publicado en
GitHub .
Se accede a GPIO directamente a través de los registros de SoC BCM2837. Tomé ejemplos de código
aquí .
Todo comenzó con un programa muy pequeño, pero ahora también se muestran el procesador y la memoria en forma de pequeñas barras de desplazamiento. La temperatura del procesador se dibuja en dicha fuente.
Para ejecutar el código, debe copiar el contenido del repositorio a la carpeta / home / pi / lcd_screen / (¿Quién sabe cómo escribir la ruta relativa al binario y no la carpeta de trabajo en C bajo nix? Por lo tanto, hasta ahora solo a esta carpeta) y ejecutar los siguientes comandos.
gcc ./lcd_screen/lcd.c -o ./lcd_screen/lcd chmod +x ./lcd_screen/lcd
O descargue el binario de las versiones de inmediato. Para comenzar, debe escribir lo siguiente. Se requiere SUDO para acceder al GPIO.
sudo ./lcd_screen/lcd path/file.bmp usec_per_frame
Donde "ruta / archivo.bmp" es la ruta al archivo de imagen, solo funciona con formato BMP, "usec_per_frame" es el retraso entre cuadros en microsegundos, para no cargar el procesador en vano.
Automatizamos el lanzamiento de nuestro programa lcd para que muestre la portada deseada cuando el juego se está ejecutando. Por supuesto, Retropie usa un raspador incorporado para cargar las cubiertas.
Instala el convertidor de imágenes. Convertirá todos los formatos a bmp compatibles con el programa. Al mismo tiempo, y cambiar el tamaño, para que las imágenes fueran de pantalla completa.
sudo apt-get install imagemagick
En el directorio
/ opt / retropie / configs / all / , cree dos archivos:
runcommand-onstart.sh y
runcommand-onend.sh . Retropie ejecuta automáticamente estos scripts al cargar / finalizar cualquier juego. Recuerde asignar chmod + x a cada archivo.
En el script inicial, primero se verifica la presencia de la conexión DPI, luego se busca una imagen con formatos jpeg o png, se gira al ángulo deseado, se cambia su tamaño y se convierte a formato bmp, luego mi programa comienza con los parámetros necesarios.
Enfriamiento
La Raspberry Pi 3B es más potente que la Zero y necesita una buena refrigeración. Especialmente en un caso tan cerrado. Con un pequeño disipador de calor visible en la foto, después de media hora de jugar en cualquier emulador, la temperatura central alcanzó los 80 grados y comenzó el trote.
Se ordenó un ventilador centrífugo de 40 * 30 * 10 mm, pero hasta que llegó, intenté cortar una pequeña placa de 80 * 30 mm de tamaño de aluminio de 3 mm. Para entonces, había eliminado todos los pines GPIO, por lo que ya no interferían con la instalación de la placa. Además, también corté una pieza de 20 * 10 mm para hacer contacto con el chip e hice un sándwich con las placas. Esto superó todas mis expectativas, con un máximo de 65 grados en el núcleo.
Entonces se ve dentro.
Al final lo que
¿Cómo se juega esto? Genial Con gritos, golpes de gamepads, reproches mutuos. Justo como una vez.
No se notaron retrasos ni retrasos.
La pantalla, por supuesto, es pequeña, solo tres pulgadas y media. Los teléfonos inteligentes de cinco pulgadas nos mimaron, pero puedes jugar. El texto es legible, incluso pequeño. Prefiero HDMI
Puedes venir a un amigo, jugar, la portabilidad lo permite. Accesorios relacionados: cables, cables, joysticks, carga ocupan más espacio que la consola misma.
Sonido
Desafortunadamente, el sonido estándar de la Raspberry Pi deja mucho que desear. La modulación PWM con filtrado pasivo se utiliza como sistema de sonido. Por lo tanto, se compró un DAC USB en el PCM2704. Principalmente por su tamaño.
Realmente no hay suficiente salida de sonido cuando se reproduce en una pantalla LCD pequeña, así que también compré un micro amplificador de 3 W en el NS8002 y tomé un altavoz de una tableta de 8 Ohm.
Todo esto cabe debajo de la pantalla LCD. Vendrá, lo pondré.
File Retropie
Asamblea completada. Los siguientes son algunos de los ajustes de Retropie menos interesantes para la lectura de entretenimiento.
SombreadoresLa mayoría de las consolas que pueden emular la Raspberry Pi ofrecen una resolución de 320x240 píxeles. Según los estándares actuales, esto es muy pequeño. Todos los juegos adquieren pixelación pronunciada en las pantallas modernas.
Los creadores de Retroarch, que forma parte de Retropie, se ocuparon de este problema y agregaron soporte para sombreadores. Por ejemplo, me gusta mucho el
xbr-lv1-noblend.glslp preinstalado . Literalmente saca los detalles de la imagen. Ver abajo.
Captura de pantalla del juego Castlevania: Symphony of the Night, te aconsejo que lo jueguesPara instalar el sombreador, vaya al menú Retropie ->
Editor de configuración . Seleccione
Configurar opciones básicas de emulador de libretro , luego seleccione
Configurar opciones predeterminadas para todos los emuladores de libretro . Luego configure
Video Shader Enable en "true" y
Video Shader File en el shader deseado. Configure
Video Smoth en "falso" también, ya que solo mancha la imagen. Incluso puede elegir algo como un sombreador de línea de exploración que emite el trabajo de los televisores CRT. Pero esto no es para todos.
Renderizar sombreadores es una operación bastante costosa. Con una resolución igual y superior a 720p, aparecen atascos bastante notables en el RPi 3B. Por lo tanto, en el mismo menú, seleccione
Resolución de procesamiento "800x600". No se preocupe, si realizó cambios en el archivo
/boot/config.txt antes , como en este artículo un poco más alto, la resolución de la pantalla en el cable HDMI será 1080p, pero el emulador mostrará la imagen a 800x600 y la extenderá a la pantalla completa. Y no lo hace mal. Al menos con un sombreador es mejor que sin él, y un render en 1080p es inútil, porque los datos de video del juego todavía se dibujan para una resolución de 320x240.
Configuración de joystickSi tiene un gamepad xinput (Micro $ oft estándar), lo hará. Se configura al primer inicio de Retropie, o mediante el botón de inicio - Configurar entrada. Pero hay un dolor de cabeza. Chicos astutos en el extranjero, para no caer en demandas de patentes, intercambiaron los botones con A y B, X e Y.
Si tiene un gamepad de xbox o similar, debe configurarlo con los botones invertidos, como en NES. Luego vaya a Retropie ->
Configuración de Retropie , seleccione
Configuración / herramientas , luego
emulationstation , coloque "Intercambiado" en
los botones Cambiar A / B en ES . Luego reconfigure el joystick.
Además, no me gusta cómo los desarrolladores de Retropie administraron el fondo del botón. ¿Dónde está la combinación de botones para tomar una captura de pantalla? ¿Por qué necesito un botón de reinicio si lo presiono todo el tiempo? ¿Dónde están los botones de rebobinado y aceleración de tiempo?
Para solucionar esto, debe editar el archivo con el nombre de su joystick en
/ opt / retropie / configs / all / retroarch-joypads / . También está disponible en la red
\\ 192.168.x.xxx \ configs \ all \ retroarch-joypads \ . Después de cada actualización de Retropie a través del actualizador, la numeración del enlace vuela, por lo que no cargaré toda la configuración. Escribiré que cambié solo estos botones. Se ejecutan cuando se presionan simultáneamente con la tecla de acceso rápido, generalmente un botón con un logotipo en el centro del joystick.
Botón de configuración input_screenshot_btn = "0" input_rewind_btn = "h0left" input_hold_fast_forward_btn = "h0right" input_state_slot_increase_btn = "h0up" input_state_slot_decrease_btn = "h0down"
Aquí se asigna el botón de captura de pantalla en lugar de restablecer. Fast forvard y rewind (rewind) se configuran en los botones cruzados: hacia adelante y hacia atrás. Los botones cruzados hacia arriba y hacia abajo cambian la ranura de guardado.
El rebobinado debe estar habilitado en la configuración
/opt/retropie/configs/all/retroarch.cfg . Simplemente no habilite Rewind en el emulador psx, todo comienza a ralentizarse enormemente. Rebobinar está deshabilitado de forma predeterminada en la configuración de psx.
También quiero agregar sobre Bluetooth. A mí mismo no me gustan los joysticks inalámbricos y siempre juego con cable. La vieja escuela todavía. Para los amantes de los joysticks inalámbricos, debe comprar un dongle Bluetooth e insertarlo en un puerto USB. Será mejor y no habrá problemas. Yo mismo no lo comprobé, pero escriben personas con conocimientos.
Xboxdrv
Pero eso no es todo. En la
Configuración de Retropie en el administrador de paquetes, puede poner varios puertos, por ejemplo, Openttd, Doom o incluso el emulador DOS DOSbox. Pero no podrás controlar el joystick en ellos. Solo un teclado y un mouse. Para solucionar esto, debe instalar el controlador xboxdrv en el administrador de paquetes, que puede emular pulsaciones de teclas. Simplemente póngalo desde la fuente, no hay necesidad de ejecutar automáticamente, no se ajusta a todos los joysticks.
Escribiremos el script de lanzamiento para nuestro gamepad. Agregue las siguientes líneas al final del archivo en
/opt/retropie/configs/all/runcommand-onstart.sh .
Aquí $ 1 es nuestro sistema de destino en el que se inicia xboxdrv. Puedes agregar por analogía. Las líneas --evdev-absmap --evdev-keymap son responsables de vincular ejes y botones a su joystick. La secuencia de comandos anterior se proporciona para el controlador Xbox One S. Para averiguar qué eje y botón corresponden al número o nombre de su joystick, debe escribir el comando
evtest en la consola. Al mismo tiempo, puede ver qué evento corresponde a nuestro joystick. Tengo este / dev / input / event0 que está en el parámetro --evdev.
Las opciones --ui-axismap emulan el eje del mouse y los botones de teclado --ui-buttonmap. En este ejemplo, el disparador es el botón del mouse, el stick izquierdo es el mouse, el stick derecho son las teclas del cursor. Inicio, seleccione - enter y esc, respectivamente. Los dígitos del teclado se adjuntan a los botones restantes. Desafortunadamente, no fue posible usar la cruz debajo de los botones del teclado. Por alguna razón, el joystick Xbox One S se niega a funcionar.
Estrategias como Theme Hospital, OpenTTD, etc. se juegan con esa configuración. Un poco peor se juega en shooters, pero puedes crear scripts de lanzamiento similares para shooters en el mismo archivo cambiando el parámetro de $ 1 allí.
Para garantizar el funcionamiento normal del joystick en la estación de emulación, debe completar xboxdrv después de salir del juego. Para hacer esto, agregue lo siguiente al final del archivo
/opt/retropie/configs/all/runcommand-onend.sh .
runcommand-onend.sh sudo killall > /dev/null 2>&1 xboxdrv
Si algo salió mal al actualizar RetropieUna vez, inicié la actualización Retropie y al desempacar el kernel, el Wi-Fi incorporado se cayó. El dispositivo se inició, pero no respondió a ningún botón, incluido el teclado conectado. No hay SSH, ya que no hay Wi-Fi, no responde al teclado y no puede obtener la tarjeta SD ...
Me di cuenta de que el teclado funciona en el momento del arranque. Presioné ctrl + c muchas veces y, ¡oh, la consola! ¿Pero cómo restaurar Wi-Fi ahora? La interfaz wlan0 faltaba en la palabra. Ejecutar el actualizador no ayudó, ya que extrae archivos de Internet.
Lo primero en /opt/retropie/configs/all/autostart.sh comentó sobre el lanzamiento de la estación de emulación y se reinició.
Después del reinicio, la consola se carga, el teclado funciona. Más google cómo devolver wlan dio esto. El comando reconfigura todos los paquetes instalados. Ayudó sudo dpkg --configure -a
Para que Retropie no parezca una estación de LinuxAl cargar la consola, no quiero mirar el registro de arranque de Linux. Echa a perder todo el espíritu de los prefijos de los noventa.LinuxLinux,
/boot/cmdline.txt . .
cmdline.txt dwc_otg.lpm_enable=0 console=tty3 root=PARTUUID=f2d3cb4f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait loglevel=3 consoleblank=0 plymouth.enable=0 quiet vt.global_cursor_default=0 plymouth.enable=0 plymouth.ignore-serial-consoles splash
, , , .
motd.
nano /etc/motd
.
sudo nano /etc/systemd/system/autologin@.service
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
ExecStart=-/sbin/agetty --skip-login --noclear --noissue --login-options "-f pi" %I $TERM
.
, — splashscreen. , . \\192.168.x.xxx\splashscreens, Retropie ->
SPLASH SCREEN ->
Append Splashscreen to list .
, , .
Retropie runcommand, . .
, ,
.
¿Qué más se puede hacer?
Puedes mejorar sin cesar. Te daré un par de enlaces que puedes hacer. Escribe más cosas interesantes que puedas agregar. Gracias por su atencion
El lo vale.