MiSTer FPGA: Plataforma que implementa Consolas clásicas, microordenadores y arcades

GXY escribió:la pregunta con cores de estas maquinas es si es realmente una reimplementacion del hardware o si es "sintetico" (como lo es el AO486 por ejemplo)


Para darte una respuesta, primero deben aclararse varias cosas:

-Todo esto no es magia: una implementación en FPGA es lógica digital. Si consigues el mismo comportamiento a nivel de lógica digital que los componentes separados y en conjunto de la máquina que intentas reimplementar, pues es una implementación precisa y NO IMPORTA si has extraído la información de esa lógica digital decapado chips y sacando fotos con microscopio electrónico, con un analizador lógico o de un emulador que hizo alguien con la documentación correcta. Repito: NO ES MAGIA. Recomiendo hacer unos ejercicios básicos de lógica digital para entenderlo.

-Una FPGA no tiene por qué tener los mismos recursos que la máquina original (contadores, osciladores, etc), la misma lógica digital puede ser implementada de manera impecablemente correcta usando distintos recursos hoy en día.
Para entender esto, nos podemos fijar en el core de MegaDrive, que es exacto a la máquina original en la manera en que se usan los recursos... PERO como resultado ocupa demasiados recursos en la FPGA y es un dolor de huevos meterle mano.

Pues con los cores estos nuevos, lo mismo.
Es preferible, con mucho, tener una implementación correcta que NO se base en decapados de chips o netlists, pero que sea correcta, y que esté adaptada a lo que la FPGA ofrece.
Y ese camino van siguiendo estos nuevos cores.
@MrNutz siendo cierto todo lo que comentas... "si y no".

cuando hablamos de "precision 100% de la implementacion" (y aqui hay gente que se fija en detalles super precisos de la ejecucion de los juegos... y no, no estoy hablando solamente de monos que no agarran lianas...) todo lo que no sea una implementacion precisa del hardware, es susceptible de luego "ser acusado" de falta de precisión.

si aqui hasta se han hecho observaciones de unas versiones de la placa de playstation a otras. [looco]

a este respecto, a mi no me mires. yo me adapto con niveles de precisión abismales segun a quien preguntes. y soy 0 purista. puedo jugar a NES, a Atari 2600, a Spectrum... con el mismo mando moderno, en una pantalla 2K conectada por HDMI y con filtros de suavizado puestos, y no me hago un harakiri con el palo del joystick de atari XD pero ya te digo que aqui hay puristas muy exquisitos, que si el core es "sintetico", lo van a notar. y lo van a criticar.

que pasa tambien... que otra cosa es que aunque lo notaran les importe un huevo. con PSX, Saturn, N64 o con las consolas clasicas "de bandera" si hay muchos ojos inquisitivos mirando cada pixel, cada tono de color, cada vertice y cada frame.

con CDi o con 3DO... pues no. [angelito]
@GXY, mira tio, esto te puede interesar mucho por lo que has preguntado antes.
Lo acaba de escribir srg320, el creador de cores como SNES, Saturn... y ahora 3DO:
Now for the bad news. The FPGA’s internal memory is only enough to emulate 0.38 MB out of 1 MB of VRAM. By default, this section is allocated at the beginning of VRAM, because in most games the framebuffers are located at the beginning (0x200000/0x225800). The framebuffer is the part of VRAM that is most sensitive to timing. When the framebuffer falls into the portion located in DDR, you see graphical glitches in the form of flickering lines and pixels.
I’ve temporarily added an “FB offset” menu that changes the position of these 0.38 MB relative to the entire VRAM. You need to change this option before launching the game or reset the game after changing the option. I’ve included a list of games with non-standard framebuffer locations in the README (currently for US games only).

Eventually, I'll have to figure out a way to change this value when the game loads. Unfortunately, 3DO game images don't have a header with a name or ID. So far, I see a checksum as the only way to identify images.


Aquí se ha dado de bruces con los límites internos de la FPGA. Una hostia guapa. Y tendrá que buscar soluciones en plan "hack" para algunos juegos.
En el de N64 pasa algo similar.
Pero no es lo normal en los cores: lo normal es que la implementación sea no sólo funcionalmente correcta (como acabará siendo en 3DO) sino internamente fiel usando los recursos propios de la FPGA, que como digo no tienen que coincidir con lo que tuviese el ASIC original.

Como dijo el sabio: "Ehhh... ehh trambóooliko, hay que sabéh subíh y bahá".
como ya digo todo eso a mi me parece estupendo (y de nuevo, una limitacion de especificaciones de la arquitectura* el desarrollador tiene que inventarse un metodo creativo para resolverla), pero todo eso da pie a observaciones de que la fidelidad de la ejecucion no es 100%

* en este caso el colega habla de "la memoria interna de la FPGA" ¿BRAM? que es una cifra exigua (380KB), pero es que no es una porcion de memoria pensada para colocar un framebuffer pero ni de lejos.... pero claro, a ver quien es el guapo que en altera o en alguna otra de estas empresas diseñadoras piensa "eh, a lo mejor alguien pretende utilizar nuestra FPGA para implementar un framebuffer y no le sirve ninguna memoria externa a la que nos conectemos por un bus de datos... asi que vamos a meter 2 megas internos ahi". ese razonamiento ya te digo yo que en la industria no lo ha tenido nadie xDDD

y como tambien ya dije, no se "vigila" igual una plataforma como N64, Playstation o SNES, que otra como 3DO.

a lo que voy es que todo lo que no sea implementacion hardware 100% precisa, va a ser acusado eventualmente de que la ejecucion de los juegos no sea 100% precisa. y aunque lo sea >99%, criticaran los aspectos determinados que encuentren.

ademas es que no me estoy inventando nada. lo que estoy diciendo ya lo he visto en este hilo. y no solo con plataformas bastante avanzadas como N64, Saturn o Playstation, sino con plataformas mucho mas antiguas donde la fidelidad de la emulacion empleando cualquier cafetera, esta mas que superado desde hace años y decadas.

hay gente que es muy picajosa en terminos de fidelidad. cualquier cosita fuera de sitio les chirria, y centran el foco en ella, haciendo menos satisfactoria la experiencia de simplemente disfrutar el resultado.
@GXY pero esto no es culpa de 'la comunidad' sino del propio marketing de las FPGA. Llevamos años leyendo y oyendo que FPGA es muy superior a emulación por software debido precisamente a la fidelidad. Sí no hay fidelidad entonces FPGA no es mejor a emular en tu Anbernic de AliExpress. No se pueden crear expectativas que no se van a cumplir o pasa ésto.

Yo no tengo conocimientos técnicos para saber cómo se hace, pero hace tiempo leí que lo importante en FPGA no es que copie exactamente lo mismo que el hw original sino que haga lo mismo que se exige aunque use otro método para ello, y así producir el resultado final deseado. Vamos que si un juego le pide al hw súmame 5 y el hw original hace 9-4 y el tuyo hace 5*1 no es comportamiento exacto al original a nivel lógico pero sí produce el mismo resultado y en pantalla lo que vas a ver, que es ése resultado, te resulta idéntico al original.

Un saludo!
Falkiño escribió:@GXY pero esto no es culpa de 'la comunidad' sino del propio marketing de las FPGA. Llevamos años leyendo y oyendo que FPGA es muy superior a emulación por software debido precisamente a la fidelidad. Sí no hay fidelidad entonces FPGA no es mejor a emular en tu Anbernic de AliExpress. No se pueden crear expectativas que no se van a cumplir o pasa ésto.


en otras palabras: que el problema real no es la tecnologia sino las peliculas de fidelidad absoluta que se monta el personal. [angelito]

y respecto a que sea marketing de las FPGA... me enseñas algun ejemplo practico por parte de altera (de quienes han diseñado y producido el Cyclone V) de ese marketing orientado a la fidelidad en retro videojuegos ¿? o mas bien ese marketing es de fabricantes y ensambladores de placas y "consolas" basadas en esas placas ¿? (y ojo, digo fabricantes y ensambladores, sin incluir a intel que tampoco creo que haya hecho ningun marketing al respecto.

hay que distinguir "quien hace ese marketing" y sobre todo "para qué lo hacen". ¿estamos hablando de analogue, por ejemplo ¿?

y de hecho incluso yo apuntaria no tanto a montadores/vendedores como analogue sino a los power users y reviewers que son los que detectan y debaten estas cuestiones. [toctoc] [angelito]
7405 respuestas
1145, 146, 147, 148, 149