[Xav] Sonic the Hedgehog

Vive les jeux indépendants !

Modérateurs : SirG, Redfield1, shubibiman, Laucops

Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

En effet Mooz ca simplifierait drôlement!
Reste à voir si un incbin (un tableau de constants donc) de plus d'une page (8Ko) reste accessible dans son intégralité avec cette méthode?
J'essaye ça :D
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: Sonic The Hedgehog SCD

Message par MooZ »

Sachant que le pointeur est calculé, il faut juste que tu t'assures que les MPRs consécutifs pointent vers les banks correspondantes (genre MPR 5,6,7 qui pointent vers les banks 10,11,12).
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

Ah c'était trop beau, As me sort une unknow instruction avec " lda #low(collision_map)" et j'ai essayer plusieurs syntaxe (Au fait, que fait elle exactement, elle charge A avec le LSB de l'adresse de départ de collision map ?) , et même en le sautant les instructions sur la page zéro sont refusé bien que j'y ai déclarer les variables :shock:
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Sonic The Hedgehog SCD

Message par touko »

Comme c'est une variable globale huc il faut la mettre comme ça : lda #low(_collision_map).
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

Déjà fait bien sur :wink:
Mais toujours pas reconnus, c'est dommage car que plus j'y réfléchis, plus cette idée de padding me parait géniale, une multiplication par 256 c'est un simple lsb->msb puis lsb<-0, on peux quand méme pas faire plus simple :shock:

mieux tiens maintenant que j'y pense, adr=(y*map_width)+x donnerais en algo:

msb_adr<-y
lsb_adr<-x

C'est aussi simple que ça non?
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Sonic The Hedgehog SCD

Message par touko »

C'est bizarre je viens d'essayer et ça marche ..
La syntaxe que je t'ai donné est la bonne c'est sur, mais tu dois avoir un souci ailleurs ..

Rajoutes des espaces devant ton lda , en le mettant prés du bord j'ai la même erreur que toi .

Comme ça ça marche :

Code : Tout sélectionner

#asm
    lda #low(_collision_map)	   
#endasm
Comme ça non :

Code : Tout sélectionner

#asm
lda #low(_collision_map)	   
#endasm
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

Effectivement c'est ça!
Quand l'assembleur râle il suffit de changer l'indentation pour que ça marche :shock:
Sinon apparemment un bon endroit ou déclarer des variables en pages 0 avec Huc c'est tout à la fin du library.asm.

Au fait Mooz, ou utilise tu le map_width dans ton listing?
A moins que je n'ai pas compris et que ce soit celui pour le padding à 256 octets?
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
MooZ
Administrateur
Messages : 2090
Inscription : jeu. 16 déc. 2004 14:25
Contact :

Re: Sonic The Hedgehog SCD

Message par MooZ »

@xav: nulle part :) Comme on connait le padding on n'a pas besoin de la largeur pour calculer l'offset.
Et ce problème d'espace dans pceas est assez frustrant. Je vais voir ce que je peux faire.
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

J'ai modifier le script lua dans mapwin pour créer un padding de 256 octets, l'augmentation de taille n'est pas si problématique que je ne le craignais au départ :D
J'ai aussi retiré la nécessité d'ajouter 2 au pointeur (j'avais réservé les 2 premier octets pour stocker la taille de la map, mais c'est bête de perdre du temps a chaque passage).
NB: Question béte, mais y a il moyen de créer un deuxième pointeur sur constant avec déjà le décalage de deux octet?

Par contre pas moyen de faire marché ton code mooz :oops:

Pourtant un code plus simpliste marche bien, même avec les coordonnées en page zéro:
lda <amap_x
sta _ptr_op
lda <amap_y
sta _ptr_op+1
lsrw _ptr_op
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Sonic The Hedgehog SCD

Message par touko »

xav a écrit : NB: Question béte, mais y a il moyen de créer un deuxième pointeur sur constant avec déjà le décalage de deux octet?
bah tu fais :
ptr = tab1 + 2; :mrgreen:
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

bah tu fais :
ptr = tab1 + 2;
Justement le compilateur me refuse ce type d'opération sur un pointeur de constant :|
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Sonic The Hedgehog SCD

Message par touko »

Justement, j'ai testé et ça marche ...
Il faut que ton pointeur soit en global,et bien sur de même type.
Je l'ai même fait en asm, et aucun problème.

Code : Tout sélectionner

#include "huc.h"

const char tab[] = { 1,2,3,4 };
char *ptr;	
						   
main()
{
  ptr = tab + 2;
  put_number(*ptr,3,10,10);
 } 

Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Re: Sonic The Hedgehog SCD

Message par xav »

Nouille que je suis! Merci Touko :wink:

Bon j'ai intérêt à mettre un coup d'accélérateur d'ici Noël moi :mrgreen:
"Theory, it's when we know everything and nothing works. Practice, it's when everything works and nobody knows why. Here, we have put together theory and practice : Nothing works... and nobody knows why!" (Albert Einstein)
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Sonic The Hedgehog SCD

Message par touko »

xav a écrit :Nouille que je suis! Merci Touko :wink:
Pas de quoi :wink:
Avatar de l’utilisateur
dudule
NECromancer
Messages : 3111
Inscription : sam. 25 déc. 2004 21:06

Re: Sonic The Hedgehog SCD

Message par dudule »

xav a écrit :Nouille que je suis! Merci Touko :wink:

Bon j'ai intérêt à mettre un coup d'accélérateur d'ici Noël moi :mrgreen:
tu vas le finir pour Noel ??? ouai cool, hey les copings il va sortir pour Noel \o/
<a><img></a><br>
Répondre