Language…
17 users online: Alex No, ben15420, DanMario24YT, gemstonezVA, GiraffeKiller, Gmario37, Green, GRIMMKIN, JudithPrietht, Metal-Yoshi94, MorrieTheMagpie, Rykon-V73, Sniwott, Spedinja, VoidCrypt, WhenUnique, xhsdf - Guests: 268 - Bots: 575
Users: 64,795 (2,371 active)
Latest user: mathew

How to enable special stage Overworld palette without anything else

So I want to change the Overworld Palette after clearing a specifc level (activate special stage functions in Lunar Magic). However, I did not find any way to do this without all the other things that also become activated, e.g. the special look of shells and Bullet Bills and whatnot.
Quote
$7E1EA2 || Setting the high bit of $7E1EEB will enable the special stage features (autumn overworld palettes, etc.) in the ORIGINAL game. The bit is set when you beat level 125 (FUNKY).

This was the address I looked up in the memory map. But is there a way to apply those overworld palette changes without anything else?
EDIT: It seems there is an option for each of those Effects in Lunar Magic, but still: If I want to apply this change by myself with an UberASM Code, how would it look like? How could I differentiate between those effects mentioned above?



Just start by changing the setting in LM in the overworld editor under "Overworld -> Change Special World Levels...". The three level numbers set for that correspond to different values in the $1EA2 table, based on the level's translevel number. Then to control each effect through UberASM, you just do something like this for whichever one you want to control:
Code
!translevel	=	$49

	LDA #$80
	TSB $1EA2+!translevel	; or TRB to disable the effect

The value in the $1EA2 table is the only thing the game ever checks for these, there's no other RAM address you can mess with. Though if you really do want to use a distinct RAM address with no side effects, you could just edit each of the locations and change the address from the $1EA2 table to some custom free RAM address. Like this:

Code
!owColors	=	$1EEB
!koopaColors	=	$1EEB
!spriteGfx	=	$1EEB

org $00AD2A : dw !owColors-1

org $02A986 : dw !koopaColors

org $00AA74 : dw !spriteGfx
org $019826 : dw !spriteGfx
org $01B9CD : dw !spriteGfx
org $0CAE0F : dw !spriteGfx


Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
Merci Thomas! That helped a lot! #tb{^V^}