geschrieben am 24.02.2011 14:39:11
Jau, ich fang mal an.
Du hast in der .rar Datei ja die Sprite sowie die .asm Dateien. Wichtig sind SuboffScreen.asm und GetDrawInfo.asm. Die patchst du auf zwei unterschiedliche, freie Freespace Stellen.
So sehen meine aus:
SuboffScreen.asm
Spoiler anzeigenheader
lorom
org $3F8090
START_SUB: STZ $03
PHB
LDA #$01
PHA
PLB
PEA $801F
JML $81AC33
GetDrawInfo.asm
Spoiler anzeigenheader
lorom
org $3F8000
GET_DRAW_INFO: STZ $186C,x
STZ $15A0,x
LDA $E4,x
CMP $1A
LDA $14E0,x
SBC $1B
BEQ ON_SCREEN_X
INC $15A0,x
ON_SCREEN_X: LDA $14E0,x
XBA
LDA $E4,x
REP #$20
SEC
SBC $1A
CLC
ADC #$0040
CMP #$0180
SEP #$20
ROL A
AND #$01
STA $15C4,x
BNE INVALID
PHB
PHK
PLB
LDY #$00
LDA $1662,x
AND #$20
BEQ ON_SCREEN_LOOP
INY
ON_SCREEN_LOOP: LDA $D8,x
CLC
ADC SPR_T1,y
PHP
CMP $1C
ROL $00
PLP
LDA $14D4,x
ADC #$00
LSR $00
SBC $1D
BEQ ON_SCREEN_Y
LDA $186C,x
ORA SPR_T2,y
STA $186C,x
ON_SCREEN_Y: DEY
BPL ON_SCREEN_LOOP
LDY $15EA,x
LDA $E4,x
SEC
SBC $1A
STA $00
LDA $D8,x
SEC
SBC $1C
STA $01
PLB
RTL
INVALID: REP #$20
PLA
PLY
PLA
PHY
PHA
SEP #$20
RTL
SPR_T1: db $0C,$1C
SPR_T2: db $01,$02
Du siehst, zwei unterschiedliche Freespacestellen. Diese beiden Patches bügelst du nun per xkas auf deine Rom. Dann packst du deine Rom und die definition.asm in deinen Spritetoolordner (und die gewünschten Sprites logischerweise in den Spritesordner...). Du öffnest definition.asm und fügst dort die Freespacestellen für GetDrawInfo.asm und SuboffScreen.asm ein.
definition.asm
Spoiler anzeigenGetDrawInfo = $3F8000 ; change this to wherever you insert GetDrawInfo.asm
SubOffScreen = $3F8090 ; change this to wherever you insert SubOffScreen.asm
Anschließend kopierst du definition.asm und benennst die Kopie in xkas_def.asm um (einige von Romis Sprites beziehen sich nicht auf definition.asm, sondern auf xkas_def.asm, das Kopieren und Umbenennen ist also eine Variante, um auch diese Sprites abzudecken, alternativ kannst du in den jeweiligen .asm Dateien der Sprites auf definition.asm verweisen, oben genannte Variante ist allerdings zeitsparender).
Wenn die Freespacestellen in definition.asm und xkas_def.asm mit denen aus SuboffScreen.asm und GetDrawInfo.asm übereinstimmen, kannst du die Sprites per Spritetool einfügen, du musst diese beiden .asm Dateien NICHT auf deine ROM patchen, das wird per Spritetool automatisch gemacht. Dann sollte eigentlich alles klappen. Ich hoffe, das hat geholfen.