Beiträge von kooooopa

geschrieben am 02.04.2012 19:48:06 in Musik auf Zeit (Feuerblume)
( Link )
Ich suche einen Weg, dass wenn Mario Feuermario ist, eine von mir gewählte Musik gespielt wird.
(Vergleichbar mit der P-Switchmusik, oder der Feuerblume aus Mario Galaxy 2)

Das ganze sollte am Ende ungefähr so funktionieren.
Etwas, das andauernd überprüft ob Mario Feuermario ist.
-ist Mario kein Feuermario wird normal weiter geprüft
-ist Mario Feuermario wird die Levelmusik unterbrochen und Musik A (nur als Bsp.) abgespielt. In dieser Zeit wird nicht überprüft ob Mario Feuermario ist. Ist die Musik dann zu Ende kommt wieder die normale Levelmusik und es wird wieder andauernd überprüft, ob Mario Feuermario ist.
geschrieben am 02.04.2012 22:35:26 in Musik auf Zeit (Feuerblume)
( Link )
Ist mir relativ egal, wobei ich nicht mal weiss, was Level ASM ist.....

AddmusicM benutz ich.
geschrieben am 03.04.2012 8:23:43 in Musik auf Zeit (Feuerblume)
( Link )
Nö, dann lieber als Patch.
geschrieben am 03.04.2012 8:28:12 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )
Sieht sehr schön aus.
Erinnert mich auch an Donkey Kong

Der Berg gefällt mir auch, auch wenn er hier und da noch ein zwei Unebenheiten vertragen könnte.
geschrieben am 03.04.2012 10:02:50 in Allgemeine SMW Hacking Fragen
( Link )
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:
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)


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-"


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:


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:




Ich hoffe mir kann hierbei jemand helfen.
Ich sag schon mal ein ganz großes
DANKE!
geschrieben am 03.04.2012 11:43:49 in Allgemeine SMW Hacking Fragen
( Link )
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.
geschrieben am 03.04.2012 14:56:18 in Allgemeine SMW Hacking Fragen
( Link )
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.

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?
geschrieben am 03.04.2012 16:30:57 in Layer 2 Problem
( Link )
Hast du bei dem blauen Block (neben den Notenblock) den eingestellt, dass da was sein soll?

Tipp: Kleinere Fragen hier: allgemeine Fragen zum smw hacken (oder so ähnlich)
geschrieben am 03.04.2012 18:36:43 in Deutsches ASM Tutorial (Abgebrochen)
( Link )
Also: Das Zweiersystem, wie diese Zählweise auch genannt wird ist so aufgebaut:
-die Ziffer ganz rechts nimmst du mal 1
-die links daneben mal 2
-die links daneben mal 4
-die links daneben mal 8
.....
Um also eine Zahl im Zweiersystem in unserem normalem Zahlensystem (ich glaube das ist das Dezimalsystem) zu übersetzen Multiplizieren wir die einzelnen Ziffern wie oben und addieren die erhaltenen Ziffern. Dann haben wir unser Endergebnis.



0101 wird wie du es also auch gesagt hast zu:
1*1
+
0*2
+
1*4
+
0*8
Das ergibt dann 5. Dein Ergebnis!

Der Zweite Teil ist 0110. Das wird also zu:
1*0
+
1*2
+
1*4
+
0*8
Das ergibt dann 6. Wie kommst du da auf 96???

Rechnen wir nun 5+6 erhalten wir das eigentliche Ergebnis, 11. (oder 1011)



Das ganze kann man auch einfacher mit Schriftlichem addieren lösen.
0110+
0101
-----------
????

Zeile ganz rechts:
0+1=1 ---->schreibe 1
Zeile links daneben:
1+0=1 ---->schreibe 1
Zeile links daneben:
1+1=2 ----> geht nicht, daher schreibe 0 Übertrage 1
Zeile ganz links:
0+0+1(die Übertragene)=1 ------> Schreibe 1

Schreiben wir das ganze nun auf erhalten wir auch so 1011.



Und ja, mit deiner letzten Vermutung liegst du richtig. 1001 ist genau wie du gesagt hast 1*1+0*2+0*4+1*8, also 1+0+0+8, also 9.
geschrieben am 04.04.2012 8:03:14 in Allgemeine SMW Hacking Fragen
( Link )
Es gibt glaube ich ein zwei Patches auf smwc, die Mario Start in was anderes verändern.
geschrieben am 04.04.2012 21:33:15 in Allgemeine SMW Hacking Fragen
( Link )
Vielleicht wirst du hier ja fündig:
http://www.smwhacking.de/forum/viewtopic.php?f=19&t=572
geschrieben am 04.04.2012 21:37:07 in Mario's Revange
( Link )
Für die letzte Welt passt der Hintergrund auf jeden Fall.
Als Introbild weiss ich nicht so recht. Spiele zeigen ja allgemein als Titelbild nicht die letzte Welt.
Mach als Intro doch deinen Namen, oder irgendein Logo.
geschrieben am 05.04.2012 8:19:31 in Allgemeine SMW Hacking Fragen
( Link )
Ich würde es ganz normal einfügen, so wie ExGFX.
Ob das funktioniert weiß ich nicht, aber probier es mal unter SP3.

Edit: Und eine Frage, wie kann ich eine achtel Triole in smw darstellen?
geschrieben am 05.04.2012 8:24:07 in Mario's Revange
( Link )
Zitat von ExMariox555x:
Vieleicht mache ich ja ein Eigenes Intro Bild.


Es geht doch um das Introbild, nicht um den Intro Movie, so wie ich das jetzt verstanden hab
und das ist bei smw doch nintendo presents.
geschrieben am 05.04.2012 8:28:14 in Wysey's (nicht) super unglaubliche Werke!
( Link )
Also mir gefällt es. Besonders die Idee, mit dem zweigeteiltem Schädel.

Und Yeay, ein Koopa!
geschrieben am 05.04.2012 9:47:45 in Deutsches ASM Tutorial (Abgebrochen)
( Link )
Ich mit meinen nicht vorhandenen ASM-Kenntnissen, wollte es jetzt auch mal probieren.
Angespornt durch Suffer

Also meine Lösung für erstelle einen Block der euren Münzcounter um 1 erhöht
Ist wahrscheinlich falsch, aber falls es jemand nicht lesen will im Spoiler anzeigen
LDA #$01
STA $7E13CC
geschrieben am 05.04.2012 14:18:11 in Deutsches ASM Tutorial (Abgebrochen)
( Link )
Hab wieder was probiert, aber dieses mal bin ich extrem unsicher. Ich weiß nicht mal ob hier hierdrin überhaupt erkennt, was ich mir gedacht habe.
Es soll der Block sein, der einem ab 30 und mehr Münzen eine Feder gibt und dann die Münzen auf 0 setzt.

Fall andere die Aufgabe noch lösen wollen anzeigen
Code
LDA $7E0DB6            ; Lade Marios Münzen
CMP #$30 ; Vergleich mit 30 Münzen
BCC Nicht CapeMario ; kleiner 30 Münzen nicht zu Capemario machen
LDA $19 ; Andernfalls: Lade das Powerup
LDA #$02 ; Mario Cape geben
STA $19 ; Speichern
LDA $0 ; Lade 0 Münzen
STA $7E0DB6 ; Mach Marios Münzen zu 0
geschrieben am 05.04.2012 15:18:51 in Deutsches ASM Tutorial (Abgebrochen)
( Link )
Das heißt das hier ist korrekt?

Fall andere die Aufgabe noch lösen wollen anzeigen
Code
LDA $7E0DBF            ; Lade Münzen
CMP #$30 ; Vergleich mit 30 Münzen
BCC Nicht CapeMario ; kleiner 30 Münzen nicht zu Capemario machen
LDA #$02 ; Andernfalls Mario Cape geben
STA $19 ; Speichern
LDA $#00 ; Lade 0 Münzen
STA $7E0DBF ; Mach Marios Münzen zu 0
geschrieben am 05.04.2012 15:25:10 in TartarosTakumina
( Link )
Miniupdate 2:

Also, es sind jetzt alle Patchs drin, außer:
[Xkas] Extended Overworld Level Names (bin ich anscheinend zu blöd für, check das System nicht)
[Xkas] Multiple Midway Points 1.3 (bin ich anscheinend zu blöd für, check das System nicht)
[Xkas] P-Switch Jumping Fix (verbiete ALLE Sprünge; fail)
[Xkas] Change Game Over to Epic Fail (Als unnötig betrachtet)
[Xkas] FirePowerTimer (noch in Überlegung wegen Musik)

Und damit es noch etwas interessantes gibt, einen kleinen Fortschritt bei meiner Burg.
Musik wird noch geändert.
Findet ihr das am Ende mit den Steinen fair, oder zu schwer um drauf zu kommen bzw. fändet ihr ein Level langweilig, dass zum größten Teil daraus bestehen würde.



Oftopic: Yeay, ein 1.23 Video
geschrieben am 05.04.2012 17:27:13 in Deutsches ASM Tutorial (Abgebrochen)
( Link )
Ich mal wieder: Erstellt einen Custom Block, der eure Münzen so lange um 1 erhöht, bis ihr genau 50 (dezimal) habt. Beachtet dabei, dass die Münzen nicht über 99 (dezimal) gehen dürfen).

siehe lezte Posts anzeigen
Code
LDA $7E0DBF        ; Lade Münzen
CMP #$50 ; Vergleich mit 50 Münzen
BCS Zuviel ; Mehr als 49 Münzen
STZ $0DBF          ; Mach Marios Münzen zu 0
STA $7E0DBF ; Speichern
LDA #$13CC ; Weniger als 50 Münzen, erhöhe die Münzen um 1
STA $7E0DBF ; Speichern