mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-24 19:33:29 +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.4.1 </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.4.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.4
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<h3 align=center>
|
|
Mini vMac 3.4.1 <!-- *<i>Beta</i>* -->
|
|
</h3>
|
|
<h3 align=center>
|
|
Changes
|
|
</h3>
|
|
|
|
<hr>
|
|
|
|
<p> What has changed in Mini vMac 3.4.1, compared to Mini vMac 3.3.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.4.html#feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.4.html#modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.4.html#bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
not in default compile:
|
|
</p>
|
|
|
|
<blockquote>
|
|
|
|
<p>
|
|
<a href="v3.4.html#compile_feature">New features</a>
|
|
</p><p>
|
|
<a href="v3.4.html#compile_modified">Changed behavior</a>
|
|
</p><p>
|
|
<a href="v3.4.html#compile_bugs">Bug fixes</a>
|
|
</p>
|
|
|
|
</blockquote>
|
|
|
|
<p>
|
|
<a href="v3.4.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> <a name="modified"> <b> Changed behavior in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * Changed URL displayed in about screen to
|
|
"<a href="https://www.gryphel.com/index.html">http://www.gryphel.com/c/minivmac/</a>".
|
|
</p>
|
|
|
|
<p> * To make Mini vMac simpler and more maintainable, the interaction
|
|
between platform dependent code and platform independent code has
|
|
been changed a bit. Instead of the platform dependent code calling
|
|
a routine to emulate one tick (sixtieth of a second) whenever
|
|
appropriate, the main loop of the program is now in platform
|
|
independent code, which periodically calls platform dependent
|
|
code to check for events. A visible consequence of this is that
|
|
the emulation will now stop running in certain circumstances
|
|
when it used to continue running, such as during the open disk
|
|
image dialog. The exact situations this happens varies for
|
|
each platform.
|
|
</p>
|
|
|
|
<p> * To minimize glitches in sound output when emulation starts,
|
|
stops, or just isn't running fast enough, the sound call back
|
|
functions in the various Macintosh versions and the SDL version will
|
|
now try to play an appropriate transition in each of these
|
|
circumstances.
|
|
</p>
|
|
|
|
<p> * In the Cocoa port, when the platform dependent code checks for
|
|
events, rather than using a time out value, it turns out there
|
|
is a bit less overhead to check for events, sleep, and then
|
|
check for events again. This allows matching the performance
|
|
of the Carbon version, making the Cocoa version more ready
|
|
for prime time. (Apple has declared Carbon very, very
|
|
deprecated.)
|
|
</p>
|
|
|
|
<p>
|
|
The same fix actually also applies to Carbon. Mini vMac
|
|
used to use a standard Carbon event loop with a complicated
|
|
system of timer events only because a manual event loop
|
|
didn't get quite as good performance. With this change, all
|
|
ports can use the same platform independent event loop,
|
|
as described above.
|
|
</p>
|
|
|
|
<p> <a name="bugs"> <b> Bug fixes in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * The Virtual-Key Codes of Microsoft Windows, that are independent
|
|
of differences in keyboard hardware, turn out not to be independent
|
|
of the choice of Keyboard Layout. Changing the Keyboard Layout
|
|
to something other than "US" may scramble the Virtual-Key Codes,
|
|
strangely enough. Mini vMac will now check the current Keyboard
|
|
Layout, and attempt to unscramble the codes, so that the Keyboard
|
|
Layout chosen in Macintosh operating system running within Mini vMac
|
|
will work properly. There is a new build option to disable this
|
|
fix, <a href="../options.html#option_ikb">-ikb 0</a>”, because
|
|
this is fairly large amount of code and US only users don't need it.
|
|
But also because I'm not sure I really understand this. Why has
|
|
no one complained about this issue in the last decade?
|
|
</p>
|
|
|
|
<p> * Mini vMac on Microsoft Windows will now recognize the
|
|
Virtual-Key code of VK_OEM_102, and translate it to the Macintosh
|
|
key code of 0x0A. This key is used for angle brackets in the
|
|
German keyboard layout, for example.
|
|
</p>
|
|
|
|
<p> * Mini vMac on Microsoft Windows passed an invalid Window Style
|
|
to CreateWindowEx (when not in full screen mode). When compiled
|
|
with certain development tools this could result in the window
|
|
being the wrong size, and other odd behavior. Before finding
|
|
and fixing this, I also made Mini vMac more robust in adjusting
|
|
for window border sizes by using AdjustWindowRectEx and MapWindowPoints,
|
|
rather than various results from GetSystemMetrics. (Thanks to
|
|
the anonymous user who
|
|
<a href="https://www.gryphel.com/c/mail/v3.html#m27">reported this issue</a>.)
|
|
</p>
|
|
|
|
<p> * The OS X version of Mini vMac
|
|
was using the wrong syntax for the value of the LSRequiresCarbon
|
|
key in the Info.plist file in the application bundle, as
|
|
<a href="https://www.gryphel.com/c/mail/v2.html#m43">reported by Ryan Schmidt</a>.
|
|
</p>
|
|
|
|
<p> * The Linux, and other X, versions of Mini vMac would crash
|
|
when exporting a file, if the “out” folder in the
|
|
application directory didn't exist, and Mini vMac lacked
|
|
permission to create it, due to not properly handling errors in the
|
|
routine “FindOrMakeChild” in the source file
|
|
“MYOSGLUE.c”, as
|
|
<a href="https://www.gryphel.com/c/mail/v2.html#m42">reported by Éric of Montréal</a>.
|
|
</p>
|
|
|
|
<p> * The Linux, and other X, versions of Mini vMac can crash
|
|
if the HOME environment variable is not set, due to missing
|
|
error checking (which in turn was due to incorrectly disabling an
|
|
alternate implementation), as
|
|
<a href="https://www.gryphel.com/c/mail/v2.html#m44">reported by fzn</a>.
|
|
</p>
|
|
|
|
<p> * The Linux, and other X, versions of Mini vMac will now
|
|
look for the ROM image in the application directory before looking
|
|
in the “~/.gryphel/mnvm_rom”, instead of after, to match
|
|
the behavior of the other ports. This makes it easier to have a ROM
|
|
image for general use, and still be able try out another ROM
|
|
image.
|
|
</p>
|
|
|
|
<p> * The autoscroll feature (used in full screen mode when the
|
|
emulated screen size is larger than the real screen) would
|
|
not work when the emulation was stopped (using the
|
|
“Stopped toggle” in the “S” command of the
|
|
Control Mode). </p>
|
|
|
|
<p> * In the Cocoa port, Mini vMac would fail to mount a disk
|
|
image located on a file system that doesn't support locking.
|
|
It now checks the result from the flock call, and only prevents
|
|
mounting if the file is already locked, and doesn't prevent
|
|
mounting for other errors.
|
|
</p>
|
|
|
|
<p> <a name="compile_feature"> <b> New features not in default compile </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * The hack allowing the emulated Mac Plus (and other models without Color Quickdraw)
|
|
to have a larger screen always allocated enough memory for a screen with up to
|
|
1048576 pixels. It now allocates more closely to just the memory needed, and
|
|
can handle screens up to 2097152 pixels (the size of the unused area in the address
|
|
space that is used by this hack). I believe the previous limitation was mostly
|
|
consequence of how earlier versions handled memory access in the CPU emulator.
|
|
The build system will now give an error when the requested screen size contains
|
|
more than 2097152 pixels (before it would compile fine and just not work right).
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_sss">-sss</a>”
|
|
selects the output Sound Sample Size.
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_cbt">-cbt</a>”
|
|
selects the initial value of Caret Blink Time
|
|
(Rate of Insertion Point Blinking) in the Parameter RAM.
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_dct">-dct</a>”
|
|
selects the initial value of Double Click Time
|
|
in the Parameter RAM.
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_mnb">-mnb</a>”
|
|
selects the initial value of Menu Blinks
|
|
in the Parameter RAM.
|
|
</p>
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_kyt">-kyt</a>”
|
|
selects the initial value of Keyboard Repeat Threshold
|
|
in the Parameter RAM.
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_kyr">-kyr</a>”
|
|
selects the initial value of Keyboard Repeat Rate
|
|
in the Parameter RAM.
|
|
</p>
|
|
|
|
<p> * A new build system option
|
|
“<a href="../options.html#option_svl">-svl</a>”
|
|
selects the initial value of the Sound Volume in the Parameter RAM.
|
|
</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> * Sound in the Macintosh II emulation is much improved. The
|
|
build system now enables it by default.
|
|
</p>
|
|
|
|
<p> * The Windows version wouldn't compile with magnification disabled
|
|
(<a href="../options.html#option_magnify">-mf 1</a>) and screen depth
|
|
(<a href="../options.html#option_depth">-depth</a>) of thousands,
|
|
millions, or 4 colors.
|
|
</p>
|
|
|
|
<p> * The Classic Mac versions
|
|
(“<a href="../develop.html#option_t">-t m68k</a>” and
|
|
“<a href="../develop.html#option_t">-t mppc</a>”)
|
|
didn't always request a large enough memory allocation in the
|
|
SIZE resource, particulary for large screen sizes and color
|
|
depths. The build system now tries to compute the memory
|
|
requirements more exactly.
|
|
</p>
|
|
|
|
<p> * The Pocket PC version wouldn't compile with
|
|
"<a href="../options.html#option_im">-im 1</a>". Removing
|
|
the call to GetShortPathName for Pocket PC allows it
|
|
to compile, but then registration won't work
|
|
if the path of the application contains spaces.
|
|
Upon further investigation, it seems all that is needed
|
|
is to put the application path in quotes when setting
|
|
registry entries, so GetShortPathName isn't needed.
|
|
So have made this change for both Pocket PC and
|
|
the regular Windows version.
|
|
</p>
|
|
|
|
<p> <a name="build"> <b> Build System </b> </a> </p>
|
|
|
|
<!--
|
|
<p> * None Yet. </p>
|
|
-->
|
|
|
|
<p> * The build system now supports Xcode 6.3.2
|
|
(with “<a href="../develop.html#option_ev">-ev 6320</a>”),
|
|
and also Xcode 6.4 Beta (“-ev 6400”),
|
|
Xcode 6.2 (“-ev 6200”),
|
|
and Xcode 4.6.3 (“-ev 4630”).
|
|
Though not tested,
|
|
other versions of Xcode in between should also work, by constructing
|
|
the “-ev” option in the same way.
|
|
</p>
|
|
|
|
<p> * The build system now supports Microsoft Visual Studio 2013
|
|
(with “<a href="../develop.html#option_ev">-ev 12000</a>”),
|
|
and also Microsoft Visual Studio 2012 (“-ev 11000”),
|
|
and Microsoft Visual Studio 2015 RC (“-ev 14000”).
|
|
</p>
|
|
|
|
<p> * Added build system option
|
|
“<a href="../develop.html#option_api">-api sd2</a>”
|
|
to use the
|
|
<a href="http://www.libsdl.org">Simple DirectMedia Layer</a>
|
|
2.0 API (the older 1.2 API was previously supported), based upon a
|
|
<a href="https://github.com/vanfanel/minivmac_sdl2">port by Manuel Alfayate</a>,
|
|
after this
|
|
<a href="http://www.emaculation.com/forum/viewtopic.php?f=7&t=8807">discussion</a>.
|
|
|
|
<p> * Files can now be dropped onto the build system
|
|
application icon. This is equivalent to copying the
|
|
contents of the file, and pasting it into the build
|
|
system window after removing any existing text
|
|
(such as by the ‘Select All’ and ‘Clear’ commands),
|
|
and then choosing the ‘Go’ command. Multiple files
|
|
can be dropped, and they will be all be
|
|
processed. (Though if there is an error, that error
|
|
is reported, and all remaining files are forgotten.)
|
|
If the build system application was not yet running
|
|
when icons are dropped on it, then the application
|
|
automatically quits after processing all the files.
|
|
Other ways of generating kAEOpenDocuments apple events,
|
|
besides dropping files on the application icon,
|
|
should also work, such as AppleScript.
|
|
</p>
|
|
|
|
<p> * The Build System now supports drag and drop (when
|
|
the drag and drop operating system software is present)
|
|
onto its window, which has equivalent function to dropping
|
|
a file on the application icon as described above.
|
|
</p>
|
|
|
|
<p> * The Build System has a new “Import” command
|
|
in the File menu, which has equivalent function to dropping
|
|
a file on the application icon as described above.
|
|
</p>
|
|
|
|
<p> * The Build System has a new “Export” command
|
|
in the File menu, which saves the window’s contents
|
|
to a new file, that the “Import” command can
|
|
read. The new file has the creator set to the Build System,
|
|
so double clicking on the file will work. The Build System
|
|
application defines an icon for the files it saves.
|
|
</p>
|
|
|
|
<p> * The Build System now has a progress indicator at
|
|
the bottom of the window. It can display information
|
|
about what is going on. Clicking on the progress
|
|
indicator is equivalent to choosing the “Go” command
|
|
from the File menu. The Build System can now potentially allow
|
|
the user interface to remain functional while processing. But
|
|
calls have to be added to the processing code to allow this,
|
|
calls that report progress and can yield time to the user
|
|
interface code.
|
|
</p>
|
|
|
|
<p> * Renamed the Build System application to include branch
|
|
information - "MnvM_b34". This makes it easier to deal with
|
|
the Stable and Development branches at the same time.
|
|
</p>
|
|
|
|
<p> * Prevent warning about unused code when using options
|
|
"-var-fullscreen 0 -fullscreen 1 -mf 1".
|
|
</p>
|
|
|
|
<p> * Added build system option
|
|
“<a href="../develop.html#option_t">-t fbpc</a>”
|
|
for FreeBSD on PowerPC. </p>
|
|
|
|
<p> * Added build system option
|
|
“<a href="../develop.html#option_cpu">-t cpu</a>”,
|
|
to provide a starting point for compiling a combination of
|
|
operating system and CPU that is not yet supported.
|
|
</p>
|
|
|
|
<p> * The Build System now generates a compile time check
|
|
in a configuration file when compiling with gcc for
|
|
x86-64 or x86-32, to make sure the 64 bit configuration
|
|
is not compiled with a 32 bit compiler, or vice versa.
|
|
This can result (especially when used with
|
|
"<a href="../develop.html#option_no_asm">-no-asm</a>"),
|
|
in a binary that almost but doesn't quite work correctly.
|
|
The check is for the wrong predefine being present, rather than
|
|
checking that the correct predefine exists, to reduce
|
|
the chance of incorrectly giving an error on an
|
|
unusual compiler version.
|
|
</p>
|
|
|
|
<p> * It does not make sense to combine the build options
|
|
“<a href="../options.html#option_magnify">-magnify 1</a>”
|
|
(to start with magnification on)
|
|
and
|
|
“<a href="../options.html#option_magnify">-mf 1</a>”
|
|
(to disable magnification),
|
|
and the Build System now prevents this.
|
|
</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.4
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
<br>
|
|
copyright (c) 2016 Paul C. Pratt - last update 8/28/2016
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|