W4mp3's Abstellrampe für unfertige Tutorials

geschrieben am 01.12.2018 22:17:18
zuletzt bearbeitet von W4mp3 am 01.12.2018 22:20:34.
( Link )
W4mp3's Abstellrampe für unfertige Tutorials
Ich mache gerade ein wenig Ordnung bei mir und hab einige alte und unveröffentlichte Tutorials gefunden an denen ich nicht weiter werkeln möchte (weil veraltet).

Generelle Tipps und Tricks ohne irgendwelchen Kontext (Letztes mal angefasst: 29.01.2017 00:41)
Das hier war ein Versuch Tipps und Tricks für das SMWHacking auf einer Stelle zu sammeln. Einiges ist da "Fertig", der Tipp oder Trick (whatever) mit dem "Workspace verbessern" ist alles andere als fertig (und mittlerweile sieht das bei mir auch anders aus).
Tips.txt anzeigen

W4mp3's Trickkiste
AKA: W4mp3 cheatet beim Hacken und braucht trotzdem zu lange
AKA: Wann kommt endlich Episode XYZ von TheProject!?!
Letztes Update: 21:02 15.12.2016

Vorwort:
Das hier ist kein Tutorial, nur eine kleine Ansammlung von Zeug. Vielleicht lernt ihr was neues, vielleicht auch nicht, mal gucken. Achja, fast alles in Anführungszeichen bedeutet das ihr das denkt/sagt. Akzeptiert das. Akzeptiert auch, dass manche Dinge nicht zu 100% korrekt sind, auch ich mache Fehler. Alle Texte sind nicht in einem Rutsch entstanden, deswegen variiert der Schreibstil ein wenig.

Vorkenntisse benötigt:
Eigentlich keine, wenn irgendwas gebraucht wird, dann gebe ich das an. Grundkenntisse von Lunar Magic sollten fürs erste genügen.

~~~

>>>Inhaltsverzeichnis:
Tipp: Mit STRG+F könnt ihr nach den Überschriften suchen
>>>Mausgesten in Lunar Magic
>>>Workflow verbessern(?)
>>>Zeitmanagement Level
>>>Tastenkürzel in Lunar Magic

~~~

>>>Mausgesten in Lunar Magic
Hinweis: Benötigt Map16-Kentnisse.

Mausgesten ersparen euch Zeit und allgemein Eingaben. Wie die funktionieren ist am Anfang erst ein wenig komisch, ist aber relativ leicht erlernbar. Das ganze findet sich auch in der Hilfe von Lunar Magic, ich erkläre nur die wichtigsten Mausgesten. Manche Mausgesten funktionieren nur unter bestimmten Bedingungen, klingt komisch, ist aber so.

[Strg]+Rechtsklick:
Das Objekt/Sprite im Auswahlsfenster einfügen. Damit spart man sich einen Klick, falls die andere Hand an der Tastatur ist.

Rechtsklick im Layer 1/2 Modus wenn das Objektfenster geschlossen ist und im Map16 Editor ein Tile ausgewählt wurde:
Jep, man kann tatsächlich aus dem Map16-Editor direkt Tiles ins Level einfügen, habe ich auch erst nicht gewusst, dass das geht. Falls ein Tile im Level ausgewählt ist muss man noch [Strg] gedrückt halten und wenn das Objektfenster noch offen ist, dann kann man noch per [Strg]+[Alt]+Rechtsklick aus dem Map16-Fenster Tiles einfügen.

[Strg]+[Shift]+Rechtsklick
Quasi ein Farbeimer für das ausgewählte Tile. Passt ein wenig damit auf, sonst füllt ihr noch das ganze Level mit dem Tile. Funktioniert lustigerweise nicht, wenn man normale Objekte benutzt sondern nur mit Map16-Tiles. Leider ist das Ding nicht zu 100% Effizient:
[Bild fehlend]
Links mit der Füllfunktion von Lunar Magic (2F Bytes), Rechts per Hand gefüllt (2B Bytes). Optisch unterscheiden die sich nicht, links sind 2 Map16 Objekte und rechts ein Map16 Objekt, dass ich per Mausrad ganz nach hinten geschoben habe. Technisch gesehen lädt das Level aber schneller bei Lunar Magics Füllfunktion (16 Tiles links, 24 Tiles rechts). Was einen jetzt wichtiger ist bleibt einem selber überlassen.

[Alt]+Rechtsklick im Sprite Modus
Macht das mal auf die Entrances von den Levels, ich verrate nicht was das macht Damit kann man auch die Spriteeigenschaften ändern, lasst die Finger davon, damit macht ihr eher was kaputt.

Mittlere Maustaste
Alternativ geht auch die [Esc]-Taste. Das Wechselt zwischen dem Layer 1/2 Modus und dem Sprite Modus. Achtung, das Wechselt nur vom Spritemodus zurück in den Layermodus, in dem ihr vorher wart.

Für die nächsten Mausgesten muss bei "Options->General Options->Program Options->Mouse Gestures" angehäkelt sein!

Rechtsklick gedrückt halten nach links/rechts ziehen und die Taste loslassen, das Objekt/Sprite/Map16-Fenster ist geschlossen
Springt zum vorherigen/nächsten Level. Das ist Anfangs ein wenig gewöhnungsbedürftig, das geht nicht ein Level vor oder zurück sondern zum Level, das davor geladen war. Beispiel: Ihr wechselt von Level 105 auf Level 150. Um wieder zurückzukommen haltet ihr die Rechte Maustaste gedrückt, zieht die nach links und lässt die Taste los. Jetzt seit ihr wieder in Level 105 und da sogar auf dem Platz vor dem Levelwechsel zu Level 150. Cool! Falls das Objekt/Sprite/Map16-Fenster offen ist kann man das immer noch per gedrücktgehaltenem [Shift] und der Mausgeste das Level wechseln.

[Alt]+Rechtsklick gedrückt halten nach rechts ziehen und die Taste loslassen, Mauszeiger ist in einem Screen mit Exit
Okay, das ist mega cool: Das springt zum Level zu dem der Exit führt, wenn man nach rechts zieht. Nicht nur das, es scrollt auch automatisch zum Screen mit dem Entrance. Funktioniert auch mit den Secondary Exits.

Dinge die nicht funktionieren; Getestet mit Lunar Magic 2.42

[Strg]+Mausrad Zoomen
Eigentlich sollte das funktionieren, tut es aber nicht. Ist zwar unnütz, sollte aber mal erwähnt werden, dass das nicht funktioniert. Das ist jedenfalls noch in der Hilfedatei von LM drin. Wehe jemand meldet das FuSoYa, das ist ein Feature, kein Bug!!!

~~~

>>>Workspace verbessern(?)
Hinweis: Ich beschreibe ein wenig meinen Workspace, kann sein, dass dieser nicht zu euch passt.
"Hä, wörkspace? Was soll das sein, W4mp3?" Das Workspace (deutsch Arbeitsplatz) beschreibt die Struktur der Dateien und Ordner innerhalb eines Projekts. Ein guter Workspace ist so eingerichtet, dass ein oder mehrere Nutzer einfach und schnell die benötigten Dateien/Ordner findet. Was das ganze mit SMW Hacking zu tun hat? Ganz viel, das werde ich euch mal kurz anhand meines Workspaces vorstellen. Dabei werde ich auch auf meine alten, unveröffentlichen Projekte verweisen. Fangen wir mal an mit der Ordnerstruktur. Da ich schon länger mit Computern zu tun habe (so 17 Jahre ungefähr) habe ich mir eine einfache Ordnerstruktur für meine Daten gebastelt. Ich sortiere nach Musik, Bildern, Videos, Spiele, Dokumente und vieles mehr. Was ich früher nicht gemacht habe waren meine Projekte einfach in einen Ordner zu quetschen, egal was das für Daten sind. So ungefähr sah mein Projektordner im Jahre 2011 aus:
Kompletter anzeigen

│ 111.mwl
│ Addmusic -se.bat
│ Addmusic LEVEL.bat
│ Addmusic OW.bat
│ AddMusic.exe
│ AddMusic.ini
│ aminsert.txt
│ Backups von Unbekannt bis 16. April 2011.srm
│ Backups von Unbekannt bis 16. April 2011.zip
│ cfg_editor.exe
│ Changelog.txt
│ classicfire.asm
│ cmd.exe.lnk
│ Credits.txt
│ cuspal.asm
│ gro28.mwl
│ gro3.mwl
│ incr.asm
│ Kopie (10) von LPIN.smc
│ Kopie (11) von LPIN.smc
│ Kopie (12) von LPIN.smc
│ Kopie (13) von LPIN.smc
│ Kopie (14) von LPIN.smc
│ Kopie (2) von LPIN.smc
│ Kopie (3) von LPIN.smc
│ Kopie (4) von LPIN.smc
│ Kopie (5) von LPIN.smc
│ Kopie (6) von LPIN.smc
│ Kopie (7) von LPIN.smc
│ Kopie (8) von LPIN.smc
│ Kopie (9) von LPIN.smc
│ Kopie von LPIN.smc
│ level.asm
│ level.mwl
│ Levelcode.asm
│ Levelinitcode.asm
│ Levelverteilung.txt
│ logo.asm
│ lp96mf.mwl
│ LPIN.dbk
│ LPIN.dsc
│ LPIN.m16
│ LPIN.mid
│ LPIN.msc
│ LPIN.mw2
│ LPIN.mwt
│ LPIN.smc
│ LPIN.smc.bak
│ LPIN.smcbackup0
│ LPIN.smcbackup1
│ LPIN.spc
│ LPIN.srm
│ LPIN.ssc
│ LPIN.txt
│ LPIN.z10
│ LPIN.zs1
│ LPIN.zs2
│ LPIN.zst
│ LPINgro.smc
│ LPINgro2.smc
│ LPINmcd.smc
│ LPINmcd.srm
│ LPINmcdlevel1.smc
│ LPINmcdlevel1.srm
│ LPIN_00000.png
│ LPIN_00001.png
│ LPIN_00002.png
│ LPIN_00003.png
│ LPIN_00004.png
│ LPIN_00005.png
│ LPIN_00006.png
│ lv01.mwl
│ lvl25.mwl
│ Map16BG.bin
│ Map16FG.bin
│ Map16FGG.bin
│ Map16Page.bin
│ mcd1.mwl
│ mcd1.pal
│ mcd25.mwl
│ mcd26.mwl
│ mcd27.mwl
│ mikeyk's readme.txt
│ MORE.bin
│ nofile.asm
│ owcoins.asm
│ Palette.tpl
│ PIR.asm
│ Readit.txt
│ readme.txt
│ Romis readme.txt
│ Sample Level.mwl
│ SampleTool.exe
│ sl.txt
│ slogger.exe
│ slopepassfix.asm
│ SMW.smc
│ SMWDisC.txt
│ smwfix.asm
│ snesbrr.exe
│ sound effect manual.txt
│ SoundEffect.ini
│ sprite_tool.exe
│ StatusIRQhack.asm
│ temp.brr
│ temp.wav
│ trasm.exe
│ Xkas GUI.exe
│ xkas.exe
│ xkas0.6.exe
│ XkasAnti.exe

├───1DF9
│ 1DF9Test.txt
│ LoZ PazzleSolved.txt

├───1DFC
│ 1DFCTest.txt
│ imacreeper.txt
│ LoZ PazzleSolved.txt
│ rupee.txt
│ SMAS, SMB3 - Whistle.txt
│ test.txt
│ test2.bin
│ TurnOffEcho.txt
│ TurnOnEcho.txt

├───ExGraphics
│ ExGFX137.bin
│ [...]
│ ExGFXFF.bin

├───generators
│ fish_generator.asm
│ fish_generator.cfg
│ generic.asm
│ generic.cfg
│ ice_power.asm
│ ice_power.cfg
│ lightning.asm
│ lightning.cfg
│ powerup_timer.asm
│ powerup_timer.cfg

├───Graphics
│ [...]

├───LEVEL
│ BisUnderwater.txt
│ Castle Melody - mariomaniac444.txt
│ Cave Drums (HuFlungDu Friendly).txt
│ Contra - Stage 3.txt
│ echofix.py
│ Hudson's Adventure Island - Underground - nipcen.txt
│ Kdltitl2.txt
│ koopa.txt
│ Mario Paint - BGM 2.txt
│ MC - piano2.txt
│ MM2Ringer.txt
│ Nyanyanyanyanyanyanya! - Slash Man.txt
│ pitfall2.txt
│ Poker Face - MarioLegendary.txt
│ Super_Mario_Land_2_-_The_Moon - FPI.txt
│ Super_Mario_Land_2_-_The_Star - FPI.txt
│ Tales of Phantasia - Forest of the Treant (v2.0).txt
│ Tower of Heaven - 'Luna Ascension' - CrispyYoshi.txt
│ W4mp3.txt
│ WorldsEndp2.txt
│ Zelda-theme.txt

├───MISC
│ Done Bonus Game.txt
│ Game Over.txt
│ Have Star.txt
│ Into Keyhole.txt
│ mario died.txt
│ P-switch.txt
│ Passed Boss.txt
│ Passed Level.txt
│ Rescue Egg.txt
│ Welcome.txt
│ Zoom in.txt

├───OW
│ echofix.py
│ Mario Paint - BGM 2.txt
│ SMK - Koopa's Theme (SMW Overworld Mix).txt

├───shooters
│ diag_bill.asm
│ diag_bill.cfg
│ diag_bill_down.asm
│ diag_bill_down.cfg
│ diag_bill_up.asm
│ diag_bill_up.cfg

├───sprites
│ │ achivement1unlock.asm
│ │ achivement1unlock.cfg
│ │ achivement2.asm
│ │ achivement2.cfg
│ │ bewegung.asm
│ │ bewegung.cfg
│ │ testsprite.asm
│ │ testsprite.cfg
│ │
│ └───originals
│ boo.asm
│ boo.cfg
│ boo_generic.asm
│ bridge.asm
│ bridge.cfg
│ dircoin.asm
│ dircoin.cfg
│ dolphin.asm
│ dolphin.cfg
│ goomba.asm
│ goomba.cfg
│ jumping_block.asm
│ jumping_block.cfg
│ megamole.asm
│ megamole.cfg
│ rex.asm
│ rex.cfg
│ spring_board.asm
│ spring_board.cfg
│ thwimp.asm
│ thwimp.cfg
│ thwomp.asm
│ thwomp.cfg

├───src
│ AddMusic.cpp
│ AddMusic.exe
│ AddMusic.h
│ class_int.cpp
│ class_int.h
│ class_string.cpp
│ class_string.h
│ Compilation instructions.txt
│ compile.bat
│ main.asm
│ makefile
│ MOREbin.asm
│ MUSIC.asm
│ sprites.cpp
│ sprites.h
│ sprites_const.h

├───sysLMRestore
│ LPIN.lrp
│ readme.txt
│ smwOrig.smc

├───tilemaps
│ albatoss (SP3).bin
│ boss bass (SP3).bin
│ bowser (SP3).bin
│ donut,poison,venus,goomba (SP2).bin
│ donut,poison,venus,goomba, blooper (SP2).bin
│ giant (SP4).bin
│ giant_koopa (SP3).bin
│ ground pound koopa (SP4).bin
│ hammer_bros (SP3).bin
│ ice (SP2).bin
│ mario2 (SP4).bin
│ nipper, spiky ball (SP4).bin
│ pipe (SP4).bin
│ roto (SP4).bin
│ spiny (SP4).bin
│ yi enemies (SP4).bin

└───tutorials
lesson1.asm
lesson1.cfg
lesson1.doc
lesson2.doc
lesson2a.asm
lesson2a.cfg
lesson2b.asm
lesson2b.cfg
library.asm

Ok, sagt mir mal wo der Patch ist, welcher auf der Overworld die Münzanzahl anzeigt. Ich weiß nur, dass der Patch da ist, aber nicht welche Datei den Patch hat. Nagut, das ist ein wenig gelogen, "owcoins.asm" heißt die Datei mit dem Patch, aber das muss man erst einmal wissen. Springen wir mal 2 Jahre weiter und schauen uns mal 256 Rooms an:
Dateiverzeichnis, anzeigen

│ 1.map16
│ 1PHack.cht
│ 1PHack.dbk
│ 1PHack.dsc
│ 1PHack.m16
│ 1PHack.msc
│ 1PHack.mw2
│ 1PHack.mwt
│ 1PHack.s16
│ 1PHack.smc
│ 1PHack.srm
│ 1PHack.srm.bak
│ 1PHack.ssc
│ 1PHack.txt
│ 1PHack.zs1
│ 1PHack.zst
│ 1PHackBroken.smc
│ 1PHack_00000.png
│ 1PHack_00001.png
│ 1PHack_00002.png
│ 1PHack_00003.png
│ 1PHack_00004.png
│ 1PHack_DEMO1_HiScores.html
│ 1PHack_LevelASM.txt
│ 256.ico
│ 256.zip
│ 256Rooms1.5.zip
│ 256scrn (1).png
│ 256scrn (2).png
│ 256scrn (3).png
│ 256scrn (4).png
│ 256scrn (5).png
│ AddMusic.exe
│ AddMusic.ini
│ am.bat
│ asar.exe
│ blocks.db
│ Blocktool Super Deluxe.exe
│ cfg_editor_deutsch.exe
│ cfg_editor_original.exe
│ changes.txt
│ KilOwAsm.asm
│ Level023.bmp
│ Level023.PNG
│ LevelASMTool.exe
│ Map16Page.bin
│ MORE.bin
│ multi.bat
│ Munchsweeper.zip
│ ow.pal
│ OwCodes.asm
│ patch all the things.bat
│ patch.bat
│ RATS.log
│ readme.txt
│ sl.txt
│ slogger.exe
│ SoundEffect.ini
│ sprite_tool.exe
│ stdlib.asm
│ style.css
│ temp.asm
│ temp.bin
│ tmp.asm
│ tmp.bin
│ tmp.err
│ trasm.exe
│ xkas.exe

├───1DF9
│ 1DF9Test.txt
│ LoZ PazzleSolved.txt

├───1DFC
│ 1DFCTest.txt
│ LoZ PazzleSolved.txt
│ test.txt
│ test2.bin
│ TurnOffEcho.txt
│ TurnOnEcho.txt

├───1PHack_LevelASM
│ debugcode.asm
│ lastroom.asm
│ Layer2gates.asm
│ resettimer.asm
│ sidescrollshooter-notimer.asm
│ sidescrollshooter.asm
│ snesdos.asm
│ touhou.asm

├───Blocks
│ betterteleport.asm
│ checkpoint01.asm
│ checkpoint02.asm
│ checkpoint03.asm
│ checkpoint04.asm
│ checkpoint05.asm
│ checkpoint06.asm
│ checkpoint07.asm
│ checkpoint08.asm
│ Empty Block.asm
│ fliessbandL.asm
│ fliessbandLschnell.asm
│ fliessbandLschneller.asm
│ fliessbandR.asm
│ fliessbandRschnell.asm
│ fliessbandRschneller.asm
│ FließbandBlocks.zip
│ kill.asm
│ minesweeperblock+.asm
│ minesweeperblock.asm
│ nettest.asm
│ peekaboo.asm
│ slowblock.asm
│ walljump.asm

├───Changelog
│ 256RoomsChangelog.html
│ banner.png
│ style.css

├───ExGraphics
│ ExGFX80.bin
│ ExGFX81.bin

├───generators
│ grehytunnel.asm
│ grehytunnel.cfg

├───Graphics
│ GFX00.bin
│ [...]
│ GFX33.bin

├───LEVEL
│ BAD IDEAL.txt
│ Cave Raider - Custom by Gpetry.txt
│ DecisiveHereWeGo.txt
│ Earthy Caverns.txt
│ echofix.py
│ Factory Cave.txt
│ Funky Boo.txt
│ gangnam.txt
│ gocs.txt
│ Gradius Rebirth - Heavy Blow.txt
│ Guile.txt
│ Happy Chord.txt
│ MLPIT - Vim Factory.txt
│ nggyu.txt
│ Seventh sound.txt
│ SMW&SMB Underground Remix - Original.txt
│ Super_Mario_Land_2_-_The_Star.txt
│ WL2 Underwater Tunnels.txt

├───LEVELS
│ AllMap16.map16
│ Käsereibe 000.mwl
│ Käsereibe 001.mwl
│ Käsereibe 002.mwl
│ Käsereibe 003.mwl
│ Käsereibe 004.mwl
│ Käsereibe 005.mwl
│ Käsereibe 006.mwl
│ Käsereibe 007.mwl
│ Käsereibe 008.mwl
│ Käsereibe 009.mwl
│ Käsereibe 00A.mwl
│ Käsereibe 00B.mwl
│ Käsereibe 00C.mwl
│ Käsereibe 00D.mwl
│ Käsereibe 00E.mwl
│ Käsereibe 0C5.mwl
│ Käsereibe 0C7.mwl
│ Käsereibe 105.mwl
│ Käsereibe 1FD.mwl
│ Käsereibe 1FF.mwl
│ RATS.log

├───MISC
│ Done Bonus Game.txt
│ Game Over.txt
│ Have Star.txt
│ Into Keyhole.txt
│ mario died.txt
│ P-switch.txt
│ Passed Boss.txt
│ Passed Level.txt
│ Rescue Egg.txt
│ Welcome.txt
│ Zoom in.txt

├───OW
│ echofix.py
│ Katamari Damacy.txt

├───Patches
│ blockduplicationfix.asm
│ disablebuttons.asm
│ entrance.asm
│ fireberryfix.asm
│ FixFeather.asm
│ fixspikeswim.asm
│ instantitembox.asm
│ instantitemboxfix.zip
│ lr.asm
│ messagebox.asm
│ multimidway.asm
│ multimidwaytables.asm
│ nofile.asm
│ nomosaic.asm
│ ropefix.asm
│ ropefix2.asm
│ slopepassfix.asm
│ test.asm
│ timeupfix.asm
│ titlescreen.asm
│ walljumpnoteblockglitchfix.asm
│ xscrollfix.asm
│ yoshispringboardfix.asm

├───shooters
├───sprites
│ big_boo_boss.asm
│ big_boo_boss.cfg
│ bullet_bill_1C.asm
│ bullet_bill_1C.cfg
│ coin.asm
│ coin.cfg
│ creating_eating_block2.asm
│ creating_eating_block2.cfg
│ cursor.asm
│ cursor.cfg
│ mouse.asm
│ mouse.cfg
│ npc3.asm
│ npc3.cfg
│ pnk.asm
│ pnk.cfg
│ rkp.asm
│ rkp.cfg

└───sysLMRestore
1PHack.lrp
1PHackNOOW.lrp
readme.txt
smwOrig.smc

Sieht doch schon mal ganz ok aus. Es sind weniger Mülldateien drin und ein paar Sachen sind in Ordnern einsortiert. Übersichtlich ist das aber meiner Meinung nach nicht wirklich, jedenfalls weiß ich wo was sein könnte. Schauen wir mal ins Jahr 2015, mal gucken, ob es da besser geworden ist:
Spoiler: anzeigen

│ 2015hack.ico
│ 2015Hack0.png
│ 2015Hack1.png
│ asar.exe
│ cfg_editor.exe
│ house.pal
│ owpal.pal
│ owsprites.txt
│ patchall.bat
│ rammap.txt
│ sl.txt
│ SMW.msc
│ SMW.mw2
│ SMW.mwt
│ SMW.smc
│ SMW.smc~
│ SMW.srm
│ SMW.ssc
│ SMW.zst
│ smwdefault.pal
│ sprite_tool.exe
│ srammap.txt
│ trasm.exe
│ xkas.exe

├───ExGraphics
│ ExGFX60.bin
│ [...]
│ ExGFXFFF.bin
│ list.txt

├───generators
├───Graphics
│ GFX00.bin
│ [...]
│ GFX33.bin

├───Patches
│ │ Counter Break Yoshi.asm
│ │ hexedits.asm
│ │ smasfont.bin
│ │ smasfont.tbl
│ │ speed.asm
│ │ xscrollfix.asm
│ │ Z.asm
│ │
│ ├───ObjecTool
│ │ custobjcode.asm
│ │ custobjptrs1.asm
│ │ custobjptrs2.asm
│ │ custobjptrs3.asm
│ │ objectool04.asm
│ │ Readme - ObjecTool 0.4.txt
│ │
│ └───VWF
│ │ vwfdialogues.asm
│ │ vwffont1.asm
│ │ vwffont1.bin
│ │ vwfframes.bin
│ │ vwfmessagepointers.asm
│ │ vwfmessages.asm
│ │ vwfpatterns.bin
│ │ vwftable.txt
│ │
│ ├───Blocks
│ │ └───Display Once on Touch
│ │ touch_mXX.asm
│ │
│ ├───Fonts
│ │ └───[...]
│ │
│ └───Readme
│ └───[...]

├───shooters
├───sprites
│ elevator.asm
│ elevator.cfg
│ infoboxDX.asm
│ infoboxDX.cfg
│ npc3v.asm
│ npc3v.cfg
│ npc3v_walk.cfg

└───sysLMRestore
readme.txt
SMW.lrp
smwOrig.smc

Hey, das ist ganz gut so, fast gar kein Datenmüll mehr. Aber es geht noch besser:
Hmmm, anzeigen




~~~

>>>Zeitmanagement Levelbau
"Bitte was? Zeitmanagement?" Richtig gehört, Zeitmanagement. Hier geht es darum, wielange man sich mit was beschäftigen sollte beim Levelbauen. Ich gebe keine genauen Zeiten, einfach nur Anteile und selbst die sind ungenau. Meine Aufteilung sieht so aus für einfache Levels (keine ExGFX, keine Musik, kein ASM Schrott oder irgend was anderes, nur rein das Level):
1/10 - Planungsphase
7/10 - Bauphase
2/10 - Test/Fixphase
Die Planungsphase ist einfach nur die Überlegung was das Level überhaupt sein soll. Da wird auch bestimmt welche Grafiken benutzt werden und welche Gimmicks es im Level gibt. Beispiel: Schlosslevel mit Layer-2 Smash Ding.
Bei der Bauphase wird, wie der Name schon verrät, das Level gebaut. In dieser sollte die meiste Zeit verbracht werden. Einfach das Level bauen, mehr ist das nicht. Hier sollten nur einzelne Abschnitte getestet werden, nie das ganze Level, sonst verschwendet ihr einfach nur Zeit. Das ganze Level testet ihr einmal (!) wenn das ganze Level gebaut ist ohne irgendeinen Sprite (außer der ist nötig um das Level zu schaffen). Danach erst platziert Sprites. So mache ich das meistens, ich verschiebe da noch ab und an ein paar Dinge, wenn es sich anbietet.
In der Test/Fixphase sollte das ganze Level OHNE SAVESTATES gespielt werden. Warum ohne Savestates? Ganz einfach, damit erkennt man unfaire Stellen einfacher und sieht auch direkt was gemacht werden muss. Manchmal muss nur ein Sprite ein Block weggeschoben werden, manchmal muss ein Teil des Levels umgebastelt werden. Macht die Veränderungen nicht allzugroß, sonst seit ihr ja wieder in der Bauphase. Manchmal ist es ganz nützlich in der Phase erst Yoshi-Coins zu platzieren, kann aber auch vorher geschehen.

Was ist jetzt mit den komplizierten Levels, also die mit allem Zeugs wie Custom Music, Blocks, Sprites und sonstigem Geschiss. Nunja, ich kann schon bereits jetzt sagen, dass das viel länger braucht, kommt auf die Umstände an. An den Phasen ändert sich fast nichts, hier gibt es aber zwei Varianten:
Variante 1: Man muss nichts selber machen
1/10 - Planungsphase
1/10 - Vorbereitungsphase
6/10 - Bauphase
2/10 - Test/Fixphase

Die Vorbereitungsphase ist quasi die Zeit, die ihr braucht um Custom Music, Blocks, Sprites, ExGFX und anderes Geschiss herunterzuladen und in die ROM einzufügen, mehr ist das nicht.

Variante 2: Man muss irgendwas machen
Es gibt keine Phasen hier. Das ist tatsächlich kein Scherz. Das hier kann man nicht so genau bestimmen was wie lange braucht. Egal wie erfahren man ist, irgendein Problem taucht dann auf und fesselt dich quasi ohne Grund für Stunden... Das passiert mir jedes verdammte mal, wenn ich irgendwas machen will, besonders wenn es total cool ist aber ein haufen Code braucht. Dann will man noch passende Grafiken zeichnen, Musik selber porten (funktioniert bei mir "sehr gut"), hier noch Feinschliff, da noch ein YouTube Video... Ihr seht schon, das ist ein Teufelskreis aus dem man nicht rauskommt, das Endergebnis ist aber dann richtig gut. Erinnert sich noch jemand an Runde 3 vom SMWHacking.de - Turnier? Das Level war die Hölle, weil ich nix geplant habe, eine dumme Idee gehabt habe (ExAnimation mit Musik koppeln) und dann noch die Zeit knapp wurde. 40 Stunden habe ich dafür gebraucht, das Level selbst ist nicht so gut geworden. Bitte braucht keine 40 Stunden für ein Level, das ist wirklich zuviel.

>>>Tastenkürzel in Lunar Magic
Ich liste einfach mal ein paar Tastenkürzel auf, die nicht in der Hilfedatei drin stehen oder die ich nur über das Changelog herausziehen konnte. Ob die nützlich sind ist fraglich, muss man selber entscheiden, ob man die braucht oder nicht. Ich habe alles nach den aktiven Fenstern sortiert.

Lunar Magic Hauptfenster

Alt + F3:
Zeigt/Versteckt die Kamerahilfslinien bei der Kameradingenshilfe, das Ding, wenn man F3 drückt halt.

Strg + Shift + F8:
"Color Hack" für das Titlescreen-Level installieren/entfernen. Einziger Hinweis, der Anzeigt, das es installiert/entfernt wurde ist unten in der Statusbar. Der "Color Hack" erlaubt es einfach,

Strg + Shift + Alt + +/-:
Selbe Funktion wie das Mausrad bei einem ausgewählten Objekt/Sprite nur für die Tastatur.

Strg + O:
Öffnet den Overworld Editor.

Strg + Shift + S:
Zeigt wieviel freier Speicher noch in der ROM ist und andere Infos wie die zuletzt benutzte Version von Lunar Magic.

Strg + Shift + Alt + S:
Löscht überlappende RATS-tags. Für den alltäglichen Gebrauch unnütz, wenn ihr irgendwas komisches mit ASM macht, dann kann das hier interessant sein.

Palette Editor

F3:
Erlaubt es irgendeine Farbe vom Bildschirm auszuwählen. Funktioniert nicht bei allem, du kannst keine Farbe von Kopiergeschützten Material (z.B. Filmen) auswählen.


Overworld Editor

Shift + Alt + F11/F12:
Shortcut für File->Credits->Load Credits/Save Credits. Solltet ihr immer noch mit einer älteren Version on Lunar Magic hantieren, so ist der Shortcut Strg + F11/F12.





Palettentutorial (Letztes mal angefasst: 18.08.2018 00:37)
Lustigerweise gibt es immer noch kein Palettentutorial, anscheinend ist das nicht ganz so einfach :^) Hier ist der Anfang des Tutorials, den ich geschrieben hab:
Paletten anzeigen

[LM2.4+] Paletten Tutorial
aka. W4mp3 erklärt Farben

Vorwort
Das Tutorial beinhaltet so ziemlich alles was Paletten und Farben angeht.
Bevor wir anfangen irgendwas zu machen sollten brauchen wir folgendes Grundwissen:
- Lunar Magic (reicht, wenn man ein paar Blöcke/Gegner platzieren kann)
- Was die Farben rot, blau und grün sind.

Das war's auch schon mit den Mindestanforderungen, mehr müsst ihr nicht können.

Wie, was Palette?
Palette, Palette, Baugette. Was ist eine Palette eigentlich? Nunja, kommt auf die Situation an. In unserem Falle bedeutet das "Farbauswahl" und vorstellen kann man sich das so:

Der Maler hat nur die Farben, die auf der Malpalette vorhanden sind (wir mischen keine Farben!). Und so ähnlich macht es auch der Super Nintendo (kurz: SNES). Der SNES ist aber cooler, denn er hat 256 Farben in der Palette:

Bringt ihm aber nichts: Er kann nicht alle 256 Farben auf dem selben Fleck benutzen. Die Grafiken in Super Mario World (ich kürze das ab jetzt mit SMW ab) können nur 16 Farben benutzen, genauer gesagt ist die erste Farbe Transparent, Durchsichtig oder wie auch immer ihr das nennt.

Palette Editor - Das Fenster

Fangen wir einfach mal mit dem größten Objekt in dem Fenster an: Die Farbpalette links. Das was wir da sehen ist die aktuelle Palette des Levels. Dies sind einfacher gesagt alle Farben die benutzt werden können von den Grafiken. Ich zeige euch einfach mal ein paar Beispielsgrafiken und woher die Farben stammen:




FLIPS Tutorial (Letztes mal angefasst: 25.11.2013)
Fertiges FLIPS Tutorial, warum ich das nicht veröffentlicht habe weiß ich nicht :/
floatingipstutorial.txt anzeigen

Floating IPS [FLIPS] - Tutorial

Was ist Floating IPS?
Floating IPS (kurz: FLIPS) ist ein Patcher für .ips- und .bps-Patches. Damit können auch Patches erstellt werden. Das hier ist wichtig, wenn ihr euren Hack irgendwo legal hochladen wollt (sprich: ohne orginal Inhalt von SMW).

Wo kriege ich FLIPS her?
[Download]
Entpackt das Archiv und kopiert FLIPS an eine sichere Stelle.

Erste Benutzung
Startet "flips.exe". Klickt auf den "Select Emulator"-Knopf und wählt im Dialog euren Emulator aus. Mehr gibt es nicht zu machen, den rest hat FLIPS schon selbstständig geregelt. Alle .ips und .bps Dateien können nun mit FLIPS geöffnet werden.

Wie kann ich eine ROM Patchen (und danach die gepatchte ROM starten)?
Einfach den Patch doppelklicken und eine saubere ROM wählen. Wenn ihr das mit FLIPS machen wollt (sprich: flips.exe geöffnet habt), dann klickt auf den "Apply Patch"-Knopf. Wählt im ersten Dialog den Patch aus, im zweiten dann eine saubere ROM. Falls ihr danach direkt den Emulator starten möchtet, dann klickt anstelle auf "Apply Patch" auf "Apply and Run".

Wie erstelle ich einen Patch?
Klickt bei FLIPS auf "Create Patch". Im ersten Dialog müsst ihr eine UNMODIFIZIERTE ROM auswählen. Der zweite Dialog fordert nach eurem Hack, füttert ihn damit. Der letzte Dialog ist für den Speicherort vom Patch gedacht. Hier könnt ihr bei "Dateityp:" entweder .bps-Patches oder .ips-Patches erstellen. Wenn nichts schiefgelaufen ist, dann kommt ein kleines Fenster mit "Patch applied succesfully!". Fertig.

Was ist besser .ips oder .bps?
Beides ist ausreichend für SMW-Hacks. BPS erstellt aber dafür kleinere Dateien. IPS ist aber verbreiteter, da es schon ewig auf dem Markt ist, während BPS erst seit 2012 unterwegs ist. Wenn ihr euch nicht sicher seit, welches Dateiformat ihr schicken sollt, dann schickt sicherheitshalber beide Dateien.
-> BPS ist besser, aber weniger bekannt als IPS.

Sonstiges
Release Thread

Wie immer Fragen und Anregungen sind erwünscht.


Nochmal ein Palettentutorial (Letztes mal angefasst: 30.03.2014 13:13)
paletten anzeigen

Paletten Tutorial

Vorwort:
ACHTUNG, ES WIRD GEDUZT!
Gibt es hier noch nicht, also mache ich mal eins. Ich erkläre es wie es genau funktioniert, nicht erschrecken. Wer weiß wie man mit dem Palette Editor umgeht, der kann mal meine Farblehere lesen, vielleicht ist da auch was für euch dabei.

Vorkenntisse:
Man sollte schon ein wenig was mit Lunar Magic anstellen können, also Objekte und Sprites einfügen.

Was sind Paletten?
Paletten sind Farbräume, die in ein oder mehreren Levels benutzt werden können. Der Super Nintendo kann 32768 Farben darstellen, davon können aber nur bis zu 257 gleichzeitig dargestellt werden. In SMW kann man nur 241 Farben gleichzeitig benutzen, das liegt an dem Darstellungsmodus von SMW. Die Komplette Palette ist in 16 Paletten á 16 Farben aufgeteilt.
[Bild fehlend]
(Die Palettenaufteilung in SMW)
Jedes 8x8 Tile kann eine Palettenreihe benutzen, das heißt, dass man keine Farben aus Palette 4 nehmen kann und bei Palette 1 benutzen kann. Du denkst dir bestimmt:
Zitat
Alder, will der mich vera*schen?! Ich will Paletten lernen, nicht den Sch*iß hier!

Tut mir leid, du musst das wissen, sonst kommen deswegen noch Fragen. Gut, jetzt kommen wir zu dem Teil, bei dem man was Praktisches machen kann.

Palette Editor
Keine Sorge, du musst nichts runterladen, Lunar Magic hat den schon. Dazu musst du auf den Stern oben in der Toolbar klicken. Fallst du ihn nicht findest gibt es hier mal ein Wink mit dem Zaunpfahl:
[Bild fehlend]
Ich empfehle ein kleines Testlevel zu bauen, damit man sieht, welche Farbe was verändert. Das hier sollte schon genügen:
[Bild fehlend]
Muss natürlich nicht gleich aussehen. Jedenfalls haben wir das Palette Editor Fenster offen. Wenn es nicht ungefähr so aus sieht wie im Bild unten, dann hast du eine alte Version von Lunar Magic. Da funktionieren ein paar Sachen nicht, die ich erkläre.
[Bild fehlend]
Fangen wir also mit dem Kasten rechts ersteinmal an:
Back Area Color: #
Das hier ist die Hintergrundfarbe. Wenn man künstlerisch tätig ist, dann kann man sich das als Leinwand vorstellen, die bereits gefärbt wurde. Wenn man auf die Farbfläche klickt, dann kommt ein Farbwahldialog. Wir drücken noch nicht darauf.
Back Area Color x (v)
Das ist die Dropdown-Box neben der Farbfläche. Man kann da die Back Area Color auswählen. Genauer gesagt ist das die globale Hintergrundfarbe, die mit anderen Levels geteilt wird.
FG Palette x
Das ist die globale Vordergrund Palette. Spielt mal ein wenig mit der Dropdownbox herum, ihr werdet sehen, dass die Farben fast aller Vordergrund Objekte ändert.
BG Palette x
Daselbe wie FG Palette x nur für Hintergründe. Ihr könnt auch ein wenig damit rumspielen, wenn ihr wollt.
Sprite Palette x
Das ist das selbe wie FG Palette x nur für Sprites. Das hier wirkt nur bei Sprites, die die letzten 2 Reihen als Palette benutzen. Rumspielen könnt ihr damit auch mal, wenn ihr wolt.
Mario Palette
Das hier ist die globale Palette für Mario, Feuer Mario, Luigi und Feuer Luigi. Damit könnt ihr die Paletten sehen, die die Brüder benutzen.

So, das war die Box rechts im Fenster. Darunter gibt es noch eine Checkbox: "(_) Enable custom palette for this level (will be saved with level)". Wenn man das hier mit einem Haken bestückt, dann gehen die Dropdownboxen nicht mehr. Das ist nicht weiter schlimm, wir setzen jetzt schon einmal einen Haken rein, damit wir keine globalen Farben ändern. Häckchen drin? Gut, dann gehts weiter mit dem Text unter der Checkbox.

Im Prinzip erklärt der Text die funktionalität des Palette Editors. Für diejenigen, die nicht so gut in Englisch sind gibt es hier eine relativ freie Übersetzung von mir:
Zitat
Linksklick auf eine Farbe erlaubt es die Farbe zu bearbeiten.
Strg + Linksklick auf eine Farbe kopiert die Farbe in den Arbeitsspeicher und
Strg + Rechtsklick auf eine Farbe fügt die kopierte Farbe ein (halte zusätzlich Alt für die gesammte Reihe)
Alt + Rechtklick setzt die Endpunkte des Farbverlaufes







Scrollbars Tutorial (Letztes mal angefasst: 05.09.2012 18:38)
Was auch immer Scrollbars war, anscheinend wollte ich dafür ein Tutorial schreiben. Ist mittlerweile veraltet, es gibt dafür Effect Tool.
TutScrollbars.txt anzeigen

Scrollbars
Vorwort
Scrollbars ist ein Parallax/Wellen HDMA Code Generator. Es erzeugt ASM-Dateien, die per LevelASM eingefügt werden (sollten).
Das zu erklären ist gut an einem Screenshot zu zeigen:
[Bild fehlend]
Wie ihr sehen könnt, ist der Hintergrund leicht gewölbt, im Spiel bewegt sich dieser noch nach oben. Ach ja, man kann auch sowas generieren lassen:
[Bild fehlend]
Man sieht den Hintergrund in Abschnitte gegliedert, die Automatisch nach Links oder Rechts scrollen.
Mit dem richtigen Hintergrund sehen die Effekte beeindruckend aus und vermitteln einem eine bestimmte Stimmung im Level. Beispiele folgen noch später im Tutorial selbst.

Benötigte Werkzeuge
-Lunar Magic [gibts nicht mehr[/ironie]]
-LevelASM Tool [Download]
-Scrollbars [Thread mit Downloadlink]

Grundlegendes
Ihr müsst folgendes schon Wissen:
Wie man LevelASM Tool bedient.
Optional auch noch HDMA Farbverläufe [Tutorial (Achtung, schwer verständlich und das einzige Tutorial)]

Zunächst einmal startet ihr Scrollbars und klickt auf New. Jetzt öffnet sich ein Fenster, welches bei niedrigen Auflösungen (bis 1024x768) schon zu groß ist. Ich werde es in den Screenshots verkleinern müssen. Jedenfalls sehen wir die überaus Übersichtlichen Einstellungsmöglichkeiten (Achtung: Ironie). Keine Sorge, wir gehen Spalte für Spalte vor.
Spalte 1: #
# ist die Nummer der sogenannten Scanline. Eine Scanline ist beim Super Nintendo 256 breit. Dies gibt also die Pixelreihe an.
Spalte 2: Group
Gibt die Codegruppe an. Ich selbst weiß noch nicht damit was anzufangen.
Spalte 3: Source
Gibt die RAM-Adresse als Quelle an, kann von uns gekonnt ignoriert werden.
Spalte 4: Multiplier
Multiplikator für die anderen Werte (?).
Spalte 5: Scroll Speed
Definiert die Scrollgeschwindigkeit. 0x200 ist Standart, größere Werte sind Schneller.
Spalte 6: Wind
Eigentlich ist das Automatisches Scrollen. Man kann es für bestimmte Scanlines Anschalten bzw. Ausschalten
Spalte 7: Wind Speed
Ist die Geschwindigkeit in Pixeln pro Bild. Man kann von 1/256 Pixeln pro Bild bis zu 64 Pixel pro Bild einstellen.
Spalte 8: Wind Dir.
In welche Richtung gescrollt wird. Gibt nur Links und Rechts.
Spalte 9: Wave
Wellen. Kann man Anschalten und Ausschalten.
Spalte 10: Wavelength
Wellenlänge.
Spalte 11: Wave Amplitude
Maximale mögliche Auslenkung der Welle in Pixeln(?).
Spalte 12: Wave Offset
Wellenversatz. Ich erkläre es später bei den Wellen.
Spalte 13: Wave Speed
Gibt die Geschwindigkeit der Welle an. 1 ist ein Pixel pro Frame, 1/256 ist 1 Pixel pro 256 Frames, 64 ist 64 Pixel pro Frame.
Spalte 14: Wave Dir.
In welche Richtung die Welle laufen soll (Nach oben/unten).
Spalte 15: Wave Type
Gibt den Wellen Typ an. Sinus lässt die Welle wie die Sinusfunktion schwingen, Round lässt die Welle rund schwingen. Um das besser zu verstehen hier 2 Screenshots (links: Sinus;rechts: Round):
[Bild fehlend]


So, das sind jetzt alle Spalten gewesen.

Rechts am Fenster gibt es auch noch Einstellungen, die wir auch nicht vernachlässigen sollten.

Enable Parallax HDMA for this layer
Schaltet das Parallax HDMA für den aktuell Gewählten Layer an.
Enable Vertical Scrolling (takes up more space)
Wenn man möchte, kann man für die komplette Levelhöhe das Parallax Scrolling einstellen, jedoch braucht das ungefähr das 2,25 fache an Speicherplatz.
Enable Vertical Wrap (takes up even more space)
Schaltet vertikalen Loop ein, was die Funktion macht, weiß ich nicht.
Enable Compression (not implemented yet)
Kompression einschalten, bringt aber nichts, da das Tool immer noch nicht fertig ist.

Jetzt kommen wir zu dem Teil, bei dem wir endlich was Handfestes haben werden .

Parallax Scrolling

Wie machen wir einen Hintergrund, der an verschiedenen Stellen unterschiedlich schnell scrollt? Kann man das auch Automatisch scrollen lassen?
Beispielhintergrund für dieses Tutorial:
[Bild fehlend]
Ich habe als Layer 2 Einstellung "H-Scroll:Constant;V-Scroll:None".

Zu Beginn sollten wir bereits im Hauptfenster sein. Wir klicken auf Layer 2, da wir den Hintergrund bearbeiten möchten. Nun machen wir einen Haken bei "Enable Parallax HDMA for this layer" rein und dann bei "Enable Vertical Scrolling (takes up more space)" das Häckchen raus, da wir kein Vertical Scroll im Hintergrund haben (später noch dazu ein Beispiel, keine Sorge ). Zunächst brauchen wir die Scanlinenummern an dem das Paralax Scrolling stattfinden soll. Hier eine Grafik, wie man das im Beispiel herausfindet (ein Bildbearbeitungs-Tool kann hierbei helfen):
[Bild fehlend]
(2fache Vergößerung)
Wie man sieht, hab ich einfach die Pixel nach unten gezählt, bis ein anderer Bereich benötigt wird. Ach ja, dannach muss man die Scanlinezahl in Hex umrechnen, kann man mit dem Rechner. Schreibt euch am besten die Scanlines irgendwo auf, sonst vergisst ihr die sofort wieder. Jetzt klicken wir auf Scroll Speed links im Fenster (unten drunter stehen viele 0x200). Jetzt erscheint folgendes Fenster:
[Bild fehlend]
In das linke obere Kästchen trägt man die Startscanline ein, in das rechts daneben die Zielscanline. Da wir den mittleren Teil nur bearbeiten müssen trage ich in das Linke Kästchen "20" ein und in das Rechte "AE". Jetzt wollen wir die Scrollingrate vom Mittelteil mindestens halb so schnell haben, deswegen tragen wir in die beiden unteren Kästen "100" ein. Somit sind wir fast fertig. Nun klicken wir auf "File->Generate Code..." und speichern die ASM-Datei in den LevelASM-Ordner rein. Nur noch LevelASM ausführen und dann sind wir fertig.
Hier im Beispiel siehts so aus:
[Animation fehlend]
(Der Sternenhintergrund bewegt sich langsamer als die Wolken oben und unten)

Jetzt können wir noch einstellen, dass sich der Hintergrund nach links bewegt, dazu gehen wir wieder in Scrollbars und haben hoffentlich noch die Einstellungen vom letzten mal.


Deutsche Übersetzung für die Hilfedatei von Lunar Magic (Letztes mal angefasst: 10.01.2014 22:04)
Download
Definitv nicht fertig (oder korrekt übersetzt).

W4mp3s SMW-Hacking Kompedium (Letztes mal angefasst: 16.10.2011 22:54)
Lol, ein sehr "ausführliches" Tutorial zu dem ganzen SMW-Hacking-Sachen.
http://w4mp3.bplaced.net/SMW/W4mp3s%20SMW-Hacking%20Kompedium.7z
Tutorials: ExAnimation | YouTube: W4mp3 | Twitter: https://twitter.com/SMWW4mp3
geschrieben am 05.12.2018 19:59:09
( Link )
Wow, da ist mal Mühe reingeflossen! Wenn das nicht auf so viele Themen verteilt wäre, wärst du echt weit gekommen. (Aber ja, solche Riesen-Schreibprojekte sind mehr oder weniger zum Scheitern verurteilt.)

Und aus der Trickkiste hab ich noch was gelernt, also danke!