Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Iapetus

Páginas: 1 ... 9 10 [11]
151
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 13:43:54 »
Cita de: "josepzin"
La de joystick es muy simple. Puedo terminar de pasar las funciones que me faltan y luego si tu tienes ganas/tiempo, se pueden pasar a assembler, pero aunque por ahora no se haga, ya se podría ir usando en C.


Ya me diras que tal va de velocidad, todo en C.  :wink:

152
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 13:39:20 »
Cita de: "josepzin"
Yo estuve contactando con la gente de los Mojontwins para preguntarles sobre el tema. Ademas estuve mirando las funciones de la SP1. Aunque ellos estan usando la splib2, que es mas antigua.

Sobre la SP1, para entrar en calor e ir haciendo algo, empecé a hacer una version para  C64 de la input.h (http://z88dk.cvs.sourceforge.net/z88dk/z88dk/include/input.h?view=markup)

Sería interesante usar de base alguna de estas librerías para tener una base común con el Spectrum y a la vez, seguro que estas librerias estan muy usadas y por lo tanto mas "pensado" todo


Yo pasar(intentar) a assembler rutinas que necesites para tu libreria.

153
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 13:31:22 »
¿Esta sección del foro esta accecible a qualquiera o solo a miembros?

Si empezamos con alguno proyecto de un juego seria bueno tener alguno sigilo para que no se pierda el elemento sorpresa.  :D

154
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 13:26:03 »
De nada Carlos.

¿Alguien conoce bien la SP1 para spectrum? Yo no toco en esta libreria desde hace dos años.... Seria bueno tener una lista de las funcciones para ver lo que falta y despues añadimos cosas especificas del c64(Seria la panacea añadir funcciones para scroll, sprite multiplexor entre otras...).

Yo tengo uno pequeño test de mi rutina, con sprites y fondo. Pero tengo que ver como la puedo subir aqui al foro.

155
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 12:56:09 »
Como puedo poner ficheros juntamente con mi post?. De momento no tengo lugar donde poner los ficheros en la internet para daros una url.

156
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 12:51:56 »
Cita de: "josepzin"
Wood, podrias publicar esas librerias? O enviarnos una copia privada?


Está muy incompleta aun.

157
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 12:49:31 »
Cita de: "Carlos"
Pero ahí lo que estas haciendo es lo que yo ya comentaba, exportar las funciones y variables definidas en assembler para que puedan ser usadas desde C.

Yo me refiero a lo contrario, saber cómo se le puede pasar una variable desde C a assembler, en tu ejemplo sería saber cómo en assembler manejas el parámetro unsigned char que le pasas en la función.

No se si me he explicado...


Pensaba que el ejemplo era claro,

la unsigned char ha sido pasada en el registro A.
Con fastcall es lo que sucede, y si el paremetro es 16bits te pasa en A(LSB) y X(MSB).

Para tener mas parametros, hay que usar popax o popa, para sacar los valores.

[code]
                        .import popax
         .import popa
         .import pushax
         .import pusha

;----------------------------------------------               
;void __fastcall__ c64_PrintTile(unsigned char, unsigned char, unsigned char)
;----------------------------------------------
         .export _c64_PrintTile;
_c64_PrintTile:           tax
              lda _screen
              sta $fc
              lda _screen+1
              sta $fd
             
              jsr popa
              cmp #$00
              beq @cont
              tay
@lp:           lda $fc
              clc
              adc #$28
              sta $fc
              bcc @golp
              inc $fd
             
@golp:           dey
              bne @lp
             
             
@cont:                jsr popa
              tay            
              txa
              sta ($fc),y
              rts[/quote]

158
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 11:55:41 »
Hola Carlos,

Yo ya te habia mencionado mi libreria en nuestras charlas MSNeras.

Un ejemplo de código:

fichero .h

[code]extern unsigned int screen;
extern unsigned int vicBank;

void __fastcall__ set_multicolor1(unsigned char cor);
[/quote]
fichero assembler:

[code];---------------------------------------------
;void __fastcall__ set_multicolor1(unsigned char);
;---------------------------------------------
         .export _set_multicolor1;
         
_set_multicolor1:   sta $d022
               rts

;---------------------------------------------------------------------------------
;variables, tables, data...
;---------------------------------------------------------------------------------
.export _screen, _vicBank

_vicBank:
.word $0000
_screen:
.word $0400[/quote]

159
CC65 / Mi biblioteca de funciones para Sprites en cc65. V.01
« en: Mayo 19, 2010, 10:52:10 »
Hola a todos

(Mi primer post aqui)

Yo he programado(en 2008) algo de una libreria para usar con cc65, pero las funcciones estan programadas en código máquina(se pueden llamar desde C claro). Mi intención era crear una libreria similar aquella de z88dk de spectrum.

Las funcciones que tengo implementas son(las cabezeras):

[code]
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);[/quote]

Saludos

Páginas: 1 ... 9 10 [11]