IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Création de jeux vidéo Discussion :

Questions /aide pour reprogrammer Mario Kart snes en 4 joueurs


Sujet :

Création de jeux vidéo

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut Questions /aide pour reprogrammer Mario Kart snes en 4 joueurs
    Bonjour à tous,

    Cela fait plusieurs mois que j'y réfléchi et après avoir lu le tuto sur la programmation sur Super Nintendo, je voudrais me lancer sur un projet qui me tiens à cœur :
    reprogrammer Mario Kart en assembleur et mettre le code sur cassette pour pouvoir jouer en 4 joueurs sur la Super Nintendo.

    J'ai bien conscience de la quantité de travail, du temps que cela demande, mais je suis bien déterminé et j'ai du temps libre à me consacrer plutôt que de regarder des bêtises à la TV.
    je suis quelqu'un qui adore créer des choses, qui ne se décourage pas, et qui est amoureux de la Super Nintendo.

    J'ai par le passé créé une carte électronique pour la SNCF sur TGV avec la programmation d'un PIC18F6527 en langage C pour venir lire, enregistrer des info dans une EEPROM et retranscrire ces info sur des leds sous certaines conditions, sans aucune connaissance de l'électronique et du langage C au départ.

    Le problème est que je débute en assembleur et je ne vois pas bien par où commencer ce grand projet.
    les premières questions qui me viennent à l'esprit : comment refaire à l'identique les circuits, les images, les musiques, les comportements et les interactions du jeu?
    j'imagine la programmation de la carapace rouge par exemple, je ne vois pas du tout comment créer cela...
    j'imagine aussi qu'il va falloir une cassette avec plus de mémoire.

    Apparemment il est impossible de récupérer le code source, mais j'ai cru comprendre qu'il était possible avec des logiciels de récupérer certaines choses comme les musiques, les images ou autre.
    Est-ce possible?

    Que me conseillez vous après la maîtrise de l'assembleur sous Geany?
    est-ce qu'une ROM du jeu récupérée sur PC peut m'aider? récupération des images, des circuits, les musiques et autres bruits?
    comment ces ROM sur PC sont elles faites? je ne pense pas que les gens ont tout re-codé à la main.

    Je pense que ce projet est réalisable sur 1 ou 2 ans, j’espère ne pas paraître arrogant en disant cela.
    Street Racer est en 4 joueurs, pourquoi pas Mario kart ...

    Je cherche juste à ce qu'on me mettent sur les rails, savoir par où commencer, et avec quels outils attaquer tout cela.
    N'hésitez pas à donner vos avis, vos idées.
    Merci d'avance pour votre aide

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Elle est pour moi celle la ?

    Pour les sprite cela sert a rien de vouloir les ripper , ils le sont deja : http://www.spriters-resource.com/snes/smariokart/

    Pour commencer comme tout les jeux il faut commencer avec des projet plus petit , Mario Kart ça demande deja d'avoir de solide base , de plus la super nintendo est pas la console la plus simple a programmer
    Le début c'est tout simplement est que tu arriverai a faire un jeu plus simple sur SNES ? avec le tuto que j'ai fait par exemple ?
    Je pense que tu devrait viser comme objectif un genre d F-Zero en premier plus simple , ça demande juste a bien maitriser le Mode 7 ( j'ai pas fait de tuto la dessus pour la simple et bonne raison que ben personne prog sur SNES en général).

    Et comme d'habitude le gros point fort a apprendre quand on fait un jeu (et tout autre logiciel) c'est algorithme , afficher des image , controler les manettes , c'est simple , le son j'ai pas fait un tuto dessus mais c'est pas non plus la mer a boire.

    j'imagine aussi qu'il va falloir une cassette avec plus de mémoire.
    De nos jours c'est plus vraiment un probleme
    A l'époque oui le prix du Mo était chère de nos jours c'est complètement dérisoire.

    Bref il suffit d'y aller par étape essaye en premier lier de maitriser le mode 7 et faire un circuit et ensuite tu verra (rajouter un véhicule ensuite les effet ect).

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ok
    je vais suivre tes conseilles.
    Ok pour les sprites, je suis rassuré

    j'ai compris qu'il fallait un éditeur (comme geany), une plate-forme pour l'assembleur (comme wla-dx) et d'un émulateur (j'ai higan)

    le problème est que je n'arrive pas à installer wla-dx sous linux.
    Lorsque je rentre dans le dossier et que je clic sur le fichier d'install, un texte apparaît, mais je ne comprends pas vraiment ce qu'il explique.
    si tu as été confronté à ce problème, je veux bien que tu m'indique comme

    En tout cas merci pour ta réponse Kannagi, je commence à y voir plus clair, et ça motive

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Lorsque je rentre dans le dossier et que je clic sur le fichier d'install, un texte apparaît, mais je ne comprends pas vraiment ce qu'il explique.
    si tu as été confronté à ce problème, je veux bien que tu m'indique comme
    J'ai l'impression que tu n'es pas un habituer de la programmation informatique , un long chemin t'attend avant que ton projet aboutisse.
    Il y a un makefile , donc il suffit juste de taper make sur le terminal.
    Et normalement tu aura un dossier binaries avec les binaires dedans.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    non c'est vrai je ne suis pas habitué, mais je ne me décourage pas.

    j'ai recherché plusieurs heures sur le fonctionnement de WLA et j'avoue que je galère pas mal
    j'ai une question.
    tu dit sur le tuto :

    Pour compiler :

    ./wla-65816 -o main.asm main.obj

    je ne vois pas bien ce que tu veux dire.
    Il faut créer des fichiers et dossiers?

    J'espère ne pas paraître trop ridicule.
    Merci

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Bah il suffit juste de taper sur le terminal : ./wla-65816 -o main.asm main.obj
    Et en configurant bien Geany , il suffit juste t'appuyer sur le bouton compiler.
    Si tu creer un script bash (comme je l'ai mis sur mon tuto) sur geany il suffit juste de mettre
    sur compilation (un truc dans le genre) : bash /home/kannagi/Documents/SDK/SNES/bin/snes.sh main
    sur exécution : snes9x -displayframerate -displaykeypress main.smc

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    je viens de me rendre compte que l’exécution de ./unix.sh ne s'est pas faite correctement
    J'ai pleins de warning.
    il faut que je règle ça avant d'aller plus loin dans ton tuto.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,
    pouvez-vous m'aider svp, je n'arrive pas à débugger wla, voici les premiers warning qu'il m'indique :


    * compiling WLA binaries *
    ****************************************************************

    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-huc6280
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB pass_1.c
    include_file.c: In function ‘include_file’:
    include_file.c:210:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
    fread(include_in_tmp, 1, file_size, f);
    ^
    include_file.c: In function ‘incbin_file’:
    include_file.c:341:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
    fread(in_tmp, 1, file_size, f);
    ^
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:3000:11: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf(f->f, "%c", &c);
    ^
    pass_1.c:3846:10: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
    fread(rom_banks, 1, max_address, file_in_ptr);
    ^
    pass_1.c:4095:10: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
    fgets(k, 254, stdin);


    c'est toujours les mêmes lignes de warning qui reviennent, avec fscan, fread et fgets.

    Avez-vous une idée ?

    Merci d'avance

  9. #9
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    et quand tu tape sur le terminal :
    ça donne quoi ça compile ou pas ?

    Normalement les warning ne stoppe pas la compilation.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    quand je tape :
    bash unix.sh 1, ou ./unix.sh 1, j'ai les même warning, mais j'en ai énormément, je ne pense pas que ce soit normal

    J'ai un dual core, donc normalement je devrait taper la ligne de commande :
    ./unix.sh 4 à l'adresse du dossier wla_dx_9.5

    je n'en suis pas encore à compiler car quand je tape la ligne de commande "./wla-65816 -o main.asm main.obj" il me dit " aucun dossier ou fichier de ce type"
    j’imagine que si la commande ./unix.sh 4 se passe bien, cela doit me créer un dossier "wla-65816" à l'adresse ..../wla_dx_9.5
    hors ce n'est pas le cas.

    je fais toutes ces commandes à l'adresse ..../wla_dx_9.5 dans le terminal
    c'est bien à cette adresse qu'il faut faire les commandes?

  11. #11
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    oui ,tu as vérifié que tu as bel et bien les binaires sont bien compiler dans le dossier binaries ?

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    j'ai un dossier "binaries" avec à l'intérieur 3 fichiers :
    wlab
    wlad
    wlalink

  13. #13
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Ecoute moi j'ai re dl et re compiler et ça marche impec voila ce que ça met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
     
    [kannagi@kannagi wla_dx_9.5]$ bash unix.sh 1
     
    ****************************************************************
    *          creating opcode decoding speedup tables             *
    ****************************************************************
     
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DGB -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DZ80 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DMCS6502 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DWDC65C02 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DMCS6510 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DW65816 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DSPC700 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
    gcc -c -ansi -pedantic -Wall -DUNIX -DHUC6280 -DQUIET=1 main.c
    gcc  main.o -o gen ; strip gen
    rm -f main.o core *~ gen
     
    ****************************************************************
    *                   compiling few tools                        *
    ****************************************************************
     
    gcc -c -ansi -O3 -pedantic -Wall main.c
    gcc  main.o -o wlab ; strip wlab
    rm -f main.o core *~ wlab
    gcc -c -ansi -O3 -pedantic -Wall -DUNIX -DGB main.c
    gcc  main.o -o wlad ; strip wlad
    rm -f main.o core *~ wlad
     
    ****************************************************************
    *                  compiling WLA binaries                      *
    ****************************************************************
     
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-huc6280
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB stack.c
    stack.c: In function ‘stack_calculate’:
    stack.c:92:10: attention : ‘dou’ is used uninitialized in this function [-Wuninitialized]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DGB listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-gb ; strip wla-gb
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-gb
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 stack.c
    stack.c: In function ‘stack_calculate’:
    stack.c:92:10: attention : ‘dou’ is used uninitialized in this function [-Wuninitialized]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DZ80 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-z80 ; strip wla-z80
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-z80
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 stack.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6502 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-6502 ; strip wla-6502
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-6502
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 stack.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DWDC65C02 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-65c02 ; strip wla-65c02
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-65c02
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 stack.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DMCS6510 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-6510 ; strip wla-6510
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-6510
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    pass_1.c:5332:43: attention : array subscript is above array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 stack.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DW65816 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-65816 ; strip wla-65816
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-65816
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 stack.c
    stack.c: In function ‘stack_calculate’:
    stack.c:92:10: attention : ‘dou’ is used uninitialized in this function [-Wuninitialized]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DSPC700 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-spc700 ; strip wla-spc700
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-spc700
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 main.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 parse.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 include_file.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 pass_1.c
    pass_1.c: In function ‘parse_directive’:
    pass_1.c:2320:12: attention : array subscript is below array bounds [-Warray-bounds]
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 pass_2.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 pass_3.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 pass_4.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 stack.c
    gcc -c -O3 -ansi -pedantic -Wall -DUNIX -DHUC6280 listfile.c
    gcc -lm main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o -o wla-huc6280 ; strip wla-huc6280
    rm -f main.o parse.o include_file.o pass_1.o pass_2.o pass_3.o pass_4.o stack.o listfile.o core *~ wla-huc6280
     
    ****************************************************************
    *                    compiling WLALINK                         *
    ****************************************************************
     
    gcc -c -O3 -ansi -pedantic -Wall main.c
    gcc -c -O3 -ansi -pedantic -Wall memory.c
    gcc -c -O3 -ansi -pedantic -Wall parse.c
    gcc -c -O3 -ansi -pedantic -Wall files.c
    gcc -c -O3 -ansi -pedantic -Wall check.c
    gcc -c -O3 -ansi -pedantic -Wall analyze.c
    gcc -c -O3 -ansi -pedantic -Wall write.c
    gcc -c -O3 -ansi -pedantic -Wall compute.c
    gcc -c -O3 -ansi -pedantic -Wall discard.c
    gcc -c -O3 -ansi -pedantic -Wall listfile.c
    gcc  main.o memory.o parse.o files.o check.o analyze.o write.o compute.o discard.o listfile.o -o wlalink ; strip wlalink
    rm -f main.o memory.o parse.o files.o check.o analyze.o write.o compute.o discard.o listfile.o core *~ wlalink
     
    ****************************************************************
    *        all done! check ./binaries/ for the results           *
    ****************************************************************
     
     
    [kannagi@kannagi wla_dx_9.5]$
    donc si tu pouvais me donner le tien en entier (n'oublie pas de mettre sur le forum la balise code).
    Mais a vrai dire je ne vois pas ou est le probleme.
    si t'es en 64bits sur linux alors tu peux dl ici : binaries.zip

    On regardant ton probleme de plus pret , certains ont le meme soucis que toi concernant cette erreur warn_unused_result.
    Ce qui est bizarre j'ai que je ne l'ai pas , peut être que la nouvelle version de gcc est plus strict
    tu as quel version de gcc (moi la 4.7.2) , tu l'aura en tapant gcc -v.
    Si tu veux savoir d'ou viens le probleme je te conseille de poster sur le forum C qui sont plus caler que moi sur les spécificité de gcc.

  14. #14
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En effet warn_unused_result est un ajout de GCC 4.9. Pour toutes fonctions qui retournent une valeur (généralement un code d'erreur), GCC indique un avertissement lorsque cette valeur de retour n'est pas vérifiée. Cela peut permettre aux développeurs de bien vérifier les retours des fonctions (ils oublient si souvent ).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    j'ai gcc version 4.8.4
    merci pour les binaries, mais je dois vraiment être un poissard, lorsque je commence dans le terminal "/wla_dx_9.5/binaries $ ./wla-65816 -o main.asm main.obj" il me met :
    INCLUDE_FILE: Error opening file "main.asm"

    Je vais mettre la version GCC 4.7.2 comme tu as pour refaire les binaires

    j'ai trop de caractères pour pouvoir utilise la balise code du forum, voici en pièce jointe un fichier zip de ce que le terminal me sortait lorsque je lancait ./unix.sh
    Fichiers attachés Fichiers attachés

  16. #16
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Tu comprend ce que tu fait au moins ?
    Pour assembler main.asm il faut deja le créer et le remplir x)

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    exact, excuse, j'avais mal compris.
    j'ai réussi à faire fonctionner tes exemples sur higan, mais je bloque avec DMA_DATAL, le terminal me met un erreur lorsque je créée le fichier smc pour le chapitre IV-D. sur les DMA
    j'ai vu que dans le fichier snes.asm qu'il n'est pas mis. ca doit venir de la.
    je continu à creuser.

    Merci pour ton aide

  18. #18
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Mon tuto peu contenir quelque erreur

    Oui avant je l'appelais DMA_DATAL c'est un mauvais nom que j'ai remplacer le par DMA_SIZEL (qui est plus juste vu que c'est la taille et non une donné ).
    Donc c'est bien DMA_SIZEL que tu dois mettre.

    tu es deja a l'exemple DMA , tu as deja tout lu ? :0
    sinon c'est bien il te reste que la partie Sprite a faire

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Novembre 2015
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    oui, j'ai lu le tuto, mais dans les exemples, il y a pas mal de ligne que je ne comprends pas encore
    on m'a donné un bouquin sur l'assembleur, précisément sur le 6502, c'est le micro de la NES, j’essaie de le lire quand j'ai du temps.
    C'est du costaud !

    Par contre j'ai découvert une mauvaise nouvelle, et je crois que c'est pour ça que mario kart n'est pas en 4 joueurs.
    Je m'en suis rendu compte en jouant à Top Gear 3000 et à Street Racer en 4 joueurs:

    les décores du jeu deviennent dégelasses en 4 joueurs, on voit des gros pixel, c'est pas jouable.
    je pense que c'est volontaire pour compenser la demande de ressources du processeur de la SNES.

    De plus j'ai appris qu'il y avait dans la cassette du jeu mario kart un processeur intégré (DSP1) pour améliorer la gestion du mode 7.

    Et moi je vais arriver comme une fleur, sans ce processeur additionnel en 4 joueurs ...
    j'ai peur que le jeu ramme à mort

    Et si je découvre ça après 2 ans de programmation d'assembleur, au moment fatidique de jouer en 4 joueurs avec mes potes, je vais carrément péter un boulon.

    j'ai appris qu'il avait un autre type de processeur additionnel dans certaines cassettes de jeu : le DSP2
    mais même avec cette puce, est-ce que les perf seront assez élevées pour pouvoir joueur en 4 joueurs?
    et comment programmer cette puce DSP2 pour qu'elle travaille avec le processeur de la console?
    ça devient chaud ....

    n'hésites pas à me donner ton avis sur le sujet Kannagi, si tu en sais plus ...
    je me pose la question de simplement utiliser une console plus puissante style Gamecube ou wii avec DevkitPro pour faire mon Mario kart en 4 joueurs.

  20. #20
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Alors pour les puces additionnel ,si tu les utilise tu pourra les utiliser que via émulateur ou des Linker très spécifique qui permettent de simuler ces puces mais ces cartouches de jeu coute très cher de l'ordre de 200-300 euros.
    Il y a de la doc sur ces puces mais elle est très restreinte et faut mettre les mains dans les cambouis si tu veux vraiment l'exploité.

    je me pose la question de simplement utiliser une console plus puissante style Gamecube ou wii avec DevkitPro pour faire mon Mario kart en 4 joueurs.
    Si ton but et de faire un jeu alors il ne faut pas choisir la SNES
    Je que je veux dire c'est que la SNES est très compliqué , si tu préfère privilégié le résultat alors oui choisis une autre plateforme.

Discussions similaires

  1. Aide pour réponse aux questions d'un entretien
    Par tissam89 dans le forum Entretien
    Réponses: 4
    Dernier message: 05/06/2013, 15h57
  2. [RegEx] Question rapide pour aide regex
    Par antoine.dumaine dans le forum Langage
    Réponses: 1
    Dernier message: 09/06/2011, 08h35
  3. Question et aide pour choisir un ORM
    Par jv2759 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/07/2007, 12h18
  4. Question de débutant.. Aide pour picking
    Par diddy95 dans le forum GLUT
    Réponses: 1
    Dernier message: 18/01/2007, 10h31
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo