PDA

Ver la versión completa : ¿Qué tal funciona esto?



Segata Sanshiro
12/08/2009, 16:23
He estado haciendo un par de pruebas en Bennu y agradecería que alguien las probara (no tengo Wiz). No sé si estará bien hecho el ini y el gpe y todo eso, así que igual no se ejecuta bien...

En teoría, si funciona, habría que hacer lo siguiente:
0- Descomprimir y copiar bgd-prueba a la tarjeta. Luego descomprimir grfxmp.prg.rar en la carpeta bgd-fxp, sobreescribiendo el .prg que ya había.
1- Ejecutar uno de los programas y dejarlo correr durante un par de minutos más o menos. Deberían salir varias figuras moviéndose y sonar música.
2- Pulsar A para pararlo.
3- Anotar el número que sale y pulsar Menu o Select o como se llame, para salir al menú.
4- Ejecutar el otro, hacer lo mismo y comparar los números para ver cuál es más rápido.

Así que si tenéis un ratillo para probarlo y posteáis los resultados os lo agradeceré eternamente [wei]

juanjiviris
12/08/2009, 16:34
Todo lo que sea para ayudar a esta comunidad que nos da tanto a todos :)

Los dos los he dejado algo más de 2 minutos cada uno.

El Fixed: 96
El Floating: 127

Gráficamente se notaba ya desde el primer segundo que el Floating iba mucho más rápido.

Jonazan2
12/08/2009, 16:35
Por las pruebas rapidas que he hecho te respondo:

1) Si los programas salen como una navecilla dentro de un triangulo disparando estrellas mientras salen por detras tablas.

2) El proceso para parar el programa va bien en los dos ejecutables.

3) En el primero que no esta flotando 107 de media, y en el segundo unos 135-140.

4) El segundo es más rapido, el que la nave flota por asi decirlo.

Espero haberte ayudado. :brindis:

Segata Sanshiro
12/08/2009, 16:37
Genial, gracias a ambos por probarlo tan rápido :) Van relativamente bien, sobre todo el segundo. Voy a ver si puedo hacer que el primero vaya un poco más rápido.

De todas formas la nave se mueve en los dos, ¿no?

juanjiviris
12/08/2009, 17:08
Si, en el mio se movía en los dos.

Pero... Jonazan, esos números los has dicho tú a ojo por lo que veo, porque a mi también me aparecían en la esquina superior izquierda, pero lo que Segata pedía es el número que aparece DESPUÉS de darle al botón A, no los números que estás viendo a ratos en la esquina, porque esos varían mucho depende de lo que haya en la pantalla.

En el mío también he visto hasta 109 en el primero y hasta 142 o así en el segundo, pero lo que da de media es lo que pone al pulsar A.

Segata Sanshiro
12/08/2009, 17:12
Si, en el mio se movía en los dos.

Pero... Jonazan, esos números los has dicho tú a ojo por lo que veo, porque a mi también me aparecían en la esquina superior izquierda, pero lo que Segata pedía es el número que aparece DESPUÉS de darle al botón A, no los números que estás viendo a ratos en la esquina, porque esos varían mucho depende de lo que haya en la pantalla.

En el mío también he visto hasta 109 en el primero y hasta 142 o así en el segundo, pero lo que da de media es lo que pone al pulsar A.

Gracias, efectivamente lo que más importa es la media, que aparece al final.

Si alguien más lo va a probar, he puesto otro archivo para sustituir uno de los .prg, debería ser un pelín más rápido.

amzg
12/08/2009, 19:17
Ahi van mis resultados:

El Fixed (usando el nuevo archivo que has puesto): 116
El Floating: 142

:brindis:

Lo he vuelto aponer:

El Fixed (usando el nuevo archivo que has puesto): 130
El Floating: 138

Segata Sanshiro
12/08/2009, 19:55
Gracias, no sé por qué coj0nes varía tanto :D pero está claro qué versión es la más rápida... Una pena, al final lo que había hecho no sirve casi para nada.

SplinterGU
13/08/2009, 03:38
ummm... no he visto el codigo, pero que raro que con floats vaya mas rapido...

deberia ser lo contrario... quizas por el tema de la alineacion de los datos...


-----

ya veo porque es mas lento, usas funciones propias escritas en bennu para transformar de entros a flotantes, funciones de seno y coseno... eso no es recomendable...

Segata Sanshiro
13/08/2009, 10:27
ya veo porque es mas lento, usas funciones propias escritas en bennu para transformar de entros a flotantes, funciones de seno y coseno... eso no es recomendable...

Realmente esas funciones luego no las uso en el programa, especialmente en la segunda versión que subí.

Lo que más uso es la multiplicación en coma fija en lugar de coma flotante, lo cual sustituye:


a *= b; // Donde a y b son floats

por:


a *= b;
a >> PRECISION;


En este último caso a y b son enteros, que contienen números en coma fija. El código de arriba y el de abajo dan aproximadamente el mismo resultado, solo que uno opera con floats y otro con ints.

Para convertir de fixed a int tenía una función más elaborada, pero en la segunda versión la sustituí simplemente por a >> PRECISION.

Así que solo son multiplicaciones y desplazamientos con enteros, pero sigue siendo más lento que con floats.

Lo único que podría mejorar son las funciones de seno y coseno, que lo único que hacen es mirar el valor en una tabla. Y quitar las llamadas a las funciones, metiendo el código en cada proceso.

En fin, por entretenimiento veré si sirve de algo. Gracias por mirar el código :brindis:

SplinterGU
14/08/2009, 04:09
"a >>= PRECISION" deberia ser, si lo que queres es rotar "a", te falto el "="

Yo vi que usabas funciones FIXtoINT o algo asi...

< - >
quizas era una version anterior...

Segata Sanshiro
14/08/2009, 10:26
"a >>= PRECISION" deberia ser, si lo que queres es rotar "a", te falto el "="

Yo vi que usabas funciones FIXtoINT o algo asi...

< - >
quizas era una version anterior...

Cierto, me equivoqué :D Quería decir lo que tú has puesto. Lo de fixedToInt lo usé en la primera versión, luego lo sustituí por un desplazamiento. Seguiré experimentando :)

SplinterGU
14/08/2009, 13:35
todo ese esquema no me parece bien... porque no usar directamente INT y las mismas funciones de coseno y seno que ofrece bennu?
bueno, quizas lo hagas, estoy cortisimo de tiempo, luego lo reviso bien, aca este fin de semana es largo, y tendre tiempo para verlo... (creo, porque ya vengo acumulando muchas cosas para hacer... :D )