Advertisement
uraniumanchor

Blaster Master Area 5 Boss AI

Dec 11th, 2015
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. <uraniumanchor> All this time I figured the area 5 boss's pausing was based on the RNG seed... I mean it is, just not in the way that I thought
  2. <uraniumanchor> I figured he read it as a timer to determine how long to hold still, but that's definitely NOT what he's doing
  3. <uraniumanchor> Time to dig into this a bit more
  4. <uraniumanchor> Yeah the problem is even if we know how he reads the RNG, manipulating the RNG is all but impossible
  5. <uraniumanchor> Beacuse all of the gumdrop robots tweak the RNG a *lot*
  6. <uraniumanchor> They read it like 4 times ta second to determine whether or not to shoot
  7. <uraniumanchor> At best you could maybe watch for a certain shot pattern
  8. <uraniumanchor> Ok so what I'm seeing now
  9. <uraniumanchor> When he's holding still
  10. <uraniumanchor> He hold still for 32 frames
  11. <uraniumanchor> Then he has a... 3 out of 16 chance to not move for another 32 frames
  12. <uraniumanchor> Actually wait maybe not
  13. <uraniumanchor> Looks like he also has a chance to wait for 16 frames
  14. <uraniumanchor> Ok, he DOES use the RNG value to determine how far to walk, with a range of 32 to 160 frames, in increments of 16
  15. <shiningdragoon> hahahaha freaking crab
  16. <shiningdragoon> why do you need to be so complicated
  17. <uraniumanchor> With a 50/50 chance of going left or right
  18. <uraniumanchor> When he starts walking
  19. <mattrick_> crab for biggest a-hole game boss ever
  20. <uraniumanchor> holy god this code
  21. <mattrick_> ever since i was a kid i have HATED that thing
  22. <uraniumanchor> He reads the RNG in so many different ways I'm having trouble following all of it
  23. <uraniumanchor> It looks like he has several different states though, trying to see if I can figure out what each of them means
  24. <shiningdragoon> so basically the programmer had a lot of fun on that boss
  25. <uraniumanchor> Yeah he's basically doing an RNG poke at every state transition to determine what to do next
  26. <uraniumanchor> And every state he's in, is some multiple of 16, with minimums and maximums
  27. <uraniumanchor> ok so from what I'm seeing when I watch the memory values as well as trying to understand this code, when he pauses, it's always for 32 frames, but he has a small chance to pause again instead of moving
  28. <uraniumanchor> And when he moves it's for anywhere from 32 to 144 frames in 16 frame intervals
  29. <uraniumanchor> There seems to be some other stuff going on here too but I can't make sense of it
  30. <uraniumanchor> So actually in theory it's possible to completely lock him into place
  31. <uraniumanchor> By manipulating the RNG so that he never moves
  32. <uraniumanchor> But since the TAS just glitches him out and that's the only way you'd realistically accomplish that, I wouldn't consider that useful
  33. <shiningdragoon> lol the tas boss fight is hilarious
  34. <shiningdragoon> abuses the fk out of grenades
  35. <mattrick_> blaster master is a cruel mistress
  36. <mattrick_> when she loves you
  37. <mattrick_> its great
  38. <mattrick_> when she hates you, you will SUFFER
  39. <the_greenleaf_effect> @Mattrick_ makes a valid point
  40. <uraniumanchor> Well even though I didn't discover any magic bullet, I have a greater understanding of how that boss works now
  41. <uraniumanchor> So that makes me feel better :P
  42. <uraniumanchor> Huh, there's some dead code in his subroutines it looks like
  43. <uraniumanchor> HE's got a couple of bits of code that don't have any branches to them anywhere
  44. <shiningdragoon> he was also supposed to spit fire
  45. <shiningdragoon> but the devs said no
  46. <uraniumanchor> hahah
  47. <uraniumanchor> I was thinking maybe it had something to do with his bubbles, but his bubbles don't use the RNG whatsoever
  48. <uraniumanchor> Bubbles are completely fixed
  49. <uraniumanchor> hahah what the fuck
  50. <uraniumanchor> So I'm messing with memory values trying to see if I Can figure out what the bosses various states are
  51. <uraniumanchor> I set his little "am I moving or not" flag to a particular value and now not only is he not moving at all but his bubble patterns are completely wonky
  52. <shiningdragoon> anyway to ever adjust that value in game?
  53. <uraniumanchor> shining there IS a bit of code that sets his flag to that value, but I don't see any branches to it
  54. <uraniumanchor> So I don't think there's a way to reach it in practice
  55. <uraniumanchor> Dead code probably, there's definitely quite a bit of that in the cart
  56. <uraniumanchor> If we could but figure out a way to have the CPU jump to address $A73F it would lock up the boss and we'd be home free :P
  57. <shiningdragoon> might as well just credit warp (please never)
  58. <uraniumanchor> hahah fuck that
  59. <uraniumanchor> we'd make a new category for sure
  60. <uraniumanchor> Also, boss has 128 hp, and he changes bubble patterns at 64 and 32 hp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement