Skip to content

feat(libSceNet): export in6addr_any and in6addr_loopback - #1096

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
kjhq:feat/libscenet-in6addr
Oct 8, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
kjhq:feat/libscenet-in6addr

Conversation

@kjhq

@kjhq kjhq commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

What

libSceNet exports two 16-byte data symbols, in6addr_any (ZRAJo-A-ukc) and in6addr_loopback (XCuA-GqjA-k): the IPv6 wildcard address :: and the loopback address ::1. A title importing them failed to resolve the symbols.

They are added as extern const arrays named with _nid_postfix, as the libc data exports in LocaleSupport.cpp are; the patched libSceNet.prx exports them under the NIDs above. guest_sce_net checks both values.

Title

PPSA17221 (Minecraft) needs #716 to load the modules in its app root, so every run below is current main + #716 + the PRs of this set (#1088, #1090–#1096), plus local changes outside it: dialog, NpAuth and TextToSpeech2 stubs that open PRs cover (#560, #925, #301) and a GPU end-of-pipe change that is not submitted. With all of them the title loads a world. The line below is from a run with only this PR left out, Windows 11, WinLibs GCC, normal user session.

Without it startup stops at load:

FAIL: unresolved ELF import XCuA-GqjA-k from libSceNet.prx

XCuA-GqjA-k is in6addr_loopback; the eboot also imports in6addr_any (ZRAJo-A-ukc).

Tested

Debian 13 (WSL2), GCC 14.2.0, Release: full ctest 390/390 passed (GPU tests skipped: no Vulkan device in WSL), including guest_sce_net. nm -D on the patched libSceNet.prx shows ZRAJo-A-ukc and XCuA-GqjA-k.

Windows 11, WinLibs GCC: PPSA17221 with this PR and the rest of the set loads a world (runs described above). Not tested with Windows ctest.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

libSceNet exports the IPv6 wildcard and loopback addresses as data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants