Trabajo en curso (WIP). Este proyecto está en desarrollo activo: los cores se publican al completar el estándar de calidad, pero el ecosistema completo sigue creciendo y cambiando.
Pueden existir fallos no documentados. El apartado "Estado honesto" de cada README enumera los límites CONOCIDOS de ese core — puede haber errores fuera de esa lista. Se agradece reportarlos.
Work in progress (WIP). This project is under active development: cores are published as they complete the quality standard, but the overall ecosystem keeps growing and changing.
There may be undocumented bugs. Each README's "Honest status" section lists that core's KNOWN limits — there may be errors outside that list. Reports are welcome.
VC·Anvil (Vibe Coded + Anvil) es un ecosistema de emuladores multi-sistema escritos desde cero. Este es el repositorio raíz: aquí se publican los cores terminados, uno por carpeta, a medida que completan un estándar de calidad exigente — menú in-game completo con tres estilos visuales, idiomas ES/EN, save-states con galería, rebobinado, avance rápido, remapeo de controles con combos, ecualizador de 5 bandas, más de 40 shaders CRT/RF/VHS embebidos, portabilidad Windows / Linux / macOS con emulación bit-determinista verificada entre los tres sistemas operativos en integración continua, y un paquete limpio con README exhaustivo por core.
VC·Anvil (Vibe Coded + Anvil) is an ecosystem of multi-system emulators written from scratch. This is the root repository: the finished cores are published here, one folder each, as they complete a demanding quality standard — full in-game menu with three visual styles, ES/EN languages, save-states with a gallery, rewind, fast-forward, control remapping with combos, a 5-band equalizer, 40+ embedded CRT/RF/VHS shaders, Windows / Linux / macOS portability with bit-deterministic emulation verified across all three operating systems in CI, and a clean package with an exhaustive per-core README.
El plan: los cores formarán parte de un ecosistema gobernado por un Front End unificado (biblioteca, lanzador y configuración central). Hasta que el Front End llegue, cada emulador es 100% autónomo y usable por separado — cada binario lleva TODO dentro; no hay archivos de shader ni front-ends que instalar.
The plan: the cores will become part of an ecosystem governed by a unified Front End (library, launcher, central configuration). Until the Front End arrives, every emulator is 100% self-contained and usable on its own — each binary carries EVERYTHING inside; there are no shader files or front-ends to install.
Los tres cores publicados están en v1.0 (2026-07-27), construidos del mismo árbol de fuentes y verificados en los tres sistemas operativos. El Virtual Boy va por la v1.0.1: un re-empaquetado del mismo día con dos correcciones de emulación en coma flotante —la física de la bola de Galactic Pinball y el congelón de Vertical Force— y el menú común. / The three published cores are at v1.0 (2026-07-27), built from the same source tree and verified on all three operating systems. The Virtual Boy is at v1.0.1: a same-day re-package with two floating-point emulation fixes —the ball physics in Galactic Pinball and the Vertical Force freeze— and the common menu.
| Sistema / System | Versión / Version | Terminado / Finished | win | linux | macos | BIOS |
|---|---|---|---|---|---|---|
| Atari Lynx | v1.0 | ✅ 2026-07-22 | x64 | x64 | arm64 | Opcional / Optional (lynxboot.img; sin ella, arranque HLE / HLE boot without it) |
| Virtual Boy | v1.0.1 (2026-07-28) | ✅ 2026-07-24 | x64 | x64 | arm64 | No necesita / Not needed |
| Sharp X68000 | v1.0 | ✅ 2026-07-26 | x64 | x64 | arm64 | Obligatoria / Required (IPLROM.DAT + CGROM.DAT; SCSIINROM.DAT opcional / optional) |
-
Atari Lynx — la portátil de Atari (1989, 65SC02 + Mikey/Suzy). Incluye rotación por juego, EEPROM de cartucho y juego en red ComLynx por LAN (2 jugadores, lockstep determinista con emparejamiento por código de sala). La partida por internet está implementada pero sin validar entre dos máquinas reales: queda para una 1.x. / Atari's handheld (1989, 65SC02 + Mikey/Suzy). Includes per-game rotation, cartridge EEPROM and ComLynx netplay over LAN (2 players, deterministic lockstep with room-code pairing). Play over the internet is implemented but not validated between two real machines: it is left for a 1.x.
-
Virtual Boy — la consola 3D de Nintendo (1995, V810). Cinco modos de visualización 3D (anaglifo con cuatro esquemas de color y perillas de ganancia/IPD/anti-ghosting, lado a lado, ojo único…), asistente de calibración 3D y partidas guardadas en
.savcompatible. La salida a visor VR (SBS/Quest 3) queda para una 1.x. / Nintendo's 3D console (1995, V810). Five 3D display modes (anaglyph with four colour schemes and gain/IPD/anti-ghosting knobs, side-by-side, single-eye…), a guided 3D calibration assistant and battery saves in a compatible.sav. VR-headset output (SBS/Quest 3) is left for a 1.x. v1.0.1: la coma flotante del V810 comparaba mal (CMPF.Sdecía "igual" donde era "menor"), lo que desviaba la física de la bola de Galactic Pinball y congelaba Vertical Force; corregido y verificado contra el emulador de referencia y a mano. Adopta además el menú común (fila de Opacidad,Tabcierra, inglés real en el asistente de calibración) y las capturas de pantalla dejan de pisarse entre sí. / v1.0.1: the V810's floating point compared wrongly (CMPF.Sreported "equal" where it was "less than"), which threw off the ball physics in Galactic Pinball and froze Vertical Force; fixed and verified against the reference emulator and by hand. It also adopts the common menu (an Opacity row,Tabcloses, real English in the calibration assistant), and screenshots no longer overwrite each other. -
Sharp X68000 — el ordenador japonés de 16 bits (68000 + CRTC/Cynthia
- OPM + ADPCM). Disquetes (.hdm/.xdf/.dim/.2hd/…), varios discos duros SASI/SCSI a la vez (.hds/.hdf), ratón, MIDI (dispositivo del sistema en las tres plataformas, o SoundFont), y el sonido mecánico real de la disquetera (TEAC FD-55GFR, CC BY 4.0). Menú translúcido sobre la partida, ecualizador de 5 bandas + VU + analizador de espectro, grabación WAV/S98/MIDI por fuente, y el shader CZ-6xx calibrado sobre el monitor que Sharp vendía con la máquina. / The Japanese 16-bit computer (68000 + CRTC/Cynthia + OPM + ADPCM). Floppies (.hdm/.xdf/.dim/.2hd/…), several SASI/SCSI hard disks at once (.hds/.hdf), mouse, MIDI (system device on all three platforms, or SoundFont), and the real mechanical floppy-drive sound (TEAC FD-55GFR, CC BY 4.0). A translucent in-game menu over the running game, a 5-band equalizer + VU + spectrum analyser, per-source WAV/S98/MIDI recording, and the CZ-6xx shader calibrated against the monitor Sharp shipped with the machine.
Previsto para 1.x (no está en esta v1.0): ComLynx por internet probado entre dos máquinas reales (Lynx) y salida a visor VR en lado-a-lado (Virtual Boy). Ninguna de las dos bloquea el uso de la v1.0. / Planned for 1.x (not in this v1.0): ComLynx over the internet tested between two real machines (Lynx) and VR-headset output in side-by-side (Virtual Boy). Neither blocks using v1.0.
Los siguientes cores se añadirán aquí según vayan terminándose; este README se actualiza con cada publicación. / More cores will land here as they are finished; this README is updated with every release.
Windows: el .exe de <core>/win/ + la SDL2.dll incluida en la
misma carpeta. Nada más — doble clic y arranca (logo + menú). /
The .exe in <core>/win/ + the bundled SDL2.dll in the same folder.
Nothing else — double-click and it opens (logo + menu).
Linux: el binario de <core>/linux/ + runtime SDL2 del sistema
(sudo apt install libsdl2-2.0-0 o equivalente). / The binary in
<core>/linux/ + your distro's SDL2 runtime.
macOS (Apple Silicon): el binario de <core>/macos/ + SDL2
(brew install sdl2). Binarios sin firmar: quita la cuarentena con
xattr -dr com.apple.quarantine <binario>. / The binary in
<core>/macos/ + SDL2 (brew install sdl2). Unsigned binaries: clear the
quarantine attribute.
- ROMs / imágenes: carpeta
roms/<sistema>/junto al ejecutable (el navegador del menú la lee), por línea de comandos, o desde el menú. No se incluye ninguna. /roms/<system>/folder next to the executable (the menu browser reads it), via command line, or from the menu. None are included. - BIOS: ver la columna de la tabla. Las BIOS tienen copyright y no se
redistribuyen; se buscan en
bios/<sistema>/o donde apuntes desde el menú. / See the table column. BIOS files are copyrighted and never redistributed; they are looked up inbios/<system>/or wherever you point the menu at. - Tu configuración (idioma, controles, shader, sliders, rutas…) se
guarda sola junto al ejecutable (
vcanvil_<sistema>.cfg) y se restaura en cada arranque. Si tienes unrecore_<sistema>.cfgde una versión anterior, se lee una vez y se re-guarda con el nombre nuevo — no pierdes nada. / Your configuration (language, controls, shader, sliders, paths…) is saved automatically next to the executable (vcanvil_<system>.cfg) and restored on every start. Arecore_<system>.cfgfrom an older version is read once and re-saved under the new name — nothing is lost.
Detalles completos por sistema en el README de cada carpeta (ES y EN). / Full per-system details in each folder's README (ES and EN).
Desde el menú in-game: Esc → RUTAS / PATHS. Elige la carpeta de tus
juegos y (donde aplique) tu archivo de BIOS; ambas elecciones se recuerdan
entre sesiones. Selectores nativos en Windows y zenity/kdialog en Linux;
también puedes usar las variables de entorno o editar el .cfg junto al
ejecutable (los nombres exactos, en el README de cada core).
From the in-game menu: Esc → PATHS. Pick your games folder and (where
applicable) your BIOS file; both choices are remembered across sessions.
Native pickers on Windows, zenity/kdialog on Linux; environment variables
or editing the .cfg next to the executable also work (exact names in
each core's README).
Un core solo llega a este repositorio cuando completa TODAS las fases del estándar interno: menú común consolidado + opciones específicas del sistema, i18n ES/EN con selector persistido, refactor con comentarios en inglés, scrub de marca y privacidad con gate mecánico (0 hallazgos), arranque sin ROM (logo oficial), CI en 3 sistemas operativos con CRC de framebuffer idéntico en gcc/clang/MSVC, paquete limpio con licencias, y README exhaustivo. No es marketing: cada afirmación tiene un test o un gate que la respalda, y los límites conocidos se declaran en el "Estado honesto" de cada README.
A core only lands in this repository once it completes EVERY phase of the internal standard: consolidated common menu + system-specific options, ES/EN i18n with a persisted selector, refactor with English comments, brand & privacy scrub with a mechanical gate (0 findings), no-ROM boot (official logo), 3-OS CI with an identical framebuffer CRC across gcc/clang/MSVC, a clean package with licenses, and an exhaustive README. This is not marketing: every claim is backed by a test or a gate, and known limits are declared in each README's "Honest status" section.
GPLv3 + Commons Clause — uso libre NO comercial; los derivados deben
mantener esta licencia y acreditar a GS-RUN; prohibida la venta. Ver
LICENSE. Los componentes de terceros conservan sus licencias
(carpeta LICENSES/ de cada core). Sin BIOS ni ROMs.
GPLv3 + Commons Clause — free for NON-COMMERCIAL use; derivatives
must keep this license and credit GS-RUN; selling is not permitted.
See LICENSE. Third-party components keep their own licenses
(each core's LICENSES/ folder). No BIOS or ROMs included.
VC·Anvil es código propio. Cada core se escribe desde cero. Los emuladores de referencia (Mednafen, px68k, XM6, MAME…) se consultan solo como oráculo de comportamiento — para entender el hardware y validar bit a bit contra ellos — nunca se copia su código. Las fuentes lo marcan explícitamente ("used as a SEMANTIC oracle only — not cloned").
VC·Anvil is own code. Every core is written from scratch. Reference emulators (Mednafen, px68k, XM6, MAME…) are consulted as behavioural oracles only — to understand the hardware and validate bit-by-bit against them — their code is never copied. The sources mark this explicitly ("used as a SEMANTIC oracle only — not cloned").
- Única excepción, sancionada y documentada / Single sanctioned, documented exception: las tablas de descifrado de los cartuchos protegidos de Neo Geo (un core aún NO publicado aquí) son un port a C del código de MAME (BSD-3-Clause, atribución retenida). Son dato irreducible del silicio, sin vía clean-room. No afecta a ningún core de este repositorio. / the decryption tables of protected Neo Geo carts (a core NOT yet published here) are a C port of MAME code (BSD-3-Clause, attribution retained). They are irreducible silicon data with no clean-room path. No core in this repository is affected.
- Librerías de terceros / Third-party libraries (no son código de
emulación / not emulation code): SDL2 (zlib), Dear ImGui (MIT), miniz
(MIT), stb_image (dominio público/MIT), TinySoundFont (MIT, X68000),
sonidos FDD TEAC (CC BY 4.0, X68000) — cada una con su licencia en
LICENSES/.
No pretende hacer lo imposible que otros no hagan; su propuesta es de integración y coherencia. / It does not claim the impossible; its value is integration and coherence.
- Un solo binario autónomo por sistema con TODO embebido: menú in-game de 3 estilos, ES/EN, galería de save-states, rebobinado de 30 s, avance rápido, remapeo con combos, ecualizador de 5 bandas y 40+ shaders CRT/RF/VHS propios dentro del ejecutable — sin separación núcleo/front-end. / A single self-contained binary per system with EVERYTHING embedded: 3-style in-game menu, ES/EN, save-state gallery, 30 s rewind, fast-forward, combo remapping, 5-band equalizer and 40+ in-house CRT/RF/VHS shaders inside the executable — no core/front-end split.
- Determinismo bit a bit verificado entre SO: la misma ROM produce el mismo CRC de imagen en Windows (MSVC), Linux (gcc) y macOS (clang), comprobado en CI en cada publicación — no es una afirmación de marketing: es un test que corre. / Bit-for-bit determinism verified across OSes: the same ROM produces the same framebuffer CRC on Windows (MSVC), Linux (gcc) and macOS (clang), checked in CI for every release — not a marketing claim: a test that runs.
- Extras por sistema que van más allá del mínimo — netplay ComLynx por Internet en el Lynx, 6 modos 3D en el Virtual Boy, sonido mecánico real de disquetera y MIDI con SoundFont en el X68000. / Per-system extras beyond the minimum — Internet ComLynx netplay on the Lynx, 6 3D modes on the Virtual Boy, real floppy-drive sound and SoundFont MIDI on the X68000.
- Ecosistema coherente: todos los cores comparten look, atajos y formato, pensados para el front-end unificado futuro; hasta entonces, cada uno funciona por separado. / A coherent ecosystem: all cores share look, shortcuts and format, designed for the future unified front-end; until then, each works on its own.
Objetivo de investigación a largo plazo (aún NO en el producto): recompilar estáticamente cada ROM a un ejecutable nativo en C. Los binarios que se distribuyen hoy son el emulador, no ese recompilador. / Long-term research goal (NOT in the product yet): statically recompiling each ROM into a native C executable. The binaries distributed today are the emulator, not that recompiler.

