Un poco de ensamblador...

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Un poco de ensamblador...

Mensajepor na_th_an » Lun, 09 Mar 2015, 08:42

:picha: :picha:
Mi kung fu no será el mejor, pero al menos es efectivo XD
Como diría Rorshach: "Urm..."
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re:

Mensajepor elborra » Mar, 10 Mar 2015, 19:29

$this->bbcode_second_pass_quote('na_th_an', 'S')i de verdad quieres ganar un montón de velocidad y espacio (sobre todo, espacio) y tienes tiempo y un buen editor de texto, hay dos cosas que puedes hacer :

1. Eliminar todas las variables locales y sustituirlas por globales. Hay muchas que se pueden reaprovechar. El acceso a una global es más rápido y ocupa menos instrucciones.

2. Cargarte todas las estructuras que puedas, por ejemplo player, y cambiarlo por globales normales. Esto lo puedes conseguir sustituyendo player.x por player_x y todas las demás. Hay algunas que no podrás eliminar, como las que escribe el conversor de mapas o el colocador, pero sólo con cambiar player y en_an, y bullets si lo utilizas, ganarás un montón.
Y si te sientes generoso podemos sacar eso como nueva versión de la churrera :-P


He hecho los cambios en la churrera-mod con el notepad++ de las estructuras de player (INERCIA) y de en_an [ANIMADO], los cambios los he hecho en un plis y podría hacerlo para bullets pero como no utilizo disparos no he querido tocar más. Como no tardo nada a base de expresiones regulares, si quieres, puedo hacer las modificaciones a la churrera actual (que no se muy bien cual es el enlace de la última XD) y pasartelo con esos cambios ^_^

La verdad es que yo no he percibido cambio al respecto. Los tirones de sonido entre pantallas los pude solventar más o menos con los cambios que comenté en el hilo y gracias al código ensamblador que me diste para que rularan bien. Ahí si que note algo de diferencia como digo, pero con estos últimos....muy dificil saber si hay mejora y cuantificarla si no es mirando el número de ciclos. En cualquier caso los cambios los dejo en el código porque algo harán :D ...

Thanxs again por la ayuda, y lo dicho si quieres que haga los cambios de esas tres estructuras (y las que me digas) sólo pasame el link de la churrera oficial a modificar :corchoneta:

edito: Por cierto entiendo que estructuras como ANIMADO que luego la variable en_an es un array de la estructura tengo que convertirlo a una variable que sea un array del tipo de la variable. Un ejemplo siempre mejor:
$this->bbcode_second_pass_code('', '
typedef struct {
unsigned char base_frame;
unsigned char frame;
.......
} ANIMADO
ANIMADO en_an [3];
')
pasaría a
$this->bbcode_second_pass_code('', '
char en_an_base_frame[3];
char en_an_frame[3]
')