Language…
3 users online:  Daizo Dee Von, mario90, sheeptitan - Guests: 103 - Bots: 89
Users: 69,216 (2,357 active)
Latest user: aazz

Posts by Romi

Romi's Profile → Posts

smwedit, you wrote another value to register, $210B or something? And then, you changed VRAM for BG2?
So, you rewrote the value to $2108? Thank you for explaning. I could understand easily.
Or, change 2 bytes from 0x101A to "80 79".
Now, you can bring carryable custom sprites to next level through the pipe.
Change one byte at 0x12E18 to "80".
This also fixes the glitch of silver P switch, I think.

EDIT : Pressed switches also won't return to former state.
I renamed this thread, because I also will fix another glitch that Mario can carry 2 sprites at once. There might be people who use this glitch as a trick, so I don't know if this is useful.
Use xkas to insert.

Code
lorom
header

;;;;;;;;;;;;;;;;;;;;;;;;;
org $01AA5E		;normal carryable sprites
;;;;;;;;;;;;;;;;;;;;;;;;;

			JSL CustomCode
			NOP #2
			db $80

;;;;;;;;;;;;;;;;;;;;;;;;;
org $01E6D2		;spring board
;;;;;;;;;;;;;;;;;;;;;;;;;

			JSL CustomCode
			NOP #2
			db $80

;;;;;;;;;;;;;;;;;;;;;;;;;
org $01ED3C		;yoshi
;;;;;;;;;;;;;;;;;;;;;;;;;

			JSL CustomCode
			NOP #2
			db $80

;;;;;;;;;;;;;;;;;;;;;;;;;
org $xxxxxx		;find free space in your rom! "0x1E bytes"
;;;;;;;;;;;;;;;;;;;;;;;;;

			db "STAR"
			dw Return-CustomCode
			dw $0000-Return-CustomCode

CustomCode:		LDA $1470
			ORA $187A
			ORA $1498
			BNE Return
			REP #$20
			PLA
			CLC
			ADC #$0004
			PHA
			SEP #$20
Return:			RTL


I think there is a better way, but I couldn't hit upon it.
@ Bad luck man,
Which mushroom block sprite are you using? mushroom_block_2.asm seems to work correctly.
Would you try to change one byte at 0x2142E to 00?
Try to change one byte at 0x2102E to "80".
I think this fixes that. I don't know if this causes something else, though...
Since AddMusic's main code will rewrite the music number even if the music number was same between two levels, the music will restart. I made a new code to fix this problem. (Use xkas to insert.)
But, if you have a plan to use smkdan's Sample Utility for your current hack, I suppose this code will be meaningless. I haven't tried that tool out, though, if his tool won't reupload same data when the sample-bank-numbers between levels are same, this might work with his tool...

Code
lorom
header

!FreeRAM		= $7EC100	;Check out it that you have used this RAM for something else...


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org $009740
			JSL CustomMusicMain
org $00A1C7
			JSL ClearRAM
org $00A64A
			JSL HackingRoutine
			NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

org $108000		; !!! This must be changed to the SNES address, where the free space is. !!!

CustomMusicMain:	STZ $0DAE
			STZ $0DAF
			LDA $0DDA
			CMP #$20
			BCC Return

IsCustomMusic:		CMP !FreeRAM
			CLC
			BEQ ActualNumber
			STA !FreeRAM
			PHA
			AND #$0C
			ASL A
			ASL A
			ASL A
			ORA #$80
			STA $01
			PLA
			AND #$70
			SEC
			SBC #$20
			LSR A
			LSR A
			LSR A
			LSR A
			ADC #$14
			STA $02
			LDA #$08
			STA $00
			PHK
			PER $0006
			PEA $804C
			JML $80811D

			SEC
ActualNumber:		LDA $0DDA
			AND #$03
			INC A
			ORA #$20
			STA $0DDA
			BCS StoreTo1DFB
			LDA #$00
StoreTo1DFB:		STA $1DFB
Return:			RTL

HackingRoutine:		LDA $0DDA
			STA !FreeRAM
			AND #$7F
			RTL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ClearRAM:		LDA #$FF
			STA !FreeRAM
			JML $848241
@Golden Yoshi

Changing 0x01 byte at 0x73734 to 80 disables the auto-message at 1-1 when Yoshi collected the first flower.
Changing 0x01 byte at 0x1161F to 80 disables the one at 1-2 when Yoshi got the first mid-ring.
Changing 0x01 byte at 0xC488 to 00 and 01 byte at 0xC48B to 80 disables the one comes up when Yoshi first got hurt at intro level or 1-1.

I hope these help you..
@Mokou

Ah, no.. I think I won't make a YI hack.
And to your question, try to change 1 byte at 0x80FA2 to 80.

As you may see, after playing an extra level, the position of Green Yoshi will be shifted.
To correct this, change 1 byte at 0xBAA2E to 2E
This seems not to happen with extra levels in 2, 4, 5 or 6 World, though.
Originally posted by Golden Yoshi
Originally posted by Mokou
Uh huh...And what happens if we edit whats in that level?


Never tried it. Didn't want to screw up anything by moving objects around. ;)


Hm, I edited that level, but it appears that only 2 logs are actually used.
This is meaningless, but we can edit like this by edting a few things. (A problem is, it's still easy to defeat the boss...)
Photobucket

@The Black Yoshi
This is a late responce, though, I made an .asm file which makes Yoshi continue to play the intro level forcibly unless you beat the level. Use xkas to patch.
Code
lorom
header


org $01C155
			JSR DisableEscape
			NOP
org $01E6B3
			JMP DontDisplayBG3
org $01E6C7
			JSR PushButton

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org $01FFD0
DontDisplayBG3:		LDA $021A
			CMP #$0B
			BNE DontClear
			STZ $0967
DontClear:		JML $1083E2

DisableEscape:		CPX #$0B
			BNE .NotIntro
			PLA
			PLA
			JMP $C16B
.NotIntro		LDA #$F0
			STA $4D
			RTS

PushButton:		ORA $38
			LDX $021A
			CPX #$0B
			BNE .NotIntro
			ORA #$80
			STA $37

.NotIntro		RTS
Yes, that .asm file would disable it too.

Well, since I just made the code for his request, I really don't know how he would make an intro level...
But I also think that an intro level shouldn't be as difficult as a player can't even beat, and the one which would let the game have the a little important message for its story like Golden Yoshi did or give a player an advice seems good.
Originally posted by B.B.Link
Hey guy's. I was wondering is there any way to disable the story intro before the tittle screen? I ask this because my story doesn't pertain to the original, so It wouldn't fit correctly in my hack. Thanks in advance.


Code
;Use xkas to patch
lorom
header

org $0FBCCB
			db $00,$00,$00
org $0FBDFB
			NOP
			NOP
			NOP
org $0FBED1
			BEQ $00

Try this code. I hope this works fine.
If you meant the normal vertical level (level mode 0A), change 1 byte [30] at 0x286C1 to [20].

The table for Sprite layer priority starts from 0x286B7. You can modify it for other level mode as well.
If you set the byte to 20, priority-thing works like a horizontal level; if priority disabled, sprites go in front of stuff, otherwise go behind.
So, it's not that sprites always go behind even if you set it to 20.

And yes, it will affect all levels with the "same level mode".
Like andy_k_250 said, there are sprites like you mentioned. I guess these sprites basically don't use RAM $64 (priority-bit for sprites is stored) and load their property contains priority-bit from ROM directly.

to fix your problem :

for Amazin' Flyin' Hammer Brother
change 1 byte at 0x15D1F [37] to [27]

for the Platform
change 8 bytes at 0x15E27 [32 32 72 32 32 32 72 32] to [22 22 62 22 22 22 62 22]

(and for Banzai Bill
change 0x10 bytes at 0x157E4 [33 33 33 33 33 33 33 33 33 33 33 33 33 33 B3 B3] to [23 23 23 23 23 23 23 23 23 23 23 23 23 23 A3 A3])
Did you try enabling "Dies when jumped on" bit of Paragoomba too?
(restricted)