Skip to content

Emu68 1.0.4

Latest
Compare
Choose a tag to compare
@michalsc michalsc released this 20 Mar 20:54
· 2 commits to master since this release
cf4b8f9

Emu68 1.0 marks the first stable release in the 1.0 series. Starting with this version, all users are encouraged to use only official releases. Nightly builds should be avoided unless absolutely necessary. Version 1.0 includes all the changes from RC1, RC2, and RC3, along with additional fixes and improvements.

Version v1.0.0

Improved 68000 Bus Handling on PiStorm Classic

Signals on the 68000 data bus during byte writes now expose 8-bit data on both the low and high nibbles. While this may not be critical in most cases, it could resolve issues with some older or faulty code.

Optimized 64-Bit Immediate Loads

Emu68 now emits sequences of immediate loads (in 16-bit portions) when writing to a 64-bit register. This replaces the previous method of PC-relative memory fetching, which may significantly improve performance on modern CPUs.

Better HashTable Fetch Alignment

The hash table for translated code is now better aligned, reducing the number of ARM instructions per fetch. Since the hash table is a performance-critical part of the JIT loop, this change could result in noticeable speed improvements.

Fast Page Zero

When the fast_page_zero option is set in cmdline.txt, the first 4K of RAM is mapped to ARM memory. This can improve performance in cases where moving the VBR to FastRAM isn’t an option.

CRC32 Calculation Fix

In previous versions, the CRC32 checksum for M68k code blocks did not account for the last M68k instruction, which could lead to errors when self-modifying code detection was enabled. This has now been fixed.

eMMC/MicroSD Driver Corrections

The drivers for eMMC and microSD in Emu68 tools have been fixed to prevent devices from disappearing at boot.

Main JIT Loop Rewritten in C & Dead Code Removal

Though there is no measurable performance impact, the main JIT loop has been rewritten from AArch64 assembly to C, improving maintainability. Additionally, dead code and AArch32 remnants have been removed.

Version v1.0.1

LhA Tool Fix

The LhA tool sometimes accesses non-owned memory, reading from the uppermost portion of the 4GB address space. This fix fills the memory with a random pattern, preventing crashes and performance issues.

Version v1.0.2

Updated unicam.resource

The unicam.resource has been updated to the latest version, required for the current version of the VideoCore P96 driver, which would otherwise crash.

Version v1.0.3

Buptest & Kickstart Issue Fixes

An issue with Kickstart and buptest failing to work properly has been resolved. The problem stemmed from buptest using PiStorm functions reserved for later stages of Emu68's startup. This has been replaced with lower-level PiStorm access functions.

Zorro III Disable Option

A new option, z3_disable, has been added to cmdline.txt that allows users to completely disable all Emu68 Z3 boards in the system. Use this option only if you understand its implications, as it will disable microSD, unicam, device tree functionality, and other Emu68 features.

Version v1.0.4

SCSI Command Fixes in SDHC and eMMC Drivers

Both drivers now clear the SCSI status flag when a command succeeds and set it appropriately upon failure. This fixes issues with the PFS filesystem when used in direct SCSI mode (PDS\3 DOS drive type).