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

[TERMINE] Pang ! / MSX

+9
erikrom2
Fabf
F.L
nemokantio
drfloyd
mateo
pckid
vingazole
bfg
13 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

[TERMINE] Pang ! / MSX Empty [TERMINE] Pang ! / MSX

Message par bfg Ven 21 Nov 2014 - 22:46

Voilou, j'ai quasi terminé l'adaptation de Pang sur MSX 1. Ca tiens comme sur Coleco en 32Ko, avec ma propre lib technique. Quelques différences par rapport à la version Coleco :

- Compression des images par Pletter pour gagner de la place. Ma librairie technique bouffant de la place en ROM, ça permet de compenser.
- Développement de mon propre algo qui détecte si le joueur est sur une version NTSC ou PAL et règle la vitesse du jeu par rapport à la machine. (C'était manuel sur Coleco).
- Intégration de mon propre player audio, qui lui aussi se règle sur la vitesse de la machine. Je n'ai qu'à stocker une seule fois la musique, et elle se jouera en vitesse identique à 50hz ou 60hz



Dernière édition par bfg le Jeu 26 Fév 2015 - 19:54, édité 2 fois
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par vingazole Sam 22 Nov 2014 - 0:01

Très joli !

J'aime bien le background avec les Twin Towers (à partir de 03:25) Wink
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Invité Sam 22 Nov 2014 - 13:15

Vraiment bien, la musique est sympa, bien meilleure que ta version Md  Razz
avatar
Invité
Invité


Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par pckid Dim 23 Nov 2014 - 17:46

Très sympa !
pckid
pckid
Infirmier

Masculin Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Dim 25 Jan 2015 - 14:02

Petit post pour signaler que la version Msx est terminée et qu'une version physique devrait poindre du nez chez repro factory (cocorico !!) en Février !
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par mateo Dim 25 Jan 2015 - 14:17

Merci pour l'info, c'est bon ça
mateo
mateo
Docteur *
Docteur *

Masculin Nombre de messages : 25026
Age : 45
Localisation : 92
Date d'inscription : 21/04/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par drfloyd Dim 25 Jan 2015 - 14:58

bfg a écrit:Petit post pour signaler que la version Msx est terminée et qu'une version physique devrait poindre du nez chez repro factory (cocorico !!) en Février !

Chez Repro Factory ! Cocorico !!!!!!!!!! C'est bon ça.

_______________________________________________________
[TERMINE] Pang ! / MSX Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 184492
Age : 55
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par mateo Dim 25 Jan 2015 - 15:35

Il faut juste être sûr que la date soit tenue
mateo
mateo
Docteur *
Docteur *

Masculin Nombre de messages : 25026
Age : 45
Localisation : 92
Date d'inscription : 21/04/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 8:26

Bon, ben forcément quand le jeu est terminé c'est là qu'on voit les merdes ... J'ai besoin de l'aide de pro du MSX et de l'assembleur.

Le jeu tourne sans problème sous MSX 1 et voici les glitch que l'on à sur MSX 2




Voici le code source de la décompression d'image :

Code:
; pletter.s
;-----------------------------------------------------------
; Pletter2 v0.5b VRAM Depacker v1.1 - 16Kb version
; HL = RAM/ROM source ; DE = VRAM destination
;-----------------------------------------------------------
; Daniel Bienvenu modifications
; + to optimize the ROM size, not the speed

 .module pletter

 ; global from this code

    .globl  _pletter
    ; void pletter (void *data, unsigned vram_offset);
 
 .area _CODE

_pletter:
    pop     bc
    pop     hl
    pop     de
    push    de
    push    hl
    push    bc
    
    push    ix
    
 di

; VRAM address setup
 ld a,e
 out (0x99),a
 ld a,d
 or #0x40
 out (0x99),a

; Initialization
 ld a,(hl)
 inc hl
 exx
 ld de,#0
    push    de
 add a,a
 inc a
 rl e
 add a,a
 rl e
 add a,a
 rl e
 rl e
 ld hl,#modes
 add hl,de
 ld e,(hl)
    inc hl
    ld  d,(hl)
    push    de
    pop ix
    pop de
 ld e,#1
 exx
 ;ld iy,#loop

; Main depack loop
literal:
    ld c,#0x98
 outi
 inc de
loop:
    call    getbits
 jr nc,literal

; Compressed data
 exx
 ld h,d
 ld l,e
getlen:
    call getbitsexx
 jr nc,lenok
lus:
    call getbitsexx
 adc hl,hl
 ret c
    call getbitsexx
 jr nc,lenok
    call getbitsexx
 adc hl,hl
 jp c,Depack_out
    call getbitsexx
 jp c,lus
lenok:
    inc hl
 exx
 ld c,(hl)
 inc hl
 ld b,#0
 bit 7,c
 jp z,offsok
 jp (ix)

mode7:
    call    getbits
 rl b
mode6:
    call    getbits
 rl b
mode5:
    call    getbits
 rl b
mode4:
    call    getbits
 rl b
mode3:
    call    getbits
 rl b
mode2:
    call    getbits
 rl b
    call    getbits
 jr nc,offsok
 or a
 inc b
 res 7,c
offsok:
    inc bc
 push hl
 exx
 push hl
 exx
 ld l,e
 ld h,d
 sbc hl,bc
 pop bc
 push af
$9:
    ld a,l
 out (0x99),a
 ld a,h
 nop                     ; VDP timing
 out (0x99),a
 nop                     ; VDP timing
 in a,(0x98)
 ex af,af'
 ld a,e
 nop ; VDP timing
 out (0x99),a
 ld a,d
 or #0x40
 out (0x99),a
 ex af,af'
 nop ; VDP timing
 out (0x98),a
 inc de
 cpi
 jp pe,$9
 pop af
 pop hl
 ;jp (iy)
    jp loop

getbitsexx:
    exx
    call    getbits
    exx
    ret

getbits:
 add a,a
 ret nz
 ld a,(hl)
 inc hl
 rla
 ret

; Depacker exit
Depack_out:
    pop ix
 ei
 ret

modes:
 .dw offsok
 .dw mode2
 .dw mode3
 .dw mode4
 .dw mode5
 .dw mode6
 .dw mode7
    

Et voici comment je l'appelle dans mon programme !

Code:
#define chrtab  peek_word(0xF3C7) /* écran en linéaire */
#define chrgen  peek_word(0xF3CB) /* table des caractères */
#define coltab  peek_word(0xF3C9) /* couleur des caractères */
#define sprtab  peek_word(0xF3CF) /* Image des sprites */
#define sprgen  peek_word(0xF3CD)  /* attributs des sprites */


void LoadPatternAndshowAScreenPLET(unsigned char* p,unsigned char *c,unsigned char *n,unsigned char show,unsigned dest)
{
 if (show==1) pletter(n,dest);
 pletter(p,chrgen);
 pletter(p,chrgen+2048);
 pletter(p,chrgen+4096);
 pletter(c,coltab);
 pletter(c,coltab+2048);
 pletter(c,coltab+4096);
}

LoadPatternAndshowAScreenPLET(FOND5_PATTERNDAN0,FOND5_COLORDAN0,FOND5_NAMEDAN0,1,chrtab);

Dernière info, l'initialisation du mode vidéo :

Code:
void screen_mode_2()
 {
 inter_screen_mode_2();
 setup_sprites(SPRITE16X16, SPRITE_NO_ZOOM);
 disableClic();
 }

void inter_screen_mode_2()
{
  __asm

   call 0x0072

  __endasm;
}

void setup_sprites(char spritesize, char zoom){
  __asm

  ld b,#0x00
  ld a,4(ix)
  and #0x0f
  cp #0x08
  jr z,$1
  set 1,b ; --- if 16x16 sprites => set bit 1
$1:
  ld a,5(ix)
  cp #0x00
  jr z, $2
  set 0,b ; --- if zoom sprites => set bit 0
$2:
  ld hl,#0xf3e0 ; --- read vdp(1) from mem
  ld a,(hl)
  and #0xfc
  or b
  ld (hl),a
  call 0x007e ; --- change vdp(1) bits

  ld a,#0x01
  ld hl,#0xfcaf
  ld (hl),a
  call 0x0069 ; --- reset sprite attributes

  __endasm;
}


void disableClic()
{
 __asm

 ld hl,#0xF3DB ; 0= click sound off, <>0 click sound on
 ld (hl),#0x00

 __endasm;
}

Voyez vous quelque part une énorme boulette ?

Merci d'avance !
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Invité Mer 11 Fév 2015 - 9:27

Bonjour et courage pour ton soucis Michel !
Je suis sur que tu trouveras solution à ton problème.
Sans doute que le Msx2 à un mappage de la mémoire différent du MSX ... Nicob59 pourrait te répondre je pense ! Wink
Courage !
avatar
Invité
Invité


Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Invité Mer 11 Fév 2015 - 9:39

Dommage que je connaisse pas l'ASM Z80, fano aurait pu t'aider si il passe encore ici .. Confused
D'ailleurs si ça fonctionne bien sur MS1 c'est que le code est bon,c'est peut être une différence de timing du VDP du msx2 par rapport au MSX1 (sur ta vidéo on a du mal à voir où sont les glitches) ??
avatar
Invité
Invité


Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 9:44

Ben en regardant le code on voit ça :


Code:
 ld a,h
 nop                     ; VDP timing
 out (0x99),a
 nop                     ; VDP timing

Ptet que je balance trop de données au VDP d'un coup ... Je vais tenter en ajoutant quelques nop en plus ... Mais bon, je vais attendre encore si il y à des avis plus éclairé 😄
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par nemokantio Mer 11 Fév 2015 - 13:00

Ca fait aussi les bugs sur emulateur en mode msx2 ?


EDIT : tu as raison, ça ressemble à un problème de timing dans l'envoi des données au vdp.
Sur emulateur, tu peux tester différents msx 2 non ?
avatar
nemokantio
Patient contaminé

Masculin Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par F.L Mer 11 Fév 2015 - 13:22

beau boulot michel Razz
bon courage pour les bugs sur msx2.
il n'existe pas de probleme qui n'ai de solution
ce sont les joies de la programmation on va dire MDR
F.L
F.L
Docteur *
Docteur *

Masculin Nombre de messages : 3432
Age : 49
Localisation : hérault
Date d'inscription : 11/06/2012

http://fl.basic.free.fr

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 14:15

nemokantio a écrit:Ca fait aussi les bugs sur emulateur en mode msx2 ?


EDIT : tu as raison, ça ressemble à un problème de timing dans l'envoi des données au vdp.
Sur emulateur, tu peux tester différents msx 2 non ?

Ca passe sur BlueMsx sans bug ...
Il faut que j'essaye openMSX. J'ai envoyé une version avec d'autres timing VDP pour tester sur bécane réelle... on verra bien ...
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par nemokantio Mer 11 Fév 2015 - 14:51

C'est pas lié au fait qu'il y a plusieurs modèles de msx différents ?

Tu sais quoi : ça m'a donné envie d'essayer de programmer le msx avec sdcc, et je crois bien que je suis en train de  suivre ton tuto sur bfg gamepassion !
J'ai réussi à faire un screen 2 !
😄

(et oui je suis cpciste à la base)
avatar
nemokantio
Patient contaminé

Masculin Nombre de messages : 345
Age : 48
Localisation : Delgastan
Date d'inscription : 23/01/2013

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par vingazole Mer 11 Fév 2015 - 15:00

bfg a écrit:Ben en regardant le code on voit ça :


Code:
 ld a,h
 nop                     ; VDP timing
 out (0x99),a
 nop                     ; VDP timing

Ptet que je balance trop de données au VDP d'un coup ... Je vais tenter en ajoutant quelques nop en plus ... Mais bon, je vais attendre encore si il y à des avis plus éclairé 😄

Si ce n'est pas déjà ce que tu fais, essaie plutôt de désactiver l'affichage avant de charger tes tiles/ta tilemap, puis réactive l'affichage ensuite (tu dois avoir un port du VDP qui te permet de faire ça).

En principe les accès au VDP devraient être plus rapides en dehors de l'affichage actif (pendant les VBLANKs, par exemple).
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 15:23

vingazole a écrit:
bfg a écrit:Ben en regardant le code on voit ça :


Code:
 ld a,h
 nop                     ; VDP timing
 out (0x99),a
 nop                     ; VDP timing

Ptet que je balance trop de données au VDP d'un coup ... Je vais tenter en ajoutant quelques nop en plus ... Mais bon, je vais attendre encore si il y à des avis plus éclairé 😄

Si ce n'est pas déjà ce que tu fais, essaie plutôt de désactiver l'affichage avant de charger tes tiles/ta tilemap, puis réactive l'affichage ensuite (tu dois avoir un port du VDP qui te permet de faire ça).

En principe les accès au VDP devraient être plus rapides en dehors de l'affichage actif (pendant les VBLANKs, par exemple).

C'est fait déja en fait Mr. Green
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par vingazole Mer 11 Fév 2015 - 15:27

Bon, ben à part rajouter des NOPs, je ne vois pas Wink


Tiens, pendant que j'y pense, si tu es toujours intéressé pour programmer sur Master System avec SDCC, il y a un type qui développe un kit spécifique : http://www.smspower.org/forums/15228-DevkitSMSDevelopYourHomebrewInC
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Invité Mer 11 Fév 2015 - 16:56

J'avais oublié, vinga aussi est un pro du Z80  Mr. Green
avatar
Invité
Invité


Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 20:28

Bon, ben il semble que c'est le timing VDP qui foirait ... J'ai joué sécure et mis 3 nop après chaque accès VDP et il n'y à plus de glitch ... Bizarre. Je pense que ça passe avec 2 nop, mais bon, c'est pas une routine critique coté vitesse.

Me reste un bug de son à corriger !
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Fabf Mer 11 Fév 2015 - 21:29

Content que tu ai résolu le problème. 😄

Juste pour info, c'est quel modèle de MSX2 ?
Fabf
Fabf
Patient incurable

Masculin Nombre de messages : 1894
Age : 51
Localisation : Vienne (38)
Date d'inscription : 11/09/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Mer 11 Fév 2015 - 21:30

Fabf a écrit:Content que tu ai résolu le problème. 😄

Juste pour info, c'est quel modèle de MSX2 ?

Je sais pô :) J'ai encore rien pour tester sur bécane réelle ... Il faut que j'investisse, mais il faut surtout que je trouve de la place pour brancher les MSX ...
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Fabf Mer 11 Fév 2015 - 21:54

Shocked Tu branche quoi sur ta télé ?
Fabf
Fabf
Patient incurable

Masculin Nombre de messages : 1894
Age : 51
Localisation : Vienne (38)
Date d'inscription : 11/09/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Jeu 12 Fév 2015 - 8:15

Fabf a écrit:Shocked Tu branche quoi sur ta télé ?

Je teste sur Emu (BlueMsx) et Eric teste sur toutes les bécanes qu'il à en sa possession.
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par Fabf Jeu 12 Fév 2015 - 9:55

Ok donc c'est sur un MSX2 d'Eric 😄
Fabf
Fabf
Patient incurable

Masculin Nombre de messages : 1894
Age : 51
Localisation : Vienne (38)
Date d'inscription : 11/09/2012

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par erikrom2 Ven 20 Fév 2015 - 23:21

joli michel superbe , les fan msx et coleco comme moi sont aux anges avec des gars comme toi
et dire que ton adaptation  pang eu été un mega hit msx 1 en 1985 . 
tu est une star du code avec un peu de retard , pas grave tu as quand même des fans , sans la fortune .
erikrom2
erikrom2
Infirmier

Masculin Nombre de messages : 3308
Age : 56
Localisation : var
Date d'inscription : 18/10/2005

http://retrogamer.blog4ever.com/blog/index-199671.html

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Jeu 26 Fév 2015 - 19:55

[TERMINE] Pang ! / MSX Dsc04810
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par pckid Jeu 26 Fév 2015 - 19:59

Tu as fait commeny pour regler ton bug ?

c est très beau comme cover
pckid
pckid
Infirmier

Masculin Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

[TERMINE] Pang ! / MSX Empty Re: [TERMINE] Pang ! / MSX

Message par bfg Jeu 26 Fév 2015 - 20:06

Le timing VDP qui était trop rapide pour un MSX2 à priori. Quelques NOP de plus après avoir balancé la donnée au VDP et le tour à été joué ...
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

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