Beiträge von Chris

geschrieben am 23.11.2010 14:37:29 in Chris' SMB3-styled Hack
( Link )
Hiermit möchte ich nun meinen Hack vorstellen. Es handelt sich, wie der Name schon sagt, um einen SMW-Hack, der ganz dem Spiel SMB3 nachempfunden ist.
Grund ist, dass SMB3 mein absolutes Liebling-Mario-Spiel ist und man dieses selbst noch nicht hacken kann, jedenfalls nicht die Allstars-Version. Neben SMB3 kommen aber gelegentlich auch Elemente aus den Spielen SMB1, SMB2 und Yoshi's Island zum Vorschein.

Um einen vernünftigen SMB3-styled Hack hinzubekommen, muss ich mich natürlich sämtlicher verfügbarer Instrumente bedienen, also:
- ganz viele Custom Sprites, Shooters, Generators
- ganz viele Custom Blocks, viele in mehrfacher Ausführung
- massenweise Patches (z.B. Classic Koopa, Classic Fireball, NoSpin-Jump, Raccoon-Mario, SMB3-Music uvm.)
sowie Level-asm
- Layer 3 (für Wolken, Wasser, zweiter Castle-BG)
- HDMA (Farbverläufe für einige SMB2-Levels, Welleneffekt unter Wasser)
- etliche manuelle Änderungen mit dem Hex-Editor.

Zum aktuellen Fortschritt: es sind jetzt ganz genau 46 Levels fertig, es sollen ungefähr 60 werden. Die Overworld ist zu etwa 70 % fertig.

Es ist geplant, dass demnächst eine Demo fertiggestellt wird. Natürlich habe ich ein paar Screenshots für euch (Teil 1):


eine Submap





Die Federn habe ich inzwischen durch das Blatt ersetzt.




Der Cheep-Cheep kommt kurz nach seinem Ableben wieder zurück (also wie in SMB3). Das gilt auch für Boss-Bass und den Porcu-Puffer-Fish (in anderen Levels).












Layer-3-Wolken, wie sie in vielen Levels vorkommen.




Weitere Bilder folgen bald.
geschrieben am 23.11.2010 17:52:25 in Chris' SMB3-styled Hack
( Link )
Zitat von Mert:
Mit dem P - Meter Patch gab´s doch irgendwo ein Problem, oder? Wenn der noch mit drinnen wäre, wär es nebnsächlich noch ne Coole sache.


Ja, ich weiß. Das Problem aber ist, dass ich in vielen Levels die Sprite-Statusbar verwende, da sich die Layer3-Statusbar mit Layer3-Wolken oder Wasser beißen würde.
Wenn ich den P-Meter-Patch anwenden würde, würden die beiden Statusbars unterschiedlich aussehen, da ich das P-Meter ja nicht in die Sprite-Statusbar einpflegen kann...
Naja, ein paar Kompromisse muss man halt eingehen

Zitat von Skorme:
Aber bei 46/60 Leveln eine Demo?
Dann muss man das ganze Game ja 2x durchspielen? :S


Nein, wenn, dann würde ich nur die erste Welt als Demo veröffentlichen. Mal sehen. Bis zur Fertigstellung wird auf jeden Fall noch etwas Zeit vergehen.
geschrieben am 24.11.2010 20:55:22 in Chris' SMB3-styled Hack
( Link )
Da Videos in der Regel mehr aussagen als Screenshots, habe ich mich entschlossen, mal zwei Videos reinzustellen. Das erste ist nicht ganz fehlerfrei. (Dem Slowdown in der Mitte des Videos habe ich inzwischen versucht entgegenzuwirken.)



geschrieben am 25.11.2010 22:25:00 in Chris' SMB3-styled Hack
( Link )
Danke für die Kommentare.

Zitat von Mert:
Wow! Mich beeindruckt wie du den ganzen SMB3 Level Design Stil beherrscht.


Naja, ich habe früher als Kind SMB3 rauf und runter gespielt, erst die NES-Version, später die SMAS-Version. Schon damals war mir klar, dass ich irgendwann mal eigene Levels davon bauen müsste. Dies ist ja nun auch mehr oder weniger möglich .
Ein wichtiges Vorbild für meinen Hack ist übrigens auch Super Mario Advance 4 (die e-Levels), eine GBA-Version von SMB3 mit vielen zusätzlichen Extras und brilliantem Level-Design.
geschrieben am 03.12.2010 16:13:42 in Chris' SMB3-styled Hack
( Link )
Die meisten Levels sollten für jedermann zu schaffen sein. Es sind auch einige etwas schwere Levels dabei, aber man muss kein Profi sein, um das zu schaffen (bin ja selbst keiner).

Zwei neue Videos aus meiner Wüstenwelt möchte ich vorstellen. Das erste erinnert stark an Level 2-1 aus SMB3:


Im zweiten Video habe ich versucht, einen Sturm, ähnlich wie in SMB Lost Levels einzubauen:
geschrieben am 03.12.2010 16:58:03 in Chris' SMB3-styled Hack
( Link )
Ich hab sie auch gehasst, genau wie Lakitu oder (in SMB1) die Hammer-Brüder. Aber gerade Levels mit diesen Gegnern machten einen besonderen Reiz aus, eben weil sie nicht so einfach zu schaffen waren .
geschrieben am 04.12.2010 12:17:19 in Chris' SMB3-styled Hack
( Link )
Zitat von RPG Hacker:
Hast du eigentlich schon mal in Erwägung gezogen, die Statusleiste auch noch zu bearbeiten und an SMB3 anzupassen? Ich persönlich finde, dass diese hier nicht so ganz zum Stil des Hacks passt.


Das würde ich schon gern machen, aber da gibt's ein Problem:
Zitat von Chris:
... Das Problem aber ist, dass ich in vielen Levels die Sprite-Statusbar verwende, da sich die Layer3-Statusbar mit Layer3-Wolken oder Wasser beißen würde.
Wenn ich den P-Meter-Patch anwenden würde, würden die beiden Statusbars unterschiedlich aussehen, da ich das P-Meter ja nicht in die Sprite-Statusbar einpflegen kann...
Naja, ein paar Kompromisse muss man halt eingehen


Heißt also, ich muss entweder auf eine SMB3-Statusbar verzichten oder auf die Layer-3-Effekte (Unterwasserlevel, Wolken,...). Ich hab mich für Ersteres entschieden.

Zitat von benvvv:
nur dieser sturm passt überhaupt nicht dazu, hätte man genauso gut weglassen können
so ein sturm passt doch viel eher in so ein wald level und nicht in ein wüsten level, auser es soll ein sandsturm darstellen trotz das man bei der animation eindeutig blätter sieht
sieht jedenfalls für mich so aus^^


Gut, "Sandsturm" ist angesichts der Blätter die falsche Bezeichnung. Ist noch jemand der Meinung, dass der Sturm nicht in dieses Level passt?
geschrieben am 04.12.2010 12:23:21 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
So ein Patch ist mir leider nicht bekannt, mich würde aber auch interessieren, wenn es sowas gäbe.

Was die Pflanzen angeht: du kannst die Piranha-Pflanzen aus Romi's Sprite Pack nehmen, die sind für so einen Fall gedacht und funktionieren wunderbar (die kannst du auch nur in diesen Levels mit Layer 3 verwenden).

Für alle anderen Sachen (Extras, die aus ?-Blöcken kommen, oder Mario, der aus einer Röhre kommt...) hab ich leider nur die Lösung, dass du diese Sachen dorthin platzierst, wo gerade kein Layer 2 ist.


Edit: Romis Pflanzen sind leider nur klassische Pflanzen, keine springenden.
geschrieben am 04.12.2010 12:32:56 in Raiders of the stargems(screens)
( Link )
Zitat von majora211:


Mancher Boden scrollt rauf und runter, anderer ist fest.
Offensichtlich, dass ich von NSMBW inspiriert wurde.


Hört sich interessant an und sieht auch gut aus. Ein Video davon wäre schön, damit man die Böden mal in Aktion sieht .
geschrieben am 04.12.2010 12:55:28 in Raiders of the stargems(screens)
( Link )
Ja, mir gefällt's auch sehr gut. Und das alles, ohne auf einen passenden Hintergrund zu verzichten.
geschrieben am 05.12.2010 15:08:29 in Allgemeine Hex- und ASM-Fragen
( Link )
Ich habe mal eine Frage zu dem Sparky/Fuzzball(Groundguided)-Sprite. Wie kann ich hier die Geschwindigkeit ändern? Der Sprite soll schneller seine Runden drehen:
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; SMW Sparky/Fuzzy and Hothead (sprite A5 & A6), by imamelia
;;
;; This is a disassembly of sprites A5 and A6 in SMW, the wall-following Sparky/Fuzzy
;; and the Hothead.
;;
;; Uses first extra bit: YES
;;
;; If the extra bit is clear, the sprite will act like a Sparky/Fuzzy. If the extra bit
;; is set, the sprite will act like a Hothead. Also, if the extra bit is clear and the
;; sprite tileset is 02, the sprite will use the Fuzzy graphics. (If the sprite tileset
;; is anything else, then it will use the Sparky graphics.)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; defines and tables
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

!ExtraBit = $04 ; may be changed to 01 if using GEMS

InitXSpeed:
db $08,$00

InitYSpeed:
db $00,$08

XSpeed:
db $01,$FF,$FF,$01,$FF,$01,$01,$FF

YSpeed:
db $01,$01,$FF,$FF,$01,$01,$FF,$FF

XSpeed2:
db $08,$00,$F8,$00,$F8,$00,$08,$00

YSpeed2:
db $00,$08,$00,$F8,$00,$08,$00,$F8

ObjCheckVals:
db $01,$04,$02,$08,$02,$04,$01,$08

FuzzyTileProp:
db $05,$45

!SparkyTile = $0A
!FuzzyTile = $C8

HotheadXDisp:
db $F8,$08,$F8,$08

HotheadYDisp:
db $F8,$F8,$08,$08

HotheadTiles:
db $0C,$0E,$0E,$0C,$0E,$0C,$0C,$0E

HotheadTileProp:
db $05,$05,$C5,$C5,$45,$45,$85,$85

!HotheadEyeTile1 = $09
!HotheadEyeTile2 = $19

EyesXDisp:
db $07,$07,$01,$01,$01,$01,$07,$07

EyesYDisp:
db $00,$08,$08,$00,$00,$08,$08,$00

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; init routine wrapper
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

print "INIT ",pc
PHB
PHK
PLB
JSR InitSparky
PLB
RTL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; init routine
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

InitSparky:

LDA $E4,x ; sprite X position
LDY #$00 ;
AND #$10 ;
EOR #$10 ;
STA $151C,x ;
BNE StartOutLeft ; move right if the sprite is on an odd X coordinate
INY ;
StartOutLeft: ;
LDA InitXSpeed,y ;
STA $B6,x ; set the sprite's initial X speed
LDA InitYSpeed,y ;
STA $AA,x ; set the sprite's initial Y speed
INC $164A,x ;
LDA $151C,x ;
LSR ;
LSR ;
STA $C2,x ;

LDA $7FAB10,x ;
AND #!ExtraBit ;
STA $1510,x ; save the extra bit
BEQ NoChangeClipping ; if the extra bit is set...
LDA #$27 ; set the sprite clipping
STA $1662,x ; for the Hothead
NoChangeClipping: ;

RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; main routine wrapper
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

print "MAIN ",pc
PHB
PHK
PLB
JSR Main
PLB
RTL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; main routine
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Main:

JSL $018032 ; interact with sprites
JSL $01ACF9 ; get a random number
ORA $9D ;
BNE NoSet1 ; if sprites are locked or the number was not 0...
LDA #$0C ; don't set this timer
STA $1558,x ;
NoSet1: ;

JSR SubGFX

LDA $14C8,x ;
CMP #$08 ; if the sprite is still alive...
BEQ StillAlive ; skip this termination code
STZ $1528,x ;
LDA #$FF ;
STA $1558,x ; reset this timer

Return0: ;
RTS

StillAlive: ;

LDA $9D ; if sprites are locked...
BNE Return0 ; return

JSR SubOffscreenX3 ;

JSL $01A7DC ; interact with the player

; removed sprite number checks (2E, 3C, A5, A6)

LDA $1540,x ;
BNE Skip1 ; branch if the timer is set

LDY $C2,x ;
LDA YSpeed,y ; set the sprite's Y speed
STA $AA,x ;
LDA XSpeed,y ; set the sprite's X speed
STA $B6,x ;

JSL $019138 ; interact with objects

LDA $1588,x ; check the sprite's object status
AND #$0F ; if the sprite is touching an object...
BNE Skip1 ; branch

LDA #$08 ;
STA $1564,x ; disable contact with other sprites
LDA #$1A ; timer = 1A
LDY $1510,x ; if the sprite is a Hothead...
BNE SetTimer1 ;
LSR ; timer = 0D
SetTimer1: ;
STA $1540,x ;

Skip1: ;

LDA #$10 ; check value = 10
LDY $1510,x ; if the extra bit is set...
BNE CheckTimer1 ;
LSR ; check value = 08
CheckTimer1: ;
CMP $1540,x ; if the timer has reached the check value...
BNE NoChangeState ;
INC $C2,x ; change the sprite state
LDA $C2,x ;
CMP #$04 ; if the sprite state has reached 04...
BNE NoResetState ;
STZ $C2,x ; reset it to 00
NoResetState: ;
CMP #$08 ; if it is 08...
BNE NoChangeState ;
LDA #$04 ; set it to 04
STA $C2,x ;

NoChangeState: ;

LDY $C2,x ;
LDA $1588,x ; check the object contact status
AND ObjCheckVals,y ; depending on the sprite state
BEQ Skip2 ; if the sprite isn't touching the specified surface, skip the next part
LDA #$08 ;
STA $1564,x ; disable contact with other sprites for a few frames
DEC $C2,x ; decrement the sprite state
LDA $C2,x ;
BPL CompareState1 ; if the result was positive, branch
LDA #$03 ;
BRA StoreState1 ; set the sprite state to 03

CompareState1: ;

CMP #$03 ;
BNE Skip2 ;
LDA #$07 ;
StoreState1: ;
STA $C2,x ;

Skip2: ;

LDY $C2,x ;
LDA YSpeed2,y ; set the sprite's Y speed
STA $AA,x ;
LDA XSpeed2,y ;
STA $B6,x ;

LDY $1510,x ; if the extra bit is set...
BNE SlowerSpeed ;
ASL $B6,x ; double both speed values
ASL $AA,x ;
SlowerSpeed: ;

JSL $018022 ; update sprite X position without gravity
JSL $01801A ; update sprite Y position without gravity

RTS


Wenn ich oben bei InitXSpeed oder InitYSpeed die Zahlen ändere, passiert überhaupt nichts. Wenn ich darunter bei XSpeed, XSpeed2 usw. Zahlen ändere, dann stimmt der Bewegungsablauf nicht mehr (der Sprite verlässt die Bahn, er bewegt sich nicht mehr gleichmäßig um den Block).
Was muss ich hier machen? Warum passiert beim Ändern der InitXSpeed bzw. InitYSpeed nichts?
geschrieben am 05.12.2010 15:38:03 in Allgemeine Hex- und ASM-Fragen
( Link )
Ich habe alles Mögliche ausprobiert: Zunächst habe ich bei InitXSpeed und InitYSpeed jeweils die 08 auf 18 geändert, es passierte nichts.
Dann habe ich jeweils die 08 auf 05 geändert und die 00 auf 03 (also alles jeweils um 3 Zahlen). Beim nächsten Versuch habe ich bei 08 hohe Zahlen eingetragen (z.B. F8) und die Zahlen dann auch ungleichmäßig geändert (um verschiedene Differenzen also).
Und wie gesagt, wenn ich etwas bei den unteren Speeds ändere, geraten die Sprites aus der Bahn, führen ungleichmäßige Bewegungen durch. Da sind ja komischerweise auch immer 8 Zahlen...

Ich frage mich, was die Init-Speeds zu bedeuten haben, wenn eh nichts passiert.
geschrieben am 05.12.2010 15:52:51 in Allgemeine Hex- und ASM-Fragen
( Link )
Es gibt keine Readme dazu.
geschrieben am 19.12.2010 22:20:54 in Allgemeine SMW Hacking Fragen
( Link )
Es gibt einen Wind Generator auf SMWC: http://www.smwcentral.net/download.php? ... pe=sprites
Der drückt Mario vor oder zurück.
geschrieben am 19.12.2010 22:38:14 in Chris' SMB3-styled Hack
( Link )
Ich habe beschlossen, passend zum Wetter zwei neue Videos aus meiner Eiswelt zu zeigen:




Im Schloss gibt es mehrere Möglichkeiten, um ans Ziel zu kommen (bei 3:13 gibt es eine Abkürzung nach rechts zum Ziel, wenn man den P-Switch aktiviert).

Ich weiß nicht, warum ich immer so schlecht spiele, wenn ich ein Video aufnehme
geschrieben am 19.12.2010 22:48:37 in Das Jahr 2010 der Rückblick
( Link )
Zitat von WYE:
Ich hab dieses Jahr jeden Tag in einer Mini-Chronik aufgeschrieben, was in den Nachrichten Thema war oder wovon der Tageszeitgeist gerade bestimmt wurde. Keine Ahnung, ob ich's veröffentliche.


Hmm, das klingt sehr interessant. In einem Jahr passiert so viel, auch Wichtiges, und vieles davon hat man längst wieder vergessen.

Ansonsten merke ich mal wieder, wie schnell ein Jahr rum ist. Früher, in der Schule, da zog sich ein Jahr (oder besser: Schuljahr) ewig hin. Aber ich finde, je älter man wird, umso schneller vergeht die Zeit.
geschrieben am 19.12.2010 22:52:13 in Vorstellungs-/Verlassens-/Rückkehr-Thread
( Link )
Ich hatte die Hoffnung schon aufgegeben, Seuchensoldat, dass du noch einmal zurückkehrst. Daher, welch freudige Überraschung!
geschrieben am 20.12.2010 18:55:53 in Chris' SMB3-styled Hack
( Link )
Zitat von mzünni:
beim hintergrund bild ist ein bogen größer als die anderen


Von welchem Hintergrundbild sprichst du? Vom Schloss? Das ist in SMB3 aber auch so. Sonst würde das Bild auch von der Breite her nicht passen (im Background Editor von LM).
Und das mit den Pinguinen ist sicherlich Geschmackssache. Ich finde, dass das die einzigen Gegner aus Yoshi's Island sind, die in dieses Spiel passen.

Zitat von Lunarmario:
Ich würde es besser finden, wenn im ersten video die feuer spuckenden Pflanzen das Eis schmelzen.


Grundsätzlich keine schlechte Idee, aber für dieses Level halte ich es für ungünstig. Das könnte man in einem extra dafür angefertigten Level machen. Noch gemeiner wäre es mit Fire Brothers.


Hier sind zwei weitere Videos:


Ich weiß, das Level ist gecovert. Aber Level 5-7 aus SMB3 ist eines meiner Lieblingslevels, deshalb musste ich es einfach tun
Die Animationen des Piledrivers und der Bricks sind hier nicht synchron, ich arbeite daran.

geschrieben am 28.12.2010 21:42:06 in SMB - Bowser and the 8 Eggs
( Link )
Sehr gelungenes Level. Ich bin schon auf die nächsten Levels gespannt. Mach weiter so!
geschrieben am 03.01.2011 0:19:17 in Mini-Chronik 2010
( Link )
Danke für die Chronik. Sehr interessant, das alles zu lesen. Es passiert ja so viel, dass man vieles davon schon wieder vergessen hat.