Nanako in CJMC (Amstrad CPC)

El espacio para hablar de las nuevas producciones para los viejos ordenadores || The space to talk about old computer's new productions

Moderadores: Neville, CEZ

Responder
Avatar de Usuario
WoodMaster
32 bits
32 bits
Mensajes: 697
Registrado: 13 Jul 2007 15:31
Ubicación: Fi algharb alandalus

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por WoodMaster »

josepzin escribió:
WoodMaster escribió:- Esta en modo bitmap multicolor(la pantalla ocupa 10K, 8 de bitmap, mas dos paginas de atributos de 1k cada), por eso tenemos mas colores(3 libres por cada celda de 4x8 pixels ladrillo, y el color negro comun a toda pantalla), la mayoria de juegos c64 usa el modo 'tiles/chars' que es muy economico(1k solamente, o 2k con pagina de atributos) pero tambien con mas restricciones en lo que se refiere a colores(3 fijos por celda y 1 libre de los 8 primeros colores de la paleta(con rasters se puede usar mas colores, por exemplo los juegos Creatures I & II, y Mayhem in Monsterland, etc).
¿¿Siii?? Pensé que estaba hecho con caracteres redefinidos, que es lo normal.
WoodMaster escribió:Quereis saber algo mas?
Si, claro! Cosas sobre la programación! ¿Qué has usado? ¿Ensamblador? ¿Librerías?
He usado solo Ensamblador, ni uso las rutinas de la rom(Kernal). No hay librerias, he creado todas las rutinas de raíz. Espero poder usarlas en otros proyectos.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por josepzin »

WoodMaster escribió:
josepzin escribió:Si, claro! Cosas sobre la programación! ¿Qué has usado? ¿Ensamblador? ¿Librerías?
He usado solo Ensamblador, ni uso las rutinas de la rom(Kernal). No hay librerias, he creado todas las rutinas de raíz. Espero poder usarlas en otros proyectos.
Me imagino que habrás hecho unas librerías para mover sprites y bloques gráficos como sprites. ¿hiciste algo para tener mas de 8 sprites en pantalla? ¿piensas liberar el codigo?
Avatar de Usuario
WoodMaster
32 bits
32 bits
Mensajes: 697
Registrado: 13 Jul 2007 15:31
Ubicación: Fi algharb alandalus

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por WoodMaster »

josepzin escribió:
WoodMaster escribió:
josepzin escribió:Si, claro! Cosas sobre la programación! ¿Qué has usado? ¿Ensamblador? ¿Librerías?
He usado solo Ensamblador, ni uso las rutinas de la rom(Kernal). No hay librerias, he creado todas las rutinas de raíz. Espero poder usarlas en otros proyectos.
Me imagino que habrás hecho unas librerías para mover sprites y bloques gráficos como sprites. ¿hiciste algo para tener mas de 8 sprites en pantalla? ¿piensas liberar el codigo?
Nada de especial, el juego no ha necesitado de un sprite multiplexer, uso solamente 7 sprites, talvez aun voy a usar ese ultimo que me queda pero no sé depiende del tiempo que tenga. (En otro juego que estoy programando reutilizo sprites(no es verdadero multiplexer), porque necesito mas de 8 en la pantalla)

las rutinas que he programado de utilidad para otros juegos son de impresion de bloques. El movimiento de sprites es simple el peor ha sido que tenemos una resolucion de 320 pixels y como sabemos eso na cabe en un registo de 8 bits (el c64 no tiene registos de 16bits), he tenido que jugar con el MSB de los sprites.

Yo he empezado a programar hace tiempo una libreria(rutinas assembler) para usar en C (C65) para C64, mueve sprites, pinta bloques etc. Pero necesito terminarla.

El codigo de nanako esta altamente ininteligible, uso codigo que se modifica a si mismo, y otras cosas para optimizacion, tendre que limpiarlo, organizarlo y incluir comentario si lo publico.
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por josepzin »

WoodMaster escribió:El codigo de nanako esta altamente ininteligible, uso codigo que se modifica a si mismo, y otras cosas para optimizacion, tendre que limpiarlo, organizarlo y incluir comentario si lo publico.
Das miedo... :D
WoodMaster escribió:
josepzin escribió: Yo he empezado a programar hace tiempo una libreria(rutinas assembler) para usar en C (C65) para C64, mueve sprites, pinta bloques etc. Pero necesito terminarla.
Me resulta increíble que no haya nada ya hecho para C64 :O
Avatar de Usuario
WoodMaster
32 bits
32 bits
Mensajes: 697
Registrado: 13 Jul 2007 15:31
Ubicación: Fi algharb alandalus

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por WoodMaster »

josepzin escribió:
WoodMaster escribió:El codigo de nanako esta altamente ininteligible, uso codigo que se modifica a si mismo, y otras cosas para optimizacion, tendre que limpiarlo, organizarlo y incluir comentario si lo publico.
Das miedo... :D

Incluso yo he tenido problemas cuando no he tocado en nanako por algunos meses, NO me puedo olvidar de comentar el código (siempre digo esto pero raramente lo hago :( )
WoodMaster escribió:
josepzin escribió: Yo he empezado a programar hace tiempo una libreria(rutinas assembler) para usar en C (C65) para C64, mueve sprites, pinta bloques etc. Pero necesito terminarla.
Me resulta increíble que no haya nada ya hecho para C64 :O
Hay librerias sip, pero no especificas para juegos. Esa que yo he empezado a programar sigue mas o menos esas que hay para spectrum (splib o algo), msx, cpc, para que sea mas facil para algunos que posiblemente quieran programar el c64 (hint hint -> na_th_an , etc)

Las rutinas que tengo implementadas en esa libreria son:

Código: Seleccionar todo

void init_irq(void);
void bitmap_mode(void);
void tile_mode(void);
void hires_mode(void);
void multicolor_mode(void);
void __fastcall__ set_vicBank(unsigned char bank);
void __fastcall__ set_bitmapPos(unsigned char pos);
void __fastcall__ set_charmemPos(unsigned char pos);
void __fastcall__ set_screenPos(unsigned char pos);
void __fastcall__ set_background(unsigned char cor);
void __fastcall__ set_border(unsigned char cor);
void __fastcall__ set_multicolor1(unsigned char cor);
void __fastcall__ set_multicolor2(unsigned char cor);
void __fastcall__ c64_PrintTile(unsigned char x, unsigned char y, unsigned char TileNum);
void __fastcall__ c64_CreateSpr(struct sprite *);
void __fastcall__ c64_SprMc(unsigned char mc1, unsigned char mc2);
void __fastcall__ c64_SprOnOff (struct sprite *);
void __fastcall__ c64_OnOff (struct sprite *);
void c64_SprEnable (struct sprite *);
void c64_SprColor (struct sprite *);
void c64_SprXexpand (struct sprite *);
void c64_SprYexpand (struct sprite *);
void c64_SprPattern (struct sprite *);
void c64_SprMcm (struct sprite *);
void __fastcall__ c64_MoveSpr(struct sprite *spr);
Avatar de Usuario
Ivanzx
256 bits
256 bits
Mensajes: 4316
Registrado: 20 Nov 2005 00:50
Ubicación: Frankfurt, Germany
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por Ivanzx »

Pues que yo recuerde la version Spectrum no tenia ninguna pega de movimiento, y se jugaba perfectamente, de hecho tengo que reconocer que al principio no pillaba la mecanica del juego y me parecia muy dificil, pero cuando se la pillé me enganchó totalmente, creo que es lo mismo que le ha pasado a Gandulf :)
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por na_th_an »

WoodMaster escribió:[...]Esa que yo he empezado a programar sigue mas o menos esas que hay para spectrum (splib o algo), msx, cpc, para que sea mas facil para algunos que posiblemente quieran programar el c64 (hint hint -> na_th_an , etc)

Las rutinas que tengo implementadas en esa libreria son:

Código: Seleccionar todo

void init_irq(void);
void bitmap_mode(void);
void tile_mode(void);
void hires_mode(void);
void multicolor_mode(void);
void __fastcall__ set_vicBank(unsigned char bank);
void __fastcall__ set_bitmapPos(unsigned char pos);
void __fastcall__ set_charmemPos(unsigned char pos);
void __fastcall__ set_screenPos(unsigned char pos);
void __fastcall__ set_background(unsigned char cor);
void __fastcall__ set_border(unsigned char cor);
void __fastcall__ set_multicolor1(unsigned char cor);
void __fastcall__ set_multicolor2(unsigned char cor);
void __fastcall__ c64_PrintTile(unsigned char x, unsigned char y, unsigned char TileNum);
void __fastcall__ c64_CreateSpr(struct sprite *);
void __fastcall__ c64_SprMc(unsigned char mc1, unsigned char mc2);
void __fastcall__ c64_SprOnOff (struct sprite *);
void __fastcall__ c64_OnOff (struct sprite *);
void c64_SprEnable (struct sprite *);
void c64_SprColor (struct sprite *);
void c64_SprXexpand (struct sprite *);
void c64_SprYexpand (struct sprite *);
void c64_SprPattern (struct sprite *);
void c64_SprMcm (struct sprite *);
void __fastcall__ c64_MoveSpr(struct sprite *spr);
Eso me parece realmente... ¿sexy? :D La cosa es entenderse con el cc65 y usar la biblioteca, y empezar a hacer pinitos :P
Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por MFM »

Ivanzx escribió:Pues que yo recuerde la version Spectrum no tenia ninguna pega de movimiento, y se jugaba perfectamente
Sí, no lo dudo. Pero el movimiento era de 8 en 8 pixels y de entrada este tipo de juegos me chirrían. Además, era una época en que por motivos que sabeis seguramente no le dí la oportunidad que el juego merecía.
Un saludo,

MFM Gandulf
Avatar de Usuario
WoodMaster
32 bits
32 bits
Mensajes: 697
Registrado: 13 Jul 2007 15:31
Ubicación: Fi algharb alandalus

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por WoodMaster »

na_th_an escribió:
WoodMaster escribió:[...]Esa que yo he empezado a programar sigue mas o menos esas que hay para spectrum (splib o algo), msx, cpc, para que sea mas facil para algunos que posiblemente quieran programar el c64 (hint hint -> na_th_an , etc)

Las rutinas que tengo implementadas en esa libreria son:

Código: Seleccionar todo

void init_irq(void);
void bitmap_mode(void);
void tile_mode(void);
void hires_mode(void);
void multicolor_mode(void);
void __fastcall__ set_vicBank(unsigned char bank);
void __fastcall__ set_bitmapPos(unsigned char pos);
void __fastcall__ set_charmemPos(unsigned char pos);
void __fastcall__ set_screenPos(unsigned char pos);
void __fastcall__ set_background(unsigned char cor);
void __fastcall__ set_border(unsigned char cor);
void __fastcall__ set_multicolor1(unsigned char cor);
void __fastcall__ set_multicolor2(unsigned char cor);
void __fastcall__ c64_PrintTile(unsigned char x, unsigned char y, unsigned char TileNum);
void __fastcall__ c64_CreateSpr(struct sprite *);
void __fastcall__ c64_SprMc(unsigned char mc1, unsigned char mc2);
void __fastcall__ c64_SprOnOff (struct sprite *);
void __fastcall__ c64_OnOff (struct sprite *);
void c64_SprEnable (struct sprite *);
void c64_SprColor (struct sprite *);
void c64_SprXexpand (struct sprite *);
void c64_SprYexpand (struct sprite *);
void c64_SprPattern (struct sprite *);
void c64_SprMcm (struct sprite *);
void __fastcall__ c64_MoveSpr(struct sprite *spr);
Eso me parece realmente... ¿sexy? :D La cosa es entenderse con el cc65 y usar la biblioteca, y empezar a hacer pinitos :P
Solo le falta las tetas.... juas

Mira na_than, dime qué rutinas (más) usas de esas librerias de spectrum y cpc. Asi seria mas facil para avanzar y tenermos algo usable pronto(relativamente) para hacer pinitos.
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por na_th_an »

En realidad necesito poco. Básicamente necesito:

1.- Rutinas para definir tiles desde el código. Para definir la información de un tile de 4x8 u 8x8, dependiendo del modo, vaya.
2.- Rutinas para pintar un tile o un grupo de tiles (en buffers rectangulares) en la pantalla. Rutinas para capturar un tile o un grupo de tiles desde la pantalla.
3.- Rutinas para definir sprites y moverlos.
4.- Rutinas para cargar una canción y reproducirla.
5.- Rutinas para reproducir efectos de sonido.
6.- Rutinas para leer el teclado o los joysticks.

Y en realidad poco más :)

En realidad lo que más necesito es tiempo. Todo eso de arriba lo tengo ya para MSX gracias a Utopian y aún no he tenido tiempo de ponerme a experimentar :(
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por josepzin »

WoodMaster escribió:Mira na_than, dime qué rutinas (más) usas de esas librerias de spectrum y cpc. Asi seria mas facil para avanzar y tenermos algo usable pronto(relativamente) para hacer pinitos.
"Esto puede ser el comienzo de una gran amistad" (Commodore64 <--> Spectrum/MSX/CPC)
Avatar de Usuario
WoodMaster
32 bits
32 bits
Mensajes: 697
Registrado: 13 Jul 2007 15:31
Ubicación: Fi algharb alandalus

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por WoodMaster »

josepzin escribió:
WoodMaster escribió:Mira na_than, dime qué rutinas (más) usas de esas librerias de spectrum y cpc. Asi seria mas facil para avanzar y tenermos algo usable pronto(relativamente) para hacer pinitos.
"Esto puede ser el comienzo de una gran amistad" (Commodore64 <--> Spectrum/MSX/CPC)
El problem es el compilador C que es otro y ademas si necesitas tener alguna rutina inline en assembler, no es Z80 :P
Avatar de Usuario
NeilParsons
128 bits
128 bits
Mensajes: 1725
Registrado: 23 Oct 2006 13:21
Ubicación: Al borde del estrecho y a un paso de Gibraltar
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por NeilParsons »

They tried to make me go to rehab
but I said, no no no.
Avatar de Usuario
pagantipaco
128 bits
128 bits
Mensajes: 2922
Registrado: 03 Oct 2006 11:41
Ubicación: Madrid
Contactar:

Re: Nanako in CJMC (Amstrad CPC)

Mensaje por pagantipaco »

Pues yo espero que sí lo celebren... qué buena nota, ¡enhorabuena! sobretodo porque pienso que ser elegido para una reseña ya es todo un logro y un 82% es un notable alto de los buenos ;-) Espero que sigais con esa calidad ;-)
Un saludo.
Paco.
Responder