--- trunk/RELEASE 2007/10/08 16:20:40 30 +++ trunk/RELEASE 2007/10/08 16:20:58 32 @@ -1,4 +1,4 @@ -Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.2 +Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.3 ================================================================ Copyright (C) 2003-2006 Anders Gavare. @@ -14,32 +14,84 @@ systems are probably NetBSD/pmax, NetBSD/cats, and OpenBSD/cats. -Changes between release 0.4.1 and 0.4.2 include, among other things: +Changes between release 0.4.2 and 0.4.3 include, among other things: - o) The NetWinder emulation mode now works well enough to let - NetBSD/netwinder run from a disk image. + o) SuperH (SH4) emulation is now stable enough to let a NetBSD/dreamcast + GENERIC_MD (ramdisk) kernel reach userland. - (NetBSD/netwinder has to be installed manually, though, because - there is no installation ramdisk kernel. The GXemul documentation - has an example of how to install NetBSD/netwinder using an emulated - NetBSD/pmax machine.) + o) There is now a simple framework for letting emulated clocks, as seen + by guest operating systems, run at the same speed as the host clock. - o) Algorithmics P5064 emulation works well enough to let NetBSD/algor - run from a disk image. (Similar to NetBSD/netwinder, it has to - be installed manually, using another emulated machine.) + So far, the DECstation, MobilePro (hpcmips), NetWinder, CATS, Malta + (evbmips), Cobalt, Algor, Dreamcast, and testmips machine modes + use the new clock/timer framework. - o) PCI configuration register writes can now be handled, which allows - NetBSD/Malta (evbmips) 3.0.1 and NetBSD/cobalt 3.0.1 to run from - PCI IDE harddisk images. (Previously, only NetBSD 2.1 worked for - the Malta and Cobalt emulation modes.) + o) Some changes to the way expressions are evaluated in the built-in + debugger, and some changes in command behaviour: - o) Some performance increases: + x) Expressions (including assignments) can now be arbitrarily + complex, using parentheses, and the following operators: - The virtual translation table update routine has been simplified - to work the same way for 32-bit and 64-bit emulation, and this - apparently results in a speedup for all 64-bit modes. + + - * / % (modulo) ^ (xor) & (and) | (or) - For 32-bit MIPS, some more instruction combinations have been added. + x) Some internal emulator variables can now be read/written using + normal expressions. Examples of commands that did not work + earlier, but should work now: + + print verbose + r5 = sp - arch_pagesize * 4 + machine[0].statistics_enabled = 1 + + x) To force a name to be interpreted as a setting/register name, + a hash sign (#) is now used instead of the percentage sign (%). + (In the new expression evaluator, % means arithmetic modulo.) + + x) The 'focus' command now also selects a cpu, in addition to + selecting machine and emul. + + x) The 'reg' command only prints registers for one cpu now, not + all cpus in the currently focused machine. + + o) The wdc (standard IDE controller) had a bug which prevented disk + images larger than 2 GB to work correctly. This has been fixed. + + o) For MIPS emulation, some combinations of emulated processor + guest + operating system should now work better when idling (i.e. the host + should not run at 100% CPU): + + x) For MIPS32/MIPS64 and RM5200, the 'wait' instruction should + now work more or less as expected. + + x) For VR41xx (e.g. MobilePro) emulation, the standby instruction + should work like the 'wait' instruction. + + x) For R3000 emulation, where there is no hardware wait instruction, + I've implemented "instruction combination" hacks for both + NetBSD/pmax and Debian/pmax, so that their cpu idle loops are + detected and treated almost as a wait instruction. + + o) MIPS 64-bit address translation (X=1) was not fully working before; + TLB exception handling for xkseg and larger-than-2GB-userland should + now actually work. (Thanks to Juli Mallett and Carl van Schaik for + noticing these problems.) + + o) The mouse cursor update routines in DECstation (LK201) emulation + previously used the fact that guest OSes set the _hardware_ + cursor position. In order to support X Windows when emulating + modern versions of NetBSD/pmax, which don't set the hardware + position anymore, a workaround has been implemented which only + sends relative coordinates to the guest OS. This has two drawbacks: + + 1. Ultrix emulation with dual- and tripple-head emulation will + most likely feel very strange. It will still work, though. + + 2. Cursor movement feels "accelerated", because the emulator + sends unaccelerated movements to the guest OS, which then + accelerates them. This can however be compensated to some + degree by running 'xset m 1 0' in the guest OS. + + Having weird accelerated mouse movement is better than having no + mouse support at all, so this change was necessary. Please read the HISTORY files for more details. @@ -138,6 +190,8 @@ This product includes software developed by Ichiro FUKUHARA. + This product includes software developed by Marcus Comstedt. + Also, src/include/alpha_rpb.h requires the following: Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University. @@ -155,10 +209,6 @@ or reuse code. -Thanks to (in no specific order) Joachim Buss, Olivier Houchard, Juli Mallett, -Juan Romero Pardines, Alec Voropay, Göran Weinholt, Alexander Yurchenko, and -everyone else who has provided me with feedback. - If you have found GXemul useful in some way, or feel like sending me comments or feedback in general, then mail me at anders(at)gavare.se.