Schneider / Amstrad CPC Forum
Amstrad / Schneider CPC => Programmierung => Topic started by: BadCPC on 07. June 2025, 13:40:16
;Softbrenner Info and CRC-Error FIX How To
;
; Viele kennen das Promblem mit dem Softbrenner 1.27
; Ich konnte leider nicht herrausfinden wie man ein Rom direkt als
; "background rom" Rom Type 1 einrichtet.
; Foreground geht ja soweit auch ohne crc fehler
; leider keine Einschaltmeldung
; Jetzt hab ich mich dessen mal angenommen, besonders gut geht das mit JavaCPC Emulator
; Sollte aber auch mit anderen Emus funktionieren
; So jetzt erstmal ein paar Infos zu den Softbrenner Generierten Roms
;
; Rom aufbau in diesem fall Soundcompiler die EBO in ein Rom gemacht hat.
;
;
<code>
;Romheader
db &00 ; Romtype &00 foreground >&01 und < &80 Background und Extension
;Softwareversion 1.10
db &01 ; Software version im ROM
db &01 ; Software version sub
db &00 ; Software patchlevel
;nametableadresse
dw nametable ; steht meistens am ende des roms &FFFE downwards
;----------------------------
Jumptable ; 33x 3 bytes
; Somit sind tatsächlich nur 32 RSX möglich
JP INIT ; wird vom Softbrenner nicht mitgezählt
JP First_RSX
JP Second_RSX
;..
;..
;..
JP 32_RSX if avaible
;-----------------------------
; Softbrenner header
; Marker für Softbrenner
DB "R-GEN1.16"
; Starup Message, diese wird beim starten des CPC Angezeigt
; DB "Startupmessage"
;-----------------------------
; Danach sind ein Bytes für init
; und Rom-Check
;-----------------------------
; etwa bei und &C0C3 folgt der Prüfsummen check
;
; hier sucht man nach
SUB (HL) ;und
CP (HL)
; dies ist der wichtigste bereich.
;-----------------------------
; wichtig auch &FFFF dort wird die Prüfsumme eingetragen.
;-----------------------------
</code>
So wie fixe ich jetzt den CRC-FEHLER
Am besten mit einem HEXEDIT und den Debugger von JavaCPC
Das fehlerhafte ROM in Javacpc eintragen bsp ROM-PORT5
Und einmal den Javacpc die CPCmaschine resetten
Nun geht man in den Debugger von JavaCPC
Stellt dort UpROM: auf 5
Im dissambler geht man nach &C0C3 in diesem Bespiel und sucht dann nach SUB (HL) und CP (HL).
In der Zeile wo CP (HL) steht wird ein Breakpoint gesetzt
Jetzt lässt man den CPC weiter laufen mit Run und und Resette diesen.
JavaCPC meldet sich dann mit dem Breakpoint zurück, in Register A steht jetzt die richtige Prüfsumme. Diese trägt man dann mit einem Hexeditor oder mit dem Softbrenner in adresse &FFFF bzw &&7FFF (Softbrenner) ein . Nur noch Speichern und im Javacpc neu laden das wars.
Viel Spass beim nachmachen.
Die Prüfsumme eines ROMs läßt sich beispielsweise mit dem ROManager unter FutureOS anpassen. Aber der Softbrenner sollte das auch selber können.
Leider nicht TFM, eine einfache einstellung im 1.27 um backgroundroms zu erstellen hab ich nicht gefunden, im eingebauten editor kann man zwar auf 1 stellen aber da gibts dann crc-error.
Dann nimm einfach nur den ROManager 2.5 (FutureOS), der arbeitet auch mit der ROM-RAM-Box. Und wenn Dir 'Feartures' fehlen, dann kann ich sie für Dich einbauen. :winke0002: