## RaSCSI Capabilities
* Add Daynaport SCSI/Link Ethernet adapter functionality
* WLAN support for the Daynaport network adapter
* Removable media drive support
* Support for DVD images
* Support for CD-ROM drives with 512 bytes per sector
* Support for generic MO drives (not just the Sharp X68000 standard configurations)
* Support for up to 32 SCSI LUNs (Logical Units)
* Built-in creating, renaming and copying of image files
* Configurable device identifier (vendor, product, revision)
* Configurable sector sizes, depending on the device (256, 512, 1024, 2048, 4096 bytes)
* Configurable default folder for image files
* Dynamically configurable reserved device IDs, typically used for the SCSI initiator ID
* More flexible handling of device capacities
* Made RaSCSI more tolerant of odd image file sizes, ignoring trailing bytes
* Device files (/dev/*) can be used as image files
* Secure shutdown of RaSCSI by detaching all devices before terminating
## rasctl Capabilities
* Several new options added
* -C FILENAME:FILESIZE Create an image file in the default image folder
* -D Detach all devices.
* -E FILENAME Display information on an image file.
* -F IMAGE_FOLDER Set the default image folder.
* -I Gets the list of reserved device IDs.
* -L LOG_LEVEL Set the rascsi log level
* -h HOST The rascsi host to connect to, default is 'localhost'.
* -e List all images files in the default image folder.
* -N Lists all available network interfaces provided that they are up.
* -O Display the available rascsi server log levels and the current log level.
* -m List all file extensions recognized by RaSCSI and the device types they map to.
* -R CURRENT_NAME:NEW_NAME Rename an image file in the default image folder.
* -p PORT The rascsi port to connect to, default is 6868.
* -r RESERVED_IDS Comma-separated list of IDs to reserve.
* -s Display server-side settings like available images or supported device types.
* -T Display all device types and their properties.
* -v Display the rascsi server version.
* -V Display the rasctl version.
* -X Shut down the rascsi process.
* -d FILENAME Delete an image file in the default image folder.
* -x CURRENT_NAME:NEW_NAME Copy an image file in the default image folder.
* -b BLOCK_SIZE Specify a custom block size for the drive to attach.
* -n VENDOR:PRODUCT:REVISION The INQUIRY data for the device that is presented to the bus.
* Options with new functionality
* -f Now takes parameters for certain device types, f.e. the Daynaport adapter
* -t Now takes 'rm' for Removable devices, and 'daynaport' for the Ethernet adapter
* -c Now takes two new commands: u(nprotect) and s(how)
* -u Now takes unit number up to 31 (previously 0-1)
* rasctl also runs on an x86 Linux and can connect to the RaSCSI server on the Raspberry Pi
* Added code for a RASCTL.X native app for the Sharp X68000 (from RaSCSI 1.52 by GIMONS)
## RaSCSI Web UI
* Automatic loading of a **default** configuration upon startup, eliminating the need to hack rascsi.service for default configurations
* Flexible Daynaport network adapter configuration
* Real-time file uploading using the Dropzone library
* Bumped max size of uploaded files to 4GB from 2GB
* Validation of file to upload **before** transferring
* Drive properties files that store vendor/product and block size information for easy management of bespoke drives
* A wizard for creating named drive images and properties files, with profiles for UNIX workstations and Macs
* The ability to select a device type when attaching images that RaSCSI failed to autodetect the type for
* Support for attaching up to 32 LUNs per SCSI ID
* Allow non-standard image sizes to be attached, but warn about the file size discrepancy
* A more informative table of attached devices
* The ability to display detailed information about attached devices
* The ability to unzip individual files within a zip archive
* AppleShare integration for easy downloading of files into a shared directory
* Made logging level configurable through the Web UI
* More flexible log viewer in the Web UI
* Display current RaSCSI version in footer
* Broadly improved help text, hidden under expandable blocks to reduce clutter
* Thorough form input validation
* Preventing destructive actions, such as deleting or overwriting images in use
* Significantly improved error handling and verbosity of action response messages
* IPv6 support
* Mobile style sheet
* Computer and smartphone favicons
* Sundry fixes that caused the nginx web server to fail to start in certain environments
* Bumped several Python library versions
## OLED Screen
* Virtualized Python runtime environment with venv
* Start script and systemd service configuration
* Support for displaying more than 4 lines of information, through a scrolling routine
* Optimized the information shown on screen for better usability
* Show RaSCSI version instead of system time
* Support for configurable screen orientation (0 or 180 degrees)
* Introduced the *Type Writer* font by Mandy Smith for improved legibility
* Startup and shutdown splash screens
* Graceful shutdown and signal handling
* Bumped several Python library versions
## Easyinstall
* Merged and streamlined install/update scripts for RaSCSI and the Web UI
* Better error handling and flexibility running the script in different environment and on local git branches
* Added install script for the OLED Screen software
* Added wired and wireless network configuration scripts for the Daynaport network adapter
* Added a Netatalk installation script for running an AppleShare server in parallel with RaSCSI
* Command line option '-c' to install STANDARD or FULLSPEC versions
* Command line option '-r' to pick the run choice number from the menu non-interactively
## Technical Improvements
* Functionality and stability improvements for Atari ST, UNIX workstations, Apple IIGS, etc.
* Implementation of numerous additional SCSI commands
* Improved compatibility with the current SCSI standard
* Client/Server interface based on Google Protocol Buffers, allowing clients to send commands and receive messages from the RaSCSI backend
* All clients (rasctl, RaSCSI Web UI, OLED monitor) are using the new architecture for greatly expanded functionality and reliability
* Detailed information on RaSCSI server properties
* Configurable RaSCSI server port
* More concise error messages
* Improved logging and configurable log level
* Improved command validation and error analysis
* Fixed issues with Linux-68k
* Support for 64 bit Raspberry Pi OS and Ubuntu
* Extensive code cleanup, improved object-oriented approaches
* 100% translated source code strings and comments
* Outdated documentation has been updated and moved to wiki (and removed from the repo)
* Restored the rasdump and sasidump tools for dumping physical SCSI/SASI disk images
* Deprecated baremetal support
## Special thanks
Thank you to all the members of the RaSCSI community. A special thanks to:
* @erichelgeson - Thank you for reviewing pull requests, creating the initial sd-card configuration and being a general awesome guy
* @uweseimet - Your updates to the RaSCSI code have made it much more maintainable and understandable
* @rdmark - The web interface has made tremendous improvements since the last release
## New Contributors
* @quentinmit made their first contribution in https://github.com/akuker/RASCSI/pull/88
* @phrax0 made their first contribution in https://github.com/akuker/RASCSI/pull/86
* @uweseimet made their first contribution in https://github.com/akuker/RASCSI/pull/110
* @rdmark made their first contribution in https://github.com/akuker/RASCSI/pull/205
* @dburr made their first contribution in https://github.com/akuker/RASCSI/pull/230
* @No0ne made their first contribution in https://github.com/akuker/RASCSI/pull/241
* @nsafran1217 made their first contribution in https://github.com/akuker/RASCSI/pull/280
* @karrots made their first contribution in https://github.com/akuker/RASCSI/pull/297
* @mynameistroy made their first contribution in https://github.com/akuker/RASCSI/pull/367
* @Pacjunk made their first contribution in https://github.com/akuker/RASCSI/pull/372
* @hsiboy made their first contribution in https://github.com/akuker/RASCSI/pull/394
**Full Changelog**: https://github.com/akuker/RASCSI/compare/v20.12.0...v21.10.01