mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-26 18:50:49 +00:00
1 line
16 KiB
HTML
1 line
16 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
|
|
<head>
|
|
<title> Changes in Mini vMac 3.1.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.1.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.1
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<h3 align=center>
|
|
Mini vMac 3.1.3
|
|
</h3>
|
|
<h3 align=center>
|
|
Changes
|
|
</h3>
|
|
|
|
<hr>
|
|
|
|
<p> What has changed in Mini vMac 3.1.3, compared to Mini vMac 3.0.4.
|
|
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.1.html#feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.1.html#modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.1.html#bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
not in default compile:
|
|
</p>
|
|
|
|
<blockquote>
|
|
|
|
<p>
|
|
<a href="v3.1.html#compile_feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.1.html#compile_modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.1.html#compile_bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
<a href="v3.1.html#build">Build System</a>
|
|
</p>
|
|
|
|
<p> : </p>
|
|
|
|
<p> <a name="feature"> <b> New features in default compile </b> </a> </p>
|
|
|
|
<p> * If Mini vMac, on Mac OS X or Windows, doesn't find the
|
|
<a href="../hardware.html#rom">ROM</a>
|
|
file in the folder containing the application, it will now
|
|
also look in a specific central location. In OS X it
|
|
checks in "/Users/[your_UserName]/Library/Preferences/Gryphel/mnvm_rom/".
|
|
In Windows XP, "C:\Documents and Settings\[your_UserName]\Application Data\Gryphel\mnvm_rom\".
|
|
Windows 98, "C:\WINDOWS\Application Data\Gryphel\mnvm_rom\". And
|
|
in Vista, I think "C:\Users\[your_UserName]\AppData\Roaming\Gryphel\mnvm_rom\".
|
|
Usually "mnvm_rom" would be an alias (on OS X, on Windows this is called a short cut)
|
|
to where ever you keep your ROM collection.
|
|
This avoids having to create an alias to the ROM image
|
|
for each emulated Mac you use. </p>
|
|
|
|
<p> <a name="modified"> <b> Changed behavior in default compile </b> </a> </p>
|
|
|
|
<p> * The alternate CPU emulation of Mini vMac 3.0.4 is now the main and only emulation.
|
|
(The “-alt-cpu” build option is gone.) This makes Mini vMac slightly
|
|
faster, and allows more accurate detection of illegal instructions without
|
|
speed penalty. It also reduces the amount of code to be optimized in
|
|
assembly language (Currently only done for PowerPC).
|
|
The PowerPC assembly code version has been revised to match the new emulation,
|
|
and is now used for the PowerPC Linux version. </p>
|
|
|
|
<p> * More accurate mouse and keyboard event handling, by using an event
|
|
queue to communicate between the platform dependent code and the platform
|
|
independent code. Previously, the platform dependent code would tell
|
|
the platform independent code every emulated sixtieth of a second the
|
|
current mouse position and up/down state of the mouse button and keys.
|
|
If the host computer was very busy, or just slow, then a down and up
|
|
pair could end up being processed in the same emulated sixtieth, and
|
|
they would cancel each other out and be lost entirely. Also a mouse
|
|
button state change might not be processed until well after it happened,
|
|
and the mouse position might be different by then.
|
|
(Though if Mini vMac is not getting time every sixtieth of a second,
|
|
so that these problems can be observed, then sound emulation isn't
|
|
likely to work either, emitting horrible noises. But it is possible
|
|
to compile Mini vMac without sound. And also if the host computer
|
|
is a device without a keyboard, such as using handwriting recognition,
|
|
then there might not be separate key down and key up.) </p>
|
|
|
|
<p> * The Macintosh and Windows versions now match the X version in
|
|
not initially filling the sound buffer with silence, but
|
|
instead waiting to accumulate real sound samples before starting
|
|
to play sound. This may reduce the tendency to stutter
|
|
as the program starts, mostly by giving the emulation
|
|
more time to get settled into a regular rhythm before
|
|
attempting sound.
|
|
I also changed the X version to match the Macintosh and
|
|
Windows version in only skipping a single sound block on
|
|
underrun, rather than stop playing sound until the
|
|
buffer is refilled. </p>
|
|
|
|
<p> * Includes code sent by Jesús A. Álvarez ("zydeco") from his
|
|
<a href="http://namedfork.net/iphone/minivmac">iPhone/iPod Touch port</a>
|
|
that improves support for the Disk Copy 4.2 disk image format,
|
|
using information found in the
|
|
<a href="http://lisa.sunder.net/">Lisa Emulator Project</a>
|
|
by Ray A. Arachelian. Mini vMac will now get the correct size
|
|
of the data in a Disk Copy 4.2 disk image,
|
|
and will identify such an image even if it is not in
|
|
HFS or MFS format. </p>
|
|
|
|
<p> * When Mini vMac is in full screen mode, it tries
|
|
to send all key events to the emulated computer,
|
|
instead of any normal meanings they would have
|
|
in the host operating system. But I've decided
|
|
that it went too far with this. So now in OS X,
|
|
in full screen mode, it will no longer disable
|
|
force quit (command-option-escape). This was
|
|
just too dangerous, especially during development
|
|
of Mini vMac. You can still send command-option-escape
|
|
to the emulated computer, using the F1 and F2 keys,
|
|
which are mapped to 'option' and 'command'. </p>
|
|
|
|
<p> * The X version now uses mouse motion events when possible instead
|
|
of XQueryPointer, which is alleged to be inefficient. (Especially if
|
|
the program is using the display on another computer, so that XQueryPointer
|
|
requires a round trip over the network. I've never tried this.
|
|
I don't know if anyone has.) </p>
|
|
|
|
<p> * Thanks to a tip from William Nolan, Mini vMac now
|
|
has, when accessing the emulated computer's memory,
|
|
a special case for little endian processors
|
|
that allow unaligned access (such Intel), similar
|
|
to the existing special case for big endian (such as PowerPC).
|
|
This makes it a bit faster. </p>
|
|
|
|
<p> * I've made a number of small changes
|
|
to the replacement disk driver that I think make
|
|
it act closer to original Apple versions. (But which
|
|
don't make any known observable difference.) </p>
|
|
|
|
<p> <a name="bugs"> <b> Bug fixes in default compile </b> </a> </p>
|
|
|
|
<p> * None Yet. </p>
|
|
|
|
<p> <a name="compile_feature"> <b> New features not in default compile </b> </a> </p>
|
|
|
|
<p> * Support for the new
|
|
<a href="../var/mnvm0159.html">Mini vMac Variations</a>
|
|
service.
|
|
|
|
<p> * You can choose the emulated screen size
|
|
(“<a href="../options.html#option_xres">-hres and -vres</a>”). </p>
|
|
|
|
<p> * There is an initial port to GTK+. However, this port
|
|
isn't complete yet. It will allow the Linux
|
|
version to better match the other ports, with menus
|
|
and an open file dialog. It also will make possible
|
|
a port to Maemo, which is based on Gtk. The build option is
|
|
“<a href="../options.html#option_t">-t lx86</a>
|
|
<a href="../options.html#option_api">-api gtk</a>”.
|
|
(The build system now optionally
|
|
allows you to choose what API to use, instead of automatically
|
|
setting it from the selected target.) </p>
|
|
|
|
<p> * Can now use a Macintosh Classic ROM, thanks to assistance from
|
|
<a href="http://www.mac128.com/">David Sibley</a> and "Gord".
|
|
The build option is
|
|
<a href="../options.html#option_m">-m Classic</a>”.
|
|
Though it runs, it is not necessarily an accurate emulation of a
|
|
Mac Classic. A Mac Classic is supposed to be nearly identical
|
|
to a Mac SE, but there are a few minor differences. There
|
|
may be more differences that I don't know about. I can't
|
|
really work on this much further until I own a Mac
|
|
Classic.
|
|
Getting the Mac Classic emulation to work to this extent involved
|
|
fixing some issues in the emulation of the VIA chip. </p>
|
|
|
|
<p> One thing to be aware of is that the Mac Classic ROM should be
|
|
512K. Apparently some ROM acquisition programs only save the
|
|
first 256K. The
|
|
<a href="../extras/copyroms/index.html">CopyRoms</a>
|
|
program should save the correct size. </p>
|
|
|
|
<p> * Can now use a Macintosh SE FDHD ROM, thanks to assistance from
|
|
Steve Secker and <a href="http://www.mac128.com/">David Sibley</a>.
|
|
The build option is
|
|
<a href="../options.html#option_m">-m SEFDHD</a>”.
|
|
It is currently identical to the Macintosh SE
|
|
emulation, except for expecting a different ROM (which should
|
|
be named 'SEFDHD.ROM'). </p>
|
|
|
|
<p> * Have begun emulation of the Macintosh II.
|
|
The build option is
|
|
<a href="../options.html#option_m">-m II</a>”.
|
|
It doesn't yet emulate the FPU or ASC, but some
|
|
software will still run. Since a Macintosh II
|
|
can be hard to find there is also a build
|
|
option <a href="../options.html#option_m">-m IIx</a>”
|
|
which accepts the ROM from a IIx, but otherwise
|
|
currently is identical to the Mac II emulation.
|
|
The Macintosh IIcx, the Macintosh II FDHD,
|
|
and the Macintosh SE/30 all have the same ROM as the
|
|
Macintosh IIx. </p>
|
|
|
|
<p> * You can choose the emulated screen color depth
|
|
(“<a href="../options.html#option_depth">-depth</a>”)
|
|
in the Macintosh II emulation. </p>
|
|
|
|
<p> * With the build system option
|
|
“<a href="../options.html#option_sony_sum">-sony-sum 1</a>”,
|
|
Mini vMac will update the checksum in a Disk Copy 4.2 disk image
|
|
when it is unmounted. This prevents other programs that deal with
|
|
such images from complaining about an invalid checksum.
|
|
(I didn't include this by default, because it makes Mini vMac
|
|
slightly bigger and slower.) </p>
|
|
|
|
<p> * With the build system option
|
|
“<a href="../options.html#option_sony_tag">-sony-tag 1</a>”,
|
|
Mini vMac tries to support file tags. There are an additional 12 bytes
|
|
for each 512 byte block on a 400K or 800K floppy disk, containing
|
|
some additional information that was supposed to aid in
|
|
recovering damaged disks, but was never actually used much.
|
|
The Disk Copy 4.2 disk image format can support these tags.
|
|
(The more usual raw format, such as found in
|
|
<a href="../extras/blanks/index.html">Blanks</a>, does not.) </p>
|
|
|
|
<p> * The build system option
|
|
“<a href="../options.html#option_sony_dc42">-sony-dc42 0</a>”
|
|
completely disables support for disk images in disk copy 4.2
|
|
format. This could be useful when trying to compile the
|
|
smallest and simplest version of Mini vMac possible for
|
|
some specific purpose. It should not be used when compiling
|
|
a version of Mini vMac for general distribution, because
|
|
a primary goal of Mini vMac is that disk images that
|
|
work with any past version of the program should also
|
|
work with the current and any future version (at least
|
|
when default compile options are used). </p>
|
|
|
|
<p> * There is now a build system option
|
|
“<a href="../options.html#option_vsync">-vsync 1</a>”
|
|
for OS X only, which turns on OpenGL double buffering
|
|
and sets AGL_SWAP_INTERVAL to 1. This eliminates the
|
|
"tearing" issues noted Manuel Alfayate. Unfortunately
|
|
it isn't yet a real solution. Beside using much more
|
|
memory, it also reduces the maximum speed of emulation
|
|
unpredictably and erratically, because it makes
|
|
aglSwapBuffers block until the vertical retrace,
|
|
when Mini vMac is expecting to give the emulation
|
|
extra time, for above "1x" speed. Anyway it helps
|
|
to illustrate the issue. Now that I've seen what
|
|
it looks like with vsync, I can see the difference
|
|
in certain games. </p>
|
|
|
|
<p> <a name="compile_modified"> <b> Changed behavior not in default compile </b> </a> </p>
|
|
|
|
<p> * There are some refinements to the
|
|
“<a href="../options.html#option_akm">Alternate Keyboard Mode</a>”.
|
|
Typing ';' now locks the mode on, there is no temporary
|
|
state. (I found holding ';' while typing other keys too
|
|
much strain.) Typing 'm' now leaves the mode. (I find
|
|
'm' slightly easier to hit than 'u', and it is no
|
|
longer needed for entering the mode.) The 'shift' and
|
|
'option' keys now override the mode like the 'command'
|
|
key does. (So anything except lowercase letters can be
|
|
typed without leaving the mode.) When compiled with the
|
|
Alternate Keyboard Mode, Mini vMac now starts up with the
|
|
mode on rather than off. (I think I've reinvented what
|
|
I've read about the vi editor. You are normally in
|
|
command mode, and only use insert mode temporarily.)
|
|
A number of the mappings are changed: 'a' - semicolon,
|
|
'b' - backslash, 'e' - backspace, 'h' - equal, 'n' - minus,
|
|
'o' - ], 'r' - return, 't' - tab, 'u' - [, and 'p' and 'w'
|
|
are now not used. </p>
|
|
|
|
<p> * The
|
|
“<a href="../options.html#option_akm">Alternate Keyboard Mode</a>”
|
|
option now gives a visual
|
|
indication of the current keyboard mode, intended
|
|
to be easy to see in peripheral vision, without covering
|
|
up where text is normally typed. </p>
|
|
|
|
<p> * The Macintosh SE emulation, in full screen mode, will now emulate
|
|
the ADB protocol for mouse movement, instead of just poking the changes
|
|
into emulated low memory. This turned up a bug where apparently emulated
|
|
ADB devices were responding to commands too quickly, before the emulated
|
|
Mac was ready. I increased the constant that specifies the delay. </p>
|
|
|
|
<p> <a name="compile_bugs"> <b> Bug fixes not in default compile </b> </a> </p>
|
|
|
|
<p> * Two bug fixes in the
|
|
<a href="../options.html#option_em_cpu">68020</a>
|
|
emulation, in distinguishing between long DIV and MUL,
|
|
and in bit field operations with width of 32. </p>
|
|
|
|
<p> <a name="build"> <b> Build System </b> </a> </p>
|
|
|
|
<p> * The build system
|
|
now has a separate argument for the memory size of
|
|
the emulated machine
|
|
(“<a href="../options.html#option_mem">-mem</a>”),
|
|
instead of including
|
|
this in the model
|
|
(“<a href="../options.html#option_m">-m</a>”). </p>
|
|
|
|
<p> * The build system now supports Xcode 3.1, using the option
|
|
“<a href="../options.html#option_ev">-ev 3100</a>”.
|
|
Mini vMac compiles without warnings,
|
|
which wasn't possible with the SDK that comes
|
|
with Xcode 2.4.1. </p>
|
|
|
|
<p> * The build system now supports
|
|
Microsoft Visual Studio 2008 Express, using
|
|
“<a href="../options.html#option_t">-t wx86</a>
|
|
<a href="../options.html#option_ev">-ev 9000</a>”.
|
|
|
|
<p> * The build system supports compiling the Pocket PC version
|
|
with Microsoft Embedded Visual C++ 4 for ARM and the emulator
|
|
(“<a href="../options.html#option_t">-t wcar</a>” and
|
|
“<a href="../options.html#option_t">-t wc86</a>”).
|
|
</p>
|
|
|
|
<p> * The build system supports using the command line tools of the LCC compiler
|
|
(“<a href="../options.html#option_e">-e lcc</a>
|
|
<a href="../options.html#option_cl">-cl</a>”). </p>
|
|
|
|
<p> * The build system supports the Sun c compiler
|
|
(“<a href="../options.html#option_e">-e snc</a>”). </p>
|
|
|
|
<p> * The build system now has an
|
|
“<a href="../options.html#option_an">-an</a>”
|
|
option, for changing
|
|
the programs abbreviated name, from the default "minivmac".
|
|
So the Mini vMac variations are compiled with say "-an mnvm0001",
|
|
instead of "-n mnvm0001-3.1.0-umch". The abbreviated
|
|
name must be 8 characters or less, and should only include
|
|
lowercase letters, numbers, and underscores. </p>
|
|
|
|
<p> * The build system will now check if the folder
|
|
"System Folder:Preferences:Gryphel:Build:output" exists,
|
|
and if so direct output there, instead of
|
|
"minivmac:output:". This is useful
|
|
if you keep the minivmac source disk image on
|
|
a flash drive, avoiding excessive wear. </p>
|
|
|
|
<p> * The build system can now resolve aliases of folders, such as the
|
|
output preference folder. So the output can be directed anywhere,
|
|
such as to another disk. </p>
|
|
|
|
<p> * The build system can now handle multiple sets of options
|
|
at once, separated by ";". I use this in the process of
|
|
compiling the set of Mini vMac Variations. To allow this
|
|
to work, the build system no longer replaces the entire output
|
|
folder on each run, but just replaces folders within
|
|
the output folder. </p>
|
|
|
|
<p> * I've removed the "-pk" option of the build system to
|
|
restrict the program to a more manageable scope. And anyway
|
|
I find it more convenient to handle post processing in external
|
|
scripts. </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.1
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
<br>
|
|
copyright (c) 2009 Paul C. Pratt - last update 11/8/2009
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|