Language…
13 users online:  AmperSam,  Burning Loaf, CircleFriendo, deported,  Donut, GRAVITORBOX, Hayashi Neru, MarsAmpere, MasterMario97, Rudi_Schrausch, SuperMarioDs64, VinylHeart, Zavok - Guests: 78 - Bots: 152
Users: 56,305 (2,234 active)
Latest user: wolf13000

Official Hex/ASM/Etc. Help Thread

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 417
  • 418
  • 419
There hasn't been a post here in several days it seems, but I'm sure if I'm patient I may just get an answer.

I've got the disassembly of the Swinging Wooden Platform by Imamelia. I am trying to change it's palette via the cfg_editor. Despite changing the palette from 8 to anything else, it does not work in game. Trying to change the original sprite using Tweaker has no effect as well. What else can I do?

Also, I have the disassembly of Charging Chuck and I want to make his sprint faster. Does anyone have a clue how I'd do this? Can't say I'm savvy with the code. hehe
Hacks:
- 3+World (Cancelled - Download Available)
- Super Mario World Beta (2009)
Originally posted by Yoshi Master
I've got the disassembly of the Swinging Wooden Platform by Imamelia. I am trying to change it's palette via the cfg_editor. Despite changing the palette from 8 to anything else, it does not work in game. Trying to change the original sprite using Tweaker has no effect as well. What else can I do?

There seem to be a couple of LDA #$31 lines in that file, and I assume that 31 is the properties byte. See the wiki page if you need help figuring out what to change it to.

Originally posted by Yoshi Master
Also, I have the disassembly of Charging Chuck and I want to make his sprint faster. Does anyone have a clue how I'd do this? Can't say I'm savvy with the code. hehe

Look for the labels called DATA_02C580 and DATA_02C69F; that ought to be where the speed values are.


 
I'm looking for the ROM/RAM hex address of the subroutine that makes yoshi hatch out of a question mark block after mario hits it from below.

The description of the ROM hex address $01:EC04 says this:

"The routine that makes Yoshi hatch.
$01EC2F (0EE2F) - Change "3A" (DEC A) to "EA" (NOP) to make Yoshi's "Thank you for saving me" message appear even if you're on the main overworld and/or submap.
$01EC3C (0EE3C) is Yoshi's thank you message"

So does that mean it's also the address that makes yoshi hatch out of a question mark block, or what?
Originally posted by MonkeyMan
I'm looking for the ROM/RAM hex address of the subroutine that makes yoshi hatch out of a question mark block after mario hits it from below.

The description of the ROM hex address $01:EC04 says this:

"The routine that makes Yoshi hatch.
$01EC2F (0EE2F) - Change "3A" (DEC A) to "EA" (NOP) to make Yoshi's "Thank you for saving me" message appear even if you're on the main overworld and/or submap.
$01EC3C (0EE3C) is Yoshi's thank you message"

So does that mean it's also the address that makes yoshi hatch out of a question mark block, or what?


Yes, those 72 bytes also handle the hatching itself.
I am trying to use the explosive sensitive block patch - for some odd reason, it can't be assembled, because

JMP $00C0FB

is an unknown command -> Maybe I'm missing something (since I should be sleeping) but why is JMP invalid

(Patch: http://www.smwcentral.net/?p=section&a=details&id=4521 )
because JML should be used for long addresses, not JMP

so change it to JML
Edit: Check here! I made a new thread for my problem, because nobody helped me#w{>=(}.
Originally posted by MarioFanGamer659
End: ; <- End of RATS Tag and number of bytes to protect.
RTL ; Return

The End: label should be the very last thing, otherwise that RTL will be unprotected, which isn't really good.

Quote
org $008E51
autoclean JSL Fixing

org $008E51
NOP : NOP

I'd recommend setting that back to $008E57. Executing half an opcode will just explode.
<blm> zsnes users are the flatearthers of emulation
Originally posted by Alcaro
Originally posted by MarioFanGamer659
End: ; <- End of RATS Tag and number of bytes to protect.
RTL ; Return

The End: label should be the very last thing, otherwise that RTL will be unprotected, which isn't really good.

*facepalm* I made an edit in the xkas code.

Originally posted by Alcaro
Quote
org $008E51
autoclean JSL Fixing

org $008E51
NOP : NOP

I'd recommend setting that back to $008E57. Executing half an opcode will just explode.

Fixed.

But what is about Code itself? That's still the main problem.

Edit: I never changed "$008E57" to "$008E51" in the second patch. The first patch is for xkas and the second patch is for asar.
Originally posted by Ladida
because JML should be used for long addresses, not JMP

so change it to JML


Changing it to JML freezes/crashes the game if the code is executed (aka using bob omb explosion)

Somethings fishy with this patch. I mean why is there JMP anyways? Did the Mods tested it or not? I mean it can't be assembled correctly thanks to the JMP.
Is it possible to hex edit the game so the growing/shrinking pose is at a 'normal' height, rather than moving down?

Also, does anyone happen to have a list of all sound effects in the game along with their hex numbers and sound banks?

EDIT: One last question; is there any way to make it so regular jumps have the reaction of spin jumps when landing on spiked enemies or turn blocks, but still look and sound like regular jumps?
I would like to know if it's possible to have doors make no sound upon entering them. If anyone can show me this or give me a code that does this, I'd highly appreciate it.
Originally posted by Precious Hippocrates
I would like to know if it's possible to have doors make no sound upon entering them. If anyone can show me this or give me a code that does this, I'd highly appreciate it.

Hex editing 06E11 to 00 should work.
How can I scroll Layer 1 and Layer 2? (Rember it's in a ASM Thread so I don't mean to use a vanilla scroll sprite in LM so don't say, that I'm in a wrong forum because I know how to use a scroll sprite#w{:s})
This should do if I'm not mistaken:

$7E:001A 2 bytes Hardware mirror Layer 1 X position. Mirror of SNES register $210D.
$7E:001C 2 bytes Hardware mirror Layer 1 Y position. Mirror of SNES register $210E.
$7E:001E 2 bytes Hardware mirror Layer 2 X position. Mirror of SNES register $210F.
$7E:0020 2 bytes Hardware mirror Layer 2 Y position. Mirror of SNES register $2110.
$7E:0022 2 bytes Hardware mirror Layer 3 X position. Mirror of SNES register $2111.
$7E:0024 2 bytes Hardware mirror Layer 3 Y position. Mirror of SNES register $2112.

So I have a question of my own.
When coding sprites, you can make the sprite out of 16x16 or 8x8 tiles no?

anyway, before calling the drawing routine $01B7B3, you have to store certain values in A and Y no?

Code
	LDY #$02		; Y ends with the tile size .. 02 means it's 16x16
	LDA #$03		; A -> number of tiles drawn - 1.
				; I drew 4 tiles, so 4-1 = 1. A = 03.

	JSL $01B7B3		; Call the routine that draws the sprite.
	RTS


My question is, what do I have to store in Y, to draw 8x8 tiles?
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
Originally posted by JackTheSpades
When coding sprites, you can make the sprite out of 16x16 or 8x8 tiles no?

anyway, before calling the drawing routine $01B7B3, you have to store certain values in A and Y no?

Code
	LDY #$02		; Y ends with the tile size .. 02 means it's 16x16
	LDA #$03		; A -> number of tiles drawn - 1.
				; I drew 4 tiles, so 4-1 = 1. A = 03.

	JSL $01B7B3		; Call the routine that draws the sprite.
	RTS


My question is, what do I have to store in Y, to draw 8x8 tiles?


Originally posted by Nesquik Bunny
- Load Y with the tile size - for a 16x16 tile, we load with 02. For an 8x8 tile, we load it with 00.
why thank you :3
Anime statistic on MyAnimeList:
400 animes completed ✓
6000 episodes completed ✓
100 Days completed ✓
... what even am I doing with my life?
It's also worth nothing that you can use both 8x8 and 16x16 tiles in the same sprite by loading Y with #$FF instead. If you do that, however, you must set the tile size manually with the table at $0460 (actually $0420), which is indexed by the OAM index divided by 4. For instance, after drawing each tile, you might do this:

Code
PHY
TYA
LSR
LSR
TAY
LDA [insert tile size here; use a table if necessary]
STA $0460,y
PLY


Or, if you're not using a loop to draw the tiles, you might store to $0460,y, then $0461,y, then $0462,y, etc.

----------------

I'm working on a hack! Check it out here.
Originally posted by imamelia
It's also worth nothing that you can use both 8x8 and 16x16 tiles in the same sprite by loading Y with #$FF instead. If you do that, however, you must set the tile size manually with the table at $0460 (actually $0420), which is indexed by the OAM index divided by 4. For instance, after drawing each tile, you might do this:
Code
PHY
TYA
LSR
LSR
TAY
LDA [insert tile size here; use a table if necessary]
STA $0460,y
PLY


Or, if you're not using a loop to draw the tiles, you might store to $0460,y, then $0461,y, then $0462,y, etc.


Wait, how now?
Do you mean it like this?

Code
LDY #$FF
PHY
TYA
LSR
LSR
TAY
LDA [insert tile size here; use a table if necessary]
	;#$00 for 8x8
	;#$02 for 16x16
STA $0460,y
PLY
JSL $01B7B3		; Call the routine that draws the sprite.


I also have another qauestion...
How do I check if mario is within a certain area of the sprite?
Assuming I want the sprite to react appon mario beeing less than 10 Blocks away from the sprite
Would something like this work?
Or is there a more simple way to do it?
Code
	LDA $14E0,x
	XBA
	LDA $E4,x
	REP #$20
	CLC
	ADC #$10 ;The radius
	CMP $94
	BCC Within_1
	BRA Not_Within
Within_1:
	SEC
	SBC #$20 ;The radius times 2
	CMP $94
	BCS Within
	BRA Not_Within
Within:

	;Code for what to do if Mario is within a 10 block radius of the sprite

Not_Within:
	RTS


Mod edit: Fixed table stretch.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 417
  • 418
  • 419