snesrev / zelda3 Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://discord.gg/AJJbJAzNNJ
License: Other
Home Page: https://discord.gg/AJJbJAzNNJ
License: Other
I'm working on this.
The game suffers tons of sound stuttering on x86 version (running on x64 bits). This does not happen with the x64 version.
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!
Repro steps:
0
(Ice Palace)-02
with -O0
.Videos
Note the slightly slower emulation speed is a result of running a screen recorder. No issues observed when not running a screen recorder.
Makes the map look better. see: https://retropie.org.uk/forum/topic/22007/hd-mode-7-mod-for-bsnes
When building with Visual Studio, you need to manually copy the config file into the release folder. I don't know if this is intended.
Title says it all, let me know what details you need from me
The mouse cursor is visible when playing full screen on Windows (not sure about Linux/macOS).
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
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?
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.
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]$
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.
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
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
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
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!!
Anyone has a video tutorial or guide so I can follow it?
This is a tracking issue for all commits/PRs related to volume control support (cross-platform and non-cross-platform).
Would it be possible to add fullscreen support, and hiding the debug info?
The game works
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.
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
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.
After saving in-game, closing, and reopening, it does not seem to be retaining save data, playing on Linux Mint.
These integer scales are not possible because of how 512x448 is treated as the base resolution instead of 256x224
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.
Hi if can add option in main menu for change resolution and remap keys will be good
Thanks
The extraction fails if an european rom is used instead of USA one. The README states to use a ROM but not the region.
Any chance of adding pixel shader support, such as the ones found here? Playing this with a nice scanline/CRT shader would be phenomenal.
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>
^~~~~~~~~
```
On every crystal cutscene refill, there was some big lag as the hearts and magic meter were counting up, that last until the "ding" at the end of the spinning animation.
Like my other issue, I'll retry by next Saturday with the ROM running along in hope of being able to get more details.
https://clips.twitch.tv/CrackyBrightTrollMingLee-McLRWoakEq9RY4Lr
It would be great if we could compile with MSYS2 instead of Visual Studio on Windows
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'
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?
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.
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)
Something like https://www.youtube.com/watch?v=-moxxEjz5x4
Black bars are fine to avoid blur
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:
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.
Just following the python extraction (and install), makes it impossible to compile as SDL library is missing
Request to generate an ini if not present, preferably following the XDG spec:
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
It currently doesn't save between sessions.
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".
Hello,
Can you add the possibility to change the default key biding ?
Or detect if the keyboard is in azerty or qwerty ?
Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.