/dmg-adventure-ii

A continuation of https://github.com/john-lay/dmg-adventure

DMG Adventure II

A continuation of https://github.com/john-lay/dmg-adventure built with GB Studio 2-beta4

Technical notes

Variable list

A listing of variables and their types in re-usable components (Actors/Scenes)

Global

  • $00$: Variable 000 Health - number. (0-4 Indicates the number of hearts Zelda has)
  • $01$: Variable 001 Rupees - number. (Indicates the number of rupees Zelda has collected)
  • $02$: Variable 002 Scene Flags - byte.
    • (Flag 1 represents the enemy dropping a rupee)
    • (Flag 2 represents the enemy dropping a heart)
    • (Flag 3 represent the enemy dropped a rupee or a heart))
    • (Flag 4 represents Zelda has spoken to a fairy))
    • (Flag 5 is ???))
    • (Flag 6 is ???))
    • (Flag 7 is ???))
    • (Flag 8 is ???))
  • $03$: Variable 003 Wand Equipped - bool.
  • $04$: Variable 004 Spell Equipped - byte.
    • (Flag 1 represents Zelda has the Axe equipped - costs 1 Rupee to cast)
    • (Flag 2 represents Zelda has the Noise spell equipped - costs 1 Rupee to cast)
    • (Flag 3 represents Zelda has the Turquoise Ring spell equipped - costs 26 Rupees to cast)
    • (Flag 4 represents Zelda has the Jade Amulet spell equipped - costs 24 Rupees to cast)
    • (Flag 5 represents Zelda has the feather spell equipped - costs 2 Rupees to cast)
    • (Flag 6 represents Zelda has the pyros spell equipped - costs 4 Rupees to cast)
    • (Flag 7 represents Zelda has the broadsword equipped - costs 2 Rupees to cast)
    • (Flag 8 represents Zelda has the Rings of Fire equipped - costs 3 Rupees to cast)
  • $05$: Variable 005 Spell Cost - number. (Cost of the equipped spell)
  • $06$: Variable 006 Collectable - byte.
    • (Flag 1 is the Axe)
    • (Flag 2 is the Raft)
    • (Flag 3 is the Noise spell)
    • (Flag 4 is the Harp)
    • (Flag 5 is Feather)
    • (Flag 6 is Flute)
    • (Flag 7 is Pyros)
    • (Flag 8 is Broadsword)
  • $07$: Variable 007 Purchasable - byte.
    • (Flag 1 is the Turquoise Ring)
    • (Flag 2 is the Jade Amulet)
    • (Flag 3 is the Rings of Fire)
    • (Flag 4 is bone)
    • (Flag 5 is axe)
    • (Flag 6 is potion)
    • (Flag 7 is candle)
    • (Flag 8 is ???)
  • $08$: Variable 008 Illusion Shrine Flags - byte.
    • (Flag 1 is the Orb)
    • (Flag 2 is the Map)
    • (Flag 3 is the Compass)
    • (Flag 4 is key)
    • (Flag 5 is dagger)
    • (Flag 6 is represents Zelda has placed the Orb on the Pedestal)
    • (Flag 7 is represents Zelda has used the first key)
    • (Flag 8 is represents Zelda has used the second key)
  • $09$: Variable 009 Overworld Flags - byte.
    • (Flag 1 represents Zelda has spoken to the White Steed Lodgekeep)
    • (Flag 2 represents Zelda has spoken to Lonlyn in Verna)
    • (Flag 3 represents Zelda has completed the Illusion Shrine)
    • (Flag 4 represents Zelda has completed the Air Shrine)
    • (Flag 5 is ???)
    • (Flag 6 is ???)
    • (Flag 7 is ???)
    • (Flag 8 is ???)
  • $10$: Variable 010 Dungeon Room - number. (Indicates the dungeon room Zelda occupies)
  • $11$: Variable 011 Enemy Counter - number. (Indicates the number of Zelda has defeated in this scene)
  • $12$: Variable 012 Air Shrine Flags - byte.
    • (Flag 1 represents Zelda has the Calm spell equipped - costs 1 Rupee to cast)
    • (Flag 2 is the Map)
    • (Flag 3 is the Compass)
    • (Flag 4 is the Rug)
    • (Flag 5 is the Bow + Arrow)
    • (Flag 6 represents Zelda has the Bow + Arrow equipped - costs 1 Rupee to cast)
    • (Flag 7 represents Zelda has defeated the second Vapora)
    • (Flag 8 Represents Zelda has restored the bridge)
  • $13$: Variable 013 Destiny Shrine Flags - byte.
    • (Flag 1 represents Zelda has the Calm spell equipped - costs 1 Rupee to cast)
    • (Flag 2 is the Map)
    • (Flag 3 is the Compass)
    • (Flag 4 represents Zelda has activated a switch)
    • (Flag 5 represents Malmord is in his shadow form)
    • (Flag 6 is ???)
    • (Flag 7 is ???)
    • (Flag 8 is ???)

Dev Notes

Encapsulation

The best way to enable reusable code components is to encapsulate the logic for a particular feature into a script. For example the calculation to display the number of rupees is contained in the rupee counter actor which sets the hundreds, tens and units. Other scripts can decrement the total number of rupees, but to update the UI the rupee counter actor (hundreds) script must be called. The same is done for the health (hearts). This was done for DMG Adventure (part I) where:

  • The Wand was responsible for calculating what it hit
  • Enemies were responsible for calculating when they hit Zelda
  • The heart / rupee collectible was responsible for dislaying the right collectable item, but it was incorrectly responsible for updating the heart and rupee counter.

Enemy References (DMG Adventure I)

Where possible enemies have been identified in Zelda's Adventure and their conterpart has been used from Link's Awakening. When the enemy doesn't exist in Link's Awakening I've tried to carefully substitute it with an enemy that is both similar and likely to be unique to Link's Awakening. This is to prevent future iterations of the project from having collisions when I try to identify enemies later in the game and find I've already used their counterpart.
Enemies from Zelda's Adventure
Enemies from Link's Awakening

Goriya -> Darknut

Goriya CDi -> Darknut DMG

Tektites -> Beetle

Tektites CDi -> Beetle DMG

Moblin -> Moblin

Moblin CDi -> Moblin DMG

Deeler -> Spiny Beetle

Deeler CDi -> Spiny Beetle DMG

Moby -> Crow

Moby CDi -> Crow DMG

Leever -> Leever

Leever CDi -> Leever DMG

Keese -> Keese

Keese CDi -> Keese DMG

Unknown enemy -> Zol

Unknown CDi -> Zol DMG

Peahat -> Octorok

Peahat CDi -> Octorok DMG

Sardak (Sheepman) -> Shrouded Stalfos

Sardak (Sheepman) CDi -> Shrouded Stalfos DMG

Llort (Lort) -> Stalfos

Llort (Lort) CDi -> Stalfos DMG

Enemy References (DMG Adventure II)

Bago-Bago -> Piranha

Bago-Bago CDi -> Piranha DMG

Peahat -> Peahat

Peahat CDi -> Peahat DMG

Tektite -> Tektite

Tektite CDi -> Tektite DMG

Deeler -> Beetle

Deeler CDi -> Beetle DMG

Molluska -> Spiny Beetle

Molluska CDi -> Spiny Beetle DMG

Jackaroo -> Iron Mask

Jackaroo CDi -> Iron Mask DMG

Vire -> Vire

Vire CDi -> Vire DMG

Pols Voice -> Pols Voice

Pols Voice CDi -> Pols Voice DMG

Patra -> Oracle of Ages Eyesoar

Patra CDi -> OOA Eyesoar DMG

Romraven -> Dacto

Romraven CDi -> Dacto DMG

Lowder -> Hard Hat Beetle

Lowder CDi -> Hard Hat Beetle DMG

Vapora -> Oracle of Ages Smog

Vapora CDi -> OOA Smog DMG

Dragonfly -> Battle Bat (Grim Creeper's minion)

Dragonfly CDi -> Battle Bat DMG

Loccasins -> Battle Bat (Grim Creeper's minion)

Loccasins CDi -> Battle Bat DMG

Volta -> Pairodd

Volta CDi -> Pairodd DMG

Crystal Shard -> Oracle of Seasons Frypolar (ice attack)

Crystal Shard CDi -> OOS Frypolar DMG

Tornado -> Oracle of Ages/Seasons Gale seed

Tornado CDi -> OOA/OOS Gale Seed DMG

Puffers (Baboon Head) -> Oracle of Seasons (modified) Magnite

Puffers (Baboon Head) CDi -> OOS Magnite DMG OOS OOS Magnite DMG

Gibdo -> Gibdo

Gibdo CDi -> Gibdo DMG

NPC References (DMG Adventure I)

Ogbam forest shop keeper -> Shopkeeper
Witch in Ogbam forest -> Syrup
Empty bottle lady -> Grandma Ulrira
Hungry mother near Moblin inn -> Mamasha

Moblin innkeep -> trendy game guy
Moblin inn patron -> Madam Meow-meow, Grandpa Ulrira, Birdkeeper

NPC References (DMG Adventure II)

Great Wimbich

Alice -> Oracle of Ages (past) young lady
Eric/Ian -> Mamasha's twins
Twin's Father -> Papahl
Yvonne (music lover) -> Marin
Ghost farmer -> Ghost
Town square merchant -> Crazy Tracy
Bored guy on Upper Street -> Oracle of Ages (past) young guy
Dog on Upper Street -> Oracle of Ages (present) Mamamu Yan's dog
General shop (dog owner) -> Oracle of Ages (present) Mamamu Yan
General shop jester -> Oracle of Ages (present) Comedian
Madam Kriggle -> Oracle of Ages (present) old lady
Blacksmith -> Oracle of Ages (past) old guy

Plain of Donora

Plain of Donora trader -> Oracle of Ages (present) Dr. Troy
Plain of Donora gate keeper -> Oracle of Ages (present) young guy

Torian Forest

White Steed Lodgekeep -> Richard
White Steed Patron -> Oracle of Ages (present) old guy
White Steed Patron -> Oracle of Seasons drunk guy
White Steed Barman -> Oracle of Seasons Mayor Ruul
Waldensop -> Oracle of Ages (present) Mayor Plen
Sir Basil -> Oracle of Ages (past) Guard

Verna

Gwynla (noise spell) -> Oracle of Ages (present) young lady
Lonlyn (noise spell) -> Oracle of Seasons old guy
Guy with Bard -> Oracle of Ages (past) young guy alt
Bard -> Oracle of Seasons Guitar player

Around the Air Shrine

Bitterbeck (by the fire) -> Fisherman
Nimonee (north of Air Shrine) -> Oracle of Seasons Impa
Thabul (outside cave) -> Oracle of Seasons Old Lady