OceanTriRecomp

OceanTriRecomp is a native PC port of Monster Hunter Tri built using static recompilation with support for higher resolutions and frame rates.

README

OceanTriRecomp

Version License: GPL v3 Platform

OceanTriRecomp es un port nativo para PC (Windows x64) de Monster Hunter Tri desarrollado por Kris´ZtS mediante recompilación estática AOT (Ahead-Of-Time).

CUALQUIER DESCARGA FUERA DE ESTE GITHUB NO ES LA VERSIÓN OFICIAL. TAMBIEN PUEDEN UNIRSE AL CANAL DE TELEGRAM: https://t.me/MHNativeProject

A diferencia de la emulación tradicional mediante traducción dinámica o intérpretes JIT (Just-In-Time), este proyecto traduce de forma estática los bloques ejecutables de la arquitectura original PowerPC (Wii, main.dol y módulos relocables) directamente a código fuente C++ optimizado. El resultado es un binario nativo de 64 bits (OceanTriRecomp.exe) con ejecución directa en CPU, menor latencia de entrada, soporte para altas tasas de refresco y un pipeline gráfico moderno basado en Aurora, SDL3 y ANGLE.

Características Principales

  • Ejecución Nativa AOT en C++: Traducción estática de funciones PowerPC a C++ compilado directamente para arquitecturas x86_64 sin sobrecarga de intérprete ni JIT en tiempo de ejecución.
  • Capa Gráfica Moderna (Aurora HAL + ANGLE): Implementación de la API gráfica GX de Wii sobre Aurora y ANGLE, con selección de backend entre Vulkan y OpenGL ES 3.0 (EGL) y sistema de recuperación automática (fallback) con diagnósticos detallados.
  • Escalado de Resolución y Rendimiento:
    • Resoluciones internas seleccionables desde 540p, 720p, 900p, 1080p, 1440p hasta 2160p (4K) con persistencia automática entre sesiones.
    • Soporte nativo para relación de aspecto panorámica 16:9.
    • Límites de cuadros por segundo configurables (30, 45, 60, 90 y 120 FPS), control de sincronización vertical (V-Sync) y modo de pantalla completa sin bordes (Borderless Fullscreen).
  • Interfaz Integrada (MH3UI): Menú superpuesto dentro del juego dividido en páginas dedicadas para Gráficos, Apariencia (temas visuales y tipografías), Controles y Sensibilidad de Ratón, Gestor de Partidas Guardadas, Selector de Idioma y opción para restaurar los valores predeterminados.
  • Subsistema Multimedia SDL3: Gestión multiplataforma de ventanas, audio de baja latencia y soporte nativo para teclado, ratón y mandos (Xbox, PlayStation DualShock/DualSense, Nintendo Switch Pro Controller) a través de SDL3.
  • Optimización Guiada por Perfiles (PGO): Infraestructura integrada para compilaciones instrumentadas y optimización de rutas críticas de ejecución.

Arquitectura y Construcción del Proyecto

El código fuente del repositorio OceanTriRecomp se estructura en módulos desacoplados que separan el código traducido, el entorno de ejecución del sistema y la capa de abstracción de hardware:

Directorio / ComponenteFunción Técnica en el Proyecto
generated/Contiene los módulos C++ generados mediante recompilación estática a partir del binario PowerPC original.
runtime/Núcleo de tiempo de ejecución: gestión de memoria simulada, registros de CPU, hilos, sistema de archivos (DVD/NAND) y llamadas al sistema operativo de Wii.
aurora-main/Capa de compatibilidad y abstracción de hardware Aurora (traducción de comandos GX/VI/PAD a APIs modernas).
toolchain/ y cmake/Definiciones de compiladores (LLVM/Clang/MSVC), parches de dependencias y módulos de configuración de CMake.
scripts/Herramientas auxiliares de extracción, automatización de compilación y empaquetado.
pgo/Perfiles de ejecución y scripts para Profile-Guided Optimization (PGO).
docs/Documentación técnica e historial de arquitectura del proyecto.
Transparencia de Desarrollo y Uso de IA

Este proyecto fue concebido, diseñado e integrado por Kris´ZtS. Como parte de un flujo de ingeniería moderno y transparente, el desarrollo contó con asistencia de inteligencia artificial (Claude en aproximadamente un 85%) para acelerar el trabajo mecánico de traducción estática de bloques PowerPC a C++, refactorización de subsistemas del runtime, diagnóstico de contextos gráficos EGL/ANGLE y construcción de la interfaz MH3UI. Toda la arquitectura, validación en hardware real, corrección de errores y control de calidad son supervisados y mantenidos directamente por el autor.

Requisitos e Instrucciones de Compilación

Requisitos Previos
  • Sistema Operativo: Windows 10 o Windows 11 (64 bits).
  • Copia Legal del Juego: Imagen de disco original legítimamente obtenida de Monster Hunter Tri (versión europea PAL RMHP08 recomendada, en formato .iso o .rvz).
  • Entorno de Desarrollo:
    • CMake 3.22 o superior.
    • Ninja Build System.
    • LLVM / Clang (compatible con C++20) o Visual Studio 2022 (carga de trabajo Desarrollo para el escritorio con C++).
    • Git para clonar el repositorio y gestionar submódulos/dependencias.
Compilación Paso a Paso desde el Código Fuente
  1. Clonar el repositorio:

    git clone https://github.com/krisztsa/OceanTriRecomp.git
    cd OceanTriRecomp
    
  2. Configurar el árbol de compilación con CMake:

    cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release
    

    (Si utilizas el generador de Visual Studio 2022 sin Ninja, puedes omitir -G Ninja y ejecutar cmake -B build -S .).

  3. Compilar el ejecutable nativo:

    cmake --build build --config Release --parallel
    
  4. Compilación con Optimización Guiada por Perfiles (PGO - Opcional):

    # Paso 1: Compilar con instrumentación de perfiles
    cmake -B build_pgo -S . -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_PGO=GENERATE
    cmake --build build_pgo --config Release
    
    # Paso 2: tras generar los datos de perfil en pgo/, compilar el binario optimizado final
    cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_PGO=USE
    cmake --build build --config Release
    

Instalación y Uso

  1. Suministrar los datos del juego: Extrae o selecciona tu copia legalmente adquirida de Monster Hunter Tri (RMHP08, formato .iso o .rvz) siguiendo el asistente o estructura de datos del directorio de ejecución.
  2. Ubicación de la carpeta: Coloca la carpeta del juego en una ruta con permisos de lectura y escritura de usuario (por ejemplo, C:\Games\OceanTriRecomp o en tu directorio personal). Evita rutas protegidas como C:\Program Files, ya que el ejecutable guarda las preferencias gráficas y de interfaz localmente en el archivo MH3UI.graphics.
  3. Ejecución: Inicia OceanTriRecomp.exe y configura la resolución, el límite de FPS, el backend gráfico (Vulkan u OpenGL ES) y tus controles desde el menú integrado MH3UI.

Control de Versiones y Política de Lanzamientos (Releases)

Este proyecto sigue Semantic Versioning (SemVer) (MAJOR.MINOR.PATCH) y registra todos los cambios técnicos en CHANGELOG.md:

  • Rama main: Recibe mejoras continuas de documentación, refactorizaciones, correcciones de errores y preparación de código bajo la sección [Unreleased] del registro de cambios.
  • Publicación de Releases: Las etiquetas de versión y paquetes compilados en la sección de Releases se publican exclusivamente de forma manual por el autor principal (Kris´ZtS) tras validar la estabilidad de cada versión en hardware real.

Proyectos Relacionados de la Comunidad

Agradecimientos y Créditos a Otros Repositorios

OceanTriRecomp es posible gracias al trabajo pionero de la comunidad de preservación, ingeniería inversa y desarrollo de código abierto. Agradecemos especialmente a los autores y colaboradores de los siguientes proyectos:

  • patchzyy/Wiicompiled y ExpansionPak/DolRecomp: Por sentar las bases de las herramientas de traducción estática de binarios PowerPC (Wii/GameCube) a C++ y la arquitectura de runtime de recompilación.
  • encounter/aurora: Por el desarrollo de Aurora, la capa de compatibilidad de nivel de código fuente para GameCube y Wii (GX, VI, PAD, DVD y CARD).
  • libsdl-org/SDL: Al equipo de SDL3 (Simple DirectMedia Layer) por proporcionar la capa multiplataforma de ventanas, entrada de mandos/teclado/ratón y audio.
  • google/angle: Al equipo de ANGLE (Almost Native Graphics Layer Engine) por permitir una traducción robusta y de alto rendimiento de contextos OpenGL ES 3.0 y EGL sobre Vulkan y backends de escritorio.
  • Anthropic (Claude): Por la asistencia mediante IA durante el proceso de traducción estática, depuración y estructuración de componentes del proyecto.

Cumplimiento de Licencias

El código fuente de OceanTriRecomp se distribuye bajo los términos de la licencia GNU General Public License v3.0 (GPL-3.0) (consulta el archivo LICENSE en la raíz del repositorio), en estricto cumplimiento con las licencias de los proyectos de los que deriva o con los que se enlaza:

Componente / ProyectoLicenciaEnlace al Repositorio Oficial
OceanTriRecompGPL-3.0krisztsa/OceanTriRecomp
WiiCompiledGPL-3.0patchzyy/Wiicompiled
Aurora Compatibility LayerMIT Licenseencounter/aurora
SDL3 (Simple DirectMedia Layer)zlib Licenselibsdl-org/SDL
Google ANGLEBSD-3-Clause / Apache-2.0google/angle

Consulta el archivo THIRD_PARTY_NOTICES.md incluido en este repositorio para ver los textos completos de atribución, avisos de copyright y permisos de cada biblioteca de terceros.

Aviso Legal (Disclaimer)

  • Monster Hunter y Monster Hunter Tri son marcas registradas y propiedad intelectual de Capcom Co., Ltd.
  • Wii y GameCube son marcas registradas de Nintendo Co., Ltd.
  • OceanTriRecomp es un proyecto independiente de código abierto desarrollado sin ánimo de lucro con fines de interoperabilidad, investigación técnica y preservación histórica de software. No está afiliado, patrocinado, respaldado ni asociado de ninguna manera con Capcom Co., Ltd. ni con Nintendo Co., Ltd.
  • Sin contenido con derechos de autor: Este repositorio y sus lanzamientos oficiales NO contienen ni distribuyen código fuente original de Capcom o Nintendo, ni ejecutables originales (main.dol), imágenes de disco (.iso, .rvz, .wbfs), modelos 3D, texturas, pistas de audio ni ningún otro activo protegido por derechos de autor. Para utilizar este software es estrictamente necesario poseer y suministrar una copia legítima del juego original.