Chat Hacks SMW 2.1 Gamma!

What is it?

It's some chat commands that let you write to my SNES's memory via the SD2SNES.

Why?

Because it could be fun.

How?

!w HEX_ADDRESS HEX_VALUE HEX_ADDRESS HEX_VALUE

Examples?

!w 0x7E0DBE 0x09 -- Sets Mario's lives to 10
!w 0x7E1493 0xFF -- Ends the level, like Mario touched the ORB
!w 0x7E0019 0x02 -- Gives Mario a cape.

And plenty more. Try some random ones and see if they crash the game! Or take a look at this partial memory map and try to do something interesting.

There's also a bunch of handy diagrams for hacking some of the graphics.

And the list of Sprite IDs, for dropping items on my head.

Psudocommands!

For your convenience, some of the commonly used addresses now are available as !commands:

!bonus_game_1ups 0xNN
!bonus_game_end_timer 0xNN
!can_climb_on_air 0xNN
!can_scroll 0xNN
!disable_ground_collision 0xNN
!end_level_timer 0xNN
!enemy_hop_counter 0xNN
!freeze_everything 0xNN
!generator_type 0xNN
!invulnerability_timer 0xNN
!is_multiplayer 0xNN
!is_paused 0xNN
!is_player2 0xNN
!is_player2_overworld 0xNN
!is_water_current 0xNN
!is_water_level 0xNN
!keyhole_timer 0xNN
!layer_1_shake_timer 0xNN
!loose_yoshi_flag 0xNN
!luigi_overworld_x_hi 0xNN
!luigi_overworld_x_lo 0xNN
!luigi_overworld_y_hi 0xNN
!luigi_overworld_y_lo 0xNN
!luigi_submap 0xNN
!mario_overworld_x_hi 0xNN
!mario_overworld_x_lo 0xNN
!mario_overworld_y_hi 0xNN
!mario_overworld_y_lo 0xNN
!mario_submap 0xNN
!message_box_dispatch 0xNN
!mode 0xNN
!mosaic_value 0xNN
!music_dispatch 0xNN
!p_meter 0xNN
!player_mode_dispatch 0xNN
!player_stun_timer 0xNN
!powerup 0xNN
!pswitch_blue_timer 0xNN
!pswitch_silver_timer 0xNN
!queued_lives 0xNN
!reserve_item 0xNN
!screen_display_value 0xNN
!scroll_mode 0xNN
!scroll_screen 0xNN
!side_exit_flag 0xNN
!slippery_amount 0xNN
!sparkle_timer 0xNN
!star_timer 0xNN
!switch_palace_flags 0xNN
!timer_hundreds 0xNN
!timer_ones 0xNN
!timer_tens 0xNN
!transition_counter 0xNN
!transition_stars 0xNN
!vx 0xNN
!vy 0xNN
!yoshi_egg_sprite 0xNN
!yoshi_egg_timer 0xNN

Anything else?

You could also use !read (!r) HEX_ADDRESS to see the current value of anything you're interested in changing.

Also, using 0x to prefix your hex numbers is optional, but encouraged. They will, however, always be interpreted as hex.

Check out SoapAgent's Info for PatCdr's Chat Hacks SMW site for more nifty info!

Finally, for anyone who knows 6502 or 65816, check out Project CARL!