/ vg

Citra

Tras probar de primera mano la experiencia de jugar en una 3DS y por ello sufrir una epifania de lo que es verdaderamente importante en esta vida… jugar maravillas tecno-informaticas hechas por una compañia que respeta, conoce a su audiencia y le vende lo que pide, no pude mas que despreciar todo lo que desvia al hombre del buen camino (trabajo duro, lazos familiares, pareja o estudio) e iniciar la busqueda de una forma justicialista para llevar hasta el hogar de la gente pobre y sin recursos tan grata experiencia, no solo ya por adquirir una porcion de necesaria cultura general, tambien para llenar de felicidad y alegria las grices vidas de los agotados obreros

Entre sus caracteristicas la consola Nintendo 3DS (New 3DS XL en su ultima iteracion) cuenta con wifi, nfs, sensor de movimiento, un led indicador (RGB), ranura de almacenamiento para targetas SD, dos camaras en la parte posterior para hacer fotografias estereo, una camara en la parte delantera y microfono

Posee un par de pantallas. La superior (mas apaisada) suele mostrar el videojuego con un magnifico bien logrado efecto 3D (esta caracteristica es opccional y regulable por el usuario). Por su parte la pantalla inferior se utiliza para desplegar mapas, inventarios y en general opciones del juego. La caracteristica principal de esta segunda pantalla es ser tactil

Como mandos (tradicionales) tiene del lado derecho una cruceta junto a un joystick y del izquierdo botones Select, Start, A, B, Y, X y un joystick adicional llamado C-Stick. En la parte posterior botones L, R, ZL y ZR.

Dichas peculiaridades parecen dificiles de llevar con comodidad a una computadora de proposito general. Mas la comunidad entusiasta y siempre generosa de gameeeeeeers y programadores pone a nuestra disposicion un software de emulacion con nombre clave Citra. (Debajo su logo)

Dicho software es GPL v2, multiplataforma y se encuentra tanto para plataformas windows, mac y GNU

Si bien es cierto que caracteristicas como el efecto 3D, la resolucion/configuracion de camaras, el led RGB, la conexion con los servicios de nintendo e internet, o el sensor de movimiento son caracteristicas problematicas de emular, algunas tienen sus apaños chapuceros mas o menos salvables/comodos deacuerdo al uso que el videojuego haga de ellas. Bien podria terminar en cuelgue o chasheo y/o no pasasar de ser una asumible incomodidad

En cuanto a la disponivilidad de este software en las amadas distros cuando el paquete no se encuentra en los repositorios (como en el caso de debian) nos ofrecen un paquete “universal” flatpack… el problema? ademas de instalar un daemon (flatpack) que este corriendo en nuestro sistema chupando ciclos de procesador, ya de primeras nos hace descargar como dependencia ~550MB del entorno KDE + “otras cosas” + citra. Esto no solo es cuestionable por el tamaño que ocupara en el sistema un “simple” emulador, tambien por el sobre costo de utilizar un contenedor con sus propias dependencias ajenas al sistema y agregar PATHs de ejecucion adicionales

Ante esta dudosa opccion lo mas razonable y recomendable (ya sea solo por el rendimiento) es recurrir a una milenaria practica en todos los sistemas libres conocidos: ver si se puede compilar desde el codigo fuente

(nota: recomiendo no aplicar mientras se lee, primero ver las “alternativas” y luego aplicar a discrecion)

Compilar en Debian 10 (Buster)

(La siguiente informacion fue extraida de la wiki de citra)

Primero obtener las librerias de compilacion necesarias

apt install libsdl2-dev qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev libfdk-aac-dev build-essential clang libc++-dev cmake

mientras el sistema instala las dependencias, debemos (de preferencia) como usuario no administrador clonar el codigo fuente (~115MB)

git clone --recursive https://github.com/citra-emu/citra

Una vez cumplidos ambos requerimentos pasamos a la compilacion

# Ingresamos al codigo fuente
cd citra

# Un paso conocido cuando se compila con cmake
mkdir build && cd build

# En la wiki se ofrecen varios modos de configurar la compilacion
# modo Lo-Ultimo             # "cmake .."
# modo Release (optimizado)  # "cmake .. -DCMAKE_BUILD_TYPE=Release"
# y con opciones o no de simbolos de debugueo (lento)
#                            # "cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo"
#
#
# La opcion elegida para esta compilacion es la optimizada (Release)
# sin simbolos de debugueo y con el decodificador HLE AAC activado
# no se si esto sea mejor... pero parese mas molon!
#
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_FFMPEG=ON

# LA COMPILACION
make

Tras una (muuu lenta) compilacion exitosa, podemos ejecutar el emulador sin necesidad de instalarlo

# recomendablemente no lo hagais
# seguir leyendo y aplicar configuraciones previas
cd bin
./citra alguna-rom.3ds

… … … pero … … … esta manera espartana no nos informa cual es la disposicion del teclado para el juego (ademas de que con puro teclado dificil a de ser jugar), tampoco nos brinda opcion de utilizar un mando ni ofrece otras varias configuraciones basicas. Por ello veamos que binarios (y sus tamaños) quedaron tras compilar (recordar estamos en citra/build/bin)

> du -h *
17M	citra
19M	citra-qt
17M	citra-room
18M	tests

si intentamos lanzar sin una rom, nos regresa un bonico mensaje y la ejecusion finaliza

> ./citra
[   0.008365] Frontend <Critical> citra/citra.cpp:main:317: Failed to load ROM: No ROM specified

asi que… intentemos con

> ./citra-qt

hala, esto ya tiene cuadros de dialogo y menues!

Hasta aqui se da por satisfactoria la compilacion. Podemos ir a citra/build/bin cada vez que necesitemos jugar, o, dejarnos de historias e instalar

# como administrador y desde-algun-lugar/citra/build
make install

ROMS ???

se pueden adquirir de distintas maneras. Desde citra recomiendan hacer una “copia de seguridad” … s-e-g-u-r-o … utilizando la opcion de busqueda en qBittorrent aparece una particularmente correcta con el poco descriptivo titulo:

Collection of 250 decrypted 3DS ROMs for Citra Emulator

magnet:?xt=urn:btih:3c1d52279c6dcab8b61aa58b6c2574a0be2933e0&dn=Collection%20of%20250%20decrypted%203DS%20ROMs%20for%20Citra%20Emulator&tr=udp%3a%2f%2fopen.demonii.com%3a1337&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80&tr=udp%3a%2f%2ftracker.coppersurfer.tk%3a6969&tr=udp%3a%2f%2ftracker.leechers-paradise.org%3a6969&tr=udp%3a%2f%2fexodus.desync.com%3a6969

Creo que tiene lo mas destacado. Con esa cantidad y calidad de juegos se tiene suficiente para unos cuantos añøs. Copiar y pegar

Importante aun dentro de este torrente dedicado, aclarar que no todos los titulos incluidos son compatibles con citra (en segun que vercion o en ninguna en general):

Por ejemplo, Donkey Kong Country Returns 3D definitivamente no arranca. Luigi’s Mansion: Dark Moon va tan lento y mal que dificilmente se llegara a algun nivel del juego. Smash Bros y Resident Evil Revelations tiene ralentizaciones infumables. Castlevania: Lorfs of Shadow - Mirror of Fate esta señålado como con mala compativilidad

Otros titulos marcados como No Tested posiblemente se ejecuten (o no se ejecuten o crasheeeen) como Professor Layton and the Miracle Mask marcado tal que asi, pero que corre y con soltura, pero que esta en english.

Un ejemplo mas seria The Legend of Zelda A Link Between Worlds marcado con compatibilidad mala y aun asi en la compilacion, prueba y habiendo terminado el juego calificaria como (de compativilidad) “Casi Perfecta”

Ante la duda, ser necios e intentar por vuestra cuenta. Algunos titulos provados a titulo personal y que corren perfecto o son confortablemente jugables y ademas estan en español o no importa el idioma

Configs

Hemos visto que el binario “bueno” es citra-qt. Instalado en el sistema citra-qt sera el que aparecera de serie!

siguiendo la indicacion, damos double-clip para agregar nuestra lista de juegasos nintenderos

Antes de entregarnos al vicio un par de configuraciones previas. Abrimos la ventana de configuracion desde el menu Emulation > Configure

Ya en la ventana de configuracion, ponemos el tema Dark

General > UI > Theme: Dark

(No se por que no se muestra la opcion de interfaz en Spanish, pero no importa)

System > System > User name: mi-nick
System > System > Language: Spanish
System > System > Play Coins: 300

importatisimo poner Spanish en Language. Sin ello los juegos aparecen en english

los Play Coins parecen ser monedas que da el 3DS por caminar y hacer “cosas”. Aparentemente trecientos es el valor maximo. En el zelda BW son utiles para comprar consejos, en Animal Crossing: New Leaf permiten comprar galletas de la fortuna

System > Camera > Camera Image Source: Still Image (Image)

Es buena cosa aplicar esta configuracion en la camara si se da el caso que el juego/cosa requiera una imagen, (en teoria) podriamos pasar una imagen desde el sistema

y… lo mas importante la configuracion del teclado…

pero si en verdad quereis jugar con dignidad, conseguir un puñetero mando!

yo utilizo el logitech f710 el cual no ha requerido ninguna configuracion para que funcionara en ninguna distro. Se conecta y funciona. El mando tiene un interructor D/X

importante ponerlo en D… por que? el mando en la parte superior tiene los botones LB y RB que son propiamente botones, tambien incluye los “botones” LT y RT que son fisicamente “ejes”. Haciendo unas pruebas cuando el interruptor esta en X, estos ejes tienen valores iniciales de -32767 y conforme se precionan ascienden hasta 32767 (16 bits). Poco mas que decir que el 3DS en sus botones posteriores solo tiene botones y no ejes.

Con el interruptor en D LT y RT se comportaran como “botones”, mientras que en posicion X como “ejes”

siguiendo la distribucion del propio 3DS y la del mando (cruceta, dos joystics, select, start, a, b, x, y, l, lt, r, lt) y jugando al Zelda BW, el Mario Kart 7, New Super Mario Bros 2, Pokemon X y Animal Crossing New Leaf, parece que esta es la distribucion logica y apropiada (Interruptor en D)

importante citra crashea si durante la ejecucion se alterna el interruptor entre Dy X. Parece que esto es causado a que el sistema mapea el control de formas distintas segun la posicion de este interruptor, no solo para los ejes, tambien para los botones. Tenerlo en cuenta, que no tiene por que ser precisamente un problema, segun que juego podriamos añadir distintos perfiles de control

una particularidad realmente apreciable del mando es que tiene un botoncito llamado mode la cual permite intercambiar la “entrada” del joystick izquierdo con la cruceta y viceversa, esto sin necesidad de alterar la configuracion de teclas del propio emulador/lo-que-sea. En verdad util es para escenarios que requieren precision (como en las masmorras del Zelda)

Para terminar con las configuraciones otras dos cosas importantes mas

Primero, ya que un (giroscopio/) sensor de movimiento no es nada habitual en el computo personal pero para algunos juegos es necesario al menos transmitir informacion de inclinacion derecha-izquierda, dentro del perfil de control viene una curiosa casilla Motion/Touch

Clicando en ella no encotraremos muchas opciones

en esencia basta para informarnos que en la “pantalla tactil” (donde habitual mente se transmite “el tactil” con el raton precionando el boton izquierdo) si precionamos el boton derecho, se transmitira informacion del sensor de movimiento

En Yoshi’s New Island, apenas en el segundo nivel es critico hacer uso del boton derecho…

Para terminar, en System > Controls > Hotkeys podemos modificar algunos atajos de teclado del emulador a teclas mas convenientes como a las teclas de funcion (F1, F2, F3, …)

Ahora si al vicio! … o no … requerimos de un mii (un avatar) que si bien no todos los juegos exigen, pudiera ser necesario para completar la experiencia

los buenasos de nintendo ponen una herramienta web para crearnos un mii

mas en este caso y como citra (creo) no tiene la cualidad de conectarse a la cuenta nintendera… (obvio… ???)

no sirve de mucho…

Si habeis caido aqui luego de pasar por el cancer de internet (los niños rata de youtube que llaman “enlace” a los puñeteros acortadores por webs cuestionables), estos son los pasos y enlaces de internete que han servido

(UNO) Conseguir Mii Maker (app)

(DOS) recomendablemente colocar Mii Maker en la misma carpeta que el resto de roms. Dice una leyenda que arrastrar y soltar este binario en la interfaz de citra-qt tambien funciona, pero no es algo que me alla atravido a comprovar

Aun no lo ejecuteis u optendrais un error

(TRES) Parece que hay fuentes/dependencias/ficheros-raros/cosas que vienen en el 3DS para que Mii Maker corra apropiadamente. En youtube hay un video que comparte (toda) su carpeta de configuracion y “datos” de citra. Nos aconseja mezclar sus carpeta con la nuestra echando mano del navegador de ficheros

primero mezclar (aplicar esta opccion a todos los archivos y carpetas)

luego omitir el reemplazo (aplicar esta opccion a todos los archivos y carpetas)

En GNU la carpeta con “los datos” de citra se encuentra en ~/.local/share/citra-emu/ estas son las carpetas que contiene

> ls ~/.local/share/citra-emu/
cheats
config
log
nand
sdmc
sysdata

p-e-r-o… la carpeta del youtuber trae varios .bin, .tar que me ponen nervioso. Aqui esta directamente sin trucos ni acortadores la carpeta aquella.

Por parte de este que escribe, fui copiando y probando carpetas al azar con el unico proposito de que funcionase Mii Maker. Por aca el resultado. Si decidis usar este

(investigando mas profundamente la wiki de citra parece avalar que solo es necesaria la carpeta nand/00000000000000000000000000000000)

cd tmp
wget https://nasciiboy.land/data/citra/min-dot-citra.zip
unzip min-dot-citra.zip
mkdir -p ~/.local/share/citra-emu/nand
mv min-dot-citra/nand/00000000000000000000000000000000 ~/.local/share/citra-emu/nand/

vuala!!!

parece ser que el editor del 3DS es mas “redondo” que el web (que gana un poco mas de precision). El resultado en mii maker fue este

y… por fin ahora si al vicio

….

Por defecto el juego se presenta de esta manera

i-endo a View > Screen Layout contamos con diversas distribuciones de visualizacion

Segun el juego, numero de monitores y gustos podemos ajustar a nuestra conveniencia. Me guastaria que puedesen desacoplarse “las pantallas” en dos ventanas aunque esta opccion no esta disponible. Con un par de monitores y ajustando a mano se puede simular el efecto.

Para esto utilizo la distribucion de pantalla “lado a lado”

Por ejemplo, si hago una captura (gnomera) de citra, la imagen se presenta asi

(en el “mundo real”) en modo de pantalla completa veria

pero ajustando la pantalla “manualmente” lo prefiero asi

Con el zelda

para verse

Algunos atajos

….

….

PATH’s

Conclucion

nah, todo bien…

Contando con un humilde procesador AMD A6-9500 (64 bits, 2 nucleos, 2 hilos, 2GHz) que es de lo mas bajo de lo mas bajo (tirando a celeron) y sin grafica dedicada, el Zelda va (casi, casi) siempre perfecto y estable a 60 FPS y el Mario Kart 7 (que ha de ser de lo mas exigente del 3DS) aunque con ralentizaciones apreciables, no llega a ser molesto o injugable… suele tirar a un 100% de la velocidad con ralentizaciones del 80/85/90%.

Otra historia seran los exclusivos del New 3DS… pero su momento aun no ha llegado

Como recomendacion final, por ningun motivo en Zelda Between Worlds en el pueblo hablen con el viejo del street pass, hablar con el te regala un arbol de manzanas junto a tu casa… a un precio muy caro, me jodio dos partidas antes de evitarlo como a la peste

/ vg