Keep music in PortMaster builds

This commit is contained in:
Alexander Sellite 2026-08-18 10:22:27 -04:00
parent 021de5aca4
commit 52dc2810ba
5 changed files with 15 additions and 18 deletions

View file

@ -219,8 +219,7 @@ profile also:
- keeps the title water and full-window menu patterns static;
- replaces the animated cooler water and decorative bubbles with flat water;
- disables decorative title-screen fish and bubbles;
- omits title music, dusk music, rain ambience, and shoreline ambience from the
package while retaining gameplay sound effects, speech, and character calls;
- retains title and dusk music while omitting rain and shoreline ambience;
- reduces rain to 48 particles simulated at 8 FPS; and
- replaces procedural sky clouds and 81 moving local cloud patches with one
flat cloud ceiling.
@ -233,10 +232,11 @@ pixels. All remaining raster textures use ETC2 VRAM compression. Short sound
effects, speech, and calls are imported as 22.05 kHz mono QOA samples. The
authoritative artwork and the desktop, Android, and macOS imports are not
modified. Source artwork, design documents, tests, platform-specific icons,
music, and ambience are omitted from the temporary export project. This
build-time profile is always present in the PortMaster package; selecting the
normal runtime profile restores visual effects, but does not restore omitted
audio or replace the micro textures with desktop-resolution assets.
and ambience are omitted from the temporary export project. The original
compressed title and dusk music remain available in both runtime profiles.
This build-time profile is always present in the PortMaster package; selecting
the normal runtime profile restores visual effects, but does not restore
omitted ambience or replace the micro textures with desktop-resolution assets.
The normal profile otherwise retains the full visual presentation.

View file

@ -351,14 +351,12 @@ func _configure_presentation_performance_profile(light_profile: bool) -> void:
func _configure_audio_performance_profile(light_profile: bool) -> void:
_title_music.stream = _load_optional_audio_stream(TITLE_MUSIC_PATH)
_dusk_music.stream = _load_optional_audio_stream(DUSK_MUSIC_PATH)
if light_profile:
_title_music.stream = null
_dusk_music.stream = null
_shoreline_ambience.set_audio_enabled(false)
_rain_ambience.set_audio_enabled(false)
return
_title_music.stream = _load_optional_audio_stream(TITLE_MUSIC_PATH)
_dusk_music.stream = _load_optional_audio_stream(DUSK_MUSIC_PATH)
_shoreline_ambience.set_audio_enabled(true)
_rain_ambience.set_audio_enabled(true)

View file

@ -112,7 +112,6 @@ if [[ ${PACKAGE_ONLY} -eq 0 ]]; then
--exclude '/art/exported/system_icons/netfishing_1024.png' \
--exclude '/art/exported/system_icons/netfishing_1024.png.import' \
--exclude '/audio/ambience/' \
--exclude '/audio/music/' \
--exclude '/builds/' \
--exclude '/docs/design/' \
--exclude '/tests/' \
@ -183,7 +182,7 @@ Architecture: AArch64
Minimum linked GLIBC symbol version: GLIBC_2.28
Rendering method: gl_compatibility
Texture profile: 128 px maximum; 64 px gameplay catalogs; ETC2 compressed
Audio profile: 22.05 kHz mono QOA effects; music and ambience omitted
Audio profile: original music retained; ambience omitted; effects use 22.05 kHz mono QOA
The executable and PCK were exported from the release commit listed above.
Repository working-tree changes were not included in game content.
@ -218,9 +217,9 @@ selected data root. Device-local configuration remains under
\`netfishing/conf/\`.
PortMaster launches use the light performance profile by default. Put the word
\`normal\` in \`netfishing/conf/performance_profile\` to opt a capable device
into the normal rendering profile. PortMaster packages omit music and ambience
in both profiles. See \`netfishing/licenses/\` for bundled credits and license
information.
into the normal rendering profile. PortMaster packages retain title and world
music while omitting rain and shoreline ambience in both profiles. See
\`netfishing/licenses/\` for bundled credits and license information.
## Controls

View file

@ -202,7 +202,7 @@ func _validate_low_end_profile_contract() -> void:
assert(asset_profile.contains("fish/species"))
assert(asset_profile.contains("art/exported/characters"))
assert(builder.contains("--exclude '/audio/ambience/'"))
assert(builder.contains("--exclude '/audio/music/'"))
assert(not builder.contains("--exclude '/audio/music/'"))
func _make_button(

View file

@ -125,8 +125,8 @@ func _validate_main_profile(main: Node) -> void:
var player_menu := game_ui.get("_player_menu") as PlayerMenu
assert(player_menu != null)
assert(not player_menu.is_cooler_water_effect_enabled())
assert((main.get_node("%TitleMusic") as AudioStreamPlayer).stream == null)
assert((main.get_node("%DuskMusic") as AudioStreamPlayer).stream == null)
assert((main.get_node("%TitleMusic") as AudioStreamPlayer).stream != null)
assert((main.get_node("%DuskMusic") as AudioStreamPlayer).stream != null)
assert(
(main.get_node("%WavesAudio") as AudioStreamPlayer).stream == null
)