GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

[SNES] Projet A-RPG

+12
pckid
vincent2105
Stef
dub
Top l'âne
ichigobankai
vingazole
anachronox
Earthworm jo
Ryaku
kogami
drfloyd
16 participants

Page 6 sur 6 Précédent  1, 2, 3, 4, 5, 6

Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Stef Mer 21 Sep 2016 - 13:50

Que le sample soit encodé en BRR n'est pas tant le problème ici. Le BRR "compresse" le sample et il y a de la perte par rapport à l'original mais il représente encore plus ou moins l'onde original :) et surtout il conserve sa hauteur initiale (fort heureusement) !
Je pense que le soucis, c'est vraiment cet histoire de pitch. Je viens d'aller lire la doc est en effet, on comprend assez rapidement le soucis qui peut se poser :


Code:
Pitch is a 14-bit value.
The pitch can be calculated with this formula:
Let desired DSP pitch be P.

Pitch->Hz
HZ = (32000 * P) / 2^12
HZ = P * 7.8125

Hz->Pitch:
 P = 2^12 * (HZ / 32000)
P = HZ / 7.8125

The highest pitch will reproduce the sound at approx. 2 octaves higher (~128KHz sample rate). The lowest pitch is basically not limited (but you will lose accuracy at lower pitches).

A few pitch->interval relations...

    400h     800h   1000h     2000h   3FFFh
-----|--------|-------|---------|-------|-----
   -2oct   -1oct   original   +1oct   +2oct
                         sound
                     (best quality!)

Donc effectivement si tu pitches un sample loin de sa fréquence d'origine tu perds rapidement de la précision...
Du coup dans ton cas, tu devrais partir d'une fréquence qui est à la médiane de ta compo (et au pire avoir plusieurs notes en mémoire) plutot que de partir de la fréquence minimum (C0) pour limiter les pertes.

Stef
Interne
Interne

Nombre de messages : 5087
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Ven 21 Oct 2016 - 22:00

Probablement le Projet le plus long que j'ai mené (et le plus complexe u_u ).

Enfaîte je commence a avoir un vrai Moteur/lib pour la Super Nintendo , donc tout mes prochains jeu dessus sera beaucoup plus facile a faire du coup Razz

Niveau jeu , y'a pas de grosse nouveauté niveau visuelle (et risque pas trop d'en avoir du coup) , vu que le principal a était fait.
En vrac , j'ai recodé l'affichage de la Fenetre/Text (pour l'optimiser).
J'ai coder plusieurs fonction permettant d'utiliser les transfert DMA de manière plus ou moins générique :)
Je gère des grande map (actuelle le max étant de 2048x2048 pixel) , théoriquement je peux faire du 16384x256 pixel a tester (vous imaginez un peu la taille du machin sur SNES Very Happy ).
J'ai recodé une partie du menu (pour le rendre moins bordélique et plus facile pour moi a utiliser , faudra néanmoins faire un tri sur les item).
On peut avoir jusqu’à 64 ennemi dans la map par info c'est pas aussi simple que ça de rajouter des ennemis , en langage plus évolué on ferai un truc dans le genre :
Code:

for(int i = 0; i < 64;i++)
    {
     ennemi[i].draw();
    }
Que Nenni , si je faisais ça , je mettrais le pauvre 65816 a genou ^^
Non non il faut faire plus complexe genre :
Code:

.MACRO Ennemi_Test_SC_P1
 ldx #$40*\1
 stx MEM_TEMPFUNC
 cpx s_ennemi+_enP1
 beq +
 cpx s_ennemi+_enP2
 beq +
 cpx s_ennemi+_enP3
 beq +
 lda s_perso + _x,x
 cmp #0
 bne ++
 lda s_perso + _y,x
 cmp #0
 beq +
 ++:
 
 
 
 jsl Ennemi_Test_SC
 
 lda MEM_TEMPFUNC+4
 cmp #0
 beq +
 ldx #$40*\1
 stx s_ennemi+_enP1
 jsl Ennemi_Test_SCE_P1
 rtl
 +:
 
.ENDM

.MACRO Ennemi_Test_SC_P2
 ldx #$40*\1
 stx MEM_TEMPFUNC
 cpx s_ennemi+_enP1
 beq +
 cpx s_ennemi+_enP2
 beq +
 cpx s_ennemi+_enP3
 beq +
 lda s_perso + _x,x
 cmp #0
 bne ++
 lda s_perso + _y,x
 cmp #0
 beq +
 ++:
 
 
 
 jsl Ennemi_Test_SC
 
 lda MEM_TEMPFUNC+4
 cmp #0
 beq +
 ldx #$40*\1
 stx s_ennemi+_enP2
 jsl Ennemi_Test_SCE_P2
 rtl
 +:
 
.ENDM

.MACRO Ennemi_Test_SC_P3
 ldx #$40*\1
 stx MEM_TEMPFUNC
 cpx s_ennemi+_enP1
 beq +
 cpx s_ennemi+_enP2
 beq +
 cpx s_ennemi+_enP3
 beq +
 lda s_perso + _x,x
 cmp #0
 bne ++
 lda s_perso + _y,x
 cmp #0
 beq +
 ++:
 
 
 
 jsl Ennemi_Test_SC
 
 lda MEM_TEMPFUNC+4
 cmp #0
 beq +
 ldx #$40*\1
 stx s_ennemi+_enP3
 jsl Ennemi_Test_SCE_P3
 rtl
 +:
 
.ENDM

Ennemi_Tri:

 lda MEM_OAM+_nperso2
 cmp #3
 bne +
 rtl
 +:
 
 jsl Ennemi_TriP1
 jsl Ennemi_TriP2
 jsl Ennemi_TriP3
 
 inc s_ennemi+_enFrame
 lda s_ennemi+_enFrame
 cmp #7
 bne +
 stz s_ennemi+_enFrame
 +:


 rtl
 
;------------------------------------------
 
 
Ennemi_TriP1:

 ldx s_ennemi+_enP1
 
 rep #$20
 
 lda s_perso+_oam,x
 cmp #$1E0
 bne +
 bra ++
 +:
 
 
 sep #$20
 rtl
 ++:
 
 sep #$20
 
 jsl Ennemi_TriP1_F

 rtl
 
Ennemi_TriP2:

 ldx s_ennemi+_enP2
 
 rep #$20
 
 lda s_perso+_oam,x
 cmp #$1E0
 bne +
 bra ++
 +:
 
 
 sep #$20
 rtl
 ++:
 
 sep #$20
 
 jsl Ennemi_TriP2_F

 rtl

Ennemi_TriP3:

 ldx s_ennemi+_enP3
 
 rep #$20
 
 lda s_perso+_oam,x
 cmp #$1E0
 bne +
 bra ++
 +:
 
 
 sep #$20
 rtl
 ++:
 
 sep #$20
 
 jsl Ennemi_TriP3_F
 
 rtl
;------------------------------------------


Ennemi_Test_SCE_P1:

 
 
 lda s_perso + _tbankadd,x
 sta s_palette+$10+(3*11)+2
 sta DMA_BANK
 
 rep #$20
 
 lda #$2660
 sta s_perso + _tile,x
 
 lda s_perso + _tadd,x
 sta s_palette+$10+(3*11)
 sta DMA_ADDL
 sep #$20
 
 SNES_WMADD LKS_BUF_PAL&$FFFF+$160,0
 
 ldy #$20
 sty DMA_SIZEL
 
 SNES_MDMAEN $01
 
 lda #2
 sta s_palette+_pltype
 
 rtl

Ennemi_Test_SCE_P2:

 
 
 lda s_perso + _tbankadd,x
 sta s_palette+$10+(3*12)+2
 sta DMA_BANK
 
 rep #$20
 
 lda #$2888
 sta s_perso + _tile,x
 
 lda s_perso + _tadd,x
 sta s_palette+$10+(3*12)
 sta DMA_ADDL
 sep #$20
 
 SNES_WMADD LKS_BUF_PAL&$FFFF+$180,0
 
 ldy #$20
 sty DMA_SIZEL
 
 SNES_MDMAEN $01
 
 lda #2
 sta s_palette+_pltype
 
 rtl
 
Ennemi_Test_SCE_P3:

 
 
 lda s_perso + _tbankadd,x
 sta s_palette+$10+(3*13)+2
 sta DMA_BANK
 
 rep #$20
 
 lda #$2AC0
 sta s_perso + _tile,x
 
 lda s_perso + _tadd,x
 sta s_palette+$10+(3*13)
 sta DMA_ADDL
 sep #$20
 
 SNES_WMADD LKS_BUF_PAL&$FFFF+$1A0,0
 
 ldy #$20
 sty DMA_SIZEL
 
 SNES_MDMAEN $01
 
 lda #2
 sta s_palette+_pltype
 
 rtl
;------------------------------------------
 
Ennemi_Test_SC:

 ldx MEM_TEMPFUNC
 rep #$20
 
 stz MEM_TEMPFUNC+4
 
 lda s_perso+_x,x
 sec
 sbc LKS_BG+_bg1x
 sta MEM_TEMPFUNC+$C
 
 cmp #-56
 bpl +
 bra ++
 +:
 cmp #256+56
 bmi +
 bra ++
 +:
 
 lda s_perso+_y,x
 sec
 sbc LKS_BG+_bg1y
 sta MEM_TEMPFUNC+$E
 
 cmp #-56
 bpl +
 bra ++
 +:
 cmp #224+56
 bmi +
 bra ++
 +:
 
 sep #$20
 
 jsl Personnage_limite_ecranSC
 
 rtl
 
 ++:
 sep #$20
 rtl

 
Personnage_limite_ecranSC:

 
 stz MEM_TEMPFUNC+4
 
 ;Y
 rep #$20
 lda MEM_TEMPFUNC+$E
 clc
 adc #$10
 
 sta MEM_TEMP
 sep #$20
 
 lda MEM_TEMP+1
 cmp #$01
 bmi +
 bra +++
 +:
 
 
 rep #$20
 lda MEM_TEMPFUNC+$E
 sec
 sbc #$10
 sta MEM_TEMPFUNC+$E
 sta MEM_OAM+_spry
 clc
 adc #$30
 sta MEM_TEMP
 sep #$20
 
 lda MEM_TEMP+1
 cmp #$00
 bpl +
 bra +++
 +:
 
 
 
 ;X droite
 lda MEM_TEMPFUNC+$C+1
 cmp #$01
 bmi +
 bra +++
 +:
 
 ;X gauche
 rep #$20
 lda MEM_TEMPFUNC+$C
 clc
 adc #$30
 sta MEM_TEMP
 sep #$20
 
 lda MEM_TEMP+1
 cmp #$0
 bpl +
 bra +++
 +:
 
 
 
 
 rtl
 
 +++:
 
 inc MEM_TEMPFUNC+4
 
 rtl


Code:


Ennemi_TriP1_F:
 lda s_ennemi+_enFrame
 cmp #0
 bne +
 jsl Ennemi_TriP1_F1
 rtl
 +:
 cmp #1
 bne +
 jsl Ennemi_TriP1_F2
 rtl
 +:
 cmp #2
 bne +
 jsl Ennemi_TriP1_F3
 rtl
 +:
 cmp #3
 bne +
 jsl Ennemi_TriP1_F4
 rtl
 +:
 cmp #4
 bne +
 jsl Ennemi_TriP1_F5
 rtl
 +:
 cmp #5
 bne +
 jsl Ennemi_TriP1_F6
 rtl
 +:
 cmp #6
 bne +
 jsl Ennemi_TriP1_F7
 rtl
 +:

 rtl
 
Ennemi_TriP2_F:
 lda s_ennemi+_enFrame
 cmp #0
 bne +
 jsl Ennemi_TriP2_F1
 rtl
 +:
 cmp #1
 bne +
 jsl Ennemi_TriP2_F2
 rtl
 +:
 cmp #2
 bne +
 jsl Ennemi_TriP2_F3
 rtl
 +:
 cmp #3
 bne +
 jsl Ennemi_TriP2_F4
 rtl
 +:
 cmp #4
 bne +
 jsl Ennemi_TriP2_F5
 rtl
 +:
 cmp #5
 bne +
 jsl Ennemi_TriP2_F6
 rtl
 +:
 cmp #6
 bne +
 jsl Ennemi_TriP2_F7
 rtl
 +:

 rtl
 
Ennemi_TriP3_F:
 lda s_ennemi+_enFrame
 cmp #0
 bne +
 jsl Ennemi_TriP3_F1
 rtl
 +:
 cmp #1
 bne +
 jsl Ennemi_TriP3_F2
 rtl
 +:
 cmp #2
 bne +
 jsl Ennemi_TriP3_F3
 rtl
 +:
 cmp #3
 bne +
 jsl Ennemi_TriP3_F4
 rtl
 +:
 cmp #4
 bne +
 jsl Ennemi_TriP3_F5
 rtl
 +:
 cmp #5
 bne +
 jsl Ennemi_TriP3_F6
 rtl
 +:
 cmp #6
 bne +
 jsl Ennemi_TriP3_F7
 rtl
 +:

 rtl
 
;------------------------------------------
Ennemi_TriP1_F1:
 Ennemi_Test_SC_P1 3
 Ennemi_Test_SC_P1 4
 Ennemi_Test_SC_P1 5
 Ennemi_Test_SC_P1 6
 
 Ennemi_Test_SC_P1 7
 Ennemi_Test_SC_P1 8
 Ennemi_Test_SC_P1 9
 Ennemi_Test_SC_P1 10
 rtl
 
Ennemi_TriP1_F2:
 Ennemi_Test_SC_P1 11
 Ennemi_Test_SC_P1 12
 Ennemi_Test_SC_P1 13
 Ennemi_Test_SC_P1 14
 
 Ennemi_Test_SC_P1 15
 Ennemi_Test_SC_P1 16
 Ennemi_Test_SC_P1 17
 Ennemi_Test_SC_P1 18
 Ennemi_Test_SC_P1 19
 Ennemi_Test_SC_P1 20
 rtl
 
Ennemi_TriP1_F3:
 Ennemi_Test_SC_P1 21
 Ennemi_Test_SC_P1 22
 Ennemi_Test_SC_P1 23
 Ennemi_Test_SC_P1 24
 
 Ennemi_Test_SC_P1 25
 Ennemi_Test_SC_P1 26
 Ennemi_Test_SC_P1 27
 Ennemi_Test_SC_P1 28
 Ennemi_Test_SC_P1 29
 Ennemi_Test_SC_P1 30
 rtl
 
Ennemi_TriP1_F4:
 Ennemi_Test_SC_P1 31
 Ennemi_Test_SC_P1 32
 Ennemi_Test_SC_P1 33
 Ennemi_Test_SC_P1 34
 
 Ennemi_Test_SC_P1 35
 Ennemi_Test_SC_P1 36
 Ennemi_Test_SC_P1 37
 Ennemi_Test_SC_P1 38
 Ennemi_Test_SC_P1 39
 Ennemi_Test_SC_P1 40
 rtl
 
Ennemi_TriP1_F5:
 Ennemi_Test_SC_P1 41
 Ennemi_Test_SC_P1 42
 Ennemi_Test_SC_P1 43
 Ennemi_Test_SC_P1 44
 
 Ennemi_Test_SC_P1 45
 Ennemi_Test_SC_P1 46
 Ennemi_Test_SC_P1 47
 Ennemi_Test_SC_P1 48
 Ennemi_Test_SC_P1 49
 Ennemi_Test_SC_P1 50
 
 rtl
 
Ennemi_TriP1_F6:
 Ennemi_Test_SC_P1 51
 Ennemi_Test_SC_P1 52
 Ennemi_Test_SC_P1 53
 Ennemi_Test_SC_P1 54
 
 Ennemi_Test_SC_P1 55
 Ennemi_Test_SC_P1 56
 Ennemi_Test_SC_P1 57
 Ennemi_Test_SC_P1 58
 Ennemi_Test_SC_P1 59
 Ennemi_Test_SC_P1 60
 
 rtl
 
Ennemi_TriP1_F7:
 Ennemi_Test_SC_P1 61
 Ennemi_Test_SC_P1 62
 Ennemi_Test_SC_P1 63
 
 rtl
 
;------------------------------------------
Ennemi_TriP2_F1:
 Ennemi_Test_SC_P2 3
 Ennemi_Test_SC_P2 4
 Ennemi_Test_SC_P2 5
 Ennemi_Test_SC_P2 6
 
 Ennemi_Test_SC_P2 7
 Ennemi_Test_SC_P2 8
 Ennemi_Test_SC_P2 9
 Ennemi_Test_SC_P2 10
 rtl
 
Ennemi_TriP2_F2:
 Ennemi_Test_SC_P2 11
 Ennemi_Test_SC_P2 12
 Ennemi_Test_SC_P2 13
 Ennemi_Test_SC_P2 14
 
 Ennemi_Test_SC_P2 15
 Ennemi_Test_SC_P2 16
 Ennemi_Test_SC_P2 17
 Ennemi_Test_SC_P2 18
 Ennemi_Test_SC_P2 19
 Ennemi_Test_SC_P2 20
 rtl
 
Ennemi_TriP2_F3:
 Ennemi_Test_SC_P2 21
 Ennemi_Test_SC_P2 22
 Ennemi_Test_SC_P2 23
 Ennemi_Test_SC_P2 24
 
 Ennemi_Test_SC_P2 25
 Ennemi_Test_SC_P2 26
 Ennemi_Test_SC_P2 27
 Ennemi_Test_SC_P2 28
 Ennemi_Test_SC_P2 29
 Ennemi_Test_SC_P2 30
 rtl
 
Ennemi_TriP2_F4:
 Ennemi_Test_SC_P2 31
 Ennemi_Test_SC_P2 32
 Ennemi_Test_SC_P2 33
 Ennemi_Test_SC_P2 34
 
 Ennemi_Test_SC_P2 35
 Ennemi_Test_SC_P2 36
 Ennemi_Test_SC_P2 37
 Ennemi_Test_SC_P2 38
 Ennemi_Test_SC_P2 39
 Ennemi_Test_SC_P2 40
 rtl
 
Ennemi_TriP2_F5:
 Ennemi_Test_SC_P2 41
 Ennemi_Test_SC_P2 42
 Ennemi_Test_SC_P2 43
 Ennemi_Test_SC_P2 44
 
 Ennemi_Test_SC_P2 45
 Ennemi_Test_SC_P2 46
 Ennemi_Test_SC_P2 47
 Ennemi_Test_SC_P2 48
 Ennemi_Test_SC_P2 49
 Ennemi_Test_SC_P2 50
 
 rtl
 
Ennemi_TriP2_F6:
 Ennemi_Test_SC_P2 51
 Ennemi_Test_SC_P2 52
 Ennemi_Test_SC_P2 53
 Ennemi_Test_SC_P2 54
 
 Ennemi_Test_SC_P2 55
 Ennemi_Test_SC_P2 56
 Ennemi_Test_SC_P2 57
 Ennemi_Test_SC_P2 58
 Ennemi_Test_SC_P2 59
 Ennemi_Test_SC_P2 60
 
 rtl
 
Ennemi_TriP2_F7:
 Ennemi_Test_SC_P2 61
 Ennemi_Test_SC_P2 62
 Ennemi_Test_SC_P2 63
 
 rtl
 
;------------------------------------------
Ennemi_TriP3_F1:
 Ennemi_Test_SC_P3 3
 Ennemi_Test_SC_P3 4
 Ennemi_Test_SC_P3 5
 Ennemi_Test_SC_P3 6
 
 Ennemi_Test_SC_P3 7
 Ennemi_Test_SC_P3 8
 Ennemi_Test_SC_P3 9
 Ennemi_Test_SC_P3 10
 rtl
 
Ennemi_TriP3_F2:
 Ennemi_Test_SC_P3 11
 Ennemi_Test_SC_P3 12
 Ennemi_Test_SC_P3 13
 Ennemi_Test_SC_P3 14
 
 Ennemi_Test_SC_P3 15
 Ennemi_Test_SC_P3 16
 Ennemi_Test_SC_P3 17
 Ennemi_Test_SC_P3 18
 Ennemi_Test_SC_P3 19
 Ennemi_Test_SC_P3 20
 rtl
 
Ennemi_TriP3_F3:
 Ennemi_Test_SC_P3 21
 Ennemi_Test_SC_P3 22
 Ennemi_Test_SC_P3 23
 Ennemi_Test_SC_P3 24
 
 Ennemi_Test_SC_P3 25
 Ennemi_Test_SC_P3 26
 Ennemi_Test_SC_P3 27
 Ennemi_Test_SC_P3 28
 Ennemi_Test_SC_P3 29
 Ennemi_Test_SC_P3 30
 rtl
 
Ennemi_TriP3_F4:
 Ennemi_Test_SC_P3 31
 Ennemi_Test_SC_P3 32
 Ennemi_Test_SC_P3 33
 Ennemi_Test_SC_P3 34
 
 Ennemi_Test_SC_P3 35
 Ennemi_Test_SC_P3 36
 Ennemi_Test_SC_P3 37
 Ennemi_Test_SC_P3 38
 Ennemi_Test_SC_P3 39
 Ennemi_Test_SC_P3 40
 rtl
 
Ennemi_TriP3_F5:
 Ennemi_Test_SC_P3 41
 Ennemi_Test_SC_P3 42
 Ennemi_Test_SC_P3 43
 Ennemi_Test_SC_P3 44
 
 Ennemi_Test_SC_P3 45
 Ennemi_Test_SC_P3 46
 Ennemi_Test_SC_P3 47
 Ennemi_Test_SC_P3 48
 Ennemi_Test_SC_P3 49
 Ennemi_Test_SC_P3 50
 
 rtl
 
Ennemi_TriP3_F6:
 Ennemi_Test_SC_P3 51
 Ennemi_Test_SC_P3 52
 Ennemi_Test_SC_P3 53
 Ennemi_Test_SC_P3 54
 
 Ennemi_Test_SC_P3 55
 Ennemi_Test_SC_P3 56
 Ennemi_Test_SC_P3 57
 Ennemi_Test_SC_P3 58
 Ennemi_Test_SC_P3 59
 Ennemi_Test_SC_P3 60
 
 rtl
 
Ennemi_TriP3_F7:
 Ennemi_Test_SC_P3 61
 Ennemi_Test_SC_P3 62
 Ennemi_Test_SC_P3 63
 
 rtl
 

ça rajoute 10ko de code ouch
Grosso modo ce bordel , quand l'ennemi est hors de l'écran je regarde si y'a un autre ennemi disponible (qui sois hors de l'écran mais proche) , mais pas a l'intérieur de l'écran (il doit pas apparaitre en plein milieux xD).
Tout ça divisé en 8 frame (pour des soucis de performance) avec 3 ennemi on est a 50% quand même , et ça monte vite si on ne fait pas gaffe.

Et bien sur le rajout d'un nouvel ennemi (un 48x48) , c'est vachement gros pour la SNES (surtout quand tu on a 3) je voulais optimiser leur affichage , mais apres j'ai laissé tombé et j'ai utilisé ma jolie fonction généraliste (mais qui boiuffe un peu en CPU) du coup un 48x48 me faut 6 sprite pour l'afficher : 1 de 32x32 et 5 de 16x16.

Et voici une Vidéo :


Jouable en ligne ici : http://pixelretro.hebergratuit.net/NesBox/snes.html

Que me reste t'il ?
Le plus gros :
-le son/music a finir (j'ai essayé de rectifier ce probleme de fréquence des notes).
-La compression/decompression des Maps.
Apres reste plein de petit détailt mais je ne pense pas qu'il me posseront probleme maintenant Wink

Pour info j'utilise quasiment la totalité de la ram (128 ko) , sachant que je compte utiliser la RAM comme buffer pour les map , donc on a 96ko pour 2BG + collision , 8ko pour divers buffers.
8ko pour la jeu ( 4 ko pour les ennemis sachant que un ennemi me prend 64 octets et j'en ai 64 donc 64x64 = 4096 octets).
avatar
Invité
Invité


Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Sam 22 Oct 2016 - 11:50

ca m'a l'air excellent tout ça,j'ai hâte d'en voir plus ..

Probablement le Projet le plus long que j'ai mené (et le plus complexe u_u ).
Tu m'étonnes, un RPG  Rolling Eyes

Enfaîte je commence a avoir un vrai Moteur/lib pour la Super Nintendo , donc tout mes prochains jeu dessus sera beaucoup plus facile a faire du coup [SNES] Projet A-RPG - Page 6 Icon_razz
Je pense que c'est ce qu'il faut faire, avoir des routines/moteur suffisamment générique et rapide pour convenir à tout les type de jeux .
avatar
Invité
Invité


Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Sam 22 Oct 2016 - 13:12

Merci pour ton commentaire Wink
Cool que tu veuille en voir plus , j'essayerai de faire des MAJ plus régulière , surtout que reste de moins en moins de 'gros code' a faire.

Je pense que c'est ce qu'il faut faire, avoir des routines/moteur suffisamment générique et rapide pour convenir à tout les type de jeux .
C'est une des raison pourquoi ce projet traîne en longueur , je code toujours en faisant un peu de R&D en me disant comment optimiser/rendre le truc plus généraliste.
Cela prend bcp plus de temps que de faire du from scratch.
avatar
Invité
Invité


Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Sam 22 Oct 2016 - 13:38

C'est une des raison pourquoi ce projet traîne en longueur , je code toujours en faisant un peu de R&D en me disant comment optimiser/rendre le truc plus généraliste.
Cela prend bcp plus de temps que de faire du from scratch.
Je te comprends je suis pareil  Wink
avatar
Invité
Invité


Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Top l'âne Sam 22 Oct 2016 - 13:57

Tu sembles content de toi, donc je suis content pour toi.^^
Top l'âne
Top l'âne
Patient contaminé

Masculin Nombre de messages : 731
Age : 44
Localisation : Oise
Date d'inscription : 08/11/2015

Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Cyrano75003 Sam 22 Oct 2016 - 14:03

Belle persévérance depuis 2014. J'espère que tu iras au bout ! :)
avatar
Cyrano75003
Patient incurable

Masculin Nombre de messages : 1213
Age : 44
Localisation : chez moi au chaud !
Date d'inscription : 26/06/2012

Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Sam 22 Oct 2016 - 14:58

Je n'ai pas fait que ça depuis 2014 fort heureusement Razz

Oui je suis content parce que je me disais avant :
"mouarf il faut que je gère des ennemi+ gros , faut que je gère aussi des map de taille différentes et plusieurs ennemis" , disons que des fois t'a l'impression de jamais en voir le bout xD
avatar
Invité
Invité


Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par vincent2105 Lun 24 Oct 2016 - 10:22

Je rejoins les autres, si ca peut t'encourager à maintenir le topic actif Wink
Je suis admiratif de ce que tu as réalisé jusque là, bravo !
Un détail, y'a un tout p'tit souci dans la démo que tu as mis en ligne, on peut sortir de l'écran par la gauche (on perd alors le sprite du héros). Je chipote parce que le reste est nickel Wink
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[SNES] Projet A-RPG - Page 6 Empty Re: [SNES] Projet A-RPG

Message par Invité Lun 24 Oct 2016 - 14:48

Merci vincent2105 Wink
Ouais je comprend et puis j'ai l'habitude qu'on me remonte les petit détails qui gene Very Happy
Mais disons que j'avais la flemme de remplir une map aussi grosse (parce que mettre un téléporteur + un arbre une cascade + une riviere) , une map de 2048x2048 est pas nécessaire :3
Et donc j'avais la flemme de mettre sur mon éditeur les collisions voila pour l'explication ^^

Bon sinon j'ai quelque news :
NesBox : http://pixelretro.hebergratuit.net/NesBox/snes.html
rom : http://www.mediafire.com/file/9ton5dtzs562fb6/main.smc

Je ne garantie pas que sur NesBox que le son soit bien restitué Mr. Green
Le bouton start pour jouer une musique.
Le bouton select pour la pause.
Le bouton Y pour remettre a zéro la musique (un loop quoi).


Normalement si on utilise les 8 canaux + les bon sample + les bonnes modulations , on peut espérer jouer de bonne musique , mais comme vous pouvez l'imaginer le midi ne m'offre que les partitions , les samples + la modulations du son , c'est moi qui devrait le faire (ou trouver un bon compositeur/musicien qui s'en occupe).
D'un point de vue prog je gère tout cela la modulation du son , les transferts des samples/partition sur le SPC700 et qql autre petit effets.
La version de mon Driver est à sa version 0.7 (0.8 quand jouer un son sera complètement terminé) , 0.9 quand on pourrait 'additionner' différent modulation ,la version 1.0 je sais pas quand mon driver aura était testé et approuvé Razz

Le SPC700 est limité a 64ko voici comment je l'ai répartie:
PRG : 0x0200 -0x16FF
SampleDIR : 0x1700 - 0x1AFF
track : 0x1B00 - 0x3FFF
Sample : 0x4000 - 0xFDFF
RAM : 0xFE00 - 0xFFBF

Donc mon driver fait donc 5ko , le reste faudra faire des transfert ROM/SPC700 (que j'ai du coder).
En terme de transfert , 2 octet me prend 1% CPU donc c'est pas le truc quand s'amuse a envoyer en temps réel Mr. Green
avatar
Invité
Invité


Revenir en haut Aller en bas

Page 6 sur 6 Précédent  1, 2, 3, 4, 5, 6

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum