Language…
15 users online:  Ahrion, Alex No, austinlmcc, Diego1988, Green, Gurjinter, Heitor Porfirio, kimerafusion, kurtistrydiz,  MarioFanGamer,  Nanako,  NopeContest, SMW Magic, TheXander, XolifreX - Guests: 88 - Bots: 188
Users: 62,805 (2,614 active)
Latest user: Shibby89

Posts by TheBiob

TheBiob's Profile → Posts

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 72
  • 73
Originally posted by Undertaker
Huh, I wonder if this can be exploited somehow. I don't really see how it could.


Originally posted by SMW Glitch List
Mario will "stick" to any platform sprites while running up walls via a purple triangle, slowing him down to the speed of the platform until it passes by. One notable use of this is that it even applies to the animation at the end of a wall where Mario reorients himself, but his horizontal speed will remain unaffected, which can cause him to clip into the tiles in the next column over. It should be noted that this works with the solid platform sprites as well, but only if Mario enters at a position where he doesn't get warped out of it


That way ^
Originally posted by Master Valads
But first we need to talk about parallel universes berries

Wait... That glitch wasn't known before?!?!? I found out about this Glitch when a German Youtuber played a Glitch puzzle Hack over two Years ago where he accidentally did this Glitch though I didn't know what it caused until about one Year ago where I played around with this glitch and used it to break this exact Level from the Glitch Puzzle hack (Video) Also I actually used the fact that the green tile gets placed on the next screen in my own Glitch Puzzle Level. I was pretty sure I've seen it on this list too but guess not because now I can't find it here.
Afaik the patch doesn't fix the issue with the hardcoded y position of the Birds.

Originally posted by Final Theory
I tried using the dissassembly of them and insert them as a custom sprite, but the same things apparently happens

If you just took the disassembly without adjusting the y position it won't work just edit this code in the disassmebly:
CODE_02F353: CMP.b #$E8 ; <- Set this number to the y position you want the bird to be one (Haven't tested it but should work)
Originally posted by mte_95
If Yoshi has his tongue on the sprite while hit by the fireball, the piranha plant will move out of place and will not exit down the pipe and will be on top of the object.
That can happen in pretty much every hack and i don't think there is a patch for that yet (Maybe never will be idk how hard it would be to fix this but feel free to correct me)

Originally posted by mte_95
First one let Yoshi carry item through pipe without swallowing

I don't think there is a patch for that either again correct me if I'm wrong

@starslayer How do you link the exit tiles? Are you sure both have a Tile Exit index?
Originally posted by SMW_Hacker17
I've changed the sprite number for the p-switch

Wait that is possible? Why would one do that?

Anyway, if you just want to carry the p-switch to another Level you need to use a pipe. Doors/teleport blocks will not stick the item to the player and it will not be transfered to another level (at least no teleport block I know sticks the item to the player)

If you want to carry the p-switch to another Level via the ender chest block you'd need to find a way to fix the glitch with the changing color otherwise the p-switch might change color if you take it out of this block
For the block: You need to make a Custom block which spawns a custom sprite. For that just use the routine from Gopher Popcorn Stew assuming you have some knowledge about ASM
For the sprite: If you just want the normal directional coin with used blocks instead of coins then change this part in the disassembly:
Code
[...]
LDA PLUE_POW_TIMER; 
BEQ BLUE_POW_SET ; <- That was a BNE before (just to toggle the graphic the sprite uses)
[...]
LDA #$0D   ; <- That number was 06 (Coin) before
STA $9C    
JSL $00BEB0            ;generate tile
[...]

If you also want the coinsnake to move automatically like in C|C - Gnarly I have no idea sorry
Oh sorry I misunderstood that.
Try to comment this line out and see if it works
Code
	LDA $98 			;Sprite creation: Y position (low)
	; DEC #$10 ; <- That line right there (Why is this line even there)
	STA $D8,x 			;Sprite Ypos Low Byte 
Why don't you just make this when you get stuck not before saying that you might get stuck.

Anyway, do you want these sprites to have graphics or do you just want the sparkle effect with no graphics?
Code
;; Uses first extra bit: YES
;; If the extra bit is clear, the sprite will not be affected by gravity 
;; If the extra bit is set, the sprite will be affected by gravity                             
	EXTRA_BITS = $7FAB10
	TIMER	= $07	; Must be a power of two minus one. If the value is higher the sprite will spawn things less frequently
	
; sprite init JSL

	dcb "INIT"
	RTL
	
; sprite code JSL

		dcb "MAIN" 
		PHB                     ; \ 
		PHK                     ;  | main sprite function, just calls local subroutine
		PLB                     ;  |
		JSR SPRITE_CODE_START   ;  |
		PLB                     ;  |
		RTL                     ; /

; sprite main code 

SPRITE_CODE_START   
		LDA EXTRA_BITS,x; \  make the sprite fall down if extra bit is set
		AND #$04        ;  |
		BEQ NoFallDown	; /
				
		JSR $01802A	; Update sprite position with gravity
				
NoFallDown
		LDA $13      	; \ if the frame is set...
		AND #TIMER	 	; /
		ORA $9D  		; or locked...
		JSR SET_SPARKLE_POS
RETURN              RTS     ; return

; set sparkle position routine

SET_SPARKLE_POS     ORA $186C,x             ; or the vertical sprite off screen flag is set...
		    ORA $9D                 ; or locked...
		    BNE RETURN2             ; return
		    JSL $01ACF9             ; \ set random routine
		    AND #$0F                ; /
		    CLC                     ;
		    LDY #$00                ; \ set x location (low and high byte)
		    ADC #$FC                ;  |
		    BPL SKIP                ;  |
		    DEY                     ;  |
SKIP		CLC                     ;  |
		    ADC $E4,x               ;  |
		    STA $02                 ;  |
		    TYA                     ;  |
		    ADC $14E0,x             ; /
		    PHA                     ; 
		    LDA $02                 ; \ set position in the screen
		    CMP $1A                 ;  |
		    PLA                     ;  |
		    SBC $1B                 ; /
		    BNE RETURN2             ; 
		    LDA $148E               ; \ set y location (low byte) 
		    AND #$0F                ;  |
		    CLC                     ;  |
		    ADC #$FE                ;  |
		    ADC $D8,x               ;  |
		    STA $00                 ; /
		    LDA $14D4,x             ; \ set y location (high byte)
		    ADC #$00                ;  |
		    STA $01                 ; /
            JSR DISPLAY_SPARKLE     ; display sparkle routine
RETURN2		    RTS                     ; return

;; display sparkle routine

DISPLAY_SPARKLE     LDY #$0B                ; \ find a free slot to display effect
FINDFREE            LDA $17F0,y             ;  |
                    BEQ FOUNDONE            ;  |
                    DEY                     ;  |
                    BPL FINDFREE            ;  |
                    RTS                     ; / return if no slots open

FOUNDONE            LDA #$05                ; \ set effect graphic to sparkle graphic
                    STA $17F0,y             ; /
                    LDA #$00                ; \ set time to show sparkle
                    STA $1820,y             ; /
                    LDA $00                 ; \ sparkle y position
                    STA $17FC,y             ; /
                    LDA $02                 ; \ sparkle x position
                    STA $1808,y             ; /
                    LDA #$17                ; \ load generator x position and store it for later
                    STA $1850,y             ; /
                    RTS                     ; return


Like that? I just removed the graphic part of this 7-up moon and made the sprite use gravity if the extra bit is set
It might be possible to do it with a Hex edit but I have no idea where to edit
However you can use the disassembly and change the XSpeed and YSpeed table which is probably easier than figuring out where to hex edit (Unless the address is documented somewhere and I didn't find it in that case nevermind)
Are you sure you set "!flip_gravity" to the value given to you by the patch

Originally posted by Readme
Once this patch is inserted, asar should output "flip_gravity is located at: $location". In order to flip gravity in your code, use JSL $location; modify the !flip_gravity defines in the included ASM.

I used this patch with BTSD too and it worked fine
Originally posted by Undertaker
I didn't apply the patch.

That happens to me too often lol

Also can you post your sprite code somewhere?
For your first problem:
The formula is (2^n)-1 but the numbers that your program gives you are decimal (Base-10) not hexadecimal (Base-16) so you need to convert the decimal number (31) into a hex number (1F) which is what the original goalsphere uses if I'm not mistaken when your number isn't from this formula this wave thing happens

For your second problem:
Add the underlined check to the code (This code assumes that you never enabled vertical scrolling as it won't display the effect above this point)
Code
[...]
NoFallDown
LDA $14D4,x
BNE DontCheck
LDA $D8,x
CMP #$B0
BCC RETURN
DontCheck
LDA $13		; \ if the frame is set...
AND #TIMER	; /
[...]


For the second part of your second problem:
Is it possible that the goal block you used acts like 130 (Or anything else solid) if so the sparkle sprite gets placed on top of the goalsphere and not inside since it gets pushed out if not i have no idea what causes it
Again can you post your code somewhere? ^^
You need to set SP4 to 02 for the correct bomb graphics.
You can see which graphic file a sprite needs when you go to Lunar Magic and select the sprite in the "Add Sprites Window". On the top left is a note that shows you which graphic files need to be loaded for the sprite to look right (Unless your ExGFX file has these graphics too then you can use that instead)
I don't think I'll submit this to the sprite section especially because I haven't tested this sprite in every situation and the check doesn't work if you have vertical scrolling enabled because as I said it only checks if it is above a certain point

Anyways, for your code problem: You probably shouldn't return when mario doesn't touch the sprite otherwise it won't display the effect either (Unless you put it after the effect part then the problem would be that the check only happens when a new effect thing happens too)

I'd probably put it there:
Code
[...]
NoFallDown
;---------------------------------------------------------------;
JSL $01A7DC	; check for Mario/sprite contact (carry set = contact)
BCC NoCont	; return if no contact		
STZ $14C8,x	; disappear the sprite
NoCont
;---------------------------------------------------------------;
LDA $14D4,x
[...]


Also for this code to work you need to enable "don't use default interaction with mario" and "process interaction with mario every frame" in the cfg editor

Code
01
36
00 00 3B A2 29 40
00 00
[name here].asm
0
Code
header
lorom

org $05CC42	;\ Remove numbers
NOP #31		;/

org $05CD79		;\ 
db $80			; | Disable Bonus Counter in Scorecard
org $05CDD8		; | as well as disable Drumroll and Timer/Score tallying
db $80			;/

org $05CC1A 					;\ Remove Mario tiles
db $FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC,$FC	;/

Does this help you?
The problem is that you defined the label "InitGradient1" twice in your code. Now, I don't have the code but the best way to fix this would probably be to rename one of the "InitGradient1"s to "InitGradient2" assuming you don't have that label yet.
If both label have the same code you can probably just remove one of them completely

Edit: You just linked the code...
As far as i can see you don't even use those two labels anywhere so you can just remove them (Or put a ; infront of those two lines)
I don't see where you use this "InitGradient1" label you never jump to it and even if you did you could've used the "levelinit12" label (or "levelinit15" label for the other one) instead since there is no code in between those two labels (Unless i'm missing something obvious again)
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 72
  • 73