Guest User

Chat Hacks SMW 2.0 Beta!

a guest
Apr 19th, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. ▤▤▤ What is it?
  2. It's some chat commands that let you write to my SNES's memory via the SD2SNES.
  3.  
  4. ▤▤▤ Why?
  5. Because it could be fun.
  6.  
  7. ▤▤▤ How?
  8. !write HEX_ADDRESS HEX_VALUE
  9. !writeEx HEX_ADDRESS HEX_VALUE HEX_ADDRESS HEX_VALUE HEX_ADDRESS HEX_VALUE HEX_ADDRESS HEX_VALUE
  10. !w HEX_ADDRESS HEX_VALUE HEX_ADDRESS HEX_VALUE
  11.  
  12. Now all of these do the same thing, and support up to 8 address value pairs.
  13.  
  14. ▤▤▤ What's new in 2.0 Beta?
  15. Mostly stability fixes. CARL modules are no longer run during NMI, so fewer seizures.
  16.  
  17. CARL modules can also be unloaded from the ASM itself. The protocol is documented on the Docs page. I may change this later...but I'll fix y'all's code if I do.
  18.  
  19. From 2.0 Alpha:
  20. Project CARL! https://patcdr.net/carl
  21.  
  22. A new way to load assembly directly into Super Mario World and other games.
  23.  
  24. How it works? You !load and !unload short assembly modules by name from the Listings page.
  25.  
  26. Or you can add new ones! You have to login via Twitch, but after that, you can use the ASM Editor right in your browser.
  27.  
  28. You should probably read the Docs page if you're going to write any ASM though. It covers your execution environment and some gotchas.
  29.  
  30. From 1.4::
  31. !wl HEX_ADDRESS HEX_VALUE HEX_VALUE HEX_VALUE
  32.  
  33. You can now do linear writes. Makes it a bit easier to do long runs of writes.
  34.  
  35. From 1.3:
  36.  
  37. !w HEX_ADDRESS $HEX_ADDRESS
  38. !w HEX_ADDRESS *HEX_ADDRESS
  39.  
  40. You can now copy values from memory. It's restricted to WRAM for the time being, and you must prefix your value with a $ or a *.
  41.  
  42.  
  43. ▤▤▤ Examples?
  44. !w 0x7E0DBE 0x09 -- Sets Mario's lives to 10
  45. !w 0x7E1493 0xFF -- Ends the level, like Mario touched the ORB
  46. !w 0x7E0019 0x02 -- Gives Mario a cape.
  47.  
  48. 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: https://www.smwcentral.net/?p=nmap&m=smwram
  49.  
  50. There's also a bunch of handy diagrams for hacking some of the graphics: https://www.smwcentral.net/?p=viewthread&t=13448
  51.  
  52. ▤▤▤ Psudocommands!
  53. For your convenience, some of the commonly used addresses now are available as !commands:
  54.  
  55. !bonus_game_1ups 0xNN
  56. !bonus_game_end_timer 0xNN
  57. !can_climb_on_air 0xNN
  58. !can_scroll 0xNN
  59. !disable_ground_collision 0xNN
  60. !end_level_timer 0xNN
  61. !enemy_hop_counter 0xNN
  62. !freeze_everything 0xNN
  63. !generator_type 0xNN
  64. !invulnerability_timer 0xNN
  65. !is_multiplayer 0xNN
  66. !is_paused 0xNN
  67. !is_player2 0xNN
  68. !is_player2_overworld 0xNN
  69. !is_water_current 0xNN
  70. !is_water_level 0xNN
  71. !keyhole_timer 0xNN
  72. !layer_1_shake_timer 0xNN
  73. !loose_yoshi_flag 0xNN
  74. !luigi_overworld_x_hi 0xNN
  75. !luigi_overworld_x_lo 0xNN
  76. !luigi_overworld_y_hi 0xNN
  77. !luigi_overworld_y_lo 0xNN
  78. !luigi_submap 0xNN
  79. !mario_overworld_x_hi 0xNN
  80. !mario_overworld_x_lo 0xNN
  81. !mario_overworld_y_hi 0xNN
  82. !mario_overworld_y_lo 0xNN
  83. !mario_submap 0xNN
  84. !message_box_dispatch 0xNN
  85. !mode 0xNN
  86. !mosaic_value 0xNN
  87. !music_dispatch 0xNN
  88. !p_meter 0xNN
  89. !player_mode_dispatch 0xNN
  90. !player_stun_timer 0xNN
  91. !powerup 0xNN
  92. !pswitch_blue_timer 0xNN
  93. !pswitch_silver_timer 0xNN
  94. !queued_lives 0xNN
  95. !reserve_item 0xNN
  96. !screen_display_value 0xNN
  97. !scroll_mode 0xNN
  98. !scroll_screen 0xNN
  99. !side_exit_flag 0xNN
  100. !slippery_amount 0xNN
  101. !sparkle_timer 0xNN
  102. !star_timer 0xNN
  103. !switch_palace_flags 0xNN
  104. !timer_hundreds 0xNN
  105. !timer_ones 0xNN
  106. !timer_tens 0xNN
  107. !transition_counter 0xNN
  108. !transition_stars 0xNN
  109. !vx 0xNN
  110. !vy 0xNN
  111. !yoshi_egg_sprite 0xNN
  112. !yoshi_egg_timer 0xNN
  113.  
  114. ▤▤▤ Anything else?
  115. You could also use !read (!r) HEX_ADDRESS to see the current value of anything you're interested in changing.
  116.  
  117. Also, using 0x to prefix your hex numbers is optional, but encouraged. They will, however, always be interpreted as hex.
Add Comment
Please, Sign In to add comment