35Fermer
chickendudeLe 22/02/2013 à 17:05
Je n'ai jamais utilisé les hooks, donc je ne sais pas comment je pourrait t'aider :/

Et si le hook ne se réinstalle pas à chaque reset je crois que c'est pas trop grave, on peut simplement exécuter encore une fois l'app.

Quant aux décompression, j'ai quelques idées. La première, charger tes sprites comme ci :
sprite1:
.dw 8 ;taille du sprite en octets
.db %11111111
.db %10000001
.db %10000001
.db %10000001
.db %10000001
.db %10000001
.db %10000001
.db %11111111
Puis, quand tu décompresses le sprite tu n'as que charger l'adresse du sprite dans HL, la routine de décompression lira la taille du sprite (ici 8 octets), la mettre dans b, puis SMC l'adresse où le sprite va se décompresser (disons, $8000). Après avoir décompressé le sprite, tu peut envoyer l'adresse de sprite1 à la routine d'affichage, la routine lira l'adresse sauvée ($8000) et l'utilisera pour afficher le sprite.

Une autre idée serait de donner un id à chaque sprite selon l'ordre de décompression. Donc le premier sprite décompressé aura l'id 0, et le 100ème aura l'id 99. La routine de décompression sauvera les adresses dans une table dans saferam. Puis, pour afficher un sprite, tu envoies l'id (0-255) du sprite, pas son adresse. Il faudrait que ton code soit un peu plus organisé comme ci pour savoir (peut-être avec des equates) l'id de chaque sprite décompressé, mais tous les datas extras sont sauvés dans saferam.

Ou si tu ne demandais que comment savoir où décompresser les sprites, on peut avoir deux octets dans saferam qui contiennent l'adresse du buffer, si on veux la changer on n'a qu'y écrire la nouvelle adresse.