Allgemeine Hex- und ASM-Fragen

geschrieben am 20.09.2012 21:44:05
( Link )
Ist jetzt nicht direkt eine Hex- oder ASM-Frage, aber nach Anfänger klang das hier jetzt nicht bei mir:

Ich habe letztens auf SMWC folgendes Tutorial gefunden: http://www.smwcentral.net/?p=viewthread&t=46586
Es befasst sich damit, wie man aus einem Bild einen BG machen kann. Leider funktionierte es nicht bei mir wie es dort beschrieben wurde. Meine Frage nun: Geht dies noch? Und wie macht ihr aus Bildern BGs?
geschrieben am 21.09.2012 14:16:10
( Link )
Gehen tut das noch:
http://edit1754.tk/bgripper.php

Selber BGs / FGs Rippen tue ich nur mit dem BG-Ripper von edit1754, ansonsten zeichne ich alles, wenn ich dazu in der Lage bin, selber.
Tutorials: ExAnimation | YouTube: W4mp3 | Twitter: https://twitter.com/SMWW4mp3
geschrieben am 21.09.2012 17:01:03
( Link )
Ich habs wieder mal probiert, aber es kommt immer wieder sowas hier raus:
http://s1.directupload.net/file/d/3020/pgupnzlh_jpg.htm

Ich weiß nicht, wo mein Fehler ist -.-
Falls das Bild nicht geht, einfach auf das kleine Icon Rechtsklick, URL kopieren und im neuen tab einfügen.
geschrieben am 25.09.2012 16:10:44
( Link )
ich breuchte mal eine kleine hilfe...
also ich habe in einer tabelle ram adressen stehen
z.b. db $7B,$7D ich möchte jetzt nicht #$7B laden sondern tatsächlich $7B laden
dafür muss ich doch die #$7B in $00 schreiben und brauche dann so ein geklammertes LDA
weiß jemand wie genau das geht...
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 25.09.2012 16:49:43
( Link )
Code
ldx !Tabellenindex
lda Adresstabelle,x
sta $00
lda #$00
sta $01
lda #$7E
sta $02

lda [$00]
[...]
rtl

Adresstabelle:
db $7B,$7D


Nur ein Beispiel. Hier würdest du von Adresse $7E00XX lesen, wobei XX durch die Werte der Tabelle ersetzt werden würde. Natürlich kannst du auch $01 und $02 entsprechend beschreiben, wenn du die anderen beiden Teile der Adresse dynamisch haben willst.
-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 25.09.2012 17:13:36
( Link )
So weit ich weiß, kannst du auch LDA ($00) verwenden, das liest nur zwei Bytes. Dann kannst du dir das Schreiben von #$7E zu $02 sparen.
geschrieben am 03.10.2012 11:43:23
( Link )
ok kleine Frage bezüglich MVN danach muss ich ja die source bank angeben...
wie mache ich das jetzt?
(möchte eine tabelle in den ram schreiben)
LDX #Tabel
LDA #$0200
LDY #$B260
MVN $,$7F
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.10.2012 12:10:30
( Link )
Am besten durch direkte Eingabe von Bytes.

Code
db $54 ; MVN-Opcode
db Table>>16 ; Bank, in der die Tabelle ist
db $7F ; Ziel-Bank


Oh, und zur Sicherheit würde ich LDX.w benutzen.
geschrieben am 03.10.2012 13:28:57
( Link )
hm aus irgendeinem grund klappt das nicht... (füge das ganze als level asm ein)
Code

REP #$30
LDA $0F62 ;index für die tabelle
LSR
LSR
LSR
CLC
ADC.w #BlueTable
TAX
LDA #$001E ;testweise mal nur ein bischen was ...
LDY #$B830
db $54 ; MVN-Opcode
db BlueTable>>16 ; Bank, in der die Tabelle ist
db $7F ; Ziel-Bank
SEP #$30

denn wenn ich mit dem snes debugger den ram anschaue dann stehen dort nur die standart mäßigen $55...
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.10.2012 16:46:05
( Link )
Hm, da schein ich mich vertan zu haben. Sieht so aus, als müsste man zuerst die Ziel-, dann die Quellbank angeben.
geschrieben am 12.10.2012 14:55:35
( Link )
Gibt es irgendwo einen non Carryable P-Switch ?
er sollte (wenn möglich) genauso acten wie der original
P-Switch nur das Mario ihn nicht mitnehmen kann...
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 14.10.2012 20:03:59
( Link )
Wie wärs mit diesem Block: stationary reuseable p-switch
geschrieben am 14.10.2012 22:29:40
( Link )
Es gibt auch einen P-Switch-Block. Er hinterlässt nach Benutzung einen benutzten (flachen) P-Switch-Block wie in SMB3. Download:

http://www.smwcentral.net/download.php? ... ype=blocks
geschrieben am 27.10.2012 22:14:03
( Link )
gibt es irgendwo einen code um die block nummer von einem beliebigen block bekommt?
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 27.10.2012 23:40:28
( Link )
Wo willst du den Code denn einsetzen? Die Teilenummer könnte in $03 liegen.
geschrieben am 28.10.2012 0:38:59
( Link )
möchte in einem Block die tilenummer von einem anderen Block bekommen (16-Bit)
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 28.10.2012 10:43:12
( Link )
...jetzt verstehe ich nicht ganz, was dein Problem ist.

Worüber definierst du denn den "anderen Block", wenn nicht über seine Nummer? Das ist doch so, als würdest du sagen "ich möchte die Nummer von Teil 3F0 wissen, wie bekomme ich die heraus?"
geschrieben am 28.10.2012 10:54:05
( Link )
nein ich habe seine Position aber möchte wissen welche Blocknummer er hat
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 02.12.2012 12:12:09
( Link )
Hallo zusammen.
Hab ein kleines Problem mit den "Walljump Noteblockglitchfix" Patch.
Und zwar möchte ich, dass nur der Walljump gefixt wird und nicht der Noteblockglitch, da ich ihn in meinem Hack brauche. :b

Hier der Code:
Code
;@xkas
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:


Hoffe mir kann jemand helfen!
geschrieben am 02.12.2012 12:31:59
( Link )
ich würde mal versuchen einfach das zu entfernen
Code
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: ;/
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 -->