T3Boy: Haciendo la Emulación Precisa de Game Boy Accesible con Next.js y WASM

This ad is not shown to multipass and full ticket holders
React Advanced
React Advanced 2025
November 27 - 1, 2025
London, UK & Online
We will be diving deep
Learn More
In partnership with Focus Reactive
Upcoming event
React Advanced 2025
React Advanced 2025
November 27 - 1, 2025. London, UK & Online
Learn more
Bookmark
Rate this content

TiKevin83 detalla cómo utilizó Next.js y WebAssembly (WASM) para portar un emulador de Game Boy preciso para speedrun a la web. Los temas incluyen el uso de Emscripten para compilar una biblioteca C en un módulo WASM, la interfaz con un módulo WASM desde un sitio de Next.js, la reproducción de video y audio en el canvas y las APIs de audio desde un módulo WASM, y las sutilezas de los esquemas de control web, especialmente en la implementación de entrada multitáctil.

This talk has been presented at React Summit 2025, check out the latest edition of this React Conference.

Travis McGeehan
Travis McGeehan
21 min
17 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Travis TI Kevin83 McGeehan, ingeniero de software senior, embajador de Task Videos, especialista en React Native, titular del récord de tareas en Pokemon Yellow Glitchless, proceso de verificación TAS para la validación de entrada de consola. Mickey Mouse $61 mil millones en ventas de mercancías, RPGs de Pokemon, concepto de speedrunning, diferentes categorías, TASing en emuladores, registros TAS en TASvideos.org, mascota TASbot. Verificación TAS, interfaces de controladores, mascota TASbot, desafíos de accesibilidad de T3 Boy, preservación de videos TAS, complejidad de Kolmogorov en la precisión de emulación. Qt para interfaces frontales de emuladores, beneficios de WebAssembly, integración del sitio web de T3 Boy con núcleos de emulación, integración de T3 stack para guardados de juegos, API de eventos de puntero personalizados, visión general de la interfaz de T3 Boy. Integración del módulo WASM en la plantilla de Next.js, declaración de función global en TypeScript, funciones importantes como cwrap para la interacción con WebAssembly. Función cwrap para la interacción con módulos de JavaScript, concepto de puntero en lenguajes de bajo nivel, gestión de memoria con malloc, heapuate y free. Carga de BIOS y gestión de memoria, manejo de valores individuales, uso de la función Add para callbacks, peculiaridades con la API de Web Audio y limitaciones de re-muestreo. Utilizando la API de Eventos de Puntero, función de guardado en la nube con autenticación de Discord, emulador T3Boy e integración de WebAssembly en React.

1. Explorando TypeScript y Speed Running

Short description:

Travis TI Kevin83 McGeehan, ingeniero de software senior, embajador de Task Videos, especialista en React Native, poseedor del récord de tareas en Pokemon Yellow Glitchless, proceso de verificación TAS para la validación de entrada de consola.

Hola, soy Travis TI Kevin83 McGeehan. Soy ingeniero de software senior en Gordon Food Service, y soy embajador de Task Videos y administrador en Taskbot. Explicaré un poco sobre lo que son en un segundo, pero esta es una charla sobre TypeScript en speed running y el front end de emulación T3 boy. Así que voy a repasar quién soy, qué es Pokemon, por si acaso nadie sabe aún qué es speed running, y luego hablaremos sobre T3 boy, el nuevo emulador front end que construí en la pila de React y Next.js con WebAssembly.

Entonces, ¿quién soy? Soy especialista en React Native y GitLab CI CD en Gordon Food Service, mostrando patrones de React en JS World y React Summit. Soy poseedor del récord de tareas en Pokemon Yellow Glitchless y No Save Corruption categorías, que son solo algunas categorías diferentes para carreras más largas o más cortas con diferentes glitches. Y también fui poseedor del récord en las tareas de Red Blue Glitchless. Otros tienen récords en la categoría de Save Corruption también, donde puedes ganar en solo un minuto apagando la consola en medio de un guardado. Soy un embajador oficial de Task Videos donde alojamos los récords y archivamos videos de esos récords para diferentes juegos.

Y he realizado estas presentaciones en GDQ, TwitchCon, MagFest, Long Island Retro, Midwest Gaming Classic y el Linus Tech Tips Expo. También soy administrador del equipo de Taskbot, y volveremos a lo que son Task Videos y Taskbot en un segundo. Pero también, por si acaso alguien no lo sabe aún, Pokemon es la franquicia de medios más rentable en la historia, habiendo totalizado $99 mil millones en ventas de mercancías.

2. Explorando la Franquicia de Pokemon y la Verificación TAS

Short description:

Mickey Mouse $61 mil millones en ventas de mercancías, RPGs de Pokemon, concepto de speedrunning, diferentes categorías, TASing en emuladores, registros TAS en TASvideos.org, mascota TASbot.

Y para comparar, Mickey Mouse solo ha totalizado $61 mil millones en ventas de mercancías , así que realmente es una franquicia masiva. Y los juegos de Pokemon son RPGs que implican capturar, entrenar y duelar en un universo ficticio de animales salvajes conocidos como Pokemon. Hay un popular programa de televisión de anime de Pokemon que lleva mucho tiempo al aire con algunas películas derivadas, y Pokemon Yellow, el juego en el que me especializo y que me interesó en este concepto de TAS, es parte de la primera generación de juegos RPG de Pokemon que fueron lanzados en el Game Boy en 1996 en Japón y 1998 en los EE. UU. La primera generación tenía más errores y estaba menos conectada al resto del universo general del anime de lo que eventualmente cambiaron para Yellow.

Y ahora hay nueve generaciones basadas en diferentes regiones de Japón, y recientemente también en algunos países diferentes. Así que he hablado mucho sobre speedrunning. ¿Qué es speedrunning? Speedrunning es la idea de jugar un videojuego a menudo, pero no necesariamente un videojuego retro, con un temporizador en marcha para rastrear el tiempo de finalización. Los speedrunners añaden objetivos de finalización arbitrarios a los juegos para habilitar el tiempo, creando una variedad de categorías potenciales de diferentes longitudes, es decir, terminar un juego con o sin glitches, o si quieres terminar en Pokemon, por ejemplo, si quieres vencer a los Elite Four, o capturar todos los Pokemon. Así que tienes todas estas diferentes categorías con diferentes tiempos. Y a veces estas carreras requieren herramientas externas que podemos escribir en algo como TypeScript, y esas ayudan a evaluar la calidad de la carrera, verificando cosas como la calidad de tus Pokemon, sus estadísticas, o ayudando con diferentes categorías como rastrear cuántos Pokemon has capturado. Así que eso es speedrunning, pero entonces, ¿qué es TASing y los videos TAS? Las speedruns asistidas por herramientas es la idea de jugar a través de juegos, no a mano, sino cuadro por cuadro en un emulador donde podemos pausar y evaluar la toma de decisiones perfecta, asegurando un movimiento y ejecución perfectos de estrategias, y rebobinando y regrabando estas entradas para corregir errores.

Esto actúa efectivamente como un piano de jugador lo hace para la música de piano, pero para un videojuego, y estos registros TAS se rastrean por separado en TASvideos.org en lugar de speedrun.com para mantener las carreras humanas y TAS independientes y justas. Así que esto es solo una visualización a la izquierda de cómo se ve un piano de jugador, y luego a la derecha, cómo se ve la grabación TAS. La misma idea fluyendo a través, pero en lugar de las teclas del piano, son las pulsaciones de botones de un videojuego. Ahora hablamos sobre speedrunning y TASing, pero luego hay otra capa que se adentra en lo que hago en estas masterclasses llamadas verificación TAS.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced 2023React Advanced 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
El Nuevo Router de Aplicaciones Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Router de Aplicaciones Next.js
Top Content
Today's Talk is about the Next.js App Router, which has evolved over the years and is now a core feature of Next.js. The Talk covers topics such as adding components, fetching remote data, and exploring layouts. It also discusses submitting form data, simplifying code, and reusing components. The App Router allows for coexistence with the existing pages router and enables data fetching at the layout level using React Server Components.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
The Talk covers the speaker's personal journey into server-side rendering (SSR) and the evolution of web development frameworks. It explores the use of jQuery for animations in SSR, the challenges faced in integrating React with Umbraco, and the creation of a custom SSR framework. The Talk also discusses the benefits of Next.js and the use of serverless artifacts for deployment. Finally, it highlights the features of Astro, including its function per route capability.
Cómo manejar correctamente los cambios de URL slug en Next.js
TypeScript Congress 2022TypeScript Congress 2022
10 min
Cómo manejar correctamente los cambios de URL slug en Next.js
Top Content
This Talk explains how to handle URL slug changes in Next.js by using the getStaticPaths and getStaticProps methods. It covers implementing redirects and provides a solution to eliminate the need for editors to perform additional steps. The approach involves tracking URL slug changes and issuing proper redirects. The speaker encourages the audience to reach out with any questions or experiences with handling URL slugs.
Eliminando BFFs con GraphQL y Next.js
React Advanced 2021React Advanced 2021
21 min
Eliminando BFFs con GraphQL y Next.js
Top Content
This talk discusses the challenges and benefits of using Backend for Frontends (BFFs) and microservices in software development. It highlights how Next.js can simplify the creation of BFFs and unify the gateway for microservices. The talk also emphasizes the advantages of Next.js API routes in simplifying the development, deployment, and maintenance of APIs. It showcases the implementation of a BFF using Next.js and API routes, and the extension of API routes in an executable way. The speaker also mentions launching a course on using Next.js API routes for building a serverless GraphQL API.

Workshops on related topic

AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Top Content
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Top Content
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
React Summit 2025React Summit 2025
91 min
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
Featured Workshop
Eric Burel
Eric Burel
Únete a nosotros en el viaje desde el desarrollo frontend con React hasta el desarrollo fullstack con Next.js. Durante esta masterclass, seguiremos el tutorial oficial de Next.js Learn con Eric Burel, entrenador profesional y autor de NextPatterns.dev. Juntos, configuraremos un sitio web con Next.js y exploraremos sus características del lado del servidor para construir aplicaciones de alto rendimiento.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
Workshop
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
Top Content
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.