Nuevo proyecto para CPC

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Nuevo proyecto para CPC

Mensaje por Bubu »

Im-presionante. Aunque yo uso el Spectrum 48KB, el cual no tiene AY (4 canales) sino un beeper, jiji, en el que el 1 sisnifica sonar y el 0 no, AjAJAJAJjajAja.
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

Bubu escribió:Todo lo contrario, con r roto hay que estar continuamente haciendo rotaciones del contenido con RRCA para incrementar. Una locura...
No entiendo, ¿por qué tienes que rotar para incrementar?

Supongamos que tienes que pintar una letra "A". En memoria tendrías:
fontaddr+0 ········
fontaddr+1 ··****··
fontaddr+2 ·**··**·
fontaddr+3 ·**··**·
fontaddr+4 ·******·
fontaddr+5 ·**··**·
fontaddr+6 ·**··**·
fontaddr+7 ········


Al copiar en pantalla quedaría:
scraddr+0000h ········
scraddr+0100h ··****··
scraddr+0200h ·**··**·
scraddr+0300h ·**··**·
scraddr+0400h ·******·
scraddr+0500h ·**··**·
scraddr+0600h ·**··**·
scraddr+0700h ········


No recuerdo la sintaxis del Z80 pero sería algo así como:

registro1 = fontaddr
registro2 = scraddr
contador = 8

mover (registro1) a (registro2)
incrementar registro1
incrementar sólo el byte alto del registro2 *****
decrementar contador
repetir mientras contador distinto de cero

***** si no hubiera ese salto de memoria esa instrucción sería sumar 32 a registro2. No se cuantos ciclos de reloj necesita la instrucción sumar 32 a un registro de 16 bit, seguro que más de uno, pero incrementar un registro de 8 bit solo necesita uno.

Supongo que lo de rotar lo dices por pintar en una coordenada X que no es múltiplo de 8. Pero eso da igual si hay o no salto. Sólo se evitaría rotar teniendo un byte por pixel pero con la resolución del Spectrum harían falta 60K de RAM solo para la pantalla, eso sí, tendríamos 256 colores sin colour-clash :)
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Nuevo proyecto para CPC

Mensaje por Bubu »

Kyp escribió:
No entiendo, ¿por qué tienes que rotar para incrementar?
Lógicamente en tu ejemplo de un único carácter no hay poblema, pero cuando usas sprites, gráficos, mapeados, etc, cá vez que pintas algo, como R está rota en 2 partes tiés que rotar uno de ellos pa pegarlo al otro trozo y saber el valor de R pa poder incrementarlo.
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

El cálculo es algo más complicado sólo cuando tienes que pintar gráficos en una coordenada Y arbitraria. Pero para tiles o texto o cualquier otro gráfico cuya coordenada Y sea múltiplo de 8 es trivial.

En cualquier caso, sólo se complica el cálculo de la dirección inicial donde pintar, luego las demás son simplemente incrementos.

No pretendo defender el diseño del mapa de memoria de pantalla, sólo te explicaba por qué se hizo así. Supongo que pensando en optimizar el dibujado de texto. Ya sabes que el tito Sinclair no quería que el Spectrum fuera una máquina para jugar ;)
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Nuevo proyecto para CPC

Mensaje por Bubu »

jijiji, nooooor, yo tampoco defiendo ni ataco nada, sólo te digo que la forma en la que está en el Spectrum la vídeomemoria organizada es un p* follón pa los desarrolladores. Yo estoy jarto de pogramar en Z80 para el Spectrum y es de locos. Si está así debe ser por un diseño hardware de la ULA. Como un gráfico ocupe más de 1 fila de alto, lo llevas jodío. Tú dices que se complica sólo al calcular la inicial, pero no, lo complicao es pa los siguientes incrementos. Que R viene roto, que no se puede incrementar fácilmente. Hay que extraer los 5 bits de R por separado, pegarlos, incrementarlos, y vuelta a despegar.

Pero bueno, cuando te hagas tú una rutina que reciba la fila, la columna el alto y el ancho de un gráfico para mostrar, verás lo que quiero decir.
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

Uf, el programar en ensamblador para el Spectrum lo dejé hace mucho y no tengo fuerzas para retomarlo :)

En la época del Amiga me lo pasé pipa programando para el 68000, ese si que era un procesador developer friendly, y el blitter ayudaba un montón. Ahora ya solo programo en C++, C# y un poco en Java. Me he negado a aprender el ensamblador de Intel.

Por ejemplo, el remake del Sabrewulf está hecho en C++ para Windows/DirectX. Ahí no tienes problemas con esas cosas :)
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Nuevo proyecto para CPC

Mensaje por Bubu »

Yo sí que me he negado a aprender C, y C++ y todo lo que sea C en general, AjAjAJAjAja, cuando llego a la parte de punteros, lo intento, pero qué va... no puidor. ¿puntero a void? ¿puntero a puntero? ¿puntero a función? ¿ein?
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 31 times
Been thanked: 163 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

:)) :)) :)) :))

Si es como en ASM... Un puntero es como el direccionamiento indirecto. Pero bueno, no te voy a convencer, cada loco con su tema :D

Para mi, después de programar en ensamblador el Motorola 68000 del Amiga, el de los Intel me parecía tan limitado... me tuve que pasar al C++ para poder soportar programar los PCs.

Y el C#, como lenguaje de programación es una delicia, si no fuera por que no es código nativo sino la KK esa de la máquina virtual... y el recolector de basura...
Avatar de Usuario
derdhal
USUARIO BANEADO
USUARIO BANEADO
Mensajes: 721
Registrado: 23 Jun 2013, 20:33
Ubicación: Valencia

Re: Nuevo proyecto para CPC

Mensaje por derdhal »

DIARIO DE A BORDO. ENTRADA #4

Querido diario,
Hoy hemos retomado el desarrollo tras el parón del fin de semana a causa de la RetroAlba.

Como ya teníamos prácticamente terminadas todas las rutinas básicas, hemos empezado a diseñar sprites y a darle al juego el aspecto que queremos que tenga.

[BBvideo 565,350][/BBvideo]

No se aprecian muy bien los enemigos, pero es por haberlo grabado con el movil. He intentado grabarlo con el CamStudio, que es el que uso para los gameplays de Retrojugones, pero grababa a saltos... La próxima vez lo intentaré con el fraps.

Un saludo
Avatar de Usuario
Mikes España - Com. Valenciana
Moderador
Moderador
Mensajes: 3405
Registrado: 08 Nov 2013, 14:15
Ubicación: Benaguasil (València)
Has thanked: 2 times
Been thanked: 145 times

Re: Nuevo proyecto para CPC

Mensaje por Mikes »

Te está quedando muy chulo, si señor! Como siga progresando así voy a tener que reservar una copia ;)
"Mikes solo hay uno"
Mi 'Paraeta'
Responder

Volver a “Proyectos de software abiertos”