Posts for P.JBoy


P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Interesting that the SMV does that o_O Here's a link, the source is fairly clean
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
This TAS belongs in a museum... WOW Now to watch the other one hour and 58 minutes
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Those S circles are scroll PLM's, and for some reason you can grapple them, a more widely known place people find this is in the Crateria Mainstreet in two places (see here), this can be used to get through a platform, but I doubt it's of any use. The glitch only works on the top scroll of a vertical line of scrolls (as far as I know), things like those upwards arrows or tile extenders (like in the Kraid puke room) are what I mean.
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Growl simply fails after the opponent's attack has been minimised (which I believe is after 6 Growls)
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
*mind blown* Those were all just wonderful, a ton of fun to watch
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
natt wrote:
hmmf... avi.pause() isn't documented on the official vba-rr site. so... what's at 0x03000bde?
Oh damn, sorry guys, I never committed those avi functions to the SVN, I'll do that ASAP. EDIT: I tell a lie, it's been in there since 2010 and I didn't check the update logs that far back 0x03000BDE is the game mode:
00 Title
01 In-game
02 Soft reset
03 Map
04 Most cut-scenes
05 SA-X close-up
06 Erase SRAM menu
07 Intro
08 Game over
09 Ending
0A Died from SR388 collision
0B Credits
0C Demo
--0D Unknown--
0E Nothing
0x03000BE0 is a sub-game mode that takes the default value 2 unless door transitioning or other similar situations
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Here's a much simpler script
Language: lua

while true do if memory.readbyte(0x03000BDE) ~= 0001 or memory.readbyte(0x03000BE0) ~= 0002 then avi.pause() else avi.resume() end vba.frameadvance() end
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
I did not, I can't believe that's slower ;_; ...Never mind
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Haven't watched all of it yet, but so far Best Zazabi and Mega-X fights yet, all the Core-X sweet-spotting was perfect; that bomb wall-jumping was something rather elequent, lots of intelligent room strategies, your manipulation of frozen enemies was marvellous; loved the early ARC power bomb. I saw a certain new trick in the dark part of the Main Deck, take a look, you might be able to hex-edit it in yet
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
here's a list of 65816 opcodes I've made
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Loved every moment on this run; particularly of course, the boss fights, in both a stylistic way as well as an optimisational way. There were many screenshot moments in this, I'll go back and make some, for now, here's this: I'm glad my old poorly optimised run of this game helped you, and I'd love to know what you actually found useful :>
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Holy crap was that fast work, can barely wait to watch! (tomorrow)
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
I've never written anything about Ridley I'm afraid; and I don't really know how his AI works. All I remember is that I had to be in certain position ranges for him to shoot the fireballs, and if he didn't shoot any, I used the cheesing strat to make him swoosh to the other side. I'd love to know what makes him shoot the two rounds of fireballs, I only got him to do it twice I believe, and I think it was dependant on health in some respect. Good luck for the Zebetites, they were the absolute hardest part of the run for me. And also, I had no idea that Rio could be frozen
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
P.JBoy wrote:
lxx4xNx6xxl wrote:
Is it possible for you to make a file that lists for the Health and Weaknesses for the normal enemies in the game. If you can I would greatly appreciate it.
Sure, I'll add it after the exams; until then, here's this:
Ok, I had some free time
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
lxx4xNx6xxl wrote:
Is it possible for you to make a file that lists for the Health and Weaknesses for the normal enemies in the game. If you can I would greatly appreciate it.
Sure, I'll add it after the exams; until then, here's this:
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
If you wanna get more TASers hero of the day, you gotta start adding to the SuperMetroidTricks wiki page. It'd be great to have a section for the little micro-optimisations that happen throughout gameplay
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
For MUGG: VMV is the movie format used for the non-rerecording versions of VBA
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
amaurea wrote:
Which is exactly equivalent to what I originally wrote: NewRandom = 5*Random + 0x111
I don't think I'd have been able to simplify it to that, good to know you were right ^_^
amaurea wrote:
Did you disassemble this now, or is there a collection of these available somewhere?
A bit of both. Kejardon's website has a hell of a lot of info on Super Metroid's inner workings; I looked through the RandomRoutines.txt for the enemy drop routine and disassembled (well, see further) from that address. I played through the whole game recently without doing any game-breaking glitches while running a trace with the snes9x debugger; that had the whole of the routine conveniently disassembled, then I just added some comments. Am I allowed to presume you're well versed with SNES assembly by the way?
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Oh dear, I see where I went wrong. In that case: NewRandomlow = 5 x Randomlow + 17, NewRandomhigh = (5 x Randomhigh)low + 1 Here's the RNG routine: EDIT: code-spoilers didn't work http://codepad.org/tuBSLYKP And the enemy drop routine http://codepad.org/M108BH1q
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Submission text wrote:
This took quite some time to achieve, since framerules and lack of knowledge when it comes to Super Metroid RNG made it hard to determine when the Super Missile would drop
Allow me to give a little insight. The random number is a 16-bit value at $7E05E5 and there's a subroutine that generates the next random number when called. This subroutine is called every frame in the main game loop, so shouldn't be affected by lag. Almost every time the random number is read, the subroutine is called to generate the next one, and there are about 100 different places in the entire game that read the random number. The routine that generates the new random number: NewRandom = 5 x Randomlow byte + 5 x Randomhigh byte + 18. EDIT: NewRandom = 5 x Random + 0x111 The drop routine calls the RNG straight away and uses the low byte of this new random value as a 'target', the number is regenerated if the 'target' is 0. It loads the drop chances of the enemy: small energy, big energy, nothing, missiles, super missiles and power bombs; which should total to 0xFF. A flag is set ($0E1A) when Samus' health + reserve is <= 30, this flag is unset when she has recovered (health + reserve) to 50. If this flag is set, then only the chances of energy are considered, so for the following, the chance of nothing & missiles etc. are considered 0. Conversely, if Samus has max health & reserve, or max missiles etc., then that cannot be dropped, and its chance is considered 0. First: the routine subtracts the sum of the chances of supers and bombs from 0xFF; and sums the chances for energy, nothing and missiles; and calculates the former divide the latter. The routines then multiplies the chance of small energy by this fraction and checks if it's greater than the 'target', making the enemy drop it if it is; if it's not, it multiplies the (original) fraction by the chance of big energy, making the enemy drop it if it exceeds the 'target'; then with nothing, and finally missiles. If health, nothing nor missiles are dropped, then the chance of super missiles are checked against the 'target', not multiplied by the fraction this time; and finally, power bombs are dropped if the chance of super missiles + power bombs exceeds the 'target'. If none of these managed to exceed the 'target', or the enemy's drop chances pointer is 0x0000, then the default drop is nothing (this does happen). Final notes: There are a few odd routines that change $05E5 other than the RNG routine:
  • $05E5 is initialised at boot to 0x61
  • Polyp, set $05E5 to 0x11
  • Water/lava/acid swap the low and high bytes every frame
  • Sidehopper and Dessgeega seed the RNG routine with 0x25
  • Beetom set $05E5 to 0x17
I think that's it, though there may be a little more to the water one. Happy TASing, don't suppose anyone wants to put this into a useful Lua script...
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
100% would be ... weird anyway. If one collected all the items in the game, the collection would exceed 100%, since the percentage is calculated by dividing the number of [super] missiles/power bombs by the number one gets per tank (plus whatever equipment Samus has) and all the items respawn
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
Just use different directories for your respective VBA & vba.ini; that allows even more extensive customisation. If you still wanna submit it as a feature request, you can do so here
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
(The font's big due to [quote=Warp] being nested instead of [quote="Warp"]) I'd like to know how using only mouthwash compares to only brushing one's teeth; and is there ever any point in brushing without toothpaste?
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
The range between 7E0000 to 7E0019 is for miscellaneous values, it just happens that 7E0009 is set during item-get sequences, it's also set during all of Ceres
P.JBoy
Any
Editor, Experienced Forum User
Joined: 3/25/2006
Posts: 850
Location: stuck in Pandora's box HELLPP!!!
v13 on the Google Code repository is fine