Haciendo un programilla para IBM PC

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: CEZ

Responder
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Haciendo un programilla para IBM PC

Mensaje por 6502 »

Hola a todos, primero quiero felicitar a los implicados en mantener ésta comunidad, me encanta la página y el ambiente que se respira en el foro.

Estoy interesado en hacer un juego sencillo que se pueda ejecutar en los primeros IBM PC, utilizando los clásicos modos de 4 colores de la CGA. La idea es darle algo de alegría a esas viejas máquinas de oficinas (popularmente conocidas como PC) para las que parece que ya casi nadie hace ningún juego.

Para el desarrollo dispongo de un viejo clónico de Phillips con un 386SX a 20Mhz que se puede poner a 8Mhz en la BIOS en modo compatibilidad, aunque principalmente uso el dosbox en otras máquinas. Lo estoy haciendo en ensamblador (NASM) para intentar que sea lo más rápido posible.

Ahora mismo estoy realizando las rutinas gráficas, es curioso al menos para mí encontrarme con un hardware que usa memoria entrelazada, entre eso y que casi no encuentro información sobre la CGA pues me ha costado un poco arrancar pero ya soy capaz de dibujar tiles en pantalla.

Espero en breve poder mostraos algunas capturas.

Ahora las dudas:

¿Conocéis algún buen manual para usar el PC-Speaker?
¿En un sistema con 4 colores como implementar las transparencias?
¿Herramientas para dibujar tiles en 4 colores? (Estoy usando unas para Game Boy, con editor de mapas incluido pero no me terminan de convencer)
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

Toda la información de sistemas de video lo tienes en el libro "Sistemas de Video", creo que de Anaya, que trata en profundidad Hércules, CGA, EGA y VGA (esta última es en la que menos profundiza). Yo lo tengo, si no lo consigues por ahí en PDF mándame un privado.

Las transparencias en los modos de video donde 1 byte > 1 pixel se consiguen utilizando máscaras. Como se hace en spectrum o cualquier sistema de 8 o 16 bits. Si te refieres a transparencias para realizar varios planos de scroll superpuestos hay trucos, aunque no te lo recomiendo porque los PC's de la época de la CGA no podrán correr tu juego por falta de velocidad.

El speaker en PC no tiene mucho misterio, es un simple zumbador/Beeper como el del spectrum, pero sí cambia un poco cuando lo utilizas por medio del 8256 para que los pitidos suenen sin ocupar CPU, cosa que en spectrum por ejemplo no se puede hacer. Yo tenía un libro que lo explicaba muy bien, de Peter Norton, pero no recuerdo el nombre. Seguro que en internet encuentras la información muy fácilmente de todas formas, busca por beeper PC o 8256 beeper pc.

Yo en esa época utilizaba herramientas para DOS, pero no recuerdo ninguna ahora para recomendarte, aunque creo que el Deluxe Paint 2 de PC te permite usar CGA y el mejor programa que se ha hecho para hacer sprites/tiles.

De mi código antiguo no guardo nada de la época CGA, todo es para VGA (lo poco que guardo), en ensamblador. Si insistiendo no encuentras más información intentaré echarte una mano.
Un saludo,

MFM Gandulf
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

Ostiasss... uno que quiere programar un juego para CGA :), a pesar de odiar profundamente las CGA y Hércules, reconozco que lo pasé bien haciendo cosas en aquellas épocas de MierdaPCs.

Yo tengo varias cosas todavía guardada, rutinas en Assembler para poner sprites en pantalla, código en turbo Pascal... creo que lo tengo todo relativamente a mano.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

6502: por tu nombre intuyo que eres un posible Commodorero... ¿?
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

josepzin escribió:6502: por tu nombre intuyo que eres un posible Commodorero... ¿?
Has acertado, además he tenido una NES que también llevaba una CPU con la arquitectura 6502 de ahí el nick.
MFM escribió:Toda la información de sistemas de video lo tienes en el libro "Sistemas de Video", creo que de Anaya, que trata en profundidad Hércules, CGA, EGA y VGA (esta última es en la que menos profundiza). Yo lo tengo, si no lo consigues por ahí en PDF mándame un privado.
Lo estoy buscando, a ver si hay suerte.
MFM escribió:Las transparencias en los modos de video donde 1 byte > 1 pixel se consiguen utilizando máscaras. Como se hace en spectrum o cualquier sistema de 8 o 16 bits. Si te refieres a transparencias para realizar varios planos de scroll superpuestos hay trucos, aunque no te lo recomiendo porque los PC's de la época de la CGA no podrán correr tu juego por falta de velocidad.
Pues claro un bit de máscara #-o eso era lo que necesitaba, lo de lo planos de scroll en principio ni me lo planteaba.

MFM escribió:El speaker en PC no tiene mucho misterio, es un simple zumbador/Beeper como el del spectrum, pero sí cambia un poco cuando lo utilizas por medio del 8256 para que los pitidos suenen sin ocupar CPU, cosa que en spectrum por ejemplo no se puede hacer. Yo tenía un libro que lo explicaba muy bien, de Peter Norton, pero no recuerdo el nombre. Seguro que en internet encuentras la información muy fácilmente de todas formas, busca por beeper PC o 8256 beeper pc.
El PIT siempre me ha dado miedo creo que lo dejaré para el final. Estoy mirando código para usar la clásica Adlib :)

Muchas gracias por ayudarme.

Saludos.
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por na_th_an »

Hmmm - tengo que mirar en mi casa, pero seguro que te puedo pasar código para sintetizar sonidos FM y tocarlos en la Adlib (o compatibles). Está en BASIC, por lo que más fácil de entender, imposible.

Es que allá por 2001 o 2002 me dio por hacer un tracker de música FM que además traía un editor de instrumentos :) La info la saqué de una colección de tutoriales que rulaba por ahí que no recuerdo como se llamaba pero que era muy famosa entre los que hacíamos nuestros pinitos para intentar montar intros y demos.
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

na_th_an escribió:Hmmm - tengo que mirar en mi casa, pero seguro que te puedo pasar código para sintetizar sonidos FM y tocarlos en la Adlib (o compatibles). Está en BASIC, por lo que más fácil de entender, imposible.
Muchas gracias seguro que sería de gran utilidad.

Os cuento un poco como van las cosas. Sigo programando la parte gráfica. Estoy haciendo la rutina que dibujará los tiles del fondo sobre el que irán los sprites. Tengo problemas a la hora de calcular los offsets donde tengo que escribir para dibujar un tile en una determinada posición (x,y). Ahora mismo los coloca en la memoria de video pero no en las posiciones que quiero :( . Si puedo luego hago alguna captura.

El código usa la directiva CPU 8086 que no te deja poner instrucciones posteriores, ni combinaciones de registros que la CPU del PC XT no pueda ejecutar, lo que dificulta un poco las cosas pero pero asegura que se pueda ejecutar en todos los PC.

Y para que os deis cuenta del "gran" artista que estoy hecho os pongo algunas capturas de los programas que uso para diseñar los tiles y los sprites.

http://2.bp.blogspot.com/_5yXiycVO_dc/S ... /cgatb.PNG
http://1.bp.blogspot.com/_5yXiycVO_dc/S ... /cgamb.PNG
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

Con respecto al tema del volcado de tiles y sprites, me imagino que ya lo sabes, pero si usas tiles para pintar el fondo en cada frame de juego no deberías trabajar directamente en pantalla, sino en un buffer intermedio y volcar el resultado a pantalla (te digo lo del buffer porque la CGA no tiene soporte para páginas de video, que es lo óptimo)

Con respecto al tema de los tiles, si sólo son para el fondo y el juego no tiene scroll, puedes poner el fondo de pantalla al inicio y luego que los sprites guarden y restauren el cuadrado sobre los que se van a pintar, de esta forma ahorras mucha velocidad. Si no tienes una cantidad grande de sprites puedes prescindir del buffer y trabajar directamente en memoria de video.

¿Tu intención es que además de ser para CGA se ejecute correctamente en un XT o un 286 lento?
Un saludo,

MFM Gandulf
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

Estuve probando mis archivos .EXE de aquellas épocas pre-VGA y me aparecen unos caracteres en pantalla, supongo que porque no puede setear el modo CGA. ¿Como puedo probar esas aplicaciones simulando una CGA?
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

Pues de la misma forma que ejecutas los juegos MS-DOS antiguos. DosBox por ejemplo, es muy fácil de usar.

Es la forma en que pruebo yo mis cosas de MS-DOS, herramientas antiguas, etc
Un saludo,

MFM Gandulf
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

josepzin escribió:Estuve probando mis archivos .EXE de aquellas épocas pre-VGA y me aparecen unos caracteres en pantalla, supongo que porque no puede setear el modo CGA. ¿Como puedo probar esas aplicaciones simulando una CGA?
Yo uso el emulador DosBox funciona bien incluso en máquinas con procesadores de otras arquitecturas como PowerPC, y te emula todo el hardware de un PC (incluyendo cosas como la tarjeta de sonido esa de disney, Adlib, Sound Blaster...)

Imagen
MFM escribió:Con respecto al tema del volcado de tiles y sprites, me imagino que ya lo sabes, pero si usas tiles para pintar el fondo en cada frame de juego no deberías trabajar directamente en pantalla, sino en un buffer intermedio y volcar el resultado a pantalla (te digo lo del buffer porque la CGA no tiene soporte para páginas de video, que es lo óptimo)

Con respecto al tema de los tiles, si sólo son para el fondo y el juego no tiene scroll, puedes poner el fondo de pantalla al inicio y luego que los sprites guarden y restauren el cuadrado sobre los que se van a pintar, de esta forma ahorras mucha velocidad. Si no tienes una cantidad grande de sprites puedes prescindir del buffer y trabajar directamente en memoria de video.

¿Tu intención es que además de ser para CGA se ejecute correctamente en un XT o un 286 lento?
Exacto esa es la idea. El problema es que la memoria al ser entrelazada no me resulta sencillo calcular bien los offset como en los modos de 256 colores por ejemplo.

Uso algo asi como

offset = (y * 80) + x/4 (las operaciones con desplazamientos para no matar al Intel)

pero aun no va bien.

Saludos.
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

El disney sound source fue el peor truño de sonido que tuve la oportunidad de ver :lol: . Lo compré para jugar al alone in the dark y escuchar mods (o eso pretendía) pero el sonido era realmente nefasto. El problema era el altavoz y el ampli por llamarlos de alguna forma. Al ver que sonaba tan pocho lo abrí y al ver el nivel de cutrería cogí tal cabreo que me deshice de él inmediatamente y me fui a comprar una sound blaster pro (la mejor compra de sonido que hice hasta que pasaron los años y me hice con una AWE64).
Un saludo,

MFM Gandulf
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

6502 escribió:
josepzin escribió:Estuve probando mis archivos .EXE de aquellas épocas pre-VGA y me aparecen unos caracteres en pantalla, supongo que porque no puede setear el modo CGA. ¿Como puedo probar esas aplicaciones simulando una CGA?
Yo uso el emulador DosBox funciona bien incluso en máquinas con procesadores de otras arquitecturas como PowerPC, y te emula todo el hardware de un PC (incluyendo cosas como la tarjeta de sonido esa de disney, Adlib, Sound Blaster...)
Me he bajado el DosBoxPortable, aunque no sé como acceder al disco C. Tendré que mirar un poco la ayuda del programa.
6502 escribió: . El problema es que la memoria al ser entrelazada no me resulta sencillo calcular bien los offset como en los modos de 256 colores por ejemplo.
Uso algo asi como
offset = (y * 80) + x/4 (las operaciones con desplazamientos para no matar al Intel)
pero aun no va bien.
¿Y como muestras los graficos? Yo tenia unas rutinas en ASM, estuve rebuscando en el pasado y encontré esto:

Código: Seleccionar todo

;()------------------------------------------------------------------------()
;|  Esta rutina pone un Bloque Grafico en la direccion donde apunta la      |
;|  Variable SegPantaMem, o sea a la Pantalla, y pone el grafico en forma   |
;|  entrelazada.                                                            |
;|                                                                          |
;|                 PoneBlok(CoordX,CoordY,Ancho,Alto,Desde)                 |
;|                                                                          |
;|  Desde es una variable que apunta a la definicion del bloque grafico,    |
;|  la direccion es la suma de la Variable de Segmento SEGSPRITE + Desde    |
;()-------------------------------------------------------------------------()
PoneBlok  PROC FAR  ;(x,y,ancho,alto,desde);
         PUSH     BP              ;Save BP
         MOV      BP,SP           ;Set up stack frame

         MOV      AX, X3Ptr       ;x coord
         MOV      ParametroX, AX
         MOV      AX, Y3Ptr       ;y coord
         mov      ParametroY, AX
         shl      Ancho3Ptr,1    ;* 2 (para tener ancho en Word)

                mov     ax,SegPantaMem
                mov     es,ax           ; ES:BX := direcci¢n de byte del pixel
                call  AddrBase

                  MOV AX,[SegSprite]
                  MOV DS,AX
                  MOV SI,DesdePtr                    ;SI = FUENTE SPRITE

                  MOV BX, Alto3Ptr            ;BX=contador de filas
SEG_1:
                  MOV      CX, Ancho3Ptr     ;AnchoWORDs      ;NUEVO SIZE X DEL SPRITE
                  shr      CX,1
                  REPNE    MOVSW   ;WORD (BYTE PTR ES:[DI],BYTE PTR DS:[SI]
                  add      DI, 320           ;AnchoPantalla
                  sub      DI, Ancho3Ptr    ;AnchoBytes

                  dec      BX
                  Jnz  SEG_1

                  MOV AX, Data
                  MOV DS,AX ;restauro DATA SEGMENT

         POP      BP              ;Restore BP
         RET      10
PoneBlok  ENDP
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

He encontrado unas rutinas de un tal Everett Kaser que trabajó o trabaja en HP. En origen eran de una librería gráfica para usar con el compilador Microsoft C 4.0. Mirando su código se me han aclarado muchas de las dudas que tenía. Si alguien las quiere las puedo subir.

Ya soy capaz de dibujar puntos en posiciones de pantalla, ahora a por los sprites :wink:
MFM escribió:El disney sound source fue el peor truño de sonido que tuve la oportunidad de ver :lol: . Lo compré para jugar al alone in the dark y escuchar mods (o eso pretendía) pero el sonido era realmente nefasto. El problema era el altavoz y el ampli por llamarlos de alguna forma. Al ver que sonaba tan pocho lo abrí y al ver el nivel de cutrería cogí tal cabreo que me deshice de él inmediatamente y me fui a comprar una sound blaster pro (la mejor compra de sonido que hice hasta que pasaron los años y me hice con una AWE64).
No era más que un conversor análogico digital montado con resistencias, por los ochenta ya circulaban circuitos por las BBS para montarte el tuyo propio. Y calidad pues para lo que te costaban las resistencias y el resto de componentes... :D

Yo tuve uno hecho a "mano" no el original de Disney, si quieres más información http://en.wikipedia.org/wiki/Disney_Sound_Source
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

Ya, yo también era usuario de BBS por aquel entonces (punto de Fido, me imagino que tu tb). El tema era que el Disney este llevaba el p*to altavoz dentro de la caja de plástico blanca con las orejas de micky. Era un verdadero y espantoso TRUÑO.
Un saludo,

MFM Gandulf
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

MFM escribió:Ya, yo también era usuario de BBS por aquel entonces (punto de Fido, me imagino que tu tb). El tema era que el Disney este llevaba el p*to altavoz dentro de la caja de plástico blanca con las orejas de micky. Era un verdadero y espantoso TRUÑO.
Yo por aquel entonces no tenía módem, pero si conocía a gente que estaban enganchadas a la Fidonet. Jaja me gustaría ver fotos de ese altavoz.
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

Pues es curioso porque casi no hay o directamente no hay imágenes del invento. Sólo encontré una pero estaba cerrado y es pequeñita, y la caja de plástico blanca no era la que tenía la imagen del ratón.

Creo que todo el mundo que compró este engendro en cuanto pudo se deshizo de él y vivió su vida como si el cacharro ni hubiera existido. Por eso no hay fotos.

Yo lo usé para cargar el Alone in the Dark y para escuchar mods con el Fast Tracker y el resultado era nefasto (obviamente era mejor que con el speaker, en función de lo exigente que sea uno con el sonido, a alguno le pudo valer). En el Alone la música me sonaba por la Adlib (gran tarjeta y grandes momentos tuve con ella), pero al sacar los sonidos por el dac de la disney, era tremendo. Sonido enlatado y plastificado, con ruído (normal, por tener un minialtavoz embutido en una cutre caja de plástico)
Un saludo,

MFM Gandulf
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

Bueno pues esto avanza os pongo de una captura del motor gráfico dibujando sprites

Imagen
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

Lo he probado con mi viejo PC a 7Mhz y parece que las rutinas son lo suficientemente rápidas. :)

Os podéis bajar un test del siguiente enlace:

http://rapidshare.com/files/193921060/test.com.html
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

A ver si le agregas una lectura de cursores así podemos mover uno de los bichos
Avatar de Usuario
jmp
8 bits
8 bits
Mensajes: 6
Registrado: 29 Abr 2008 15:48

Re: Haciendo un programilla para IBM PC

Mensaje por jmp »

Tengo exactamente lo que necesitas, pero no sé cómo o sencillamente, si se puede adjuntar en este foro ficheros, y yo me agobio con Megaupload et al, asi que dame un email y te lo envío.

Para que te fíes:

HelpPC (referencia para programadores del IBM PC, 1991)
PC Games Programmer's Encyclopaedia (¿1994?) (absolutamente excelente)
Ralf Brown's Interrupt List

Esto yo no sé si existe en Internet, yo me lo bajaba de BBS - Supongo que quizá estén en algún FTP perdido de la mano de Dios... Para abrirlos (son ejecutables en su mayoría) necesitarás MSDOS o un Windows 95 (XP parece que no funciona bien).

Además eres afortunado porque Borland ahora regala Turbo Pascal, Turbo C++ y con los anchos de banda de hoy día bajar DJGPP+RHIDE es pan comido.

Saludos.
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

Esas tres referencias las he encontrado por la red en formato HTML, gracias por recomendarlas.

Ahora tengo un problema y es que tengo que Configurar la tarjeta CGA a bajo nivel sin usar la BIOS ya que las rutinas de la BIOS cuando cambio el color del fondo cambian el bit de intensidad no dejando usar los modos de alta intensidad. Se que se hace usando el puerto 3D9h pero no consigo que funcione. :(

También tengo que leer del puerto 3DAh para saber cuando se va a producir el Vblank pero esa es otra de las cosas que no me van bien.

Se ve que eso de leer y escribir en puertos no es lo mío, lo malo es tampoco encuentro ejemplos en donde hagan eso.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Haciendo un programilla para IBM PC

Mensaje por josepzin »

6502 escribió:También tengo que leer del puerto 3DAh para saber cuando se va a producir el Vblank pero esa es otra de las cosas que no me van bien.
Se ve que eso de leer y escribir en puertos no es lo mío, lo malo es tampoco encuentro ejemplos en donde hagan eso.
Del museo ASM:

Código: Seleccionar todo

 
; espera barrido!!??
  mov     dx,3DAh              ; Point DX to CGA status port
  mov     bl,9                 ; Move horiz. + vertical retrace mask to bl
x5:
  in      al,dx                ; Get 6845 status
  rcr     al,1                 ; Check horizontal retrace
  jb      x5                   ; Loop if in horizontal retrace: this prevents
                               ;   starting in mid-retrace, since there is
                               ;   exactly enough time for 1 and only 1 STOSW
                               ;   during horizontal retrace
  cli                          ; No ints during critical section
x6:
  in      al,dx                ; Get 6845 status
  and     al,bl                ; Check for both kinds of retrace: IF the
                               ;   video board does not report horizontal
                               ;   retrace while in vertical retrace, this
                               ;   will allow several characters to be
                               ;   stuffed in during vertical retrace
  jz      x6                   ; Loop if equal to zero
 ;
Pero me suena que nunca estuve seguro si funcionaba bien... fue hace tanto ya...
Avatar de Usuario
6502
8 bits
8 bits
Mensajes: 18
Registrado: 28 Ene 2009 16:14

Re: Haciendo un programilla para IBM PC

Mensaje por 6502 »

He subido los resultados a mi blog (código fuente, ejecutable), de momento lo dejo así para hacer otras "cosillas".

Las rutinas incluyen una que muestras imágenes codificadas en RLE (que es como el Deluxe Paint codifica los bitmaps), limpiado de pantalla, dibujo de puntos, dibujado de tiles y otras que pueden ser útiles. Las partes críticas del código tienen comentarios.

Tengo otra versión con double buffering que si alguien me la pide se la puedo pasar pero básicamente es igual y sobre esta técnica si que hay muchos ejemplos en la red.

Se que no es gran cosa pero partiendo casi desde cero (solo había usado el ensamblador para rutinas numéricas) estoy contento con el resultado.
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

Re: Haciendo un programilla para IBM PC

Mensaje por Ñuño Martínez »

Yo también tengo la "PC Games Programmer's Encyclopaedia", versión 1.0. Siempre me he preguntado si salió alguna versión más. ¿Salió o se quedó ahí?
Avatar de Usuario
jmp
8 bits
8 bits
Mensajes: 6
Registrado: 29 Abr 2008 15:48

Re: Haciendo un programilla para IBM PC

Mensaje por jmp »

Parece que iba a salir la v2 para Windows pero quedó en nada: Más info en: http://www.geocities.com/SiliconValley/2151/pcgpe.html
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Haciendo un programilla para IBM PC

Mensaje por MFM »

La verdad es que veo casi lógico que la versión windows quedara en agua de borrajas. Mientras que en DOS la programación de juegos era "universal" (la misma VGA y las mismas técnicas para todo el mundo, sólo cambiaba el lenguaje a utilizar, pero para hacer lo mismo), en Windows tendrían que centrarse en una API en concreto, o abarcarlas todas (imposible). O se quedaban en la teoría (que tampoco estaría mal) o elegían una plataforma de desarrollo/API
Un saludo,

MFM Gandulf
Responder