PDA

Ver la versión completa : Sobre las capacidades 3D, 2D y emulación



Niku
12/10/2005, 22:46
Hola, para empezar un saludo a todos los geperos :) . Todavía no tengo ninguna GP, pero me haré con una GP2x si nadie lo remedia.

He estado pensando sobre qué cosas en 3D se podrían hacer con la consola. Me baso sobre todo en lo que se podría hacer con un PC de las mismas características.

Hace mucho mucho tiempo, los ordenadores no tenían aceleradoras 3D, por lo que todo el trabajo se tenía que hacer por software y el cálculo iba al procesador principal. Todo cambió con la llegada de las tarjetas aceleradoras 3D, que movían más polígonos por segundo, con más resolución y efectos como suavizado de texturas. Por aquella época yo tenia un Pentium 90 con 16 Mb de RAM y sin aceleradora, así que la mayoría de los juegos 3D los tuve que jugar a 320x200 porque a resoluciones mayores bajaba mucho el rendimiento. La resolución de la GP2x es un poquito mejor, así que supongo que debería dar más o menos el mismo rendimiento que un Pentium 200.

El caso es que si con un P90 se podían hacer muchas cosas, con un P200 a uno se le caía la baba. Con mi P90 he jugado perfectamente a muchos buenos juegos en 3D, como por ejemplo el Quake, Tomb Raider 1 y 2 (http://www.gamespot.com/pc/action/tombraider2/screenindex.html) , Screamer 1 y 2 (http://www.3dgamers.com/games/screamer2/screenshots/) , Grand Prix 2, Toshinden, Virtua Fighter, Need for Speed 1 y 2, Wipeout, Alone in the Dark... y MUCHOS más.

De todo esto, deduzco que en GP2x se podrían ver cosas similares o incluso mejores, porque no he tenido en cuenta el segundo procesador. Todo esto, claro, hablando de programas nativos para la GP2x, no emulados. Un P200 tenía mas o menos las misma capacidad que la PSX para mover juegos en 3D, quizá un poquito menos, por lo que un emulador de PSX iría bastante más lento, y eso me hace pensar que será muy difícil ver la PSX correctamente emulada en GP2x. Todo esto es teoría, claro, con la maravilla de programadores que hay por ahí nunca se sabe... Quizá pueda emular los juegos en 2D aceptablemente, lo cual ya es bastante con joyas como Castlevania, Alundra o Saga Frontier 2.

En 2D ya es otra historia, con 200 Mhz y 64 Mb de RAM tiene potencia suficiente para mover casi cualquier cosa, así que en ese aspecto los desarolladores tendrían bastante libertad para crear lo que quieran. Otra cosa es emular, que como siempre depende del hardware que se pretenda emular... en un P200 los emuladores de SNES, NEO-GEO y CPS2 funcionaban perfectamente, por lo que la GP2x también debería ser capaz de hacerlo. En NEO-GEO quizá se vea un poco limitado por la memoria, aunque los 64 de NAND Flash podrían ayudar bastante.

Respecto a emular GBA, lo veo más difícil, ya que en el AMD700 que tuve no iba demasiado fino. Por contra, tenemos la ventaja del procesador doble y de que se puede programar un emulador optimizándolo para un procesador concreto, que se ejecutará más rápido que un emulador creado para algo tan genérico como es un PC.

Desconozco la diferencia real de rendimiento que pueda haber entre la CPU de la GP2x y la de un PC de la misma velocidad, así que si alguien quiere puntualizar o añadir algo, se lo agradecería. :brindis:

Un saludo

Iced
12/10/2005, 23:10
Pues chico, no tengo ni idea de informatica, pero espero que algun juego de los que nombras salga alguna vez :babea:

esp3tek
12/10/2005, 23:19
sinceramente creo que el hecho de hacer un emulador para una consola, le da mucho mas provecho que un emulador generico cualquiera, ya que este se puede ir ajustando a las caracteristicas del procesador y de la memoria, lo cual se puede hacer a bajo nivel para aprovecharlas aun mas. yo veo emu de GBA pa gp2x

neostalker
12/10/2005, 23:23
Hombre, yo no entiendo demasiado de las diferencias entre un procesador de PC y el de la GP2X, pero hay q tener en cuenta que todos esos juegos de PC que funcionaban tan bien en procesadores muy modestos estaban creados específicamente para PC, es decir, no hay q hacer "virguerías" con el código para decirle al procesador cómo hacer tal cosa. En cambio, al portar un juego a la consola, todo ese código hay que adapatarlo, en ocasiones con rutinas mucho más complejas, por eso no rinden tan bien como deberían en un procesador de PC. Ejemplo, el port del Quake 1 requiere el uso de operaciones en coma flotante (q, personalmente, me suena a chino) y la GP32 no es capaz de realizarlas de manera nativa, por eso, aunq el Quake 1 en un PC de 166 Mhz va "mangao" y en la GP32 a esa velocidad "petardea" (aunq es totalmente jugable y un magnífico trabajo por parte del q lo ha adapatado)

No sé si me equivoco mucho o no, pero creo q no voy del todo desencaminado :)

esp3tek
12/10/2005, 23:26
ostia, eso se hablo en un hilo de gp2x, que no soportaria coma flotante :loco:

WinterN
13/10/2005, 00:03
La verdad es que la comparación GP2X vs PC a la misma frecuencia es bastante desafortunada.

Lo primero es lo que han dicho de la unidad de coma flotante. Esta unidad es imprescindible para las operaciones 3D, y al no tener la gp una unidad dedicada a ello, ete tipo de operaciones llevan más tiempo realizarlas.

También hay que tener en cuenta que el SO que lleva la GP es mucho más ligero que un Win95 o Win98 (que era lo que se estilaba en esas máquinas). Por lo que aquí la GP gana puntos. También estará la RAM mejor aprovechada, por lo tanto.

Y un tercer punto es que el juego de instrucciones es distinto en ambas máquinas, siendo los x86 máquinas CISC, mientras que los ARM son RISC, lo que hace que comparar en termino de potencia por Mhz no tenga demasiado sentido. Un RISC necesita más instrucciones para hacer lo mismo, aunque las hace de forma más ligera (o era al reves).

La GP tambien tiene otras mejoras como la aceleradora 2D, o la descompresora de video... además del segundo micro.

Niku
13/10/2005, 06:08
Con lo de las capacidades 3D me refería a juegos creados especificamente para la consola, no portados de PC o emulados. Lo de la unidad de coma flotante no lo sabía, pero si ya hay imagenes del Quake funcionando en una GP, es que es posible manejar gráficos 3D con cierta soltura. Me resultaría raro que con 2 procesadores a 200 no sea capaz de hacer lo que un PC a 100, y como ya he dicho la mayoria de los juegos que nombro los jugué en un P90 sin problemas. Esto complica que veamos un emulador de PSX, puesto que si no puede mover tantos polígonos en un juego creado específicamente para ella, muchisimo menos emulado.

Supongo que con el tiempo iremos viendo lo que puede hacer el cacharrín este y ojalá nos sorprenda. Aunque personalmente, con las características 2D me valen. Tengo una N-Gage y ninguno de los juegos 3D que tiene me gusta, mientras que con juegos tipo puzzle o de plataformas me he pasado las horas muertas.

Electric Dreams
13/10/2005, 06:17
Bueno, lo primero es decir que una unidad de coma flotante no es imprescindible para realizar operaciones 3D. El termino seria recomendable. Es posible usar aritmética de punto fijo con unas perdidas de precisión aceptables para el 3D.

Será posible realizar aplicaciones específicas para la GP2X en 3D teniendo en cuentas sus limitaciones. Pero como bien ha dicho WinterN, comparar ARM y x86 es un poco desafortunado, ya que los pentium tenian una unidad de coma flotante bastante eficiente, incluso para su época.

xabi
13/10/2005, 06:17
Yo en un pentium 100 con 40mb de ram, y una grafica 2d de 1 mb jugaba al fifa98 "perfectamente", y la grafica no estaba soportada por directx(ni la de sonido), antes de empezar el partido tartamudeaban los comentaristas, y tenia que ejecutarlo despues de cerrar todos los procesos menos explorer, cuando le puse una grafica de 4 mb iba de vicio :)

Con esto quiero decir que se podran conseguir graficos decentes en la gp2x, aunque dudo que sea en emuladores, al de neo-geo jugaba bien con este maquinon, el bleem de psx me iba a tirones, pero me hacia ilusion, despues me compre la psx :)

WinterN
13/10/2005, 06:24
El problema de portar esos juegos que dices es que no se dispone del código fuente de los mismos (que yo sepa), a excepción del Quake; y sin código fuente no hay port que vanga. Como mucho se podría hacer un programa que utilizase los archivos del juego recreándolo al estilo de ScummVM, pero eso supondría hacer prácticamente el juego desde cero.

Respecto al 3D, yo soy bastante optimista, y creo que podremos llegar a jugar al Quake 2 (sin opciones de aceleración) de una forma bastante fluída.

AOJ
13/10/2005, 06:34
Ufff que recuerdos!

Con mi 486DX4 @ 100Mhz habia jugado a juegos geniales!

- Virtua Fighter, al mínimo de gráficos ... ***** ese juego me ocupaba un 10% del HD!

- Tomb Raider, desde MS-DOS puro y sin sonido ... podia jugar en SVGA!

- FIFA 97 (a lo mejor el 98), siempre jugaba en la pista de futbol sala. Entonces hacia expulsar a casi todos los jugadores, y el juego iba fluido :D

- Laaaargo etc :)


Tranquilo hombre, creo que con la GP2x vamos a disfrutar de auténticas virguerias. Mira lo que se ha hecho con la GP32 (ejemplo más actual, el WipeOut), así que algo mejor vamos a ver para su hermana mayor [wei2]

darkcrono
13/10/2005, 06:50
esta demostrado que se puede hacer 3D sin chip dedicado y lo estamos viendoe en el proyecto WIPOUT, o eso creo, lo de emular plataformas con cierto grado de 3d... molaria pero tiempo al tiempo ke imposible no es, pero puede que no salga, supongo ke habra que ser alguna especie de gurú semidios del ensamblador...

BuD
13/10/2005, 07:01
Lo ideal seria hacer un engine 3D unico y depuradisimo en ensamblador, y asignarle una API (como la de OpenGL-ES [wei] ) para poder usarse en C. A partir de que se hiciera esto, te digo yo que verias juegos en 3D para la GP2X a patadas.
Ademas, los ports de juegos libres ya hechos en 3D se dispararian.

neostalker
13/10/2005, 19:42
lo estamos viendoe en el proyecto WIPOUT
Y en el Darq de Halb, no te olvides :brindis:

Wonder Boy
13/10/2005, 19:52
esta demostrado que se puede hacer 3D sin chip dedicado...Desde luego, ¿quién lo dudaba :-?

Wonder Boy
13/10/2005, 19:54
Lo ideal seria hacer un engine 3D unico y depuradisimo en ensamblador, y asignarle una API (como la de OpenGL-ES [wei] ) para poder usarse en C. A partir de que se hiciera esto, te digo yo que verias juegos en 3D para la GP2X a patadas.
Ademas, los ports de juegos libres ya hechos en 3D se dispararian.Hombre, sajodío X-D :-)

Un Saludo.

Damizean
19/10/2005, 22:13
Mirad por ejemplo el Wipeout de Archer. La parte mas critica es a la hora de dibujar (y en especialmente optimizar porque la pantalla esta fisicamente rotada. Cuando hice la rutina para las texturas que usa, no tiene mucha optimizacion para la rutina de texturas por culpa de eso) y va a 15 fps a 66 mhz, sin tecnicas avanzadas del estilo de frustum culling, ni octrees ni PVS y tal.

Ahora imaginaros con la GP2X, pantalla que no esta fisicamente rotada (osea, a la hora de acceder al pantalla será mas facil y rapido), un procesador entero dedicado al dibujo y el otro al calculo lógico, seguro que saca mas de 100 o 110 fps, y eso que a 30 fps ya se ve muy suave al ojo humano :)

Yo personalmente estoy trabajando en un motor sencillo (que espero lanzar bajo licencia GPL) que aunque inicialmente será para GP32 (y seria una API simple, pero no a tan bajo nivel como OpenGL), tengo esperanzas de portarlo a GP2X tambien :)

Yataran
20/10/2005, 00:41
Hombre, yo no entiendo demasiado de las diferencias entre un procesador de PC y el de la GP2X, pero hay q tener en cuenta que todos esos juegos de PC que funcionaban tan bien en procesadores muy modestos estaban creados específicamente para PC
Bueno, hombre, procesadores modestos según como se mire... Si se compara con uno actual, pues si. Ponemos un Doom 3 en un P90 y ya podemos ver como se bloquea nada más hacer el intento de ejcutarlo :D Pero al salir eran la p0lla... Aún recuerdo un artículo de la primer revista de ordenadores que compré y hablaban de un server de una marca tal y cual que llevaba lo último de lo último: ¡Un Pentium a 60! El primer PC que tuve mio-mio era un 486DX4-100, que yo aún considero un procesador poderoso, siempre considerando que se quiere hacer con él. E intenté jugar el Quake y no veas como petardeaba... Iba bien fluido si reducía la pantalla al mínimo :D Y veía todos los juegos que iban saliendo y que pedían un Pentium a 60 o 75... En el 486 se ejcutaban la mayoría, pero a velocidades de pena. Eso si, el Duke 3D o el DOOM 2 iban de perlas ;) Lo mismo pasará con los G5, Cell, AMD64 y cualquier otro. Pero eso no quita que un P90 fuera una bestialidad al salir.