mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-24 19:33:29 +00:00
1 line
13 KiB
HTML
1 line
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
|
|
<head>
|
|
<title> Changes in Mini vMac 3.2.3 </title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="canonical" href="v3.2.html">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div>
|
|
|
|
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="../index.html">minivmac</a>/<a href="index.html">change</a>/v3.2
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<h3 align=center>
|
|
Mini vMac 3.2.3 <!-- *<i>Beta</i>* -->
|
|
</h3>
|
|
<h3 align=center>
|
|
Changes
|
|
</h3>
|
|
|
|
<hr>
|
|
|
|
<p> What has changed in Mini vMac 3.2.3, compared to Mini vMac 3.1.3.
|
|
This only lists changes that affect behavior, and so doesn't
|
|
include cleanups of the source code. </p>
|
|
|
|
<p> : </p>
|
|
|
|
<p>
|
|
default compile:
|
|
</p>
|
|
|
|
|
|
<blockquote>
|
|
|
|
<p>
|
|
<a href="v3.2.html#feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.2.html#modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.2.html#bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
not in default compile:
|
|
</p>
|
|
|
|
<blockquote>
|
|
|
|
<p>
|
|
<a href="v3.2.html#compile_feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.2.html#compile_modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.2.html#compile_bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
<a href="v3.2.html#build">Build System</a>
|
|
</p>
|
|
|
|
<p> : </p>
|
|
|
|
<p> <a name="feature"> <b> New features in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * Auto scrolling: If the emulated screen is larger than the real screen
|
|
while in full screen mode, the emulated screen will be scrolled to keep the
|
|
mouse pointer in view.
|
|
(Previously only the top left corner would ever be displayed, and even
|
|
that didn't work quite right.)
|
|
</p>
|
|
|
|
<p> * "AutoSlow": Mini vMac will automatically shift down to 1x speed
|
|
if there is no activity for a while. This helps to preserve the battery
|
|
on portable computers. </p>
|
|
|
|
<p> If the user types, or clicks or moves the mouse, or the emulated
|
|
computer draws to the screen, or reads or writes to an emulated disk,
|
|
that counts as activity that prevents AutoSlow. </p>
|
|
|
|
<p> AutoSlow takes effect after either 0.5 seconds of emulated computer
|
|
time, or 16 seconds worth of emulated instructions executed (usually about 2
|
|
seconds at the default 8x speed), which ever is longer. </p>
|
|
|
|
<p> It is possible that some software will not draw anything to the screen
|
|
for longer than that while doing real work, so the AutoSlow feature
|
|
can be disabled with Control-S-W. Also, the compile time option '-as 0'
|
|
causes Mini vMac to start with AutoSlow disabled. </p>
|
|
|
|
<p> A blinking insertion point will not prevent AutoSlow. This required
|
|
improving the code for detecting how much of the emulated screen was changed.
|
|
This makes Mini vMac more efficient in general, since transfering
|
|
images to the real screen tends to be expensive.
|
|
Previously it would detect that areas at the top and bottom of the emulated
|
|
screen hadn't changed, to limit the amount of drawing to the real screen.
|
|
Now it can detect that areas at the left and right of the emulated screen
|
|
haven't changed. If the remaining area that has changed is only a single
|
|
pixel wide and less than 32 pixels tall, it is assumed to be only a blinking
|
|
insertion point, that doesn't prevent AutoSlow. </p>
|
|
|
|
<p> <a name="modified"> <b> Changed behavior in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * Have begun making tweaked assembly version of 68000 emulation
|
|
for Intel x86 computers (starting from assembly language generated by gcc).
|
|
This makes Mini vMac faster, as well as giving
|
|
more consistent results when Mini vMac is compiled with different
|
|
development environments. (Had previously only made tweaked assembly
|
|
language for PowerPC computers.)
|
|
</p>
|
|
|
|
<p> * Improved accuracy of timing. Mini vMac now measures time in cycles
|
|
rather than instructions executed. In the simplest form, all instructions
|
|
are assumed to take the same number of cycles, and this closely matches
|
|
the results of previous versions of Mini vMac. (Mini vMac actually counts
|
|
sixty fourth cycles, not just integer number of cycles, so that average
|
|
times of instructions can be more accurate.) But by default, Mini vMac
|
|
now assigns an average number of cycles for each of the 65536 primary opcodes.
|
|
|
|
<p> As a compile time option, in addition to using the table, Mini vMac can
|
|
try to compute more accurate cycles for certain instructions, depending
|
|
on the current data. This is slower, and only implemented in the C version
|
|
of the 68000 emulation, making it slower still. </p>
|
|
|
|
<p> The build system option "-ta 0" selects the least accurate of these three methods,
|
|
the default is "-ta 1", and "-ta 2" selects the most accurate. </p>
|
|
|
|
<p> The most accurate option is still not completely accurate. Completely accurate
|
|
timing would be exceedingly difficult. For example, the CPU and video output
|
|
conflict for accesses to RAM, and that would seem very complex to model. </p>
|
|
|
|
<p> The greater accuracy is so far mostly theoretical. The timings were
|
|
entered from Motorola documentation. It needs to be tested and calibrated
|
|
by comparing to real hardware. Currently 68000 timings are used even in
|
|
the 68020 emulation. More accurate timing for 68020 should be added in a
|
|
future version. Truly accurate timing for 68020 would be much more difficult
|
|
than for the 68000 because of pipelining and caching, probably to the point
|
|
of being unfeasible for Mini vMac. But more accurate averages should be possible.
|
|
</p>
|
|
|
|
<p> * Mini vMac will now by default mount disk images in Disk Copy 4.2 format
|
|
as read only. This is because by default Mini vMac ignores the checksum and
|
|
tags of this format, so writing to the image makes it invalid. Mini vMac can
|
|
be compiled with full support for this format, in which case the images will
|
|
be writable. </p>
|
|
|
|
<p> The new utility
|
|
<a href="../extras/cnvtdc42/index.html">CnvtDC42</a>
|
|
converts Disk Copy 4.2 format images to a new
|
|
image without the tags and checksums, that the default version of Mini vMac
|
|
can write to.
|
|
</p>
|
|
|
|
<p> * The Windows and Linux versions now match a previous feature of the
|
|
Macintosh versions. When switching from full screen to normal mode,
|
|
or toggling magnification in normal mode, it will preserve the emulated
|
|
cursor position, by moving the host computer's cursor.
|
|
</p>
|
|
|
|
<p> * As an additional safety feature, the control mode confirmation for
|
|
the reset, interrupt, and quit commands will now treat anything other than
|
|
'y' as meaning no, rather than ignoring it. (With exception that a repeated
|
|
key is ignored - so 'q' is ignored for quit, 'r' for reset, and 'i' for
|
|
interrupt.) This is because I once managed to accidentally reset Mini vMac
|
|
by typing unintentionally into control mode.
|
|
</p>
|
|
|
|
<p> * The power button can now be used in the OS X version when in full
|
|
screen mode, to put the (real) computer to sleep.
|
|
</p>
|
|
|
|
<p> * I've rearranged the Mini vMac about page (Control-A) a bit to make
|
|
room for another idea I have for the variations. It no longer displays
|
|
which computer is being emulated. That can be inferred from the
|
|
variation number.
|
|
</p>
|
|
|
|
|
|
<p> <a name="bugs"> <b> Bug fixes in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * In OS X, changing the screen configuration, such as switching
|
|
between using the internal screen of a MacBook Air and an external screen,
|
|
would tend to make Mini vMac stop drawing.
|
|
</p>
|
|
|
|
<p> * In OS X, if the screen configuration changes when in full screen mode,
|
|
Mini vMac will turn off full screen mode, instead of just leaving the emulator
|
|
window at a size that is now wrong.
|
|
</p>
|
|
|
|
|
|
<p> * In OS X, may now have a viable work around for
|
|
misbehavior of the operating system calls to hide and show the
|
|
cursor. The most easily reproducible such situation was when the
|
|
computer went to sleep and then wakes up, the real cursor
|
|
would end up visible.
|
|
</p>
|
|
|
|
<p> * In OS X, the operating system can sometimes bring up a dialog, such
|
|
as for force quit (upon command-option-escape), and Mini vMac wouldn't
|
|
notice, leaving the real cursor hidden, making the dialog hard
|
|
to use. </p>
|
|
|
|
<p> <a name="compile_feature"> <b> New features not in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * The build system option, "-emm 0", disables the more accurate mouse emulation
|
|
normally used in full screen mode. This allows Mini vMac to work somewhat better on
|
|
tablet computers without a mouse. But such computers are still not really supported.
|
|
</p>
|
|
|
|
<p> * The build system option, "-var-fullscreen 0", makes the full screen mode option
|
|
a constant rather than a variable. So "-var-fullscreen 0 -fullscreen 1" will make
|
|
Mini vMac always run in full screen mode, and "-var-fullscreen 0 -fullscreen 0" will
|
|
make Mini vMac never run in full screen mode. The "F" control mode command disappears.
|
|
</p>
|
|
|
|
<p> * The build system option "-log" enables improved logging infrastructure for
|
|
debugging in Mini vMac. It can now write out megabytes of information per second to
|
|
a log file without bogging down the emulation too much. (On a modern machine.)
|
|
But nothing much will happen without further enabling or creating code to log
|
|
various events that you are currently interested in. This is for developers only.
|
|
</p>
|
|
|
|
<p> * The build system option "-dis" enables a disassembler built into the emulator.
|
|
Besides disassembling a number of instructions executed after an event of interest,
|
|
it can disassemble instructions prior to the event, as the emulator can save
|
|
the addresses of instruction executed to a circular buffer.
|
|
Requires the "-log" option. Nothing much will happen without further enabling
|
|
or creating code to log various events that you are currently interested in.
|
|
This is for developers only. </p>
|
|
|
|
<p> * The build system option "-intl" forces Mini vMac to support
|
|
international characters in the user interface, even when using the
|
|
default English. This is useful if the maintainer name needs
|
|
the extra characters. (It would be nicer for the build system
|
|
to figure out for itself what character set is needed. But
|
|
this will do for now.) </p>
|
|
|
|
<p> <a name="compile_modified"> <b> Changed behavior not in default compile </b> </a> </p>
|
|
|
|
<p> * None Yet. </p>
|
|
|
|
<!--
|
|
-->
|
|
|
|
<p> <a name="compile_bugs"> <b> Bug fixes not in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * Improved FPU emulation, originally written for Mini vMac
|
|
by Ross Martin. This code was modified to
|
|
use SoftFloat, by John Hauser (as found used in the Bochs emulator),
|
|
plus some extensions to SoftFloat by Stanislav Shwartsman
|
|
(also found in Bochs).
|
|
Though using SoftFloat is slower than using native floating point,
|
|
it ensures consistent results on different computers,
|
|
and makes it easier to compile with different development environments.
|
|
There's still a lot of work to do on the FPU emulation, but it already
|
|
allows much more software for the Mac II to run without crashing.
|
|
</p>
|
|
|
|
<p> * In many cases the Macintosh II emulation can now emit sound that is
|
|
recognizably related to how it is supposed to. It's not perfect yet,
|
|
and due to the nature of sound that means it not really yet usable at all.
|
|
But it is significant progress. </p>
|
|
|
|
<p> * The Macintosh II emulation supports more than 1M of video ram in
|
|
24 bit addressing. (One noticable effect is that allows identify
|
|
displays button in monitors control panel to work.)
|
|
</p>
|
|
|
|
<p> <a name="build"> <b> Build System </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * The build system and the extras are easier to compile with different
|
|
Macintosh 680x0 C compilers.
|
|
</p>
|
|
|
|
<p> * The build system now supports the Digital Mars Compiler (with "-t wx86 -e dmc")
|
|
and the Pelles C Compiler (with "-t wx86 -e plc" and "-t wx86 -e plc -cl").
|
|
</p>
|
|
|
|
<p> * The build system now supports XCode 4.0.2 (with "-ev 4000"). </p>
|
|
|
|
<p> * There is better support in general for different versions of Microsoft
|
|
Visual Studio. Specifically, support has been added for
|
|
Visual Studio 2010 (with "-ev 10000"), Visual Studio .NET 2003
|
|
(with "-ev 7100"), and Visual Studio .NET 2002 (with "-ev 7000").
|
|
</p>
|
|
|
|
<p> * There is a new build system option, "-t lx64", to target for 64 bit Linux.
|
|
And there is a new option, "-t wx64", to target for 64 bit Windows.
|
|
Both would currently be slower than the 32 bit versions, because those versions
|
|
now have some assembly language tweaking.
|
|
</p>
|
|
|
|
<p> : </p>
|
|
|
|
<p> If you find Mini vMac useful, please consider
|
|
<a href="https://www.gryphel.com/c/help/index.html">helping the Gryphel Project</A>,
|
|
of which it is a part. </p>
|
|
|
|
<a href="https://www.gryphel.com/index.html">
|
|
<img src="https://www.gryphel.com/d/gryphel-32.gif" width=32 height=32 border=0
|
|
alt="gryphel logo, 1K"
|
|
>
|
|
</a>
|
|
|
|
<p> Back up to - <b><a href="index.html">Changes in Mini vMac versions</a></b></p>
|
|
|
|
<hr>
|
|
|
|
<div>
|
|
|
|
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="../index.html">minivmac</a>/<a href="index.html">change</a>/v3.2
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
<br>
|
|
copyright (c) 2011 Paul C. Pratt - last update 11/13/2011
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|