EDITO: ESTA RESPUESTA ERA PARA MINIKIUBBI.
Tiene que ver con la velocidad a la que se refresca la pantalla.
Seguro habrán visto mil veces pantallas como esta en Mame:
En el final, mame dice la resolución y frecuencia a la que hace el barrido vertical el rayo que dibuja la imagen en pantalla en la placa del arcade original.
El problema es que normalmente mame corre en PCs que no pueden mostrar imagen a esos valores, por lo que para que se pueda ver, hace el trabajo de convertir eso a un valor que pueda mostrarse. Ya sea porque la resolución es muy baja para la placa de video o que el monitor no pueda sincronizarse con esa frecuencia de barridos.
Al meterse este proceso en el medio, empiezan las discrepancias.
Para empezar, 320x224 tiene que ser llevado a una resolución más normal para el hardware de la PC, por dar un ejemplo 640x480 que es la más cercana al doble.
Y los 59.185 tienen que ser llevados a lo más cercano también, por ejemplo 60hz.
El tema de las sombras en Neo Geo, pasa por el hecho de que el hardware no hace transparencias, entonces como truco de programación crean el efecto de transparencia haciendo titilar una imagen que seguramente está sincronizada con el timing de un barrido en especial.
Recordemos que las imágenes se dibujan mediante un rayo vertical y otro horizontal que recorren la pantalla varias veces por segundo, más rápido de lo que el ojo logra captar.
Cuando falla ese timing, el efecto falla y aparecen estas cosas que notamos.
Lo mejor que se puede hacer para solucionarlos es también algo que carga más de trabajo a la máquina que es usar las opciones de triple buffer y vsync.
Mal y pronto: explicar el triple buffer es como decir que tenés en casa 2 tanques de agua y que vos te bañás con el agua del segundo tanque y mientras vas agotando este, el primero lo va rellenado así vos no te quedás sin agua mientras te enjabonás.
El vsync, bueno, no tengo analogía para el vsync. Pero es sincronizar el numero de cuadros generado por la placa de video con la tasa de refresco del monitor.
Demás está decir que el triple buffer, el vsync y el escalado de la imagen repercuten sobre la performance de la máquina y que si a esto tenemos que agregarle también efectos especiales como mejoras de bordes, etc, el impacto es mayor.
Cuando la máquina no logra cumplir con todo a tiempo, empieza el Tearing, los saltos de cuadros, las desincronizaciones, etc.
Un ejemplo de tearing.
Pasa por ejemplo cuando se refresca una imagen y se nota que cambia antes una parte que otra.