Ja, dass müsste auf 2 Channel verteilt werden, außer du trickst gewaltig.
Mit tricksen hört es aber sich auch nicht 100% wie das Original an.
Mit tricksen hört es aber sich auch nicht 100% wie das Original an.
Code
o4c1024>c1024c1024c1024c1024c1024c1024c1024c1024c1024
Die Frage wurde bestimmt schon 5000000000000000000 mal gestellt, habe aber ehrlich gesagt keine Lust alle 99 Seiten durchzulesen, deshalb frag ich jetzt einfach mal... !
Und zwar: Ich möchte das der Hammer Bruder nicht Palette B sondern Palette D verwendet.
Und nein .. ich kann nicht einfach die Farben aus Reihe D in Reihe B verschieben, da die anderen Sprites dann auch betroffen wären. x:
Ich könnte ja Notfalls den Hammer Bruder einfach eine eigene Palettenreihe in YY-CHR geben, wollte aber Fragen ob es nicht eine einfachere Lösung gibt..
Und zwar: Ich möchte das der Hammer Bruder nicht Palette B sondern Palette D verwendet.
Und nein .. ich kann nicht einfach die Farben aus Reihe D in Reihe B verschieben, da die anderen Sprites dann auch betroffen wären. x:
Ich könnte ja Notfalls den Hammer Bruder einfach eine eigene Palettenreihe in YY-CHR geben, wollte aber Fragen ob es nicht eine einfachere Lösung gibt..

Ein Custom Sprite, richtig? Das kannst du mit dem CFG-Editor bewerkstelligen.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Zitat von WYE:
Ein Custom Sprite, richtig? Das kannst du mit dem CFG-Editor bewerkstelligen.
Ich hab ihn nur eine neue Grafik verpasst, wozu das Blau/Lila überhaupt nicht passt.
Also der ganz normale "Amazing flying Hammer Brother"

Ach so. Vielleicht gibt's bei SMWC das Tool "Sprite Paint" noch, damit dürfte das am einfachsten gehen.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Zitat von WYE:
Ach so. Vielleicht gibt's bei SMWC das Tool "Sprite Paint" noch, damit dürfte das am einfachsten gehen.
Leider nicht ._.
Habs jetzt einfach mit YY-Chr gemacht.. Aber ich denke das Ergebnis kann sich sehen lassen c:

Vorher war der einfach nur Blau..

Dann wirst du wohl hex-editieren müssen. Hier, das scheint die Adresse zu sein:
Ein Hex-Tutorial von mir flattert hier irgendwo rum. Von Bedeutung dürfte jedes zweite Byte sein, und das wäre dann im YXPPCCCT-Format.
Zitat
15CF1 $02:DAF1 8 bytes Sprite tilemap related Sprite tilemap: Amazing Flyin' Hammer Brother
Ein Hex-Tutorial von mir flattert hier irgendwo rum. Von Bedeutung dürfte jedes zweite Byte sein, und das wäre dann im YXPPCCCT-Format.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Ich bin ja gerade am Patches einfügen und manchmal zweifel ich echt an mir oder an smwc.
Beispiel: Patch soll ermöglichen, dass man keine P-Jumps mehr machen kann, was macht der Patch? Er erlaubt gar keine Sprünge.
Das sind noch die kleineren Probleme, nach dem man immer erst die Patchs gesucht hat, die den Fehler verursachen.
Manche Patchs bringen die ROM sofort zum Absturz etc.
Es gibt aber 1, 2 Patches auf die ich nicht verzichten will, daher meine Frage ob mir jemand hierbei helfen kann, die Fehler zu beheben.
Patch 1:
Soll Feuermario nach einer bestimmten Zeit wieder zu Mario machen. Funktioniert auch. Nur der Patch überschreibt eine bestimmte ExGFX.
Hab schon probiert, die ExGFX auf eine andere Map16 Page zu legen, aber auch dort wird die ExGFX überschrieben.
Hier mal der Code:
Patch 2:
Soll dafür sorgen, dass wenn man geduckt ist nicht springen kann. Funktioniert auch. Überschreibt aber wahllos irgendwelche ExGFX auf irgendwelchen Map16 Pages.
Hier mal der Code:
Und bei den letzten 2 Patchen hab ich immer das gleiche Problem. Sie machen Vertikal Level zu Horizontalen. Die eigentliche Funktion funktioniert auch wie immer, aber wie schon gesagt sie machen Vertikale Level zu Horizontale. (nur die Level die ich selbst vertikal gemacht habe, nicht die die im Originalen auch schon vertikal sind.)
Hier Code 1 (Keine Wandsprünge mehr):
Code 2 (nicht mehr mit Wolken/Ballon durch Wände gehen bei links rechts drücken):
Ich hoffe mir kann hierbei jemand helfen.
Ich sag schon mal ein ganz großes
DANKE!
Beispiel: Patch soll ermöglichen, dass man keine P-Jumps mehr machen kann, was macht der Patch? Er erlaubt gar keine Sprünge.
Das sind noch die kleineren Probleme, nach dem man immer erst die Patchs gesucht hat, die den Fehler verursachen.
Manche Patchs bringen die ROM sofort zum Absturz etc.
Es gibt aber 1, 2 Patches auf die ich nicht verzichten will, daher meine Frage ob mir jemand hierbei helfen kann, die Fehler zu beheben.
Patch 1:
Soll Feuermario nach einer bestimmten Zeit wieder zu Mario machen. Funktioniert auch. Nur der Patch überschreibt eine bestimmte ExGFX.
Hab schon probiert, die ExGFX auf eine andere Map16 Page zu legen, aber auch dort wird die ExGFX überschrieben.
Hier mal der Code:
Code
;FirePowerTimer
;Makes it so firepower works on a timer. e.g. when you get a firepower,
;you will only have it for a certain amount of time
;frames you have firepower is Timer RAM * Multiplier RAM
;HuFlungDu
;Note, hijacks the SAME status bar routine as everybody else since I'm far too lazy to find a better
;one, so check if I hijack te same place (8DC4) as any of your other patches.
;No credit neccesary (I knocked it out in about five minutes...)
;Feel free to PM me if you have any problems
!freeram = $0660 ;set to free RAM
!freeram2 = $0661 ;I use the same freeram as a start as everybody else,
;so your probably going to want to change these.
macro RATS_start(id)
db "STAR"
dw RATS_Endcode-RATS_Startcode
dw RATS_Endcode-RATS_Startcode^#$FFFF
RATS_Startcode:
endmacro
macro RATS_end(id)
RATS_Endcode:
endmacro
lorom ;\ ROM is LoRom
header ;/ and has a header.
org $01C5EC ;\Hijack getfire routine
JSL setram ;|and jump to code
NOP ;/then get rid of one byte because I oerwrite the rest of the command
org $8DC4 ;\ Hijack NMI routine
JSL StatusCode ;| and jump to our code
NOP ;/ also NOP one time.
org $218015 ;| POINT TO FREE SPACE!!!
%RATS_start(0)
StatusCode:
LDA #$02 ;\ Restore previous
STA $420B ;/ hijacked NMI routine.
LDA $19 ;\Check if you have firepower
CMP #$03 ;|
BNE return ;/
DEC !freeram2 ;\decrease the "multiplyer" RAM "allows me to make it take FF*2 frames
LDA !freeram2 ;|and check if it has reached 0 yet
BNE return ;/
LDA !freeram ;\if it has and the first timer isn't zero
BEQ return ;/
LDA #$02 ;\This is the Mulitplier RAM
STA !freeram2 ;/
DEC !freeram ;decrease timer
LDA !freeram ;\check if it's zero yet
BNE return ;/
LDA #$01 ;\make mario big
STA $19 ;/
return:
RTL
setram:
LDA #$20 ;\Restore hijack
STA $149B ;/
LDA #$FF ;\This is the Timer RAM
STA !freeram ;/
RTL
%RATS_end(0)
;Makes it so firepower works on a timer. e.g. when you get a firepower,
;you will only have it for a certain amount of time
;frames you have firepower is Timer RAM * Multiplier RAM
;HuFlungDu
;Note, hijacks the SAME status bar routine as everybody else since I'm far too lazy to find a better
;one, so check if I hijack te same place (8DC4) as any of your other patches.
;No credit neccesary (I knocked it out in about five minutes...)
;Feel free to PM me if you have any problems
!freeram = $0660 ;set to free RAM
!freeram2 = $0661 ;I use the same freeram as a start as everybody else,
;so your probably going to want to change these.
macro RATS_start(id)
db "STAR"
dw RATS_Endcode
dw RATS_Endcode
RATS_Startcode
endmacro
macro RATS_end(id)
RATS_Endcode
endmacro
lorom ;\ ROM is LoRom
header ;/ and has a header.
org $01C5EC ;\Hijack getfire routine
JSL setram ;|and jump to code
NOP ;/then get rid of one byte because I oerwrite the rest of the command
org $8DC4 ;\ Hijack NMI routine
JSL StatusCode ;| and jump to our code
NOP ;/ also NOP one time.
org $218015 ;| POINT TO FREE SPACE!!!
%RATS_start(0)
StatusCode:
LDA #$02 ;\ Restore previous
STA $420B ;/ hijacked NMI routine.
LDA $19 ;\Check if you have firepower
CMP #$03 ;|
BNE return ;/
DEC !freeram2 ;\decrease the "multiplyer" RAM "allows me to make it take FF*2 frames
LDA !freeram2 ;|and check if it has reached 0 yet
BNE return ;/
LDA !freeram ;\if it has and the first timer isn't zero
BEQ return ;/
LDA #$02 ;\This is the Mulitplier RAM
STA !freeram2 ;/
DEC !freeram ;decrease timer
LDA !freeram ;\check if it's zero yet
BNE return ;/
LDA #$01 ;\make mario big
STA $19 ;/
return:
RTL
setram:
LDA #$20 ;\Restore hijack
STA $149B ;/
LDA #$FF ;\This is the Timer RAM
STA !freeram ;/
RTL
%RATS_end(0)
Patch 2:
Soll dafür sorgen, dass wenn man geduckt ist nicht springen kann. Funktioniert auch. Überschreibt aber wahllos irgendwelche ExGFX auf irgendwelchen Map16 Pages.
Hier mal der Code:
Code
;Disable Jumping While Ducking Patch
;Origional By: Ixtab
;"Fix" By: Chdata/Fakescaper
;Does not disable spin jumping globally (while still being able to jump off of Yoshi)
;Because there is already a patch on SMWC that does this
;Also unlike Ixtab's version, the jumping SFX does not play when you try to jump while ducking, and it's now impossible to see Mario "twitch" from trying to show his jumping frame.
;Incase you're wondering, you can still jump while sliding.
;If you want to disable jumping while sliding too, look for ";ORA $13ED" and uncomment it, (Remove the semicolon)
header
lorom
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!freeSpace = $958000 ; change this to whatever
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
org $8F7E
JSL Main
NOP #2
org !freeSpace
db "STAR"
dw Encode-Main
dw Encode-Main^#$FFFF
Main: ;Start of Patch
STA $0F14 ;Put hacked code back.
STX $0F13 ;More code restoration
LDA $73 ;Mario's Ducking Flag
;ORA $13ED ;***UNCOMMENT THIS LINE IF YOU WANT TO DISABLE JUMPING WHILE SLIDING***
BEQ bbb ;If not ducking skip this
REP #$20 ;16-bit A
LDA #$8080 ;This
TSB $0DAA ;-Disables jumping while ducking
TSB $0DAC ;-Disables spin jumping while ducking (comment this out if you want to still be able to, the patch will still be able to counter break as described in the description. Incase you're stupid, duck jumping as big Mario to fit into small places.)
SEP #$20 ;8-bit A
bbb: ;labbbel
RTL ;Return
Encode: ;End of Patch
print "I'm psychic, I knew that you would patch this."
print "-Chdata-"
;Origional By: Ixtab
;"Fix" By: Chdata/Fakescaper
;Does not disable spin jumping globally (while still being able to jump off of Yoshi)
;Because there is already a patch on SMWC that does this
;Also unlike Ixtab's version, the jumping SFX does not play when you try to jump while ducking, and it's now impossible to see Mario "twitch" from trying to show his jumping frame.
;Incase you're wondering, you can still jump while sliding.
;If you want to disable jumping while sliding too, look for ";ORA $13ED" and uncomment it, (Remove the semicolon)
header
lorom
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!freeSpace = $958000 ; change this to whatever
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
org $8F7E
JSL Main
NOP #2
org !freeSpace
db "STAR"
dw Encode-Main
dw Encode-Main^#$FFFF
Main: ;Start of Patch
STA $0F14 ;Put hacked code back.
STX $0F13 ;More code restoration
LDA $73 ;Mario's Ducking Flag
;ORA $13ED ;***UNCOMMENT THIS LINE IF YOU WANT TO DISABLE JUMPING WHILE SLIDING***
BEQ bbb ;If not ducking skip this
REP #$20 ;16-bit A
LDA #$8080 ;This
TSB $0DAA ;-Disables jumping while ducking
TSB $0DAC ;-Disables spin jumping while ducking (comment this out if you want to still be able to, the patch will still be able to counter break as described in the description. Incase you're stupid, duck jumping as big Mario to fit into small places.)
SEP #$20 ;8-bit A
bbb: ;labbbel
RTL ;Return
Encode: ;End of Patch
print "I'm psychic, I knew that you would patch this."
print "-Chdata-"
Und bei den letzten 2 Patchen hab ich immer das gleiche Problem. Sie machen Vertikal Level zu Horizontalen. Die eigentliche Funktion funktioniert auch wie immer, aber wie schon gesagt sie machen Vertikale Level zu Horizontale. (nur die Level die ich selbst vertikal gemacht habe, nicht die die im Originalen auch schon vertikal sind.)
Hier Code 1 (Keine Wandsprünge mehr):
Code
header
lorom
;Walljump/Note Block Glitch Fix by lolcats439
;fixes the wall jumping glitch and the note block-wall death glitch
;This patch moves some of SMW's anti-wall-clipping code to freespace, and calls it from different hijacks, so it runs before the "Mario is on ground" bit of $77 would get set, so that the bit doesn't get set when jumping at a wall. Then when trying to walljump, you can't "catch" the block anymore, because you don't clip inside the block for one frame.
;It fixes the note block clipping glitch by changing the blocked bits that will be set to $77 to 12 (blocked from up and right) if it is 11 (blocked from up and left) and Mario is moving to the left. This would be a separate patch, but it needs to use the same hijack used to fix the walljumping glitch.
;post bugs/comments in this thread: http://www.smwcentral.net/?p=thread&id=35691
!FREESPACE = $168000 ; change to freespace
org $00E9F6 ;\ Hijack code and JSL to custom code
JSL SideScreen ;/ this hijack runs when Mario is against the side of the screen
NOP
org $00EA16 ;\ NOP out the anti-clipping routine here
BRA Skip1 ;|
NOP #10 ;|
Skip1: ;/
org $00EBD9 ;\ reset old hex edit which didn't really fix the note block death glitch
db $02 ;/
org $00EC7E ;\ Hijack code and JSL to custom code
JSL Block ;| this hijack runs when Mario is against a block
NOP ;/
org $00ED1C
JSL BigMarioStuckInOneBlockHighSpace
NOP #4
org !FREESPACE
!CodeSize = CodeEnd-CodeStart ;\
RATS: ;| Write RATS tag to
db "STAR" ;| prevent other programs
dw !CodeSize-$01 ;| from overwriting this
dw !CodeSize-$01^$FFFF;/ code!
CodeStart:
Block:
CMP #$11 ;\ fix note block clipping glitch by changing the blocked bits
BNE Skip6 ;| to be set depending on Mario's direction
PHX ;|
LDX $7B ;|
BPL Skip7 ;|
LDA #$12 ;|
Skip7: ;|
PLX ;|
Skip6: ;/
TSB $77 ;\ restore old code
AND.b #$03 ;|
TAY ;/
LDA $00 ;\ Use $00 as temporary freeRAM, restoring its value at the end
PHA ;/
LDA $96 ;\ Don't move Mario outside the block instantly if his head is in the block
AND #$F0 ;|
STA $00 ;|
LDA $98 ;|
AND #$F0 ;|
CMP $00 ;|
BNE Skip2 ;|
JSR NoClipping ;|
BRA Skip3 ;|
Skip2: ;/
PHX ;\ Put blocked bits into X to select side of block to move Mario to
LDA $77 ;|
AND #$03 ;|
LSR A ;|
TAX ;/
LDA $1933 ;\ If layer 1 interaction is being processed, Mario is being crushed horizontally
CMP #$00 ;| between layer 1 and layer 2, and the layer 1 block is on the right, set X to 00
BNE Skip5 ;| to avoid a glitch where Mario clips in and out of the block really fast before dying
LDA $77 ;|
AND #$03 ;|
CMP #$03 ;|
BNE Skip5 ;|
CPY #$01 ;|
BNE Skip5 ;|
LDX #$00 ;|
Skip5: ;/
LDA $94 ;\ Move Mario outside the block instantly
AND #$F0 ;|
ORA.l $00E911,x;|
STA $94 ;|
PLX ;/
Skip3:
PLA
STA $00
RTL
SideScreen:
PHX
TYX
LDA.l $00E90A,x;\ restore old code
TSB $77 ;/
PLX
JSR NoClipping
RTL
BigMarioStuckInOneBlockHighSpace:
LDA $77 ;\ If blocked from the right, do nothing
AND #$01 ;| If not blocked from the left, subtract 1 from Mario's x position
BNE Skip4 ;| If blocked from the left, subtract 2 from Mario's x position
REP #$20 ;|
DEC $94 ;|
SEP #$20 ;|
LDA $77 ;|
AND #$02 ;|
BEQ Skip4 ;|
REP #$20 ;|
DEC $94 ;|
SEP #$20 ;/
Skip4:
LDA $77 ;\ restore old code
AND.b #$FC ;|
ORA.b #$09 ;|
STA $77 ;/
RTL
NoClipping:
LDA $77 ;\ anti-clipping routine moved here
AND #$03 ;|
BEQ Return ;|
AND #$02 ;|
PHX ;|
TAX ;|
REP #$20 ;|
LDA $94 ;|
CLC ;|
ADC.l $00E90D,x;| ADC.l doesn't work with y, so this uses x
STA $94 ;|
SEP #$20 ;|
PLX ;/
Return:
RTS
CodeEnd:
lorom
;Walljump/Note Block Glitch Fix by lolcats439
;fixes the wall jumping glitch and the note block-wall death glitch
;This patch moves some of SMW's anti-wall-clipping code to freespace, and calls it from different hijacks, so it runs before the "Mario is on ground" bit of $77 would get set, so that the bit doesn't get set when jumping at a wall. Then when trying to walljump, you can't "catch" the block anymore, because you don't clip inside the block for one frame.
;It fixes the note block clipping glitch by changing the blocked bits that will be set to $77 to 12 (blocked from up and right) if it is 11 (blocked from up and left) and Mario is moving to the left. This would be a separate patch, but it needs to use the same hijack used to fix the walljumping glitch.
;post bugs/comments in this thread: http://www.smwcentral.net/?p=thread&id=35691
!FREESPACE = $168000 ; change to freespace
org $00E9F6 ;\ Hijack code and JSL to custom code
JSL SideScreen ;/ this hijack runs when Mario is against the side of the screen
NOP
org $00EA16 ;\ NOP out the anti-clipping routine here
BRA Skip1 ;|
NOP #10 ;|
Skip1: ;/
org $00EBD9 ;\ reset old hex edit which didn't really fix the note block death glitch
db $02 ;/
org $00EC7E ;\ Hijack code and JSL to custom code
JSL Block ;| this hijack runs when Mario is against a block
NOP ;/
org $00ED1C
JSL BigMarioStuckInOneBlockHighSpace
NOP #4
org !FREESPACE
!CodeSize = CodeEnd-CodeStart ;\
RATS: ;| Write RATS tag to
db "STAR" ;| prevent other programs
dw !CodeSize-$01 ;| from overwriting this
dw !CodeSize-$01^$FFFF;/ code!
CodeStart:
Block:
CMP #$11 ;\ fix note block clipping glitch by changing the blocked bits
BNE Skip6 ;| to be set depending on Mario's direction
PHX ;|
LDX $7B ;|
BPL Skip7 ;|
LDA #$12 ;|
Skip7: ;|
PLX ;|
Skip6: ;/
TSB $77 ;\ restore old code
AND.b #$03 ;|
TAY ;/
LDA $00 ;\ Use $00 as temporary freeRAM, restoring its value at the end
PHA ;/
LDA $96 ;\ Don't move Mario outside the block instantly if his head is in the block
AND #$F0 ;|
STA $00 ;|
LDA $98 ;|
AND #$F0 ;|
CMP $00 ;|
BNE Skip2 ;|
JSR NoClipping ;|
BRA Skip3 ;|
Skip2: ;/
PHX ;\ Put blocked bits into X to select side of block to move Mario to
LDA $77 ;|
AND #$03 ;|
LSR A ;|
TAX ;/
LDA $1933 ;\ If layer 1 interaction is being processed, Mario is being crushed horizontally
CMP #$00 ;| between layer 1 and layer 2, and the layer 1 block is on the right, set X to 00
BNE Skip5 ;| to avoid a glitch where Mario clips in and out of the block really fast before dying
LDA $77 ;|
AND #$03 ;|
CMP #$03 ;|
BNE Skip5 ;|
CPY #$01 ;|
BNE Skip5 ;|
LDX #$00 ;|
Skip5: ;/
LDA $94 ;\ Move Mario outside the block instantly
AND #$F0 ;|
ORA.l $00E911,x;|
STA $94 ;|
PLX ;/
Skip3:
PLA
STA $00
RTL
SideScreen:
PHX
TYX
LDA.l $00E90A,x;\ restore old code
TSB $77 ;/
PLX
JSR NoClipping
RTL
BigMarioStuckInOneBlockHighSpace:
LDA $77 ;\ If blocked from the right, do nothing
AND #$01 ;| If not blocked from the left, subtract 1 from Mario's x position
BNE Skip4 ;| If blocked from the left, subtract 2 from Mario's x position
REP #$20 ;|
DEC $94 ;|
SEP #$20 ;|
LDA $77 ;|
AND #$02 ;|
BEQ Skip4 ;|
REP #$20 ;|
DEC $94 ;|
SEP #$20 ;/
Skip4:
LDA $77 ;\ restore old code
AND.b #$FC ;|
ORA.b #$09 ;|
STA $77 ;/
RTL
NoClipping:
LDA $77 ;\ anti-clipping routine moved here
AND #$03 ;|
BEQ Return ;|
AND #$02 ;|
PHX ;|
TAX ;|
REP #$20 ;|
LDA $94 ;|
CLC ;|
ADC.l $00E90D,x;| ADC.l doesn't work with y, so this uses x
STA $94 ;|
SEP #$20 ;|
PLX ;/
Return:
RTS
CodeEnd:
Code 2 (nicht mehr mit Wolken/Ballon durch Wände gehen bei links rechts drücken):
Code
header
lorom
;P-balloon/Cloud Fix patch by lolcats439
;Fixes the glitch that lets you go though blocks while using a P-balloon or Lakitu cloud.
!FREESPACE = $168000 ; change to freespace
org $02D214 ;\ Hijack code and JSL to custom code
JSL CodeStart ;/
org !FREESPACE
!CodeSize = CodeEnd-CodeStart ;\
RATS: ;| Write RATS tag to
db "STAR" ;| prevent other programs
dw !CodeSize-$01 ;| from overwriting this
dw !CodeSize-$01^$FFFF;/ code!
CodeStart:
LDA $15 ;\ restore overwritten code
AND.b #$03 ;/
CMP #$03
BNE Skip
LDA #$01
Skip:
CMP #$00
RTL
CodeEnd:
lorom
;P-balloon/Cloud Fix patch by lolcats439
;Fixes the glitch that lets you go though blocks while using a P-balloon or Lakitu cloud.
!FREESPACE = $168000 ; change to freespace
org $02D214 ;\ Hijack code and JSL to custom code
JSL CodeStart ;/
org !FREESPACE
!CodeSize = CodeEnd-CodeStart ;\
RATS: ;| Write RATS tag to
db "STAR" ;| prevent other programs
dw !CodeSize-$01 ;| from overwriting this
dw !CodeSize-$01^$FFFF;/ code!
CodeStart:
LDA $15 ;\ restore overwritten code
AND.b #$03 ;/
CMP #$03
BNE Skip
LDA #$01
Skip:
CMP #$00
RTL
CodeEnd:
Ich hoffe mir kann hierbei jemand helfen.
Ich sag schon mal ein ganz großes
DANKE!
Weißt du, was "Free Space" ist? Wenn nicht, kann's daran liegen.
Die meisten Patches fügen zusätzlichen Code ins Spiel ein, und dafür brauchen sie Platz (Speicher, den das Originalspiel nicht benutzt und der somit frei ist). Wo der liegt, das musst du herausfinden und dem Patch sagen, sonst fügt der seinen Code an einer Stelle ein, an der auch SMW schon Code hat, und dann ist es ja klar, dass Fehler auftreten.
Die meisten Patches fügen zusätzlichen Code ins Spiel ein, und dafür brauchen sie Platz (Speicher, den das Originalspiel nicht benutzt und der somit frei ist). Wo der liegt, das musst du herausfinden und dem Patch sagen, sonst fügt der seinen Code an einer Stelle ein, an der auch SMW schon Code hat, und dann ist es ja klar, dass Fehler auftreten.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Hab leider nur eine vage Vorstellung davon, was Freespace ist. Wie man ihn findet und "zuteilt" hab ich keine Ahnung.
Ich denke aber es sollte genug vorhanden sein. Selbst wenn ich die Patchs als erstes einfüge kommt es zu den Fehlern.
Ich denke aber es sollte genug vorhanden sein. Selbst wenn ich die Patchs als erstes einfüge kommt es zu den Fehlern.
Du musst denen ja auch sagen, wo der Free Space ist. Nicht immer sind die Standardwerte auch wirklich freier Speicher. Manche Standardwerte zeigen sogar absichtlich auf bereits benutzten Speicher, damit was überschrieben wird und man merkt, dass man sie ändern muss.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
habe gerade den patch :" [Xkas] Nintendo Presents Custom Palette in mein hack eingefügt" [beschreibung: This patch applies a small ASM hack that enables a custom palette on palette 8 (which is used by the 'Nintendo Presents' logo). The background colour can also be changed. You have to change the RGB values of the custom palette yourself (by default they're all FFFF, which is white).] und habe die hinzugefügte palette des Nintendo logos mit YY-Chr bearbeitet, gespeichert und in LM insertet (grüner Pilz), jedoch werden die Änderungen im Emulator nicht angezeigt ;/.
Normalerweise muss man ja die Mario Palette verändern, jedoch gab es hierbei Probleme, deshalb dachte ich der Patch hilft, wenn ich eine seperate Palette für das Logo habe.
Normalerweise muss man ja die Mario Palette verändern, jedoch gab es hierbei Probleme, deshalb dachte ich der Patch hilft, wenn ich eine seperate Palette für das Logo habe.
DIe Palette musst du im Patch selbst bearbeiten. Unter "PaletteTable:" stehen 16 Einträge, das sind die Farbwerte im SNES-Format.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Zitat von WYE:
Du musst denen ja auch sagen, wo der Free Space ist. Nicht immer sind die Standardwerte auch wirklich freier Speicher. Manche Standardwerte zeigen sogar absichtlich auf bereits benutzten Speicher, damit was überschrieben wird und man merkt, dass man sie ändern muss.
Ok, und wie geht das?
Hab keine Ahnung.
Code
!freeram = $0660 ;set to free RAM
!freeram2 = $0661 ;I use the same freeram as a start as everybody else,
;so your probably going to want to change these.
!freeram2 = $0661 ;I use the same freeram as a start as everybody else,
;so your probably going to want to change these.
Ich nehm an, ich muss diese 2 Linien z.B. ändern. Aber in was und woher weiss ich, dass da Platz frei ist? Wie find ich den?
Nee, die beiden nicht unbedingt. Das wäre freier RAM, du brauchst ROM.
Am einfachsten findest du den mit dem "Free Space Logger" ("slogger") von SMWC. Nimm die ROM, zieh sie über slogger.exe und eine Textdatei wird erstellt, in der alle freien Bereiche der ROM aufgelistet sind. In der "Size"-Spalte steht die Größe des Bereichs - wenn du dir nicht sicher bist, wie viel Platz ein Patch brauchst, halte nach Größen von x8000 Bytes Ausschau. Aus derselben Zeile nimmst du die Zahl unter "LoROM offset" (das ist die Adresse, an der der freie Bereich anfängt), lässt das "0x" davor weg und teilst diese Zahl dem Patch mit. Wie, das variiert von Patch zu Patch - manchmal steht dort so was wie
Am einfachsten findest du den mit dem "Free Space Logger" ("slogger") von SMWC. Nimm die ROM, zieh sie über slogger.exe und eine Textdatei wird erstellt, in der alle freien Bereiche der ROM aufgelistet sind. In der "Size"-Spalte steht die Größe des Bereichs - wenn du dir nicht sicher bist, wie viel Platz ein Patch brauchst, halte nach Größen von x8000 Bytes Ausschau. Aus derselben Zeile nimmst du die Zahl unter "LoROM offset" (das ist die Adresse, an der der freie Bereich anfängt), lässt das "0x" davor weg und teilst diese Zahl dem Patch mit. Wie, das variiert von Patch zu Patch - manchmal steht dort so was wie
Code
, dann ersetzt du das 218015 durch die von dir gefundene Adresse. Meistens aber werden der Einfachheit halber Defines benutzt, also so was wie org $218015 ;| POINT TO FREE SPACE!!!
Code
. Auch hier einfach die Zahl ersetzen. !freeSpace = $958000 ; change this to whatever
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
wie kann man das "Mario Start" bearbeiten? hab die GFX schon durch, habe da nichts gefunden :[
Es gibt glaube ich ein zwei Patches auf smwc, die Mario Start in was anderes verändern.
Zitat von Suffer:
wie kann man das "Mario Start" bearbeiten? hab die GFX schon durch, habe da nichts gefunden :[
Vielleicht hilft dir ja dieser Patch (Hab ihn selbst noch nicht getestet) :
MARIO/LUIGI START! Editor

dank dir :]
jedoch steig ich durch das YXPPCCCT format nicht durch :[
hat jemand eine Ahnung davon? wenn nicht lass ich den screen unverändert ist auch kein Thema :]
jedoch steig ich durch das YXPPCCCT format nicht durch :[
hat jemand eine Ahnung davon? wenn nicht lass ich den screen unverändert ist auch kein Thema :]
YXPPCCCT format gibt halt bestimmte werte an
-Y für auf der y achse spigeln
-x für auf der x achse spigeln
-pp auf welcher ebene sich das "sprite befindet"
-ccc welche pallete das sprite benutzt
-t welche grafik benutzt wird ...
so wenn du zum beispiel willst das ey YX gespigelt ist und die 2. graphicpage benutzt dann geht das so:
Y X P P C C C T
%1 1 0 0 0 0 0 1 =
$C1
-Y für auf der y achse spigeln
-x für auf der x achse spigeln
-pp auf welcher ebene sich das "sprite befindet"
-ccc welche pallete das sprite benutzt
-t welche grafik benutzt wird ...
so wenn du zum beispiel willst das ey YX gespigelt ist und die 2. graphicpage benutzt dann geht das so:
Y X P P C C C T
%1 1 0 0 0 0 0 1 =
$C1
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.
Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
Ich putze hier nur.
Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
