Según byuu snes sigue sin estar emulada al 100%

No sabía muy bien qué poner en el título...
Acabo de leer este artículo de Near, antes conocido como byuu, autor de bsnes (esto da para otro post XD).
https://byuu.org/articles/edge-of-emulation

Resumiendo mucho, habla de como hay 2 formas de plantear la emulación: vamos probando juegos y añadiendo parches para que esos juegos funcionan como deberían o estudiamos el hardware a fondo y programamos el emu para que sea lo más fiel a ese hardware, así lo juegos funcionarán bien sin tener que andar parcheando nada. Zsnes (y muchos otros) funcionaban de la primera forma, bsnes o MAME funcionan de la segunda.

Después de esto comenta algo que personalmente me ha sorprendido. La PPU* de snes es una "caja negra" para la CPU. O sea, sabemos lo que entra y lo que sale pero no lo que pasa dentro. A diferencia del DSP** o la CPU, no hay buffers ni memorias en los que mirar qué está pasando, la única información que tenemos es la que sale desde la toma de vídeo de la consola. Por tanto no hay ningún emulador ni FPGA que reproduzca la snes al 100%, porque nadie sabe cómo funciona este componente.

El artículo termina con las diferentes opciones que se le ocurren para poder avanzar en la emulación de la consola. Me ha parecido de lo más interesante.

*El chip gráfico de la consola
**El chip de sonido de la consola
Habría que añadir que tampoco está implementada al 100%, no se vaya a creer alguien que por cambiar una palabra y pagar 300 ya se asegura una SNES clavada a la original.

Algunas máquinas nuncan estarán emuladas ni implementadas perfectamente si no se conoce exactamente lo que pasa dentro, como dices (en el artículo -muy bueno, por cierto- hay capturas del decapado de chips, para emularlos o implementarlos con mayor precisión e exactitud). La probabilidad de que tenga un comportamiento distinto en determinadas situaciones y haya que corregir siempre estará ahí.
Se ha de suponer que la propia Nintendo si sabe que pasa por lo que he de suponer que el emulador de la Snes mini es la que mas precisión sobre la consola original que podemos encontrar, no se, estaria bien ver a nivel de software que han hecho los chicos de Nintendo en este sentido.
nanduelo escribió:Se ha de suponer que la propia Nintendo si sabe que pasa por lo que he de suponer que el emulador de la Snes mini es la que mas precisión sobre la consola original que podemos encontrar, no se, estaria bien ver a nivel de software que han hecho los chicos de Nintendo en este sentido.


No, porque la SNES mini tira de un emulador (el canoe) que tiene distintas configuraciones según el juego, y además con un error visual grave en el Yoshi's Island (juego incluido en la consola, para mayor gravedad).

El mejor emulador de SNES es el de Byuu, y creo que hay otro que sigue la misma linea, pero ahora no me acuerdo.
@nanduelo el emu que trae la snes mini es de los que sólo se preocupan en emular bien algunos juegos, no el hardware completo. Es mucho más rápido, cómodo y barato hacerlo así. En la consola virtual de wii pasaba lo mismo con los juegos de N64.

gynion escribió:Habría que añadir que tampoco está implementada al 100%, no se vaya a creer alguien que por cambiar una palabara y pagar 300 ya se asegura una SNES clavada a la original.

De hecho el propio byuu comenta que el core de snes de la mister se basa en bsnes. Luego cada uno ha seguido su camino, pero parten de la misma base.

Me suena que @atreyu_ac comentó en algún hilo que él había cedido su snes a un desarrollador ruso, para que hiciera el decapado de los chips y así mejorar el core de la mister... Así que hay más gente en ello. Ojalá entre todos consigan preservar el hardware al 100%
Hace mucho que lei ese articulo, ya que me gusta gusta leer a este personaje, que me recuerda a uno que solia pasar por aqui en la parte de ps3.

En cuanto a la emulacion, segun lo que entendi hace mucho, la parte que falta por perfeccionar, es el area del PPU. Emular estos dos chips tal como venian en las primeras versiones fisicas de la super nintendo.

En cuanto al chip DSP, creo que el problema esta en la velocidad, ya que algunos juegos presentaban problemas para verse o arrancar.

Al que le gusta la emulacion y mas, las que son precisas, recomiendo la lectura de este personaje. Tiene mucha historia que contar.
Ronbin escribió:Después de esto comenta algo que personalmente me ha sorprendido. La PPU* de snes es una "caja negra" para la CPU. O sea, sabemos lo que entra y lo que sale pero no lo que pasa dentro. A diferencia del DSP** o la CPU, no hay buffers ni memorias en los que mirar qué está pasando, la única información que tenemos es la que sale desde la toma de vídeo de la consola. Por tanto no hay ningún emulador ni FPGA que reproduzca la snes al 100%, porque nadie sabe cómo funciona este componente.


Es tan sencillo como decapar y analizar el circuito. No hay magia dentro de el encapsulado, solo componentes electrónicos que se sabe perfectamente cómo funcionan.

Así que solo es cuestión de tiempo y esfuerzo sacar una implementación fpga 100% exacta y una emulación al mismo nivel con la potencia adecuada para moverla.

Y otra cuestión es si merece la pena hacer ese esfuerzo, cuando ya tenemos una exactitud del 99,99% en fpga y un 99.5% en emulación.
O sea al final si quieres sensaciones y jugabilidad reales hay que pillarse la super famicon de seg mano y una tele de tubo,y si la quieres jugar en TFT , otra pasta en un conversor a HDMI(creo q el ossc no da bueno resultados con snes)
Mil escribió:Y otra cuestión es si merece la pena hacer ese esfuerzo, cuando ya tenemos una exactitud del 99,99% en fpga y un 99.5% en emulación.

Conociendo a byuu, se que él hará ese esfuerzo. En el resto de emuladores no se si hay alguien TAN perfeccionista como él (para lo bueno y para lo malo).

Para mí todas las consolas por debajo de saturn están lo suficientemente bien emuladas por software como para no depender del hard original.
Mil escribió:Y otra cuestión es si merece la pena hacer ese esfuerzo, cuando ya tenemos una exactitud del 99,99% en fpga y un 99.5% en emulación.


Creo que te confundes, la emulación de snes está más avanzada que una implementación en FPGA.
Ronbin escribió:
Mil escribió:Y otra cuestión es si merece la pena hacer ese esfuerzo, cuando ya tenemos una exactitud del 99,99% en fpga y un 99.5% en emulación.

Conociendo a byuu, se que él hará ese esfuerzo. En el resto de emuladores no se si hay alguien TAN perfeccionista como él (para lo bueno y para lo malo).

Para mí todas las consolas por debajo de saturn están lo suficientemente bien emuladas por software como para no depender del hard original.


En palabras del mismo byuu, el desarrollador que se encuentra detrás de Mesen-S parece que es otro fuera de serie. Quizás entre ambos consigan superar esa última frontera.

Por otro lado, interesantísimo artículo que merece la pena leer con calma.

Un saludo.
Pero en tema de lags y calidad sonora es mejor en emulación que en FPGA?
Dijo que al encender la consola la ram
se pone con valores aleatorios, no 0 todo.
Y algún juego ni arranca a la primera siempre por eso, en consola y bsnes...

Un ejemplo del lío es el tengai makyou zero,
traducción = lo emulan.
Hasta en snes9x ya va el rtc
Pero hay creo que el shell monsters 2 con
el mismo chip en japonés.
Puede que no funcione.

Satellaview es otra historia.

Hace poco dijo en twitter que una
imagen de cd fiel son 2.2GB
Un tocho de artículo.
Bueno cuando no me doy cuenta de que falta/falla me da igual,el problema es cuando tengo una extraña sensacion,algo falla y no se que es,por que tecnicamente no...pero mis sentidos de viciao son muy agudos y percibo detalles que a veces no se ni como explicar.

un deslizar del personaje que a mi no me suena que en la maquina original sea asi...,pequeños detallitos en el sonido,pero como soy un ignorante no se si es por configuracion o es por que es un mal emulador,nunca se me dio bien configurar los Emuladores,pero por poner un ejemplo en la SNES MINI yo puedo jugar agusto.
@emerald golvellius

A casi todos los detalles extraños del tipo que cuentas les he encontrado explicación y solución sin salir de la emulación, bien sea en el momento o bien años después:

DreamSnes (antes de tener internes y PC): El rendimiento era lento, y el sonido sucio; o sea framerate bajo o inestable con rascadas y sonido mal emulado. Caso similar al emulador oficial de Mega Drive para Dreamcast en el tema sonido, aunque con un rendimiento visual mejor.

ZSNES en PC: Este me sorprendió, porque es que no lo vi fino en el mismo SMW, un juego muy estándar de la consola, y siendo un emu muy popular antaño. El framerate no lo noté suave, y lo confirmé al probar el mismo juego en el Snes9X.

En la SNES Mini, dos cosillas: Ligero input lag, que de todas formas sólo noté al comparar la Mini + LCD con la Wii + Snes9x + CRT. En la Wii no pude notar nada de input, aun usando el Wiimote, y en la Mini en cambio sí había un mínimo lag; pero ya digo, tras fijarme expresamente.
Lo segundo de la SNES Mini fue la mala sensación al probar juegos (Sonic, concretamente) de Mega Drive con el Retrorarch y el core Genesis Plus GX. Todavía no tengo una explicación clara, pero puede ser una mezcla entre input lag y el feeling del mando (creo que nunca había jugado a Mega Drive con el mando de SNES. :p )
@gynion Se ha visto que el retroarch en la mini da más input lag que el canoe. Si juegas como viene de serie la consola es difícil que notes algo de lag.
@gynion Esque hay cosas que no se pueden hacer,jugar Sonic con un mando Nintendo es como jugar con el ADN,es jugar a ser Dios...,hay normas... [carcajad]
tanto con MD MINI como con NES y SNES MINI,tal como vienen de fabrica y metiendoles mas alegria de su mismo color...yo puedo jugar agusto,no noto mas que la ausencia de la Radiacion de CRT,pero es aceptable,todo Psicologico mio...,me convence.
@medinarafa1
Pues debe ser eso. En el Retroarch de PS3 no me pasa, pero será por ser un sistema más potente que la placa de la Mini. Es lógico pensar que Nintendo sí que ha podido optimizar su emulador canoe para esa placa, al margen de algún arror, pero que aplicaciones homebrew de terceros requieran de más recursos disponibles como margen, porque es normal que los de Retroarch no estén por la labor de optimizar mucho para sistemas como las minis, estando la Rpi muy por delante. Creo que no ofrecen ni soporte oficial para las minis, sino que son desarrolladores externos o relacionados los que por su cuenta han ido portando cores.

@emerald golvellius
No sé si influyó el input lag que dije, pero vamos, la sensación no me gustó nada, y por siaca procuraré no jugar a Mega con ese mando. :p

En PSP me pasó algo similar, pero no por los controles, ni por el input o el rendimiento, sino por la pantalla; el Batman Returns de Mega Drive me resultaba injugable por lo oscuro que se veía.
Entiendo que al ponerle una flashcard a la súper Nintendo es la única manera de jugar exactamente igual que con originales.
yiu escribió:Entiendo que al ponerle una flashcard a la súper Nintendo es la única manera de jugar exactamente igual que con originales.


Esto es un poco relativo :p , porque es que luego también hay varios modelos de SNES, por ejemplo las iniciales con los PPU por separado, y las 1-chip; hay diferencias entre esos dos modelos, al menos a la hora de mostrar los juegos pantalla, aun siendo consolas originales. Luego está la SNES Jr.

Por otra parte, Byuu en su artículo comenta (según interpreto) que lo que falta por recrear de SNES afecta en realidad a un solo juego, que es el Air Patrol (cuyos gráficos se ven diferentes en la SNES Jr original con respectos a los otros modelos).

Desde el punto de vista de un usuario común, como puedes deducir, no creo que necesites que se supere esa barrera para poder jugar en buenísimas o perfectas condiciones al resto de juegos mediante emulación o fpga; pero es que Byuu es un desarrollador perfeccionista, y es normal que él le dé más importancia. Sin esa filosofía de muchos devs seguiríamos en condiciones peores, pero a estas alturas la perfección de SNES es cosa de ellos más que de los que solo quieren jugar (al menos hasta que un jugador descubra alguna otra tara emulando o en fpga).
Respecto al sonido también ha hecho cosas interesantes.
Por un lado, como en los pcs
sin tarjeta de sonido suena más o menos
sucio todo porque se mezcla el ruido
eléctrico de la placa a la salida de audio,
con tarjeta de sonido aparte de sonar mejor,
bsnes añadió ASIO para reducir la latencia.
Nunca había visto que lo pusieran en un
emulador.
gadesx escribió:Respecto al sonido también ha hecho cosas interesantes.
Por un lado, como en los pcs
sin tarjeta de sonido suena más o menos
sucio todo porque se mezcla el ruido
eléctrico de la placa a la salida de audio,
con tarjeta de sonido aparte de sonar mejor,
bsnes añadió ASIO para reducir la latencia.
Nunca había visto que lo pusieran en un
emulador.



Depende del equipo, si es muy viejo, es posible que la tarjeta interna de sonido cree problemas si el motherboard no tiene el diseño para aislar las interferencias.

La latencia, como no juego en windows, casi no lo noto en Linux, y mas teniendo mi sistema configurado para que consuma lo menos posible en cuanto a programas en background.
Todos los comentarios están bien encaminados, es más o menos lo que contáis, pero también tenemos que encarar una realidad positiva:

Byuu trata de llevar la emulación 1:1 de SNES hasta sus últimas por una cuestión de preservación hasta sus últimas consecuencias del hardware original, pero actualmente, su emulador BSNES se ha convertido en un software legado para el resto de la historia de cara al usuario medio.

BSNES emula all 99'9% todo el catálogo de SNES sin ni una sola falla y con un comportamiento casi idéntico al original sin hacer los sacrificios que hace Higan en cuanto a rendimiento. Hasta donde tengo entendido solo está peleando en uno de los aspectos pendientes por un efecto que solo un juego de todo el catálogo emplea y es poco perceptible para el usuario medio.

De hecho, a dia de hoy aún sigo leyendo a gente hablando de usar Snes9x cuando en los últimos meses Byuu se ha matado a añadir todo lo que le faltaba/hacía Snes9x y Znes a Bsnes, a optimizar hasta el límite el emulador para que corriese fácilmente en hardware más normalito y prácticamente solo en el futuro Mesen-S podrá hacerle frente (porque aparte Mesen tiene una interfaz que da un gusto de la ostia). Es decir, salvo que tengas un hardware patata o un sistema operativo donde Bsnes no esté, usar Snes9x ya no tiene sentido. La gente sigue usándolo por inercia o por costumbre pero Bsnes prácticamente lo barre del mapa (como digo, Byuu preguntó abiertamente que hacía falta meterle a Bsnes para dejar atrás Snes9x y a día de hoy, no queda NADA).

Sinceramente, si hoy Byuu palmara y su trabajo no finalizara, prácticamente todo el software y la documentación que ha desarrollado permitirían dar casi por preservada SNES en toda su esencia.

Tengo mucho más interés en que continúe el proyecto de dumping del fullset de SNES que quedó pendiente continuar.
@diego-rbb-93 hay alguna lista de juegos que queden por dumpear?
Gracias de antemano
titorino escribió:@diego-rbb-93 hay alguna lista de juegos que queden por dumpear?
Gracias de antemano


Honestamente, apenas nada.

https://wiki.no-intro.org/index.php?tit ... m_undumped

Nos interesan mucho más las verificaciones. Sin embargo, Byuu tiene a mano casi todo el fullset, pocos cartuchos le quedaban por tener a mano para redumpear y verificar. De hecho,yo le mandé un par de Secret of Evermore de España, que eran los únicos que le faltaban.
@diego-rbb-93 El problema que yo tengo con el BSNES es que no me va fluido en mi PC pero si que va, es decir va fluido un rato, luego no, y así; aparte el marcado siempre me marca 60 fps estables, es decir no es que utilice el frameskip ni nada, es que lo hace así y ya está.

Saludos.
AlterNathan escribió:@diego-rbb-93 El problema que yo tengo con el BSNES es que no me va fluido en mi PC pero si que va, es decir va fluido un rato, luego no, y así; aparte el marcado siempre me marca 60 fps estables, es decir no es que utilice el frameskip ni nada, es que lo hace así y ya está.

Saludos.


Estás usando la última versión? Es la original el Bsnes HD de Retroarch?
@diego-rbb-93 Gracias, pero da igual la versión incluso si utilizo la versión digamos normal, a mí no me va y ya está xD, no sé el por qué. Ademas creo que el tema tanta de otra cosa, solo lo he dicho como apunte.

Saludos.
Es que los otros tienen sus ventajas.
Zsnes es la ostia para ripear gráficos,
con f1 puedes hacer capturas y pasar frame a frame. El buscador de trucos es muy cómodo.

Snes9x tira prácticamente lo que le arrastres
usando poca cpu, las traducciones te aseguras que como las revisan en snes9x no habrá
ventanas sin texto. (Byuu dice que no arreglan todas)
hay ports como el de Wii (Snes 9x gx) que es soporta resolución nativa. Es el punto medio y todo terreno.

PD: No sé vosotros, pero a mí lo que me gusta
del retro entre otras cosas es que use pocos recursos del pc,
que está como idle. No con temperaturas altas
y ventiladores a tope.
Tengo entendido que el Snes9x también se ha ido mejorando con aportes de Byuu.
Yo ya os digo que en las últimas versiones Byuu no ha dejado de luchar para que Bsnes fuera un emulador que dejara atrás y cubriera absolutamente todos los huecos que no era capaz de rellenar en comparación a Snes9x y Znes, otra cosa es que por cuestión de interfaces o de rendimiento inmediato por su baja exigencia, aún sea más cómodo para el usuario seguir empleándolos.

Ahora bien, habéis probado a ver si algún parámetro es variable para mejorar el rendimiento?

https://byuu.itch.io/bsnes

La última versión en Windows es esta por cierto.
@diego-rbb-93 Lo acabo de probar y nada, siempre me sucede lo mismo, va fluido y mal; De todas maneras creo que es como funciona el emulador que no es compatible con mi configuración de hardware que tengo.

Saludos.
Mil escribió:
Ronbin escribió:Después de esto comenta algo que personalmente me ha sorprendido. La PPU* de snes es una "caja negra" para la CPU. O sea, sabemos lo que entra y lo que sale pero no lo que pasa dentro. A diferencia del DSP** o la CPU, no hay buffers ni memorias en los que mirar qué está pasando, la única información que tenemos es la que sale desde la toma de vídeo de la consola. Por tanto no hay ningún emulador ni FPGA que reproduzca la snes al 100%, porque nadie sabe cómo funciona este componente.


Es tan sencillo como decapar y analizar el circuito. No hay magia dentro de el encapsulado, solo componentes electrónicos que se sabe perfectamente cómo funcionan.

Así que solo es cuestión de tiempo y esfuerzo sacar una implementación fpga 100% exacta y una emulación al mismo nivel con la potencia adecuada para moverla.

Y otra cuestión es si merece la pena hacer ese esfuerzo, cuando ya tenemos una exactitud del 99,99% en fpga y un 99.5% en emulación.



https://byuu.org/articles/edge-of-emulation

Leete la parte de Decapping y entenderás el problema.
De todas formas, aun buscando Byuu la perfección no deja de tener los pies en el suelo, y considera que en la práctica las diferencias se tienen que notar para llegar a considerarse problemas.

Este ejemplo es suyo:

If my goal is to get from Ohio to Illinois, I am not concerned if my vehicle runs on gas, diesel, or electric. It's certainly a detail that matters to the people designing vehicles, of course! But to those looking to travel, they're just different types of vehicles. They aren't fundamentally different things.


Es decir, la máquina puede trabajar de una forma (o ni siquiera toda la máquina, sino algún chip aislado), pero si se llega al mismo resultado mediante emulación y fpga.. ¿qué más da?

Supongo que hay gente que se preocupará por algún detalle menor que se les pueda escapar, y que convierta la experiencia en algo distinto al sistema original, sin ellos darse cuenta. Pero incluso para eso podemos obtener información, sobre el input lag, frame rate, etc.. y saber con nuestro propio criterio si nos importan o influyen esas posibles diferencias ingame (en el caso de haberlas).

Si haces caso a detalles que en el fondo no te importan o no notas, solo por querer ser purista, al final se puede convertir todo en chiste. Por ejemplo, se puede partir de la idea de querer ser lo más fiel posible con el sistema original, y en cambio llegar al punto de defender un sistema emulador o implementador determinado bajo el argumento de "Es que incluso mejora a la consola original, porque sus chips originales eran defectuosos, y ahora (en el sistema moderno) funcionan como dios manda". Un total sinsentido; pero muy revelador, porque nos indica que o bien no te puedes fiar de la máquina original (por lo puedes entender que no vale la pena recrearla tan fielmente), o bien no te puedes fiar de las promesas de fidelidad en sistemas modernos, si al final van a acabar "mejorándolos". Más que nada, porque programadores de Squaresoft, Konami, Banpresto, Sega y demás pueden haber tenido muy en cuenta esos chips "defectuosos" al programar específicamente para ellos, por lo que no se pueden "mejorar" sin la posibilidad o riesgo de alterar significativamente el resultado al que se quiso lllegar en algún juego (algún sonido determinado, música, efecto visual, etc..).

A partir de ahí, el que no se espabile y diga "No haré caso ciego a otros; escucharé, pero guiándome por mis sensaciones y criterio" estará a merced de todo lo que le quieran decir que necesita para jugar.
Antes bsnes era vamos, un sin sentido.
Recuerdo estar en su foro y preguntarle
por qué iba quitando funciones en cada versión.
(El hablaba bien pero era un nido de trolls,
que la tomaron conmigo y supongo que con cualquiera)

Iba a quitar dinput y no irian muchos mandos.
Quitó cargar roms en zip, de hecho queria
que cargase carpetas con partes de la rom sueltas.
Con cada versión habia menos opciones,
le molestaban al ir actualizando.
Hasta que se puso bsnes classic reuniendo todo,
porque por ese camino bsnes solo
sería un emulador experimental por línea de comandos. No sé en que punto se dio cuenta
de que iba dejando el Gui vacío y no lo usaría nadie.
gadesx escribió:Antes bsnes era vamos, un sin sentido.
Recuerdo estar en su foro y preguntarle
por qué iba quitando funciones en cada versión.
(El hablaba bien pero era un nido de trolls,
que la tomaron conmigo y supongo que con cualquiera)

Iba a quitar dinput y no irian muchos mandos.
Quitó cargar roms en zip, de hecho queria
que cargase carpetas con partes de la rom sueltas.
Con cada versión habia menos opciones,
le molestaban al ir actualizando.
Hasta que se puso bsnes classic reuniendo todo,
porque por ese camino bsnes solo
sería un emulador experimental por línea de comandos. No sé en que punto se dio cuenta
de que iba dejando el Gui vacío y no lo usaría nadie.




En su pagina lo dijo o no se si fue por un tweet que vi, que el queria llegar a cierto estado con su emulador principal "higan", porque si hacia un fork antes de llegar al punto que llego con el ya mencionado, se le haria dificil trabajar.

El emulador principal llego a un estado que le permitio crear el fork y que utilizando un nuevo diseño del ppu, el cual hizo de cero, esto encajo muy bien con el fork que se conoce como bsnes actualmente. Aqui, entonces, añadio todo eso que la gente queria.

El tema de las carpetas, fue algo que nunca me molesto, lo veia mucho mas limpio el asunto.
Con Retroarch pasa lo mismo, tengo una configuracion, que me genera carpetas de los emuladores que cargue, y que esten guarden ahi mismo los saveram y savestates.

Pero vamos, al final, cada quien hace lo que quiere hacer con sus archivos.
35 respuestas