From 15a8a67a6536605215df983b009346ab36a71b77 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Wed, 16 Feb 2022 13:18:16 -0300 Subject: [PATCH] Release v3.2 --- _posts/2021-12-23-86box-v3-1.md | 2 +- _posts/2022-02-16-86box-v3-2.md | 96 ++++++++++++++++++++++++++++++++ assets/images/v3.2/hero.png | Bin 0 -> 19482 bytes 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 _posts/2022-02-16-86box-v3-2.md create mode 100644 assets/images/v3.2/hero.png diff --git a/_posts/2021-12-23-86box-v3-1.md b/_posts/2021-12-23-86box-v3-1.md index 2e96e9e..97d337b 100644 --- a/_posts/2021-12-23-86box-v3-1.md +++ b/_posts/2021-12-23-86box-v3-1.md @@ -47,7 +47,7 @@ Happy holidays. We hope you're enjoying the season. As a gift, we're releasing [ * Fixed a CPU reset issue * Fixed an issue with a very specific PIT counter mode * Fixed the **Celeron** being misidentified as Slot 1 by some tools - * Added **machine check** to CPUID where available + * Added **machine check** flag to CPUID where available * **Display** * Fixed missing columns on the **Compaq Portable CGA** * Fixed mapping of **EGA** I/O ports `3A0`-`3BF` diff --git a/_posts/2022-02-16-86box-v3-2.md b/_posts/2022-02-16-86box-v3-2.md new file mode 100644 index 0000000..ce75362 --- /dev/null +++ b/_posts/2022-02-16-86box-v3-2.md @@ -0,0 +1,96 @@ +--- +layout: post +title: "86Box v3.2" +description: "Release for February 2022, now with Linux support." +authors: ["richardg867"] +image: "/assets/images/v3.2/hero.png" +--- + +{% include imageheading.html url="/assets/images/v3.2/hero.png" separator=" " %} + +This is the February 2022 update to 86Box, and it's one we know many of you have been looking forward to, as it finally brings in **Linux support**, after many requests over the course of many years. + +
+ +## Now with Linux + +This Linux version was made possible by the massive work put in by contributors like [**jgilge**](https://github.com/jgilje), [**Cacodemon345**](https://github.com/Cacodemon345), [**ts-korhonen**](https://github.com/ts-korhonen) and [**dob205**](https://github.com/dob205), who developed the cross-platform Qt user interface or otherwise helped with freeing our code from the shackles of Win32. This new interface should look and feel **almost exactly** like the old Windows one. A **macOS version** is also in the works, also powered by the new interface and supporting both Intel and Apple Silicon, though it wasn't ready in time for this release. + +Linux builds are distributed as [**AppImage**](https://appimage.org) binaries for maximum compatibility. We've tested these on distributions as old as **Ubuntu 16.04** and as new as **Manjaro 21.2.2**, but if you run into issues on your specific distro, [please let us know](/#social). Binaries for **x86_64**, **ARM32** and **ARM64** architectures are available; 32-bit x86 is currently not available due to a [packaging issue](https://github.com/AppImageCrafters/AppRun/issues/37). Of course, building 86Box from source and running it with system libraries is still an option, and there's a [community-maintained Arch Linux AUR package](https://aur.archlinux.org/packages/86box-git) which does just that. + +The **Windows version** will remain on the existing Win32 user interface for now, as [**jriwanek**](https://github.com/jriwanek) has stepped up to maintain it, at least while we work on some Windows-specific odds and ends of the Qt interface. All UI points in the changelog below apply to both interfaces. + +
+ +## Changelog + +### Emulator + +* Improved performance when using **video filters** +* Fixed mouse lag and multi-monitor cursor behavior on the OpenGL 3.0 renderer in full screen mode + +### User interface + +* Added a **toolbar** with quick commands as well as emulation status +* Added translations: 🇵🇱 **Polish** by [Fanta-Shokata](https://github.com/Fanta-Shokata), 🇺🇦 **Ukrainian** by **Олександр#9368** and [Danik2343](https://github.com/Danik2343) +* Added **API** for graceful shutdown without confirmation (WM_SHUTDOWN/0x8893 with WPARAM=1) +* Changed **file selection windows** to pause emulation while they're open +* Changed **title bar** to only contain the emulated machine name and 86Box version (emulation speed and mouse status are now on the toolbar) +* Changed size of the **Settings window** to accomodate translations +* Changed **full screen mode** to exit when switching windows +* Fixed **settings-only** (-S) mode always starting in English instead of the selected language +* Fixed **status bar** disappearing when exiting full screen mode +* Fixed text cut-off on some **device-specific settings windows** +* Fixed incorrect amount of sectors per cluster on new 160K and 180K floppy images created through the **New Image** window +* Updated translations: **Chinese (Simplified)**, **Croatian**, **French**, **German**, **Hungarian**, **Japanese**, **Portuguese (Brazil)**, **Russian** + +### Machines + +* Fixed secondary IDE channel not working properly on the **ASUS P/I-P65UP5** +* Fixed hard disk boot with multiple disks on the **Commodore SL386SX-25** +* Changed **IBM PC (1982)** minimum RAM amount from 256 KB to 64 KB, allowing you to experience the [RAM counting bugs](http://minuszerodegrees.net/5150/misc/5150_27OCT82_less_than_4_ram_banks.htm) in that specific BIOS revision +* Fixed missing BIOS logo on the **Packard Bell PB520R** +* Fixed interrupt controller power-on state on the **Xi8088** + +### Hardware + +* **Core** + * Added expanded memory emulation to the **VLSI SCAMP** chipset + * Fixed buffer overflow on the **OPTi 495** chipset + * Fixed oversight on **Intel Flash** data loading and saving +* **Display** + * Added **SPEA Mercury Lite** (86C928 PCI) and **STB Velocity 3D** (ViRGE/VX) S3 video cards + * Fixed bugs with specific **ATI Mach64**, **S3 Vision**, **Trio64V+**, **Trio64V2** and **ViRGE** drivers + * Fixed issues with specific resolutions on some **S3 Vision968** cards + * Fixed graphical glitches with a specific **Trident TGUI 9660XGi**/**9680XGi** driver + * Fixed migration of the old **S3 ViRGE/DX (VBE 2.0)** (now **ViRGE/GX (385)**) from v3.0 pre-release and older configurations + * Fixed hard reset crash on the **Image Manager 1024** + * Fixed ISA **ATI Mach64GX** incorrectly identifying to software as VLB + * Fixed **Image Manager 1024** incorrectly flagged as 8-bit ISA +* **Input** + * Fixed migration of joysticks from v3.0 and older configurations +* **Sound** + * Added **Sound Blaster AWE64** (OEM) and **AWE64 Value** variants + * Added MIDI input support to the **AdLib Gold** and **Ensoniq AudioPCI** + * Added more I/O port options to the **Sound Blaster 1.0** and **1.5** + * Added IRQ 2 option to the **Sound Blaster MCV** + * Added DMA 0 option to the **Sound Blaster Pro** + * Added more memory size options to the **Sound Blaster 32 PnP** and **AWE64 Gold** + * Fixed saving of the **System MIDI** input device name + * Fixed loss of **SysEx messages** and buffer overflow on MIDI input + * Fixed CD audio volume control on the **AdLib Gold** + * Fixed control chip identification on the **AdLib Gold** + * Fixed default EEPROM data on the **AdLib Gold** + * Attempted fix for the loud noise on machine startup or hard reset +* **Ports** + * Added 4th parallel port (not widely supported) +* **Storage** + * Added **BusLogic BT-545C** (ISA) and **BT-445C** (VLB) SCSI cards + * Added more BIOS address options to the **Adaptec AHA-154x** SCSI cards + * Fixed hard disk detection on **Windows CE** + * Fixed **OAKCDROM.SYS** driver hanging on ATAPI CD-ROM drives + * Fixed identification of the **MATSHITA** MO drive +* **Other** + * Added **AST SixPakPlus** ISA memory expansion and RTC card (currently as separate devices in their respective categories) + * Fixed **ISA memory expansion** detection on the IBM PC, XT and clones + * Fixed **ISA RTC cards** crashing on machines with integrated RTC diff --git a/assets/images/v3.2/hero.png b/assets/images/v3.2/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..c564db472ebc4fa2629f8061e7eb9734a5de743d GIT binary patch literal 19482 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»LhT8ULX;< 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 G5B~$j0hWpY literal 0 HcmV?d00001