Question bête: l'Erebus patche la ROM pour faire en sorte que les CLOAD chargent depuis la carte SD, mais quid de CSAVE?
En gros, si je charge un fichier depuis l'Erebus en faisant CLOAD, est-ce que je peut faire CSAVE pour sauver sur une cassette ou bien est-ce que ca ne marcherait pas?
Salut Dbug
La routine CLOAD est remplacée par un code qui fait permuter la page RomBasic par la page qui contient les 4k de code qui gère la carte SD. La routine CSAVE a été conservée. La sauvegarde sortira donc par la prise magnétophone.
Cool, donc techniquement je pourrais utiliser l'Erebus pour faire des versions physiques des jeux comme Skool Daze ou Stormlord en rajoutant un petit loader au début du .TAP qui en gros fait CLOAD/CSAVE/CLOAD/CSAVE/... pour chaque partie.
Faut que je tente ca 🙂
Merci!
Bon, j'ai fait quelques essais et ca ne marche pas très bien.
Est-ce qu'il reste juste la command CLOAD, ou bien est-ce que les points d'accès intermédiaires sont aussi disponibles?
En gros pour faire la copie je ne peux pas vraiment faire un CLOAD"", ce que je faisait en général c'était de charger les en-tetes, patcher les addresses pour que ca charge a un endroit précis (pour pas écraser le programme de rip) et aussi désactiver l'auto-start pour pouvoir faire le CSAVE après.
Le code ressemble a ca:
; Useful tape ROM routines SetupTape = $e76a ; Prepare VIA for take reading RestoreVIAState = $e93d ; Restore the VIA state TapeSync = $e4ac ; Read the header GetTapeData = $e4e0 ; Actual loading of the tape content PrintSearching = $e57d ; Display "searching..." in the status bar PrintLoading = $e59b ; Display "loading ..." in the status bar load_from_tape jsr SetupTape ; Prepare VIA for take reading jsr PrintSearching ; Display "searching..." (not mandatory) jsr TapeSync ; Read the header ; Store the original start address lda _tape_start_addr+0 sta _OriginalStartAddress+0 lda _tape_start_addr+1 sta _OriginalStartAddress+1 ; Store the original end address lda _tape_end_addr+0 sta _OriginalEndAddress+0 lda _tape_end_addr+1 sta _OriginalEndAddress+1 ; Compute the size sec lda _tape_end_addr+0 sbc _tape_start_addr+0 sta _FileSize+0 lda _tape_end_addr+1 sbc _tape_start_addr+1 sta _FileSize+1 ; Replace the address by the buffer jsr PatchAddresses lda _tape_auto_flag sta _OriginalAutoFlag lda #0 sta _tape_auto_flag jsr PrintLoading ; Display "loading ..." (not mandatory) jsr GetTapeData ; Actual loading jsr RestoreVIAState ; Restore the VIA state
Le problème c'est que ca reste bloqué sur "Searching..."
Ok merci, je vais essayer de trouver une méthode alternative.
Le truc qui aiderait ca serait de pouvoir désactiver l'auto-start histoire que je puisse reprendre la main pour pouvoir sauver le fichier, sinon il va falloir que je trouve une bidouille style filtrer le .TAP que je veux sauver pour virer le flag AUTO et le remettre quand je sauve.