Releases: SSunnKing/Open-Nectar---Pikmin-Native-PC-Mobile-Port
Release list
Open Nectar 0.9 β Versus Mode, Achievements & Pikmin Captains
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.
- Its own arena, built in memory from the game's own Impact Site data:
- 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.
- Icons come from your own game files (the ship parts list, the Pikmin
- 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
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
.gciin, drop it in the game'ssave/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 isRon the keyboard and right stick click on a pad.
First Person isVand 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...
Open Nectar 0.8 β Local Co-op, Louie & Shadows
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.zipfrom The Models Resource (or drop it intoLoad/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/kdialogon Linux) and extract the zip intoLoad/Texturesthemselves, 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_hddo 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-runstill 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=1starts 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
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):
- 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.zipWii U - Pikmin 3 - Characters - Pikmin.zipWii U - Pikmin 3 - Creatures - Bulborb.zipWii U - Pikmin 3 - Creatures - Dwarf Bulborb.zip
- In game, open the settings menu (F1 on desktop, the gear button on
Android) β Graphics β HD Models. - 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. - The row switches to Installed. Repeat for the other models.
- 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,
Cby 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_DIRstill 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/Texturesand 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
Open Nectar 0.6 - Android Release
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.
glBufferSubDataon 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
_mipNchains, 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=0andPIKMIN_FRAME_DUMP=<dir>are there for A/B testing and bug reports.PIKMIN_TICK_STATS=1prints the per-frame profiler; on Android the same variables go inenv.txtin 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
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
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
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
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
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