- 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.
6.4 KiB
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
Handlerroutine 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 (Enragingaction), which refills its health and makes its attacks faster. - Ganon Subtype: If
SprSubtypeis 5, it uses Ganon's draw and main logic, acting as a final phase.
- The main routine is a large state machine driven by
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 twoKydreeokHeadsprites (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_CheckForNextPhaseOrDeathsetsSprMiscDto 1, refills the boss's health, and transitions to theBigChuchu_Emergeaction. - 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.
- Phase 1 (Manhandla): The main body (
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
Emergesequence. - 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.
- The fight begins when the player approaches, triggering the
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_CheckBlindTriggerdetects this, andBlind_SpawnFromMaidendespawns 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_MoveStateaction will randomly choose betweenKoumeMode(fire) andKotakeMode(ice). In these modes, the boss has different attack patterns, including spawning Keese and changing the floor tiles.
- Trigger: The fight begins when the Blind Maiden follower is brought into the boss room.
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_CheckIfDefeatedtransitions it to theWolfos_Subduedaction 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 (
ITEMGETID$10F) and then despawns.