geschrieben am 08.08.2012 12:54:49
in LevelASM müsste es gehen dort habe ich sowas schon benutzt nur in sprites funktioniert es nicht dort scheinen die Werte wieder überschrieben zu werden ^^
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.08.2012 15:48:49
Hätte mal ne kleine frage...
wie kann man eine aus Feder einem Block spawnen...
(also das sie zuerst grade hoch fliegt wie bei den grünen Switch blöcken)
habe es auch schon mit dem code aus dem ?Block probiert aber die Feder
fliegt nie hoch sondern startet direkt in der sink fase...
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.08.2012 18:13:15
Einfach den Block mit Act Like 16A laufen lassen, den Rest macht SMW (hoffentlich) selber, außer, du willst den block wiederverwendbar machen, dann hab ich im moment noch keine Lösung.
geschrieben am 10.08.2012 19:18:36
Ich will das ganze verhalten des blockes ändern d.h. man soll auch nicht von unten gegenspringen und der block soll auch nicht solid sein etc. es soll nur ne feder raus kommen ...
wenn niemand eine lösung weiß werde ich wohl mein eigenens feder sprite schreiben müssen D:
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.08.2012 21:59:23
Stocher mal ein wenig in der
[Disassembly] Invisible Mushroom rum, da sollte das drin sein.
CodeLDA #$C0 ; Set Y speed.
STA $AA,x ; Store speed.
Ich denke mal, das wäre der relevante code.
Oder du machst dir das einfach, nimmst die Disassembly und ändere folgendes ab:
CodeLDA #$xx ; Set sprite number. <--- Das hier ändern
STA $9E,x ; Store sprite number.
geschrieben am 10.08.2012 23:05:01
Danke für den tipp mit dem disassamble
entscheident ist aber vielmehr diese stelle im code
Code LDA #$20 ; Set time..
STA $154C,x ; To disable interaction with Mario.
Das scheint dafür zu sorgen das die feder nicht direkt runter fällt
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 12.08.2012 16:52:34
YAY noch ne frage...
Gibt es eine möglichkeit schnell eine große tabelle mit einem einheitlichen wert zu füllen?
da es mit LDA/STA einfach ewig dauert...
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 12.08.2012 18:07:03
Na klar. Schonmal was von Loops gehört? :/
-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 12.08.2012 18:07:58
Definiere groß
Ich würde einen For-Loop() empfehlen (RPG Hacker hats schon angedeutet während ich den Post verfasse).
CodePHX
LDX #$dd ; Zahl zwischen x00 bis xFF, Anzahl der durchläufe
LabelLoop:
DEX
LDA #$zz ;= Der Wert zum füllen
STA $aaaaaa,x ;Wohin es geschrieben wird, z.B $7FC000+x
TXA
BNE LabelLoop
PLX
(müsste auch mit 16-bit Zahlen gehen, vorausgesetzt man ist im 16-bit Modus für A und die Index-Register [also nach PHX ein REP #$30 und vor dem PLX ein SEP #$30] und man muss zweimal DEX machen anstelle einmal)
geschrieben am 12.08.2012 19:34:40
zuletzt bearbeitet von
mzünni
am 13.08.2012 19:47:09.
mit groß meine ich riesig...
den loop den ich bisher benutzte sieht so aus:
Code REP #$30 ;Enter X/Y 16 bit mode
LDX #$0000 ;Innitiate loop register
Loop1:
LDA #$0000 ;\Wipe all Map 16 data
STA $7FC800,x ;|
STA $7FD000,x ;|
STA $7FD800,x ;|
STA $7FE000,x ;|
STA $7FE800,x ;|
STA $7FF000,x ;|
STA $7FF800,x ;|
LDA #$2525 ;|
STA $7EC800,x ;|
STA $7ED000,x ;|
STA $7ED800,x ;|
STA $7EE000,x ;|
STA $7EE800,x ;|
STA $7EF000,x ;|
STA $7EF800,x ;|
INX ;|
INX
CPX #$0800
BNE Loop1 ;/
SEP #$30 ;Take X/Y out of 16 bit mode
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 12.08.2012 20:00:59
So wie ich das sehe, füllst du doch von $7EC800 bis $7EFFFF bzw. von $7FC800 bis $7FFFFF KOMPLETT alles mit einem Wert auf? Wozu dann überhaupt dieser komplizierte Loop? Das sind doch nur zwei komplett durchgängige Datenfelder, also reicht ein Loop mit zwei STAs völlig aus.
Aber wenn du es unbedingt auf deine Weise machen willst, brauchst du folgenden Befehl:
STA [$00],y
Dabei enthalten $7E0000 bis $7E0002 die Adresse, die du beschreiben willst. Zum Beispiel:
$00 = #$00
$01 = #$C8
$02 = #$7E
Dies würde als Ziel $7EC800 angeben. Jetzt müsstst du nur noch die entsprechenden Adressen aus einer Tabelle in $00 bis $02 speichern und fertig. Aber wie gesagt: Die erste Methode ist definitiv unkomplizierter und auch logischer.
-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 12.08.2012 20:18:23
zuletzt bearbeitet von
mzünni
am 13.08.2012 19:46:33.
meinst du so? (und das geht wirklich nicht schneller?)
Code REP #$30 ;Enter X/Y 16 bit mode
LDX #$0000 ;Innitiate loop register
LDA #$0000 ;\Wipe all Map 16 data
Loop1:
STA $7FC800,x ;|
STA $7FD000,x ;|
STA $7FD800,x ;|
STA $7FE000,x ;|
STA $7FE800,x ;|
STA $7FF000,x ;|
STA $7FF800,x ;|
INX ;|
INX
CPX #$0800
BNE Loop1 ;/
LDX #$0000
LDA #$2525 ;|
Loop2:
STA $7EC800,x ;|
STA $7ED000,x ;|
STA $7ED800,x ;|
STA $7EE000,x ;|
STA $7EE800,x ;|
STA $7EF000,x ;|
STA $7EF800,x ;|
INX ;|
INX
CPX #$0800
BNE Loop2 ;/
SEP #$30 ;Take X/Y out of 16 bit mode
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 12.08.2012 23:16:22
Das ist doch genau das gleiche, wie oben?
-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 13.08.2012 1:15:46
ne es sind jetzt 2 loops XD
aber ich verstehe nicht was du in deinem post gemeint hast -.-
kannste es mir einmal zeigen
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 13.08.2012 11:15:22
Code REP #$30
LDX #$0000
.LoopStart
LDA #$0000
STA $7FC800,x
LDA #$2525
STA $7FC800,x
INX
INX
CPX #$3800
BCC .LoopStart
SEP #$30
Ist zwar ein gutes Stück langsamer, weil es mehr Schleifendurchläufe gibt, aber da du den Code jawohl kaum innerhalb eines Levels aufrufen wirst ist das ja egal.
-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 13.08.2012 19:48:09
Doch genau das wollte ich...
Deswegen wollte ich auch wüssen wie es schneller geht und nicht wie ich weniger platzt verbrauche...
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 13.08.2012 20:07:35
Schneller geht es höchstens noch mit MVN. Aber um das zu verwenden brauchst du erstmal zwei Tabellen in der ROM: Eine mit $3800 Bytes $00 und eine mit $3800 Bytes $25. Allerdings wäre das natürlich eine ziemliche Freespace-Verschwendung. Keine Ahnung, ob das auch irgendwie mit DMA geht (bzw. ob DMA ROM -> RAM Transfers unterstützt). DMA wäre aber die schnellste Möglichkeit.
EDIT:
Habe da in regs.txt tatsächlich etwas für dich gefunden.
Code2180 rwb++++ WMDATA - WRAM Data read/write
xxxxxxxx
This register reads to or writes from the WRAM address set in $2181-3.
The address is then incremented. The effect of mixed reads and writes
is unknown, but it is suspected that they are handled logically.
Note that attempting a DMA from WRAM to this register will not work,
WRAM will not be written. Attempting a DMA from this register to
WRAM will similarly not work, the value written is (initially) the Open
Bus value. In either case, the address in $2181-3 is not incremented.
2181 wl++++ WMADDL - WRAM Address low byte
2182 wm++++ WMADDM - WRAM Address middle byte
2183 wh++++ WMADDH - WRAM Address high bit
-------x xxxxxxxx xxxxxxxx
This is the address that will be read or written by accesses to $2180.
Note that WRAM is also mapped in the SNES memory space from $7E:0000 to
$7F:FFFF, and from $0000 to $1FFF in banks $00 through $3F and $80
through $BF.
Verious docs indicate that these registers may be read as well as
written. However, they are wrong. These registers are open bus.
DMA from WRAM to these registers has no effect. Otherwise, however, DMA
writes them as normal. This means you could use DMA mode 4 to $2180 and
a table in ROM to write any sequence of RAM addresses.
The value does not wrap at page boundaries on increment.
Das heißt DMA von ROM -> RAM ist hiermit möglich. Wie du das allerdings machst musst du selbst herausfinden.
-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 22.08.2012 16:19:07
zuletzt bearbeitet von
mzünni
am 22.08.2012 17:00:30.
Gibt es eine Ram adresse die sagt das das game grade beim colour fade ist?
(der fade von den normalen farben zu schwarz wenn man durchs ziel geht)
möchte das die Yoshi coin animation zuende geht wenn man durchs ziel geht...
Code; Definitions
!Freespace = $558000
header
lorom
org $00A41E
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
JSL YoshiAnimation
;=========================
org !Freespace
!CodeSize = Ending-Routine
db "STAR"
dw !CodeSize-$01
dw !CodeSize-$01^$FFFF
Routine:
;=========================
org !Freespace
YoshiAnimation:
CMP #$64
BNE NotYoshiCoin
PHA
LDA $1495
BNE Return
PLA
NotYoshiCoin:
db $8D,$21,$21
db $A5,$14
db $29,$1C
db $4A
db $65,$00
db $A8
db $B9,$0C,$B6
db $8D,$22,$21
db $B9,$0D,$B6
db $8D,$22,$21
RTL
Return:
PLA
RTL
Ending:
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 22.08.2012 16:56:38
Das hier vielleicht:
http://www.smwiki.net/wiki/RAM_Address/$7E:0100
Bin mir aber nicht sicher.
-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 22.08.2012 17:01:15
nein das ist leider kein eigener game mode...
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 -->