Allgemeine Hex- und ASM-Fragen

geschrieben am 24.12.2012 18:20:14
( Link )
Zitat von WYE:
Ist ja klar. Was euer Code macht, ist folgendes:
Zitat von Der Code:
Steht der Schalter auf ON? JA? Dann schalte ich ihn jetzt OFF! Okay, jetzt ist er OFF! Ist er jetzt OFF? Ja? Dann schalte ich ihn jetzt ON!



Mhm ja stimmt WYE.. Ich hasse ASM
geschrieben am 03.01.2013 14:17:20
( Link )
So ich nochmal! (Sorry für Doppelpost)

Eventuell habt ihr meine Frage im "Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier! " Thread gelesen.
Falls ihr es noch nicht gelesen habt anzeigen
So ich mal wieder. Brauche diesmal einen bestimmten Block.

Er soll das (Normale) Level in ein Wasserlevel verwandeln (Das bekomme ich auch noch selbst hin) und dann einen Custom Generator (D0) spawnen.
Hoffe mir kann jemand helfen!


Ich hab selbst noch ein wenig rumprobiert und hab dank eines Blocks auf SMWC schonmal einen (wie ich finde) ganz guten Ansatz!
Der Block spawnt einen Custom Sprite und macht das Level zu einen Wasserlevel.
Hier mal der Code:

Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Custom Sprite ? Block
;
;Set it to act like tile 129
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

db $42
JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireBall
JMP MarioTopCorner : JMP MarioHeadIn : JMP MarioBodyIn

MarioAbove:
MarioBelow:
MarioSide:
LDA #$03
STA $85
;/
JSR SetSpriteCoord1
LDA #$D0 ;Custom Sprite Number
JSR SpawnSprite
RTL
MarioCape:
MarioHeadIn:
MarioBodyIn:
MarioFireBall:
MarioTopCorner:
SpriteV:
SpriteH:
RTL


SpawnSprite:
PHX
PHP
SEP #$30
PHA
LDX #$0B
SpwnSprtTryAgain:
LDA $14C8,x ;Sprite Status Table
BEQ SpwnSprtSet
DEX
CPX #$FF
BEQ SpwnSprtClear
BRA SpwnSprtTryAgain
SpwnSprtClear:
DEC $1861
BPL SpwnSprtExist
LDA #$01
STA $1861
SpwnSprtExist:
LDA $1861
CLC
ADC #$0A
TAX
SpwnSprtSet:
STX $185E
LDA #$08
STA $14C8,x ;Sprite Status Table
PLA
STA $7FAB9E,x
JSL $07F7D2 ; reset sprite properties
JSL $0187A7 ; get table values for custom sprite
LDA #$88 ; mark as initialized
STA $7FAB10,x
INC $15A0,x ;"Sprite off screen" flag, horizontal
LDA $9A ;Sprite creation: X position (low)
STA $E4,x ;Sprite Xpos Low Byte
LDA $9B
STA $14E0,x ;Sprite Xpos High Byte
LDA $98 ;Sprite creation: Y position (low)
STA $D8,x ;Sprite Ypos Low Byte
LDA $99 ;Sprite creation: Y position (high)
STA $14D4,x ;Sprite Ypos High Byte
LDA #$3E
STA $1540,x ;Sprite Spin Jump Death Frame Counter
LDA #$D0
STA $AA,x ;Sprite Y Speed
LDA #$2C
STA $144C,x
LDA $190F,x ;Sprite Properties
BPL SpwnSprtProp
LDA #$10
STA $15AC,x
SpwnSprtProp:
PLP
PLX
RTS

SetSpriteCoord1:
PHP
REP #$20
LDA $98
AND #$FFF0
STA $98
LDA $9A
AND #$FFF0
STA $9A
PLP
RTS


Das Problem ist aber: Er spawnt nur normale Custom Sprites und keine Generatoren. (Sprich mein D0 klappt nicht)
Kann mir jemand diesen anpassen, so das er Generatoren spawnen kann, oder kann mir jemand meinen Generator zu einem Sprite basteln? (Hab es selbst probiert, allerdings nicht hinbekommen..)

Hier auch mal der Code:
Code
print "INIT ",pc

print "MAIN ",pc

REP #$20 ;\ Set processor 16 bit
LDA #$0D02 ;| $4330 = $210D
STA $4330 ;| $4331 = Mode 02
LDA #$9E00 ;|
STA $4332 ;| Destination: $7F9E00
LDY #$7F ;| (low and high byte)
STY $4334 ;|
LDA #$0F02 ;| $4340 = $210F
STA $4340 ;| $4341 = Mode 02
LDA #$9E00 ;|
STA $4342 ;| Destination: $7F9F00
LDY #$7F ;| (low and high byte)
STY $4344 ;|
SEP #$20 ;/ Set processor 8 bit

LDA #$18 ;\ Enable HDMA
TSB $0D9F ;/ on channel 3,4

LDX #$00 ;\ Init of
LDY #$00 ;/ X and Y

SEP #$20 ;\ Set processor 8 bit
LDA $13 ;| Set speed of waves
LSR A ;| Adding more LSR A
LSR A ;| will make it slower
STA $00 ;/ Store in scratch RAM

PHB ;\ Push data bank
PHK ;| Push program bank
PLB ;/ Pull data bank

Wave_Loop:
LDA #$06 ;\ Set scanline height
STA $7F9E00,x ;| for each wave
STA $7F9F00,x
TYA ;| Transfer Y to A
ADC $00 ;| Add in scratch RAM
AND #$0F ;| and transfer #$0F bytes
PHY ;| Push Y
TAY ;/ Transfer A to Y

LDA.w Wave_Table,y ;\ Load in wave values
LSR A ;| half of waves only
CLC ;| Clear carry flag
ADC $1462 ;| Apply to layer 1
STA $7F9E01,x ;| X position low byte
LDA $1463 ;| And add nothing to
ADC #$00 ;| layer 1 X position
STA $7F9E02,x ;/ high byte

LDA.w Wave_Table,y ;\ Load in wave values
CLC ;| Clear carry flag
ADC $1466 ;| Apply to layer 2
STA $7F9F01,x ;| X position low byte
LDA $1467 ;| And add nothing to
ADC #$00 ;| layer 2 X position
STA $7F9F02,x ;/ high byte

PLY ;\ Pull Y
CPY #$25 ;| Compare with #$25 scanlines
BPL End_Wave ;| If bigger, end HDMA
INX ;| Increase X
INX ;| Increase X
INX ;| Increase X
INY ;| Increase Y
BRA Wave_Loop ;/ Do the loop

End_Wave:
PLB ;\ Pull data bank
LDA #$00 ;| End HMDA by writing
STA $7F9E03,x ;| #$00 here
STA $7F9F03,x
RTL ;/ Return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Table Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Wave_Table:
db $00
db $01
db $02
db $03
db $04
db $05
db $06
db $07
db $07
db $06
db $05
db $04
db $03
db $02
db $01
db $00


Hoffe man kann mir helfen..
geschrieben am 03.01.2013 16:30:22
( Link )
der Generator als Sprite müsste so gehen:
Code
;===============;
;New Sprite ;
;===============;

print "INIT ",pc
RTL

print "MAIN ",pc
PHB
PHK
PLB
PHX
JSR Run
PLX
PLB
RTL

Run:
REP #$20 ;\ Set processor 16 bit
LDA #$0D02 ;| $4330 = $210D
STA $4330 ;| $4331 = Mode 02
LDA #$9E00 ;|
STA $4332 ;| Destination: $7F9E00
LDY #$7F ;| (low and high byte)
STY $4334 ;|
LDA #$0F02 ;| $4340 = $210F
STA $4340 ;| $4341 = Mode 02
LDA #$9E00 ;|
STA $4342 ;| Destination: $7F9F00
LDY #$7F ;| (low and high byte)
STY $4344 ;|
SEP #$20 ;/ Set processor 8 bit

LDA #$18 ;\ Enable HDMA
TSB $0D9F ;/ on channel 3,4

LDX #$00 ;\ Init of
LDY #$00 ;/ X and Y

SEP #$20 ;\ Set processor 8 bit
LDA $13 ;| Set speed of waves
LSR A ;| Adding more LSR A
LSR A ;| will make it slower
STA $00 ;/ Store in scratch RAM

PHB ;\ Push data bank
PHK ;| Push program bank
PLB ;/ Pull data bank

Wave_Loop:
LDA #$06 ;\ Set scanline height
STA $7F9E00,x ;| for each wave
STA $7F9F00,x
TYA ;| Transfer Y to A
ADC $00 ;| Add in scratch RAM
AND #$0F ;| and transfer #$0F bytes
PHY ;| Push Y
TAY ;/ Transfer A to Y

LDA.w Wave_Table,y ;\ Load in wave values
LSR A ;| half of waves only
CLC ;| Clear carry flag
ADC $1462 ;| Apply to layer 1
STA $7F9E01,x ;| X position low byte
LDA $1463 ;| And add nothing to
ADC #$00 ;| layer 1 X position
STA $7F9E02,x ;/ high byte

LDA.w Wave_Table,y ;\ Load in wave values
CLC ;| Clear carry flag
ADC $1466 ;| Apply to layer 2
STA $7F9F01,x ;| X position low byte
LDA $1467 ;| And add nothing to
ADC #$00 ;| layer 2 X position
STA $7F9F02,x ;/ high byte

PLY ;\ Pull Y
CPY #$25 ;| Compare with #$25 scanlines
BPL End_Wave ;| If bigger, end HDMA
INX ;| Increase X
INX ;| Increase X
INX ;| Increase X
INY ;| Increase Y
BRA Wave_Loop ;/ Do the loop

End_Wave:
PLB ;\ Pull data bank
LDA #$00 ;| End HMDA by writing
STA $7F9E03,x ;| #$00 here
STA $7F9F03,x
RTS ;/ Return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Table Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Wave_Table:
db $00
db $01
db $02
db $03
db $04
db $05
db $06
db $07
db $07
db $06
db $05
db $04
db $03
db $02
db $01
db $00
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 -->
geschrieben am 03.01.2013 16:53:16
( Link )
Der Sprite an sich klappt schonmal, danke dafür! (Besser als ein dummer Generator)
Allerdings funktioniert er nicht in zusammenhang mit den Block. Werde wohl einfach mit Teleportblöcken tricksen müssen.
geschrieben am 03.01.2013 16:58:52
( Link )
Spawn das sprite mal mit dem code:
Code
JSL $02A9DE
BMI EndSpawn
PHX
TYX
LDA #$01 ; Sprite state ($14C8,x).
STA $14C8,x
LDA #!SpriteNumber ; This the sprite number to spawn.
STA $7FAB9E,x
LDA #$00
STA $E4,x
STA $14E0,x
STA $D8,x
STA $14D4,x
JSL $07F7D2
JSL $0187A7
LDA #$08
STA $7FAB10,x
PLX
EndSpawn:
RTS
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 -->
geschrieben am 03.01.2013 17:19:23
( Link )
Spiel hängt sich auf. Aber trotzdem danke für den Versuch!

Edit: Plötzlich klappts, hab die falsche ASM Datei eingefügt.. .. Zünni? Du bist genial
geschrieben am 03.01.2013 18:26:17
( Link )
Ich hätte auch mal eine Frage zu Sprites...
Wie und Wo speichert SMW welche sprites in einem Level schon getötet wurden
bzw. wie merkt sich das spiel ob ein sprite schon gespawnt wurde
(wenn ich einen shell mit nehme respownt sie ja solange nicht bis die letzte offgescreent wurde)
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 -->
geschrieben am 26.01.2013 10:31:57
( Link )
Ich hab folgendes Problem: Kann jemand einen Patch machen, der verhindert, dass man auf den Gittern (Etwa die in Iggy's Castle) ganz easy zig 1-Ups Bekommt? (Wenn m,an auf einen Koopa springt, sich am Gitter festhält,das immer wiederholt...) Ich weiß nicht ob ich hier richtig bin, Aber ich kann kaum ASM (Schon gar nicht Patches ) Ich will einfach, dass das Gitter wie Boden reagiert (Keine Kombo)...
Zitat von Robju am 22.11.2013:
ICH BRING EUCH ALLE UM!!
Zitat von Dominik am 07.08.2013:
Fick dich Rob, ich wusste dass das kommt!

anzeigen
MFG: Wieso binn ich als Ideot genannt?Das ist net nett.
Robbinn, ideot, Satzstellung, Grammatik.
MFGSchonn gut, schon gut, das mit "binn" und "Idoet" ist ein Typo.
RobDas e und i sind 4 tasten voneinander entfernt.
MFGschnelle Finger?
Rob Nein.
MFG *facepalm*
Rob Wenn man Idiot schreibt kommt man nichtmal in die Nähe eines "e" s
MFG Doch, warum hat man denn sonst zwei Finger?
Rob Das hat mir der ANzahl der Finger nichts zu tun.
MFG Ich meine Hände.
Bro ich hab 3 stück
Rob Hat auch kit der Anzahl der Händer nichts zu tun
MFG Und es hat mit der Anzahl der Hände zu tun.
Rob Nein.
MFG Ich schreibe doch mit beiden.
Rob YOU ARE AN IDIOT, AH HAHAHAHAHA HAAAAHAAA HAHAHAHAAAAA!

DIE KONFI
DIE andere KONFI
JJJAAAAAAAH
geschrieben am 26.01.2013 13:20:31
( Link )
Zitat von Reggiamoto:
Ich hab folgendes Problem: Kann jemand einen Patch machen, der verhindert, dass man auf den Gittern (Etwa die in Iggy's Castle) ganz easy zig 1-Ups Bekommt? (Wenn m,an auf einen Koopa springt, sich am Gitter festhält,das immer wiederholt...)


Öhh.. versteh ich das richtig? Du hast einen Gegner direkt unter dem Gitter platziert und man kann sich daran Leben farmen, da man immer wieder draufspringen kann? Oder wie?

Zitat
Ich will einfach, dass das Gitter wie Boden reagiert


Dann mach das doch mit den Map16 Editor.
geschrieben am 26.01.2013 13:26:58
( Link )
Nein,in SMW gibt es ja diesen Bug: Man klettert am Gitter. Da ist ein Koopa, der auch daran klettert. Man springt drauf, hält sich wieder am Boden fest, ohne vorher den Boden berührt zu haben. Da ist noch einer. Jetzt gibt es statt 200 Punkte 400 Punkte. Man wiederholts nochmal (800 Punkte) Und nochmal (1000 Punkte) Und nochmal (2000 Punkte) und Nochmal (4000 Punkte) und Nochmal (8000 Punkte) und nochmal, aber JETZT Gibt es ein 1-Up. Da sind nochmal 20 Koopas. Dann kriegen wir nochmal 20 1-Ups. Ich meinte einfach,wenn man sich wieder am Gitter festhält, verfällt die Kombo, alös würde man auf dem Boden landen.

Edit: Und ich habe ein großes Gitter-Sublevel mit vielen Koopas gemacht, der fast komplett ohne Boden ist... (genau für so was gibt's die Edit-Funktion. ~WYE)
Zitat von Robju am 22.11.2013:
ICH BRING EUCH ALLE UM!!
Zitat von Dominik am 07.08.2013:
Fick dich Rob, ich wusste dass das kommt!

anzeigen
MFG: Wieso binn ich als Ideot genannt?Das ist net nett.
Robbinn, ideot, Satzstellung, Grammatik.
MFGSchonn gut, schon gut, das mit "binn" und "Idoet" ist ein Typo.
RobDas e und i sind 4 tasten voneinander entfernt.
MFGschnelle Finger?
Rob Nein.
MFG *facepalm*
Rob Wenn man Idiot schreibt kommt man nichtmal in die Nähe eines "e" s
MFG Doch, warum hat man denn sonst zwei Finger?
Rob Das hat mir der ANzahl der Finger nichts zu tun.
MFG Ich meine Hände.
Bro ich hab 3 stück
Rob Hat auch kit der Anzahl der Händer nichts zu tun
MFG Und es hat mit der Anzahl der Hände zu tun.
Rob Nein.
MFG Ich schreibe doch mit beiden.
Rob YOU ARE AN IDIOT, AH HAHAHAHAHA HAAAAHAAA HAHAHAHAAAAA!

DIE KONFI
DIE andere KONFI
JJJAAAAAAAH
geschrieben am 08.02.2013 18:02:58
( Link )
(mein erster Post hier ^^)

Ich möchte nur fragen, ob dieser Block bugfrei ist (mit Blockreator gemacht):

Code



db $42

JMP MarioBelow : JMP MarioAbove : JMP MarioSide
JMP SpriteV : JMP SpriteH
JMP Cape : JMP Fireball
JMP MarioCorner : JMP MarioHead : JMP MarioBody

MarioBelow:
LDA #$30 ; \ Make this block solid.
STA $1693 ; |
LDY #$01 ; /
RTL

MarioAbove:
LDA #$25 ; \ Make this block passable.
STA $1693 ; |
LDY #$00 ; /


MarioSide:
SpriteV:
SpriteH:
Cape:
Fireball:
MarioCorner:
MarioHead:
MarioBody:
RTL





Sollte so acten wie eine Wolke, nur umgedreht..
geschrieben am 08.02.2013 18:26:38
( Link )
Sowas muss man ausprobieren, ich glaub sowas kann man nicht einfach auf dem ersten Blick sehen :/
Ich seh nix schlimmes, ich kann aber auch fast kein ASM. Bei mir macht Blockreator aber fast nie was falsch, musst halt ausprobieren
Zitat von Robju am 22.11.2013:
ICH BRING EUCH ALLE UM!!
Zitat von Dominik am 07.08.2013:
Fick dich Rob, ich wusste dass das kommt!

anzeigen
MFG: Wieso binn ich als Ideot genannt?Das ist net nett.
Robbinn, ideot, Satzstellung, Grammatik.
MFGSchonn gut, schon gut, das mit "binn" und "Idoet" ist ein Typo.
RobDas e und i sind 4 tasten voneinander entfernt.
MFGschnelle Finger?
Rob Nein.
MFG *facepalm*
Rob Wenn man Idiot schreibt kommt man nichtmal in die Nähe eines "e" s
MFG Doch, warum hat man denn sonst zwei Finger?
Rob Das hat mir der ANzahl der Finger nichts zu tun.
MFG Ich meine Hände.
Bro ich hab 3 stück
Rob Hat auch kit der Anzahl der Händer nichts zu tun
MFG Und es hat mit der Anzahl der Hände zu tun.
Rob Nein.
MFG Ich schreibe doch mit beiden.
Rob YOU ARE AN IDIOT, AH HAHAHAHAHA HAAAAHAAA HAHAHAHAAAAA!

DIE KONFI
DIE andere KONFI
JJJAAAAAAAH
geschrieben am 08.02.2013 20:02:00
( Link )
Sieht gut aus. Achte drauf, den Block wie Teil 25 "acten" zu lassen.
geschrieben am 09.02.2013 1:12:02
( Link )
an und für sich ist er bugfrei ,aber bei der SMW engine wird der Block zum Zement block während Marios Kopf noch im Block ist wes wegen er nach unten rausgedrückt wird was nicht so schön ist...
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 -->
geschrieben am 10.02.2013 8:49:41
( Link )
Hallo. Brauche nochmal Hilfe..

Habe einen 4-stelligen Coin Counter von SMWC runtergeladen. Der auch funktioniert, allerdings hätte ich gerne eine Sache geändert.
Und zwar das soll das Coin-Symbol (siehe Bild) am liebsten komplett verschwinden, oder eins nach rechts verschoben werden.


Für so ein kleines Bild brauchst du keinen Spoiler.

Hier mal der Ausschnitt des ASM Codes, der sich mit der Status Bar befasst:

Code
org $008CB2

db $3C ; \
db $FC ; |
db $38 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $20 ; | Tilemap in status bar.
db $FC ; |
db $20 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $20 ; /

org $008CE7

db $2E ; \ Change $FC to $2E if you want the coin sign in front.
db $3C ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; | More tilemap data.
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $FC ; |
db $3C ; /

org $008EE5


Falls da was fehlt, hier wäre auch der komplette Code:

Code
;@xkas
header
lorom

;=====================================;
;POINT THIS TO FREE SPACE!!!!!!!!!!!!!;
;=====================================;

!RAM_DecCoins = $7F969E ;
!ShowZeroes = $00 ; 00 - don't show leading zeroes, anything else - show them

org $10EEE0 ; <--- POINT TO FREESPACE!! REPLACE XXXXXX WITH SNES ADDRESS.

!RatsTag = RoutineEnd-RoutineStart ; RATS TAG.

db "STAR" ; DON'T REMOVE
dw !RatsTag-$01 ; THIS IF YOU WANT
dw !RatsTag-$01^$FFFF ; TO PROTECT THIS DATA.

RoutineStart: ; Don't remove label

LDA !RAM_DecCoins
BEQ EndDec
LDA $0F34
ORA $0F35
BEQ EndDec
REP #$20
LDA !RAM_DecCoins
DEC
STA !RAM_DecCoins
SEP #$20
LDA #$FF
DEC $0F34
CMP $0F34
BNE EndDec
DEC $0F35
EndDec:

LDA $13CC
BEQ NoInc

IncCoins:
DEC $13CC

REP #$20
LDA $0F34
CMP #$270F
BCC NotMax
LDA #$270F
STA $0F34
SEP #$20
BRA EndInc
NotMax:
SEP #$20

INC $0F34 ; $0F34 = Lowest 256 values.
BNE EndInc
INC $0F35 ; $0F35 = Lowest 65536 values.
EndInc:
LDA $00
JML $008F32

NoInc:
JML $008F3B

ZeroDec:
STA $7F8000
LDA #$0000
STA !RAM_DecCoins
RTL

SaveSRAMRoutine:
JSR GetSaveFile

LoadScoreData:

LDA $0F34,y ; Transfer coin counter data over...
STA $70079F,x ; to SRAM data. ($7007FD - $7007FF)
INX
INY
CPY #32
BCC LoadScoreData
LDX $010A
LDA $009CCB,x
RTL

LoadSRAMRoutine:

PHX
PHY
SEP #$10
JSR GetSaveFile

LoadSRAMData:

LDA $70079F,x ; Transfer SRAM data...
STA $0F34,y ; over to coin counter data.
INX
INY
CPY #32
BCC LoadSRAMData
REP #$10
PLY
PLX
LDA $700000,x
RTL

STZSRAMWhenGameOver:
JSR GetSaveFile

StoreZeroIntoSRAM:
LDA #$00
STA $0F34,y ; Set coins to zero.
STA $70079F,x ; Set coins in SRAM to zero.
INX
INY
CPY #32
BCC StoreZeroIntoSRAM
LDA #$0A
STA $1DFB
RTL

GetSaveFile:
LDA $010A
ASL
ASL
ASL
ASL
ASL
TAX
LDY #0
RTS

ZeroCoins:

LDA #!ShowZeroes
BNE PutZero

LDA #$FC ; hijacked routine
STA $0F29,x

LDA $0F34
ORA $0F35
ORA $0F36 ; if you have 0 coins...
BNE DontStoreZero ; put "0" on the status bar
STZ $0F2E ; 0 for the first digit
DontStoreZero:
RTL

PutZero:
CPX #$02
BCC BlankAtStart
STZ $0F29,x
RTL

BlankAtStart:
LDA #$FC
STA $0F29,x
RTL

RoutineEnd: ; Don't remove label

;=====================================;
; Values that edit status bar & score.;
;=====================================;

org $008CB2

db $3C ; \
db $FC ; |
db $38 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $20 ; | Tilemap in status bar.
db $FC ; |
db $20 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $38 ; |
db $FC ; |
db $20 ; /

org $008CE7

db $2E ; \ Change $FC to $2E if you want the coin sign in front.
db $3C ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; | More tilemap data.
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $00 ; |
db $38 ; |
db $FC ; |
db $3C ; /

org $008EE5

JSL ZeroCoins
NOP

org $00802A
JSL ZeroDec

;STZ $0F29,x ; <--

org $008F1D

JML RoutineStart
LDA $00
BRA CycleSkip ;\ Skip for reducing cycles
NOP ; |
NOP ; | Useless
NOP ; |
NOP ;/

CycleSkip:

org $008F7E

BRA Skip ; \ Skip to save cycles.
NOP ; |
NOP ; |
NOP ; |
NOP ; / There isn't written to coin total.
Skip:

org $009BCC

JSL SaveSRAMRoutine ; Save data to SRAM!
NOP
NOP

org $009D14

JSL LoadSRAMRoutine ; Load data from SRAM!

org $009E4E

NOP ; Remove the first ; if you...
NOP ; want to disable the score being...
NOP ; deleted when getting to the Game Over screen.

org $009E56

NOP ; Remove the first ; if you...
NOP ; want to disable the score being...
NOP ; deleted when getting to the Game Over screen.

org $00D0DD

JSL STZSRAMWhenGameOver
NOP

org $028766

NOP ; \
NOP ; | Disable score
NOP ; /

org $028770

NOP ; \
NOP ; | Disable score
NOP ; /

org $02AE21

BRA SkipUseless ; \ Skip to save cycles.
NOP ; |
NOP ; |
NOP ; |
NOP ; | Disable score
NOP ; |
NOP ; |
NOP ; |
NOP ; |
NOP ; |
NOP ; /
NOP
NOP
NOP
NOP ; \ Yeah more semi-colons and comments...
NOP ; / Etc.
NOP
NOP
NOP
SkipUseless:

org $05CEF9

NOP ; \
NOP ; |
NOP ; |
NOP ; |
NOP ; |
NOP ; |
NOP ; | Disable score being added at level end.
NOP ; |
NOP ; |
NOP ; |
NOP ; |
NOP ; /


Hoffe jemand kann mir helfen.
geschrieben am 10.02.2013 12:40:40
( Link )
Zitat von Bladey:
Code
db $2E ; \  Change $FC to $2E if you want the coin sign in front.


^ dies.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 10.02.2013 13:01:14
( Link )
Zitat
db $2E ; \ Change $FC to $2E if you want the coin sign in front.


Hatte ich mittlerweile mal richtig gelesen bzw. verstanden.
Aber danke, ist richtig so!
geschrieben am 10.02.2013 13:56:31
( Link )
Ja, die Beschreibung ist irreführend. Ich musste auch vorher erstmal nachsehen, ob $2E wirklich die Coin-Grafik ist.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 03.03.2013 0:44:16
( Link )
Zitat von Reggiamoto:
Ich hab folgendes Problem: Kann jemand einen Patch machen, der verhindert, dass man auf den Gittern (Etwa die in Iggy's Castle) ganz easy zig 1-Ups Bekommt? (Wenn m,an auf einen Koopa springt, sich am Gitter festhält,das immer wiederholt...) Ich weiß nicht ob ich hier richtig bin, Aber ich kann kaum ASM (Schon gar nicht Patches ) Ich will einfach, dass das Gitter wie Boden reagiert (Keine Kombo)...

Ich hab einen Patch gefunden, der das Problem lösen sollte: No 1-UPS While On Vines
Lustigerweise sind alle guten Patches von wiiqwertyuiop :p
Zitat von Robju am 22.11.2013:
ICH BRING EUCH ALLE UM!!
Zitat von Dominik am 07.08.2013:
Fick dich Rob, ich wusste dass das kommt!

anzeigen
MFG: Wieso binn ich als Ideot genannt?Das ist net nett.
Robbinn, ideot, Satzstellung, Grammatik.
MFGSchonn gut, schon gut, das mit "binn" und "Idoet" ist ein Typo.
RobDas e und i sind 4 tasten voneinander entfernt.
MFGschnelle Finger?
Rob Nein.
MFG *facepalm*
Rob Wenn man Idiot schreibt kommt man nichtmal in die Nähe eines "e" s
MFG Doch, warum hat man denn sonst zwei Finger?
Rob Das hat mir der ANzahl der Finger nichts zu tun.
MFG Ich meine Hände.
Bro ich hab 3 stück
Rob Hat auch kit der Anzahl der Händer nichts zu tun
MFG Und es hat mit der Anzahl der Hände zu tun.
Rob Nein.
MFG Ich schreibe doch mit beiden.
Rob YOU ARE AN IDIOT, AH HAHAHAHAHA HAAAAHAAA HAHAHAHAAAAA!

DIE KONFI
DIE andere KONFI
JJJAAAAAAAH
geschrieben am 03.03.2013 1:28:06
( Link )
Zitat von Reggiamoto:
Lustigerweise sind alle guten Patches von wiiqwertyuiop :p

-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.