Stella emula un Cortex-M0 que ejecuta una instrucción por ciclo, y su opción -dev.arm.mips fija cuántos millones de instrucciones por segundo da el ARM. Por debajo del peor hueco del kernel la imagen deja de ser fiable; por debajo del peor overblank, los frames se alargan unas líneas. Una herramienta del proyecto juega la partida completa a varias velocidades y cuenta las líneas de cada frame.
Rendimiento y hardware
Cuántos MIPS pide cada modo y qué falta por medir en un cartucho real.
Cómo se mide
| Medida en Stella | MIPS |
|---|---|
| FRANJA, FRANJA+ y DOBLE a 60 imágenes por segundo | 39 |
| COMPLETO a 60 imágenes por segundo | 43 |
| Peor hueco del kernel (el damero de COMPLETO) | 43 |
| La sala entera en el hito 4, antes de optimizar | 111 |
NTSC, PAL 60 y PAL 50
En NTSC y PAL 60 el frame tiene 262 líneas; en PAL 50, 312, con 25 líneas más arriba y abajo (cada una con su muestra de sonido). La lógica y la música van a su ritmo original de 50 Hz: en PAL 50 avanzan en cada frame, y a 60 Hz la música da cinco pasos cada seis frames, cada uno en su instante dentro del frame, y la lógica un tick cada 7,2 frames mientras alguien habla, o uno cada 6,9 de media, en cuanto se ha dibujado el anterior, cuando nadie habla. La consola no puede saber si está en NTSC o en PAL; el cartucho puede indicarlo, y si no, se elige en el menú. Los colores se traducen con la tabla del cargador, medida en Stella. En PAL 50 los modos entrelazados se ven a 25 Hz por campo, con más parpadeo.
Lo que falta por medir
Stella cuenta instrucciones, no ciclos: un M0+ real tarda 2 ciclos en cada carga y 2 o 3 en cada salto tomado, y la flash del Chameleon Cart de Zackary Scolaro (ZackAttack) a 64 MHz necesita 2 estados de espera. Sus 64 MHz son del orden de 30 a 40 MIPS de Stella, según cuánto código corra desde RAM: el margen es estrecho y hay que medirlo en el cartucho. Por eso el kernel va en RAM, y también la búsqueda de caminos de la IA: desde la flash, el tick de Adso al seguir a alguien de una sala a otra llegaba a 65 MHz en el modelo de ciclos del M0+ y alargaba el frame; en RAM, el peor overblank queda en 60 MHz. En el Chameleon el juego ya funciona en DOBLE y FRANJA; los modos con bus stuffing esperan a su firmware nuevo. En el PlusCart de Wolfgang Stubig (Al_Nafuur), con un ARM más rápido, el juego ya funciona desde el firmware 2.3.32.