cpcbegin escribió:theelf escribió:Ahora que se habla de cli, justo estoy programando hace un tiempito un frontend de mame de DOS basado en el neoragex con algunos detalles de mi gusto, completamente en modo texto. Uso modo 80x25 del VGA, ya que como frontend de mame, no me interesa cga o ega, solo que uso el modo de 8x16 en vez del 9x16 asi que funciona a una resolucion de 640x400
El esqueleto en turbo pascal porque me gusta el IDE, pero todas las rutinas de acceso a hardware directo en ensamblador. Mouse, acceso a bios vga etc
Tambien va con una version de mame personalizada que compile, con core en asm, para dar 60fps estables en mi pentium 2 333, y soportar titulos modernos, como SVC o Samurai 5


¿Se podría compilar en Free Pascal para GNU/Linux?
Diria que no, porque aunque compiles el esqueleto, tendrias que hacer un port de todo el codigo asm, ya que por ejemplo, para acceder al mouse uso llamadas directas al hardware
por decir algo, si quiero activar el mouse, y llevarlo a las coordenadas 10,18
mov ax, 1
int 33h
mov ax, 4
mov cx, 10
mov dx, 18
int 33h
Imagino que en linux, se usara alguna driver o algo, yo ya estoy fuera de onda de linux, supongo svgalib, y tendra sus propios metodos de acceder al raton
Otra cosa es que escribo directo a la memoria de la VGA, por ejemplo, para mostrar "graficos" y que no se vean mal, uso un modo de 9bits
Port[$3C4] := $01;
Port[$3C5] := Port[$3C5] or $01;
Y luego reprogramo la VGA para usar un pixelclock de 25mhz
Port[$3C2] := Port[$3CC] and $F3;
Que se yo en linux como hacer esas cosas, no se siquiera si es posible acceder al hardware directamente, supongo que si, incluso en NT hay modos que es super restrictivo, pero ya no tengo mucha idea
Saludos