GithubHelp home page GithubHelp logo

scawful / oracle-of-secrets Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 0.0 1.73 MB

Custom Code for the Legend of Zelda: Oracle of Secrets ROM hack

Assembly 99.99% Batchfile 0.01%
hacking rom snes zelda

oracle-of-secrets's Introduction

oracle-of-secrets's People

Contributors

jaredbrian avatar scawful avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

oracle-of-secrets's Issues

Patch 0.103 bugs

BUGFIXES CONFIRMED :

  • The persistent rain sound bug from the Dark World has been fixed.
  • The Dark World portal despawn glitch has been fixed.

Here is what I found in patch 0.103 :

  • The rain sound in the intro cave is briefly interrupted when Link uses a staircase (video 1) : https://github.com/scawful/Oracle-of-Secrets/assets/74463377/59328d61-720f-48c7-a8f7-a3056a70194a

  • NES link cannot read signs (consequence of Bunny Link's lack of action abilities).

  • The new Dark World sections contain incorrect cliff tiles (see videos 2 and 3 for a location). It seems to happen every time a tree is placed, and the cliff tiles only seem to be at the right side of the trees.

bandicam.2023-09-08.21-00-38-759.mp4
bandicam.2023-09-08.21-01-34-320.mp4
  • The Dark World portal from the intro (i.e. the temporary one spawning once you leave the DW as NES Link) is not shown on the map while you are in the Maku Tree Area (see video 4).
bandicam.2023-09-08.21-05-10-670.mp4
  • The soldier called by the village ladies doesn't have a good collision and goes clean through some tiles (see screenshot 1).

Legend of Zelda, The -Oracle of Secrets (SNES)_000

-There are some tile priority errors in Wayward Village (see screenshot 2 for an example).

Legend of Zelda, The -Oracle of Secrets (SNES)_001

  • The sole cave entrance in Wayward Village changes the music back to Toadstool Woods' theme when exited.

  • The Octorok enemy graphics are garbled in the Hall of Secrets area (screenshot 3).

Legend of Zelda, The -Oracle of Secrets (SNES)_002

  • The pillars in this part of the Dark World (screenshot 4) have no collision).

Legend of Zelda, The -Oracle of Secrets (SNES)_003

Legend of Zelda, The -Oracle of Secrets (SNES)_004

  • Argii and Arrghus still hit for way too much damage.

Patch 0.102 bugs

Here is a list of all the bugs I found in v. 0.102 of the game:

  • Roc's Feather doesn't prioritise Link over the things he jumps on, so he is drawn BEHIND them.

  • The spiky rollers in Tail Palace deal 3 hearts per hit, rendering them extremely dangerous for a regular player (i.e. they can twoshot Link as he can only come in once he has 4 hearts, see screenshot 1)

Legend of Zelda, The - Oracle of Secrets (SNES)_001

  • Opening the Big Key chest in Tail Palace assigns the Y button to the Zora Mask (even though you can't transform until actually getting the mask), see video 1 : https://github.com/scawful/Oracle-of-Secrets/assets/74463377/84bc573d-45cd-4116-b8d5-730e905c40b0

  • The aforementioned bug also happens when you open the chest containing the King's Sword in Kalyxo Castle, another chest on 3F containing a key and guarded by a white flail knight in Kalyxo Castle as well, and a 20-Rupee chest in the Zora Sanctuary.

  • A similar bug happens when you open the Big Key chest in the Zora Sanctuary. Instead of the Zora Mask, the Magic Mirror is assigned to Y upon obtaining the item. If you try using the Mirror without opening the menu, the game will act as if you selected the Lamp instead.

  • This cave in Wayward Village causes the music to change to the Toadstool Woods' theme once you go in and leave (screenshot 2)
    Legend of Zelda, The - Oracle of Secrets (SNES)_002

  • Kalyxo Castle's door graphics become corrupt during the intermediate "open" frame (screenshot 3)

Legend of Zelda, The - Oracle of Secrets (SNES)_003

  • Upon coming into Kalyxo Castle from the garden portion requiring to go through the dungeon, all sprites despawn and the floor order becomes incorrect (e.g. B2 is marked as 1F and B3 becomes B1). Several graphics (such as the jail cell bars and jail table tiles, as well as the bone graphics) get corrupted until you come back into the actual dungeon. Everything returns to normal if you leave through one of the main entrances of the dungeon, which isn't possible unless you use a walk-through-walls cheat. (see screenshots 4 and 5 for corrupted graphics and the softlock cause respectively).

Legend of Zelda, The - Oracle of Secrets (SNES)_004
Legend of Zelda, The - Oracle of Secrets (SNES)_005

Legend of Zelda, The - Oracle of Secrets (SNES)_006

  • Zora Link doesn't properly interact with the hole in B3. Once you get in swimming state, you can return to normal by pressing Y. It won't work if you try it above the hole. This lasts even if you return to human Link using the mask again, you need to select another item after pressing Y. If you return to human Link with the R Button, you get softlocked in swimming state and break the dungeon camera. Everything returns to normal if you select another item in the menu as Zora Link, but if you attempt falling in the hole as human Link, the game will act as if you landed in water afterwards and may end up softlocked anyway. To avoid any potential softlocks, stay as Zora Link, go in the water, dive, resurface and leave using the warp after having returned to Human Link. (video 7) https://github.com/scawful/Oracle-of-Secrets/assets/74463377/427d0e02-7585-4a65-b090-011f91a14083

  • The slab here is unreadable due to the text scrolling before giving the player any chance to read it (screenshot 8).
    Legend of Zelda, The - Oracle of Secrets (SNES)_007

  • The shooters positioned on the outermost holes on the upper wall (see previous screenshot) cannot reach Zora Link while he is underwater, due to the balls stopping when hitting certain wall tiles. Since they only trigger when Zora Link is underwater, this means they can't reach Link at all.

  • The key in the room affected by the softlock described with video 7 does not spawn. As a result, there are only three keys whereas the dungeon needs four keys in order to progress further. This means Zora Temple is not legitimately completable in this build.

  • Fireballs are not stopped by key blocks.

  • Green Jumping Pokeys go through walls.

  • Enemies in the room shown in screenshot 9 have incorrect spawn positions and no collisions, i.e. they go through walls as well.
    Legend of Zelda, The - Oracle of Secrets (SNES)_008

  • If Zora Link dives underwater and lands on shallow water tiles, he cannot surface back up. Enemies will also adjust their layering to the shallow water and not the deep one, which means that some enemies are not reachable despite seeming so and the opposite is also true.

  • Camera gets slightly broken in the section starting in the room shown in screenshot 9. Link will end up outside of the camera bounds if walking without stopping, but this doesn't break the dungeon. Everything returns to normal once Zora Link gets back in the room in screenshot 9 and goes far enough northwards.

  • Arrghus deals 2 HPH, which leads to a threeshot situation. It's aggravated by the tightness of the arena, which makes it nigh-impossible to avoid the Argii-spin attack if the boss has many Argii left. Arrghus' fireballs don't spawn if Link goes behind it.

  • The Tears of Time have no icon in the inventory. They currently use the Moon Pearl icon.

Crystal Maiden sequence crash

Game crashes after Link speaks to the Crystal Maiden sprite and attempts to exit the dungeon. Does not complete spin animation.

Finish Kydrog Pirate King boss

Kydrog boss fight currently has a lot of good ideas which need refinement for a more enjoyable boss fight.

  • Tracking the offspring sprites spawned and limiting as to not lag the game with too many sprites
  • More unique movement and different stages for the fight
  • Cinematic opening and ending sequence

Deku Link float camera adjustments and collision detection

The current deku link hovering ability leverages quake animation code to create the spin and jump animation, however once link is hovering the camera does not adjust according to his movement in the overworld or dungeons. This allows Link to move across the bounds of the screen to the opposite side and potentially get stuck in a wall. This needs to be fixed to adjust the camera and stop Link from flying out of bounds.

Create minecart track switch object

Custom sprite which has two states: on and off. There will be two kinds of switches

  • One which controls the rotation of a specific custom track object
  • One which controls the speed of the cart when Link boards

Fix Ice Rod overworld ice tiles transition

Currently, when the player uses the Ice Rod in an area where the water leads to a transition without the flippers they get stuck in a drown and refresh loop.

Potential solutions:

  • Block off access to transitions before the flippers are obtained.
  • Make drowning hurt the player, leading to a death loop on transition.
  • Prevent the Ice Rod from creating a walkable ice tile at the edges of an overworld map.
  • Remove the Ice Rod walking ability entirely.

[HUD] Draw dungeon key icon

The key icon is drawn on the hud tilemap and is blanked out in the hud update code, but the location of the blank is currently wrong so the key icon always displays.

Add snow overlay to mountain maps

Some maps in the snow mountain will have an overlay for snow weather, while the maps which represent the peak will have a background overlay like death mountain from vanilla Link to the Past.

image

[HUD] Fix current item draw

Outdated: Currently there are some errors with the proper icon being drawn in the HUD for the Wolf Mask and Bunny Hood that need to be investigated based on their current SRM values.

Update: Current item draw graphics have been fixed as apart of #50 however there are still issues with the item icon updating when an item is pulled from a chest or given by a sprite.

Improve Minecart Sprite tile collision detection

Currently the tile collision for the Minecart is done using the Sprite_GetTileAttr function here

https://github.com/scawful/Oracle-of-Secrets/blob/master/Sprites/minecart.asm#L331

And it is currently not adjusted based on the direction the cart is going which leads to inconsistencies with the placement of collision tiles for corner movement and stopping. This should be changed so the coordinates of the tile detection are directly under the cart in a very clear area and don't change states too soon.

Village game/shop music stops playing

Reported in chat by ScurvyX

Encountered a bug where playing the 5 arrow shooting gallery game made the game audio stop entirely

Thinking it has to do with a minigame music soundfile, as This same sound glitch happens when I enter the building for either of the 3 chest mini games in the minish woods too. Soon after entering the building the music ends and all sound including sound effects stop. I'm playing on raspberry pi in retropie using lr-snes9x if it matters

Improve Goldstar usage as weapon

The goldstar currently works the same as the hookshot, albeit with the additional animation.

This should be changed to meet the following requirements:

  • Deals fatal damage to enemies instead of stun
  • No longer grapples like a hookshot

Stretch goal would be to control the ball and chain rotation with the Y button while moving.

Fix exits which play different music than overworld area

Music/entrance_music_fix.asm is a template for hardcoding the music that plays when exiting certain overworld doors. This should be changed so that all the current entrance/exit combos that mismatch the music are correct. Notably there are a few doors in the toadstool forest that still need fixing.

Yellow background color during game startup

When the game starts, the background color is a yellow-green thing which should be black. Not sure how this color got inserted but it has been a problem for a long time.

GBC Link graphical errors

GBC Link loses his palette when opening and closing the world map

GBC Link does not retain his form when entering dungeons from the dark world

Spriteset mismatch in Mushroom Grotto

Spriteset ID $19 was modified for use in Tail Palace which had a side effect of changing some enemies graphics in the Mushroom Grotto. A new spriteset should be picked out from the available ones so both dungeons have proper sheets.

Finish Twinrova boss

Twinrova boss can be defeated in its current state but needs a variety of fixes.

  • Intro: The Twinrova boss sprite sheet is dynamically loaded into the game when the room is entered. Current attempt to work around this is to fall into the room, but the hook used does not refresh the graphics until the player has landed. These graphics should be updated before the player enters the boss chamber. The boss should not immediately be present, but be a result of the maiden follower sprite. A separate issue should be opened for that cutscene.
  • Movement: Twinrova boss currently makes use of a BounceTowardsPlayer macro for its movement. The fire and ice attacks are lifted from the Trinexx boss fight, and they currently use the same speed values as the sprite, which leads to erratic movements and sometimes the boss can go off screen.
  • Aggro Mode: Boss goes into an aggro mode when it gets below a certain amount of health which needs more work on the AI since it is too aggressive.

Update Book of Secrets item

The book of secrets was previously modified to use X+R to reveal secrets by hiding the BG2 layer. This has been modified to use the L button to free up the X button again. One thing I've thought about adding to the book is the ability to cast spells when you aren't standing in front of an entity you need to translate. Considering the medallions were removed to make way for the transformation masks, allowing the user to cast medallion spells from the book would be interesting.

Few points to consider for this:

  • The quake medallion code in bank07 has been modified for the deku hover, so recreating it would require copying the vanilla code to expanded space and evaluating other hooks which were changed for deku hover.
  • To have multiple spells we may need to implement a dialogue box or an L/R feature to scroll between them, but the latter would require changing how the reveal secrets ability works or cutting it entirely. The former may slow down gameplay too much.

Please give your thoughts on the book of secrets item and how it should be implemented. Is the reveal secrets with BG2 ability still worth keeping?

Remove "hole" effect from minecart tile properties

Link currently falls into the $B6 tile ID which is used for intersecting minecart track pieces, where the player can press any directional button on the cart and the cart will move that direction. If Link is not on the cart, he falls into the track as if it were a hole or a somaria platform.

This should be fixed to be the same behavior as tile type $00 or a new tile type should be picked out (If we plan on using somaria platforms elsewhere in the game)

Change Minish stump to activate with R button

Minish stump currently immediately changes Link into minish form whenever he hits the special tile. This should be changed to only activate when the R button is pressed, and include a delay.

Glitched music inside houses

Entering certain houses in the Mushroom Grotto triggers a lot sound effect and does not properly load the music.

Lanmolas mini-boss minecart fight

Modify the behavior of the lanmolas boss sprite to only begin the boss fight once the player has boarded the minecart in the room.

Restrict exit from the cart until the player has completed the fight or dies to the lanmolas.

Create Zora Princess sprite

During the Zora Temple, the player will get the Big Key and gain access to a room in the same large map as the temple. Inside this separate building the Zora Princess will be waiting for Link to play the Song of Healing and receive the Zora Mask to complete the Zora Temple dungeon.

Fix Poltergeist sprites

Poltergeist sprites from Allhallows Eve do not consistently appear when placed in game in the Glacia Estate in Oracle of Secrets. This could be a result of the entrance or an issue with the sprite code interacting with the Oracle codebase. More investigation should be done.

Link gets stuck after capturing fairy/bee in a bottle

When using the bug catching net as bottle + bottle item to capture a fairy/bee, Link gets stuck after dismissing the dialogue.

After pausing the game and unpausing, Link releases into an undefined state of various submodule behaviors rather than resuming LinkState_Default

Day & Night system overrides forest canopy overworld overlay

When the day & night system changes the color palette in areas with a forest canopy overlay, the overlay is removed entirely. Likely a color math operation being performed which would need to be skipped in forest areas or math adjusted for the color of the canopy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.