Juegos de Windows en macOS, con perfiles aislados, reparación automática y evidencia real.
Descargar · Compatibilidad · Documentación · Desarrollo
Regression es una aplicación nativa de barra de menús que ejecuta Steam para Windows mediante su propio motor de compatibilidad. Detecta el juego, prepara únicamente lo que necesita y mantiene cada corrección aislada para no alterar los títulos que ya funcionan.
Regression es el único motor operativo. Su botella contiene la única carpeta física de juegos:
no comparte steamapps, credenciales, registro ni configuración con CrossOver, y no requiere
comprar, instalar o configurar otro producto de compatibilidad. Si detecta una biblioteca heredada,
la traslada dentro de la botella propia mediante renombres atómicos, sin copiar los juegos, y
mantiene rollback hasta que Steam y un juego se validan de forma explícita.
Important
Regression está en desarrollo activo y es un proyecto personal y educativo. La compatibilidad se certifica juego a juego mediante render, entrada, opciones y gameplay reales; un proceso que termina correctamente no se marca como compatible por sí solo.
Note
El contrato del código fuente de esta rama es Regression 1.12.1 (39) y SQLite v17. v1.12.1 (39) corrige el arranque general de Steam y la conservación/onboarding de GPTK. v1.11.0 (37) permanece como baseline histórico verificable y como origen autorizado de la migración. La instalación de arriba siempre descarga la última release publicada.
curl --proto '=https' --tlsv1.2 -fsSL \
https://github.com/SwonDev/regression/releases/latest/download/install_regression.sh | bashEl instalador es auditable, transaccional y conserva rollback. Antes de sustituir una instalación comprueba la firma, el SHA-256 y el contenido del runtime descargado.
Después de la primera instalación, Regression detecta nuevas releases estables al arrancar y cada seis horas. La actualización automática está activada por defecto: espera a que Steam de Regression quede en reposo, descarga y verifica el instalador oficial, conserva botella y perfiles, reemplaza la app de forma transaccional y la reinicia. Todo el flujo se controla desde Mantenimiento; no hace falta volver a GitHub. Detalles y garantías.
Requisitos
- Mac con Apple Silicon.
- macOS 14 o posterior.
- Rosetta 2; el instalador la prepara si falta.
- Cuenta gratuita de Apple Developer solo para los perfiles que necesiten GPTK/D3DMetal.
Los juegos que usan DXMT, DXVK u OpenGL no necesitan Apple GPTK. Cuando un perfil sí requiere D3DMetal, Regression identifica también su generación exacta. Para GPTK 4.0b2 abre exclusivamente la descarga oficial de Apple; después verifica el DMG, muestra la licencia completa y solo instala tras una aceptación explícita. Los perfiles históricos fijados a GPTK 3.0 nunca se sustituyen por 4.0b2: si falta una fuente y autorización demostrables, el juego queda bloqueado con una explicación en vez de arrancar sobre un backend incorrecto. El DMG autorizado queda en una caché privada para futuras reparaciones; Regression nunca toma binarios de CrossOver, Whisky, Mythic o Homebrew. Flujo completo.
Qué prepara automáticamente
| Capa | Comportamiento |
|---|---|
| Runtime | Wine, DXMT, DXVK, MoltenVK, VC++/UCRT x86 y x64 |
| Steam | Instalación oficial de Valve y botella propia recuperable |
| Medios | Windows Media WMA/WMV/ASF cuando el contenido del juego lo exige |
| Entrada | SDL y Switch2Bridge para mandos compatibles |
| Fuentes | Source Han Sans y recursos redistribuibles permitidos |
| Apple GPTK | Asistente nativo, licencia explícita y reparación desde el DMG oficial ya autorizado; nunca se redistribuye |
Modos disponibles: --check, --verify-release, --yes, --launch y --help.
La preparación automática no significa «instalar todo por si acaso». Windows Media, por ejemplo, solo puede repararse para un App ID canónico cuya instalación acaba de inventariarse y contiene WMA, WMV o ASF. La reparación exige Steam en reposo, payload sellado, lease exclusivo, backup, recibo y verificación posterior; una sesión general de Steam no activa esa mutación.
| Identifica ejecutable, motor, contenido multimedia y requisitos antes de lanzar. | Verifica manifiestos y reconstruye componentes permitidos de forma transaccional. | Las recetas se activan por juego y proceso. No se convierten en variables globales. |
| Render, entrada, opciones y gameplay deben confirmarse visualmente. | Los cambios protegidos generan backup y se revierten si falla una puerta. | Perfiles, logs saneados y verificaciones permanecen en el Mac del usuario. |
Regression vive en la barra de menús, no en el Dock. La R comunica cuatro estados legibles: preparado, trabajando, Steam activo y error. El popover reúne motor, biblioteca, juegos, certificaciones, aprendizaje local y mantenimiento sin convertir la experiencia en un gestor de botellas.
La siguiente lista procede del catálogo local versionado y de ejecuciones perfectas confirmadas. Los expedientes públicos explican causa, receta, evidencia y regla de no regresión.
| Juego | Estado | Expediente |
|---|---|---|
| Cube World | Verificado perfecto | Catálogo integrado |
| FINAL FANTASY TACTICS — The Ivalice Chronicles | Verificado perfecto | Catálogo integrado |
| Grim Dawn | Verificado perfecto | Ver expediente |
| Clair Obscur: Expedition 33 | Verificado perfecto | Ver expediente |
| DragonSword: Awakening | Verificado perfecto | Ver expediente |
| Hell Clock | Verificado perfecto | Ver expediente |
| Heroes of Hammerwatch II | Verificado perfecto | Ver expediente |
| Secrets of Grindea | Verificado perfecto | Ver expediente |
| Fields of Mistria | Verificado perfecto | Ver expediente |
| Titan Quest II | Verificado perfecto | Ver expediente |
| Forsaken Isle | Verificado perfecto | Ver expediente |
| RuneScape: Dragonwilds | Verificado perfecto | Ver expediente |
| Tinkerlands | Verificado perfecto | Ver expediente |
| Moonlighter 2: The Endless Vault | Verificado perfecto | Ver expediente |
| Cross Blitz | Verificado perfecto | Ver expediente |
| Luminary Demo | Verificado perfecto | Ver expediente |
| Borderlands® 4 | Verificado perfecto | Ver expediente |
También forman parte de la matriz de regresión Steam/CEF, Palworld y la ruta D3D9. Moonlighter 2 es a la vez un juego certificado y el control Unity obligatorio para cambios comunes de Wine.
Validados con incidencia conocida
- Dragon's Dogma 2: letterbox 16:9 compartido por la referencia.
- Rotwood: superficie 1512×870 dentro de la pantalla disponible.
Investigación abierta
- FANTASY LIFE i: bloqueado por la política oficial de EAC en entornos virtualizados; no se elude ni se presenta como compatible.
flowchart LR
A["Juego de Steam"] --> B["Preflight de solo lectura"]
B --> C["Router por ejecutable y contenido"]
C --> D["Runtime general protegido"]
C --> E["Perfil aislado"]
C --> F["Componente autorreparable"]
D --> G["Ejecución observada"]
E --> G
F --> G
G --> H["Verificación visual"]
H --> I["Perfil blindado"]
El runtime general permanece fijado. Una corrección solo se promociona cuando supera la matriz del juego objetivo, Steam y los perfiles afectados. Las recetas se compilan y versionan; la base de aprendizaje nunca ejecuta comandos almacenados.
La telemetría agrupa launcher y ejecutable principal en una sola sesión. Una certificación perfecta exige que el proceso representativo sea el PID exacto del run, que todos los procesos rastreados hayan terminado y que la verificación sea posterior al cierre. Una rotación, truncado o lectura incompleta del log se conserva como diagnóstico tipado; nunca se interpreta como un lanzamiento limpio ni como compatibilidad.
| Área | Implementación |
|---|---|
| Aplicación | Swift 6, SwiftUI, Observation y AppKit donde macOS lo requiere |
| Compatibilidad | Wine x86-64 sobre Rosetta 2 |
| D3D11 | DXMT v0.72 con parche cross-process protegido |
| D3D9 | DXVK 1.10.3 |
| D3D12 | Perfil D3DMetal autorizado por juego cuando corresponde |
| Presentación | winemac, MoltenVK y perfiles OpenGL aislados |
| Datos | SQLite local con huellas de configuración, motor y evidencia |
| Distribución | Runtime recompilado para la ruta pública y asset verificado tras extraer |
El runtime público 1.12 se considera listo solo si supera como conjunto el wrapper bin/wine,
bin/wineserver, el loader Unix, ntdll.so, wine.inf, las dos mitades PE de ntdll.dll y
VC++/UCRT x86+x64 con hashes y permisos compilados. El launcher usa rutas absolutas al Wine y al
WINESERVER del runtime sellado, restablece PATH exactamente a
/usr/bin:/bin:/usr/sbin:/sbin y elimina cualquier WINESERVERSOCKET heredado. Así conserva las
utilidades canónicas de macOS sin aceptar un Wine, wineserver o PATH hostil del entorno. Un
runtime de desarrollo sin PIN reproducible queda deliberadamente no autorizado.
SQLite v17 conserva el sobre durable por App ID y endurece su recuperación. Vincula el run, el
preflight reciente, la generación de requisitos y las identidades cerradas de componentes y
perfiles, pero no almacena comandos, rutas ni DLL arbitrarias. La creación del sobre, el spawn,
la adopción de su run por la telemetría, el paso a espera de verificación y el cierre mediante una
verificación explícita sí están integrados.
v17 también define y prueba una política pura que solo consideraría un reintento para una receta y versión compiladas, nacidas en Regression, y que distingue cuándo correspondería rollback o solo reconciliación. Esa política no ejecuta acciones: el auto-retry y el rollback automáticos permanecen bloqueados hasta que exista un ejecutor conectado que verifique la receta compilada, aplique su rollback y persista el recibo. Un lanzamiento observado desde Steam o un intento agotado continúa requiriendo un gesto explícito, y ningún recibo se convierte en certificación.
| Quiero… | Documento |
|---|---|
| Entender el proyecto | Índice de documentación |
| Conocer el protocolo de compatibilidad | Investigación reproducible |
| Revisar arquitectura, datos y privacidad | Plataforma de compatibilidad |
| Entender autorreparación y evolución de runtimes | Evolución tecnológica |
| Preparar una prueba segura | Preflight y evidencia |
| Revisar la app nativa | Auditoría nativa |
| Consultar un juego | Expedientes de juegos |
Las reglas operativas para agentes y mantenedores viven en AGENTS.md. El contrato
visual está en DESIGN.md.
Este checkout corresponde a la release 1.12.1 (39). Los helpers que nombran public-1.11
son puertas históricas para comprobar la transición desde el asset anterior; no definen la
versión estable actual.
# Validación Swift
swift test
swift build -c release
# Estado protegido y botella
bash build/verify-protected-state.sh --include-bottle
# Preparar el staging firmado de la release; no se ejecuta desde el checkout
bash Scripts/package_regression.sh
codesign --verify --deep --strict Regression.app
# Verificación del asset que recibiría un Mac limpio
bash build/verify-release-asset.sh ASSET CHECKSUM VERSION BUILDEl verificador extrae el mismo tar que recibirá el usuario, audita dependencias, firmas,
redistribuibles y rutas, y ejecuta además un arranque mínimo de Wine. Un asset cuyo wrapper no
pueda localizar y cargar su ntdll.so se rechaza antes de poder publicarse o instalarse.
Regression.app/ es un staging local de empaquetado, no un bundle ejecutable desde el checkout,
y no debe registrarse ni abrirse. La única app canónica es el bundle físico
/Applications/Regression.app; su Wine se recompila para
/Applications/Regression.app/Contents/SharedSupport/wine-root. Mover el bundle sin recompilar
rompe sus rutas horneadas. Antes de entregar una build, ejecuta
bash build/verify-canonical-installation.sh para comprobar firma, Spotlight y LaunchServices.
El código propio se distribuye bajo LGPL-2.1 o posterior. Las atribuciones y límites de redistribución están documentados en NOTICE.md.
- No se publican credenciales, botellas, saves ni datos locales.
- No se copian binarios propietarios de productos de comparación.
- GPTK/D3DMetal pertenece a Apple y solo se usa desde una instalación autorizada del usuario.
- Regression no está afiliado con Valve, Apple, CodeWeavers ni los estudios de los juegos.
Regression
Compatibilidad medible. Reparaciones aisladas. Cero certificaciones por intuición.