Files
oracle-of-secrets/Docs/Sprites/Bosses.md
scawful 6ba634caa4 Add comprehensive documentation for sprites and systems
- Introduced detailed analysis for the Minecart system, highlighting its state machine, track system, and areas for improvement.
- Created an NPCs analysis document, summarizing various NPC sprites and their functionalities.
- Added an Objects analysis document, covering interactive elements like collectibles, ice blocks, and minecarts.
- Documented the Overlord sprite system, detailing its role in spawning other sprites and managing events.
- Compiled a Dungeons & Indoor Areas document, outlining custom room tags, enhanced mechanics, and advanced collision systems.
- Developed an Overworld Systems Analysis, focusing on the ZSCustomOverworld architecture and its core features.
- Added a Time System document, explaining the in-game clock and day/night cycle management.
- Documented the ZScream Custom Overworld, detailing its data-driven approach and key features.
2025-10-02 12:44:30 -04:00

6.4 KiB

Bosses Analysis

This document provides an analysis of the boss sprites found in the Sprites/Bosses/ directory. These sprites are typically complex, with multiple phases and unique behaviors.

File Overview

Filename Sprite ID(s) Description
arrghus.asm (Hooks $1EB593) A custom version of Arrghus that spawns fireballs.
dark_link.asm Sprite_DarkLink ($C1) A multi-phase boss fight against a shadow version of Link.
king_dodongo.asm (Hooks $1E811A) A custom version of King Dodongo with a new health system.
kydreeok.asm Sprite_Kydreeok A multi-headed sea monster boss. Parent sprite for kydreeok_head.asm.
kydreeok_head.asm Sprite_KydreeokHead The individual head of the Kydreeok boss, which can be attacked.
kydrog.asm Sprite_KydrogNPC A cutscene version of Kydrog that appears before the boss fight.
kydrog_boss.asm Sprite_KydrogBoss The main Kydrog boss fight, a large amphibious creature.
lanmola.asm (Hooks $05A377) A custom version of the Lanmola boss.
lanmola_expanded.asm (Expansion) Contains additional data and drawing logic for the custom Lanmola.
manhandla.asm Sprite_Manhandla A two-phase boss fight against Manhandla, which later becomes a Big Chuchu.
octoboss.asm (Hooks Sprite_A2_Kholdstare) A custom boss fight against two octopuses, replacing Kholdstare.
twinrova.asm Sprite_Twinrova ($CE) A custom boss fight replacing Blind the Thief with the twin witches, Koume and Kotake.
vampire_bat.asm (Subtype of Keese) A vampire bat mini-boss.
wolfos.asm Sprite_Wolfos A Wolfos mini-boss that guards the Wolf Mask.

Detailed Boss Analysis

dark_link.asm

  • Sprite ID: Sprite_DarkLink ($C1)
  • Summary: A complex, multi-action boss that mimics Link's abilities. The fight has multiple stages, including a Ganon-like form.
  • Key Logic:
    • The main routine is a large state machine driven by SprAction, X.
    • Actions: Includes standard walking, sword slashes, jump attacks, dodging, and using items like bombs and the Magic Cape.
    • AI: The AI in the Handler routine decides which action to take based on the distance to the player. It can choose to slash, dodge, or use a special attack.
    • Enrage Mechanic: At a certain health threshold (SprHealth < $20), the boss can enter an "enraged" state (Enraging action), which refills its health and makes its attacks faster.
    • Ganon Subtype: If SprSubtype is 5, it uses Ganon's draw and main logic, acting as a final phase.

kydreeok.asm / kydreeok_head.asm

  • Sprite IDs: Sprite_Kydreeok (body), Sprite_KydreeokHead (head, ID $CF)
  • Summary: A large, stationary sea monster boss with multiple heads that act as its weak points. The main body sprite (Kydreeok) is a controller that spawns and manages the head sprites.
  • Key Logic:
    • Kydreeok_Prep: Spawns two KydreeokHead sprites (SpawnLeftHead, SpawnRightHead).
    • Kydreeok_Main: The body moves around the arena, and the heads follow its position, controlled via shared RAM addresses (LeftNeck1_X, etc.).
    • KydreeokHead_Main: The heads have their own AI. They move in a rotational pattern and randomly shoot fireballs at the player.
    • Damage: Only the head sprites can be damaged. When both heads are defeated, the main body sprite is killed.

manhandla.asm

  • Sprite ID: Sprite_Manhandla ($88)
  • Summary: A two-phase boss. The first phase is a plant-like creature with three heads. The second phase is a large Big Chuchu.
  • Key Logic:
    • Phase 1 (Manhandla): The main body (Manhandla_Body) moves around the room, and three head sprites are spawned as offspring. The boss is only vulnerable when the heads are defeated.
    • Phase Transition: When all three heads are killed, Sprite_Manhandla_CheckForNextPhaseOrDeath sets SprMiscD to 1, refills the boss's health, and transitions to the BigChuchu_Emerge action.
    • Phase 2 (Big Chuchu): The sprite changes its appearance and behavior to that of a large slime. It moves around, spawns smaller slime projectiles (Chuchu_SpawnBlast), and has a central flower weak point.

octoboss.asm

  • Sprite ID: (Replaces Sprite_A2_Kholdstare)
  • Summary: A custom boss fight featuring two octopus brothers who replace the vanilla Kholdstare boss.
  • Key Logic:
    • The fight begins when the player approaches, triggering the Emerge sequence.
    • The first octopus spawns its brother (SpawnAndAwakeHisBrother), and they both don hats (SpawnPirateHats).
    • The two sprites then move independently, attacking the player. Their total health is tracked via ReturnTotalHealth.
    • When their combined health is low enough, they surrender (WaitMessageBeforeSurrender), remove their hats, and one submerges to give the player the Quake Medallion.

twinrova.asm

  • Sprite ID: Sprite_Twinrova ($CE, replaces Blind the Thief)
  • Summary: A custom, multi-phase boss fight against the twin witches Koume (fire) and Kotake (ice). This sprite completely replaces the vanilla Blind the Thief boss, including the cutscene leading up to it.
  • Key Logic:
    • Trigger: The fight begins when the Blind Maiden follower is brought into the boss room. Follower_CheckBlindTrigger detects this, and Blind_SpawnFromMaiden despawns the maiden and spawns the Twinrova sprite.
    • Phase 1: The combined Twinrova form moves around the room, alternating between fire (Twinrova_FireAttack) and ice (Twinrova_IceAttack) attacks.
    • Phase 2: When health is low, the boss splits. The Twinrova_MoveState action will randomly choose between KoumeMode (fire) and KotakeMode (ice). In these modes, the boss has different attack patterns, including spawning Keese and changing the floor tiles.

wolfos.asm

  • Sprite ID: Sprite_Wolfos
  • Summary: A mini-boss that guards the Wolf Mask. It is designed to be subdued rather than killed.
  • Key Logic:
    • The Wolfos attacks Link with lunges and swipes.
    • When its health is depleted, Sprite_Wolfos_CheckIfDefeated transitions it to the Wolfos_Subdued action instead of killing it.
    • In the subdued state, it waits for the player to play the Song of Healing (SongFlag).
    • Once the song is played, it grants the Wolf Mask (ITEMGET ID $10F) and then despawns.