Author Archives: jdaster64

The Trick Is To Not Get Hit – Evasion Badges in TTYD

So luck badges.  Years ago I tried doing research into the likelihood of Close Call, Pretty Lucky, and Lucky Day causing enemies to miss Mario in TTYD, taking thousands of samples for each, and summarized the badges’ effects among a bunch of others in my Badge Hunting + Stacking series.  Then after getting back into TTYD assembly reverse-engineering in the wake of the Palace Skip discovery last year (at that point having 2+ years actual software engineering experience), I found the exact rates of the badges, updated that post, and left it at that.

But for the 4 years since that initial post (and 5+ years since the initial statistical research), I took for granted that given evasion rates for each badge, it would be obvious how those ought to be combined into one evasion rate when stacked or combined.  Subsequent recent experience with a larger community of Paper Mario players has shown that not to be the case, so let’s do a deeper dive, shall we?

Brief note – all of the principles in this post could be applied to the evasion badges in the original Paper Mario as well, except the miss probabilities are a bit different (10/101 for Pretty Lucky, 20/101 for Lucky Day, and 30/101 for Close Call).  And there aren’t multiple copies of each to stack, obviously.

Calculating Evasion Rate (Independent vs. Disjoint Probability)

The crux of the issue comes down to badges’ evasion chances being independent of one another, and the fact that the math involved with that is un-intuitive compared to just adding disjoint probabilities together.

Illustrated here is a representation of what disjoint treatment of badges would look like, and the independent probabilities they actually have (assuming you have one Pretty Lucky, one Lucky Day, and one Close Call badge on in TTYD):luck-example

That’s a lot to take in, so let me elaborate in text form.

If badges represented disjoint probabilities of being missed, then you would just sum their evasion rates to get the total evasion rate; i.e. PL+LD+CC = 10 + 25 + 33% would be 68%, and the odds of getting hit would be 32%.

In actuality, though, evasion is calculated by multiplying the indepedent probabilities of the badge resulting in a hit; i.e. PL+LD+CC = 0.90 * 0.75 * 0.67 = 0.45225 = 45.225% chance of hit, or 54.775% chance of a miss.

This extends to multiple badges of the same type; i.e. each Pretty Lucky multiplies your chance of getting hit by 90%, every Lucky Day by 75%, and every Close Call by 67%; i.e. your total evasion rate is:

1 – (1 – 0.10)PL * (1 – 0.25)LD * (1 – 0.33)CC

But which of the evasion badges is the best?

(hint: it’s Close Call.)

So that settles the question of how badge evasion is calculated, but how do you compare the effectiveness of each of the three evasion badges, particularly Pretty Lucky and Lucky Day?  You cannot divide the rates by their BP cost to get an idea of “evasion per BP”, since that’d essentially be falling back on the incorrect disjoint-probability model.

Instead, since you already multiply the probabilities of badges together, you need to see what number needs to be multiplied by itself N times to produce the proper hit rate for an N-BP badge.  Thankfully, math has a helpful name for that concept, the radical / Nth root, but we can do one better and use logarithms to convert all the messy multiplication (for multiplying the effects from each of the types of badges), exponentiation (for getting the term for a number of a specific badge), and radicals (for getting the effect per BP) into much nicer addition, multiplication, and division respectively.

So, let’s take and compare the log base 0.5 of each of the badges’ hit probabilities, then (i.e. how many times you would have to multiply 0.5 by itself to get the hit rate).  The choice of 0.5 is admittedly arbitrary, but this way we can compare it to something meaningful; Repel Capes / Dodgy Fog (or enemy Dizziness) cause a 50% chance of evasion.

Badge Hit Rate log0.5(Hit Rate)
Pretty Lucky 0.90 0.152
Lucky Day 0.75 0.415
Close Call 0.67 0.578

This gives us some concrete insight into the badges’ real relative worth; Pretty Lucky is 15.2% of the effect of a Repel Cape, Lucky Day is 41.5%, and Close Call about 57.8%.  But we can do one better, and divide the log-transformed rates by the BP cost to compare the badges’ worth per BP.

Badge Hit Rate log0.5(Hit Rate) log0.5(Hit Rate) ÷ BP Cost
Pretty Lucky 0.90 0.152 0.076
Lucky Day 0.75 0.415 0.059
Close Call 0.67 0.578 0.578

Yikes, no contest now; Pretty Lucky is a good deal better than Lucky Day per BP (7.6% of a Repel Cape per BP vs. 5.9%), and Close Call destroys them both.

The Power of Math!

Rephrasing the effects of the badges this way means we have another way of representing overall evasion:

1 – (0.5)(0.152 * PL + 0.415 * LD + 0.578 * CC)

While not perhaps easier to calculate this way, it does make one fact perhaps more obvious; that being, there’s no way to get 100% evasion, as no matter how high the exponent gets, nothing will make 0.5N equal 0.

Except, technically that’s not actually true; since all RNG calls for badge evasion happen back-to-back, and Paper Mario: TTYD has a finite number of RNG states, technically it could be possible to wear enough badges that there’s no string of consecutive RNG states that do not result in at least one “miss”.

If using just Close Calls, this is actually possible to achieve at 52 badges; using the formula about 0.5(0.578 * 52) = 0.5(30.0) = about a 1/1,000,000,000 chance, but in fact no successive run of 52 out of the 4,294,967,294 RNG states produces all non-misses.  Not practical in purpose, as a “mere” 17 badges already results in a miss 999 out of 1,000 times, but interesting as a curiosity.

The Mega-Comparison Chart of Awesomeness

Rather than grab a calculator every time you want to get the exact evasion rate for an arbitrary combination of badges, here’s a helpful chart that compares the evasion rate for various combinations of 1-3 Pretty Luckys, 1 Lucky Day, and 1-3 Close Calls:

luck-badges-ttyd-full.png

You can extrapolate past the end of the chart by imagining more copies of the bars at the top added to the end, bearing in mind that adding another span of the marked length halves the hit rate.  (Of course, as a rule of thumb, if you’re bothering to badge hunt for more than 2 Close Calls, you’re probably going to get missed often enough (70%+) that you don’t really need to care about exactness.)

Hopefully this doesn’t end up being more confusing than the original blurb in the badges article, but I’ve said my piece at this point. Close Call master race!

Advertisements

’00s Mario RPGs’ Item Drops: Weights? Rates? Let me Elucidate…

Random enemy item drops have long been a focus of my Mario-RPG stat-gathering and what-not – there’s just something satisfying about getting extra items or missable equipment when it’s not guaranteed, and I always thought it’d be nice to know the odds.

Well, over time, I’ve gotten proficient enough in memory hacking and assembly to be able to interpret the routines and/or RNG calls responsible for item drops in the first three Mario & Luigi and Paper Mario games (since those are the ones that I’m the most experienced with, and whose systems have widely-accessible emulation), and the ways they represent the possible item drops in data form, and then use that data to determine what items to drop and when, vary wildly from game to game.  Hence, I’ll go into detail in how it works for each of these six games (links to the actual drop data will be at the end of the post).

Paper Mario (64)

This is the Mario RPG I’d been curious about drops for the longest, and somewhat ironically, it took me the longest of these six to find out anything concrete about how item drops are determined; these findings here are the first I’ve gathered on the matter.

Let’s take a look at Pleasant Path Koopa Troopas’ item drop list, since they’re one of the first to be able to drop multiple types of items:

Global Rate Item 1 Weight 1 Item 2 Weight 2
5 Mushroom 3 Koopa Leaf 7

This means that 5%* of battles against enemy sets led by a Koopa Troopa will drop an item, and of those items, Mushrooms and Koopa Leaves appear with frequency 3 and 7, respectively (30% and 70% of the time there is a drop, or 1.5% and 3.5% including the overall drop chance).

* Note: As alluded to in my Power Bounce article, Paper Mario 64’s RNG is weird in that it generates numbers from 0 to N inclusive (ergo, N+1 different values) when called with rand(N), meaning there are a lot of cases where there’s one extra value than intended. This is no exception, so the global drop rate is actually 5 out of 101, and though I haven’t checked, it’s possible that the weights between different items might get slightly messed up as well (probably giving the last item +1 weight, if so).

Also of note, both Paper Mario and Paper Mario: TTYD’s drop tables are assigned by encounter, not by enemy type, so it’s possible I missed a couple more battles where the drop tables are different the ones listed for the enemy type.

Paper Mario: The Thousand-Year Door

I’ve already gone over this at length in a previous article, but I might as well have it here too for completeness’s sake. While most enemies only have one or two possible drops in PM64 (aside from a few weird ones like Shy Guys that have up to five), a good number of enemies in TTYD have up to five items + three badges that can be dropped.

Here’s a sample drop table (take a guess what enemy’s, at this point):

Item Hold Weight Random-Drop Weight
None 200 300
Super Shroom 10 10
Maple Syrup 0 10
Thunder Bolt 10 10
Point Swap 0 15
Fright Mask 0 10
Happy Flower 0 2
Flower Saver 0 1
Flower Saver P 0 1

Notably, all enemies have the same “None” weights, normal items’ weights are either 5, 10, 15, or 20, and badges’ are 1 or 2.

The hold weights are used to determine whether an enemy will hold an item/badge in battle (or have Ms. Mowz steal an item/badge, if they are holding nothing).  For example, in this case, the enemy will hold a Super Shroom 10/(200+10+10) = 10/220 = 4.54% of the time.

For drops, there are three possible scenarios; the game will either try to drop a held item, a random drop item, or nothing.  The relative probabilities of these cases are as follows:

Held Drop Random Drop No Drop
Normal battle 1 1 2
Normal battle (N Item Hog badges equipped) 1+N 1+N 2
Pit of 100 Trials battle 1 1 3
Pit battle (N Item Hog badges equipped) 1+N 1+N 3

If the held drop case is selected, then one of the items the enemies were holding in battle is dropped at random (items used by enemies are considered, but not ones stolen by Ms. Mowz).  If no enemies were holding items, nothing will be dropped, unless Item Hog badges are equipped; then there is a 50% chance one of a set of items will be dropped:

item-hog-list

If the random drop case is selected, a random drop is selected from the front enemy’s random drop column, weighted accordingly.  For example, the chance of a Flower Saver being chosen is 1/(300+10+10+10+15+10+2+1+1) = 1/358.  Given there being such a high weight for no random item, in addition to having to have the random drop case selected in the first place (a 1/3 chance with an Item Hog, or 2/7 with an Item Hog in the Pit of 100 Trials), getting any random drop is pretty rare, especially badge drops.

Super Paper Mario

Compared to the wealth of complication in TTYD’s system, SPM’s is much more straightforward; essentially the same as the original Paper Mario’s.

Here’s the drop data for a normal Goomba:

Global Drop Rate 4%
Item Name Weight
Dried Shroom 100
Cake Mix 100
Big Egg 100
Honey Jar 100
Shroom Shake 200
Catch Card 50

Pretty straightforward.  Notably, poison-inducing enemies often have 100% global item drop rates (as might be pretty evident when playing the game).  Doesn’t mean you can’t get unlucky in a pinch and get a Catch Card, though.

Mario & Luigi: Superstar Saga

Unlike the Paper Mario series, M&L games have been pretty consistent about the pools of items enemies have to draw from from the very beginning – at most one standard drop, one rare drop, and every enemy in a battle can independently drop one of its items. Superstar Saga is a bit of an oddball in how it handles those two drops, though.

Here’s Bob-omb’s data, for an example:

Normal Item Weight Rare Item Weight
Nuts 6 Red Pepper 10

Uniquely to the series, only the “normal” item can drop under normal circumstances, and the chance of it dropping is just the normal item’s weight out of 31 (yes, 31; they only had five bits to spare, I guess).  So Bob-ombs drop Nuts about 19.3% of the time.

If you equip the Gameboy Horror SP accessory, then you always receive the Rare Item if the enemy has one, no matter what the weight is (even 0, which does happen; Troopeas in the US version have Super Nuts as a 0-weight Rare Drop).

Swing Bros. Advance is where it gets interesting; here, and only here, are both items treated as weighted item drops.  In Bob-ombs’ case, then, you’ll get Nuts 6/16 (37.5%) of the time, and Red Peppers 10/16 (62.5% of the time).  Note that Woo Beans cannot be stolen in this way, but their weight does contribute (so Tanoombas with their “Woo Bean, 20 / Green Pepper / 10” table only drop Green Peppers a third of the time, and nothing the other two-thirds), and there’s no way to get an item with a 0 weight.

Mario & Luigi: Partners in Time / Bowser’s Inside Story

Only recently did I discover how these rates are actually calculated, but it’s consistent between these two games (and possibly later games in the series as well, but I have no experience with their data).

Here’s Shroob Rex’s pair of items:

Normal Item Global Item Rate Rare Item Rare Item Rate
Mix Flower 15 100-Point Pants 15

Until recently I’d been interpreting these as each having a 15% chance, since nothing in Partners in Time had more than a 50 for either (although some enemies in Bowser’s Inside Story did, leading to confusion on my part about enemies whose “rates” summed to over 100, but no further research).

As it turns out, though, the numbers are misleadingly ordered in the data; it turns out this means that Shroob Rexes drop an item 15% of the time, and 15% of those items are 100-Point Pants (thus meaning 12.75% / 2.25% overall rates for the items, respectively).  Equipping the Treasure Badge skips the first check entirely when the enemy is defeated by a Bros. Item, meaning 85% of Rexes drop Mix Flowers, and 15% drop 100-Point Pants.

I don’t offhand know exactly how the Item Gloves work in BIS, but I imagine it might cap some enemies’ global drop rate so as not to get an item every attack from bosses (though notably, likely not Shroobs‘); might be worth looking into in the future.

Item Drop Data Resources:

Paper Mario (64)
Paper Mario: The Thousand-Year Door
Super Paper Mario (data reverse-engineered / extracted by aldelaro5)

Mario & Luigi: Superstar Saga
Mario & Luigi: Partners in Time
Mario & Luigi: Bowser’s Inside Story

That’s all for this post, stay tuned soon (hopefully) for an in-depth look at evasion badges in Paper Mario: TTYD.  In the meantime, join my Discord server if you have suggestions for other mechanics you’d like to see get a deeper dive, or just want to chat Paper Mario or what-have-you.

Superstar Saga’s Stateside and Overseas Stats – A Side-by-Side Size-up

Well, this post has certainly been entirely too long in coming, and hearing a credible rumor of a potential upcoming remake / port of Mario & Luigi: Superstar Saga for 3DS, this absolutely would be the time to get this out there.

I’ll go ahead and say it; much as I love the first three Paper Mario titles, and have done more than a fair number of playthroughs and mechanics-investigation, Mario & Luigi: Superstar Saga is easily my favorite Mario RPG, hands-down (and the rest of the M&L series doesn’t even come close to that title).  May be to some degree due to nostalgia (even though I’d already played PM64 many times by the point I was introduced to MLSS); there’s certainly nothing like playing through Superstar Saga with a sibling on a GameCube Game Boy Player w/ 2 controllers hooked up.  At any case, I’m a huge fan of its simplicity, the fast-paced action as a contrast to PM64 / TTYD’s nearly chess-like calculated strategy, and its brazenness in throwing the Mario brand’s familiar locales and art style to the breeze, while still throwing in a bunch of nods to its roots (and even some fascinating cut content doing the same with other Nintendo properties at the time!).

All that praise aside, the one thing that stood out to me as subpar about Superstar Saga, even on the earliest playthrough, was that it was hardly the best balanced game.  Items give ridiculous amounts of restoration for a casual player (no one in their right minds will have 120 HP upon reaching Little Fungitown), Mario’s Bros. Attacks dwarf Luigi’s in attack power (even with the Bros. at similar POW), the bosses’ EXP curve is all over the place (Cackletta gives 900 EXP at her first appearance, when the previous boss gives 260 and the next at most 300), and the Mush Badges deal downright ludicrous amounts of extra damage per hit, especially if you’re already good at dodging attacks.  Strangely enough, though, a good chunk of these oddities are absent in the Japanese release of Superstar Saga.  Indeed, despite the North American and Japanese versions being released only a week apart (and having been built only slightly longer apart than that), there are a staggering number of balance differences between the releases (to say nothing of the much-needed Heart Blocks in hard-to-leave areas, and a few welcome user interface upgrades; more on that on TMK’s excellent localization changes article).  Presumably the versions diverged and were developed in parallel earlier than that, but whatever the case, let’s see just how many things were altered…

Enemy Stats

Obviously there’s too many changes to note in plain text here, given that there’s over 100 unique enemy targets in the game, each with a dozen or so salient parameters.  The full sheet of stats can be found at the bottom of the post, alongside the stats for items and such; meanwhile, I’ll note some of the more notable changes here:

  • Beanbean Castle Town enemies got their EXP yields shattered compared to the middling amounts in the US version.  Sharpea and Sworm both yield 2 (whereas the latter used to give 14), and the tougher ones yield 7-14 (rather than 16-20).  In addition, Lakipea got a massive SPEED increase, and Tanoombas’ stats were dramatically increased across the board (in exchange for a 20-coin reward).
  • The EXP curve was smoothed considerably in most areas; notably, Bowser’s Castle enemies all yield from 90-130 EXP (adjusting the outliers 80 for Sniper Bill / 40 for Boo), and several enemies (notably “????”) from Gwarhar Lagoon give considerably less.
  • EXP / coin oddities caused by improperly assigning those stats to different forms / parts of the same enemy / boss were mostly fixed.  De-winged Parabeanies and Paratroopeas give more EXP than in their winged form rather than less, Chomp Bros. no longer drop their wallets alongside their Chomps, Mom Piranha yields coins regardless of her final color, and the boss EXP curve is much saner (Cackletta gives 300 instead of the unintended 300×3, Trunkle 500 instead of 1000-1030, and Wendy and Lemmy’s fakes no longer give that odd 1 coin apiece).
  • The Koopalings’ HP and DEF are a lot more variant, and their EXP climbs steadily from 550 to 850 rather than being a flat 800 apiece.
  • Not stat-related per se, but Cackletta’s final form allows you to get the first turn regardless of SPEED, rather than likely killing you outright if your Bros.’ SPEED are both under (the fairly high value of) 120.
  • Thankfully, for the completionists, Piranha Bean no longer has mutually exclusive one-time item drops (pawning off his rare drop on Ludwig instead).

Item / Equipment Stats

Again, a lot of changes, but these are among the most notable:

  • Non-MAX Item restorations were reduced considerably; Mushrooms and Nuts both restore 25 / 45 / 75 HP, and Syrups restore 20 / 35 / 55 BP.  In exchange, the prices for the MAX items (including 1-Up Supers) and Nuts ballooned considerably.
  • Red / Green Peppers’ effectiveness were halved, from a +50% boost to POW / DEF to only +25%, and sell for only 30 (to 60) coins rather than 50 (to 100).
  • Turn-order affecting clothing was made preposterously more expensive; #1 Trousers and Beanstar Pants (which were for some reason made Mario- and Luigi-exclusive), as well as Peachy Jeans and Scandal Jeans were all put in the slowest-growing STACHE discount group, and their base cost is upward of 1,000 coins apiece (for comparison, nothing was sold for over 600 in the US version).
  • A handful of the later “standard” equipment got bumps in price and stats (i.e. Casual Slacks got boosted from +70 DEF / +20 HP to +70 / +30, and General Badge changed from +45 POW / +15 BP to +55 / +12, in exchange for ~doubled prices).
  • If First Strike was considered broken before, apparently Random G was considered worthless; both Harhall’s and Random Slacks got substantial boosts in stats (+60 HP to +100 HP, +60 DEF to +90 DEF).
  • Finally, Mush Badges got a three-fold and much-needed nerf:
    • The added damage from each Mushroom shrunk from ~0.20 / 0.20 / 0.25 / 0.30 to ~0.08 / 0.10 / 0.12 / 0.20 for each normal / Super / Ultra / Max Mushroom, respectively, for a total possible boost of 48 damage per hit rather than 93, most of which comes from expensive Max Mushrooms.
    • The badges no longer have a base POW stat increase, but nominal increases in BP instead.
    • Their prices roughly doubled (probably could have stood to be higher still, but oh, well).

On the note of STACHE, item discount rates were generally slowed across the board in the JP version, both intrinsically in the discount growth functions, and extrinsically from the Bros. getting less STACHE from level-ups (especially after 40; more on that later).

Here’s a comparison table of how many STACHE points are needed to make each of the six STACHE “discount groups” hit a given buy discount in the US version:

Rate DG 0 DG 1 DG 2 DG 3 DG 4 DG 5
6% 0 20 33 36 52 81
10% 13 22 34 38 55 85
15% 14 23 36 40 57 87
20% 16 30 41 43 59 89
25% 19 32 50 46 61 91
30% 21 35 53 51 63 95
35% 25 37 55 56 73 101
40% 29 40 58 68 80 110
45% 40 47 60 81 84 122
50% 53 57 75 106 103 146

And here are the respective rates in the JP version:

Rate DG 0 DG 1 DG 2 DG 3 DG 4 DG 5
6% 0 22 33 45 55 78
10% 15 24 36 49 57 80
15% 19 27 39 53 60 82
20% 22 33 43 58 62 85
25% 26 39 52 63 65 87
30% 31 42 55 70 78 93
35% 37 45 58 79 82 105
40% 47 55 67 89 91 122
45% 65 73 92 113 116 147
50% 90 98 117 138 141 172

Bros.’ Level Up Progression

Not a lot of huge tweaks here; in the JP games, Mario & Luigi both get a BP boost during the early levels, have slightly higher POW / DEF respectively through the mid levels, and (similar to most successive games in the series) get substantially lower stat gains after level 40.  The EXP required for level-ups wasn’t tweaked at all between versions, notably.

Here’s the sum of the Bros.’ natural level-up stats through levels 10, 40, and 99 in the US version:

Mario HP BP POW DEF SPEED STACHE
Lv. 10 20 15 29 24 34 14
Lv. 40 56 28 96 89 93 91
Lv. 99 86 45 181 166 210 193
Luigi HP BP POW DEF SPEED STACHE
Lv. 10 25 18 27 27 22 12
Lv. 40 65 37 85 98 70 85
Lv. 99 98 58 163 185 163 210

and in the JP version:

Mario HP BP POW DEF SPEED STACHE
Lv. 10 20 22 30 24 34 14
Lv. 40 56 35 100 87 93 83
Lv. 99 76 50 152 137 147 144
Luigi HP BP POW DEF SPEED STACHE
Lv. 10 25 27 27 28 22 14
Lv. 40 67 46 85 106 70 89
Lv. 99 87 62 137 155 125 149

Attack Power

Since I haven’t as of yet done a post on Superstar Saga‘s battle mechanics, here’s the base damage formula used by solo and Bros. attacks:

Solo attacks:
0.4 * (Attacker POW – 1/2 * Defender DEF) * (attack constant K)

Bros. attacks:
0.4 * (Attacker POW – 1/2 * Defender DEF) * (success constant S) * (attack constant K)

(Enemy attacks are calculated the same way as the Bros.’ solo attacks, with an attack constant of 1.)

As it turns out, all of the solo attacks have the exact same constants between versions, but for the sake of completion, I’ll list the basic attacks’ constants here as well (yes, the Hammer constants do vary based on the type of Hammer!):

Attack Normal (Mario) Lucky (Mario) Normal (Luigi) Lucky (Luigi)
Jump 1.20 2.30 1.00 2.00
Normal Hammer 0.90/1.00/1.10 2.10 1.00/1.15/1.30 2.50
Super Hammer 0.80/1.00/1.20 2.10 0.60/1.13/1.36 2.50
Ultra Hammer 0.80/1.05/1.30 2.10 0.80/1.10/1.40 2.50
Hand 1.15 2.20 1.15 2.20
Counterattack 0.50 0.50
First Strike 0.50 0.50

Most of the Bros. Attacks’ base attack constants and success constants were changed between versions.  Rather than list all of the possible constants for all possible Action Command combinations for all attacks (since there are a lot, and they’re all in the doc at the bottom anyway), I’ll just list the (success constant S) * (attack constant K) products for each attack’s perfectly executed form, and whose POW is responsible for dealing the hit.

Here are those constants for the US version:

Attack S * K (Normal) S * K (Advanced) Attacker
Splash Bros. 3.60 3.17 Mario
Swing Bros. 5.76 (max speed) 5.76 + a marginal amount Luigi (M+L on Advanced)
Chopper Bros. 3.66 (for 10 hits) 4.56 (for 5 hits) Mario
Fire Bros. 2.0 (for 8 hits) 3.60 (for 8 hits) Mario
Bounce Bros. 3.00 1.20 apiece Luigi (both on Advanced)
Knockback Bros. 2.88 4.90 (for 5 hits) Mario
Cyclone Bros. 2.16 (for 5 hits) 2.52 (for 6 hits) Mario
Thunder Bros. 0.60 2.10 Luigi

And here are the constants for the JP version:

Attack S * K (Normal) S * K (Advanced) Attacker
Splash Bros. 2.76 2.64 Mario
Swing Bros. 4.80 (max speed) 4.80 + basically 0 Luigi (M+L on Advanced)
Chopper Bros. 3.48 (for 10 hits) 3.96 (for 5 hits) Mario
Fire Bros. 3.08 (for 8 hits) 3.96 (for 8 hits) Mario
Bounce Bros. 2.94 1.56 apiece Luigi (both on Advanced)
Knockback Bros. 2.40 4.08 (for 5 hits) Mario
Cyclone Bros. 2.31 (for 5 hits) 2.90 (for 6 hits) Mario
Thunder Bros. 1.56 2.86 Luigi

In addition to balancing the attacks, the JP fixed a bug where the fewer Action Commands were landed during Thunder Bros., the stronger the stat-dropping effect would be on its target (presumably due to setting the multiplier directly, rather than subtracting it from 1.0). Here are the (outrageously broken) effect strengths in the US version:

First Command Second Command All Commands
Normal DEF x0.0 DEF x0.12 DEF x0.333
Advanced DEF x0.0 DEF x0.275 POW x0.285

Whereas the JP version only drops stats if all action commands are executed properly (x0.7 DEF for the normal form of the attack, and x0.8 POW for the Advanced).

Lucky Chance

Finally, for one brief bit of trivia, the calculations that go into Lucky hit calculation vary considerably between the US and JP versions of the game. The formula for Lucky calculation is as follows:

luckyChance = clamp(LuckyBase + LuckyMult * playerStache / enemyStache, MinChance, MaxChance)

where the enemy’s STACHE is determined by the average of the Bros.’ natural STACHE stats at its own level, and LuckyBase, LuckyMult, MinChance, and MaxChance are constants that depend on how close the enemy and player levels are (one set for if the levels are within 10% of each other, another for less than 25% apart, and a third for more than 25% apart).

The values for those constants in the US version are as follows:

Level Difference LuckyBase LuckyMult MinChance MaxChance
Within 10% 0% 10% 6% 15%
10-25% Apart 0% 12% 10% 20%
25%+ Apart 0% 6% 4% 10%

and the values for those constants in the JP version:

Level Difference LuckyBase LuckyMult MinChance MaxChance
Within 10% -0.83% 9.17% 6% 22%
10-25% Apart -1.54% 8.46% 10% 30%
25%+ Apart -1.54% 8.46% 4% 15%

In addition, wearing a badge with the “Lucky Attack” effect increases chances of a Lucky hit by a flat 15% after the previous calculations (to a max of 25% in the US version and 40% in the JP).  But in short, the JP version has a higher cap on Lucky chances, but scales more evenly regardless of the level difference.

Also as a side note, I haven’t looked into it particularly deeply, but I suspect the JP version’s formula implementation has the potential to overflow to particularly low Lucky chances if the attacking bro’s STACHE stat is a bit more than 128 (or 128 + a multiple of 256) above the opposing enemy’s. Not likely to occur without a bunch of StarBeans drink farming, at any rate.

 

Well, that pretty much sums up the stat-based changes between the US and JP releases of Superstar Saga. Given that most of the balance changes in the latter were in my opinion for the better, I’m hoping that the alleged Superstar Saga remake ends up basing its stats off of that version. We’ll have to see, anyway.

You can find a spreadsheet of all the enemy stats, item stats, attack constants, and level-up progressions in both versions of the game here. Fingers crossed that we get a bunch more M&L:SS stuff to look at in an upcoming release!

Power Bounce Caps: Not Quite Infinity+1

If like me, you were a casual fan of Paper Mario 64 back in the day, you might have wondered why you were able to get a ton of Power Bounces on enemies normally, but always crumbled under pressure when trying to use them against a boss. Well, this’ll probably come to no surprise if you’re into the speedrunning / TAS-ing scene now, but it turns out that in both Paper Mario 64 and TTYD, there are hard limits to how many times you can Power Bounce in a row, especially on bosses.  Let’s dive into how those are determined!

Also for completion, I’ll give the frame windows for how long you have to execute the Action Command each bounce, since they do get tighter on the later bounces.

Paper Mario 64

Though not that technically complex, the way the cap is determined in Paper Mario 64 is… well, rather indirect.  Where you end up getting capped also tends to have pretty heavy variance, with most of the caps being early on, but with an arbitrarily long tail.

Each enemy/boss has a single value that gets fed into the calculation, with a max of 100 (Goombas, Fuzzies, Shy Guy, et al.), and a minimum of 50 (Final Bowser, prior to the Twink battle), which I’ll call the Cap Multiplier, or Cap% for short.

A value in memory (I’ll call it the “bounce chance”, or BC) is set to 200 on the first bounce, and for every subsequent bounce, this value is multiplied by the Cap%, then divided by 100, and rounded down to the nearest integer. For example, if Cap% is 50, the BC will take on values of 200, 100, 50, 25, 12, 6, 3, 1, and then 0 for all subsequent jumps.  On each bounce, a random number from 0 to 100 (inclusive) is generated; if that number is higher than the current BC value, then no more jumps will be possible afterwards.

This will almost always be the limiting factor of a Power Bounce on anything with a Cap% < 100, since the timing windows are fairly lenient, giving you 7 frames at 30fps for the first bounce, and 1 frame fewer each subsequent bounce until it hits a minimum of 2 frames at 30fps (2/30 seconds) on the sixth bounce, totally reasonable compared to TTYD’s 3/60-second Superguards or SMRPG’s 2/60-second Super Jumps.

Curiously, not only does Dodge Master increase the timing windows for later bounces to a downright ridiculously forgiving minimum (5 frames, or 1/6 of a second; as generous as TTYD’s jump / normal guard commands with THREE Simplifier badges), it also makes your Power Bounces get capped later!  The badge adds 7 to the enemy’s Cap%, making the values take longer to get small. For instance, a 50-Cap% enemy’s BC goes from the above values to 200, 114, 64, 36, 20, 11, 6, 3, 1, 0.

What do all these values mean practically though? Well, here’s a chart of the chance of getting capped upon reaching each of the first 10 bounces (“Cap Likelihood”), as well as the number of expected attempts to get to that number of bounces (“Expected Attempts”), for an enemy with a Cap% of 70 (typical for chapter bosses; only Hallway / Final Bowsers have worse), with and without Dodge Master.

Jump # 1 2 3 4 5 6 7 8 9 10
w/o Dodge Master BC 200 140 98 68 47 32 22 15 10 7
Cap Likelihood 0% 0% 2.0% 31.7% 52.5% 67.3% 77.2% 84.2% 89.1% 92.1%
Expected Attempts 1 1 1 1.4 3.1 9.6 42.2 267 2447 30,903
Timing 7/30s 6/30s 5/30s 4/30s 3/30s 2/30s 2/30s 2/30s 2/30s 2/30s
With Dodge Master BC 200 154 118 90 69 53 40 30 23 17
Cap Likelihood 0% 0% 0% 9.9% 30.7% 46.5% 59.4% 69.3% 76.2% 82.2%
Expected Attempts 1 1 1 1.1 1.6 2.9 7.3 24 101 568
Timing 7/30s 7/30s 7/30s 7/30s 6/30s 5/30s 5/30s 5/30s 5/30s 5/30s

Interestingly, given that the bounces are only capped if the generated number is higher than the current BC, but not if it’s equal, it is technically possible to get arbitrarily many bounces (up to the global cap of 101) even for the worst Cap%, so long as the random number generated is always 0.  For example, getting a 13-cap without Dodge Master on Tutankoopa (or another 70-Cap% boss) is a 1/1,000,000,000 chance.  And yet, it’s possible. (Lua scripting FTW!)

Here’s a spreadsheet of the Cap Multipliers and “Expected Attempts” for the first 30 bounces for every enemy / boss in the game.

EDIT (2017-11-16): As a side note, wearing Dodge Master does not change the cap multiplier or frame window for Goombario’s Multibonk move.  Otherwise, the logic for it is exactly the same as Power Bounce.

Paper Mario: TTYD

Compared to Paper Mario 64, TTYD’s approach is remarkably simple. Each enemy/boss has a “soft cap” N. For the first N-1 jumps, you can’t get capped. For the next N (bounces N through 2N-1) you have a 67% chance of getting capped each bounce (bounces N through 2N-1), and you will be forcibly capped on bounce 2N.  Practically all enemies have a soft cap of 9,999 (e.g. effectively infinite), and bosses’ soft caps range from 5-9, much better than Paper Mario 64’s potential (and on Bowser, likely) 3-caps.

Unlike PM64, Simplifier and Unsimplifier badges do not change the cap counts or likelihood of being capped; however, that does lead to the disadvantage of TTYD’s Power Bounce – no matter how which badges you’re wearing, eventually the timing window on the bounce gets down to a single frame at 60fps, which is basically impossible to keep up for more than a few bounces.

Here’s a table of the timing windows for any number of Simplifiers / Unsimplifiers, in 1/60-second frames:

Bounces 1 2 3 4 5 6 7 8 9 10 11+
3 Unsimplifiers 5 4 3 2 1 1 1 1 1 1 1
2 Unsimplifiers 6 5 4 3 2 1 1 1 1 1 1
1 Unsimplifier 7 6 5 4 3 2 1 1 1 1 1
Normal 8 7 6 5 4 3 2 1 1 1 1
1 Simplifier 9 8 7 6 5 4 3 2 1 1 1
2 Simplifiers 10 9 8 7 6 5 4 4 3 2 1
3 Simplifiers 10 10 10 10 10 9 8 7 6 5 1

You can find the soft-caps for each enemy in my recently-updated PM2 Stat Guide (listed as “PB Cap”).

That pretty much covers this little-known / understood balance feature! Really, I don’t think TTYD’s cap is accomplishing all that much when you’re forced to perform frame-perfect jumps from the eighth bounce onward, but ehh…

Paper Mario TTYD Stats! (The Sequel)

The new, improved Paper Mario stat sheet is here, now with heart / flower drops, item drops and drop rates, and much more!

Download the new stat spreadsheet here: Link

Explanations of the various stats in the sheet:

  • HP, ATK, DEF – Self-explanatory; based on tattle information (except in cases where it is obviously wrong like Red Spiky Buzzies).
  • EXP Level, EXP Bonus – Determine the amount of Star Points an enemy rewards. If it has a higher level than Mario, it awards (M * (EXP Level – Mario Level) + EXP Bonus) Star Points, rounded down, where M = 0.5 normally, 0.55 if there were three enemies at the start of the battle, 0.65 if there were four, and 0.75 if there were five. If its level is equal to or lower than Mario’s, it awards 0 Star Points regardless of its Bonus value.
  • Coin Base, Coin Bonus, Coin Ex% – Determine the coins an enemy drops after defeat; they drop the Base amout by default, and every additional Bonus coin has an Ex% chance of dropping.
  • HP / FP Drops – Determine the maximum number of hearts or flowers the front enemy in a battle can drop (see the link above for more details).
  • Item / Badge Drops – The items / badges an enemy can hold in-battle or randomly drop after battle, and their hold / drop weights (relative frequency of being held or dropped, with “nothing” having a hold weight of 200 and drop weight of 300). See this post for how to convert these into the absolute chance of an item drop.
  • Status Susceptibility – The likelihood of the enemy being subjected to various status ailments:
    • Sleep – Chance of being put to sleep.
    • Stop – Chance of being immobilized by a Stopwatch (Clock Out has a x1.27 multiplier to this if fully charged).
    • Dizzy – Chance of being made dizzy.
    • Confuse – Chance of being confused.
    • Burn – Chance of being burned. Is always 0 or 100+.
    • Freeze – Chance of being frozen.
    • Shrink – Chance of being shrunk.
    • Soft – Chance of being softened.
    • Fright – Chance of running away from a Fright Mask.
    • Gale – Chance of being blown away by Gale Force. Note that there is an additional factor based on the player and enemy’s relative level; for instance, a level 22 player against a Hyper Goomba (level 15) has an additional 22-15 = 7% chance of inducing the effect (assuming the chance was non-zero to begin with), and a level 10 player would have a 10-15 = -5% chance subtracted from the base chance.
    • OHKO – Chances of being defeated by Showstopper.
    • PB Cap – The “soft cap” for Power Bounce / Multibonk; i.e. the first bounce to have a 67% chance of ending the attack. The attack is forced to end at twice this number of bounces. If this value is not present, the soft cap is 9,999, which is basically infinite.
    • Dark Koopatrols seem to have a 100% susceptibility to all effects when flipped; I don’t think this applies to any other enemies, so it’s worth noting as a weird exception.

The only notable omission, which I may add at a later time, is that some Glitzville enemies have different item drop sets than their non-Glitzville counterparts; you can find those in my GameFAQs item drop guide.

That pretty much wraps up my new coverage of TTYD stuff; hope this is a good reference for aspiring badge hunters, Pre-Hooktail runners, or whomever else!

Paper Mario TTYD: To the Victors Go the Spoils

Well, this article’s been a long time coming.

For as fleshed-out as the Thousand-Year Door’s battle system is, it’s perhaps no surprise that its battle rewards are as hard to predict as they are various. So in this post, I’ll endeavor to explain exactly how the amounts of every battle reward are determined, one by one. I know my old enemy stats guide is a little out-of-date on some of the variables that go into these calculations, so I’ll probably be updating that in the very near future.

Let’s start with the most straightforward:

Coin Drops

Whereas Paper Mario 64’s enemies each had a fixed number of coins to drop, plus some extras for the enemy in front, in TTYD, each enemy drops coins in the exact same way.

Every enemy has three variables that go into coin drop calculation: a Base amount, a Bonus amount, and an Extra Coin Drop Rate (Ex%). The drop amount starts at the Base, and each Bonus coin has an independent, Ex% chance of dropping. For example, here’s an example of how Amazy Dayzee’s (Base 5, Bonus 5, and Ex% 70) coin drops might be calculated (the number under each bonus coin is a randomly generated number from 0 to 99, and has to be less than the Ex% for its coin to be dropped):

amazy-coins

After all the coin drops are determined, the total count is multiplied by the number of Money Money badges equipped + 1. At the end of the day, the maximum number of dropped coins is 32.

HP / FP Drops

Back in my Paper Mario 64 days, these precious hearts and flowers were the most desirable of drops (to be supplanted by badges in the sequel). Though it was far from a guarantee, it always seemed to me that taking damage, or using a ton of FP in-battle would slightly increase the amount of HP and FP I earned. Turns out in TTYD, this isn’t at all far from the truth, and in fact, it’s much simpler than that – the chances of HP / FP drops are directly tied to Mario’s current percentage of his max HP / FP:

Current HP/FP Percentage Overall HP Drop Rate Individual HP Drop Rate Overall FP Drop Rate Individual FP Drop Rate
Up to 20% 70% 50% 40% 40%
Up to 30% 60% 50% 40% 40%
Up to 50% 50% 40% 40% 40%
Up to 80% 40% 40% 40% 40%
More than 80% 30% 30% 30% 40%

So say that Mario ends a battle with 3 / 10 HP and 6 / 10 FP:

  • First, the game checks to see if any HP should drop at all (60% chance);
  • If it does, then the game checks M times to see if it should drop a single heart (50% each).
  • Next, the game checks to see if any FP should drop at all (40% chance);
  • If it does, then the game checks N times to see if it should drop a single flower (40% each)…

where M and N are determined by the type of enemy leading the battle, and can range from 2 to 6. For example, most early-game enemies have (2,2), Spiky Parabuzzies have (4, 2), X-Nauts PhD have (2, 4), and Elite Wizzerds have a whopping (5, 5). Needless to say, those constants will be in the next version of my TTYD enemy stats guide.

After those HP / FP drops are determined, if Mario has any Heart Finder badges on, the game adds some random additional heart drops – 1 to 3 of them if one badge, or 1 to N+3 of them if more than one. Likewise, Flower Finder will grant equivalent bonus FP drops. Both heart and flower drops cap at 32 apiece, just like coins. (Although you’d have to have a ridiculous number of Finder badges to exceed that!)

And now for the main event:

Item / Badge Drops

Back in 2011, I uploaded a guide to GameFAQs that contains the drop tables of every enemy in the game. Although these tables had some numbers alongside them, I could only proffer some vague speculation as to how those translated into their actual drop rates. Fast-forward to April 2016 and the discovery of Palace Skip; I finally had an excuse to get my hands dirty in assembly code again, and I successfully figured out everything that goes into these calculations! Here’s the dirt…

Item Hold Chances

The first thing to find out is how likely enemies are to hold items in battle, since those are observably a ton more likely than random drops. For the rest of this section, we’ll look at Crazee Dayzee’s drops as an example (for no particular reason, other than 900 failed attempts at getting a Flower Saver drop…)

crazee-drops

These are all the items Crazee Dayzees can hold / drop, with their respective hold / drop weights. Anything without a hold weight indicated actually has a hold weight of 0.

Upon determining an enemy’s held item, it basically chooses between all the options at their respective weights, with an additional weight of 200 for no item at all. Practically, this means that the chance of a particular item being held is its hold weight divided by (200 + the sum of all items’ hold weights). For example, a Super Shroom has a 10 / (200 + 10 + 10) = 1/22 chance of being held by a Crazee Dayzee.

This same function is used when determining what item Ms. Mowz steals from an enemy with no held item, only with her stealing a coin in the case of no item being chosen, rather than nothing. (Notably, if she would normally steal an item / badge, but Mario’s item / badge inventory is full, she misses the enemy rather than stealing a coin.)

All held items being determined, here’s what happens at the end of a battle:

Drop Type Determination

There are three things that can happen at the end of a battle – the game can try to roll for a random item from the front enemy (henceforth, “random drop”), drop an enemy’s held item (“held drop”), or drop nothing at all. The chances of these events happening are weighted as follows:

item-weights-0

If Mario has Item Hog badges equipped, this adds an additional “weight” per badge equipped to the random and held drop cases:

…and so forth. As the number of Item Hog badges increases, the chances of the Random / Held drop cases approach 50%; however, their effect visibly has pretty sharply diminishing returns after the first couple of badges.

EDIT (2017-09-06): The 25%/25%/50% (1:1:2) weights are true for most battles in the game, but apparently battles in the Pit of 100 Trials use a 20%/20%/60% (1:1:3) weighting instead, making item drops overall less likely.  Think of that as adding an additional bar to the “None” stack, if you like.

Here’s a breakdown of what happens in each of these cases:

Random Drop

So you’re lucky enough to get a shot at a random item drop! Don’t celebrate just yet though, because the odds are stacked further against you. Similarly to the formula for determining held item chances, the chance of an item being randomly dropped is its drop weight divided by (300(!) + the sum of all items’ drop weights).

For example, the chance of a Crazee Dayzee dropping a Point Swap would be a none-too-great 15 / (300 + 10 + 10 + 10 + 15 + 10 + 2 + 1 + 1) = 15/359 ≈ 1/24, and the chance of a Flower Saver drop is a mere 1/359!  Taking into account the 25% chance of getting the “Random Drop” case to begin with (or 33.3% with an Item Hog badge), that chance plummets to an abysmal 1/1,436! (or 1/1,077 with an Item Hog.) Blech…

To reiterate, only the front enemy in a battle can drop items this way, so unfortunately you won’t be getting any Amazy Dayzee random drops.

Held Drop

Things are far brighter for this case; you simply get one of the items that were held by the enemies at the start of the battle (excluding ones you stole with Kiss Thief, you monster). If there aren’t any items to be dropped this way, you’re out of luck. However, if that’s the case when you have at least one Item Hog badge equipped, you have a 50% chance of picking up one of the following items at random:

item-hog-list

Yes, Dried Shrooms are three times as likely to drop; in fact, factoring in the chance of the “Held Drop” case being chosen, with one Item Hog, your total chances of getting a Dried Shroom from a battle with no enemy held items are a none-too-shabby 33.3% * 50% * 30% = 5%. Rejoice in that, Mega-Rush-P-using Pre-Hooktail-Pit-Runners!

No Drop

You don’t get an item drop in this case. Thought that’d be self-explanatory…

Final Thoughts

And finally, that wraps everything up! Again, I’m hoping to compile all the drop tables, HP / FP drops, and existing enemy stat info into a single doc in the near future. In the meantime, enjoy your well-earned rewards (and revel in your RNG fortune if you manage to get any of the rarer badges!)

Oh, one more note about item / badge drops; if you scare all the enemies in a battle away with Fright Masks, items can still be dropped in the same way as always. This could be potentially useful for enemies with really high susceptibility to Fright (e.g. Dayzees – 100%!) Who knows?

Paper Mario TTYD: No Holds Barred

Hey, long time with no updates, but I’m back, bearing more Paper Mario: TTYD badgey goodness! Before getting to the real skinny (actual drop / hold rates, rather than baseless speculation), I thought I’d do a short bit on messing around with enemies’ held items.

Interestingly, even though the enemies’ drop tables prevent too many weird / useless held and dropped items, the game actually has a failsafe to prevent enemies from holding anything but one of these 32 items, using internal item IDs 0x80 – 0xA0 (128 – 160):

enemy-items-ok.png

Astute readers might have noticed that’s actually a range of 33 IDs rather than 32; the one in that range that isn’t allowed is “Trade Off”, a dummied-out item that raises the EXP of enemies. Some of the items that are allowed seem a bit odd; enemies have no use for the FP-restoring items, and they don’t seem to be programmed to use the Hot Dog, or the unused Cake item (restores 10 HP) either. Still, they are completely capable of holding these items in-battle:

enemy-held-items-totally-normal.PNG

Also notably, this list does exclude some in-battle items that one might consider “normal”, but for usually understandable reasons:

  • Point Swap: Can’t have enemies swapping their HP with nonexistent FP, after all.
  • Fright Mask: Although it would be humorous if enemies could force Mario to run away from battle, I can imagine why this doesn’t work.
  • Mystery?: Not really sure, as I never used this item much myself. Maybe some of the effects wouldn’t work properly on enemies.
  • Spite Pouch: Interestingly, this one is programmed into some enemies’ drop tables, but cannot in fact be held.  I suspect this is because the Counter status was never programmed properly for some enemies / attacks; more on that later…
  • Gold Bars: Yeah, you wish.

Weirdly, unlike items, not only is there nothing preventing enemies from holding arbitrary badges, a good number of them that can’t normally be held do in fact work, at least to some extent:

  • All or Nothing: Gives the enemy +1 Attack (apparently they know about Timed Hits!)
  • Feeling Fine: Works as advertised. Presumably not used since Mario wouldn’t have any use for a second one.
  • Zap Tap: Same deal. Rather obnoxious to deal with, too.
  • Lucky Day: Works, rather unsurprisingly. Pretty Lucky is objectively better anyway, though…
  • Double Pain: Works, and is in fact stackable. Yeesh.
  • Happy Flower, Pity Flower: Shows visible FP gain, though it doesn’t seem to do anything.
  • HP Drain, FP Drain: These don’t really work; they do lower the enemy’s Attack by 1, though.
  • Lucky Start: Humorously, works exactly as it does for Mario:

enemy-held-badges-all-the-fp

 

(Not so lucky in that case, bud…)

Finally, Return Postage does grant the Counter status, but with some… interesting side effects for some moves…

enemy-return-postage-mowz-2

Uhh…

enemy-return-postage-mowz-4

Right.

If you want to see some of these crazy badges in action, check out MilesLuigi’s video of most of the effects!

Tune in again soon, where I detail how to calculate item drop rates exactly, as well as explaining the rest of after-battle rewards in depth!