Language…
9 users online:  Atari2.0, futhark, GRIMMKIN, JezJitzu, kasoku,  Nanako, Nemesis1407, Pink Gold Peach,  Segment1Zone2 - Guests: 246 - Bots: 353
Users: 64,795 (2,377 active)
Latest user: mathew

Actually locking sprites

I'm trying to set $9D to lock all sprites and animation for a time so an animation of mine can take place uninterrupted, but the code at $00CDE8 is resetting the timer every frame. In fact, $9D doesn't seem to be a timer at all, it just gets set to some random-ass value whenever Mario needs it, the code at $00CDE8 doesn't get run somehow until it's time to undo it.

Is there a good way to actually lock stuff for a set period of time? My hijack is effectively at GetGameMode, but it lets the game's code run first. But that's literally the entire game's code (interrupts notwithstanding) so it's... sort of like running stuff before GetGameMode too :P

This is for the co-op sprite, by the way, so extensive hijacks to redo massive parts of SMW's infrastructure are welcome!
Now with extra girl and extra hacker
Originally posted by the ROM map
$7E:13E5 | 1 byte | Misc.
This is the index used to get how many frames to store to the player animation timer, at $7E:1496.
$7E:13FB | 1 byte | Player
Player is frozen flag. This includes controls and animation. Other sprites still move and can interact with the player, but contact with them should be avoided, as it would freeze the game.


Not too sure if these addresses may help.

yczedit: table stretch begone (really, why do people keep using code tags for ROM map stuff)
Pretty sure no, because those are explicitly for Mario's animations, and that would require there actually be one of Mario's animations playing.

Though. Hm. Adding a new player animation for "everyone sit tight for a bit, I've got this" might work.
Now with extra girl and extra hacker
I ecounter this problem too. because how the game runs the commands in a sequential order: it runs the uberasm code first, then it resets it, (STZ $9D). In my hack, several stuff gets locked while others doesn't (level timer frreeze but not sprites), try using the player animation trigger and set it to #$0B (freeze player) along with storing non-zero value to $9D (it skips the STZ $9D command). but be careful if using a message box, would not work for the first hit (don't worry if using vwf dialog). To avoid that, store #$01 in the message box trigger address when mario is able to move (animation trigger has been reset).

ps: stuff like that happens to timer also, the p-balloon timer blocks, I store #$02, and ingame, it was #$01 using a "show a ram value on a status bar" (from the asm library) the 1st frame mario touches it. It decrements right after the block stores a value in it before the next frame comes. It occors to branching too;
Code
CMP #$02
BEQ word 

and the branch detects when its #$01 instead due to being decremented before the block able to detect it.
Give thanks to RPG hacker for working on Asar.