Views: 926,129,267
11 users online:  Anorakun, Barrels O' Fun, Beefy Chud, codfish1002, Daizo Dee Von, Ersanio, Ezel, Mapping_bl, NerDose, Renhoek, SteamyPanini - Guests: 51 - Bots: 78 Users: 51,766 (2,049 active)
Latest: windson
Tip: Don't replace the first two Map16 FG pages unless you explicitly know what you're doing, or objects may act strangely.
Not logged in.
Posts by S.L
S.L's Profile - Posts by S.L
Pages: « 1 2 3 4 5 6 7 »
Thanks for this informative post Kaijyuu #w{:>}

Why don't you put your code in the level.asm (init) patch, at the intro level? (C5 if you have not changed it)

@inamelia: what is !RAM_CoinFlags and !SRAM_CoinFlags?
@NobleTravesty: it is reached by this code:
JSL.L ExecutePtr

It jumps to a smw routine, $0086DF, which takes A as a sort of index in the pointer table following the JSL, and jumps to the address indicated by the pointer, if I've well understood what this routine does (I've never really checked it :s). Have a look in the ROM map or in all.log for more details.

I think you can disable message box HDMA by NOPing this:
CODE_05B296: STA.W $0D9F

Yes, it matters. But only the address, not what you're doing with them :p
Looks like you have overwritten SRAM used by smw. Try another SRAM address. Do not forget that 600 bytes before this address must be free, as you decrement X. Also:
Originally posted by "imamelia"
well, actually, 0x1200; each file has 0x600

Since there is 3 save file, shouldn't be 0x1800 bytes instead of 0X1200? --Nevermind.

I'm unbelievably and considerably ashamed.


Oh, you're right; I was thinking it would write to addresses before !SRAM_CoinFlags, but if X is 0 and DEC, X changes to FFFF, and then it wouldn't write to these addresses.
Well, I am definitely not connected ASM today.

So, with your code, did you effectively started X at 5FF?
5555 reminds me the value that emulator sets to some ram addresses.
I'm afraid I can't help you anymore. :(
Try to check parts of your code, use a debugger, I don't know.

Wooohhhh... yeah, interesting xD. *lol*

I looked in all.log more deeply, and saw what was wrong. So:

2B45D $05:B25D replace [18 69] by [AB 6B]

Surprise! HDMA disabled. :)

For your second question, I don't know. But now I found this, it's a bit unnecessary, isn't it? ;)
For your first question: actually the original message box message routine is hijacked by LM. However, I've disassembled its hack, so I can tell you how it works: it simply uploads message data at $7F837D in stripe image format. So yes, it is possible to write as many tiles as you want, or spam the entire screen with random letters ;D

Originally posted by Shog
no it's not good XD Okay the surrounding black is K.O. but what should I do now XD

Hey, that was what you wanted to do, wasn't it?
Originally posted by Shog
Chaging the black surrounding into a transparent color...

Originally posted by Milk
Regardless, shouldn't I still be able to globally modify the properties of whatever tiles it's uploading?

Yes, because LM uses the same method as SMW uses.
Ok, so LM hijacks at $05B1A3: it puts a JSL to a custom routine and a JMP (to $05B250) to jump over a part of the original smw routine (resume at the hdma part).
The custom routine is located at $03BB90.
Well, that properties are at: $03BC1B [should be 39].

Originally posted by andy_k_250
Romi's SMB3 Stretches would only move if touching certain types of blocks. It might be worth looking into their coding to see what method he used.

Well, I'm interested in studying it too, but I've looked for it everywhere in the site and I can't find any link to a SMB3 stretch. ôO
Any help?

Eh, sorry for bumping this, but I've looked to mikeyks boss bass and I didn't see any water interaction in it.
Or you're talking about another boss bass...?

Originally posted by undefined
Also, 2 day bump isn't a bump.

Ah, oh, ok.

Yes, custom blocks will be the best option, but there may be a way to do it in the custom sprite and I was trying to find it.

Haha, that would make a funny bonus game, undefined :)

Actually, for spriteV and H, you've put a code to check if a sprite hit the block, and... that's all. So don't expect your block to spawn a sprite ;)
You should before doing anything in SpriteV/H put before it an RTL to prevent MarioBelow code from executing spriteV/H code.
Then you should put in SpriteV/H after JSR Checkwhatyouwant a code that checks if carry flag is set or clear (in one case, a sprite hit the block), and jump to the spawning sprite code accordingly.

Sorry, I forgot to add that you must change the spawn sprite routine a bit. Change the X/Y pos of sprite being spawn using $0A-$0D which hold the sprite's X/Y contact pos with the block.

@Milk: No, I don't think you have to preserve $0F, since your code doesn't modify it (in the SMB3 brick, one JSL alters it, so it needs to be preserved).
So yeah, I think you have to make separate spawning sprite routines, at least one for Mario and one for sprites. Of course, you can concatenate the routines into one and make the X/Y pos part depending of a value you passed in parameter before in MarioBelow/SpriteV/H (using table, branches, or whatever you like), but the easiest way (and least efficient) seems to be making a whole copy of the routine and changing the X/Y pos part.

I'm sure it's a hint. There must be an invisible 1-UP question block near...

taken by myself in Paris ^^

Hello everybody!

Me and some friends of lunariville (french smwhacking community) are organizing a MKW meeting online on 3, July, 15:00 UTC +2 (CEST). We're also inviting anyone who wants to join the fun or show us their skills. If you are interested, just be on this channel (#Lunariville at at the date indicated before. And be sure to respect this 4 basic rules:
-No hacking. Seriously.
-Don't spam, i.e. don't vote for the same circuit several times successively.
-Don't take shortcuts which breaks the game (like the one in grumble volcano)
-Don't say 'I WON' 20 times.

These rules are just in order to have as much fun as we can :D

So if you want to be in, don't hesitate! :)

@Ultimaximus: oh thanks, yep I forgot it.

Nice to see we have some challengers ;D

I noticed I've made a mistake about the hour. I didn't count summer time. So the new date is (still on 3 July):
15:00 UTC+2,
or 15:00 CEST,
which is 14:00 UTC+1,
or 13:00 UTC+0,
or 8:00 EST.

Pages: « 1 2 3 4 5 6 7 »
S.L's Profile - Posts by S.L

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Follow Us On

  • YouTube
  • Twitch
  • Twitter


  • Super Mario Bros. X Community
  • Mario Fan Games Galaxy
  • sm64romhacks