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

A crop is a run of growth stages, and the game decides each night whether it moves on. In Harvest Moon 64 a crop moves one stage after each watered day, so a dry day doesn’t count1, rain counts as watering outside the greenhouse2, and the first nights of summer and autumn kill the crops each one lists, while winter’s clears seed stages and dead plants3.

  • Watered daysHarvest Moon 64 (1999). A crop moves one stage each night after a watered day; turnips take 4 watered days, corn 13, and the first nights of summer, autumn, and winter kill or clear named crops.1,4,3,2

Games

GameYearHowNote
Harvest Moon 641999Watered daysa crop moves one stage each night after a watered day; turnips take 4 watered days, corn 13, and the first nights of summer, autumn, and winter kill or clear named crops
Every claim about this mechanic, by game (4)
Harvest Moon 64 1999In the US release, a crop is a run of tile numbers in groundObjectsInfo, each growth stage a dry tile followed by its watered twin. The watering can turns a waterable tile into the next number (dry soil into watered soil). Each night, updateGroundObjectsOvernight reads a flag byte per tile: a watered stage moves on to the next stage's dry tile, watered soil and a watered ripe crop go back to dry, and a dry stage stays where it is. So a crop grows one stage per watered day and a dry day doesn't count. Worked out from the table (computed), the watered days from sowing to ripe are: turnip 4, potato 6, strawberry 6, moondrop flower 6, cabbage 7, eggplant 7, pink cat mint 8, tomato 9, corn 13. Grass's stages aren't waterable and advance every night: 9 nights from seed.Code
In the US release, picking a ripe tomato, ear of corn, or eggplant puts back an earlier stage (tile 0x5F, TOMATO_PLANT_STAGE_1; 0x7A, CORN_PLANT_STAGE_1; 0x2A, EGGPLANT_STALK_STAGE_1) under a comment reading "replace with stalks", so the plant ripens again after 3, 4, and 3 more watered days (computed from the table). Any other crop picked leaves soil (dry or watered, as the ripe tile was) or a bare tile.Code
In the US release, the farm's overnight update has a rule for the night that starts a season (the day of the month is 1 by then). Summer turns sprouted-or-older turnips, potatoes, and cabbages into dead plants and their seed stages back into tilled soil. Autumn does the same to tomatoes, corn, moondrop flowers, and pink cat mint, and sends any spring seed stages to tilled soil. Winter clears dry tilled soil, weeds, eggplants at every stage, the dead plants, and the remaining seed stages to the bare tile. Spring turns grass back to cut grass and returns tilled soil to the bare tile when getRandomNumberInRange(0, 5) >= 3. Strawberries, whose seeds sow only in the greenhouse, appear in none of the lists, and the greenhouse loop has no season rule.Code
In the US release, each night the new day's weather is set before the crops update; then, if it is rain, updateCropsIfRain turns every waterable tile on the farm into its watered twin, as the watering can would, so a rainy day counts as watered. The greenhouse isn't touched.Code

References

  1. ^ abIn the US release, a crop is a run of tile numbers in groundObjectsInfo, each growth stage a dry tile followed by its watered twin. The watering can turns a waterable tile into the next number (dry soil into watered soil). Each night, updateGroundObjectsOvernight reads a flag byte per tile: a watered stage moves on to the next stage's dry tile, watered soil and a watered ripe crop go back to dry, and a dry stage stays where it is. So a crop grows one stage per watered day and a dry day doesn't count. Worked out from the table (computed), the watered days from sowing to ripe are: turnip 4, potato 6, strawberry 6, moondrop flower 6, cabbage 7, eggplant 7, pink cat mint 8, tomato 9, corn 13. Grass's stages aren't waterable and advance every night: 9 nights from seed.Codeharvestwhisperer/hm64-decomp
    How we know
    236    u8 playerInteractionFlags;
    
    src/game/groundObjects.h lines 231–237 at 9824b88 · upstream ↗
    47    { 0x07, 0x00, 0x00, GROUND_OBJECT_TILLABLE, 0x09 },
    ⋮
    49    { 0x07, 0x00, 0x00, GROUND_OBJECT_TILLABLE, 0x09 },
    
    src/game/groundObjects.c lines 46–56 at 9824b88 · upstream ↗
    1242                    currentGroundObject++;
    
    src/game/groundObjects.c lines 1236–1251 at 9824b88 · upstream ↗
    3096                temp2 = currentGroundObjectIndex + 1;
    
    src/game/items.c lines 3089–3099 at 9824b88 · upstream ↗
    171    { 0x06, 0x00, 0x00, GROUND_OBJECT_TILLABLE, 0x09 },
    172    { 0x06, 0x00, 0x00, GROUND_OBJECT_TILLABLE, 0x09 },
    173    { 0x06, 0x00, 0x00, GROUND_OBJECT_TILLABLE, 0x09 },
    
    src/game/groundObjects.c lines 171–181 at 9824b88 · 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

  2. ^ abIn the US release, each night the new day's weather is set before the crops update; then, if it is rain, updateCropsIfRain turns every waterable tile on the farm into its watered twin, as the watering can would, so a rainy day counts as watered. The greenhouse isn't touched.Codeharvestwhisperer/hm64-decomp
    How we know
    691    gWeather = gForecast;
    
    src/game/transition.c lines 691–703 at 9824b88 · upstream ↗
    1473                        setFieldTile(FARM, groundObjectIndex + 1, j, i);
    
    src/game/groundObjects.c lines 1451–1476 at 9824b88 · 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

  3. ^ abIn the US release, the farm's overnight update has a rule for the night that starts a season (the day of the month is 1 by then). Summer turns sprouted-or-older turnips, potatoes, and cabbages into dead plants and their seed stages back into tilled soil. Autumn does the same to tomatoes, corn, moondrop flowers, and pink cat mint, and sends any spring seed stages to tilled soil. Winter clears dry tilled soil, weeds, eggplants at every stage, the dead plants, and the remaining seed stages to the bare tile. Spring turns grass back to cut grass and returns tilled soil to the bare tile when getRandomNumberInRange(0, 5) >= 3. Strawberries, whose seeds sow only in the greenhouse, appear in none of the lists, and the greenhouse loop has no season rule.Codeharvestwhisperer/hm64-decomp
    How we know
    1292                                case TURNIP_SPROUT_STAGE_1 ... TURNIP_RIPE_WATERED:
    
    src/game/groundObjects.c lines 1253–1300 at 9824b88 · upstream ↗
    1321                                case TOMATO_SPROUT_STAGE_1 ... TOMATO_RIPE_WATERED:
    
    src/game/groundObjects.c lines 1306–1338 at 9824b88 · upstream ↗
    1350                                case POTATO_DEAD ... EGGPLANT_RIPE_WATERED:
    
    src/game/groundObjects.c lines 1342–1366 at 9824b88 · upstream ↗
    1384    // greenhouse
    1385    for (i = 0; i < FIELD_HEIGHT; i++) {
    ⋮
    1389            currentGroundObject = greenhouseFieldTiles[i][j];
    ⋮
    1409                 greenhouseFieldTiles[i][j] = currentGroundObject;
    
    src/game/groundObjects.c lines 1384–1409 at 9824b88 · upstream ↗
    3486        groundObjectIndex = (gBaseMapIndex == GREENHOUSE) ? STRAWBERRY_PLANTED_STAGE_1 : INVALID_GROUND_OBJECT;
    
    src/game/items.c line 3486 at 9824b88 · upstream ↗
    700    updateGroundObjectsOvernight();
    
    src/game/transition.c line 700 at 9824b88 · upstream ↗
    2541        setClockNewDay(); 
    
    src/game/game.c lines 2541–2545 at 9824b88 · upstream ↗

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

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

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

    In the claim ledger

  4. ^In the US release, picking a ripe tomato, ear of corn, or eggplant puts back an earlier stage (tile 0x5F, TOMATO_PLANT_STAGE_1; 0x7A, CORN_PLANT_STAGE_1; 0x2A, EGGPLANT_STALK_STAGE_1) under a comment reading "replace with stalks", so the plant ripens again after 3, 4, and 3 more watered days (computed from the table). Any other crop picked leaves soil (dry or watered, as the ripe tile was) or a bare tile.Codeharvestwhisperer/hm64-decomp
    How we know
    4139                        addGroundObjectToMapFromPlayerPosition(0x5F, 1.0f, 8);
    
    src/game/items.c lines 4137–4160 at 9824b88 · upstream ↗
    61#define EGGPLANT_STALK_STAGE_1 42
    
    src/game/groundObjects.h line 61 at 9824b88 · upstream ↗
    114#define TOMATO_PLANT_STAGE_1 95
    
    src/game/groundObjects.h line 114 at 9824b88 · upstream ↗
    141#define CORN_PLANT_STAGE_1 122
    
    src/game/groundObjects.h line 141 at 9824b88 · 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