Language…
8 users online: Dark Mario Bros, Firstnamebutt, Golden Yoshi, Isikoro, krizeth, monkey03297, qantuum,  Ringo - Guests: 243 - Bots: 289
Users: 64,795 (2,376 active)
Latest user: mathew

retry system = weird sprite behavior

im having some trouble after ive installed the Retry System patch.
what ive tought to be some localized problems, seems to be happening everywhere.
Im making a 1-screen kind of hack so the problem could be happening only on the screen mario is spawning.

anyway, 2 main problems ive had are

- some sprites go to a different direction than it was going before applying the path. (ive managed to fix some of them spawning mario at a different location, but some of them i cant make it turn around no matter what)

- para-bombs seems to be spawning a bit to the left (?) so it will clip to walls where it wouldnt before patching. (note this happens only after the 1st death. I dont know if its really spawning a bit to the left or something happens with its hitbox)


anyone had a problem with sprites after patching with the Retry System? how do you managed to fix it?


The thing about sprites going in a different direction after resetting is due to a bug in the original game. You can fix it with this patch.

I'm not sure about the other problem, but it might be related to the Para-Bomb's initial direction, so if it is, the above patch should at least make it consistent.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
ive tried that patch. unfortunately it changes nothing #tb{:(}
i coudnt solve the problem, but ive found a easy workaround for some levels. if anyone has the same problem heres what i did:


for most of the sprites ive used a custom block to make it go from right to left
Code


db $37

JMP MarioBelow : JMP MarioAbove : JMP MarioSide
JMP SpriteV : JMP SpriteH
JMP Cape : JMP Fireball
JMP MarioCorner : JMP MarioBody : JMP MarioHead
JMP WallFeet : JMP WallBody

MarioBelow:
MarioAbove:
MarioSide:
SpriteV:
RTL

SpriteH:
	LDA $157C,x				; \ 
	CMP #$00				; |
	BNE Label_0000				; /
	LDA #$01				; \ 
	STA $157C,x				; /
Label_0000:					; > --------


Cape:
Fireball:
MarioCorner:
MarioBody:
MarioHead:
WallFeet:
WallBody:
RTL



print ""


for super-koopas and flying koopas this block doesnt work.. i think its because they dont interact with blocks..
for the super-koopas i could spawn mario on other place so the super-koopas go to the direction i wanted and use some sort of teleport block to put him where i wanted..
for example:
Code
MarioAbove:
	REP #$20				; \
	LDA $94					; |
	CLC					; | Change the player's x position by -65.
	ADC #$FFBF				; |
	STA $94					; |
	SEP #$20				; /
	PHY					; \
	LDA #$02				; | Erase the current block.
	STA $9C					; |
	JSL $00BEB0				; |
	PLY					; /

for the flying koopas ive used a goomba so the koopas collide with it and change direction. not the best sollution though


for the para-bombs and para-goombas ive created a simple block that would act like the light switch.. its solid for mario, but passable the para-bombs/goombas


im still not sure what to do with the surface jumping fish
*** ive used the teleport block for mario.. same as the super koopas
I've had the same issues of sprites changing direction with the retry system, some people told me last version fixed it. So I guess it didn't?
Super Mario Pants World
Luigi's Lost Levels
New Super Mario Pants World
Luigi's Lost Levels 2 - Back With A Revenge
Luigi's Lost Levels 3 - Electrik Boogaloo
VLDC12 - 72HoKaizo#1
Originally posted by Romano338
I've had the same issues of sprites changing direction with the retry system, some people told me last version fixed it. So I guess it didn't?

i guess not
ive used the 2,04 version (still waiting moderation)
I suppose the sprites should face left or something, but they don't sometimes act properly when you are respawned after dying, right? I made sprites face towards where mario is if you choose 'retry', because I thought they worked like that in vanilla when you enter a level from the map, which I was trying to imitate. However I recently noticed that I was wrong. Contrary to my assumption, vanilla smw actually doesn't initialize sprites' direction depending on mario's 'current' position.
Fixing it is in my current todo list, and hopefully it'll resolve your problem. I'd like to ask whether you think it's the case. If not, I'll do some more stuffs.
so.. most sprites are not going to mario direction, but to the opposite. (they should be facing left, but are facing right)
it seem like mario isnt "detected" by some sprites, like if his "detection radius" was smaller. If i place mario a few tiles closer to the sprite, they spawn to the correct direction.

now looking at the Retry_table file im using
Code
!sprite_initial_face_fix = $00

i havent tested the other option so i will give it a try

im using !default_prompt_type = $02 so i dont know if this happens only after choosing retry. For me it happens every time. Except the issue im having with the para-goombas/bombs, sometimes the first time they spawn its correct but after you die they start clipping the wall.. sometimes they clip every time
That would be interesting to know indeed, although the explanations of each options are:
$00 = fix only when resetting a level(vanilla)
$01 = always fix

If sprite spawns to the right after retry and it's "a fix" then I guess if you always fix it ($01), it will always be that way (well, pretty much what worldpeace explained earlier).
Super Mario Pants World
Luigi's Lost Levels
New Super Mario Pants World
Luigi's Lost Levels 2 - Back With A Revenge
Luigi's Lost Levels 3 - Electrik Boogaloo
VLDC12 - 72HoKaizo#1
ive tried changing the settings..
changing !sprite_initial_face_fix doesnt do anything with the multi midway set to $02

this is probably obvious but ill add it here:
if multi midway is set to $00 (!sprite_initial_face_fix = $00)
if i access the level from the overworld, the 1st time it spawns correctly, after it will spawn with the wrong direction.
if i access the level from another level it always spawn correctly
I dont want to create another thread asking about the Retry System, so im asking it here.

Is there a way to make it work on level 0?
ive tried everything i could do but it doesnt work.. all levels work with the exception of level 0.. is there anything i can do about it?



EDIT: ive changed the retry.asm (i know i shouldnt be changing it.. but..)

Code
GetPromptType:
	LDX $13BF|!addr
	BNE +
	LDA #$04
	RTS
+
	LDA.l Table_effect,x
	CMP #$01
	BCS .not_default
	LDA.b #(!default_prompt_type+1)
.not_default
	RTS

from
Code
LDA #$04

to
Code
LDA #$03


i dont even know what im doing.. BUT it worked!!