Poster un nouveau sujet Poster une réponse <<   Page: , 2,      >>
[ASM] Doodle Jump !
Auteur Message
-Coco-
Invité
Posté le : Mar 05 Avr 2011, 16:08   Citer 

En effet tu n'es pas un grand connaisseur.
C'est programmé en assembleur, donc bien plus complqué que le language C.
Dans tous les cas ça finit en hexadécimal.
Si vous voulez voir à quoi ça ressemble de l'assembleur vous pouvez toujours chercher sur Google.

  Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Mar 05 Avr 2011, 17:03   Citer 

moi pour la mémoire sur la calto j'ai presque que des programmes en basic alors si ma mémoire s'efface je les recopie facilement^^ Alors si j'amais quelqu'un a un logiciel qu'il se manifeste svp^^ bigmouth.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 05 Avr 2011, 18:05   Citer 


Citer : -Coco-
C'est programmé en assembleur, donc bien plus complqué que le language C.
Dans tous les cas ça finit en hexadécimal.


Je concède que l'assembleur n'est pas du C.
Mais ION execute un code qui ne semble pas du tout hexadécimal. ahh.gif

L'assembleur est le language humain quasiment le plus proche du language de la machine (différent selon la machine). On le compile ensuite pour que la machine puisse le lire. Les programmes codés en assembleur tel que je les connais le mieux sont compilés en Hexadécimal pour être lus par la calculatrice.
Certains programmes sont compilés différemment (pas hexadéci) pour être executés avec des shells comme ION.

Quelqu'un a posté un prog paraît-il compilé à partir de C et executé par un shell (hexadécimal, lui) ... D'autre part j'immagine qu'un bon compilateur doit pouvoir compiler différents trucs.
Ainsi j'immagine que le language décompilé n'est pas forcément de l'assembleur (indpendamment du format de compilation). C'est pour cela que j'ai confondu le C et l'asm.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
-Coco-



Autorisation : Membre
Nb de messages : 149
Inscrit le : Sam 28 Nov 2009, 16:09
Posté le : Lun 11 Avr 2011, 18:36   Citer 

Bon, j'ai réussi à faire la version avec gestion du high score, je vous la poste sur la page de présentation !
(c'est pas si dur en fait ^^)

Pour ceux que ça intéresse, voici le code actuel de Doodle Jump :

Code


#define TI83
      .nolist
      #include "ion.inc"
      .list
      #include "Ionsim.z80"    ;Ionsim sert ici à définir les fonctions telles que Putsprite (c'est moi qui l'a créé! ;) )
      
dx = saferam1
dy = dx+1
px = saferam1+2
py = px+1
var = py+1
revar = var+1
score = var+2
gx = score+2
dir = gx+1
deadvar = dir+1
newplat = deadvar+1
varplat = newplat+1
decplat = varplat+1

maxvalue = decplat+1


#ifdef TI83P
      .org progstart-2
      .db $BB,$6D
#else
      .org progstart
#endif
      ret

      jr  nc,start_program
      .db  "Doodle Jump TI par Coco",0


start_program:
      Defvar(decplat,10) ; variable qui va augmenter l'écart de 1 tout les xx plateformes
      Defvar(varplat,5) ;écart entre els plateformes (variable)
      Defvar(newplat,10)   ; mise au même de newplat(constante)
      
      Defvar(maxvalue,50) ;la valeur pour laquelle on se téléporte de côté
      
      Defvar(dx,30)
      Defvar(dy,2)
      Defvar(py,15)
      Defvar(px,30)
      call putp
      Defvar(gx,0)
      Defvar(dir,1)
      Defvar(var,1)
      Defvar(deadvar,65)
      ld hl,0
      ld (score),hl
      
loop:
      call putd
      Flipbuf
      call putd
      ld a,(var)   ;var vaut 0 : ne pas monter ni descendre
      cp 0
      jr z,noup
      ld hl,dy ;montée, descente
      ld a,(hl)
      ld b,a
      ld a,(gx)
      cp 0
      jr nz,goup
      ld a,b
      inc a
      jr updownok
noup:
      Defvar(var,2)
      jr noup_deux
goup:
      ld a,b
      dec a
      ld hl,gx
      dec (hl)
updownok:
      ld hl,dy
      ld (hl),a
      cp 56 ;si 56 arreter
      jp z,stop
      
;le (normalement) pixel test   
      ld a,(gx)
      cp 0
      jr nz,noup_deux ;si le doodle va vers le haut, alors pas de pixel test
      ld a,(dy)
      add a,6
      ld e,a
      ld a,(dx)
      add a,4
      call ionGetPixel
      ld a,(hl)
      or a
      call nz,bounce
noup_deux:      
      ld hl,var
      dec (hl)
      Getkey
      cp gk_clear
      jp z,stop_immediat
      cp gk_left
      call z,moveleft
      cp gk_right
      call z,moveright
      
      ld a,(dy) ;test si t'es mort
      cp 55
      call z,scroll_dead
      ld a,(deadvar)
      cp 0
      jp z,stop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;scrolling up;;;;;;;;;;;;;;      
      ld a,(dy)
      cp 5
      call z,scroll_one
      ld a,(varplat)
      cp 0
      call z,platform_new
      
      ld a,(decplat)
      cp 0
      call z, decplatecart
      
;;;;;pour la téléportation d'un coté à un autre
      ld a,(maxvalue)
      inc a
      inc a
      ld b,a
      ld hl,dx
      ld a,(hl)
      cp -2
      jr z,tpmax
      cp b
      jr z,tpzero
      
      jp loop
tpzero:
      ld a,0
      ld (hl),a
      jp loop
      
tpmax:
      ld a,(maxvalue)
      ld (hl),a      
      jp loop
      
decplatecart:
      Defvar(decplat,10)
      ld hl,newplat
      inc (hl)
      ret
      
bounce:
      Defvar(gx,45)
      ret

moveleft:
      Defvar(dir,0)
      ld hl,dx
      dec (hl)
      dec (hl)
      ret

moveright:
      Defvar(dir,1)
      ld hl,dx
      inc (hl)
      inc (hl)
      ret
      
stop:
      ld de,(30*256)+20
      ld hl,str_youaredead
      ld (pencol),de
      bcall(_vputs)
      Waitkey
      Clear
      ld de,(1*256)+2
      ld hl,str_score
      ld (currow),de
      bcall(_puts)
      bcall(_newline)
      ld hl,(score)
      bcall(_disphl)
      bcall(_newline)
      ld hl, (highscore)
      ld de, (score)
      bcall(_cphlde)
      jp p,disphigh
      bcall(_newline)
      ld hl,str_newhigh
      bcall(_puts)
      ld hl,(score)
      ld (highscore),hl
      jr wait
      
      
disphigh:
      ld hl,str_high   ;"High score:"
      bcall(_puts)
      bcall(_newline)
      ld hl,(highscore)
      bcall(_disphl)
wait:   
      Waitkey
stop_immediat:
      ret
      
scroll_dead:
      ld      hl,grbuf+12             ;
        ld      de,grbuf                ;
        ld      bc,756                  ;
        ldir                            ;
        ld      h,d                     ;
        ld      l,e                     ;
        inc     e                       ;
        ld      (hl),b                  ;
        ld      c,11                    ;
        ldir                            ;      
      ld hl,dy
      dec (hl)      
      ld hl,deadvar
      dec (hl)
        ret                             ;
      
scroll_one:
      ld      hl,grbuf+(62*12)          ;
        ld      de,grbuf+(63*12)          ;
        ld      bc,756                  ;
        lddr                            ;
        ld      h,d                     ;
        ld      l,e                     ;
        inc     e                       ;
        ld      (hl),b                  ;
        ld      c,11                    ;
        lddr                            ;
      ld hl,dy
      inc (hl)
      ld hl,varplat
      dec (hl)
      ld hl,(score)
      inc hl
      ld (score),hl
        ret                             ;
      
platform_new:
      Random(50)
      ld hl,px
      ld (hl),a
      Defvar(py,0)
      call putp
      ld hl,newplat
      ld a,(hl)
      inc hl
      ld (hl),a
      ld hl,decplat
      dec (hl)
      ret
      
putp:
      Putsprite(px,sp_platform,3)
      ret
putd:
      ld a,(dir)
      cp 1
      jr z,putdright
      Putsprite(dx,sp_doodle_left,7)
      ret
putdright:
      Putsprite(dx,sp_doodle,7)
      ret
      
sp_doodle:
      .db %01111000
      .db %10001110
      .db %10010110
      .db %10000100
      .db %10000100
      .db %11111100
      .db %10010100

sp_doodle_left:
      .db %00011110
      .db %01110001
      .db %01101001
      .db %00100001
      .db %00100001
      .db %00111111
      .db %00101001

sp_platform:
      .db %01111110
      .db %10000001
      .db %01111110
      
str_youaredead:
      .db "Perdu!",0
str_score:
      .db "Votre score:",0
str_high:
      .db " High score:",0
str_newhigh:
      .db " Nouveau High!",0
      
highscore:
      .dw 0

      
.end





C'est aussi pour vous montrer qu'une petite amélioration telle un ressort est tout sauf facile à mettre en oeuvre, alors ne m'en demandez pas trop ^^

 Adresse email Haut de page Bas de page 
 
godzlove



Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Lun 11 Avr 2011, 21:03   Citer 

cool je l'attendais avec impatience winkle.gif merci beaucoup !!!!

EDIT : tu disais que le programme était tellement rapide que tu avais du le ralentir, chaque fois que tu fais un amélioration, baisse le ralentissement pour compenser celui créé par les modifications

 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Ven 29 Avr 2011, 13:06   Citer 

Moi j'ai un problème c'est que je télécharge le fichier ion et apré je vais sur ti-connect. je fait restore en mettant dans le fichier ou il y a tous mes programmes les ion. mais il me dit que c'est incompatible. j'ai essayé de tous mettre mais il me dit que tout est incompatible crazy.gif j'arrive à mettre doodle mais vu que y a pas les ions il arche pas. Si quelqu'un à une explication et un moyen que j'y arrive n'hésitez pas. (e ne vais pas sur ti-graph link parce que sa marche pas :p) Merci d'avance glasses.gif

EDIT : C'est bon j'ai trouvé bigmouth.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
desoutte
Invité
Posté le : Mer 21 Sep 2011, 19:37   Citer 

slt tout le monde

est ce possible de l'avoir en hexadécimal ???

le recopiage n'est pas un problème.

le truc c'est que je sait pas comment faire pour "convertir" du asm en hexadécimal.

ps: j'ai une ti-82 stats.fr

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 21 Sep 2011, 19:47   Citer 

Désolé, ce n'est pas possible de le transformer en code héxadécimal : il a été compilé pour le shell ION (qu'il faut donc télécharger et installer : il faut un cable pour relier à l'ordi) et en plus le programme utilise des routines préfaites du shell, qu'il faudrait reprogrammer pour que le programme fonctionne. Pur finir, las forme compillée est un charabia orible des fonction (dont certaines ne sont même pas accéssibles depuis la TI).

Pour fnir, il faut être suicidaire pour recopier un code héxadécimal (ou autre version compilée) de plus de quelques lignes : à chaque erreur, tu as plus de 9 chances sur 10 de faire planter la calculatrice (tu doit donc faire un reset en enlevant les piles) ou de provoquer directement un reset.

En espérant de t'avoir aidé

Sandro

PS : je pense qu'il serrait même plus facile de créer un nouveau Doodle Jump en s'inspirant de celui-là que de le convertir en code héxadécimal.

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 22 Sep 2011, 14:36   Citer 

ça doit être décompilable quand même... il doit bien exister un logiciel pour ça...


mais c'est vrai que tu es suicidaire, il va bien faire dans les 50 lignes en hexa...

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Jeu 22 Sep 2011, 18:33   Citer 

Décompilable, je pense que ça doit être faisable (même si c'est ue horreur car tout les labels (et alias aussi je pense) auront été remplacés par leurs addresses mémoires). Deplus, le code décompilé est déjà existant (voir code source), mais il faudrait aussi décompiler ION pour récupérer les routine propres à celui-ci qui sont utilisés.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 22 Sep 2011, 18:56   Citer 

Ah. Si tu le dis ... goutte.gif

 Adresse email Haut de page Bas de page 
 
bleachis
Invité
Posté le : Jeu 22 Sep 2011, 19:58   Citer 

bonjour je voudrai installer ce jeux sur ma TI-82 stats.fr mais je nai apsolument rien compris pouver vous m'expliquer comment my prendre?

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Jeu 22 Sep 2011, 20:54   Citer 

Pur commencer, as-tu un cable pour relier ta I à l'ordi? Si tu n'en as pas, tu ne poura pas recopier un programme en assembleur pour ION comme celui-ci.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
bleachis
Invité
Posté le : Jeu 22 Sep 2011, 21:17   Citer 

je nai pas le cable, enfin si jai le cable mais il ne se branche pas a lordi il fo que jachete un adaptateur usb je croi mais jai cru conprendre que on pouvais tou de meme installer des jeux

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 22 Sep 2011, 21:22   Citer 

oui tu peux, en recopiant le code source d'un des nombreux programmes postés sur ce forum, dans l'éditeur de programmes.

Tu ne peux avoir par contre que les programmes en Basic, pas ceux en ASM comme ce doodle jump.

 Adresse email Haut de page Bas de page 
 
bleachis
Invité
Posté le : Jeu 22 Sep 2011, 21:26   Citer 

Mais ou dois-je recopier ces code ?

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 22 Sep 2011, 21:32   Citer 

dans le menu programmes (touche [prgm] ) tu vas dans "NEW", tu fais enter, tu écris le nom du prog, et ensuite tu as l'éditeur de programmes.

Tu recopies, en utilisant les fonctions de progra trouvables en refaisant [prgm].

 Adresse email Haut de page Bas de page 
 
desoutte
Invité
Posté le : Ven 23 Sep 2011, 15:35   Citer 

ok
merci de m'avoir repondu
c doonc tant pis j'acheterai le cable si g le temp

  Haut de page Bas de page 
 
bleachis
Invité
Posté le : Ven 23 Sep 2011, 17:46   Citer 

desoler mais je n'ai pas compris se ke je dois taper quand "PROGRAMME Nom=" safiche et surtous comment je dois le faire

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Ven 23 Sep 2011, 18:28   Citer 

tu appuis sur les touches correspondant aux lettres du nom du programme(pas la peine d'activer l'alpha lock, c''est fait automatiquement).

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse <<   Page: , 2,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink