Homebrew Homebrew game Project The Legend of Zelda: A Link to the Past - ALEK'S Ultimate NX

  • Thread starter Thread starter alexgg1014
  • Start date Start date
  • Views Views 4,920
  • Replies Replies 39
  • Likes Likes 17
I get a python error, if i want to use the language extraction tool.
What can i do?

Code:
   import util                 # noqa: E402
    ^^^^^^^^^^^
ModuleNotFoundError: No module named 'util'
 
Awesome, was really hoping to see this. Everything SNES 16:9 mode is welcome, the games really deserve to have a wider view and it is awesome, that you already have the companion there. Will try it out in depth. Zoom in and out like Link's Awakening DX is also good for several devices and screen sizes...
 
Works great, I love the widescreen support . I have tried adding an MSU audio pack, but it says no pack found. How do you get them to register?
 
Just one thing... Link does not show on the map when pressing x? Not too bothered personally but thought I'd mention it!
thx for the feedback ;)
Post automatically merged:

Awesome, was really hoping to see this. Everything SNES 16:9 mode is welcome, the games really deserve to have a wider view and it is awesome, that you already have the companion there. Will try it out in depth. Zoom in and out like Link's Awakening DX is also good for several devices and screen sizes...
Its difficult because LADXHD is built different, I dont think i could add that becuase how A link to the past work
Post automatically merged:

I get a python error, if i want to use the language extraction tool.
What can i do?

Code:
   import util                 # noqa: E402
    ^^^^^^^^^^^
ModuleNotFoundError: No module named 'util'
That one's on me — the error message is useless. The tool isn't standalone: it needs the assets/ folder from the repository, where the language tables live. Copying just the .py can't work.

Grab Source code (zip) from the release page, unpack it, and run it from inside that folder:

python tools/make_language_pack.py "your-rom.sfc"

I've fixed it to say that instead of throwing a Python traceback — it'll be in the next build.

Works great, I love the widescreen support . I have tried adding an MSU audio pack, but it says no pack found. How do you get them to register?
Real bug, thanks for finding it. The detection looked in msu/ while playback looked in the game's root folder, and the setting that connects them was never written into zelda3.ini — so there was no way to work it out.

Fixed in the next build. Meanwhile you can make it work by hand:

  1. Put the pack in switch/Zelda3/msu/, named alttp_msu-1.pcm, alttp_msu-2.pcm, …
  2. Add this under [Sound] in zelda3.ini:
    MSUPath = msu/alttp_msu-
  3. Turn on MSU1 MUSIC in SETTINGS → AUDIO
After the fix that's the default, so dropping the pack in msu/ will just work.
 
Last edited by alexgg1014,
MSU audio works, thank you! It's way more epic, widescreen with an orchestral score. I can't wait for winter now, between this, Minish Cap & the dusk port I'll keep busy 😂
 
  • Haha
Reactions: alexgg1014
MSU audio works, thank you! It's way more epic, widescreen with an orchestral score. I can't wait for winter now, between this, Minish Cap & the dusk port I'll keep busy 😂
Im glad to hear that! Btw Im just port the dualscreen to dusklight 👀
1788795959343.png

Post automatically merged:

Is there a way to expand the number of auto save slots? I think 3 is the current.
Maybe
 
Last edited by alexgg1014,
That one's on me — the error message is useless. The tool isn't standalone: it needs the assets/ folder from the repository, where the language tables live. Copying just the .py can't work.

Grab Source code (zip) from the release page, unpack it, and run it from inside that folder:

python tools/make_language_pack.py "your-rom.sfc"

I've fixed it to say that instead of throwing a Python traceback — it'll be in the next build.

Ok, that worked, great, thx! :)
 
  • Like
Reactions: alexgg1014
Thank you @alexgg1014 ! This port is really great.

Not only does it remove the steps of extracting the assets file, but it also avoids editing the ini file by providing the settings in the GUI.
Best of all is the working save states (I couldn't get that working with the official Zelda3 build).

Question: is it also possible to activate and switch between shaders (and renderer) though the GUI ?
This of course when all the shader files are placed in the Zelda3 dir.
 
  • Like
Reactions: alexgg1014
Thank you @alexgg1014 ! This port is really great.

Not only does it remove the steps of extracting the assets file, but it also avoids editing the ini file by providing the settings in the GUI.
Best of all is the working save states (I couldn't get that working with the official Zelda3 build).

Question: is it also possible to activate and switch between shaders (and renderer) though the GUI ?
This of course when all the shader files are placed in the Zelda3 dir.
Thx for ur feedback❤️‍🔥
And i will try to add the shader option!
Post automatically merged:

Zelda3 — ALEKS Ultimate NX Edition v1.2.0

Renderer and Shader Selection Update​

Thank you wesslyr for the suggestion!

I’ve added the option to select the renderer and shaders directly from the GUI.

Menu path:
Settings → Screen → Renderer / Shader

Available renderer options:
  • SDL
  • SDL Software
  • OpenGL
  • OpenGL ES

The shader menu automatically detects .glsl and .glslp files placed inside the Zelda3 directory. It also includes an OFF option and a toggle for linear filtering.

Zelda3/
└── your-shader.glsl
└── your-preset.glslp​

Renderer and shader changes are saved to zelda3.ini. Restarting the game is required after changing them.

Also included in v1.2.0

  • In-game updater
  • Native story guide
  • Widescreen map improvements
  • Mirror marker
  • Language tool improvements

Download

GitHub — Zelda3 ALEKS Ultimate NX Edition v1.2.0

Thanks again for the feedback. I hope you enjoy the new version!
 
Last edited by alexgg1014,
  • Like
Reactions: angelhp and wesslyr
Thx for ur feedback❤️‍🔥
And i will try to add the shader option!
Post automatically merged:

Zelda3 — ALEKS Ultimate NX Edition v1.2.0

Renderer and Shader Selection Update​

Thank you wesslyr for the suggestion!

I’ve added the option to select the renderer and shaders directly from the GUI.

Menu path:
Settings → Screen → Renderer / Shader

Available renderer options:

  • SDL
  • SDL Software
  • OpenGL
  • OpenGL ES

The shader menu automatically detects .glsl and .glslp files placed inside the Zelda3 directory. It also includes an OFF option and a toggle for linear filtering.

Zelda3/​

└── your-shader.glsl​

└── your-preset.glslp​

Renderer and shader changes are saved to zelda3.ini. Restarting the game is required after changing them.

Also included in v1.2.0


  • In-game updater
  • Native story guide
  • Widescreen map improvements
  • Mirror marker
  • Language tool improvements

Download

GitHub — Zelda3 ALEKS Ultimate NX Edition v1.2.0

Thanks again for the feedback. I hope you enjoy the new version!
My god that is fast!
I just tested it but the GUI days there are no shaders regardless the renderer (while I have the files in the following dir/file structure - see image).

Edit : I now see the glsp files need to be in the root of Zelda3. Will try again

Edit2: I placed the glsl and glslp files in the root and i can now select them from the GUI. But when applying I see no difference on the screen (opengl is used as renderer). I'm using the files from https://github.com/snesrev/glsl-shaders . Which shader file have you tried succesfully (from which source)?

Something else that I noticed: the save state buttons and texts are now correctly displayed! (before they were overlaying each other). Some story Guide texts are a bit unreadable (only the first line is fully shown fully, the other lines are missing the lower part of the font? )
 

Attachments

  • PXL_20260917_135807554.jpg
    PXL_20260917_135807554.jpg
    1.5 MB · Views: 1
Last edited by wesslyr,
  • Like
Reactions: alexgg1014
Was there any chance to perhaps look into how zelda randomizer roms could be used with this?
By default it requires the Japanese version of the game and then alterations are placed on top to add in all the features pretty much like what you have done with the USA version of the rom.
I would assume you'd do something similar to the translations
 
Was there any chance to perhaps look into how zelda randomizer roms could be used with this?
By default it requires the Japanese version of the game and then alterations are placed on top to add in all the features pretty much like what you have done with the USA version of the rom.
I would assume you'd do something similar to the translations
Not right now, and unfortunately it's not the same trick as the translations. This isn't an emulator: the port is a reimplementation, so the ROM is only used to extract assets (graphics, music, text) and all the game logic lives in the port's own C code. A randomizer ROM patches item placement and logic inside the ROM, and that ROM never runs here, so dropping one in wouldn't randomize anything. The asset extractor also validates the USA layout, and randomizer ROMs are built on JP 1.0, so it wouldn't even get that far. Translations work because they only supply data (dialogue, dictionary, font and widths), not logic.

The way to do it properly would be to implement the randomizer inside the port — read the placement tables and apply them to the native item logic. It's on my list, but it's a project of its own, not a drop-in.
 
What shaders work with this and any good resources for them?


Shaders use the standard RetroArch/snes9x GLSL format, so the resource you want is snesrev/glsl-shaders — that's the shader set maintained alongside the zelda3 engine this port is built on.

Grab that repo and copy it (or just the folders you want, e.g. crt/) into sdmc:/switch/Zelda3/shaders/. Keep the folder structure intact — a .glslp preset points at its pass files relative to itself, so pulling one out of its folder breaks it. Then Settings → Screen → Renderer and Shader → Shader lists everything it found.

You'll want v1.2.1, which I just put up — in v1.2.0 the picker only looked in the Zelda3 root, so presets couldn't resolve their passes and nothing appeared to happen. Settings → System → Update will offer it.

Two things worth knowing:

  • Shaders need the OpenGL renderer, and the OpenGL path doesn't draw the companion screen — you get the game on its own, no dual-screen and no touch menu. It asks before switching now, and if you end up stuck there, hold ZL+R3 while the game boots to force SDL back. Getting shaders and dual-screen working together is the next thing on my list.
  • Renderer/shader changes apply on the next launch — use Save and exit to apply on that page.
CRT presets are the ones to try first (crt-aperture, crt-easymode, zfast-crt). If one doesn't load, the row shows FAILED and the compiler error lands in startup.log — post it and I'll take a look.
 
Shaders use the standard RetroArch/snes9x GLSL format, so the resource you want is snesrev/glsl-shaders — that's the shader set maintained alongside the zelda3 engine this port is built on.

Grab that repo and copy it (or just the folders you want, e.g. crt/) into sdmc:/switch/Zelda3/shaders/. Keep the folder structure intact — a .glslp preset points at its pass files relative to itself, so pulling one out of its folder breaks it. Then Settings → Screen → Renderer and Shader → Shader lists everything it found.

You'll want v1.2.1, which I just put up — in v1.2.0 the picker only looked in the Zelda3 root, so presets couldn't resolve their passes and nothing appeared to happen. Settings → System → Update will offer it.

Two things worth knowing:

  • Shaders need the OpenGL renderer, and the OpenGL path doesn't draw the companion screen — you get the game on its own, no dual-screen and no touch menu. It asks before switching now, and if you end up stuck there, hold ZL+R3 while the game boots to force SDL back. Getting shaders and dual-screen working together is the next thing on my list.
  • Renderer/shader changes apply on the next launch — use Save and exit to apply on that page.
CRT presets are the ones to try first (crt-aperture, crt-easymode, zfast-crt). If one doesn't load, the row shows FAILED and the compiler error lands in startup.log — post it and I'll take a look.

Thank you for this great update @alexgg1014 !
I was able to update successfully though the app. That is a big timesaver!

I was also able to activate one shader ( @Lostbhoy I tried crt-easymode) and it already made a good improvement on the first try (see grass, sand road, pillars, font and hearts in the screenshots. I haven't even searched for the best shader yet!).

Unfortunately I cannot activate it yet reliable because I lose the ability to bring up the settings menu once I switch renderer/shader and I restart (I tried all key combinations).
Once I delete the zelda.ini file, I regain access again to the settings menu (but I also lose all previous renderer/shader settings). Redoing the renderer/shader settings and restarting again leads to loss of access to the settings menu (so the loop continues).

When choosing opengl as renderer I also see a text about 'no companion' (not sure what that is about. It's only readable in widescreen. In normal aspect mode the text is garbled up).

Any chance to look into this bug? This is really close to the best Zelda experience possible!

I can get the bug quite often so I can share images/logs if needed)
 

Attachments

  • Screenshot_20260929-151403~2.jpg
    Screenshot_20260929-151403~2.jpg
    542.7 KB · Views: 1
  • Screenshot_20260929-151349~4.jpg
    Screenshot_20260929-151349~4.jpg
    404.4 KB · Views: 1
Last edited by wesslyr,
  • Like
Reactions: Lostbhoy
Thank you for this great update @alexgg1014 !
I was able to update successfully though the app. That is a big timesaver!

I was also able to active one shader (crt-easymode) and it already made a good improvement on the first try (see grass, pillars, font and hearts in the screenshots. I haven't even searched for the best shader yet!).

Unfortunately I cannot activate it yet reliable because I lose the ability to bring up the settings menu once I switch renderer/shader and I restart (I tried all key combinations).
Once I delete the zelda.ini file, I regain access again to the settings menu (but I also lose all previous renderer/shader settings). Redoing the renderer/shader settings and restarting again leads to loss of access to the settings menu (so the loop continues).

When choosing opengl as renderer I also see a text about 'no companion' (not sure what that is about. It's only readable in widescreen. In normal aspect mode the text is garbled up).

Any chance to look into this bug? This is really close to the best Zelda experience possible!

I can get the bug quite often so I can share images/logs if needed)
Thx for the feedback!! Ofc I will fix it ;)
Post automatically merged:

@wesslyr — you found a real one, thanks
v1.2.2 is up and fixes it.

The escape I shipped in v1.2.1 was broken twice over, so "I tried all key combinations" was you doing the right thing against code that wasn't listening: it read the controller once, at a single instant, and it ran after SDL had already taken over the HID session, so it almost never saw the buttons at all. My fault entirely.

How you get out now:
While playing, hold ZL + R3 for about a second. A prompt appears in the picture with a progress bar — when it fills, the renderer goes back to SDL and the game closes so it can reopen on the dual screen. Your shader choice is remembered.

I made it a hold rather than a tap on purpose. A tap can't trigger it by accident, and the second you spend holding is what gives the prompt somewhere to appear. The old version just exited silently, and you were right to call that out — even though it's a clean shutdown (your SRAM is flushed and the autosave is written, same as quitting normally), an app that vanishes with no explanation looks exactly like a crash.

The garbled text in 4:3 was another bug of mine, and your description pinned it: it was centred using the width the text would have at full size, then drawn smaller, so it slid out of its box. Only showed up in 4:3, where the box is narrow enough to force the shrink. Fixed.

To be clear about what hasn't changed: the OpenGL renderer still draws the game on its own, no companion screen. It bypasses the compositor completely — that's why there's an escape at all instead of just a menu. Getting shaders and the dual screen working together is the next real piece of work, and it's what I actually want. Glad crt-easymode already looks that good on the first try.
 
Last edited by alexgg1014,

Site & Scene News

New Hot Discussed User Submitted