Saltar al contenido principal

Arquitectura del hardware de PS1

Polygon Engine se dirige al modelo de ejecución PlayStation original en lugar de un renderizador moderno con un filtro visual PS1. Comprender la ruta de los datos explica por qué el editor expone los presupuestos, por qué la geometría debe segmentarse y por qué la compilación crea varios formatos de recursos específicos para el objetivo.

Mapa del sistema​

CD-ROM
-> RAM principal (ejecutable, datos de escena, mallas, Lua, búferes de preparación)
-> CPU + GTE (jugabilidad, transformaciones en punto fijo, iluminación, proyección)
-> paquetes de comandos de GPU y tabla de ordenamiento
-> VRAM (búferes de cuadro, páginas de texturas, CLUTs)

Flujo CD-XA ------------------------------------------------> salida de SPU
Muestras VAG -> RAM de SPU -> voces de SPU ------------------> salida de SPU
Mando / tarjeta de memoria <-> E/S serie <-------------------> jugabilidad y guardados

CPU y GTE​

La consola utiliza una CPU compatible con MIPS R3000A de 33.8688 MHz y no tiene unidad de punto flotante de hardware. El Geometry Transformation Engine (GTE) es un coprocesador de punto fijo para transformaciones, proyección, soporte de recorte y matemáticas de iluminación.

Polygon Engine convierte los datos de punto flotante creados en valores de tiempo de ejecución limitados y utiliza rutas de transformación y recorte seguras para PS1. Las coordenadas muy grandes, la escala extrema y la geometría que cruzan el plano de la cámara aún pueden perder precisión o crear proyecciones inestables, por lo que la escala de nivel es una restricción de producción, no solo una preferencia artística.

GPU y tablas de ordenamiento​

La GPU consume comandos de dibujo para triángulos, quads, sprites y otras primitivas 2D. No proporciona un tampón z. Un juego debe presentar primitivas en un orden útil, comúnmente a través de una tabla de ordenamiento cuyos cubos se aproximan a la profundidad.

Esto tiene tres consecuencias importantes:

  1. Las superficies intercaladas o coplanarias no reciben una resolución de profundidad fiable por píxel.
  2. Un polígono grande puede abarcar varias profundidades, pero solo ocupa un grupo de la tabla de ordenamiento.
  3. Las coordenadas de textura se interpolan de forma afín, sin corrección de perspectiva, por lo que los polígonos texturizados grandes se distorsionan de manera más visible.

Polygon Engine recorta la geometría insegura contra los límites de vista cercano, lejano, izquierdo, derecho, superior e inferior antes de enviar las coordenadas de la GPU, luego clasifica las primitivas supervivientes. La creación de recursos sigue siendo parte de la solución: segmentar pisos y paredes, evitar superposiciones coplanarias y aislar superficies transparentes. Ver Renderizado y creación de niveles de nivel.

Dominios de memoria​

Los tres grupos de memoria principales son independientes:

MemoriaHardware totalContenido principal
RAM principal2 MBCódigo de tiempo de ejecución, estado de escena, mallas, Lua, CD y búferes de renderizado
VRAM1 MBBúferes de cuadro, páginas de texturas y tablas de consulta de color (CLUT)
RAM SPU512 KBMuestras de VAG residentes y datos de trabajo de audio

El espacio libre en una piscina no puede compensar un desbordamiento en otra. Una pequeña malla no deja espacio para una página de textura de gran tamaño, y la música de CD-XA transmitida no consume el presupuesto de muestra de VAG residente. Usa el panel de control de Panel PS1 Budget para inspeccionar cada dominio por separado.

CD-ROM y datos de tiempo de ejecución​

El CD-ROM es almacenamiento de alta capacidad, no memoria de trabajo de acceso aleatorio. Las búsquedas de archivos y las transferencias son mucho más lentas que el acceso a la RAM. Por lo tanto, Polygon Engine establece rutas compactas en DATA/, escribe un manifiesto pequeño, agrupa cada escena y sus dependencias ordenadas en un paquete secuencial alineado con el sector, carga los recursos de escena en cachés limitadas y reserva búferes transitorios para los cambios de escena. Los archivos individuales preparados para el disco siguen disponibles cuando no se puede montar un paquete.

La música en streaming sigue una ruta de CD-XA separada. Mientras el flujo está activo, el tiempo de ejecución coordina el acceso al CD alrededor de la carga de la escena y luego reinicia la pista suspendida desde su inicio. Los efectos de sonido cortos usan datos VAG residentes en su lugar. Consulta Importación de audio para la opción de creación.

Las transiciones de escena procesan lecturas de CD, decodificación, cargas de textura/SPU e inicialización de componentes en unidades de trabajo limitadas mientras la pantalla de carga está activa. Consulta Administración de escenas para conocer el contrato de transición orientado al usuario.

¿Qué significa esto para un Engine Project?​

  • Tratar los límites de validación como parte del diseño del contenido, no como una verificación final de exportación.
  • Construir geometría modular cuyas superficies tengan un ordenamiento inequívoco.
  • Presupuesto de RAM principal, VRAM, SPU RAM, memoria de paquetes y datos de CD independientemente.
  • Prueba el CUE generado en DuckStation y en hardware cuando sea posible; el editor Play Mode es una vista previa del flujo de trabajo, no el renderizador final.
  • Usa los informes posteriores al preprocesamiento como autoridad porque miden los datos de PS1 por etapas, no solo los recursos de origen.

Continúa con Restricciones y presupuestos del hardware de PS1 para conocer los límites actuales del engine y con Límites de ejecución para consultar las tablas de tamaño fijo del entorno de ejecución.