page last updated 23 Sep. 2020 Click on the heading of any column on the RAM table at the bottom of this page to sort it ascending, and again to sort it descending, by that column.
Single-click on any inline code and the code will automatically be selected so that you may copy it.

Info

This is a list of relevant links, a table of catered ASM snippet names, a list of helpful commands, and a table of RAM addresses for use with Chat Hacks SMW by PatCdr, streamed peroidically at twitch.tv/patcdr.

These official pages will explain Chat Hacks SMW much better than anybody else can:

Website: https://patcdr.net/chathacks.html

ASM / Project CARL main page: https://patcdr.net/carl

Pastebin (oldish; obsoleted by first link): https://pastebin.com/enaY5yn8

Searchable RAM map (ultra helpful): https://www.smwcentral.net/?p=memorymap&game=smw

Sprite data RAM: https://docs.google.com/spreadsheets/d/1YuEyTkBXl-BvXyAf6C7EPXo20CdVlbwUttp2RXHoY2U

Sprite ID #s: https://smwspeedruns.com/Sprites

Project CARL

Cool ASM snippets

These are ASM snippets that I have used or seen the effects of and personally find fun or useful. Keep in mind that people can change or delete their code after they upload it — the descriptions I have listed here may not accurately describe the effects forever. This is not a replacement for PatCdr's own automatically updated list; it is simply a reduction and alphabetization of the massive list so that I can make decisions more quickly. I probably left some out, but that doesn't mean I don't like them.

Name User User's Desc Description/Notes
aimedbills perryman1138 Shoots bullet bills at Mario's y-pos from side of screen
airjump tjb0607 jump literally anytime
AntiAutoscroll fiskbit Scrolls opposite the direction is Mario facing
BGMorph2 smwagent09af Periodically changes background color based on screen position and Mario's speed Much less seizure-inducing than the original bgmorph.
blowshi snydej Yoshi? More like Blowshi! 🤣 Yoshi will explode after a bit of time
boosprites2 snydej Sprites are boos when not being looked at
bsbs snydej Block snake stops when not stood on
CoinPoser mrmeyham Coins = Pose See $7e13e0 below. Great for use with coinrun and/or xycoin
coinrun snydej Running costs coins Great for use with xycoin
cointimer lineprinter coins decrease the timer Great for use with xycoin
Darkness fiskbit Brightness ($7e0dae) goes up and down repeatedly. If the code is unloaded at the wrong moment, $dae will be "stuck" at its most recent value.
disco_sprites furyfulfawful Make all sprites fallow mario like disco shells recommended for use with boosprites2
DontLetGo fiskbit Pushes Mario left when not holding any buttons
dropout smwagent09af Periodically disables ground collision Includes sound cues
Ebb fiskbit Periodically toggles water level flag
flymetothestars tjb0607 infinite cape flight Powerup is fixed to cape
hurry tjb0607 keeps speeding up the music Plays annoying warning sfx everytime music is sped up
hwrap perryman1138 Wraps top and bottom of screen in horizontal rooms. Behaves funny in vertical rooms
LeapOnce circlefriendo Leap, but sets vx once Makes player go forward very quickly when jumping
LRDash fiskbit L and R give left and right dashes
lrmorton snydej Pressing L or R takes you to Morton's Castle Wonderful troll when player expects a different L+R function. Warning displayed on HUD. Do not confuse with Irmorton (with I as in India)
mansbesthorse snydej He's there for you whether you want him or not. Jumping gives a Yoshi
oddraft snydej Skull raft pauses when not stood on
oddwater snydej Toggles water level flag based on player direction
oftenstar circlefriendo Toggles star power on and off at steady intervals
Palette circlefriendo Edit Palette See $7f9f00 below
pbpowerup snydej Every powerup is a p-balloon Includes midway points
porcusprites2 smwagent09af snydej's boosprites2 except with porcupuffers May cause sprite lag and despawn important sprites
r_stars circlefriendo R button toggles star power
rand64 tjb0607 randomizes $64 See $7e0064 below
randomlag furyfulfawful See $7f9696 below
rdoor snydej Randomizes doors/pipes
reservelottery smwagent09af Every possible value Cycles the item box
RHover circlefriendo R button hovers
rwarpdash furyfulfawful player can warp in the direction of the dpad by pressing R Can cause suffocation and cause tiles to visually render improperly
save snydej Allows saving after every level
ShakeIt smwagent09af constantly sets Layer 1 shake timer Now with sound effect!
shells tjb0607 gives mario a shell if he doesn't have one
sideexit snydej Enables side exit flag
Sleappery circlefriendo Combining multiple scripts into one to save slots Combines slippery and leap
spawner circlefriendo Summons a configurable sprite See $7f9d0a and $7f9d0b below
Spin2Win fiskbit All jumps are spin jumps
spread tjb0607 dtothefourth's "duplicating tiles" patch
stickyhands perryman1138 If player grabs an item, that item stays until snippet is unloaded, item "wakes up" (goombas, mechakoopas), etc.
walkout snydej Enables the side exit flag
warp tjb0607 allows for a chat command to initiate a warp to a specific level see https://patcdr.net/carl/asms/warp
xycoin smwagent09af Pressing X/Y gives coins Great for use with coinposer, coinrun, cointimer, etc.
There used to be a One Mind snippet! Where did it go?

RAM addresses used by ASM

These are RAM addresses (normally left free by vanilla SMW) that users have picked out for using with their CARL snippets. I have compiled this list in case anyone has the ability to write ASM for CARL and doesn't want to overwrite other people's free RAM. The list is mostly complete (many entries were copied and sorted from CircleFriendo's "Addresses" reference file), but I don't know what every single snippet uses.
Please let me know if you would like your addresses added to this list.

Visit this filtered RAM map to see other free regions of RAM you can use.

Helpful commands (NEW!)

Emergency OW Teleport (do not abuse)

#1 Iggy's Castle: !w 7E1F11 01 7E1F17 98 7E1F18 00 7E1F19 28 7E1F1A 00 mode b

#2 Morton's Castle: !w 7E1F11 00 7E1F17 D8 7E1F18 00 7E1F19 C8 7E1F1A 00 mode b

#3 Lemmy's Castle: !w 7E1F11 02 7E1F17 C8 7E1F18 00 7E1F19 28 7E1F1A 01 mode b

#4 Ludwig's Castle: !w 7E1F11 00 7E1F17 A8 7E1F18 01 7E1F19 38 7E1F1A 00 mode b

Forest of Illusion 1: !w 7E1F11 03 7E1F17 88 7E1F18 00 7E1F19 78 7E1F1A 01 mode b

#5 Roy's Castle: !w 7E1F11 00 7E1F17 88 7E1F18 01 7E1F19 28 7E1F1A 01 mode b

#6 Wendy's Castle: !w 7E1F11 00 7E1F17 C8 7E1F18 00 7E1F19 B8 7E1F1A 01 mode b

Valley of Bowser 1: !w 7E1F11 04 7E1F17 b8 7E1F18 01 7E1F19 78 7E1F1A 00 mode b

#7 Larry's Castle: !w 7E1F11 04 7E1F17 78 7E1F18 01 7E1F19 58 7E1F1A 00 mode b

Back door: !w 7E1F11 04 7E1F17 98 7E1F18 01 7E1F19 38 7E1F1A 00 mode b

Star World 1: !w 7E1F11 6 7E1F17 48 7E1F18 1 7E1F19 A8 7E1F1A 1 mode b

Gnarly (Special world 1): !w 7E1F11 05 7E1F17 18 7E1F18 01 7E1F19 38 7E1F1A 01 mode b

Funky (Special world 8): !w 7E1F11 05 7E1F17 38 7E1F18 01 7E1F19 18 7E1F1A 01 mode b

You can make your own teleport command by running SMW locally in emulators with a RAM editor (snes9x, BizHawk, no$sns, etc), walking to your desired location on the overworld, opening the emulator's memory/RAM viewer, locating the addresses used in the above commands ($7E1F11, $7E1F17, $7E1F18, $7E1F19, and $7E1F1A), and putting the displayed values in place of the ones in the commands above.


Autumn

To turn Autumn palette and sprites off, paste !w 7E1EEB 0.

To turn Autumn palette and sprites on (not recommended), paste !w 7E1EEB 80.

Changes to the autumn bit are applied when the overworld is reloaded.


Level Functions

If the player is stuck in a level (especially level 0/Bonus Game), pasting !mode b will instantly take the player back to the overworld, providing the game hasn't frozen.

Alternatively, pasting !mode f will restart the level from the beginning, provided that some joker hasn't changed the player's overworld position. If that has happened, see above.

If you don't want to start the level over, try simply pasting !end_level_timer FF for the normal exit and !keyhole_timer 30 for the secret exit. If you want to end the level in style with the regular exit and give the player a blue yoshi, paste !player_mode_dispatch 8. Note that none of these commands will end the Bowser fight! (That is also possible with Chat Hacks, but I will leave that for a later time.)


Gameplay Sanity

If the player needs some health, paste one of the following: !19 1 for big Mario, !19 2 for cape Mario, or !19 3 for fire Mario.

If the player needs star invincibility for some reason, load the "starman" ASM with !load starman.

If the screen is dark for some reason unrelated to the disco spotlight in Bowser's castle (e.g. if the "darkness" ASM is unloaded at the wrong time), try pasting !dae f. This might fix it.

RAM addresses

Some of the addresses below were copied from a couple of the SMW RAM maps on smwcentral.net, and the rest were directly copied from the credited users while a stream was happening. The "✓" column means that I have tested the address personally or know that it works (fairly) consistently. At the moment there are no untested addresses, but if one gets added later without this check, this may be because the effect I associate with it may rely on some external ASM that was already loaded, have other requirements for working, or be caused by some other value changes that I didn't catch.

The following list was manually converted from a messy Google Keep document into Google Sites because I needed more features and less page load time, and subsequently reformatted to here through some semi-automated processes. I don't remember why I put some of this stuff in the original Keep document, but I copied it all into here anyway.
Start Address | Name ⇳ Description ⇳ Type ⇳ Example ⇳ Credited User ⇳ SMWC Link ⇳ ✓ ⇳
$7e0012 Stripe image loader — value "should" be divisible by 3. Some values will crash the game, but some are fine. Graphics !12 0x3d SuperMaks64 7E0012
$7e0019 | !powerup Player's powerup (2 = cape 3 = flower >3 = weird) Help !19 92 N/A 7E0019
$7e0040 CGADSUB Settings Graphics Dark + translucent Layer 1: !40 ff unknown 7E0040
$7e0044 Initial settings for color addition. Graphics !44 c2 unknown 7E0044
$7e005d Screens in level (if the value is changed to lower than expected the player will fall through the floor where the specified screen begins) Troll !5d 0 SMWAgent09AF 7E005D
$7e0064 First byte of some sprite properties Graphics !64 2 tjb0607 7E0064
$7e0071 | !player_mode_dispatch Player mode trigger Help !player_mode_dispatch 7 N/A 7E0071
$7e0075 Mario is in water flag (reset every frame) Fun !w 0x7E0075 0x01 N/A 7E0075
$7e0082 (linear) Slope height pointer Misc !wl 7e0082 34 34 34 Perryman1138 7E0082
$7e0085 | !is_water_level Water level flag Help !is_water_level 1 N/A 7E0085
$7e0086 | !slippery_amount Slippery physics (also try "slippery" ASM) Troll !w 7e0086 ff N/A 7E0086
$7e009e (multi) Give P-Balloon status Fun !w 7e009e 7d 7E14C8 0b 7E13F3 09 7E167A 9a 7E1686 29 7E1DF9 01e snydej  
$7e0100 | !mode Game mode. Mode 0 soft resets, Mode B fades into OW, Mode F enters the current OW level. Do not overuse. Help !mode f N/A 7E0100
$7e0109 Override OW loading on level exit and go to specified other level minus 0x24. May cause OOB on overworld or messed up events. Fun Top secret area: !w 0x7E0109 0x03 N/A 7E0109
$7e0701 BG color Graphics !w 0x7e0701 0x9c N/A 7E0701
$7e0dae | !screen_display_value Brightness (expected value is 0f) Graphics !dae 0f N/A 7E0DAE
$7e0dba (linear) Yoshi color (on overworld, carried into levels): $dba = Mario, $dbb = Luigi. 0x04=yellow; 0x06=blue; 0x08=red; 0x0A=green Misc !wl 7e0dba 8 8 SMWAgent09AF 7E0DBA
$7e0dc0 Green star block coin counter (decrements from 0x1e). When this reaches 0, the green star block in YI3 will give a 1-up instead of a coin. Misc !dc0 0 N/A 7E0DC0
$7e0dc2 | !reserve_item Item in reserve box: https://smwspeedruns.com/Sprites Fun !dc2 c2 N/A 7E0DC2
$7e0dd3 Player movement direction on OW paths; may cause OOB. 0 = up, 2 = down, 4 = left, 6 = right Misc !w 0x7E0DD3 0x02 SMWAgent09AF 7E0DD3
$7e0ef9 (linear) Status Bar GFX. Writing through chat commands is off limits; use CARL if necessary. Graphics StatusBarMap.png N/A 7E0EF9
$7e0f31 (linear) | !timer_hundreds !timer_tens !timer_ones Hundreds/Tens/Ones place in timer. Technically each digit is a hex value, but of course timer is in base 10 Fun !wl f31 1 0 1 N/A 7E0F31
$7e0fae (linear) Low byte of the angle of the Boo rings. $7e0fae is for the first Boo ring active; $7e0faf is for the second Boo ring active. Fun !fae 0x88 N/A 7E0FAE
$7e13cb When this is set to 0x80 in levels, the player is automatically given star power for the normal duration. Reset every frame in levels. Fun !w 7e13cb 80 SMWAgent09AF 7E13CB
$7e13cc Queued coins. Fun for use with CoinPoser asm Misc !w 7e13cc 63 N/A 7E13CC
$7e13e0 Player's "pose", used in "CoinPoser" . See MarioPoses.png for expected values. Graphics !w 13e0 42 LouisDoucet 7E13E0
$7e13e3 Player is running along a wall (like from a pink triangle). See SMWC link for expected values. Misc !w 0x7E13E3 0x06 SMWAgent09AF 7E13E3
$7e13f9 Behind the scenes: 01 will send player behind objects, 02 will send player behind objects and sprites, and 03 will only send player behind sprites. Misc !w 7e13f9 02 N/A 7E13F9
$7e13fb Player is frozen (any sprite interaction while frozen will cause game to softlock until this byte is set to 0 again) Troll !w 0x7e13fb 0x01 SMWAgent09AF 7E13FB
$7e13f3 Fake P-balloon status — player conserves horizontal momentum but is unable to move until someone sets the value back to 0. Troll !wl 7e13fe 09 SMWAgent09AF 7E13F3
$7e13fd (linear) Temporary pause and scroll screen (Effect of pressing shoulder) Fun !wl 7e13fd 01 04 00 ff Perryman1138 7E13FD
$7e1403 | !is_water_current Water/Layer 3 tide flag (0x00-0x02) (will randomly kill player in levels with layer 3 BG) Troll !is_water_current 1 SMWAgent09AF 7E1403
$7e1411 Horizontal scroll enabled flag. If this is disabled, the player cannot go beyond the limits of the screen. If it was disabled and gets enabled, the level will "jump" and graphical glitches will occur. Troll !1411 0 SMWAgent09AF 7E1411
$7e1413 Horizontal scroll setting for Layer 2. 0x00 = none; 0x01 = constant; 0x02 = variable. Graphics !w 7e1413 02 SuperMaks64 7E1413
$7e1414 Vertical scroll setting for Layer 2. Expected values 0x00-0x03. Setting it to 0x01 in certain levels may cause weird graphical artifacts in the background. Graphics !w 7e1414 01 SMWAgent09AF 7E1413
$7e1419 Pipe animation effect: affects Yoshi and carried items. Similar to "stickyhands" ASM. Graphics !w 0x7E1419 0x02 SMWAgent09AF 7E1419
$7e141a | !transition_counter # of times any room was entered after level was first entered. Will either go to back to the first room or warp elsewhere on the next screen transition if set to $FF. Troll !141a ff SMWAgent09AF 7E141A
$7e1425 Will enter bonus game flag. Only works for goal tape exits. Fun !1425 1 SMWAgent09AF 7E1425
$7e1434 | !keyhole_timer Start keyhole animation and end level (expected values 0x00 or 0x30) Help !keyhole_timer 30 N/A 7E1434
$7e1493 | !end_level_timer Course clear march timer — the lower the value, the glitchier the colors will be. Can be set before a level is entered to end that level immediately. Help !end_level_timer 1 N/A 7E1493
$7e14ae | !pswitch_silver_timer Silver P-switch timer Fun !w 7e14ae ff SMWAgent09AF 7E14AE
$7e14b6 (linear) Used for brown chain platforms (updated every frame) and some boss processes. Can speed up Bowser fight Help !w 14b6 80 MrMeyham 7E14B6
$7e185c | !disable_ground_interaction Mario does not interact with ground/objects flag Troll !w 0x7E185C 0x01 SMWAgent09AF 7E185C
$7e186b Multi-coin block timer — decrements from 0xFF when a multi-coin block is hit Fun !w 0x7E186B 0xFF N/A 7E186B
$7e1887 | !layer_1_shake_timer Ground shake timer Fun !w 0x7E1887 0xFF SMWAgent09AF 7E1887
$7e18bc | !skull_platform_speed Skull raft is moving flag Troll !w 7e18bc 0 SMWAgent09AF 7E18BC
$7e18c2 | !is_on_lakitu_cloud Lakitu cloud flag — reset each frame. Fun !w 0x7e18c2 0x01 wolfman2000 7E18C2
$7e18e4 (multi) Shoots player up-left, gives star power, cape, and a 3-up Fun !w 18e4 3 1dfb d 1490 ff dc2 1c 19 2 7b 80 7d 80 LouisDoucet  
$7e18e4 | !queued_lives Queued lives to give to player Help !queued_lives a N/A 7E18E4
$7e1b95 When set to 0x02, the player will go to a Yoshi bonus on the next screen transition/level load. This will not beat the level — try !player_mode_dispatch 8 if you want to progress. Troll !w 0x7E1B95 0x02 SMWAgent09AF 7E1B95
$7e1ba0 Bowser head shake on OW Fun !w 7e1ba0 ff N/A 7E1BA0
$7e1dea Which OW event at level end (modifying may mess up OW) Misc !w 0x7E1DEA 0x01 N/A 7E1DEA
$7e1df9 (linear) Play SFX / Music (see $7e1dfb below) Fun !wl 0x7E1DF9 0xC3 0x27 0x98 0x7A unknown 7E1DF9
$7e1dfb | !music_dispatch Play music: List of songs/FX Fun !music_dispatch 12 N/A 7E1DFB
$7e1f11 (multi) TP somewhere on OW (emergency measure) Help Morton's Castle: !w 7e1f11 00 7e1f17 d8 7e1f18 00 7e1f19 c8 7e1f1a 00 mode b (See OW Teleport section above this table) snydej  
$7e1f27 (linear) | switch_palace_flags Switch palace pressed flags: $1f27 = G $1f28 = Y $1f29 = B $1f2a = R Misc !wl 7e1f27 00 00 00 00 SuperMaks64 7E1F27
$7f9696 Degree to which "randomlag" ASM lags the game Troll !w 7f9696 0a FuryfulFawful Free RAM
$7f9d0a Address used for "spawner" ASM: See sprites list Fun !wl 7f9d0a d7 1f CircleFriendo Free RAM
$7f9d0b Time between "spawner" spawns Fun see "spawner" above CircleFriendo Free RAM
$7f9f00 (linear) Modify L1 palette. Used with "palette" ASM Graphics !wl 7f9f00 0c 36 fc 24 45 05 00 00 20 2e CircleFriendo Modifies these addresses
$7fb3c0 (linear) Warp Dispatch for use with "warp" ASM. See https://patcdr.net/carl/asms/warp Troll !wl 7FB3C0 00 01 20 tjb0607 Free RAM