Language…
17 users online: anonimzwx, Aurel509, buggy789, codfish1002, cohimbra, Dennsen86,  Doctor No, Fozymandias, Gamet2004, Green, Green Jerry, jirok1, Metal-Yoshi94, Raychu2021, sinseiga, Sokobansolver, twicepipes - Guests: 267 - Bots: 322
Users: 64,795 (2,375 active)
Latest user: mathew

Official Hex/ASM/Etc. Help Thread

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 418
  • 419
  • 420

There's a question that are bugging me recently: How can I make the donut block work with a different sprite number (not 85)? I guess I renember something telling me there's a byte to change in the .bin block. Can someone tell me how to do it? Thanks in advance.

EDIT: Woo, post 2000 in this thread.

Hmm, I'm sorry I can't help you. Byte 0x15 of the mushroom block controls which sprite it spawns, but I don't know whcich byte it is in the donut block; there are a lot of 85s in there.

I have a question of my own, though:

Are DMA/HDMA channels 5, 6, and 7 safe to use, and when are the others safe?

Looking through all.log, I noticed only one instance where a value was stored to $420B that set DMA channels 3 and 4, and none for channels 5, 6, and 7...but there was one place where the value was an address, not a specific value ($00 to boot), and I don't know what the value of $00 was at that time, so I don't know which channels were activated. For HDMA, everything that affects $420C seems to be STZ or loading $0D9F, and again, that is an address rather than a specific value, so I don't know which bits were set and which ones weren't.

I'd appreciate an answer to this question, and I'm sure Shinnok/The Giant Comet Nova would like an answer as well.


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

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by imamelia
Are DMA/HDMA channels 5, 6, and 7 safe to use, and when are the others safe?

Channel 7 is used for HDMA. I don't know about the other ones.
*Goes to disassemble the donut block to check which 85 does what*
Edit: Looks like it's offset 349=0x15D. I'm too lazy to disassemble the rest of the block, though (not that you'd need it).
<blm> zsnes users are the flatearthers of emulation
Originally posted by yoshicookiezeus
@RealLink: I think that changing the
Code
LDA $157C,x ; \ $02 = direction 

part just at the start of the routine into

Code
LDA $14 ;load timer
;insert some LSRs here for slower flipping
;each one halves the frequency
AND #$01 ;timer modulus 1

and uncommenting (removing the semicolon before) the

Code
BNE NO_FLIP

a bit above the NO_FLIP label should have the effect you want.

Thanks! I had to keep the semicolon before the BNE NO_FLIP, though.

Thanks Alcaro. It worked like a charm.

Originally posted by imamelia

Are DMA/HDMA channels 5, 6, and 7 safe to use, and when are the others safe?

I was doing some SMWDISC and I saw that the data bank(assumed bank number) for these 3 channels is forced to be 00. However, this is just for indirect addressing, which I doubt you'll be doing. So I believe they are safe to use, yes.
How would I go about changing a custom block's graphic in-game?

I want a block to show different 8x8 tiles and a different palette based on some arbitrary ram address's value.

Is such a thing only possible with exanimation and pows/on-off switches?
Heres the code:
xkas patch:
Code
header 
lorom 



org $008F49 
JSL status_test 
org $0A8200 ;POINT TO FREESPACE 
status_test: 
LDA $8455 
BEQ Return 
LDA $8455
CMP #$03
BEQ Complete
LDA $8455
STA $7E0F0E 
BRA Return 

Complete: 
LDA #$28 
STA $7E0F0E 
LDA #$01
STA $8457

Return: 
LDA $0DBE 
INC 
LDX #$10 
LDY #$00 
RTL 


Block:
Code
JMP MarioAbove : JMP MarioAbove : 
JMP MarioAbove : JMP MarioAbove : 
JMP MarioAbove : JMP MarioAbove : 
JMP MarioAbove

MarioAbove:
	INC $8455
        LDA #$03
        STA $19
        RTL


As you might see, address $8455 counts up to 3 because of the block (and puts it in the status bar) and when it's at 3 it changes $8457 to 1. Red is for testing, so I know the code is executing, but the status bar always stays at 1. Help?
*WARNING: due to cosmic radiation, Quantum fluctuations, or earth going into sector x79352C, the world may end at any moment. Have a nice day.

Current Project:



Status:Complete

Previous project status: Failed/Quit

Current Issue

C++ : fsteam help



I'm trying to make this block that activates the level exit, but uses custom music, instead of the original goal end music. I know that 1DFB is the music register. I checked in the RAM addresses to find whats the pointer for custom music, but I didn't see anything. Do anyone else know the pointer, or know how to change this to the custom music pointer?

BTW, I'm (stuck) using the AddmusicMadeEasy program.

Here's the code if it helps;

Code

 LDA #$0C               
 STA $1DFB               


Originally posted by B.B.Link
I'm trying to make this block that activates the level exit, but uses custom music, instead of the original goal end music. I know that 1DFB is the music register. I checked in the RAM addresses to find whats the pointer for custom music, but I didn't see anything. Do anyone else know the pointer, or know how to change this to the custom music pointer?


Is there any particular reason you can't or won't use Romi's AddMusic? You can have custom level ending music in that. It's a very easy program to use and it strips out old AddMusic insertions.

From what I understand, it is very hard (or near impossible) to load custom "special" music (i.e. goal, death, etc.) mid-level when regular music is being used.

PS - Did that info I gave on the item box fixes work for you?

[?] Miscellaneous Helpful Hints
If I moderated your hack, there was apparently a 90 percent chance it was rejected.
Originally posted by andy_k_250
Is there any particular reason you can't or won't use Romi's AddMusic? You can have custom level ending music in that. It's a very easy program to use and it strips out old AddMusic insertions.

Well, last time I tried it, it crashed my rom. Seems like it doesn't work after using AddmusicMadeEasy. I'm also tired of jumping from addmusic program to addmusic program. One of them forced me to jump to another ROM.

Originally posted by andy_k_250
PS - Did that info I gave on the item box fixes work for you?


yes, thanks

Originally posted by Pseudonym
As you might see, address $8455 counts up to 3 because of the block (and puts it in the status bar) and when it's at 3 it changes $8457 to 1. Red is for testing, so I know the code is executing, but the status bar always stays at 1. Help?


The problem is $8455 must always be 1. Here's why:
Code
CODE_008454:        8D 01 43      STA.W $4301               ; Dest. address = $2104 (data write to OAM) ; B Address


Your hack loads the $8455 above (a ROM address) and your block is trying to increment a ROM address too. To fix it try changing your $8455 to $7F8455. (Also change the $8457 to $7F8457) Those RAM addresses are free and are probably the ones you intended to use.
whoah, I was trying to edit a Rom address? I am such an idiot! Well, thanks for that info.
*WARNING: due to cosmic radiation, Quantum fluctuations, or earth going into sector x79352C, the world may end at any moment. Have a nice day.

Current Project:



Status:Complete

Previous project status: Failed/Quit

Current Issue

C++ : fsteam help



Do anyone have the idea of how to start making a Status Bar like in Megaman?



I have to say that I know a little of ASM, but I have a lot of time and Im learning. I know all the Schwa Tutorial, so Im looking for more and more things. But the fact that putting an vertical image (of the status bar, the life of Megaman) is something that I see very difficult, but there is something like that in Brutal Mario, so, it´s possible.

So, Im not asking you to make that ASM to me hehehe, Im just asking you a little help of how can I start.

Thanks!!!
Mega Mario:
Ok, this one might be more trouble than it's worth.


I want to display more than one message box in the intro level. However, when I display any regular message box, the game stops and goes to the overworld after a few seconds, just like it would if I used the Display Level Message 1 sprite.

How can I bypass this?
Originally posted by Carlos182
Do anyone have the idea of how to start making a Status Bar like in Megaman?

Meh, first disable the regular status bar and then write a patch to use stripe image to upload your HP to the side of the screen every frame, and even handle boss HP when it came to that. Straightforward, but tough.

Kaijyuu: Sounds like a corrupted ROM. You might be out of luck period.
Actually Maxx, it's in the game. IIRC, even if you hit a message box instead of sprite 19 it'll still warp to the overworld. Perhaps you could try finding something in all.log or through the debugger, Kaijyuu.

@Carlos: You could DMA an empty RAM Address to stripe image as Maxx said, but you'd probably also need to create another routine for the whole health system. A better idea would be to create a horizontal health bar instead of vertical, since then you'd only need to hook a status bar routine for the main code.


Originally posted by Iceguy

@Carlos: You could DMA an empty RAM Address to stripe image as Maxx said, but you'd probably also need to create another routine for the whole health system. A better idea would be to create a horizontal health bar instead of vertical, since then you'd only need to hook a status bar routine for the main code.



Hehe, thanks for the replies, even if I actually don´t know what is DMA and IDK what are you refering to.. Im just making custom blocks in ASM hehehe. But I hope someday I can.

Somebody has the tutorial of hack a routine that was in SMWiki? SMWiki doesn´t work and I dont know why :S
Mega Mario:
Originally posted by Carlos182

Somebody has the tutorial of hack a routine that was in SMWiki? SMWiki doesn´t work and I dont know why :S

Use this
If you have any questions, just ask.
Originally posted by Iceguy
IIRC, even if you hit a message box instead of sprite 19 it'll still warp to the overworld. Perhaps you could try finding something in all.log or through the debugger, Kaijyuu.

Right. I guess I'll have to...
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 418
  • 419
  • 420