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
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3401
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 30 times
Been thanked: 161 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

La razón por la que en el Spectrum las líneas saltan de 8 en 8 es por un tema de optimización de los cálculos a la hora de pintar. La distribución de memoria de la pantalla está pensada para que para pasar de una línea a la que hay justo debajo hay que sumar 256 en vez de 32. Es decir, suponiendo que la dirección la tienes en un registro de 16 bits, en vez de sumar 32 al registro completo (una suma de 16 bits) le sumas 1 al byte alto del registro (incrementar el registro) y ahorras unos cuantos ciclos de reloj.

En el Amstrad no lo veo tan claro.
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 »

La razón de ese salto es porque el registro de la vídeoRAM es así:

010rrsss rrrccccc

donde:
s=0 a 7, e indica una de las 7 filas dentro de cada carácter
rrrrr=0 a 31 (sólo tiene sentido de 0 a 23), e indica una de las 24 filas de caracteres
ccccc=0 a 31, e indica una de las 32 columnas de caracteres, de cada fila de caracteres

De ahí a que al incrementarse la posición de memoria, se apunta a la siguiente columna, pero es que cuando ésta llega a la última columna, no se pasa al siguiente s, sino al siguiente r, y no sólo eso, cuando r llega a 7, (8 filas), ¡¡pasamos al siguiente s!! AjAjAjAJJAJAjAJAjA

Así que la razón del salto es que r está roto en 2 partes, por una parte rr, y por otra rrr.
Si el registro hubiera sido así:

010rrrrr sssccccc

¿qué pasaría? Pues que tras pintar todas las c, pasamos al siguiente s de la misma r. Cuando terminamos todas las s de esa r, entonces pasamos a otra r. ¿No hubiera sido esto lo más lógico?
Las pantallas de carga irían estrictamente de arriba a abajo, sin saltos ni tercios ni leches.
¿Y todo esto por qué es? Por cómo está diseñada la ULA por dentro, ya que es ésta la que interpreta ese tipo de registro "010rrsss rrrcccc".

Por eso preguntaba si en el Amstrad existe otra "ULA", porque si es así pues ya tenemos la explicación, jiji.
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: 30 times
Been thanked: 161 times

Re: Nuevo proyecto para CPC

Mensaje por Kyp »

Si, pero r está partido así, en dos partes, aposta por lo que decía antes, para ayudar a optimizar los cálculos en los programas ;)
Y si, los CPCs también tienen ULA :) pero no la misma que el Spectrum.
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 »

Pues yo que pogramo bastante en ensamblador, no le veo la facilidad ni mucho menos nada que se optimice a que r esté roto. Sería mucho más fácil todo si el registro fuera consecutivo:

010rrrrr sssccccc

Todo lo contrario, con r roto hay que estar continuamente haciendo rotaciones del contenido con RRCA para incrementar. Una locura...
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
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 »

¿Cómo se llama la ULA del Amstrad? Tengo curiosidad por echarle una visual ;-)
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Re: Nuevo proyecto para CPC

Mensaje por wilco2009 »

GateArray.
Aunque está ayudado por otro chips como el VDU.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
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 »

okis, gracias, wilco2009

derdhal, ¿qué modo estás usando en tu juego? ¿Has pensado lo que hacer con la música?
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
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 »

Estoy en Modo 0... como la inmensa mayoría de juegos en Amstrad.

La música es algo que tengo pendiente... porque no sé ni por donde meterle mano... no tengo ni idea... ni de componer ni de como hacer que suene en el Amstrad. Seguramente para hacer que suene tenga que echar mano de alguna librería tipo cpcrslib.
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 »

En el caso del Spectrum yo lo que hago es componer con un tracker especial que se llama Beepola, y éste trae una opción para exportar en ensamblador. Al exportar, copio y pego eso en mi código fuente, y yo sólo tengo que hacer la llamada con un CALL y ya suena, jiji. Supongo que en Amstrad será así tamién.
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
tacha Uruguay
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3167
Registrado: 04 Abr 2013, 20:22
Ubicación: Montevideo, Uruguay
Has thanked: 52 times
Been thanked: 35 times
Contactar:

Re: Nuevo proyecto para CPC

Mensaje por tacha »

derdhal escribió:Estoy en Modo 0... como la inmensa mayoría de juegos en Amstrad.

La música es algo que tengo pendiente... porque no sé ni por donde meterle mano... no tengo ni idea... ni de componer ni de como hacer que suene en el Amstrad. Seguramente para hacer que suene tenga que echar mano de alguna librería tipo cpcrslib.
Te vengo siguiendo desde el principio, pero te escucho mudo :)) siempre al ver un proyecto de esta indole me dan ganas de meterle mano en cuanto a sonido y musica. Pero como tu, no tengo idea de como en un CPC. Si programar musica en el CPC fuera 100% compatible al Spectrum de seguro que hasta te mando un .bin ya que me hice un tracker para spectrum programado en ZXBoriel y compilado en assembler, que deje guardado en una carpeta de por aqui, aunque esta en beta se puede prgramar con el... Los registros del AY son los mismos, no se si los puertos e instrucciones sean igual.

Alguien sabe si un .bin en assemler de Spectrum correria en Amstrad manipulando el AY-3-83912?

aqui una muestra de mi tracker, no deis corte al video XD esta editado con el ZXspin.

Un saludo.
66 6C 6F 70 70 69 6E 67 20 6D 61 73 63 61 20 50 30 6C 6C 34 / 6D 61 73 20 63 6F 74 69 6C 6C 61 20 73 65 72 E1 73 20 74 75 20 49 7A 61 72 6F 20 3A 70
Responder

Volver a “Proyectos de software abiertos”