On this page
  1. Related
  2. Games
  3. References
  4. Sources

A healing item restores health when the player uses it. In Silent Hill, a Health Drink adds 40 of Harry’s 100 health, a First Aid Kit 80, and an Ampoule 100; the Ampoule also fills a store of 300 that keeps restoring health as it drains1.

  • InstantSilent Hill (1999). A Health Drink adds 40 health, a First Aid Kit 80, and an Ampoule 100, out of 100.1
  • Over timeSilent Hill (1999). An Ampoule also fills a store of 300 that restores health as it drains.1

Games

GameYearHowNote
Super Mario Bros. 21988Instantevery eighth enemy defeated comes back as a heart worth one mark
Silent Hill1999Instanta Health Drink adds 40 health, a First Aid Kit 80, and an Ampoule 100, out of 100
Silent Hill1999Over timean Ampoule also fills a store of 300 that restores health as it drains
Every claim about this mechanic, by game (2)

References

  1. ^ abcIn the US build, using a healing item from the inventory (Inventory_PlayerItemScroll) adds 40 health for a Health Drink, 80 for a First Aid Kit, and 100 for an Ampoule, then clamps Harry's health to 0–100 and spends one item. An Ampoule also sets healthSaturation to 300 (a set, not an add). Player_LogicUpdate lowers healthSaturation by g_DeltaTime on each update and, while any remains, raises Harry's health by the same amount, capped at 100. So an Ampoule fills health and then keeps restoring it, up to 300 more in all (computed), with the store draining even while health is full.Codeshdecompilations/silent-hill-decomp
    How we know
    1995void Inventory_PlayerItemScroll(u32* selectedItemId) // 0x800523D8
    
    src/bodyprog/items/item_screens_3.c line 1995 at 405a621 · upstream ↗
    2516                switch (g_SavegamePtr->items[g_SysWork.invItemSelectedIdx].id)
    ⋮
    2518                    case InvItemId_HealthDrink:
    2519                    case InvItemId_FirstAidKit:
    2520                    case InvItemId_Ampoule:
    2521                        switch (g_SavegamePtr->items[g_SysWork.invItemSelectedIdx].id)
    ⋮
    2523                            case InvItemId_FirstAidKit:
    2524                                g_SysWork.playerWork.player.health += Q12(80.0f);
    2525                                break;
    ⋮
    2527                            case InvItemId_HealthDrink:
    2528                                g_SysWork.playerWork.player.health += Q12(40.0f);
    2529                                break;
    ⋮
    2531                            case InvItemId_Ampoule:
    ⋮
    
    src/bodyprog/items/item_screens_3.c lines 2516–2539 at 405a621 · upstream ↗
    1230void Player_LogicUpdate(s_SubCharacter* player, s_PlayerExtra* extra, GsCOORDINATE2* coords) // 0x80071CE8
    
    src/bodyprog/player_control.c line 1230 at 405a621 · upstream ↗
    1289    g_SavegamePtr->healthSaturation -= g_DeltaTime;
    1290    g_SavegamePtr->healthSaturation = CLAMP(g_SavegamePtr->healthSaturation, Q12(0.0f), Q12(300.0f));
    ⋮
    1292    if (g_SavegamePtr->healthSaturation != Q12(0.0f))
    ⋮
    1294        playerChara.health += g_DeltaTime;
    1295        playerChara.health  = CLAMP(playerChara.health, Q12(0.0f), Q12(100.0f));
    
    src/bodyprog/player_control.c lines 1289–1296 at 405a621 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-22.

    Checked by a second AI model, 2026-10-22.

    In the claim ledger

Sources

Code