vince Le 14/03/2017 à 08:03 je sais que le 65c02 est capricieux avec les tableaux mais j'ai pas rencontré ce type de pb, même pour ouragan où y'a des tableaux assez monstrueux...
Mais ton .o faisait combien de kb?
Là mon jeu fait 27kb, sachant qu'au dessus de 40kb (0xa000) c'est réservé aux buffers screen, render et collision (n'utilisant pas les collisions, je place mon tableau à cet emplacement), il ne me restait grosso modo que 13kb pour ce tableau de 8kb. Pour peu que la mémoire soit fragmentée et que le processeur alloue un peu à l'arrache (bon après c'est mon explication...ptet que je suis à côté de la plaque).
En fait c'est le commentaire de Fadest sur son propre code qui m'a donné l'idée d'essayer. Ca a résolu le problème instantanément mais...
1) Je ne suis pas non plus 100% sûr du "fix"
2) Je me pose du coup la question de devoir (ou pas) mapper mes tableaux à la main pour éviter tout effet de bord...
vince Le 14/03/2017 à 16:20 Mon jeu faisait plus de 40ko vu qu'il a fallu que je retire le buffer render sinon ça rentrait pas...
Ok je pense avoir trouvé la véritable source de mes problèmes et je mets la solution ici pour les 5 d'entre nous qui utilisent toujours BLL/newcc65 (apparemment tout le monde est passé sur tgi/cc65 sur atari age ^^).
Le problème donc, est que sizeof semble sévèrement buggé !
J'initialise mes tableaux, structures, et tableaux de structures en utilisant memset ou bzero. A l'ancienne donc, avec quelque chose de la forme :
struct StructMuche {
// Some variables
};
struct StructMuche myStruct;
memset(&myStruct, 0, sizeof(struct StructMuche));
Sauf que, sauf que... sizeof ne fonctionne qu'avec des types primitifs (char et int) et des variables instanciées. Si on lui passe un type complexe (en l'occurence ici une struct), il renvoie irrémédiablement 28532 (Ce qui dans mon cas me faisait un reset d'une grosse partie de la RAM). En revanche si on remplace sizeof(struct StrucMuche) par sizeof(myStruct), tout rentre dans l'ordre.
Je sais que tu es attaché à l'ancien compilo Vince, mais j'ai l'impression que tu te fais du mal quand même ^^

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboÇa a l'air tout mignon comme ça, mais c'est traître, un point-virgule !

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboQue c'est mignon tout plein, j'aime beaucoup <3
Visual studio c'est le bien mais en fait c'est le mal. Ca checke tellement de truc pour toi que tu perds un paquet d'automatisme des anciens temps... (et avec les messages d'erreur de newcc65.. hmm hmm :/)