Sprite Tool Tutorial

geschrieben am 14.09.2010 21:39:54
zuletzt bearbeitet von Shog am 20.11.2010 19:30:41.
( Link )


Dieses Tutorial beinhaltet die Verwendung von Romis Spritetool, auffindbar unter folgender Webadresse:
http://www.smwcentral.net/download.php? ... type=tools

Zusätzlich gibt es noch einpaar Extras zum Thema Custom Sprite



Was sind Custom Sprites?


Als Custom Sprites bezeichnet man selbst programmierte Sprites, die nicht im Originalen Super Mario World Spiel vorkommen. Seien es Hammer Bros., Shyguy oder die Firebar, alles mögliche lässt sich einfügen.

Wie werden sie in der ROM eingefügt?
Das Einfügen ist wirklich nicht kompliziert!
Nachdem ihr den Spritetool-Ordner entzippt habt, werdet ihr folgende Dateien finden:
Code
xkas.exe ; sprite_tool.exe ; trasm.exe ; cfg_editor ; 


mehrere Textdateien und fünf Ordner(sprites, shooter, generator, src, blocks, tilemaps und tutorials)

relevant ist für den Anfang nur die sprite_tool.exe und die Ordner "sprites, shooter und generator".

Als erstes solltest du deinen Hack in den "st140" Ordner rein tun, also der Ordner, wo die vorherig genannten Dateien sich befinden. Führe nun sprite_tool.exe aus - Du wirst nun aufgefordert den Namen deines Hacks(zum Beispiel SMW.smc, die Endung ist wichtig!)rein zuschreiben. Dann sollst du den Namen der "Spriteliste" (z.b. sprites.txt) Das wars!
So werden die Sprites eingefügt...nun nicht ganz, ihr müsst ja noch definieren, welche Sprite ihr haben wollt. In den "wichtigen" Ordnern befinden sich bereits etliche Sprites. Doch wie definiert ihr welche ihr haben wollt? Nun, dafür gibt es die sogenannte "Sprites.txt" Textdatei, die ihr entweder so schon vorfindet(im st140 Ordner!), oder ihr macht sie selbst, was eigentlich sehr einfach ist. Wenn ihr sie öffnet, könnte sie so aussehen:
Zitat

1A shyguy.cfg
C4 diag_bill.cfg
D2 generic.cfg


Sprich:
XX.cfg
Doch was bedeuten diese komischen Zahlen und die Namen? Nun, die Namen des Sprites den ihr haben wollt findet ihr IMMER bei der .cfg Datei im "sprites, generators oder shooters" Ordner. Die Zahl definiert, wie ihr es bei Lunar Magic einfügen sollt, dazu später mehr!

Die Zahl muss aber in dem jeweiligen Bereich liegen in welchem der Sprite ist:

00-BF Sprites-Ordner
C0-CF Shooters-Ordner
D0-DF Generator-Ordner
E0-FF Diese Nummern können nicht verwendet werden!

Und wie in Lunar Magic eingefügt?


in Lunar Magic werden die Custom Sprites manuell eingefügt, mit Hilfe der "Einfg"Taste:
Wenn du diese Taste in Lunar Magic drückst, erscheint dieses Menü:

Oben links gehört die Nummer deines Sprites hin; zum Beispiel:
Code
1A shyguy.cfg(Also 1A) 

Die andere, wichtige Zahl wird unten rechts eingegeben, bei der Extra Info; 0 und 1 sind für normale Sprites, also uninteressant, während 2 und 3 für die Custom Sprites sind. Der Unterschied liegt in den sog. Extra Bits, die manchmal erwähnt werden: Code:
Code
;; Uses first extra bit: YES 
;; When the first extra bit is clear, the sprite will trigger the regular exit. When it
;; is set, the sprite will trigger the secret exit.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



2 ist dabei die NORMALE Standardeinstellung für Custom Sprites, die 3 ist für den Extrabit! (In dem Fall würde 2 den nomalen und 3 den Secret Exit aktivieren)

Nun solltet ihr auf den ersten Screen in Lunar Magic ein rotes Kreuz sehen, und wenn ihr die Maus drüber hält sollte "An undefined Custom Sprite" stehen. Wenn ja, habt ihr alles richtig gemacht. Um allerdings die Grafiken davon auch in Lunar Magic anzuzeigen, empfehle ich ein anderes Tutorial auf dieser Seite

Extra

Die Extras beinhalten momentan nur einen Tipp! Hilf Shog weitere nützliche Tipps zu finden um so das Tutorial umfangreicher zu machen!

~~Ändern der Tilemap~~

Die Tilemap eines Sprites haben schon viele Hacker genervt, weil so bestimmte Kombinationen nicht möglich sind. Doch nun werde ich es euch verraten, wie man sie ganz einfach verändert!
Ich werde es euch an einem Beispiel Sprite demonstrieren: Dem "Tweeter"Sprite im Spritetool, der automatisch dabei ist
Spoiler anzeigen
HAS_STAR LDA #$02 ; \ status = 2 (being killed by star)
STA $14C8,x ; /
LDA #$D0 ; \ set y speed
STA $AA,x ; /
JSR SUB_HORZ_POS ; get new direction
LDA KILLED_X_SPEED,y ; \ set x speed based on direction
STA $B6,x ; /
INC $18D2 ; increment number consecutive enemies killed
LDA $18D2 ; \
CMP #$08 ; | if consecutive enemies stomped >= 8, reset to 8
BCC NO_RESET2 ; |
LDA #$08 ; |
STA $18D2 ; /
NO_RESET2 JSL $02ACE5 ; give mario points
LDY $18D2 ; \
CPY #$08 ; | if consecutive enemies stomped < 8 ...
BCS NO_SOUND2 ; |
LDA STAR_SOUNDS,y ; | ... play sound effect
STA $1DF9 ; /
NO_SOUND2 RTS ; final return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sprite graphics routine
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TILEMAP dcb $A3,$A5


SUB_GFX JSR GET_DRAW_INFO ; sets y = OAM offset
LDA $157C,x ; \ $02 = direction
STA $02 ; /
LDA $14 ; \
LSR A ; |
LSR A ; |
LSR A ; |
CLC ; |
ADC $15E9 ; |
AND #$01 ; |
STA $03 ; | $03 = index to frame start (0 or 1)
;STZ $03
PHX ; /


Dieser Code ist ein kleiner Ausschnitt aus dem Sprite, und was hbae ich hervorgehoben? Richtig, die "Tilemap" Daten, also genau das was wir verändern wollen.
Doch woher weiß ich, wie ich das zu verändern habe?
Nun, dafür braucht ihr als erstes einen Texteditor für die obige Datei, die dazu gehörige .cfg (Tweeter.cfg) und auch wichtig, den "Custom Sprite Tweaker", den ihr schon dann erhaltet, wenn ihr ganz normal Spritetool runterlädt

Als erstes werde ich euch verraten, wo dieser Tweater wäre
Er überschreibt den unteren Teil vom Koopa

Oh, aber er würde doch den Koopa überschreiben, und woher weiß ich die Position?

Nun, die Hexzahl verrät es, sie sagt ja "A3 und A5" und wenn ihr im 8x8Editor nachschaut und die Maus beim Koopa hält, was seht ihr dann? "3A3" als Zahl unten links -> also A3. Nun verbracuht der Sprite 4 8x8 Kästchen, sodass es vier Plätze verbraucht; das Kästchen OBEN LINKS wird bestimmt, der Rest kommt automatisch dazu (deswegen kanns nur A3 sein) udn A5 ist der andere "Frame", also ne andere Pose, weil sonst sähe es ja komisch aus, bei nur einer Grafik

Nun fragt ihr euch villeicht, wozu brauche ich den Tweaker? Nun damit bestimmt ihr, auf welcher Spriteseite sich der Sprite befindet: Wenn ihr die cfg vom Tweeter öffnet, würdet ihr eine Ankreuzkästchenoption sehen, wo steht "Use second page of graphics": Wenn ihr es NICHT anklickt, dann benutzt es die "Koopaseite", wenn ihr es anklcikt, dann die Seite, wo z.B. Chucks Körperteile sind.

So das wars eigentlich auch schon
Wie kritisch man doch gegenüber dem System wird, wenn man älter wird...
geschrieben am 20.11.2010 17:46:59
( Link )
echt super tutorial
und wann wirds endlich weitergeführt ?^^
geschrieben am 20.11.2010 18:55:05
( Link )
Zitat von benvvv:
echt super tutorial
und wann wirds endlich weitergeführt ?^^


Ooh tschuldigung hab das total vergessen , ich werde das mal einbisschen weiterführen

(Danke für supi, aber was würdest du gerne wissen Ich selbst würde jetzt beschreiben, wie man die Tilemap verändert)
Wie kritisch man doch gegenüber dem System wird, wenn man älter wird...
geschrieben am 21.11.2010 8:10:58
( Link )
ich hab da ne frage, hab da mal einen sprite von smw central heruntergeladen er heisst fire brother V2
und hab da 2 exgfx dateien bekommen, die eine für den brother und die andere für den fireball, nur soll diese zweite exgfx als ExAnimation eingefügen werden aber wo soll ich es einfügen
geschrieben am 21.11.2010 9:04:25
zuletzt bearbeitet von DarkBlade am 21.11.2010 15:18:58.
( Link )
Wieso Exanimation? Der Fireball is doch ein Sprite und schon animiert, du musst die Fireball ExGFX auf SP3 und die FireBrother ExGFX auf SP4 dann sollte das klappen Oder willst du keinen Sprite sondern einen Block der aussieht wie ein animierter Fireball?
How many People can read Hex, if only you and DEAD can read it?

Answer anzeigen
DEAE
geschrieben am 21.11.2010 10:41:03
( Link )
Zitat von DarkBlade:
Wieso Exanimation? Der Fireball is doch ein Sprite und schon animiert, du musst die Fireball ExGFX auf SP3 und die FireBrother ExGFX auf SP4 dann sollte das klappen Oder willst du keinen Sprite sondern einen Block der aussieht wie ein animierter Fireball?

ich hab den brother exgfx immer als sp3 eingefügt danke für die info
es hat mich eben nur verwirrt das in der readme steht das man die fireball exgfx als exanimation einfügen soll
geschrieben am 21.11.2010 10:55:30
( Link )
Kein Problem^^ Ja das Readme is etwas verwirrend. Ich glaub die meisten Brothers müssen als SP4 eingefügt werden und die sprites braucht man ja nicht mehr exanimieren da das Aussehen ja in der asm datei gecodet ist.
EDIT:
Tut mir leid hab den sprite mit dem Giant Fire Brother verwechselt Du brauchst schon Exanimation: Also du Wählst bei SP3 die ExGFX Datei 10E aus dann wählst du ganz unten bei AN2 die ExGFX 10F aus. So jetz animierst du den Fireball und lässt Tile 462 überschreiben und schon hast du den Firebrother der einen animierten Fireball schießt, aber du musst glaub ich noch was an der Pallete ändern weil der sonst Pink ist^^
How many People can read Hex, if only you and DEAD can read it?

Answer anzeigen
DEAE
geschrieben am 30.11.2010 19:11:41
( Link )
Wie cool
Das Tutorial ist 100% aus deinem Tutorial im stillgelegten Forum kopiert
Ist klasse!
"Ich habe ein gutes Rezept um Fit zu bleiben-Ich laufe jeden Tag Amok"
Neun von zehn stimmen in meinem Kopf sagen ich sei nicht verrückt-Die letzte summt leise das Mario Theme!
Computer dienen dazu Probleme zu lösen die wir ohne sie nicht hätten

Mein Wecker Kämpft ohne Gnade-er greift an während ich schlafe
Downloade dir erst das Programm "Verstand" bevor du diesen Beitrag liest
geschrieben am 01.12.2010 13:29:02
( Link )
Zitat von st0rmbreaker:
Wie cool
Das Tutorial ist 100% aus deinem Tutorial im stillgelegten Forum kopiert
Ist klasse!


Danke, und ist das nicht offensichtlich, das ich das kopiere, weil es 1. eh von mir ist und 2. Habe ihc noch was neues bei Extra
Wie kritisch man doch gegenüber dem System wird, wenn man älter wird...
geschrieben am 27.12.2010 1:42:40
( Link )
Sehr gutes Tutorial aber mit einem Teil bin ich nicht einverstanden:

Zitat
Um allerdings die Grafiken davon auch in Lunar Magic anzuzeigen, empfehle ich ein anderes Tutorial auf dieser Seite


Es hat so schön angefangen aber dann DAS ??? ich hab wirklich wenig lust auf solche "Find dir den Rest zusammen" Tutorials,
denn Der Teil gehört genauso zu diesem Tutorial wie alles andere ....

!!ACHTUNG!!: Ja ich bin ein wenig genervt aber trotzdem ist dieser Post als Konstruktive Kritik aufzunehmen!

MFG Zeperus05
geschrieben am 27.12.2010 12:49:16
( Link )
Na ja, wenn's das Tutorial schon gibt, hat's wenig Sinn, es genau so nochmal zu kopieren.

Ein Link hätte aber schon reinkönnen, das stimmt.
geschrieben am 27.12.2010 13:57:38
( Link )
Zitat von Zeperus05:
Sehr gutes Tutorial aber mit einem Teil bin ich nicht einverstanden:

Zitat
Um allerdings die Grafiken davon auch in Lunar Magic anzuzeigen, empfehle ich ein anderes Tutorial auf dieser Seite


Es hat so schön angefangen aber dann DAS ??? ich hab wirklich wenig lust auf solche "Find dir den Rest zusammen" Tutorials,
denn Der Teil gehört genauso zu diesem Tutorial wie alles andere ....

!!ACHTUNG!!: Ja ich bin ein wenig genervt aber trotzdem ist dieser Post als Konstruktive Kritik aufzunehmen!

MFG Zeperus05

Sieh's mal umgekehrt:
Andere würden vielleicht sagen "Ohh, das weiß ich doch schon, der könnte einfach n Link von nem anderen Tut hier rein posten, das ist überflüssiges Basiswissen".
Man kann es nie allen recht machen.

Overworld designen ist mein Job
Meine Rechtschreibfehler sind gewollt und taktisch klug gesetzt
8Bit YT Channel
geschrieben am 27.12.2010 13:58:08
( Link )
Darüber hinaus gehört die Anzeige in Lunar Magic nicht wirklich zu Sprite Tool.
-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 30.12.2010 5:22:40
( Link )
Zitat von RPG Hacker:
Darüber hinaus gehört die Anzeige in Lunar Magic nicht wirklich zu Sprite Tool.


Ich finde eher eher fast schon gesagt unnötig...
Außer man will wirklich viele costum Sprites der selben Art im gesamten Hack haben dann würde ich es dringend raten!
>we live in a society