Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VC·Anvil — Ecosistema de emulación / Emulation ecosystem

VC·Anvil

⚠️ Aviso / Notice

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.

Qué es este proyecto / What this project is

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.

Cores terminados / Finished cores

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 .sav compatible. 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.S decí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, Tab cierra, 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.S reported "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, Tab closes, 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.

    VC·Anvil — Sharp X68000

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.

Qué necesitas para ejecutar / What you need to run

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 in bios/<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 un recore_<sistema>.cfg de 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. A recore_<system>.cfg from 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).

Configurar rutas (ROMs y BIOS) / Configuring paths (ROMs and BIOS)

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).

El estándar de "terminado" / The "finished" standard

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.

Licencia / License

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.

Procedencia del código / Code provenance

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/.

Qué distingue a VC·Anvil / What sets VC·Anvil apart

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.

About

VC·Anvil — finished multi-system emulators (win/linux/macos, bit-deterministic). Free for non-commercial use.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors