Advertisement
zoasty

total talking about space time

Mar 3rd, 2014
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. <Straework> Would be nice if we truly understood spacetime
  2. <Straework> What is it written in, the rom?
  3. <total> Yeah, that's my goal, I know why it does what it does
  4. <total> 65c816 assembly I guess
  5. <total> there's decent debugging snes emulators
  6. <Straework> So what is it doing in a nutshell?
  7. <total> So what happens is that when you shoot a beam, there's a routine to jump to a certain address, using and index found at a memory location, this index is different depending on what beam you shoot
  8. <Straework> Sure
  9. <total> so when you shoot space-time, this index is well, fucked up
  10. <total> so the code jumps completely wrong
  11. <Straework> Jumps to an index it shouldn't basically, or where there's other code?
  12. <total> and just happens to end up in a routine, that copies data into RAM at a position near where tile-data exists
  13. <total> and this routine will run for every frame that the beam object is visible on screen
  14. <Straework> Intriguing
  15. <total> and the amount of data copied and where it starts copying from, is dependant on the Y register I think
  16. <Straework> What's in the y register
  17. <total> which obviously gets changed depending on other code, and is never reset properly since the code jumps straight inside a loop
  18. <total> so that's why for example shooting a super missile for space time gives different results, since it exists on screen for a shorter amount of time
  19. <total> so it only jumbles the room data for a bit and then goes back to normal
  20. <BackForJustice> intradasting
  21. <Straework> So what would happen if we modified the amount of time we were in that routine by shooting a missile instead, or shooting the wall with the super
  22. <Straework> Perhaps more consistent results could be achieved that way?
  23. <BackForJustice> shooting the wall would change the idea of super into explosion ?
  24. <BackForJustice> hence making it longer
  25. <Straework> Well not if the explosion is considered a part of the beam object
  26. <BackForJustice> btw i have no idea what i'm talking about XD
  27. <Straework> isn't considered*
  28. <BackForJustice> just speculating
  29. <total> the room shaking from a super seems to be part of it for example
  30. <BackForJustice> true but it come from the beam object so it should come with the same correlation
  31. <total> so a missile could be more stable
  32. <BackForJustice> but would a missile do the same thing
  33. <total> also for example shooting a missile upwards into the roof
  34. <total> will make the crazy go on a for a little shorter while I guess
  35. <BackForJustice> spacetime is soo weird
  36. <total> in theory, you also probably want to be in the air while the routine copys data
  37. <Straework> Sounds like ivan should experiment
  38. <total> or somewhere with 00 blocks
  39. <total> becuse I think it can crash if you stand on a block that gets replaces with a garbage block
  40. <BackForJustice> what does it do with grapple i wonder
  41. <Straework> That makes sense
  42. <total> I tried it, grapple doesn't make it modify enough memory to do anything really
  43. <BackForJustice> i see
  44. <BackForJustice> and xray?
  45. <total> it's not a beam
  46. <BackForJustice> same thing i guess?
  47. <Straework> But that brings the next question, why is statue skip consistent sometimes?
  48. <BackForJustice> ahh XD
  49. <Straework> i.e. the same blocks for the skip get put into a place
  50. <total> well, it seems like the OOB data is somewhat stable, since it copies data from ROM to RAM
  51. <total> so it's always the same data
  52. <total> what I think makes it crash is pretty much if the copying is run too much or something
  53. <BackForJustice> that explain why it crashes more on console :x
  54. <total> still need to figure it out
  55. <Straework> What tool are you using to look at the assembly?
  56. <total> no$sns and snes9x 1.51ep10r2
  57. <Straework> Straevaras
  58. <Straework> k ty
  59. <total> But at least this is a start to understanding it, and maybe possibly at least knowing enough to make it not crash
  60. <total> if we can figure out exactly why it crashes
  61. <Straework> That would be excellent if we got that far
  62. <total> then we can craft different setups that are safe
  63. <total> possibly though that we need to find different OOB setups
  64. <total> since the areas will be a bit different with different setups
  65. <BackForJustice> can't wait till glitched any% be 10 minutes long
  66. <total> I found two ways to do MB skip with only 1 space-time yesterday
  67. <total> worked fine with gamesaver
  68. <Straework> Eh, it'll never be that short
  69. <total> sadly not without it
  70. <Straework> Yeah
  71. <Straework> ivan was experiencing the same thing the other day
  72. <total> But now that I understand more what's going on, it might be easier to find something
  73. <total> when it crashes it just ends up doing an infinite loop for some reason
  74. <total> a jump instruction that jumps to itself
  75. <total> if anyone is interested, the relevant jump that starts the chaos is found at this address
  76. * Tterraj42 ([email protected]) Quit (Ping timeout: 140 seconds)
  77. <total> 0090:AEDD
  78. <Straework> I'll have to look at it later this evening
  79. <total> It does a "jsr (0C68, x)", where x = 0, so it fetches whatever address is at 0C68, and jumps to it
  80. <total> and in the case of spacetime, what's stored there is "AD16"
  81. <total> so it jumps to 0090:AD16
  82. <Straework> Does it compute the index based on beam selection?
  83. <total> yeah, depending on beam
  84. <total> there will be different values stored at 0C68
  85. <total> or rather, depending on beam combo
  86. * Tterraj42 ([email protected]) has joined #supermetroid
  87. <total> it'd be great if someone could help out mapping this stuff out
  88. <total> I'm not exactly an expert either on SNES architecture and 65c816 assembly, I'm decent with 6502 though which is pretty similar, so I can guess what's going on fairly well
  89. * GariPhone ([email protected]) has joined #supermetroid
  90. <total> But I feel that the mystery of space/time will be solved soon
  91. <total> We're getting quite close now at least
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement