Hola de nuevo, he decidido intentar poco a poco portar mi juego a CPC, sería en modo 1 a 4 colores y me he fijado que en el Sir Ababol usáis dos paletas de colores diferentes para la parte superior e inferior del mapa. ¿Cómo se hace esto? ¿Hay que hacer dos tileset y spriteset diferentes? porque revisando el código fuente no me ha quedado nada claro.
A ver si poco a poco van saliendo las cositas, estoy convencido de que no es tan complicado como parece jeje. Saludos
JUEGO ACABADO (a falta de un par de detallitos).
Moderador: na_th_an
Re: JUEGO ACABADO (a falta de un par de detallitos).
No, en realidad sólo hay que cambiar la paleta. Los gráficos son exactamente los mismos para un piso y para el otro.
El el CPC eliges 4 colores entre los 27 posibles. Esto lo puedes hacer todas las veces que quieras, y cuando quieras. Nosotros lo hacemos al cambiar de piso. Si estás en el piso de arriba, se pone una paleta. Si estás en el de abajo, la otra. Cambiar la paleta es cuestión de hacer 4 llamadas al hardware del CPC.
El el CPC eliges 4 colores entre los 27 posibles. Esto lo puedes hacer todas las veces que quieras, y cuando quieras. Nosotros lo hacemos al cambiar de piso. Si estás en el piso de arriba, se pone una paleta. Si estás en el de abajo, la otra. Cambiar la paleta es cuestión de hacer 4 llamadas al hardware del CPC.
Como diría Rorshach: "Urm..."
Re: JUEGO ACABADO (a falta de un par de detallitos).
Ajá entiendo, la cuestión y sin ánimo de ser pesado es... ¿Cómo se hace eso, dónde se hacen esas 4 llamadas al hardware del CPC? no tengo ni idea, la verdad
Creo que con el resto podré apañarme más o menos bien... bueno, ya veremos jeje.
Creo que con el resto podré apañarme más o menos bien... bueno, ya veremos jeje.
Re: JUEGO ACABADO (a falta de un par de detallitos).
La biblioteca que usamos, la CPCRSLIB, trae funciones para hacer todos estos manejes Tienes la doc aquí -> http://www.amstrad.es/programacion/cpcrslib_sp.html
No me acuerdo de memoria, pero mirando el código, es este cachín que pone las paletas (el juego usa tres):
$this->bbcode_second_pass_code('', 'void set_inks (unsigned char n) {
/*
Tabla de conversión de paletas
firm hard
0 20
1 4
2 21
3 28
4 24
5 29
6 12
7 5
8 13
9 22
10 6
11 23
12 30
13 0
14 31
15 14
16 7
17 15
18 18
19 2
20 19
21 26
22 25
23 27
24 10
25 3
26 11
*/
switch (n) {
case 0:
cpc_SetColour (0, 20);
cpc_SetColour (1, 28);
cpc_SetColour (2, 0);
cpc_SetColour (3, 14);
break;
case 1:
cpc_SetColour (0, 20);
cpc_SetColour (1, 24);
cpc_SetColour (2, 31);
cpc_SetColour (3, 3);
break;
case 2:
cpc_SetColour (0, 20);
cpc_SetColour (1, 24);
cpc_SetColour (2, 7);
cpc_SetColour (3, 3);
break;
}
}')
cpc_SetColour asigna una tinta (ink) a una pluma (pen). El segundo parámetro es el color. Arriba ves una tabla de equivalencias. La función utiliza colores "hardware". Los colores "firmware" son estos (por eso necesitas la tabla).
No me acuerdo de memoria, pero mirando el código, es este cachín que pone las paletas (el juego usa tres):
$this->bbcode_second_pass_code('', 'void set_inks (unsigned char n) {
/*
Tabla de conversión de paletas
firm hard
0 20
1 4
2 21
3 28
4 24
5 29
6 12
7 5
8 13
9 22
10 6
11 23
12 30
13 0
14 31
15 14
16 7
17 15
18 18
19 2
20 19
21 26
22 25
23 27
24 10
25 3
26 11
*/
switch (n) {
case 0:
cpc_SetColour (0, 20);
cpc_SetColour (1, 28);
cpc_SetColour (2, 0);
cpc_SetColour (3, 14);
break;
case 1:
cpc_SetColour (0, 20);
cpc_SetColour (1, 24);
cpc_SetColour (2, 31);
cpc_SetColour (3, 3);
break;
case 2:
cpc_SetColour (0, 20);
cpc_SetColour (1, 24);
cpc_SetColour (2, 7);
cpc_SetColour (3, 3);
break;
}
}')
cpc_SetColour asigna una tinta (ink) a una pluma (pen). El segundo parámetro es el color. Arriba ves una tabla de equivalencias. La función utiliza colores "hardware". Los colores "firmware" son estos (por eso necesitas la tabla).
- Adjuntos
-
- paleta.cpc.png (8.08 KiB) Visto 11678 veces
Como diría Rorshach: "Urm..."
Re: JUEGO ACABADO (a falta de un par de detallitos).
Muchas gracias, creo que ya lo he pillado, en cuanto tenga tiempo me pongo en faena y a ver si voy consiguiendo hacer cositas
Re: JUEGO ACABADO (a falta de un par de detallitos).
Ánimo. Es una tarea laboriosa, pero al menos no eres el primero que se aventura a ello Puedes tirar de mi experiencia.
Como diría Rorshach: "Urm..."
Re: JUEGO ACABADO (a falta de un par de detallitos).
Hola, tras algunos meses liado y ahora con más tiempo disponible este veranito, voy a intentar hacer cosillas y aprender poco a poco para una posible conversión de Rigor Mortis a CPC, cosa que me haría una ilusión bárbara, y he decidido primero compilar algún juego mojono para toquetearlo después e ir aprendiendo. Todo ha ido perfecto con Sir Ababol y Lala Prologue generando el archivo bin y luego con el assembler del WinApe. Sin embargo, cuando hago un CALL 10000 en basic, arranca bien pero en menos de 1 segundo se reinicia el CPC. ¿Estaré haciendo algo mal? ¿Alguna versión de alguna librería que no debería usar? Espero vuestras respuestas y como siempre, gracias de antemano
Última edición por fjpoyato el Dom, 07 Jun 2015, 16:25, editado 1 vez en total.
Re: JUEGO ACABADO (a falta de un par de detallitos).
Creo que deberías hacer antes un MEMORY con la dirección de inicio - 1 para decirle al firmware que no toque nada a partir de ahí. Hace mucho que no toqueteo esos juegos, pero supongo que irán por ahí los tiros.
Lo que puedes hacer es cargar el cargador BASIC y listarlo, lo más probable es que esté todo ahí.
Como, sinceramente, no recuerdo si los hemos publicado o no en formato disco, te los subo aquí. Son los discos de desarrollo, así que deberían funcionar y tener todo lo necesario.
Lo que puedes hacer es cargar el cargador BASIC y listarlo, lo más probable es que esté todo ahí.
Como, sinceramente, no recuerdo si los hemos publicado o no en formato disco, te los subo aquí. Son los discos de desarrollo, así que deberían funcionar y tener todo lo necesario.
- Adjuntos
-
- Mojon-Twins--Sir-Ababol--CPC-DSK.zip
- (37.99 KiB) Descargado 458 veces
-
- Mojon-Twins--Lala-Prologue--CPC-DSK.zip
- (45.38 KiB) Descargado 501 veces
-
- Mojon-Twins--Cheril-of-the-Bosque--CPC-DSK.zip
- (45.63 KiB) Descargado 486 veces
Como diría Rorshach: "Urm..."
Re: JUEGO ACABADO (a falta de un par de detallitos).
Perdona mi ignorancia y torpeza CPCera, ¿hay que poner MEMORY -1 en el basic antes del CALL 10000? lo he probado y lo mismo, se reinicia. Y lo del cargador BASIC no lo he pillado exactamente. Espero poder cargar esos bin correctamente, creo que es el paso más importante ahora mismo si quiero hacer la versión a CPC de mi juego, espero que puedas ilustrarme un poco más en profundidad, sin ánimo de ser demasiado pesado jeje :-p
Voy a ir pensando en otro jueguecillo para spectrum también, que será bastante diferente al anterior, así que preparaos para una nueva oleada de preguntas XD.
Saludos cordiales
Voy a ir pensando en otro jueguecillo para spectrum también, que será bastante diferente al anterior, así que preparaos para una nueva oleada de preguntas XD.
Saludos cordiales
Re: JUEGO ACABADO (a falta de un par de detallitos).
No es MEMORY -1, es MEMORY direccion de inicio-1. O sea, 9999.
Pero ya te digo que hace cinco años de esto, la verdad es que recuerod poco de las peculiaridades de estos juegos en concreto. Examina los cargadores de los discos, ahí debe estar la clave.
Mira, ahí lo tienes:
Pero ya te digo que hace cinco años de esto, la verdad es que recuerod poco de las peculiaridades de estos juegos en concreto. Examina los cargadores de los discos, ahí debe estar la clave.
Mira, ahí lo tienes:
- Adjuntos
-
- lala_loader.png (6.34 KiB) Visto 11434 veces
Como diría Rorshach: "Urm..."
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados