Project Honeydew 0.3.1 (Open Nectar 0.9.2 base) for Linux
================================================================

Project Honeydew is a VR mod for Pikmin (GameCube, 2001): you are Captain
Olimar, at his size, with Pikmin you pluck with your hands and throw with a
real swing. It was called Pikmin VR until 0.2.2.

An UNOFFICIAL fan project, built on Open Nectar (a native PC port of the
projectPiki decompilation). NOT affiliated with or endorsed by Nintendo.
This package contains NO Nintendo files: you need your own copy of the game,
and you install from your own disc image.

Project Honeydew is free. If you'd like to support development:
https://ko-fi.com/projecthoneydew (optional; donations unlock nothing).

THIS IS THE EXPERIMENTAL PACKAGE FOR ARM64 LINUX, SUCH AS THE STEAM FRAME.
One player has played a test build of it on a Steam Frame, through the
tutorial; otherwise each package is checked only on an x86-64 PC, in an
emulator (qemu): installed from a disc image, then played flat and with an
emulated headset. Untested: other ARM64 devices and their graphics drivers.
Online it plays with the Windows and Linux packages of the same release. If you try
it, please tell whoever shared it with you what works and what doesn't: your
device and system, how you started the game, and game-log.txt from the game's
folder.

README-VR.md (open it with any text editor or browser) is the full guide:
every control, every VR setting, comfort tips, troubleshooting. It is written
for Windows; its "Linux" section says what differs here. EASTER-EGGS.md
lists the hidden surprises and how to find them: spoilers!


WHAT YOU NEED
-------------
- 64-bit Linux on ARM64 (aarch64) with glibc 2.31 or newer:
  SteamOS on the Steam Frame, or an ARM64 distribution from 2020 on (Ubuntu
  20.04, Debian 11, Fedora 32 or newer).
- An OpenGL graphics driver (the Steam Frame's own, or Mesa), in an X11 or
  Wayland session. In the headset the 3D view uses the driver's
  GL_OVR_multiview2 (glxinfo | grep OVR_multiview shows whether it has it);
  without it the world is drawn flat. Nobody has tried an ARM64 GPU yet.
- For VR: Steam with SteamVR, installed and started once, and a headset that
  SteamVR supports on Linux. Use Steam from your distribution or Valve's own
  package: with the Flatpak or Snap Steam the game probably can't find
  SteamVR. Project Honeydew was made on an original HTC Vive, on Windows.
- zenity or kdialog, for the launcher's file choosers (most desktops have
  one; see IF SOMETHING GOES WRONG).
- Your own disc image of Pikmin USA Rev. 1 (GPIE01): ISO, GCM, or a CISO/NKit
  file. RVZ/WIA/GCZ also work with dolphin-tool from a Dolphin install.
- About 1 GB of free disk space.
Without SteamVR or a headset the game simply plays on your monitor.


INSTALLING
----------
1. Extract this archive anywhere: in your file manager, right-click it and
   Extract here (no terminal needed), or tar -xzf ProjectHoneydew-0.3.1-linux-arm64.tar.gz.
   Outside the folders you choose, the launcher keeps nothing but the
   shortcuts you tick at the end (project-honeydew.desktop in
   ~/.local/share/applications, the applications menu, and on the desktop).
2. Open nectar-launcher in the ProjectHoneydew-0.3.1-linux-arm64 folder (double-click it, or run
   ./nectar-launcher in a terminal there).
3. Press Install. The launcher finds your disc image when it is in Downloads,
   Desktop, Documents or Games in your home folder, or on an SD card or USB
   drive, and suggests ~/Games/Project Honeydew: press Install (or Browse for
   others).
4. Wait for "Installation complete" (a minute or so) and press Open the
   launcher: the launcher of that folder opens. Start SteamVR first to play in
   VR, then press Play.
On SteamOS the new installation adds itself to Steam: play it from Steam's
library (Game Mode too), so the controllers work. Elsewhere, to start it from
Steam or from SteamVR's library in the headset, press Add to Steam on the
launcher's home screen (README-VR.md, "Starting from Steam").
From then on, open nectar-launcher in the folder you installed to and click
the Pikmin card. The game must start in its own folder: a .desktop file or
launcher script needs Path=<the game folder> (or cd there first).

Without zenity or kdialog, or over SSH, install from a terminal:
  ./nectar-launcher --rom ~/pikmin.iso --install-dir ~/Games/ProjectHoneydew

The launcher never downloads updates. To update, extract a newer Project
Honeydew package, open its launcher, press Update and choose your installed
folder; your saves and settings stay.


PLAYING IN VR
-------------
1. Start Steam, then SteamVR. Wait until it shows the headset and both
   controllers.
2. Start the game from the launcher. The monitor mirrors your view.
3. Title screen, file select and movies appear on a big screen in front of
   you; in a stage you stand in the world at Olimar's size.
Hold both menu buttons to recenter. F1 on the keyboard, or the right menu
button in VR, opens the settings; the VR tab is the last one. The controls are
the same as on Windows: README-VR.md, "Controls", and the card beside the
pause menu in the headset.


ONLINE
------
Windows, Linux, Linux ARM64 (Steam Frame) and Quest players of the same version
play online together (a Quest has no voice chat yet); a different version, or a
self-built copy, is refused with the reason. If a join between a PC and an ARM64 machine sticks, close both games
and join again with the same code, and send us the logs.
Otherwise online play works as on Windows: README-VR.md, "Playing online".
Linux asks no firewall question. Joining needs nothing; if the host's
distribution runs a firewall that blocks incoming UDP, the host opens the
game's port once (UDP 47800):
  sudo ufw allow 47800/udp                  (ufw)
  sudo firewall-cmd --add-port=47800/udp    (firewalld, until the next restart;
                                             run it again with --permanent added
                                             to keep it)


VOICE CHAT AND THE MICROPHONE
-----------------------------
In VR the game uses the microphone SteamVR has for the headset (SteamVR >
Settings > Audio); on a monitor, your desktop's default input. If the wrong
one is used, make the headset (or your microphone) the default input in your
desktop's sound settings and check that it isn't muted. The game's sound and
your friend's voice play on the default output. Nothing is ever recorded.


IF SOMETHING GOES WRONG
-----------------------
- "libGL.so.1: cannot open shared object file": no OpenGL driver is
  installed. Debian/Ubuntu: sudo apt install libgl1; Fedora: sudo dnf install
  mesa-libGL; Arch: sudo pacman -S libglvnd.
- "GLIBC_2.31 not found" (or similar): the system is older than Ubuntu 20.04
  or Debian 11.
- Browse does nothing: neither zenity nor kdialog is installed (Debian/Ubuntu:
  sudo apt install zenity; Fedora: sudo dnf install zenity; Arch: sudo pacman
  -S zenity), or install from a terminal (see INSTALLING).
- The game starts on the monitor only: start SteamVR first, and check that
  VR is On in F1 > VR. game-log.txt says why VR didn't start (lines starting
  with [VR]).
- The world looks flat in the headset (no depth): the graphics driver lacks
  GL_OVR_multiview2, so both eyes get the same picture of the world. Please
  report it, with game-log.txt (it then says "mono world").
- Your captain is stuck, or fell through the world: pause and choose Back to
  the Ship (online too: the session goes on).
- The game crashed: it wrote crash-report.txt beside nectar (or, if it
  can't write there, in ~/.local/state/pikmin-native) and says so at the next
  start. Send that file and game-log-previous.txt to whoever helps you. Never
  send a core dump: it is big and can hold private data.
- The game misbehaved, froze, or the PC crashed: send game-log.txt (this
  run) and game-log-previous.txt (the run before) from the game's folder,
  and after online play online-log.txt and online-log-previous.txt.
  They hold everything the game printed, with times, and survive a crash.
  They can contain file paths with your user name and, after online play,
  IP addresses and join codes: look them over before posting them publicly.
  Nothing is ever uploaded.
More in README-VR.md, "Linux" and "Troubleshooting".


LEGAL
-----
LEGAL.md and the LICENSES folder. Pikmin and Nintendo are trademarks of
Nintendo; this project is not affiliated with Nintendo.
