mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-24 19:33:29 +00:00
1 line
20 KiB
HTML
1 line
20 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> Changes in Mini vMac 3.5.8 </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.5.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.5
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
</div>
<hr>
<h3 align=center>
Mini vMac 3.5.8 <!-- *<i>Beta</i>* -->
</h3>
<h3 align=center>
Changes
</h3>
<hr>
<p> What has changed in Mini vMac 3.5.8, compared to Mini vMac 3.4.1.
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.5.html#feature">New features</a>
</p><p>
<a href="v3.5.html#modified">Changed behavior</a>
</p><p>
<a href="v3.5.html#bugs">Bug fixes</a>
</p>
</blockquote>
<p>
not in default compile:
</p>
<blockquote>
<p>
<a href="v3.5.html#compile_feature">New features</a>
</p><p>
<a href="v3.5.html#compile_modified">Changed behavior</a>
</p><p>
<a href="v3.5.html#compile_bugs">Bug fixes</a>
</p>
</blockquote>
<p>
<a href="v3.5.html#build">Build System</a>
</p>
<p> : </p>
<p> <a name="feature"> <b> New features in default compile </b> </a> </p>
<!-- A new feature is something you would not notice if you used
Mini vMac as you used it previously. If using it as you would previously
would behave differently, that is "changed behavior". -->
<!--
-->
<p> * None Yet. </p>
</p>
<p> <a name="modified"> <b> Changed behavior in default compile </b> </a> </p>
<!--
<p> * None Yet. </p>
-->
<p> *
Mini vMac should be faster on machines that aren’t PowerPC or
x86-32. (And also Macintosh II emulation should be faster.)
The C version of the 680x0 CPU emulation was optimized to
be about as fast as the previous assembly code (that was only
implemented for 68000 emulation on PowerPC and x86-32), and then
the assembly code was removed. So Mini vMac should be much
faster for variations where the old assembly code could not be used.
Also, the x86-64 version is now faster than the old x86-32 assembly,
and so is now preferred on machines that can run both x86-64 and x86-32.
(On OS X, various bug fixes should make the Cocoa port now work as
well as Carbon port, which wasn’t available on x86-64.)
The C code is tweaked for a specific version of the GCC compiler.
While other compilers are still supported, they can result in
significantly slower emulation.
</p>
<p> *
If Mini vMac reports an “Abnormal Situation”, it now
also displays a 4 digit hexadecimal number. The original idea was
that if something unexpected happens, you should first figure out how
to reproduce the problem. Then the same thing can be done on a copy
of Mini vMac with debugging stuff enabled. But this idea
doesn’t work out so well if the problem can’t be
reproduced, and seems to happen randomly and rarely. So now the
non debug version of Mini vMac will display a number, which
doesn’t take much code, so at least something can be learned.
</p>
<p> <a name="bugs"> <b> Bug fixes in default compile </b> </a> </p>
<!--
<p> * None Yet. </p>
-->
<p> *
A badly behaved program could cause Mini vMac to crash, attempting to
fetch an emulated instruction from random memory, which memory
protection on a modern computer prevents. Since this is only a bad read,
I don’t think any further harm was possible besides crashing Mini vMac.
Most kinds of memory access emulated by Mini vMac have for a quite while
been designed to always be accurate and safe. But for speed,
fetching the next instruction would simply increment a pointer to where
the instruction is in real memory, and relative branches would just
offset this pointer. Only for certain long branches would Mini vMac work
out from scratch where the instruction is in real memory. This is good
enough for all
|