Code Monkey home page Code Monkey logo

zelda3's People

Contributors

cowsoftware avatar dps2004 avatar duhow avatar fitzroyx avatar goodlyay avatar hgdagon avatar jasonshearer avatar jmakin-godaddy avatar keatongreve avatar kiritodv avatar lifning avatar makolyte avatar nutzzz avatar patrickmollohan avatar programmbauer avatar snesrev avatar stspdotname avatar ultrahdr avatar vanfanel avatar victorxpde avatar xander-haj avatar xcom169 avatar yne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zelda3's Issues

FR: Fill rubies, bombs, and arrows

As the title says. I figured this is a decent feature request since you have fill magic and life. Unless those are more difficult to implement.

P.S. This is awesome!

Freezor collision/position bug when building with -O2

Repro steps:

  1. Build game with flags as described in README.
  2. Load the snapshot 0 (Ice Palace)
  3. Approach the left Freezor sprite to activate its awakening/moving states.
  4. When ROM comparison is running, the game will crash with a memory mismatch. When not running, the sprite will walk off to the top left and despawn.
  5. Rebuild the game, replacing -02 with -O0.
  6. Load the same snapshot.
  7. Observe no issues with the Freezor sprite (it will approach Link).

Videos
Note the slightly slower emulation speed is a result of running a screen recorder. No issues observed when not running a screen recorder.

O2_bug.mp4
O2_bug_with_compare.mp4
O0_nobug.mp4

Second Princess :lol:

If you save the princess early in the game and then return to her prison cell, another princess will appear.

image

Compilation error

Hi, I'm having an issue when I'm trying to run compile_ressources.py

[emmanuel@arch tables]$ python3 compile_resources.py
Traceback (most recent call last):
File "/home/emmanuel/zelda3/tables/compile_resources.py", line 812, in <module> print_all()
File "/home/emmanuel/zelda3/tables/compile_resources.py", line 799, in print_all print_dungeon_rooms()
File "/home/emmanuel/zelda3/tables/compile_resources.py", line 734, in print_dungeon_rooms print_int_array('kDungAttrsForTile_Offs', ROM.get_words(0x8e9000, 21), 'uint16', False, 16, file = f)
NameError: name 'ROM' is not defined

Title bar text

Extremely minor suggestion, but would it be possible to change the text in the title bar from "Zelda3" to "Legend of Zelda, The - A Link to the Past", or something of the like?

Fullscreen Support

Normally you can press Alt + Enter or one of the F keys (F11, F12 etc) to make PC ports of games go into fullscreen. A fullscreen option for this port is essential.

The music extraction python script doesn't seem to work

attempting to run extract_music.py produced this error for me:

[albert-softie@albert-softie-endeavouros tables]$ python extract_music.py
Traceback (most recent call last):
  File "/home/albert-softie/source/zelda3/tables/extract_music.py", line 463, in <module>
    song = sys.argv[1]
IndexError: list index out of range
[albert-softie@albert-softie-endeavouros tables]$

out of curiosity i attempted to pass the rom file directly to the python script, which resulted in a different error;

[albert-softie@albert-softie-endeavouros tables]$ python extract_music.py zelda3.sfc
Traceback (most recent call last):
  File "/home/albert-softie/source/zelda3/tables/extract_music.py", line 466, in <module>
    print_song(song, sys.stdout)
  File "/home/albert-softie/source/zelda3/tables/extract_music.py", line 271, in print_song
    get_song_list(0xd000, SONGS_IN_BANK)
NameError: name 'SONGS_IN_BANK' is not defined
[albert-softie@albert-softie-endeavouros tables]$ 

New PPU implementation needs testing

I merged a new PPU implementation which needs more testing. It's around 10x-15x faster than the old one. Press F to see rendering statistics (it shows the # of frames that theoretically could be rendered in one second). Press R to toggle between the old and the new version. (New ppu impl is the default one).

If you notice any graphics bugs please post it here.

NuGet Package restore failed

Severity Code Description Project File Line Suppression State
Error NuGet Package restore failed for project zelda3: Unable to find version '2.0.5' of package 'sdl2'.
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages: Package 'sdl2.2.0.5' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages'.
. Please see Error List window for detailed warnings and errors.

Severity Code Description Project File Line Suppression State
Error NuGet Package restore failed for project zelda3: Unable to find version '2.0.5' of package 'sdl2.redist'.
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages: Package 'sdl2.redist.2.0.5' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages'.
. Please see Error List window for detailed warnings and errors.

Severity Code Description Project File Line Suppression State
Error This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is packages\sdl2.redist.2.0.5\build\native\sdl2.redist.targets. zelda3 C:\Users\rdmci\source\repos\zelda3\zelda3.vcxproj 251

image

Second Agahnim fight issue

After getting hit in the penultimate boss fight, a weird thing happened. Agahnim was targeting Link seemingly off screen. A number of ancilla effects stopped occurring (boots dust, sword charge, boomerang, somaria block, arrows, bombs...) and I couldn't reflect Agahnim's balls.

I tried to save a snapshot using Shift+F1 to F10 but it didn't work (did I miss a compilation option?) and I wasn't running the ROM for verification so I only have this clip. Posting the clip in the meantime. I plan to try again by next Saturday with the ROM running along.

https://clips.twitch.tv/CorrectHeartlessHerbsTinyFace-9zVBJTp4LhGjejE3

Fullscreen is broken on Manjaro Linux

when I fullscreen the game, my entire screen glitches out except for the top left corner of the screen, where the game is running in normal size.

OS: Manjaro Linux
GPU: AMD RX 5700
CPU: AMD Ryzen 5 3600
window manager: kwin
display server: X11

[HELP] Compiling section

Hello,

Hoping someone can help me out - I've never used python before so I'm stuck on the extraction step. The instructions say:

Put the ROM in tables/zelda3.sfc

cd tables

Install python dependencies: pip install pillow and pip install pyyaml

Run python extract_resources.py to extract resources from the ROM into a more human readable format.

Run python compile_resources.py to produce .h files that gets included by the C++ code.

In Windows Terminal, I can 'cd tables' to get to the directory, but then the next steps don't work. If I use Python terminal, 'cd tables' doesn't work - so I'm not sure how to change to the right directory there. I'm sure I'm overlooking something very basic here, can someone point me in the right direction of how to do this? Thanks!!

Volume control support

This is a tracking issue for all commits/PRs related to volume control support (cross-platform and non-cross-platform).

Full screen support

Would it be possible to add fullscreen support, and hiding the debug info?
The game works

Hard Reset doesn't load game save

If I hard reset, even after saving and quitting (which normally lets me pick my game and continue), I have to start from scratch with entering my name.

If I exit the program, and load it again, the name is already there. So, when you perform a hard-reset, it forgets to look at the cartridge save file, until you close the program and re-open it.

SDL is a requirement for building

Built on Windows 11 with Visual Studio 2022. SDL is expected to be installed and prebuilt somewhere under the D drive.

I was able to download SDL, build it, and redirect the Release|x64 configuration to my local copy, but you may want to include explicit instructions in the README or similar.

After adding the include directory to the project settings, manually changing the linker dependencies to my local path to SDL2.lib and SDL2main.lib, and copying SDL.dll into the output directory, it's working fine!

Possible duplicate of #2

Chris Houlihan secret room not working?

Can anyone else confirm this? When I try one of the methods, I get taken to a black, empty square room. I still have control over Link, but the only thing I can see is my hud and weapon/item effects.

Does this project plan to support additional contributors/owners?

Hello @snesrev ๐Ÿ˜„ Thanks for publishing this project, it looks super cool!

There's a handful of good PRs out for review, including various build fixes for different platforms. Would be good to have some of these merged so we can keep build issue reports to a minimum and start actively exploring project contributions. I haven't been able to identify if there's a user or team behind this project.

Note for anyone actively looking at other issues, check out:
#7 if you're having Windows SDL issues in particular
#21 if you're looking for a "just run make" variant of the setup.

Not working with EUR ROM

The extraction fails if an european rom is used instead of USA one. The README states to use a ROM but not the region.

Errors when building on steamdeck

just trying to get the game running on the deck.

Getting this error when trying to compile:

$ clang++ -I/usr/include/SDL2 -lSDL2 -O2 -ozelda3 *.cpp snes/*.cpp
In file included from ancilla.cpp:1:
In file included from ./ancilla.h:2:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from attract.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from dungeon.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from ending.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
hud.cpp:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from load_gfx.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
main.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from messaging.cpp:1:
In file included from ./messaging.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from misc.cpp:1:
In file included from ./misc.h:1:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from nmi.cpp:1:
In file included from ./nmi.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from other_modules.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from overlord.cpp:1:
In file included from ./overlord.h:2:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from overworld.cpp:1:
In file included from ./overworld.h:2:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from player.cpp:1:
In file included from ./player.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from player_oam.cpp:1:
In file included from ./player_oam.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from poly.cpp:1:
In file included from ./poly.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from select_file.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
spc_player.cpp:2:10: fatal error: 'string.h' file not found
#include <string.h>
         ^~~~~~~~~~
1 error generated.
In file included from sprite.cpp:1:
In file included from ./sprite.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from sprite_main.cpp:1:
In file included from ./sprite_main.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from tagalong.cpp:1:
In file included from ./tagalong.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from tile_detect.cpp:1:
In file included from ./tile_detect.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
tracing.cpp:4:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
In file included from zelda_cpu_infra.cpp:3:
In file included from ./zelda_cpu_infra.h:2:
./types.h:2:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
In file included from zelda_rtl.cpp:1:
./zelda_rtl.h:3:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/apu.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/cart.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/cpu.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/dma.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/dsp.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/input.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/ppu.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/snes.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/snes_other.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
snes/spc.cpp:2:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
         ```

MSYS2 Support

It would be great if we could compile with MSYS2 instead of Visual Studio on Windows

Add requirements.txt

Just add a requirements.txt file with dependencies, e.g.

pip3 install Pillow
pip3 install pyyaml

fixed my
ModuleNotFoundError: No module named 'PIL'
ModuleNotFoundError: No module named 'yaml'

Crackling sound

I'm getting crackling sound with a x64 build of the latest commit 3870ca7 in Windows.
It sounds a lot like when an emulator is trying to sync audio to video, usually they have an option to sync video to audio.
It doesn't matter if I use the old or the new renderer.

Is it possible to also see the actual framerate instead of the theoretical one?

Wonky d-pad when playing with a DualShock 4 controller?

I'm playing with a DualShock 4 controller (wired via USB) and getting some wonky behavior with the d-pad. When moving Link, he'll randomly stop moving, as if the d-pad is no longer registering. The analog doesn't seem to have any issues, however. It's also probably worth mentioning that this happens with or without a controller mapper like DS4Windows.

Copy .ini, .dat, and /saves/ref to bin (OutDir)

Though the initial complaint in #74 was resolved by hunting for zelda.ini in a couple of steps of parent directories in 6bd8b11, that commit doesn't resolve the similar problem with /save/refs. Nor is it obvious which files are necessary if you want to only capture the necessary files of a binary release. #76 is an attempt at a general solution for Visual Studio, but the general idea should apply to the makefile as well (though perhaps it could be contained in an install macro).

Hm... this only deals with the situation where you're debugging the game from within VS or running it from the location it built in as a subdirectory of the source tree. No matter how it's built, It's nice to be able to have everything you need to play the game in its own folder so that the files can then easily be moved elsewhere, i.e., decouple src and bin.

And it doesn't help with the /saves/ref folder.

Note I moved this pull to a separate branch http://github.com/Nutzzz/zelda3/tree/output_folder

Originally posted by @Nutzzz in #76 (comment)

Fullscreen issues in Linux

As noted by #43 and #45, there are issues with fullscreen in Linux. Running with the latest commits, garbage gets shown on the sides of the screen, like this:
Screenshot from 2022-09-02 15-32-43
Commit c9e2b4c falsely marked #43 as fixed and the PR was closed. Unless there is something I'm missing, the config file does not address any fullscreen issue in Linux. #43 should have been accepted or an alternative proposed.

Can't find SDL.h on windows

Just following the python extraction (and install), makes it impossible to compile as SDL library is missing

Crash in Turtle Rock dungeon

zelda3 turtle rock error

Upon entering the first southwest room of Turtle Rock (after taking the path north from the entrance), the game aborts, showing this error message. This room happens to contain the dungeon's compass, but the dungeon can be completed without it. Therefore, the room can be skipped (avoiding the bug).

Suggestion: Change "Zoom" to "Scale"

Zoom is not really the appropriate term here and usually means to blow up part of an image without affecting window size. Also, it's awkward to set zoom levels as numbers that correspond to percentages based off a non-native res. I recommend changing to simply "Scale" multiplier and getting rid of the pre-doubling. Then 256x224 = 1, the default is 2, and "ZoomOut/In" becomes "ScaleDown/Up".

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.