Skip to content

Releases: SSunnKing/Open-Nectar---Pikmin-Native-PC-Mobile-Port

Open Nectar 0.9 β€” Versus Mode, Achievements & Pikmin Captains

Choose a tag to compare

@SSunnKing SSunnKing released this 28 Sep 16:29

A big one: a brand-new 1-vs-1 Versus mode, 44 achievements, playable Pikmin
captains, a rebuilt F1 settings page with mouse support and a round of
fixes. Saves and settings carry over.

New

  • Versus mode: "Parts Race" (1 vs 1). A new entry in the main menu
    (Start / Co-op / VS / Options / Advanced Options / Challenge Mode). It
    revives the versus mode Nintendo left unfinished and always plays with two
    captains.
    • Its own arena, built in memory from the game's own Impact Site data:
      a flat walled field with a base at each end, two ponds and the centre
      free for the big part. No extra files needed.
    • Each player gets their own three Onions, 15 Pikmin (5 of each colour)
      and their own rocket. Ship parts are picked by weight; deliver them to
      your rocket to score.
    • Rocket siege (optional): your free Pikmin near the rival rocket wear
      it down; destroying it wins the match. Each part delivered repairs it.
      If both rockets fall at once, it's a draw.
    • Bomb-rock gate at each base, with bombs nearby to open it.
    • Rules menu before the match: duration, rocket siege on/off, rocket
      health, when the big part appears, Pikmin per player and pellet respawn.
      Rules are saved with your settings.
    • 3-2-1-START countdown (nobody moves until it ends), per-player scoreboard
      and HUD, reinforcements for a player left with no Pikmin, and a final
      screen with rematch or back to title. In the pause menu, "Quit match"
      goes back to the title. Versus does not touch your save.
    • Rival sprouts can't be plucked; Pikmin fight the rival captain's squad.
    • Shortest-path routing on the arena so carriers don't take detours.
  • Achievements. 44 achievements (444 points) with their own tab in F1:
    every ship part, each Pikmin colour, Goolix, the three endings, "Allergic
    to Blue", "Hocotate Speed Demon" and the five Challenge Mode scores.
    Unlocked ones show in colour, locked ones in grey, and selecting one tells
    you how to get it. A pop-up with the icon appears when you unlock one.
    • Icons come from your own game files (the ship parts list, the Pikmin
      faces, the area photos), so nothing extra is shipped.
    • Titles come from SlashTangent's RetroAchievements set for Pikmin.
    • Progress is kept apart from your save (pikmin_achievements.txt).
    • Achievements stay off in Versus mode and while cheats are on (Pikmin
      limit over 100, infinite day, speed or health changes...). Quality of life
      mods like Quick Grab or Throw Speed don't count as cheats.
  • Pikmin captains. In the captain picker you can now choose Olimar,
    Louie or a Red, Yellow or Blue Pikmin. A Pikmin captain looks the part
    (model, leaf light, portrait), is as tall as Olimar and plays exactly like
    him. The picker shows each Pikmin with new pixel-art sprites.
  • Quick Grab (F1 > Controls, off by default): the Pikmin you throw
    appears in Olimar's hand at once, so throwing is just as fast with the
    squad behind him as around him.
  • Mouse in the F1 menu: left click selects tabs, rows and options (click
    again to use), the wheel moves up and down and right click goes back.
  • Per-player camera in Co-op/VS: each controller's right stick turns its
    own player's camera; mouse and touch stay on Player 1.
  • New cheats: "Invincible Pikmin" and "Unlock All Zones" (this one is
    saved to the file). Hard mode turns every cheat off.
  • Player 2 can open F1 in Co-op/VS with Select on their own controller,
    navigate it with that controller and remap their own gamepad buttons
    (saved separately from Player 1's).

Changes

  • F1 settings rebuilt as a tabbed page (Display, Graphics, Controls,
    Camera, Gameplay, Cheats, Data, Achievements): rows with section headers
    on the left, the row's options and an explanation on the right. Works with
    mouse, controller, keyboard and touch, and scales up on phones.
  • Glass settings menu on the title screen gets the same layout, with a
    scrollbar, a right-hand options column and shrinking long values.
  • Bigger squads keep their shape: with the Pikmin limit above 100 the
    formation grows in length as well as width, instead of squashing into a
    wide oval. At 100 or less it behaves exactly like the original.
  • The Free Camera explanation now says how to use it: hold Left Shift and
    move the mouse, or use the right stick.
  • "Infinite Day" is now the "Infinite" stop at the end of the day-length list.
  • More full-width screens (#46): file select, title, world map, course
    select, high scores and slide-in menus no longer clip to 4:3, and elements
    the original layout parks off-screen stay hidden.

Fixes

  • World map touch (Android): tapping an area selects it again; taps were
    landing off to the side since the map went full width.
  • Save export/import (Android): exporting a backup no longer gets
    picked up by the HD models installer; backups hold only the two memory
    cards (the shader cache made our own ZIP fail the restore check); no more
    empty .zip when there is nothing to copy; exporting works on storage
    providers that reject overwrite mode.
  • Co-op: Pikmin taken out of an Onion by Player 2 now go to Player 2
    instead of Player 1.
  • Co-op/VS geysers: a geyser only launches the captain standing on it;
    the other captain was being flung into the sky and landing on it.
  • Co-op split screen: enemy health circles no longer vanish in Player
    2's view when Player 1 isn't looking at that enemy.
  • Controller reconnect: a controller that disconnects and reconnects goes
    back to the same player (it stopped responding, or swapped players).
  • First person per player: in Co-op/VS each player toggles their own
    first-person view (keyboard owner with V, or each controller's bound
    button, Left Stick click by default) instead of both switching at once.
  • VS: Pikmin attacking a rocket can be killed again by the rival's
    Pikmin; after the first hit they became invulnerable.
  • Captain picker art is now built into the game, so the pixel-art
    portraits show on every install (they were missing on Linux installs).
  • Accents and Γ± in menus: Spanish text (e.g. the VS rules and
    explanation screen) shows accented letters, Γ±, ΒΏ and Β‘ correctly.
  • F1 and glass menus: a dark backing behind the panels makes the text
    easier to read; long achievement titles shrink or are cut with "..."
    instead of overlapping, and the achievement help no longer shows a stray
    "Locked." outside the panel.
  • Menu key-repeat and window/resolution handling tidied up.

Open Nectar 0.8.5 - Lock on, Gyroscope, First-person, New Settings

Choose a tag to compare

@SSunnKing SSunnKing released this 23 Sep 22:07

Memory cards now work with the real game. A save exported
from a GameCube memory card or from Dolphin loads straight into Open Nectar,
and a save made here can be taken back the other way. Around it: gyro aiming
on pads and phones, a rebuilt settings menu that explains every option, a
first-person view that finally works properly, and sixteen new gameplay
options, including Lock-On and Charge borrowed from Pikmin 3.

Memory cards

  • Genuine GameCube saves are readable at last. The checksum that guards
    each section of the card was reading its words in the host's byte order.
    On a PC that is the opposite of a GameCube, so every real save looked
    corrupt, the game offered to repair it, and repairing it destroyed the
    progress. The sum is now computed the way the console computes it.
  • Cards written by older builds still load. They carry the old sum, so
    it is accepted on read and quietly rewritten correctly the next time the
    game saves. Nothing to do and nothing to convert.
  • Together this means a card is the same card everywhere: Open Nectar,
    Dolphin and real hardware can all read each other's saves. To bring a
    .gci in, drop it in the game's save/card0/ folder without its 64-byte
    header.

Gyro aiming

Aim the cursor by turning the controller, as in the Switch release.

  • Works with gyro pads and with the phone itself. Switch Pro Controller,
    Joy-Con, DualShock 4 and DualSense are picked up automatically. On Android,
    with no gyro pad connected, the phone's own sensor is used, and it follows
    the screen's orientation.
  • Third person: the gyro moves the cursor, on top of the stick or mouse,
    in either control scheme. First person: it looks around instead.
  • Settings (Controls): on/off, sensitivity, and invert, each axis on
    its own (none, horizontal, vertical or both).
  • Calibrate. Put the pad or phone down, keep it still and press A. Two
    seconds later the resting drift is measured and subtracted from then on, so
    the cursor stops creeping. The result is saved with your settings.
  • Gyro Recenter is a new bindable action. It brings the cursor back in
    front of Olimar, and in first person it levels the view. It has no default
    button, because every pad button is already taken: assign one from the
    Gyro Recenter Button row in Controls.

Settings menu

The F1 menu and the title screen's Advanced Options had grown one row at a
time. They are now organised the same way:

Group What is in it
Display Display mode, resolution, aspect ratio, 3D resolution, refresh rate, VSync, FPS mode, language
Graphics Antialiasing, filtering, lighting, shadows, fog, bloom, AO, depth of field, colour grading, texture packs, HD models
Controls Control scheme, mouse, sticks, gyro, keyboard and gamepad bindings
Camera Free Camera, First Person, Lock-On, Charge
Gameplay Pikmin limit, day length, health, Pikmin behaviour, co-op
Data Export and import saves, reset settings
  • Every row explains itself. A help line shows what the selected option
    does. In F1 it appears at the bottom of the panel; on the title screen it
    appears on a plate under the list.
  • Options that depend on another are dimmed until that one is on, and
    the help line says which one. Examples: Charge needs Lock-On, Gamma needs
    Colour Grading, Mouse Sensitivity needs the Mouse Cursor scheme, and
    Resolution does nothing in borderless mode. Rows locked by Hard mode say
    so.
  • Bindings have their own pages. On the title screen, Controls used to
    be a single list of 56 rows in a six-row window. The keyboard and gamepad
    bindings now each open their own list.
  • Leaving the menu saves. Closing F1 (or pressing Esc/B) and Back on
    the title screen both keep your changes. There are no separate Save rows
    any more. The one exception is a display change you have not confirmed yet,
    which is reverted on its own. Before, closing F1 without choosing Save left
    the changes working for the rest of the session but lost them on restart.
  • The old Mods page is gone. Its options now live in the group they belong
    to, as the table shows.

New gameplay options

Sixteen new options, all off (or at 100%) by default.

  • Better Pathfinding. A carrying party wedged against scenery used to
    push at the same waypoint forever, because the route was only rebuilt
    when a waypoint closed, never when the party simply stopped moving. With
    it on, a party that covers no ground for three seconds rebuilds its
    route from where it actually is.
  • Blues Only In Water. A non-blue Pikmin that walks into water under its
    own steam steps back to the last dry ground it stood on instead of
    drowning. Thrown in, or knocked in by an enemy, still drowns, so water
    keeps its teeth. Whistling them across water no longer feeds them to it
    either: they gather at the edge and follow you back once you are on land.
  • Idle Pikmin Counter. Shows how many Pikmin are standing around doing
    nothing, above the field total, and only when there are any β€” a permanent
    zero is noise you stop reading.
  • Olimar Health and Enemy Health. Anywhere from a quarter to five
    times the original, in steps. Applied as a divisor on incoming damage
    rather than by resizing the health bar, so the gauge and every
    "below a quarter" warning keep reading correctly.
  • Infinite Day. The playable clock stops. The title screen keeps its own
    clock, so its sky still moves. Note that sunset never arrives, so on
    Android there is currently no way to end a day with this on.
  • Free Camera. Hold Shift and the mouse orbits instead of aiming; the
    cursor waits where you left it. On a pad the right stick orbits and the
    squad moves to D-pad Down. Horizontal only β€” this game's camera pitch is
    stepped, not analogue.
  • Lock-On. Press it with the cursor over an enemy and the cursor sticks
    to it: the ring, the trail and your throws all follow it, even while you
    run. Press again, walk far enough away, or kill it, and the lock drops.
    Thrown Pikmin no longer inherit the captain's momentum while locked, so
    a throw on the move still lands on the target.
  • Charge. With a target locked, the swarm button sends every Pikmin in
    formation at it. Pikmin already working carry on with what they were
    doing. Needs Lock-On.
  • First Person. The camera moves into Olimar's helmet. The option in
    Camera enables the mode; a separate bindable key steps in and out of it
    while playing. See below for how it plays.
  • Throw While Moving. The captain only takes a Pikmin into his hand once
    it reaches him, and a walking captain is a target the Pikmin never quite
    catches, so throwing on the move stalled. With it on, the handoff
    range grows with the captain's speed and is measured flat, so a slope no
    longer counts as ground still to cover.
  • Whistle Radius (Gameplay). How big the whistle circle grows at full
    charge, from 50% to 300% of the original. The circle you see and the area
    that calls Pikmin grow together.
  • Instant Whistle Response (Gameplay). Whistled Pikmin join the squad
    the moment the whistle reaches them. Normally each one waits a random
    moment, turns to look at Olimar and only then comes running, which with
    idle Pikmin can feel like they ignored you.
  • Throw Speed (Gameplay). How fast you can throw, from 50% to 200%.
    It scales Olimar's grab and throw animations. Above 100% he also reaches
    further for the next Pikmin, and the one he picks runs to his hand faster,
    so the squad trailing behind him keeps up with the faster pace.
  • Cancel Throw With B (Controls). While holding a Pikmin with A, press B
    to put it back in the squad instead of throwing it. It does not start the
    whistle.
  • No Tripping (Gameplay). Pikmin running in the squad never trip over
    and fall behind.
  • Onion: Y for Steps of 10 (Controls). In the Onion menu, hold Y while
    moving up or down to move Pikmin 10 at a time. The usual limits still apply:
    if fewer than 10 fit, it moves as many as it can and shows the usual message.

First person

  • The mouse looks around, always. In the Mouse Cursor control scheme,
    moving the mouse turns the view left and right and tilts it up and down,
    with no button to hold. Up and down stop short of flipping over. Gyro pads
    do the same.
  • The cursor follows your view. It sits a fixed distance in front of
    where you are looking, so throws go where you face.
  • The triggers zoom: R closes in, L pulls back, as field of view rather
    than distance.
  • The eye sits at helmet height instead of at ground level.
  • Fixed: the view spinning out of control. The camera smoothing fed the
    first-person position back into itself every frame, so the view drifted
    and spun, and often ended up looking at the underside of the map.
  • Fixed: the ground vanishing near the camera. Everything closer than 100
    units to the eye was cut off, which at head height is most of the floor.
    The black void underneath showed through. The cut-off is much shorter in
    first person now.
  • Fixed: Onions could not be opened. Hiding Olimar's model also stopped
    his collision from updating, so the game never saw him standing next to
    the Onion. Only the drawing is skipped now. This also fixes his antenna
    light staying behind.

Controls

  • Lock-On, First Person and Gyro Recenter are new bindable
    actions. Lock-On is R on the keyboard and right stick click on a pad.
    First Person is V and left stick click. Gyro Recenter is unassigned by
    default. All of them can be changed in Controls.
  • Charge has no key of its own. With the option on, the swarm button does
    it ins...
Read more

Open Nectar 0.8 β€” Local Co-op, Louie & Shadows

Choose a tag to compare

@SSunnKing SSunnKing released this 22 Sep 10:40

Two captains, two controllers, split screen that can merge into a single camera when you stay together, and Louie from Pikmin 2 as a playable model.

Around it, the port's settings moved into a menu that looks like the game's own, a texture pack installer on desktop, and a handful of fixes to the new-game flow.

Downloads: open_nectar_0.8.apk (Android, arm64), nectar-windows.zip, nectar-linux.tar.gz. Saves and settings from 0.6.5 carry over. The desktop builds now carry the Open Nectar icon (executables and installer on Windows; window icon plus a .desktop file and PNG on Linux).

Local co-op

  • Co-op from the title screen. The main menu now reads Start / Co-op / Options / Advanced Options (plus Challenge Mode when unlocked). Start is single player as always; Co-op goes straight to the controller prompt
  • Controllers and captains. Each player presses a button on their own controller, then picks a captain, Olimar or Louie, with that same controller (sprites from Pikmin 2-e). Both can pick the same one: with two Olimars player 2 is tinted blue, with two Louies player 2 is tinted red, and Olimar + Louie needs no tint. Cursor ring, cursor trail, antenna light and the HUD follow the same colour.
  • Louie. Playable through the Pikmin 2 rip, same route as the HD models: Advanced Options β†’ Graphics β†’ HD Models β†’ Louie and pick GameCube - Pikmin 2 - Characters - Louie.zip from The Models Resource (or drop it into Load/Models/). The rig is the GameCube one, so he animates with the original Olimar animations; helmet glass matches Olimar HD, antenna light is blue, and the HUD shows his Pikmin 2 portrait. If the model is not installed the picker says so and keeps Olimar.
  • Louie HD. The Pikmin 3 rip works too: HD Models β†’ Louie HD with Wii U - Pikmin 3 - Characters - Louie.zip. When both are installed the Pikmin 3 one is used, the same way Olimar HD replaces the original.
  • Single player picks a captain too. After Start a Captain prompt asks Olimar or Louie (keyboard, gamepad or a tap), so Louie is not limited to co-op. Challenge Mode stays only Olimar.
  • Split screen that merges. New option Mods β†’ Co-op Merged Camera (off by default). On, both halves show one camera while the captains are close and split smoothly as they walk apart; each half's side follows where that player is on screen (left/right, or top/bottom with the horizontal split). Controls follow the camera each player actually sees, so nothing inverts when the shared camera turns. Off keeps a static split.
  • HUD per player in each player's half, whichever side it is on.

Advanced Options (new settings menu)

  • Advanced Options on the title screen opens the port's settings inside the game's own glass panels, with the same font, cursor and highlight as Options: Display, Controls, Graphics, Mods, Save Data, then Save and Back. Long lists (resolutions, key and button bindings) scroll with a side bar, held Up/Down keeps scrolling, and on touch screens you can drag the list up and down with a finger. The background behind each panel is blurred so the text reads over the title screen.
  • Display changes still ask for confirmation with a countdown; the dialog is now a proper panel and reverts on its own when the time runs out.
  • Resolution opens a full list instead of cycling.
  • F1 in game is unchanged; it is the same settings underneath.

Graphics

  • Per-pixel lighting (Graphics β†’ Lighting). The GX lighting equation is evaluated per fragment instead of per vertex, so highlights and light falloff follow surfaces instead of triangle corners. Same equation, same colours; off keeps the vertex lighting from GameCube.
  • Shadow maps (Graphics β†’ Shadows: Off / Soft / Normal / Strong). A depth map rendered from the sun (light 0) gives captains, Pikmin, creatures and the ship real cast shadows, filtered with hardware PCF. Cursor, marker rings and particles do not cast. With shadow maps on, the original blob shadows are skipped.

Controls

  • Pikmin colour on the D-pad (#43). Left/Right on the D-pad (or the arrow keys) cycles through the colours in your squad, like the Pikmin 2 shortcut, and also while holding A: the Pikmin in hand goes back to the squad and one of the new colours is picked up. Works for both players in co-op; the mouse wheel and the HUD tap keep working as before.
  • Mouse buttons are bindable (#42). Any keyboard action can take a mouse button, including Mouse 4 / Mouse 5 (back / forward).

Installers

  • Texture packs on desktop now open a file picker (Windows native, zenity/kdialog on Linux) and extract the zip into Load/Textures themselves, following the same path rule as Android. No more manual unzip.
  • HD Models gained the Louie and Louie HD rows; the converters accept the Pikmin 2 and Pikmin 3 Louie rips on desktop and Android, and build-hd-model-pack.py louie / louie_hd do the same offline.

Fixes

  • Choosing Normal / Permadeath and then Normal / Hard with a gamepad auto-confirmed the second question with the same press. Fixed.
  • The new-game prompt now keeps the file-select background (stars and gradient) instead of a black screen, and empty slots no longer play the bubble zoom before it.
  • Particles with a tint (antenna glow, cursor trail) were only partly tinted; child particles and textured particles now take the colour too.
  • NVIDIA PRIME on Linux (#44). Running through prime-run still landed on the integrated GPU under Wayland: it exports the GLX vendor but not the EGL one, and SDL uses EGL there. The port now completes the route the environment already asked for (EGL vendor on Wayland, GLX vendor on X11) without touching anything the user set.
  • Test mode. PIKMIN_UNLOCK_ALL=1 starts a new game with every story and challenge stage open, no tutorial and intro cutscenes skipped.
  • Menu panels built from the game's layouts can gain extra entries at run time (this is how the title and Advanced panels grow); the glass, the title plate and the cursor icons follow along.

Known issues

  • The Onion's light beam is cut short in the port compared to GameCube
  • The Nintendo logo in the intro and credits still renders wrong (#40).

Open Nectar 0.6.5 - Fixes / HD models

Choose a tag to compare

@SSunnKing SSunnKing released this 19 Sep 21:12

The headline: HD models from Pikmin 3. Olimar, the red/yellow/blue Pikmin
(leaf, bud and flower included), the Bulborb and the Dwarf Bulborb can be
replaced with their Wii U meshes and textures, on every platform, by picking
the model zips you download yourself β€” the game converts them on the spot.
Alongside it, the throw cadence fix people asked for, mouse buttons and a
swarm key in the control remapper, and a batch of desktop fixes.

Downloads: open_nectar_0.6.apk (Android, arm64; the version string stays 0.6
for this build), nectar-windows.zip,
nectar-linux.tar.gz. Saves and settings from 0.6 carry over.

HD models from Pikmin 3

The original .mod files keep driving animation, collision and everything
else; only the visible mesh is swapped, and each model falls back to the
original the moment its pack is missing. Nothing from Pikmin 3 ships with the
game: you bring the rips, the game builds its own packs from them.

How to install (all platforms):

  1. Download the model zips from The Models Resource (Wii U β†’ Pikmin 3). You
    need up to four, one per model, exactly as they come β€” do not unzip or
    rename them:
    • Wii U - Pikmin 3 - Characters - Olimar.zip
    • Wii U - Pikmin 3 - Characters - Pikmin.zip
    • Wii U - Pikmin 3 - Creatures - Bulborb.zip
    • Wii U - Pikmin 3 - Creatures - Dwarf Bulborb.zip
  2. In game, open the settings menu (F1 on desktop, the gear button on
    Android) β†’ Graphics β†’ HD Models.
  3. Pick the row for the model you want (Olimar, Pikmin, Bulborb, Dwarf
    Bulborb) and press A. A file picker opens: choose the matching zip.
    Picking the wrong zip is harmless β€” the game tells you which model it is.
  4. The row switches to Installed. Repeat for the other models.
  5. Restart the game. That is it.

On desktop you can also just drop the zips into Load/Models/ next to the
executable: they are converted the next time the HD Models menu is opened.
Linux needs zenity or kdialog for the file picker (the drop-in route works
without them). Android uses the system file picker, so the zips can live
anywhere the picker reaches.

The generated packs are plain .nhm files under Load/Models/OlimarHD,
PikminHD and BulborbHD; delete a folder to go back to the original model.

Under the hood: an in-game converter reads the Collada + PNG rips (a small zip
reader, an XML parser and stb_image β€” no external tools, no Python), skins the
meshes with the engine's own animation matrices, and bakes the details the
Wii U shaders provided (the see-through visor, the bulborb corneas, the
two-sided eye discs, mirrored Pikmin UVs). The Pikmin legs mapped crosswise in
the first prototype β€” Pikmin 3 puts llegjnt on +X and the GameCube rig has
that joint at βˆ’X β€” which is fixed here.

Gameplay and controls

  • Pikmin throw cadence (#37, #40). Two things capped how fast you could
    throw. Releasing the button while a nearby Pikmin was still waiting for the
    grab keyframe sat there until the whole ThrowWait animation had played, so
    every throw paid for a full grab; and a press landing during the throw
    wind-up was simply dropped, so mashing lost every other throw. The grab now
    completes on release, and a press during the wind-up is queued and fires
    the tick the Pikmin leaves the hand. Mashing throws as fast as on GameCube.
  • Mouse buttons are bindable (#42). Controls β†’ any action β†’ press a mouse
    button: the middle button and the side buttons (Mouse 4 / Mouse 5) bind like
    keys. Left and right stay as the fixed cursor conveniences.
  • Swarm to cursor (#29). New action, C by default, remappable to
    keyboard, mouse or gamepad: hold it and the squad heads for the cursor, the
    way Down on the Wii D-pad did. The C-stick still wins when you move it.
  • Cursor in borderless fullscreen (#40). The absolute mouse cursor was
    measured against the stored windowed size instead of the desktop, so it
    sat off-centre in borderless mode. Fixed, and the mouse re-centres properly
    when leaving relative mode.

Saving

  • Saves that vanished on Linux (#34). The memory card was written beside
    the executable; on a read-only install (an AppImage mount, /opt, a Proton
    prefix over a read-only game folder) the write silently failed and the game
    said "saved" anyway. The game folder is now probed with a real write and,
    if it is not writable, the card lives in ~/.local/share/pikmin-native/save
    (Windows: %LOCALAPPDATA%\Nectar\save). NECTAR_SAVE_DIR still overrides
    everything.
  • Save Data backup (#36). Settings β†’ Save Data exports the memory card to
    a zip and imports one back. On Android that goes through the system file
    picker, so saves can be moved between devices or kept somewhere safe.

Fixes

  • Crash on the second attract movie: globals were not reset between movies
    (#27).
  • Texture packs on desktop: the menu now creates Load/Textures and shows its
    absolute path instead of doing nothing when there was no in-app extractor
    (#35).
  • HD models leaked their cull/blend state into the next mesh drawn: the Onion
    turned see-through, Olimar's helmet vanished, the cursor ring misrendered.
    The pipeline state is saved and restored around every HD draw.
  • Rendering: immediate-mode normals (pc_gfx_normal) and RGBA texture objects
    with a configurable wrap mode, needed by the HD meshes.

Known issues

  • The Nintendo logo in the intro and credits still renders wrong (#40).
  • The mouse cursor can misbehave when checking ship parts at the Onion with
    the cursor mod on (#40).

Open Nectar 0.6 - Android Release

Choose a tag to compare

@SSunnKing SSunnKing released this 15 Sep 22:34

Open Nectar now runs on Android.

Same code, same disc images, same saves format natively on your phone with touch controls designed for the game rather than a virtual GameCube pad glued on top. Alongside it, custom texture packs on every platform, a much faster renderer, and a batch of desktop fixes.

Android

One APK, both discs USA Rev. 1 and European

Requirements:

  • Android 10 or newer, 64-bit device
  • OpenGL ES 3.0
  • about 1 GB free
  • ISO/GCM only, convert rvz compressed images on a computer first.

First run.
The app opens with a single button: pick your disc image with the system file picker. The disc is verified and its assets extracted into the app's private storage. The image is read once, never copied, and can be deleted afterwards. From then on the app opens straight into the game.

Performance.
Holds 120 FPS with a hundred Pikmin on screen on a Snapdragon 8 Gen 2 (OnePlus CPH2449) and it got there through the renderer, not by cutting content:

  • Static geometry lives on the GPU. Every model's display list is parsed once, its vertices uploaded to a resident buffer, and skinned in the vertex shader. Draws that used to be re-decoded from the GameCube FIFO format every frame are now a single glDrawArrays.
  • The vertex ring buffer no longer stalls on Adreno. glBufferSubData on a buffer the GPU is still reading forced a full CPU↔GPU sync per draw (~300 ms of a 360 ms frame). GLES now uses a fenced ring that never orphans storage.
  • Shader binaries are cached to disk (shader_cache/), so the stutter of compiling on first sight of each material happens once per device, not once per launch.
  • Depth and colour attachments are invalidated when they are no longer needed, which is what a tiled mobile GPU wants; depth is 24-bit without a stencil the port never used.
  • Native heap dropped by roughly 500 MB: two GameCube heaps the port does not use were being zeroed page by page at startup. They are now lazily mapped.
  • The existing 60/30 FPS option is the knob for mid-range devices.

Touch controls.
Drawn only when you touch the screen; they vanish as soon as a Bluetooth or USB controller is used.

  • Floating stick on the left half; throw, whistle and disband buttons where a thumb rests. Hold disband and drag to move the squad (C-stick).
  • Pinch to zoom, camera-angle and centre-camera buttons; a colour icon in the HUD cycles which Pikmin you throw. Photo mode has a button too, with the stick and a drag driving the free camera.
  • Every button prompt the game draws the blinking A on dialogue boxes, X/Y on copy/delete, the whole controls page of the pause menu is replaced by the matching touch icon, and that button appears in the layout while the prompt is on screen. Inline prompts inside tutorial text get the icon too.
  • Menus are operated by touching what the game draws: file slots (one tap selects, a second confirms), yes/no prompts, world-map areas, option rows. Swipe left/right flips pause-menu pages. Back on the world map returns to the file selector.
  • Layout editor: move and resize every button, snap to a grid, saved with the rest of the settings. A settings button opens the same menu as F1 on desktop.

Under the hood, for people who build it.
android/ is a Gradle project that compiles the game from the same root CMakeLists.txt (now usable as a subdirectory) with SDL2 vendored in third_party/SDL2-android. The tree compiles under Clang without -fpermissive tricks; the handful of src/ edits that took are explicit casts, not behaviour changes. Release builds are signed with a project key kept out of the repository; see packaging/android/.

HD texture packs (all platforms)

Dolphin-format texture packs load in Open Nectar. Drop a pack under Load/Textures/<GameID>/ next to pikmin_settings.conf (desktop) or install it from a ZIP/RAR through the F1 menu (Android), then enable it under Graphics β†’ Texture packs. Applies on the next start; the menu says so.

  • DDS in BC7, BC1/BC3, RGBA8 and BGRA8, with _mipN chains, plus PNG.
  • Compressed formats upload directly where the driver supports them and are decoded on the CPU (bcdec) where it does not β€” which is how BC7 packs work on Android GPUs that have never heard of BPTC.
  • Packs are matched by Dolphin's texture-name hashing, so existing packs made for the emulator work unchanged. Tested with the Pikmin 4K pack's 1080p and Android editions.
  • Nothing is redistributed: you download the pack from its author.

Desktop

  • The renderer work above is not Android-only: the resident-mesh path, GPU skinning and the lazy batch-state key are on for desktop OpenGL as well, and the shader-binary cache lands in the save folder.
  • PIKMIN_MESH_CACHE=0, PIKMIN_SHADER_CACHE=0, PIKMIN_GPU_SKINNING=0, PIKMIN_FB_INVALIDATE=0 and PIKMIN_FRAME_DUMP=<dir> are there for A/B testing and bug reports. PIKMIN_TICK_STATS=1 prints the per-frame profiler; on Android the same variables go in env.txt in the game folder.
  • New tools: tools/bti2png.py (view the disc's 2D art), tools/texpack-check.py (validate a pack before installing it), tools/android_perf_capture.sh.

Known limits

  • Android supports ISO/GCM only. RVZ/WIA/GCZ still need Dolphin's converter.
  • The 4K edition of texture packs is for desktop; on a phone use the 1080p or Android editions. The loader keeps the original texture for anything that exceeds the GPU's limits and says so in the log.
  • The Android build is arm64 only. 32-bit devices are not supported and will not be.
  • Save data on Android lives in the app's private storage: uninstalling the app deletes it. Update by installing the new APK over the old one.

Thanks

To the authors of the Pikmin 4K texture pack, https://www.henrikomagnifico.com/pikmin-4k whose work made the texture-pack feature worth building.

Open Nectar 0.5 - Hard Mode / Fixed Saves PAL

Choose a tag to compare

@SSunnKing SSunnKing released this 13 Sep 15:36

Hard mode

After Normal vs Permadeath, a second prompt asks Normal or Hard. Both rules can combine (four kinds of file).

On Hard:

  • Enemies have about a third more health
  • Olimar takes 50% more damage
  • Days are 8 minutes; at most 80 Pikmin on the field
  • F1 cannot raise those two
  • The choice is stored on the save. Old permadeath files stay permadeath, without Hard.

Glossy surfaces are back

Olimar, the pellets, the ship and the Onions render their reflections again.

Disc images: RVZ, WIA and GCZ

The first-run installer accepts compressed disc images directly, alongside the existing ISO and GCM support.

  • Conversion uses a Dolphin converter you already have, found next to the launcher or on your PATH, or picked from a file dialog. No converter is bundled and none is downloaded, so you need Dolphin installed to use a compressed image.
  • Conversion goes to a uniquely reserved temporary folder and is cleaned up afterwards. Your source image is never modified or copied into the install.
  • Conversion, verification, extraction and finalization are now reported separately, and a failed attempt returns you to setup with your selections intact instead of exiting.
  • Budget temporary space for a full uncompressed disc image (about 1.4 GB) on top of the extracted assets.

Language from F1 (PAL only)

The European release carries six languages, and the F1 settings menu now has a Language row to switch between English, German, French, Spanish, Italian and Dutch. The change applies on restart, and the menu says so while it is pending. Other discs ship a single language and do not show the row.

Controller and menus

  • Settings from the pad: Select / View (Share on PlayStation) opens and closes the F1 menu. Holding it after a dialog does not pop the menu open again. F1 still works.
  • New-game prompt honors remaps: Accept / cancel on Normal vs Permadeath follow your A/B bindings (buttons or axes). The
  • F1 menu still uses physical A/B.

Gameplay (PC)

  • Yellows planting bombs together: A bomb warning from one planter no longer yanks another carrier into LookAt or a whistle recall before it can set its bomb. Player whistle and blast damage are unchanged.
  • Quick-release grabs: A short throw press is no longer lost while a Pikmin is still in the grab anim or walking in.

Performance

Faster vertex submission: the default matrix-index mode was being mistaken for a streamed vertex format, which sent every interface and world draw through a byte-at-a-time parser. Only indexed arrays and packed non-float immediates take that path now.

Linux

  • NVIDIA laptops on Wayland no longer crash at startup. Pinning the NVIDIA GLX vendor on Xwayland made context creation fail with BadValue and abort before SDL could report anything. Wayland sessions now request NVIDIA through EGL and leave the GLX vendor alone; NECTAR_PRIME_X11=1 restores the old X11/GLX path. A warning is printed if you asked for PRIME and still ended up on the integrated GPU.

Note for people building from source: this adds X11 as a link-time dependency on Linux.

Engine / tests

  • ARAM unit test on Windows: Scratch files use the real temp folder and a private directory per process, so CTest works without TMPDIR and concurrent runs do not clobber each other. No change to the game.

Fixed: saves not being recognised (PAL)

Saving worked, but the game could not find the file again. At sunset it would show the "creating save data" screen, create the file, and then show it again β€” over and over β€” and a restart came back to an empty card.

The European release does not look for its save by name alone: it also checks the game and company codes stored alongside it. The port's CARDSetStatus copied the whole status structure the game handed it, and the game leaves those two fields blank, so every save wiped the identity that had just been written correctly. The file on disk was fine; the game simply no longer recognised it as its own. The North American build never showed this because it matches on the name only.

CARDSetStatus now updates only what the hardware lets a caller change β€” banner, icon and comment. The name, size and game identity belong to the card.
Existing saves are repaired, not discarded. A card written by an affected build gets its identity restored the first time it is read, so a run that seemed lost should load again.
Saves live in the game folder
The memory card is now resolved from the installed game's own folder instead of the working directory. It used to follow wherever the game happened to be started from, so launching through the launcher and launching the executable directly could end up with two different cards.

If a card from an earlier version is found in any of the old locations, it is copied into the game folder on first launch, leaving the original untouched.

The startup log now prints the full path the card resolved to, which makes save reports far easier to act on. Setting NECTAR_CARD_DEBUG=1 adds a trace of every memory-card operation β€” this is what pinned the bug down.

Thanks

Special thanks to 4laric for the fixes and suggestions that made it into this release: the controller-driven settings menu, remap-aware prompts, the bomb-planting and quick-release gameplay fixes, the portable ARAM test, and the reworked first-run installer with compressed disc image support. Thanks for the careful write-ups and validation notes that came with them.

Open Nectar 0.4.7

Choose a tag to compare

@SSunnKing SSunnKing released this 12 Sep 10:01

Needs a retail disc (USA Rev 1 or Europe).

Gameplay and controls

  • Mouse look no longer cancels WASD. A small mouse delta was treated as stand-and-turn, so Olimar hitched while running and aiming.
  • F1 can bind analog triggers and sticks, not only face buttons.
  • DualSense remaps work for the stick and Circle; F1 capture no longer stores the key that opened the bind.
  • F1 menu on DualSense / Linux no longer walks itself (IMU / extra motion joystick).
  • Quick-release Pikmin grabs work on PC.
  • Hold-to-continue plucking is an F1 option, off by default.

Graphics

  • Enemy health gauges draw again. Triangle fans were missing GXEnd on PC.
  • Boss generators use the correct type on PC.
  • Beady Long Legs no longer spawns as the wrong boss.
  • Post-process colour writes stay enabled, so the chain does not go black.
  • Menus stay sharp after leaving a stage (DoF was still using the captain’s focus on file-select and title).
  • Tutorials show PC control names instead of missing GameCube glyphs.

Platforms and install

  • PAL Windows no longer crashes before main while reading the language.
  • Linux CI / packages: sqrtf/fmodf on public Linux, audio test skipped without SndData, Linux artifact keeps execute bits.
  • Invalid PC save slot 0 is rejected so a write cannot land before cardData

Opening intro (demo01)

  • The Dolphin’s engine trail is visible again when the ship appears in space.
  • Oriented ribbons are drawn camera-facing (the GX FIFO used to drop them).
  • The cinematic camera uses the .dsk near/far (0.1 / 32768), not the 1 / 15000 defaults.

Open Nectar 0.4.6 - Fixes

Choose a tag to compare

@SSunnKing SSunnKing released this 11 Sep 21:36

Tutorials

Olimar’s prompts no longer show @ or leftover GameCube glyphs. They print the F1 binding you are using: keyboard names on keyboard, pad names on pad. The C-Stick is T/F/G/H on the default layout. In mouse-cursor mode, A / B / Z also list Left Click, Right Click and Middle Click.

Menus

Leaving a stage no longer leaves depth of field on the file-select and title screens. Those screens have no HUD split, so the pass was blurring the whole interface. In the field, DoF is unchanged.

Throws

A short tap to throw no longer vanishes while the chosen Pikmin is still grabbing or walking over. The throw waits until it is actually in hand. (#11)

Post-process

If the last scene draw left colour or alpha writes off, bloom and the rest of the chain could keep the previous frame. The pass now writes every channel and puts the mask back afterwards. (#12)

Mods

F1 β†’ Mods β†’ Hold to Pluck. Off by default, same tap-per-sprout as the disc. Turn it on and holding Extract after the first pluck keeps going; release or whistle stops. (#13)

Open Nectar 0.4.6

Choose a tag to compare

@SSunnKing SSunnKing released this 11 Sep 20:23

A small hotfix on top of 0.4.5. Same discs, same languages, same installer.

Controls

Remapping from F1 actually waits for the next key or button. Confirming a row with Enter, Space or A used to store that same press as the new binding, so the list flicked back to the default. It now waits until you let go, then takes the next input. Escape cancels.

On a DualSense the Gamepad list no longer walks itself, and Circle is bindable without kicking you out of the submenu. Linux was treating the pad’s motion sensor as a stick held down, and Circle was still β€œBack” on the frame after you bound it.

PAL on Windows

The European build no longer dies before a window appears. It was asking which language to use during static initialisation, which on MinGW can run before C++ streams exist. USA never asked, which is why only PAL crashed. Linux was already fine.

Saves

A first save with no backup slot chosen could write off the start of the card buffer and crash. Direct boot was the usual way to hit it. The title β†’ file-select path was already safe.

Still the same: you supply your own copy of Pikmin. Supported discs: USA Rev 1 and Europe.

Open Nectar 0.4.5 - PAL Multilanguage

Choose a tag to compare

@SSunnKing SSunnKing released this 10 Sep 21:26

The European release

Open Nectar now runs the PAL disc, and that means it now runs in Spanish, French, German and Italian as well as English.

Nothing is translated by this project: the European disc ships all five languages, and the game has always known how to use them. What was missing was a port that could be built for that release at all β€” the game's own code is compiled here, and it is conditional on which release it came from in four hundred places.

The installer recognises which disc you gave it and installs the matching build. If the disc carries more than one language it asks which you want to play in, and every language is installed regardless, so changing your mind later is a menu row and not a reinstall. F1 β†’ Language.

The choice is written to your settings, so it survives.

Widescreen

The HUD no longer stretches to fill a 16:9 frame. It is drawn in a wide space with its pieces anchored where they belong β€” life on the left, the sun bar centred, counters and the day to the right β€” so the world can be genuinely wide without the interface being pulled out of shape or leaving dark bands at the sides.

And things at the edges stop disappearing. The 3D view was already wide, but what the game decided was worth drawing was still being worked out in 4:3: Pikmin, creatures, objects and particles vanished as they crossed where the old frame's edge used to be. They stay now.

If you preferred the interface boxed in 4:3, PIKMIN_MENU_PILLARBOX=1 puts the menus back.

Fixes

  • Accented characters were drawing as garbage. Any letter above plain ASCII indexed backwards out of the font table and produced a black box full of Japanese glyphs. English text almost never leaves ASCII, which is why it took the Spanish release to expose it but the fault was in the port, not in any one language.

  • The permadeath prompt did not appear on an empty memory card. It asked when a save file existed but had never been used, and stayed quiet in the most ordinary case there is: your very first file. This affects the USA release too, and has since permadeath was added.

  • Cutscenes are no longer blurred. Depth of field follows the captain, and a cutscene puts the camera wherever the scene wants it often with him out of shot entirely β€” so the whole frame fell outside the focus. It stands down during cutscenes now.

  • The rectangle around every window frame is gone. 0.4 drew a faint box around dialogue icons and message windows. It came from a texture format being read one way for the attract movies and another way by everything else; the movies now do their own colour conversion and leave the rest of the game alone.

  • The attract movies really do play. In 0.4 they could go black. A post-processing pass was unbinding the shader without saying so, and the next thing drawn quietly failed β€” which for a movie meant a black screen with sound.

  • Deapth of Field graphical glitches

Still the same

You supply your own copy of Pikmin. No game data ships here. Supported discs: USA Rev 1 and Europe