60

pas mal, il est bien foutu et les gfx sont sympa top

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

61

geogeo>à ué, c trés rapide alors, tellement que dans le niveau 2 on tombe dans l'eau avant que le sous-marin se soit barré Ou alors c le sous-marin qui vient me récupérer ??


yep faut que je régle la vitesse, mais la j'ai juste diffuser une démo, c'est pas vraiment jouable.
geogeo> J'ai testé sur VTI, avec peu de RAM libre, et le jeu s'est quand même lancé, mais affichait n'importe quoi au niveau des graphismes. Pourtant, les graphismes sont dans un fichier à part, ça ne devrait pas prendre de RAM en plus ?


Faut que je calcul la RAM necessaire, mais les allocations sont les suivantes:
-Buffer FLIPV Player = 96*4 octets
-Buffer map = 4096 octets
-Background défilant = 512 octets
-Table conversion map->index = 256 octets.
-Table offset_x décors = 5*128*2 octets
-Table prioritée d'affichage = 128 octets
-Table piliers = 4*4 octets
-ScreenBuffer = 9600 octets
-SaveScreen = 3840 octets

Voilà les allocations permanentes dans le jeu. Si les graphismes étaient modifiées c'est que le pointeur FileGFX est devenu faux à cause d'un garbage collecte de la RAM sans doute.Tu avais combien de RAM libre?

pas mal, il est bien foutu et les gfx sont sympa


mici smile


avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

62

Si les graphismes étaient modifiées c'est que le pointeur FileGFX est devenu faux à cause d'un garbage collecte de la RAM sans doute.

Il faut locker ton handle!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

63

Si le fichier est en RAM, le handle est forcément locké, non ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

64

Au contraire. C'est si le fichier est archivé que le handle est forcément locké.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

65

Ils sont lockés les fichiers pourtant. confus

//Pour locker je fait
entry_fileMAPS->handle=HeapLock (entry_fileMAPS->handle);
	entry_fileGFX->handle=HeapLock (entry_fileGFX->handle);



//Pour délocker je fais
HeapUnlock (entry_fileMAPS->handle);
	HeapUnlock (entry_fileGFX->handle);


Je dois mal m'y prendre!

avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

66

Vraiment pas mal au niveau rendu smile
avatar

67

geogeo > pour les niveaux tu devrais plutot mettre 1 2 3 4 5 etc plutot que + ou - pour changer de niveau parce que c'est galère comme tu l'as vu avec les réactions du dessus...

68

Euh ouai toute façon on pourra plus passer les niveaux comme ça avec la prochaine bêta.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

69

Je travail en ce moment sur l'adapattion du jeu sur TI89, j'ai réalisé 2 routines de dézoom de 240x128 en 160x128, une travail sans tables et une autre avec tables, les fps sont identiques pour les 2 routines.

Voici le code de la routine avec tables: ;C prototype: void CopyScreenBufferToScreen2 (void *src, void *dest1, void *dest2); ; ;void CopyScreenBufferToScreen2 (register void *src asm("%a0"), ;                register void *dest1 asm("%a2"), ;                register void *dest2 asm("%a3"));      xdef CopyScreenBufferToScreen2 CopyScreenBufferToScreen2:      move.l   d3,-(a7)      move.l   a4,-(a7)      move.l   a5,-(a7)            lea.l    _data_table0(PC),a4     ; Table 5 bits      lea.l    _data_table1(PC),a5     ; Table 6 bits            lea      480(a0),a0          ;(16*30)*2 avance de 16 lignes           lea      4800(a0),a1          ;9600/2 = 4800      move.l      #127,d2          ;Prépare la boucle de 128 pixels ;Sequence = 5.6.5.5.6.5 ;*************** ;LIGHT PLANE ;*************** \LineStart_LIGHT:      moveq.l  #4,d0 \line_lightplane:      moveq.l  #0,d1      moveq.l  #0,d3            ;Octet 1 (5)      move.b   (a0)+,d1          move.b   0(a4,d1.w),d3          lsl.l    #6,d3                    ;Octet 2 (6)      move.b   (a0)+,d1          or.b     0(a5,d1.w),d3          lsl.l    #5,d3                    ;Octet 3 (5)      move.b   (a0)+,d1          or.b     0(a4,d1.w),d3          lsl.l    #5,d3                    ;Octet 4 (5)      move.b   (a0)+,d1          or.b     0(a4,d1.w),d3          lsl.l    #6,d3                    ;Octet 5 (6)      move.b   (a0)+,d1          or.b     0(a5,d1.w),d3          lsl.l    #5,d3                    ;Octet 6 (5)      move.b   (a0)+,d1          or.b     0(a4,d1.w),d3                    ;Ligne de 32 pixels          move.l   d3,(a2)+          dbf      d0,\line_lightplane            lea.l    10(a2),a2      dbf      d2,\LineStart_LIGHT ;*********************** ;DARK PLANE ;***********************      move.l      #127,d2       \LineStart_DARK:      moveq.l  #4,d0 \line_darkplane:      moveq.l  #0,d1      moveq.l  #0,d3            ;Octet 1 (5)      move.b   (a1)+,d1          move.b   0(a4,d1.w),d3          lsl.l    #6,d3                    ;Octet 2 (6)      move.b   (a1)+,d1          or.b     0(a5,d1.w),d3          lsl.l    #5,d3                    ;Octet 3 (5)      move.b   (a1)+,d1          or.b     0(a4,d1.w),d3          lsl.l    #5,d3                    ;Octet 4 (5)      move.b   (a1)+,d1          or.b     0(a4,d1.w),d3          lsl.l    #6,d3                    ;Octet 5 (6)      move.b   (a1)+,d1          or.b     0(a5,d1.w),d3          lsl.l    #5,d3                    ;Octet 6 (5)      move.b   (a1)+,d1          or.b     0(a4,d1.w),d3                    ;Ligne de 32 pixels          move.l   d3,(a3)+          dbf      d0,\line_darkplane            lea.l    10(a3),a3      dbf      d2,\LineStart_DARK      move.l   (a7)+,a5      move.l   (a7)+,a4      move.l   (a7)+,d3      rts ;Table de 5 bits      _data_table0:      dc.b     %00000000      dc.b     %00000000      dc.b     %00000001      dc.b     %00000001      dc.b     %00000000      dc.b     %00000000      dc.b     %00000001      dc.b     %00000001      dc.b     %00000010      dc.b     %00000010      dc.b     %00000011      dc.b     %00000011      dc.b     %00000010      dc.b     %00000010      dc.b     %00000011      dc.b     %00000011      dc.b     %00000100      dc.b     %00000100      dc.b     %00000101      dc.b     %00000101      dc.b     %00000100      dc.b     %00000100      dc.b     %00000101      dc.b     %00000101      dc.b     %00000110      dc.b     %00000110      dc.b     %00000111      dc.b     %00000111      dc.b     %00000110      dc.b     %00000110      dc.b     %00000111      dc.b     %00000111      dc.b     %00001000      dc.b     %00001000      dc.b     %00001001      dc.b     %00001001      dc.b     %00001000      dc.b     %00001000      dc.b     %00001001      dc.b     %00001001      dc.b     %00001010      dc.b     %00001010      dc.b     %00001011      dc.b     %00001011      dc.b     %00001010      dc.b     %00001010      dc.b     %00001011      dc.b     %00001011      dc.b     %00001100      dc.b     %00001100      dc.b     %00001101      dc.b     %00001101      dc.b     %00001100      dc.b     %00001100      dc.b     %00001101      dc.b     %00001101      dc.b     %00001110      dc.b     %00001110      dc.b     %00001111      dc.b     %00001111      dc.b     %00001110      dc.b     %00001110      dc.b     %00001111      dc.b     %00001111      dc.b     %00000000      dc.b     %00000000      dc.b     %00000001      dc.b     %00000001      dc.b     %00000000      dc.b     %00000000      dc.b     %00000001      dc.b     %00000001      dc.b     %00000010      dc.b     %00000010      dc.b     %00000011      dc.b     %00000011      dc.b     %00000010      dc.b     %00000010      dc.b     %00000011      dc.b     %00000011      dc.b     %00000100      dc.b     %00000100      dc.b     %00000101      dc.b     %00000101      dc.b     %00000100      dc.b     %00000100      dc.b     %00000101      dc.b     %00000101      dc.b     %00000110      dc.b     %00000110      dc.b     %00000111      dc.b     %00000111      dc.b     %00000110      dc.b     %00000110      dc.b     %00000111      dc.b     %00000111      dc.b     %00001000      dc.b     %00001000      dc.b     %00001001      dc.b     %00001001      dc.b     %00001000      dc.b     %00001000      dc.b     %00001001      dc.b     %00001001      dc.b     %00001010      dc.b     %00001010      dc.b     %00001011      dc.b     %00001011      dc.b     %00001010      dc.b     %00001010      dc.b     %00001011      dc.b     %00001011      dc.b     %00001100      dc.b     %00001100      dc.b     %00001101      dc.b     %00001101      dc.b     %00001100      dc.b     %00001100      dc.b     %00001101      dc.b     %00001101      dc.b     %00001110      dc.b     %00001110      dc.b     %00001111      dc.b     %00001111      dc.b     %00001110      dc.b     %00001110      dc.b     %00001111      dc.b     %00001111      dc.b     %00010000      dc.b     %00010000      dc.b     %00010001      dc.b     %00010001      dc.b     %00010000      dc.b     %00010000      dc.b     %00010001      dc.b     %00010001      dc.b     %00010010      dc.b     %00010010      dc.b     %00010011      dc.b     %00010011      dc.b     %00010010      dc.b     %00010010      dc.b     %00010011      dc.b     %00010011      dc.b     %00010100      dc.b     %00010100      dc.b     %00010101      dc.b     %00010101      dc.b     %00010100      dc.b     %00010100      dc.b     %00010101      dc.b     %00010101      dc.b     %00010110      dc.b     %00010110      dc.b     %00010111      dc.b     %00010111      dc.b     %00010110      dc.b     %00010110      dc.b     %00010111      dc.b     %00010111      dc.b     %00011000      dc.b     %00011000      dc.b     %00011001      dc.b     %00011001      dc.b     %00011000      dc.b     %00011000      dc.b     %00011001      dc.b     %00011001      dc.b     %00011010      dc.b     %00011010      dc.b     %00011011      dc.b     %00011011      dc.b     %00011010      dc.b     %00011010      dc.b     %00011011      dc.b     %00011011      dc.b     %00011100      dc.b     %00011100      dc.b     %00011101      dc.b     %00011101      dc.b     %00011100      dc.b     %00011100      dc.b     %00011101      dc.b     %00011101      dc.b     %00011110      dc.b     %00011110      dc.b     %00011111      dc.b     %00011111      dc.b     %00011110      dc.b     %00011110      dc.b     %00011111      dc.b     %00011111      dc.b     %00010000      dc.b     %00010000      dc.b     %00010001      dc.b     %00010001      dc.b     %00010000      dc.b     %00010000      dc.b     %00010001      dc.b     %00010001      dc.b     %00010010      dc.b     %00010010      dc.b     %00010011      dc.b     %00010011      dc.b     %00010010      dc.b     %00010010      dc.b     %00010011      dc.b     %00010011      dc.b     %00010100      dc.b     %00010100      dc.b     %00010101      dc.b     %00010101      dc.b     %00010100      dc.b     %00010100      dc.b     %00010101      dc.b     %00010101      dc.b     %00010110      dc.b     %00010110      dc.b     %00010111      dc.b     %00010111      dc.b     %00010110      dc.b     %00010110      dc.b     %00010111      dc.b     %00010111      dc.b     %00011000      dc.b     %00011000      dc.b     %00011001      dc.b     %00011001      dc.b     %00011000      dc.b     %00011000      dc.b     %00011001      dc.b     %00011001      dc.b     %00011010      dc.b     %00011010      dc.b     %00011011      dc.b     %00011011      dc.b     %00011010      dc.b     %00011010      dc.b     %00011011      dc.b     %00011011      dc.b     %00011100      dc.b     %00011100      dc.b     %00011101      dc.b     %00011101      dc.b     %00011100      dc.b     %00011100      dc.b     %00011101      dc.b     %00011101      dc.b     %00011110      dc.b     %00011110      dc.b     %00011111      dc.b     %00011111      dc.b     %00011110      dc.b     %00011110      dc.b     %00011111      dc.b     %00011111 ;Table de 6 bits      _data_table1:      dc.b     %00000000      dc.b     %00000001      dc.b     %00000010      dc.b     %00000011      dc.b     %00000000      dc.b     %00000001      dc.b     %00000010      dc.b     %00000011      dc.b     %00000100      dc.b     %00000101      dc.b     %00000110      dc.b     %00000111      dc.b     %00000100      dc.b     %00000101      dc.b     %00000110      dc.b     %00000111      dc.b     %00001000      dc.b     %00001001      dc.b     %00001010      dc.b     %00001011      dc.b     %00001000      dc.b     %00001001      dc.b     %00001010      dc.b     %00001011      dc.b     %00001100      dc.b     %00001101      dc.b     %00001110      dc.b     %00001111      dc.b     %00001100      dc.b     %00001101      dc.b     %00001110      dc.b     %00001111      dc.b     %00010000      dc.b     %00010001      dc.b     %00010010      dc.b     %00010011      dc.b     %00010000      dc.b     %00010001      dc.b     %00010010      dc.b     %00010011      dc.b     %00010100      dc.b     %00010101      dc.b     %00010110      dc.b     %00010111      dc.b     %00010100      dc.b     %00010101      dc.b     %00010110      dc.b     %00010111      dc.b     %00011000      dc.b     %00011001      dc.b     %00011010      dc.b     %00011011      dc.b     %00011000      dc.b     %00011001      dc.b     %00011010      dc.b     %00011011      dc.b     %00011100      dc.b     %00011101      dc.b     %00011110      dc.b     %00011111      dc.b     %00011100      dc.b     %00011101      dc.b     %00011110      dc.b     %00011111      dc.b     %00000000      dc.b     %00000001      dc.b     %00000010      dc.b     %00000011      dc.b     %00000000      dc.b     %00000001      dc.b     %00000010      dc.b     %00000011      dc.b     %00000100      dc.b     %00000101      dc.b     %00000110      dc.b     %00000111      dc.b     %00000100      dc.b     %00000101      dc.b     %00000110      dc.b     %00000111      dc.b     %00001000      dc.b     %00001001      dc.b     %00001010      dc.b     %00001011      dc.b     %00001000      dc.b     %00001001      dc.b     %00001010      dc.b     %00001011      dc.b     %00001100      dc.b     %00001101      dc.b     %00001110      dc.b     %00001111      dc.b     %00001100      dc.b     %00001101      dc.b     %00001110      dc.b     %00001111      dc.b     %00010000      dc.b     %00010001      dc.b     %00010010      dc.b     %00010011      dc.b     %00010000      dc.b     %00010001      dc.b     %00010010      dc.b     %00010011      dc.b     %00010100      dc.b     %00010101      dc.b     %00010110      dc.b     %00010111      dc.b     %00010100      dc.b     %00010101      dc.b     %00010110      dc.b     %00010111      dc.b     %00011000      dc.b     %00011001      dc.b     %00011010      dc.b     %00011011      dc.b     %00011000      dc.b     %00011001      dc.b     %00011010      dc.b     %00011011      dc.b     %00011100      dc.b     %00011101      dc.b     %00011110      dc.b     %00011111      dc.b     %00011100      dc.b     %00011101      dc.b     %00011110      dc.b     %00011111      dc.b     %00100000      dc.b     %00100001      dc.b     %00100010      dc.b     %00100011      dc.b     %00100000      dc.b     %00100001      dc.b     %00100010      dc.b     %00100011      dc.b     %00100100      dc.b     %00100101      dc.b     %00100110      dc.b     %00100111      dc.b     %00100100      dc.b     %00100101      dc.b     %00100110      dc.b     %00100111      dc.b     %00101000      dc.b     %00101001      dc.b     %00101010      dc.b     %00101011      dc.b     %00101000      dc.b     %00101001      dc.b     %00101010      dc.b     %00101011      dc.b     %00101100      dc.b     %00101101      dc.b     %00101110      dc.b     %00101111      dc.b     %00101100      dc.b     %00101101      dc.b     %00101110      dc.b     %00101111      dc.b     %00110000      dc.b     %00110001      dc.b     %00110010      dc.b     %00110011      dc.b     %00110000      dc.b     %00110001      dc.b     %00110010      dc.b     %00110011      dc.b     %00110100      dc.b     %00110101      dc.b     %00110110      dc.b     %00110111      dc.b     %00110100      dc.b     %00110101      dc.b     %00110110      dc.b     %00110111      dc.b     %00111000      dc.b     %00111001      dc.b     %00111010      dc.b     %00111011      dc.b     %00111000      dc.b     %00111001      dc.b     %00111010      dc.b     %00111011      dc.b     %00111100      dc.b     %00111101      dc.b     %00111110      dc.b     %00111111      dc.b     %00111100      dc.b     %00111101      dc.b     %00111110      dc.b     %00111111      dc.b     %00100000      dc.b     %00100001      dc.b     %00100010      dc.b     %00100011      dc.b     %00100000      dc.b     %00100001      dc.b     %00100010      dc.b     %00100011      dc.b     %00100100      dc.b     %00100101      dc.b     %00100110      dc.b     %00100111      dc.b     %00100100      dc.b     %00100101      dc.b     %00100110      dc.b     %00100111      dc.b     %00101000      dc.b     %00101001      dc.b     %00101010      dc.b     %00101011      dc.b     %00101000      dc.b     %00101001      dc.b     %00101010      dc.b     %00101011      dc.b     %00101100      dc.b     %00101101      dc.b     %00101110      dc.b     %00101111      dc.b     %00101100      dc.b     %00101101      dc.b     %00101110      dc.b     %00101111      dc.b     %00110000      dc.b     %00110001      dc.b     %00110010      dc.b     %00110011      dc.b     %00110000      dc.b     %00110001      dc.b     %00110010      dc.b     %00110011      dc.b     %00110100      dc.b     %00110101      dc.b     %00110110      dc.b     %00110111      dc.b     %00110100      dc.b     %00110101      dc.b     %00110110      dc.b     %00110111      dc.b     %00111000      dc.b     %00111001      dc.b     %00111010      dc.b     %00111011      dc.b     %00111000      dc.b     %00111001      dc.b     %00111010      dc.b     %00111011      dc.b     %00111100      dc.b     %00111101      dc.b     %00111110      dc.b     %00111111      dc.b     %00111100      dc.b     %00111101      dc.b     %00111110      dc.b     %00111111
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

70

Voici le code de la routine sans tables: ;C prototype: void CopyScreenBufferToScreen5 (void *src, void *dest1, void *dest2); ; ;void CopyScreenBufferToScreen5 (register void *src asm("%a0"), ;                register void *dest1 asm("%a1"), ;                register void *dest2 asm("%a2"));      xdef CopyScreenBufferToScreen5 CopyScreenBufferToScreen5:           move.l     d3,-(a7)      move.l     d4,-(a7)      move.l     d5,-(a7)            lea     480(a0),a0          ;(16*30)*2 avance de 16 lignes                 moveq.l     #127,d4      move.w     #32768,d5 bcl_allline: \LineStart2:      add.w     #7400,d5      cmp.w     #32768,d5      bhi.s     \_drawline      sub.w     #32768,d5      lea     30(a0),a0      dbf     d4,\LineStart2      move.l     (a7)+,d5      move.l     (a7)+,d4      move.l     (a7)+,d3      rts \_drawline:      moveq.l     #4,d3 bcl_line: ;lightplane      ;--------      ;Partie 1      move.l     (a0),d0            ;1      move.l     d0,d1      and.l     #%11000000000000001100000000000000,d1      and.l     #%00001110011100110000111001110011,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111000000000001111100000000000,d1            ;2      and.l     #%00000001110011000000000111001100,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111111000000001111111100000000,d1            ;3      and.l     #%00000000001100000000000000110000,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111111110000001111111111000000,d1                       ;Fusion      move.l     d1,d0      and.l     #%00000000000000001111111111000000,d1      lsl.l     #6,d1      and.l     #%11111111110000000000000000000000,d0      or.l     d0,d1                       ;Partie3      move.w     4(a0),d0            ;1      move.w     d0,d2      or.w     d0,d2      and.w     #%1100000000000000,d2      add.w     d0,d0      and.w     #%0011101101110110,d0      or.w     d0,d2      and.w     #%1111100000000000,d2            ;2      add.w     d0,d0      and.w     #%0000011011101100,d0      or.w     d0,d2      and.w     #%1111111000000000,d2            ;3      add.w     d0,d0      and.w     #%0001110111011000,d0      or.w     d0,d2      and.w     #%1111111111000000,d2            ;4      add.w     d0,d0      and.w     #%0000000000110000,d0      or.w     d0,d2      and.w     #%1111111111110000,d2            lsr.w     #4,d2      or.w     d2,d1                  move.l     d1,(a1)             ;darkplane      ;--------      ;Partie 1      move.l     4800(a0),d0      ;1      move.l     d0,d1      and.l     #%11000000000000001100000000000000,d1      and.l     #%00001110011100110000111001110011,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111000000000001111100000000000,d1            ;2      and.l     #%00000001110011000000000111001100,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111111000000001111111100000000,d1            ;3      and.l     #%00000000001100000000000000110000,d0      lsl.l     #2,d0      or.l     d0,d1      and.l     #%11111111110000001111111111000000,d1                       ;Fusion      moveq.l     #0,d0      move.l     d1,d0      and.l     #%00000000000000001111111111000000,d1      lsl.l     #6,d1      and.l     #%11111111110000000000000000000000,d0      or.l     d0,d1            ;Partie3      move.w     4800+4(a0),d0            ;1      move.w     d0,d2      or.w     d0,d2      and.w     #%1100000000000000,d2      add.w     d0,d0      and.w     #%0011101101110110,d0      or.w     d0,d2      and.w     #%1111100000000000,d2            ;2      add.w     d0,d0      and.w     #%0000011011101100,d0      or.w     d0,d2      and.w     #%1111111000000000,d2            ;3      add.w     d0,d0      and.w     #%0001110111011000,d0      or.w     d0,d2      and.w     #%1111111111000000,d2            ;4      add.w     d0,d0      and.w     #%0000000000110000,d0      or.w     d0,d2      and.w     #%1111111111110000,d2            lsr.w     #4,d2      or.w     d2,d1            move.l     d1,(a2)            addq.l     #6,a0      addq.l     #4,a1      addq.l     #4,a2      dbf     d3,bcl_line            ;lea.l     30(a0),a0      lea.l     10(a1),a1      lea.l     10(a2),a2      dbf     d4,bcl_allline            move.l     (a7)+,d5      move.l     (a7)+,d4      move.l     (a7)+,d3      rts


Comment optimiser tout ça??? Dois-je appliquer un frameskip ou trouver une autre solution?

A noter que la routine sans tables donne des graphismes un peu plus moches, mais ça doit ce corriger.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

71

Bon dernière version passage de 240x128 à 160x100, le jeu tourne à 20 fps:
;C prototype: void CopyScreenBufferToScreen2 (void *src, void *dest1, void *dest2);
;
;void CopyScreenBufferToScreen2 (register void *src asm("%a0"),
;		      register void *dest1 asm("%a1"),
;		      register void *dest2 asm("%a2"));

	xdef CopyScreenBufferToScreen2

CopyScreenBufferToScreen2:
	movem.l   d3-d5/a4-a5,-(a7)
	
	lea.l    _data_table0(PC),a4	; Table 5 bits
	lea.l    _data_table1(PC),a5	; Table 6 bits
	
	lea	 480(a0),a0	;(16*30)*2 avance de 16 lignes	

;Sequence = 5.6.5.5.6.5
	moveq.l	 #1,d4
\screen_plane:
	move.l	 #127,d2
	move.w	#32768,d5
\LineStart_LIGHT:
	moveq.l  #4,d0
	
	add.w	 #7400,d5
	cmp.w	 #32768,d5
	bhi.s	 \line_lightplane
	sub.w	 #32768,d5
	lea	 30(a0),a0
	dbf	 d2,\LineStart_LIGHT
	movem.l  (a7)+,d3-d5/a4-a5
	rts
	
\line_lightplane:
	moveq.l  #0,d1
	moveq.l  #0,d3
	
	;Octet 1 (5)
	move.b   (a0)+,d1
    	move.b   0(a4,d1.w),d3
    	lsl.l    #6,d3
    	
    	;Octet 2 (6)
	move.b   (a0)+,d1
    	or.b     0(a5,d1.w),d3
    	lsl.l    #5,d3
    	
    	;Octet 3 (5)
	move.b   (a0)+,d1
    	or.b     0(a4,d1.w),d3
    	lsl.l    #5,d3
    	
    	;Octet 4 (5)
	move.b   (a0)+,d1
    	or.b     0(a4,d1.w),d3
    	lsl.l    #6,d3
    	
    	;Octet 5 (6)
	move.b   (a0)+,d1
    	or.b     0(a5,d1.w),d3
    	lsl.l    #5,d3
    	
    	;Octet 6 (5)
	move.b   (a0)+,d1
    	or.b     0(a4,d1.w),d3
    	
    	;Ligne de 32 pixels
    	move.l   d3,(a1)+
    	dbf	 d0,\line_lightplane
	
	lea.l    10(a1),a1
	dbf	 d2,\LineStart_LIGHT
	
	lea	 960(a0),a0
	movea.l  a2,a1
	dbf	 d4,\screen_plane
	movem.l  (a7)+,d3-d5/a4-a5
	rts


Les tables se trouvent dans la première source.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

72

très sympa, je me demande juste si les sprites sont pas un peu sombres sur vraie Ti (pour différencier plate-formes / fond), pas moyen de vérifier je n'ai qu'une 89.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

73

Moi aussi sad

Vivement une beta pour 89 geogeo smile

74

Ca dépend du fond. Sur le premier niveau, c vrai que c pas évident, mais pour la pluspart des niveaux ça passe sans trop de problème.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

75

très sympa, je me demande juste si les sprites sont pas un peu sombres sur vraie Ti (pour différencier plate-formes / fond), pas moyen de vérifier je n'ai qu'une 89.


Je verrais ça bien sûr, certains sprites sont à retravailler.

Le jeu sur TI92+/V200 est bloqué à 25 fps mais ça sera réglable dans le menu.
Je pense ne pas pouvoir faire mieux niveau routine de dézoom pour TI89, les graphismes rendent bien mais le jeu tourne à 20 fps. Donc je crois que je vais devoir appliquer un frameskip. Sinon une solution existe, affichermoins de trucs et appliquer un dézoom sur les côtés.

avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

76

bon déjà sans rien changer, optim bête qui ne gagne pas gd chose : passer tes lsl.l en lsl.w et rajouter un swap (ou bien utiliser des move.w, ça revient au même...)


sinon pour être largement plus efficace (90 cycles/word de destination, i.e. 900 cycles par ligne, i.e. 1/110è de seconde par écran noir&blanc) tu pourrais faire

 moveq #0,d2

\loop
 moveq #0,d0
 move.b (a0)+,d0
 add.w d0,d0
 move.w 0(a1,d0.w),d1

 moveq #0,d0
 move.b (a0)+,d0
 add.w d0,d0
 or.w 0(a2,d0.w),d1

 move.b (a0)+,d2
 or.b 0(a3,d2.w),d1
 
 move.w d1,(a4)+

 ...

où a1, a2 et a3 pointent vers les tables correctement shiftées (désolé si les # de registres sont != des tiens, je les ai pris comme ils venaient)


autre solution, qui bouffe plus de RAM mais p-ê + rapide (flemme de compter happy) :
 move.w #0x0FFF,d1

\loop
 move.w (a0)+,d0
 move.b d0,-(a7)
 lsr.w #4,d0
 move.b 0(a1,d0.w),(a2)+

 moveq #15,d0
 and.w (a7)+,d0
 move.b (a0)+,d0
 move.b 0(a1,d0.w),(a2)+

 move.b (a0)+,-(a7)
 move.w (a7)+,d0
 move.b (a0),d0
 lsr.w #4,d0
 move.b 0(a1,d0.w),(a2)+

 move.w (a0)+,d0
 and.w d1,d0
 move.b 0(a1,d0.w),(a2)+

 dbf ...,\loop

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

77

Je trouve ça dommage d'utiliser un zoom pour la version 89 neutral
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

78

J'essaye 2 solutions, le dézoom ou diminuer la zoom de jeu, pour la deuxième solution il y a seulement 32 pixels en trop, je ferais un dézoom que sur les côtés de la tour.

Je ne vois pas de meilleurs solutions!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

79

Pollux> Il faut utiliser combien de tables dans le premier code? Pourrais-tu détailler le deuxième code, son fonctionnement car je ne comprend pas trop.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

80

J'ai 2 versions d'écran pour les TI89:

Sur TI92+/V200
92.gif


Sur TI89:
89_0.gif89_1.gif


Dites moi le screen que vous préférez sur TI89? Le n°1 ou le n°2. Si vous n'aimez aucun screen, proposez une méthode d'affichage.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

81

Afficher moins de trucs sur l'écran, tant pis on verra moins en hauteur et moins en largeur, mais au moins ça ira vite et les sprites ne seront pas détruits comme dans tes 2 screenshots :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

82

Je trouve que ca rend pas mal pour un zoom
avatar

83

Euh dans le deuxième screen, la largeur est conservée, sauf la hauteur. Pour la hauteur du jeu c'est obligatoirement avec un pas de 8, donc perte de 4 pixels.
Pour la largeur je ne peux pas faire mieux que le deuxième screen, c'est impossible de diminuer la tour, ça impliquerais de refaire tout le jeu avec même un changement de maps.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

84

Si tu reduit la taille des sprites sur la largeur ?? trifus
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

85

cheeky

Faut aussi diminuer la tour grin Or je peux pas.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

86

Et si tu conserves la largeur comme sur le deuxième screen et, en hauteur, montres 28 pixels de moins tout simplement?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

87

Je trouve que le second screen est mieux.
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

88

Bon dernière méthode graphique, conservation de la hauteur et de la largeur:
89_2.gif
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

89

Voilà, là c'est bien ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

90

Oui, ça rend bien.