geschrieben am 07.08.2013 6:37:28
zuletzt bearbeitet von
MarioFanGamer am 07.08.2013 14:50:28.
Erstens: Die fünfstelligen Zahlen sind
PC Adressen. Und (LoRom) SNES-Adressen sind
immer sechsstellig und man kann die Adressen $xx0000 bis $xx7FFF nicht benutzen, denn sie werden für Ram Adressen genutzt.
Zweitens: Für größere Codes soll man einen Assembler wie Xkas oder Asar (besser gesagt: die einzigen weil Trasm [oder besser gesagt Trashm, welches wie "Trash" mit einen "m" gesprochen wird] miserabel ist) und
keinen Hexeditor (man muss wissen, wie viele Felder man überspringt...).
Und drittens: Die Adresse $010B speichert das lowByte einer Level Nummer (also die ersten zwei hexdezimale Zahlen bzw. ein Byte). Wenn du wissen möchtest, in welches Level man ist nutze den Code:
CodeLDA $010B
CMP #$!Level_lowbyte
BNE xx
LDA $010C
CMP #$!Level_HighByte
BNE xx
Natürlich "xx" durch einen Label Namen (z.B. Return oder Original) ersetzen
Edit: Beispiel für Level 105:
CodeLDA $010B
CMP #$05
BNE xx
LDA $010C
CMP #$01
BNE xx
Noch ein ungezählter Edit: Bei einem Hex Editor musst du
CodeAD 0B 01 C9 xx D0 xx AD 0C 01 C9 xx D0 xx
bzw. für meinen Beispiel das eingeben:
CodeAD 0B 01 C9 05 D0 xx AD 0C 01 C9 01 D0 xx
Edit: Codeupdate:
CodeREP #$20
LDA $010B
CMP #$!LevelNummer
BNE xx
SEP #$20
Beispiel:
CodeREP #$20
LDA $010C
CMP #$010B
BNE xx
SEP #$20
Für Hex bin ich zu faul.
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->