• Domingo 28 de Abril de 2024, 23:40

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - ZarkGhost<br>

Páginas: [1]
1
ASM (Ensamblador) / Re: Pintar Pixel En Vga Sin Tirar De La Bios
« en: Miércoles 28 de Noviembre de 2007, 22:19 »
Gracias por la rapidez, llevo ya un tiempo mirandolo y sigo sin ver como.

No parpadea exactamente, sino que se ve como se pinta linea a linea la matriz asi que en este caso, aunque tambien se solucionaria como dices, es problema de la lentitud de pintar cada pixel. Y ya que lo hago en ensamblador, que mas de que vaya rapido para hacerlo funcionar decentemente en equipos prehistoricos.

Uso el modo de video 12h, que a mi entender(llevo poquito en esto) difiere del 13h. A no ser que por paleta entienda otra cosa.

A lo bruto, entiendo que para situarme en la posicion de memoria con la info del pixel, tengo que hacer Desplazamiento + posicionX + posicionY*ancho_max.

Y ya he visto,  que para hacer la multiplicacion, puedo descomponerlo haciendo
 ((Y*256) + (Y*64)*2)  

Pero ahi no se que debo colocar, el color, o la direccion a la posicion de un array"paleta?" con el color.



Bien, acabo de darme cuenta de un problemilla con el que aun no habia caido, 640x480 se sale de 16 bits.... creo que esto y la paleta es lo que me causa el problema.... si alguien sabe la solucion, que me diga.... sino, pos intentare optimizar algo mas como pueda.


Gracias nuevamente.

2
ASM (Ensamblador) / Pintar Pixel En Vga Sin Tirar De La Bios
« en: Miércoles 28 de Noviembre de 2007, 20:50 »
Pues eso, he hecho un pong en ensamblador, pero tengo un problemilla.

La pelota parpadea, supongo que debido a que la pinto haciendo llamadas a interrupcion de la BIOS, las cuales son muy lentas.

Con las paletas lo he solucionado pintando/borrando solo lo necesario, y casi ni se nota, pero la pelota en ordenadores antiguos / o dispositivos portatiles emulando DOS con dosbox, pues hay que forzar mucho a la maquina para que no se vea el parpadeo.


Por eso he pensao. porque en lugar de seguir parcheando/optimizando cada codigo, me hago yo la funcion pintar pixel accediendo a la memoria de video de una forma directa.

Pero he encontrao un problema, no encuentro casi nada de informacion de como hacerlo para el modo que he usado, VGA 640x480 con 16 colores. Leo de cosas de arrays auxiliares (¿paletas de colores?) y demas, pero no me entero.

Alguien podria decirme? o en su lugar, decirme donde encontrar informacion completa

Páginas: [1]