asMsx...

Page 2/3
1 | | 3

By Leo

Paragon (1236)

Leo's picture

10-06-2010, 17:30

Faire la musique c'est penible, faut pas que ca ralentisse , et que ca soit joli ... Tongue

By RibbSayan

Resident (59)

RibbSayan's picture

11-06-2010, 08:34

Effectivement, je m'attends à de grosse suprise de ce coté là. Je vais me baser sur le PT3 player et AyFx player...
Mais bon, je ne suis pas musicien non plus... mais ca se sera aussi un autre problème !
LOL!

By RibbSayan

Resident (59)

RibbSayan's picture

16-07-2010, 10:20

Hello,

J'arrive bien à créer la rom de type Konami without scc avec asMSX (Ce que j'ai décrit plus haut) mais je n'arrive pas à inter-changer les "subpages". Du coup j'ai pleins de questions et je suis même prêt à changer de compilateur pour écrire du code plus "traditionnel" ressemblant à du vrai Z80 :
- Comment défini t'on une sous-page (avec asMsx, c'est bien le code .select mais en vrai, c'est quoi) ?
- Est-ce que les sous-pages de la rom peuvent être sélectionnées sur n'importe quel des 3 banks (6000h, 8000h et A000h) ?
- Une même sous-page peut elle être simultanément sur les 3 banks en même temps (même s'il y a peut d'intérêt) ?
- La bank fixe sur 4000h est elle considérée comme la sous-page 0 (à priori je crois que oui car la sous-page 1, 2 et 3 sont associées respectivement à 6000h, 8000h et A000h) ?
- Si quelqu'un a un exemple tout simple de code pour créer une megarom avec switch de subpage au dela de la 3eme subpage je suis vraiment preneur.

J'ai demandé un peu d'aider sur le MRC anglais mais bon les réponses ne sont pas vraiment satisfaisante (Surement que mes questions ne le sont pas non plus :-)

Enfin bref, je suis vraiment preneur de toute l'aide possible, je suis vraiment motivé à finir mon jeu et de le partager (code source et rom et tout l'expérience acquise)

By Jipe

Paragon (1366)

Jipe's picture

16-07-2010, 11:46

en fait il faut regarder du coté électronique de la chose

la ROM est divisée en pages de 8 K que l'on peut déplacer dans la mémoire vue par le Z80

on ne voit que 4 pages a la fois 4000h 5FFFh , 6000h 7FFFh , 8000h 9FFFh , A000h BFFFh

une écriture de 6000h a 7FFFh commute la page X de 8K a l'adresse mémoire 6000h a7FFFh

donc pour changer de page un simple 3E XX 32 00 60 suffit

on peut avoir la même page de Roms dans 2 ou 3 banks de mémoire sans aucun probléme

dans les megarom konami la page 0 est fixe par soft mais électroniquement on peut la changer

si ça peut t'aider a mieux comprendre l'architecture car du coté asMSX il va falloir te débrouiller Wink

By RibbSayan

Resident (59)

RibbSayan's picture

16-07-2010, 13:31

Merci pour les infos, je comprends mieux la vision du 64Ko vu par le Z80.
Par contre, la rom, elle-même, est-ce juste des paquets de 8Ko dont le 1er comporte un entête avec des informations de démarrage ?

By Jipe

Paragon (1366)

Jipe's picture

16-07-2010, 14:17

oui ce sont bien des paquets de 8K
le 1er en page fixe comprends les octets 41 42 xx xx ou xx xx correspond a l'adresse de start

il existe des mégaroms a bank de 16K dans les cartouches type ASCII et la il n'y a que 2 pages de 16k a commuter

le mieux étant de fouiller un peu dans les mégaroms avec un éditeur hexa et de chercher les 32 00 60 , 32 00 80 , 32 00 A0 pour se donner une idée de la chose ( valable uniquement sur une mégarom konami sans SCC bien sur )

By RibbSayan

Resident (59)

RibbSayan's picture

16-07-2010, 17:49

Après quelques tests, j'ai enfin compris de quoi il en retourne dans asMsx (Même si quelques subtilités de déclaration me dépassent encore) Le but étant que je puisse accéder à toute la megarom.

J'ai déclaré une mégarom de type Konami 4 (sans scc) avec 16 sous-pages.

Pour commencer, la 1ère instruction à utiliser est ".search" qui impose au Z80 de voir la megarom entre l'adresse 8000h et BFFFh (sinon, c'est de la RAM)

La 1ère bank (4000h à 5FFFh) est initialisé automatiquement avec la sous-page 0 (qui n'a pas besoin d'être déclaré dans asMsx)

La 2ème bank (6000h à 7FFFFh) est initialisé automatiquement avec la sous-page 1 (qui a besoin d'être déclaré) Cette bank n'est capable que de voir que les sous-pages impaires... Fallait le savoir Crazy
.select 0 at $6000 -> on voit la sous-page 1, .select 1 at $6000 -> on voit la sous-page 3, .select 2 at $6000 -> on voit la sous-page 5,...

La 3ème bank et la 4ème bank peuvent eux heureusement voir toutes les sous-pages sans distinction.

Merci à la combinaison Editeur Hexa, AsMsx et BlueMsx Debuggeur pour m'avoir permis de décortiquer ce fonctionnement.

Merci aussi à Jipé.

Voici le code d'exemple que j'ai utilisé pour tester mes dires :

.bios
.megarom Konami
.start INIT
db "MyMegarom2",1ah

; $8000 (0)
INIT:
	.search
	ld a,0
	select 15 at $A000
	call INITIALISATION
MAIN_LOOP:
	halt
	jr	MAIN_LOOP

.subpage 1 at $6000					
; $6000 (0) veut dire .select 0 at $6000
; $8000 (1)
ld a,1

.subpage 2 at $8000	
; $8000 (2)
ld a,2

.subpage 3 at $A000					
; $6000 (1)
; $8000 (3)
ld a,3

.subpage 4 at $6000	
ld a,4
	
.subpage 5 at $6000					
; $6000 (2)
INITIALISATION:
	ld a,5
	call    DISSCR					; Ecran désactivé
	ld      hl,0f3e9h				; Color 15,0,0
	ld      [hl],15
	inc     hl
	ld      [hl],0
	inc     hl
	ld      [hl],0
	call    INIGRP					; Screen 2,2
	ld      bc,0e201h
	call    WRTVDP
	ret

.subpage 6 at $6000
	ld a,6

.subpage 7 at $6000					
; $6000 (3)
	ld a,7

.subpage 8 at $6000					
	ld a,8

.subpage 9 at $6000					
; $6000 (4)
	ld a,9

.subpage 10 at $6000					
	ld a,10

.subpage 11 at $6000					
; $6000 (5)
ld a,11

.subpage 12 at $6000					
	ld a,12

.subpage 13 at $6000					
; $6000 (6)
ld a,13

.subpage 14 at $6000					
	ld a,14

.subpage 15 at $6000					
; $6000 (7)
ld a,15

By Jipe

Paragon (1366)

Jipe's picture

16-07-2010, 18:43

étrange le coup de sous-pages impaires , a vérifier dans une vraie mégarom

By RibbSayan

Resident (59)

RibbSayan's picture

16-07-2010, 19:58

Je suis incapable de vérifier cela mais tout a fait capable de fournir le fichier qui va bien pour tester.

By RibbSayan

Resident (59)

RibbSayan's picture

17-07-2010, 21:03

Je me reprends, je n'ai pas trouvé le problème de ma megarom de test mais après avoir repris une structure saine, on peut effectivement sélectionnée toutes les subpages sur toutes les banks ! C'est rassurant LOL!

Page 2/3
1 | | 3