Advertisement
MrCheeze

pm_teleporter.lua

Oct 21st, 2016
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. local addr_roomchangestate
  2. local addr_roomchangeptr
  3. local val_roomchangeptr
  4. local addr_roomgroup
  5. local addr_roomvalue
  6. local addr_roomentrance
  7.  
  8. romhash = gameinfo.getromhash()
  9.  
  10. if romhash == "B9CCA3FF260B9FF427D981626B82F96DE73586D3" then --JAP
  11. addr_roomchangestate = 0x09E754
  12. addr_roomchangeptr = 0x156748
  13. val_roomchangeptr = 0x80035DFC
  14. addr_roomgroup = 0x07408A
  15. addr_roomvalue = 0x074090
  16. addr_roomentrance = 0x074092
  17. elseif romhash == "3837F44CDA784B466C9A2D99DF70D77C322B97A0" then --USA
  18. addr_roomchangestate = 0x0A0944
  19. addr_roomchangeptr = 0x151708
  20. val_roomchangeptr = 0x8003617C
  21. addr_roomgroup = 0x0740AA
  22. addr_roomvalue = 0x0740B0
  23. addr_roomentrance = 0x0740B2
  24. elseif romhash == "0" then --EUR
  25. addr_roomchangestate = 0
  26. addr_roomchangeptr = 0
  27. val_roomchangeptr = 0
  28. addr_roomgroup = 0x0713BA
  29. addr_roomvalue = 0x0713C0
  30. addr_roomentrance = 0x0713C2
  31. else
  32. print("Unknown Rom")
  33. print(romhash)
  34. end
  35.  
  36.  
  37.  
  38. local rooms = {[0x01]={lastroom=0x07, name="Toad Town"},
  39. [0x02]={lastroom=0x15, name="Toad Town Tunnels"},
  40. [0x03]={lastroom=0x01, name="Whale"},
  41. [0x00]={lastroom=0x10, name="Goomba Road / Misc."},
  42. [0x08]={lastroom=0x06, name="Mt. Rugged"},
  43. [0x09]={lastroom=0x01, name="Dry Dry Outpost"},
  44. [0x0A]={lastroom=0x31, name="Dry Dry Desert"},
  45. [0x0B]={lastroom=0x10, name="Dry Dry Ruins"},
  46. [0x07]={lastroom=0x0A, name="Koopa Bros. Fortress"},
  47. [0x06]={lastroom=0x08, name="Koopa Road"},
  48. [0x05]={lastroom=0x08, name="Star Way"},
  49. [0x16]={lastroom=0x31, name="Bowser's Castle"},
  50. [0x17]={lastroom=0x04, name="Outside Peach's Castle"},
  51. [0x04]={lastroom=0x18, name="Inside Peach's Castle"},
  52. [0x11]={lastroom=0x15, name="Jade Jungle"},
  53. [0x0C]={lastroom=0x0B, name="Forever Forest"},
  54. [0x0D]={lastroom=0x08, name="Boo's Mansion"},
  55. [0x0E]={lastroom=0x0A, name="Gusty Gulch"},
  56. [0x0F]={lastroom=0x12, name="Tubba Blubba's Castle"},
  57. [0x12]={lastroom=0x10, name="Mt. Lavalava"},
  58. [0x13]={lastroom=0x13, name="Flower Fields"},
  59. [0x14]={lastroom=0x0B, name="Shiver Mountain"},
  60. [0x15]={lastroom=0x1F, name="Crystal Palace"},
  61. [0x10]={lastroom=0x10, name="Shy Guy's Toy Box"},
  62. [0x1B]={lastroom=0x08, name="Debug"},
  63. [0x18]={lastroom=0x01, name="Credits (Crash)"},
  64. [0x19]={lastroom=0x03, name="Playroom"},
  65. [0x1A]={lastroom=0x00, name="Game Over"}}
  66.  
  67. function handleWarp(room_group, dropdown)
  68. return function()
  69. local room_value = tonumber(forms.gettext(dropdown), 16)
  70. mainmemory.write_u16_be(addr_roomchangestate, 0x0001)
  71. mainmemory.write_u32_be(addr_roomchangeptr, val_roomchangeptr)
  72. mainmemory.write_u16_be(addr_roomgroup, room_group)
  73. mainmemory.write_u16_be(addr_roomvalue, room_value)
  74. mainmemory.write_u16_be(addr_roomentrance, 0x0000)
  75. end
  76. end
  77.  
  78. forms.destroyall()
  79. local warpform = forms.newform(299, 656, "Paper Mario Teleporter")
  80. local i,j
  81.  
  82. for i=0,0x1B do
  83. local dropdown_values = {}
  84. for j=0,rooms[i].lastroom do
  85. dropdown_values[#dropdown_values+1] = string.format("%02X",j)
  86. end
  87. forms.label(warpform, rooms[i].name, 0, 5+22*i, 116, 22)
  88. dropdown = forms.dropdown(warpform, dropdown_values, 116, 1+22*i, 45, 22)
  89. forms.button(warpform, "Go", handleWarp(i, dropdown), 161, 22*i, 30, 23)
  90. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement