[GH-ISSUE #396] Support nwa files #184

Open
opened 2026-05-06 13:16:04 +02:00 by BreizhHardware · 1 comment

Originally created by @Rubimath40 on GitHub (Apr 7, 2026).
Original GitHub issue: https://github.com/UpsilonNumworks/Upsilon/issues/396

Would it be possible to install external app that are not on the External page but that are available as .nwa file here or somewhere else?

I saw few apps as .nwa files, so I can install it on the official software, but I can't install it on Upsilon because they aren't on the External page. I would like it were possible to select a .nwa file from the external page to install it as it were in the list of apps.

Originally created by @Rubimath40 on GitHub (Apr 7, 2026). Original GitHub issue: https://github.com/UpsilonNumworks/Upsilon/issues/396 Would it be possible to install external app that are not on the [External page](https://upsilonnumworks.github.io/Upsilon-External/) but that are available as .nwa file [here](https://gist.github.com/yannis300307/9123136f90877107ec0d49ba96b303e5) or somewhere else? I saw few apps as .nwa files, so I can install it on the official software, but I can't install it on Upsilon because they aren't on the External page. I would like it were possible to select a .nwa file from the external page to install it as it were in the list of apps.
Author
Owner

@Yaya-Cout commented on GitHub (Apr 7, 2026):

Unfortunately, NWA apps are different from Omega/Upsilon external apps system.
The NWA format was created with Epsilon 16, the release where NumWorks decided to lock calculators and make their code proprietary, so we can't reuse their implementation directly. Once installed using NumWorks's website, NWA apps directly call methods from Epsilon (proprietary) kernel which doesn't exist on Upsilon.

Adding direct NWA support may be possible, but requires large changes to external apps handling.

In the meantime, I wrote some time ago a wrapper to convert NWA apps to Upsilon apps at link time, without needing the source code, which I just published: https://github.com/UpsilonNumworks/Upsilon-External/tree/master/apps/NWA It's still work in progress, and require using the CLI, but it works for basic apps. The major issues of this implementations are:

  • Loading external files isn't fully implemented (from what I remember at least)
  • Some apps using native syscalls (using SVC) like the NWA KhiCAS port or Peanut-GB NWA suspend feature will crash the calculator (just triggering a reboot and clearing all Python scripts, a crash won't brick your calculator)
  • You can get soft locked in some apps as Upsilon doesn't automatically handle the Home and OnOff keys, apps are supposed to handle it by hand, while Epsilon implement system-wide (using a timer) so most apps won't care about exiting.
  • Apps using lots (>16KiB) of static memory (.bss and .data sections) won't link, like Celeste

If the source code is available, porting the app for Upsilon is easier and more stable.

<!-- gh-comment-id:4200579306 --> @Yaya-Cout commented on GitHub (Apr 7, 2026): Unfortunately, NWA apps are different from Omega/Upsilon external apps system. The NWA format was created with Epsilon 16, the release where NumWorks decided to lock calculators and make their code proprietary, so we can't reuse their implementation directly. Once installed using NumWorks's website, NWA apps directly call methods from Epsilon (proprietary) kernel which doesn't exist on Upsilon. Adding direct NWA support may be possible, but requires large changes to external apps handling. In the meantime, I wrote some time ago a wrapper to convert NWA apps to Upsilon apps at link time, without needing the source code, which I just published: https://github.com/UpsilonNumworks/Upsilon-External/tree/master/apps/NWA It's still work in progress, and require using the CLI, but it works for basic apps. The major issues of this implementations are: - Loading external files isn't fully implemented (from what I remember at least) - Some apps using native syscalls (using SVC) like the NWA KhiCAS port or Peanut-GB NWA suspend feature will crash the calculator (just triggering a reboot and clearing all Python scripts, a crash won't brick your calculator) - You can get soft locked in some apps as Upsilon doesn't automatically handle the Home and OnOff keys, apps are supposed to handle it by hand, while Epsilon implement system-wide (using a timer) so most apps won't care about exiting. - Apps using lots (>16KiB) of static memory (`.bss` and `.data` sections) won't link, like Celeste If the source code is available, porting the app for Upsilon is easier and more stable.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Upsilon#184
No description provided.