Coder un jeu demande pas mal de temps mais creer des sons et des graphiques en demande encore plus, n'etant ni musicien ni graphiste il me sera tres dur de faire un jeu et la n'est pas mon ambition, seul des personnes ayant beaucoups d'experience dans le domaine de la prog de jeux en sont capable.
N'empeche qu'il est quand meme interessant de coder quelques demos qui peuvent etre sympathique...
Ayant deja des connaissances en C je me suis interesse a l'assembleur car c'est un tres bon moyen de comprendre et connaitre le fonctionement de la becane, de plus l'assembleur magic kit est je trouve assez puissant et bien documente.
Pour ceux que ca interesse et qui n'aurait pas compris l'adresseage memoire de la pce voici une petite explication de rich, qui en passant bosse en ce moment sur la traduc de bublegum crash qui devrait etre dispo avant la fin de l'annee.
You already know that the CPU logical address space is $0000-$FFFF. The address space is divided into 8 segments. Each segment is assigned its own MPR ( mapper register ). Like so.
$0000-$1FFF = MPR0
$2000-$3FFF = MPR1
$4000-$5FFF = MPR2
$6000-$7FFF = MPR3
$8000-$9FFF = MPR4
$A000-$BFFF = MPR5
$C000-$DFFF = MPR6
$E000-$FFFF = MPR7
The MPRx can be anything from $00 to $FF. $00 to $FF is a bank of 8kilobytes - located in the 2megabyte address range . If you set MPR0 to $00 then it will point to the beginning of the rom ($00000).
Hucards can only be in banks $00-$7F. The largest hucard is $80($7F): $80 x $2000(8k) = $10000(1,048,576) bytes or 1024k.
The rest of the banks $80-$FF are reserved for hardware access. For instance $F8 is the 8k of ram, $FF is the hardware page ( PSG, VDC,VCE,I/O).
Your typical layout for a hucard is:
$0000-$1FFF = MPR0 ( $FF )
$2000-$3FFF = MPR1 ( $F8 )
$4000-$5FFF = MPR2 ( $xx )
$6000-$7FFF = MPR3 ( $xx )
$8000-$9FFF = MPR4 ( $xx )
$A000-$BFFF = MPR5 ( $xx )
$C000-$DFFF = MPR6 ( $xx )
$E000-$FFFF = MPR7 ( $00 )
Bank $00 is very important because is also contains the Interrupt Vectors - $1FF0-$1FFF in the rom, which is $FFF0-$FFFF when mapped to MPR7.
Note: On startup all the MPR's contain random garbage values except MPR7 which is always set to $00 on power up or reset. On power up/reset the system sets MPR7 to $00 then jumps to the address located in $FFFE ($1FFE in the rom).
If you need to convert rom address space to a bank number, here is how you do it:
( rom_address & 0xFE000 ) / 0x2000. So rom address $20000-$21FFF is in bank $10. If you map bank $10 to MPR2 then rom address $20000-$21FFF will be $4000-$5FFF in memory.