Below you will find an extensive list of the work that went into MorphOS 3.16.
Please note that this is just an overview and does not mention or explain every new feature.
 
MorphOS 3.16 boot.img Changes

The following is a (probably incomplete) list of changes made between the 3.15 and 3.16 release of MorphOS to the ROM (boot.img) based components.

Quark

  • Implemented PermMemTrack memory tracking which may be enabled with MemTrack=PermMemTrack/S boot argument. This triggers crashes in many buggy applications and should only be used for development and testing
  • dprintf() logs are now time stamped

Dos

  • ReadArgs: Fixed a buffer overflow
  • Fixed several bugs in softlink handling
  • RemDosEntry: Fixed an illegal memory read
  • ErrorReport: Fixed a race condition

Emulation

  • Improved FPU emulation compatibility

Exec

  • Implemented permanent memory tracking for debugging
  • Fixed RawDoFmt and NewRawDoFmt to prefix %p with 0x
  • TLSFree: Fixed to zero the index values for all tasks
  • Tasks now have 3 more signals available

FatFS

  • Fixed a use-after-free bug

Intuition

  • Reimplemented handling of monitors with multiple outputs, enabling mouse movement between displays
  • Implemented window close/open/activation fade in/out effects
  • Improved screen switching code to avoid unnecessary flicker
  • Extended Monitor APIs
  • Added New Shell menu entry to the screen depth bar, appears with control pressed and opens the legacy SYSCON: window
  • Fixed a crash when closing the last screen on a monitor
  • Fixed string gadget rendering

Keylargo

  • Fixed an initialization-time race condition that would in some cases cause the laptop lid sensor handler to fail

Layers3d

  • Added opacity transitions to support intuition's fade effects
  • Handle LAYERS_NOBACKFILL in legacy/off-screen clipping mode
  • Fixed not to try to blend alpha bitmaps onto CLUT screens
  • Fixed a potential race condition when closing a screen
  • Improved performance when closing screens

Mount

  • Fixed a race condition in library subprocess initialization

Objdata

  • Fixed access to uninitialized memory if ELF loading fails for example due to a truncated file
  • Added validation for the symbol and reloc target section numbers
  • Files with out of bound target section numbers will fail to load now instead of crashing
  • Ensure that string tables are always '\0' terminated (invalid file might lack the '\0' termination)
  • Added safe lookup functions for section and symbol names that check for valid section/symbol index and range in the string buffers
  • Corrected wrong size of the .sdata section in the legacy seglist

PFS3

  • Fixed an illegal memory read in notification handling
  • Improved permission handling

RamFS

  • Fixes the long standing random bug of "duplicate entries in Ram Disk"
  • Avoid using reserved SeqNum values for objects
  • Improved permission handling

SFS

  • Improved permission handling

Shell

  • Shell now passes the last command return code as the shell return value. This makes it possible to use NP_ExitCode to get the return value of the command executed in dos/SystemTags() when SYS_Asynch is TRUE

ShellCmd

  • Resident: Fixed the return code when aborted with a CTRL-C

USB HUB

  • Fixed the transfer length to update the port change status
MorphOS 3.16 Disk Changes

Following is a (probably incomplete) list of changes made to the disk based components of MorphOS.

Ambient

  • Added missing total system memory to system details tab.
  • Re-enabled saving panels from prefs
  • Fixed use-after-free bugs in icon handling code
  • Fixed resource leaks in error code paths
  • Fixed a resource leak with SVG icon resize
  • Fixed rendering issues related to deficons zooming
  • Fixed duplicate entries appearing to My MorphOS view on volume removal or unmount
  • Fixed multiple unterminated taglists
  • Fixed use-after-free bug in IconInfo ARexx command
  • Fixed several potential buffer overlow issues as different places.

Applications/Apdf

  • Fixed a memory corruption issue

Applications/Flacapella

  • Fixed memory leaks
  • Fixed potential crash on exit
  • Fixed SCSI command timeout
  • Fixed sub-command piping

Applications/FlowStudio

  • Fixed busylooping when opening a file into a new tab while automatic spellchecking is enabled
  • Fixed several buffer overflows and memory leaks
  • Default scintilla keyboard shortcuts updated to work with all keymaps
  • Fixed not to switch to UTF-8 encoding when enabling TTEngine fonts
  • Fixed an illegal memory read

Applications/Iris New

Iris is a modern IMAP based email client for MorphOS. While it is now included with the OS, it will follow an independent release cycle. Check iris-morphos.com for updates.

Applications/Jalapeno

  • Worked around an issue with failing ISO generation when a directory named "C" was included
  • Fixed memory leaks
  • Fixed potential crash on exit
  • Fixed SCSI command timeout
  • Fixed sub-command piping

Applications/Jukebox

  • Added notification support
  • Iconify on Play settings option
  • Fixed several edge cases where memory corruption would occur
  • Improved error checking

Applications/Kryptos

  • Fixed dos.library calls with bogus arguments

Applications/RDesktop

  • Updated to version 1.9
  • Fixed a bogus FreeVec() call
  • Refactored tooltypes handling
  • Worked around an issue with broken 24-bit cursors

Applications/RegTool

  • Refuses to run under emulation to avoid confusion

Applications/RemoteShell

  • Updated to OpenSSH 8.8p1

Applications/ShowGirls

  • Updated to liblcms2 2.13

Applications/Sketch

  • Fixed a memory corruption issue
  • Fixed circle drawing

Applications/Synergy

  • Implemented Barrier server support in both client and server applications
  • Client: Additional setting to issue a left or right command key when pressed together with control
  • Client: Switched to openssl3.library

Applications/Transfer

  • Fixed a memory corruption issue
  • Improved notification support
  • Fixed an illegal memory read

Applications/VPDF

  • Updated libpoppler to 22.02.0
  • Fixed a use-after-free bug
  • Updated to liblcms2 2.13

Applications/Wayfarer New

Replaces Odyssey as the system's default web browser. Wayfarer follows an independent release cycle, check wayfarer.icu for updates.

C/Dir

  • Improved error handling
  • Fixed the return code when aborted with a CTRL-C

C/Ed

  • Fixed a buffer overflow
  • Can be used as project default tool now

C/FileWrite

  • Fixed wrong return code on success
  • Added support for writing large files

C/Fslist

  • Dumps DosType both as character string and 32-bit hex identifier

C/IPrefs

  • Layer effects settings support

C/LhA

  • Fixed a bug stripping device name from path that could lead to duplicate entries being added to archives on update command

C/List

  • Added support for listing a locked file

C/Play

  • Fixed a use-after-free bug

C/Protect

  • Improved error output

C/Quote New

Command to quote strings in various ways. Supports encoding for standard DOS commandline argument, DOS pattern matching, ARexx script string, URI components, sh shell argument, javascript string, C strings, hex and base64.

C/SendBeacon New

Tool to send notifications via shell and scripts.

C/Tasklist

  • Fixed several stack buffer overflows

C/Type

  • Fixed a buffer overflow in error code path

Classes/Frameworks/mui.framework

  • Worked around an issue with menu shortcuts caused by a switch to UTF-8
  • -(LONG)flagsOf: was always returning 0
  • Implemented drag & drop for the MUITitle class
  • Fixed a use-after-free bug

Classes/Frameworks/ob.framework

  • Don't create OBNotificationCenters for subthreads - they were never used
  • Fixed a potential double-free of OBNotificationCenter in ob_debug.framework
  • Calling OBRunLoop perform no longer blocks the caller if the callee's runloop is currently performing on its OBPerformQueue
  • OBURL is a little less strict when parsing url's query component, fixes cases where Wayfarer would be unable to display a URL address in its URL bar
  • Fixed a use-after-free bug
  • Fixed a signals issue where a broken app could free other task's signals

Classes/Frameworks/ObjFW

  • Fixed a bug in cleanup code

Classes/MUI/Aboutbox

  • Added support for SVG icons

Classes/MUI/Aboutmorphos

  • Updated various links and IRC information

Classes/MUI/Fontpanel

  • Fixed an illegal memory read

Classes/MUI/Scintilla

  • Call Release from the platform class destructor to avoid leaking resources
  • Fixed text encoding issues when rendering with ttengine.library

Classes/MUI/VirtualKeyboard

  • Added AltGR key support
  • Qualifier is now correctly handled and doesn't lock up the virtual keyboard anymore
  • Multiple capital letters may now be emitted
  • Fixed shift button logic by implementing correct left/right shift handling

Classes/Multimedia/Amossound.demuxer

  • Support rewinding with MMM_SEEK_BYTES 0.

Classes/Multimedia/Bmp.decoder

  • Bugfixes

Classes/Multimedia/Fir.filter

  • Fixed a major flaw rendering the input port unusable

Classes/Multimedia/Multimedia.class

  • Fixed a crash due to an uninitialized variable
  • Added checks for seek errors or partial code segment reads
  • Fixed incorrect pattern parsing

Classes/Multimedia/Normalize.filter

  • Bugfixes

Classes/Multimedia/Png.decoder

  • Added support for interlaced PNGs

Classes/Multimedia/Videopcm.decoder

  • Fixed CMYK conversion bugs

Classes/Screenbar/Cpumonitor

  • Added a missing task name

Classes/Screenbar/Eject

  • Fixed lockup caused by adding a ':' to a non-existing bar label string

Classes/Screenbar/Grabber

  • Added notification support
  • Added clipboard support
  • Fixed save image error path, added error notifications
  • Fixed an illegal memory read
  • Fixed a crash closing the preview window with the ESC key

Classes/Screenbar/Keyinput

  • Bugfixes

Classes/Screenbar/Volume

  • Fixed to kill the window from outside of the event handler

Classes/USB/Xbox360

  • Added several new Xbox controller product IDs

Data/Printers/Gs:

  • Bugfixes

Devs/Keymaps/

  • Fixes in Italian and Dvorak keymaps

Devs/Monitors/Radeon

  • Fixed RadeonDMA_UnmapMemory() for Evergreen and Northern Islands cards
  • Evergreen card support fixes
  • Fixed R300/R400/R500 untiling
  • Added iMac G5 17" iSight compatibility

Devs/Monitors/Rage128

  • Fixed DDC support for ADC port on Apple Rage128Pro cards

Devs/Networks/Bcm43xx_wl

  • Fixed a system lockup when rebooting the wireless chip due to TX errors

Devs/Networks/Rtl8168

  • Added additional device id 8161
    (e.g. TP-Link 3468 V4)
  • Increased auto negotiation timeout
  • Fixed link speed detection for newer Realtek 8168/8111 cards

Devs/Scanners/Fujitsu

  • Fixed uninitialized return value in connect

Devs/Scanners/Genesys

  • Fixed a possible deadlock

Libs/Camd

  • Reworked channel/event mask filtering. Realtime messages now flow correctly
  • Fixed double MidiLink detection
  • Improved internal time stamping
  • Semaphore usage fixes
  • NextMidiLink wasn't traversing list correctly from the second node

Libs/CGXVideo

  • Passes video layer attachment updates to intuition.library
  • Added VOA_ColorKeyFill tag to disable layer area colour fill with enabled colour-keying

Libs/Charsets

  • ConvertTagList: Significantly improved conversion performance from one byte MIBs

Libs/Clipboard

  • Fixes in WriteClipSound

Libs/Commodities

  • Added LockBrokerList() and UnlockBrokerList() functions

Libs/CryptoStorage

  • Improved file saving strategy, configurable with CST_CloseRollback tag
  • CryptoStorageFetch: Don't return CSS_BAD_PASSPHRASE if out of memory when decrypting

Libs/Expat

  • Updated to libexpat 2.4.6

Libs/Filesysbox

  • Fixed a bug in ChangeMode that always resulted in the change to be of CHANGE_FH type, regardless of the requested type
  • Fixed handling of the PRIORITY tooltype

Libs/Freetype

  • Updated to FreeType 2.11.1

Libs/Harfbuzz

  • Updated to harfbuzz 3.3.2

Libs/Ixemul

  • Ixemul now uses true PIDs instead of task pointers, avoiding an identity confusion that could happen when a new task appears at the same address as already terminated one
  • exec*(): Fixed a potential crash that could occur if application using exec thread-local storage somehow managed to exit in an uncontrolled way
  • _exit(): Changed to behave like exit() when called from the main application
  • atexit(): Fixed a crash if out of memory
  • Added extra call of TLS destructors right before releasing malloc memory. This fixes a potential use-after-free in some situations
  • realloc(): Fixed a double ixremove() resulting in subtle memory corruption issues and crashes
  • getrlimit(): Fixed RLIMIT_STACK
  • Improved the crt0.o to use ix_get_long(IXID_USER,0) to get user data pointer
  • wcsrtombs(): Fixed with NULL destination
  • *printf(): Added %ls and %lc support
  • wcrtomb(): Fixed return value with NULL buffer pointer
  • strftime(): Added %F, %u and %z support
  • Implemented wcsftime()
  • ioctl(): Fixed FIOCLEX and FIONCLEX
  • setjmp()/longjmp()/sigsetjmp()/siglongjmp(): Now preserve and restore AltiVec registers when available

Libs/Locale

  • FormatString(): %p includes the 0x prefix by default now, just like regular printf()
  • Updated to tzdb 2021e
  • Improved support for being called from a task

Libs/Lzma

  • Updated to liblzma 5.2.5
  • Avoid unexpected memory deallocations by always using the global memory pool
  • Fixed to handle potential allocator overflows

Libs/Magicbeacon New

Application interface library for notification support.

Libs/OpenSSL3 New

Shared OpenSSL library based on OpenSSL 3.0.1 release.

Libs/Png

  • Fixed illegal memory write on low memory situation

Libs/Random

  • Improved random seed saving

Libs/Spellchecker

  • Updated to libvoikko 4.3.1 and voikko-fi 2.5

Libs/Thumbnails

  • Updated to ffmpeg 4.4.1
  • Reduced stack memory usage
  • Fixed memory leaks

Libs/TinyGL

  • added various glBlend#?() functions
  • Fixes in GL_BGRA->GL_RGBA conversion code

Libs/TTEngine

  • Fixed rendering to WA_HasAlpha windows
  • Fixed TT_TextFit swapped width and height parameters
  • Improved performance
  • Implemented TT_Encoding_System and TT_DestAlpha

MUI

  • Fixed an issue with intuition menus text encoding
  • Added MUIA_Dtpic_FreeVert/Horiz
  • Added ARGB / Alpha support to Pendisplay, Coloradjust and Popcolor
  • Improved handling of styled fonts across MUI
  • Implemented MUIC_Popcolor, MUIA_Pendisplay_XRGB, MUIA_Coloradjust_XRGB
  • MUI_CreateCustomClass: Corrected check for instance data size overflow
  • MUIA_Unicode wasn't carried from Menustrip.mui when creating popup menu titles
  • Fixes in MUIA_Unicode support
  • Dtpic: Exposed image raw data so that one can overload MUIM_Draw
  • Ensured the object triggering a notification cannot go away while the notification is pending
  • Signals live resize mode before hiding root object
  • Spellchecking fixes in String.mui/StringU.mui classes

Prefs/Compositing

  • Added window fade effects settings

Prefs/Debug

  • Fixed indication of MemTrack debug

Prefs/Network

  • Fixed an illegal memory read

Prefs/Notifications New

New preferences panel for notifications handled by MagicBeacon.

Prefs/Preferences

  • Fixed a use-after-free crash on exit

Tools/IWizard

  • The Mac Auto-partioner will now reject drivers smaller than 2GB instead of silenting failing
  • Removed Odyssey provisions

Tools/NetStat

  • Corrected to display IP address 0.0.0.0 if the interface has no IP address
  • No longer hogs a signal while applicaiton has the library open.

Tools/WebFontInstaller New

Replaces OWB's DownloadFonts

Utilities/Commodities/Expose New

Application switcher. Press Command+Tab to switch between applications.

Utilities/Commodities/MagicBeacon New

Notification management system.

Utilities/Fileimagectrl

  • Improved input parameters handling

Utilities/Grabber

  • Added notification support

Utilities/GraphicBoards

  • Added support for drivers with multiple outputs supported

Utilities/More

  • Can be quit with CTRL-C now
  • Increased default window dimensions
  • fixed TAB handling

Utilities/Multiview

  • Fixed an illegal memory read when pasting images
  • fixed TAB handling for standard text files

Utilities/MIDI/MIDI Logger New

MIDI events inspector.