1 2
15 16 17
24 25
Skilled player (1741)
Joined: 9/17/2009
Posts: 4981
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm not sure if it's been posted, but is there any information on how enemies choose to use which attacks? Is it just their current health (for some foes) and RNG?
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
It is dependent on RNG. It changes in-battle only as enemies or you perform an action (how much it advances RNG depends on what action). Certain bosses such as Cackletta's soul use different attacks depending on health. The threshold seems to be if they're below half of their health. Oh, also, item drops for normal enemies are determined at the moment you touch the enemy in the overworld as far as I know. For certain enemies or bosses (not sure) it depends on if you kill them.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
I was doing more research into what stuff changed stat-wise between the international and Japanese versions of the game, so I thought I'd post an Excel doc with all the data in it in case it's of any reference. It's got all the item stuff from before, plus enemy stats (including item drops and weaknesses / resistances to various attacks / statuses), the Bros.' level-up tables, and STACHE discounts by group. Equipment effects (Shroom Force, Power-D, etc.), enemy attack power, and the Bros.' attack power are pretty much the only things of note missing, since there weren't convenient tables in the game data for them. Link: https://dl.dropboxusercontent.com/u/64507723/mlss_uj_allstats.xlsx
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
MLSS Script v0.5
- Added "Run Event". You can choose the event from a list (depends on which ROM of the game is used) and it will be run on the spot.
- EditActionCommands: Fixed that the script sometimes crashed when closing the EditActionCommands display while the "Edit" form was not active.
- MushCalculator: Fixed that MushCalculator did not recognize the European ROM.
- Added SwingBros, CycloneBros, FireBros, ThunderBros to "Basic Info" and to "Notifications".
- Basic Info: Added indicator of how long it took to switch the brothers' places.
Please play around with the Run Event thing and let me know if you have questions or thoughts. I didn't go to search for pointers on the european version because I think nobody uses it anyway. Some explanations on events and on how "Run Event" should be used: Events are basicly cutscenes. There are two layers, which allows the game to run two events at the same time (but I haven't really seen it do so - I don't know the real explanation why it uses two layers). For each layer, there is an address that stores an event pointer, and an address that tells what to do with it (i.e. activity). There is also a timer address.: (All addresses are EWRAM, 4 bytes) Layer1: $4ac4 Activity* $4ac0 Timer $4a24 Pointer Layer2: $4b6c Activity* $4b68 Timer $4acc Pointer * 0 = not active, nothing happens 1 = active, the event is run 3 = if the event pointer is invalid, increments the event pointer until a valid one is found 5 = waiting for an object or brother to reach a certain position before running the event 11 = waiting for the timer address to decrement down to 0 before running the event Most cutscenes (events) are basicly "move sprite XY over there, play this sound, give him this animation pattern, fade out now, ...". If you force such events to run in a wrong room, then very unexpected behavior can happen, usually leading to the emulator's crash. Some events are robust, however, and can be forced to run almost always without consequences. This is because those events usually fade into the correct room or screen and then go on from there, rather than trying to do something with wrong objects in a wrong room. I have gone looking for those robust pointers and now you can select them from a list in my script and run them as you like. This includes - saving anywhere - shopping anywhere - fighting bosses at any time - going to certain points in the game I wrote those robust events can "almost always" be run without consequences. You see, as for events that start boss fights (and some others), if you beat the boss then you will often not be placed in the room where the boss was but will rather go on from where you were - and the game may try to run a post-battle event. And as said, bad things happen when cutscenes are forced to run in the wrong room. You can't just disable that post-battle event either, because then the game softlocks on a black screen after the battle. But you can overwrite it with another event, and I made my script so that it overwrites it with one that does nothing (specifically, the fade-in that happens after finishing saving the game). (As for the koopaling teleports in my script, you may need to be both brothers, and it may cause glitchy behavior if you are in another event already, so be cautious.) In the "Run Event" display in my script, the "Prevent problems" option does what I said above: Overwrites post-battle or post-Little Fungitown minigame dialogues and events with something that does nothing. The "Override" option will let you override events that are already running - this may cause unexpected behavior and may mess up the camera, so be careful, but otherwise should work well. If this option is turned off, you will not be able to run an event if there is already one running in the game. There are some known problems, like if you use the "Prevent problems" option with the koopaling teleports, then you may not actually teleport there. Just use savestates for safety before doing something. Speaking of which, be careful when running events while the game is faded out and don't load states right after attempting to run an event. Also: Battles, the staff credits, minigames are all handled differently and you cannot run anything when those are active - in fact, you can run something but it will be postponed to run until after the battle or minigame(not sure) is finished. Oh also: If you start a new game and go to some later point in the game directly, you will lack action commands (hammers, highjump etc.) and will be unable to use hammers in battle, and also may be unable to use bros attacks and flee in-battle. Be cautious. I may add something later so you get all that stuff automatically, but right now I don't know how it even works so I can't add it yet. The prefix for each list item is just for some clarity. It does not have any deeper meaning. There is Prog (progress-related), Boss, Game (mini game), Scr (screen) and Other (anything that doesnt fit in the other categories). I'm really not sure, but on US, the game may freeze when attempting to save the game where you aren't supposed to, but does not freeze on JP. Needs more testing to be sure about this one...
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Here's the actual constants used for calculating attack power (not counting equipment effects) in the (U) version. I'll add the (J) version equivalents eventually... https://dl.dropboxusercontent.com/u/64507723/mlss_damage_disassembly.txt Also, I'm not sure if I got the game versions or attacks mixed up at some point, but I did Chopper Bros. advanced on (U) for over 10 hits at x19 power, and it never dropped to xC, unlike what the older guide would suggest. EDIT: Fixed a few errors and added the Japanese version constants. Unsurprisingly, the Zero-DEF Thunder Bros. glitch doesn't work in the Japanese version.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Looked at some of the equipment effects today... Power-D multiplies counterattack damage by 1.75 in both versions, Pow-Up and Def-Up both temporarily increase the respective stats by 50% in both versions, and Lucky Mushroom gives you extra effective STACHE points in battle equal to (x33 x Mushrooms + x33 x Supers + x4C x Ultras + x66 x MAXs) / x100, again in both versions. The only effects that I couldn't figure anything out about were Item Grab (doesn't appear to change drop rate, give a bias to lower numbers to improve drop chance, or give extra rolls for more shots at a drop) and Lucky Attack (I haven't found where it's determined whether the next hit will be Lucky, though).
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Sorry for the repeated posts; with some help from the Yoshi's Lighthouse guys, here's how Lucky attacks work. EL = enemy level, ES = enemy STACHE (I believe that's just 2x EL), AL = attacker level, AS = attacker STACHE: If EL is 99, no Lucky chance at all. If AL * x100 is in range (xE7 * EL - 1, x119 * EL + 1) (so, AL is roughly 0.9 - 1.1 * EL): Lucky chance = (10 * AS * x100) / (ES * x100), clamped to range [6, 15]. If AL * x100 is in range (xC0 * EL - 2, x140 * EL + 2) (so, AL is roughly 0.75 - 1.25 * EL): Lucky chance = (12 * AS * x100) / (ES * x100), clamped to range [10, 20]. Else, Lucky chance = (6 * AS * x100) / (ES * x100) out of 100, clamped to range [4, 10]. If the attacker has the Lucky Attack effect from equipment, lucky chance increases by 15, to a max of 25. To determine whether a Lucky hit succeeds, roll the RNG, multiply by 100, take the high word (which is between 0 and 99, inclusive), and compare whether the result is less than the Lucky chance computed above.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Please always feel free to post more information. I'll work on discount prediction / attack prediction / lucky hits chance prediction for my script at a later time. When I get to it I'll probably get back to you to ask more information then. Lucky hits do not seem to work on bosses, btw. At least not when I tried with Luigi hammer on Queen Bean.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
I have a question about stat bonuses of coffee items. When you edit stats and level up, they get reset to what they are supposed to be. So there seems to be a hardcoded stat growth table within the game. But coffees can increase your stats permanently. So how is this bonus stored?
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
How are you editing the stats? I would have thought that edits made to the x02004800 area out of battle were permanent, assuming you didn't set them to over the max or something. Not sure how exactly the stats are verified, I could try to look into it later... As for Lucky hits not working on Queen Bean, could that just be because she resists hammer attacks?
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Yes, it's that 02004800 area. Whenever I edit pow to 9999 and then level-up, it gets set back to something small again. I'm pretty sure even if you had 9999 pow, hammering Queen Bean always does only 1 damage. So yes, there seem to be resistances in the game.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
The resistance data is in that massive Excel sheet I put up earlier; I was just suggesting that resisted hits might not ever give you a Lucky. I've definitely gotten Lucky hits on Tolstar before, so it can't be all bosses. Hmm, though, that's odd. I do seem to remember something like that happening with Gameshark codes back in the day, but I can't seem to reproduce it if I edit the x2004800 values between battles. Even if I set HP to over 1,000, it'll only cap it at 999 on a level-up. In any case, I can't find any values that go up when you use StarBeans drinks; maybe you're setting the "with-equipment" stat values and not the "base" ones?
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
1) I'm updating my item table but the "sell prices" in the themushroomkingdom guide differ from your guide's "costs". So I'm really confused what is the value I'm supposed to use... For example, Red Pepper is 30 in JP/50 in English according to themushroomkingdom. But it is 200 according to your guide. Also, if I were to use your values, your guide does not list cost differences (if there are any). There is also TCRF which seems to use same values as themushroomkingdom. 2) Are there differences as to which brother can use which clothing between English and JP? 3) I'm interested in having an indicator of which items are one-time opportunities.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
This guide here has far better information than the old one, including enemy stats, item stats, the Bros.' level-up gains, and STACHE discounts in both versions: https://www.dropbox.com/s/beg7ugxqc5kerqq/mlss_uj_allstats.xlsx?dl=0 This doc has the Bros.' exact attack constants in both versions: https://www.dropbox.com/s/578nae1sdqddh3x/mlss_damage_disassembly.txt?dl=0 I'll probably do a better write-up on this on my blog in the near future, but the basic formula is max(x66 x Pow x Pow-modifier - x33 x Def x Def-modifier, x200) x (additional modifiers) / x100, with some slight variations. As for your questions: 1) Prices in my guide are the base buying prices in the game; the base SELL price is that divided by 4, rounded down. 2) I think there are some, that's all in my guide in this post. 3) Golden Mushrooms are limited, and any boss drops and sidequest rewards are obviously limited. Also, in the (U) version, you can only get one of either the Piranha Swing and Piranha Suit. Just found out the Lucky hit chance formula is a bit different in the Japanese version (of course), looking into that at the moment.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
I don't know how to read your .xlsx files. As for the constants, that's looking good. I'll be able to make a damage prediction code, I think. 1) Should I assume Red Pepper has a COST of 120 in JP and 200 in English, and assume likewise with the other items? Because there is no item table that tells COST of items for both versions. Your guide only shows COST for English. 2) I'll check... 3) You can steal a Golden Mushroom from Fawful with Cyclone brothers (?) and then die and re-enter the fight. Other than that, I think I'll figure out what's one-time only... New questions: Is there a difference as to which items have which special effects? Or do the items have the same special effect on each version? Can you get a lucky hit and a critical hit at the same time?
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
If you're allowing the Swing Bros. Game Over exploit to count as multiple items, the only one-timers are the initial pants and badge, Bros. Rock, High-End Badge, Wool Trousers, Iron Pants, Casual Coral, Harhall's Pants, and Soulful Bros. from minigames, and Piranha Swing (exclusive-or Piranha Suit in (U)) from Piranha Bean. There are some gear and badges that can't be obtained at all, though, like Bros. Respect. I guess I didn't make it clear, but that .xlsx file has multiple worksheets; the 'Raw Data' and 'Lookup Values' aren't meant to be human-readable, but the rest should be relatively straightforward, and it all includes (U) and (J) stats. If the issue is not having access to Excel or Google Sheets, I could put it in image or text form, but most of the data looks best in a spreadsheet. I don't believe you can get Lucky+Critical; I didn't even know you could get a Lucky hit on Hand attacks until the other day, since I pretty much only used them when I knew they'd critical before. [Edit: You definitely can't.] Incidentally, still working on the Japanese Lucky! chance formula, there was some really weird math stuff that ended up being double-precision floating point calculations, so I should be able to finish figuring it out now.
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Turns out enemy STACHE is more complicated than just double the level; it's actually the average of the sum of the Bros.' level-up stats up through the enemy's level (I added the values to the Excel sheet above). As for the Japanese Lucky! calculation, given Enemy Level EL, Enemy Stache ES, Attacker Level AL, and Attacker Stache AS: If EL = 99, chance = 0. If (EL * xE7 - 1 < AL * x100 < EL * x119 + 1) (AL is within ~10% of EL): chance = (((AS - ES) * x1000000) / int(ES * x10000 * 1.2)) * xB + xA00, clamped to [6, 22]. If (EL * xC0 - 2 < AL * x100 < EL * x140 + 2) (AL is within ~25% of EL): chance = (((AS - ES) * x1000000) / int(ES * x10000 * 1.3)) * xB + xA00, clamped to [10, 30]. Else, chance = (((AS - ES) * x1000000) / int(ES * x10000 * 1.3)) * xB + xA00, clamped to [4, 15]. If the attacker's badge has the Lucky Attack effect, chance increases by 15, to a max of 40. The random chance from 0-99 is generated the same way as in the international version. Interestingly, there doesn't seem to be an overflow check for if (AS - ES) > 255, which I don't think is a problem in the international formula.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
I can read your table now and I appreciate it. Will be relatively easy now to carry the information over to the script, but I'm confused why Bean Trousers don't show up in my table anywhere... I hope I didn't mess up.. On the beanstar pants, what does First Strike with a strength of 3 mean? On Bros Life, what does BP auto gain with a strength of 15 mean? I'm concerned if I should structure my table just like yours, or if I should treat special effects seperately..
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Huh, I don't know; it pulled those values directly from the game data, and as far as I know there's no difference between those and any other gear with the same effects. Maybe they used to have +3 / +15 in the other stat, then had their effect changed later. I moved the "Raw Data" and "Lookup Values" sheets to the end in the Excel doc, btw, so that's why the item stats show up first now. If you're using Chrome and the Dropbox site to view it, there should be a series of tabs at the bottom of the page where you can switch to "Bro Stats", "Enemy Stats", or "Stache Discounts".
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Yes, I can see the sheets at the bottom now. I didn't find those the first time I tried to view it. I wanted to post this earlier but TASvideos was down all day...: As for Bean Trousers, I wonder if it's address 0200494D and all subsequent pants need to be pushed by 1 byte. http://tasvideos.org/GameResources/GBx/MarioAndLuigiSuperstarSaga.html#Pants
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Seems plausible, I don't know the exact locations of the item slots in RAM, but I'd imagine the order's the same as in the game data. Also, as I mentioned before, the addresses for the Bros.' stats (max hp+bp, pow, def, spd, sta) on that page are all including equipment; the base stats are all 2 bytes beforehand, and changes to them are permanent.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
Not sure if we discussed, but did you check for stat progression differences between US and JP? I know the bros start off with different stats (at least health) and the bonus roulettes give different amounts. But do the regular stat increases have differences?
jdaster64
He/Him
Joined: 12/1/2012
Posts: 103
Location: New Donk City
Yeah, they do; the stat progressions are in the "Bro Stats" tab in the Excel sheet. Not sure how bonuses work, though.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
MLSS Script v0.6 r1
- Fixed that "Edit Stats" didn't work sometimes.
MLSS Script v0.6
- Added "Edit Green Pipes": This allows you to toggle any of the 9 green pipes on or off.
- Added "Edit Stats": This allows you to edit stats and experience. Note: This will only apply outside of battle. Also, stat changes may be negated on leveling up.
- Run Event: Added Green Pipe Screen (J and U). The problem prevention for this one is that it prevents the game from softlocking if no green pipe is activated yet + on the Japanese version where the green pipe screen index needs to be set to prevent it from being 0 and softlocking.
- Run Event: Fixed that the problem prevention didn't work correctly, or not at all.
- Item Display: Quest items and coffee items are now included.
- Item Display: Added settings. You can now set how many entries are displayed and which kind of items are displayed.
- Item Display: Fixed that Bean Trousers were missing and all subsequent pants were wrong.
- Basic Info: Fixed that the display would not activate when transitioning or loadstating from title screen to ingame.
- Basic Info: 'Experience to Level-up' doesn't cap at level 20 anymore.
- Basic Info: Fixed that the mush power value could be rounded up to the next integer erroneously.
- Basic Info: Fixed that Luigi's experience required to level up was based on Mario's level instead of his own.
- Edit Position: Fixed that Moonjump and Through Walls didn't work sometimes.
- Edit Position: Fixed that Moonjump could occur when walking off a ledge.
- Edit Position: Fixed that Moonjump was cut short sometimes when jumping across ledges.
- Edit Position: Moonjump and Through Walls will no longer occur during events.
- Edit Position: Added Moonjump amount slider.
I created a page for this script. http://tasvideos.org/Mugg/MLSSLuaScript.html Next update will be a while, because I'm going to have no time in the future. At least all things that have been added so far should work bug-free.
Editor, Expert player (2330)
Joined: 5/15/2007
Posts: 3933
Location: Germany
MLSS Script v0.7
- Item Display: Fixed a bunch of bugs.
- Item Display: Added setting to toggle between displaying items you have in your inventory and all possible items.
- Item Display: Added setting to switch between English and Japanese item names.
- Item Display: You can now edit the amount of items in your inventory. This includes consumables, beans, badges, pants, quest items and coffee items. You can also equip and unequip clothes, badges and coffee items.
Making that item display was a looot of work. I will most certainly not look forward to modifying the code for it, ever again... But I hope it pays off and I'm sure it will. Editing items is something I think many will be interested in.
Next update will be a while
This time I mean it...
1 2
15 16 17
24 25