# Version 2.2.2

- Match an exotic edge case in ARM emulation to an actual PXA, courtesy to
  Palmsnipe.

# Version 2.2.1

- Minor documentation update.

# Version 2.2.0

- Stub bluetooth controller on E2 sufficiently to keep the device from locking
  up if it is enabled.

# Version 2.1.9

- Fix saving failes in shim app.

# Version 2.1.8

- Fix shim app failing to load without network on MacOS.

# Version 2.1.7

- Various shim app fixes.

# Version 2.1.6

- Various shim app fixes.
- Work around a WebKit bug that randomly causes persistent large audio delays
  when tabs are switched or settings changed.

# Version 2.1.5

- Support for native shim apps on Android, Windows, MacOS and Linux
- Work around a Safari rendering issue that could display content over the tab
  bar.
- Fix an issue that delayed application of changes to the network redirection
  setting.
- Consistently expose "Run hidden" on all platforms other than mobile.

# Version 2.1.4

- Work around bogus update notifications on iOS.

# Version 2.1.3

- Fix dpad key bindings in CPE embedded.

# Version 2.1.2

- Fix loading sessions with NAND in CPE embedded.

# Version 2.1.1

- Minor release pipeline fix.

# Version 2.1.0

- Update cloudpilotemu-embedded with uARM support.

# Version 2.0.6

- Fix encoding of non-ASCII characters in hotsync name.

# Version 2.0.5

- Fix a rare crash when switching sessions.

# Version 2.0.4

- Fix session save if the app was opened in another tab.

# Version 2.0.3

- Fix PalmFiction and similar programs on E2 ROMs without NVFS.
- Document Bluetooth locking up on OS5 and recovery procedure.

# Version 2.0.2

- Warn about potential PalmOS bugs when creating a session from an original E2
  ROM without an accompanying NAND image.

# Version 2.0.1

- Document missing support for changing the hotsync name on OS5 and recommend
  MultiUserHack instead.

# Version 2.0.0

This release celebrates five years of CloudpilotEmu by adding support for
emulating the Tungsten E2 (PalmOS 5!) through a fork of
[uARM](https://github.com/uARM-Palm/uARM), including full audio support. That's
right, you can now play back video and mp3 and play Bike or Die 2, and all that
in a virtual Pilot in your browser!

Please note that, unlike previous devices, OS5 devices were based on ARM
processors, and emulating them requires serious CPU horsepower. Your mileage
with older host devices may vary ;)

- Support for Tungsten E2 / OS5.
- Support for Dmitry Grinberg hacked "Tungsten E3" widescreen E2 ROM.
- Support full D-Pad on OS5 hardware (no support for Tungsten W as the
  silkscreen version does not support a D-Pad).
- Option to disable full D-Pad ("clumsy finger mode").
- PCM audio on Tungsten E2.
- Add "Save screenshot" option to emulation menu to capture the current screen
  as PNG.
- Greatly improved stability of the audio driver --- audio should reliably
  resume after the app is suspended or backgrounded.
- Improved loading spinner consistency. Spinners are now always shown if file
  loads are slow (e.g. when opening from iCloud).
- Various bug fixes.
- Add a "Don't restrict file picker" option to work around non-selectable files
  on old versions of iOS.
- No release of CloudpilotEmu embedded for this version.

# Version 1.10.16

- Minor styling fixes.

# Version 1.10.15

- Minor styling fixes.

# Version 1.10.14

- Sometimes, the workaround introduced in 1.10.11 for load errors in the native
  app caused by an iOS bug did not work correctly and required a manual service
  worker reset. Fixed.

# Version 1.10.13

- Fix a regression that would cause the choice in some dialogs to be ignored.

# Version 1.10.12

- Update all JavaScript dependencies. Please open an
  [issue on Github](https://github.com/cloudpilot-emu/cloudpilot-emu/issues) if
  you encounter any regressions.
- The app now supports dynamic font scaling on iOS. This can be deactivated in
  the settings (which will revert the app to the old, fixed font size).
- The "Reduce animations" setting as been removed. Please open an
  [issue on Github](https://github.com/cloudpilot-emu/cloudpilot-emu/issues) if
  you find you still need it.
- Minor bugfixes and styling changes.

# Version 1.10.11

- Minor styling improvements.
- Add a note on a rare touch issue caused by a browser bug on iOS (does not
  affect the native app).
- Automatically detect and offer a workaround for an iOS bug that may stop the
  native app from working without an internet connection (starting with native
  app version 1.4)

# Version 1.10.10

- Timeouts during snapshot are not fatal.
- Adapt snapshot timeout for slow browsers.

# Version 1.10.9

- Fix a bug in snapshot timeouts.

# Version 1.10.8

- Work around various PalmOS bugs in database import and export.

  Prior to this version, databases imported and exported with PalmOS 3.x may
  contain defects due to PalmOS bugs. In most cases these defects are harmless,
  but if you rely on database backups for important data you may want to save
  new backups to make sure your data is backed up faithfully.

# Version 1.10.7

- Work around occasional IndexedDB error when returning the app from background.
- Improved clipboard integration on iOS app, available with app version 1.2 .

# Version 1.10.6

- Support native network access without proxy in iOS app (available once version
  1.2 of the native app is released).
- Networking bugfixes.

# Version 1.10.5

- Document potential issues starting the iOS app without internet connectivity.
- Networking bugfixes.

# Version 1.10.4

- Minor documentation changes.
- CloudpilotEmu is now available on the iOS
  [App Store](https://apps.apple.com/us/app/cloudpilotemu/id6478502699)

# Version 1.10.3

- Minor documentation changes.

# Version 1.10.2

- Add a link that resets the service worker to the "About" tab in order to allow
  working around rare browser bugs.

# Version 1.10.1

- Apple backpedaled on disabling homescreen apps in the European Union.
- Minor fixes.

# Version 1.9.12

- Minor content adjustments.

# Version 1.9.11

- Show iOS 17.4 warning yet another time.
- Bug fixes.

# Version 1.9.10

- Fix compatibility with iOS 15.7.

# Version 1.9.9

- Remove help and about items that do not apply to the platform.
- "Run in background" does not work on PWAs, so remove it.
- Disable media picker when opening files on iOS.
- Adjust UI for native app.
- Add a setting to work around the home indicator overlapping the UI on Safari /
  iOS.
- Styling improvements.
- Minor bug fixes.

# Version 1.9.8

- Update warning and documentation on the update to iOS 17.4 and redisplay it.
- Serial and IrDA (beaming) support in CloudpilotEmu embedded (not yet for the
  app).

# Version 1.9.7

- Adjustments to warn about issues with the forthcoming update to iOS 17.4.

# Version 1.9.6

- Fix a rare crash on reset.
- Minor optimizations.

# Version 1.9.5

- Mass export multiple sessions or cards as a zip archive.
- Mass import multiple sessions or cards from a zip archive.
- Emulation menu can now be accessed by right clicking.
- Quick switch between session on the emulation tab.
- Fix a few instances of dialogs being hidden by a loader.
- Other UI fixes performance and optimizations

# Version 1.9.4

- Fix free space not being updated in card browser.
- Fix deleted files being displayed after recreating a deleted directory.
- Reduce size of embedded build.
- Animations are not reduced on MacOS Safari anymore per default.
- Happy holidays!

# Version 1.9.3

- Fix spurious failure to open files on Safari and iOS Safari.

# Version 1.9.2

- Minor improvements to snapshot reliability.
- Extend browser support in build (although there is no guarantee that old
  browsers will fully work).
- Fix a rare issue that could cause corruption of device memory on load.

# Version 1.9.1

- Add a few icons that were missing in offline mode.
- Fix a few typos.

# Version 1.9.0

- Another small workaround for service worker issues. This should stabilize
  offline mode and updates again for good.

# Version 1.8.17

- Fix app locking up when an update is available.
- Fix "update available" notfications.
- Better detection of installation status on "About" page.
- The instructions for building the app have changed. If you are building and
  hosting CloudpilotEmu yurself, be sure to check the readme for updated
  instructions.

# Version 1.8.16

- Session settings: show clock while dragging the slider.
- Improved asset handling during updates.
- Fix bogus info message on startup.

# Version 1.8.15

- Switch to a new service worker implementation that does not trigger the iOS 17
  bug.

# Version 1.8.14

- Don't display loader over info message on startup.

# Version 1.8.13

- CloudpilotEmu now includes a workaround for the browser bug that prevents
  reliable startup. However, running without an internet conection is still
  broken and can only be fixed if Apple resolves the underlying bug.

# Version 1.8.12

- Fix a UI race condition between dialogs.

# Version 1.8.11

- Display a warning and workaround for a browser bug on iOS 17 that may prevent
  CloudpilotEmu from loading.

# Version 1.8.10

- Fix links not opening on click.

# Version 1.8.9

- Fix a bug that could produce corrupt databases in DB backups on PalmOS < 3. If
  you encounter bad databases exported by CloudpilotEmu < 1.8.9 you can fix them
  with
  [this script](https://github.com/cloudpilot-emu/cloudpilot-emu/blob/master/tools/prctool.py).

# Version 1.8.8

- Fix out-of-memory during DB install being flagged as "unknown error" in
  frontend.

# Version 1.8.7

- Fix file open dialog not displaying in Chrome for Windows and Android.

# Version 1.8.6

- Fix Safari / iOS zooming when tapping "rotate" multiple times. This did not
  affect CloudpilotEmu installed to the homescreen.
- Disable translucency effects to fix occasional unreadable page and dialog
  headers on iOS.
- Minor visual fixes to the memory card browser.

# Version 1.8.5

- Properly disable debug options in stable build.

# Version 1.8.4

- Fix minor UI regressions.
- Add an option for reduced animations in order to work around UI lag in Safari
  (enabled by default on Safari / MacOS).

# Version 1.8.3

- Card browser: disable context menu during file selection.

# Version 1.8.2

- Preliminary support for Legend P168 (no SD card support yet).
- Better assignment of file endings (.prc and .pdb) to databases in backups.
- GDB stub for debugging PalmOS and apps (native version only).

# Version 1.8.1

- Support memory cards in CP embedded.
- Better 4bit to 8bit color space transform for SED1375 based devices (brighter
  colors for Palm IIIc and Clié PEG-S500C).
- Support gzip compression for importing and exporting memory cards.

# Version 1.8.0

This is a major update that adds support for SD card and memory sticks. Existing
devices with a memory stick slot may require a reboot to start using the
emulated memory stick hardware.

- Support for SD cards and memory sticks on all devices that were produced with
  the corresponding slots.
- File manager for memory cards.
- Support dropping files for importing sessions, installing files, and managing
  memory cards.
- Support for HandEra 330c (sic!).
- Support for Palm m520 prototype.
- Support for Acer S11.
- Bug fixes and UI rework.

# Version 1.7.13

This release changes the way `cloudpilot-server` generates its certificates. The
new setup generates both a root and a leaf certificate and has much better
compatibility with various browser / OS combinations. In particular, Firefox and
recent versions of Chrome reject the self-signed certificate that was previously
generated, but work fine with the new setup. You can continue to use your
current certificates as long as they work, but check out the online
[networking documentation](https://github.com/cloudpilot-emu/cloudpilot-emu/blob/master/doc/networking.md)
in order to generate new certificates.

- Change proxy server to generate a full certificate chain with a root and a
  leaf certificate.
- Add a proper index page to the proxy server.
- Configurable certificate lifetime.

# Version 1.7.12

- Add documentation to server and network docs to address recent issues with
  Chrome.

# Version 1.7.11

- Fix display issues in some skins in Safari and on iOS.

# Version 1.7.10

- Fix a heap overflow.

# Version 1.7.9

- Fix status bar color in light mode on iOS.
- Happy 2023.

# Version 1.7.8

- Minor wording fixes.

# Version 1.7.7

- Fix a bug that might have caused data corruption if a second instance of CP is
  opened in another window.

# Version 1.7.6

- Fix a heap overflow.
- Minor UI tuning.

# Version 1.7.5

- Fix a UI regression.

# Version 1.7.4

- More safe area workarounds for iPhone X and later.

# Version 1.7.3

- UI fixes for iPhones with rounded corners.

# Version 1.7.2

- Support database backups on PalmOS 1 and 2.
- Spelling fixes.
- CP embedded: add a note on styling to the documentation.

# Version 1.7.1

- Swiping left and right of the emulated device on iOS does not "drag" the
  screen anymore
- CP embedded: only cancel touch interactions that are actually handled by
  CloudpilotEmu. This enables scrolling by swiping over empty parts of the
  canvas on touch devices

# Version 1.7.0

- Introduce CloudpilotEmu embedded. You can now embed cloudpilot-emu into your
  own web pages. Check out the
  [online documentation](https://cloudpilot-emu.github.io/embedded/) for more
  details.
- Minor bug fixes

# Version 1.6.11

- Use storage manager API to request persistent storage on browsers that support
  it. This keeps browsers from deleting session data under certain conditions.

# Version 1.6.10

- Support pressing multiple buttons with one finger on touch devices by touching
  the first button and then moving over the other button.
- Fix RTC interrupts on SZ devices (PEG-T675C and PEG-NR70).

# Version 1.6.9

- Add "Enable audio on start" option.
- Save and restore speed and orientation with session images.
- Compress session images.

# Version 1.6.8

- Allow to change device orientation (portrait, landscape 90°/270°, upside
  down).
- Fix speed change being ignored on import.

# Version 1.6.7

- Minor fixes + performance improvements.

# Version 1.6.6

- Fix an ocassional crash on boot introduced in 1.6.5

# Version 1.6.5

- Support for PEG-NR70 and PEG-T650C series devices.
- Support statistics display on soft silkscreen devices.
- Support for PEG-S500C series devices.
- Improved performance of framebuffer copies.
- Add session settings to emulation menu.
- Add a speed slider to session settings.

# Version 1.6.4

- More wording.

# Version 1.6.3

- A few more wording changes.

# Version 1.6.2

- Rename to CloudpilotEmu.

# Version 1.6.1

- Fix PEG-T4xx skin.

# Version 1.6.0

- Emulate date rollover interrupts. This means that the virtual Pilot will now
  schedule caledar alarms correctly. Virtual devices may hang for a few seconds
  on the first launch after this update while PalmOS processes all the alarms
  that it missed.
- Optimizations that give 10% -- 30% performance improvement
- Support for serveral Clié devices:
  - Sony PEG-S300, PEG-S320
  - Sony PEG-T400 series
  - Sony PEG-N600C series
  - Sony PEG-T600C series
  - Sony PEG-N700C series

# Version 1.5.8

- Link API for importing ROMs or sessions and installing databases via
  hyperlinks. Check the
  [online documentation](https://github.com/cloudpilot-emu/cloudpilot-emu/blob/master/doc/linking.md)
  for more details
- UI dependecy updates

# Version 1.5.7

- Catch a rare iOS bug that causes the database to ocassionally come up empty on
  launch.
- Installation of databases from zip archives.
- Show reason for failed installations.
- Improve snapshot performance on Chrome.
- Fix basic auth handling in poxy to conform with standard. This version of
  CloudpilotEmu requires an updated version of the proxy if basic auth is used
  to secure the connection.

# Version 1.5.6

- Support Handera 330.
- Improve snapshot performance for devices with framebuffer (color devices).
  Session images saved with this and later versions of Cloupilot cannot be
  loaded on older versions.
- Allow backups that include the databases in the device ROM.
- Reboot device if PalmOS crashes with an invalid stack pointer (instead of
  dying with an assertion or freezing like a real device).

# Version 1.5.5

- Finalize networking support. This release requires an updated proxy server.

# Version 1.5.4

- Fix a regression that prevented the overwriting existing RAM DBs during PRC
  installation.
- Support additional network APIs (NetlibSendPB, NetlibReceivePB).
- Minor UI fixes.

# Version 1.5.3

- Fix an emulator crash on the execution of invalid code.

# Version 1.5.2

- Proxy Server: fix nonblocking sockets. This avoids spurious error messages
  during hotsync and potential networking issues.

# Version 1.5.1

- Improve dark mode on non-iOS.
- Limit width of session list.

# Version 1.5.0

- Work around worker update idosyncrasies on iOS.
- Networking support via websocket proxy. Check the
  [online documentation](https://github.com/cloudpilot-emu/cloudpilot-emu/blob/master/doc/networking.md)
  for more details.
- Improve memory safety of the emulation core.
- Add an option to keep CloudpilotEmu running when the tab is hidden.
- Add "Hotsync" to emulation menu.
- Route `DbgMessage` calls to console.
- Set `cldp` feature on boot.
- Allow to choose boot mode after a forceful reset.
- Move audio toggle to the emulation menu
- Add "Lock UI" for hiding the navigation bar while the Pilot is running.

# Version 1.4.6

- Fix installation of DBs that shadow a ROM DB.

# Version 1.4.5

- Fix a very rare crash on session restore.

# Version 1.4.4

- Minor bug fixes.

# Version 1.4.3

- Work around an IndexedDB bug on iOS 14.6 that causes spurious hangs if
  CloudpilotEmu is started from the homescreen. The workaround may delay startup
  by a second or so if the bug is triggered, but at least CloudpilotEmu starts
  reliably again.

# Version 1.4.2

- Fix skin for VII EZ / VIIx

# Version 1.4.1

- Support for i705, VIIx and VII EZ

# Version 1.4.0

- Imitate greenish LCD screen for grayscale devices
- Support for PalmPilot, Palm III, Palm IIIx, Palm IIIxe, Palm IIie, Palm Vx,
  Palm m500, Palm m505, Palm m100, Palm m105, Palm m125
- Minor UI improvements
- Minor improvements to timer emulation
- Improved event injection

# Version 1.3.1

- Fix separator height at 160x160

# Version 1.3.0

- Handle pqa files in installation and backup.
- Palm m130 support.
- Workaround for dying service worker on Safari desktop.
- Support for Tungsten W.
- Clipboard integration on browsers that support it.

# Version 1.2.1

- Fix alignment error when restoring images with odd size.

# Version 1.2.0

- Backup: export all applications and DBs on a device as .prc and .pdb files in
  a zip archive.
- Rework file installation, notify if an installed database demands for a reset.

# Version 1.1.2

- Fix a potential lockup condition in touch handling.

# Version 1.1.1

- Add a note on handling fatal errors to the "About" tab.

# Version 1.1.0

- Add statistics display.
- Palm IIIc support.
- Improved event injection -> no more timing glitches when injecting touch
  events on PalmOS 3.x

# Version 1.0.2

- Increase IndexedDB timeout in order to avoid IDB timeouts when setting up a
  new ROM on slow devices.

# Version 1.0.1

- Support controlling hardware buttons with an attached keyboard, game mode.
  Consult the emulation help page for details.
- Fix potential issues when installing many files at once on slow host devices.
- Documentation fixes.

# Version 1.0.0

Initial release.
