mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-25 11:31:18 +00:00
1 line
9.7 KiB
HTML
1 line
9.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
|
|
<head>
|
|
<title> Options for Developers in Mini vMac </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="develop.html">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div>
|
|
|
|
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="index.html">minivmac</a>/develop
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<h3 align=center>
|
|
Mini vMac
|
|
</h3>
|
|
<h3 align=center>
|
|
Options for Developers
|
|
</h3>
|
|
|
|
<hr>
|
|
|
|
<p> This page lists compile time options useful to people who wish
|
|
to develop or maintain Mini vMac. The main
|
|
<a href="options.html">Options</a> page has options of interest
|
|
to everyone else. </p>
|
|
|
|
<p> First see the <a href="build.html">Build</a> page to
|
|
learn how to compile Mini vMac. </p>
|
|
|
|
<h4> <a name="in"> ... Options Index ... </a> </h4>
|
|
|
|
<p><a href="develop.html#option_n">Variation Name</a></p>
|
|
<p><a href="develop.html#option_an">Abbreviated Name</a></p>
|
|
<p><a href="develop.html#option_intl">International Characters</a></p>
|
|
<p><a href="develop.html#option_t">Target</a></p>
|
|
<p><a href="develop.html#option_m">Model</a></p>
|
|
<p><a href="develop.html#option_cpu">CPU</a></p>
|
|
<p><a href="develop.html#option_api">API</a></p>
|
|
<p><a href="develop.html#option_snd_api">Sound API</a></p>
|
|
<p><a href="develop.html#option_d">Debugging Level</a></p>
|
|
<p><a href="develop.html#option_vsync">Vertical synchronization</a></p>
|
|
<p><a href="develop.html#option_at">End of Developer Options</a></p>
|
|
|
|
<p> : </p>
|
|
|
|
<p> <a name="option_n"> <b> Variation Name </b> </a> </p>
|
|
|
|
<p> If you compile a custom version of Mini vMac,
|
|
you can label it with a line such as: </p>
|
|
|
|
<pre>
|
|
-n "minivmac-3.0.0-custom"
|
|
</pre>
|
|
|
|
<p> This string is displayed by the About
|
|
command of Mini vMac, and is also used
|
|
as the name of the archive exported by
|
|
the build system. </p>
|
|
|
|
<p> <a name="option_an"> <b> Abbreviated Name </b> </a> </p>
|
|
|
|
<p> Instead of specifying the whole variation
|
|
name, you can just specify the abbreviated name,
|
|
with a line such as: </p>
|
|
|
|
<pre>
|
|
-an mnvm0001
|
|
</pre>
|
|
|
|
<p> The version number and platform parts
|
|
of the variation name are automatically generated.
|
|
The abbreviated
|
|
name must be 8 characters or less, and should only include
|
|
lowercase letters, numbers, and underscores. </p>
|
|
|
|
<p> <a name="option_intl"> <b> International Characters </b> </a> </p>
|
|
|
|
<pre>
|
|
-intl
|
|
</pre>
|
|
|
|
<p> This option 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="option_t"> <b> Target </b> </a> </p>
|
|
|
|
<p> Some additional options for target that
|
|
are not officially supported: </p>
|
|
|
|
<pre>
|
|
-t xgen { Generic X11 }
|
|
-t mppc { Macintosh OS 9 and earlier - PowerPC }
|
|
-t m68k { Macintosh - 680x0 }
|
|
-t mx11 { X11 for Macintosh OS X - PowerPC }
|
|
-t mi11 { X11 for Macintosh OS X - Intel }
|
|
-t mx64 { X11 for Macintosh OS X - x86-64 }
|
|
-t cygw { Cygwin/X for Microsoft Windows }
|
|
-t fbpc { FreeBSD on PowerPC }
|
|
-t slrs { Solaris - SPARC }
|
|
-t sl86 { Solaris - Intel }
|
|
-t wc86 { Pocket PC - Intel (Emulator) }
|
|
-t irix { IRIX - MIPS }
|
|
-t minx { Minix 3.2 }
|
|
</pre>
|
|
|
|
<p> <a name="option_m"> <b> Model </b> </a> </p>
|
|
|
|
<p> Some additional options for model that
|
|
are not officially supported: </p>
|
|
|
|
<pre>
|
|
-m Twiggy { Macintosh prototype }
|
|
-m Twig43 { Macintosh prototype }
|
|
-m PB100 { Macintosh PowerBook 100 }
|
|
</pre>
|
|
|
|
<p>
|
|
The Twiggy emulation (by Matěj Hybler) allows use of
|
|
the ROM from a Macintosh prototype that has a Twiggy floppy drive
|
|
(used in the original Lisa computer), instead of the Sony
|
|
drive that the Macintosh 128K ended up shipping with.
|
|
Except for the disk driver, the ROMs are nearly identical,
|
|
except most everything is shifted to somewhat different
|
|
addresses. Probably because the trap patching technique used in
|
|
Macintosh System Software tends to depend on exact locations
|
|
of routines in ROM, no System Software that shipped will
|
|
run with the Twiggy ROM. There are two known disk images
|
|
that will work with it, one with an early version of
|
|
MacWrite and one with an early version of MacPaint.
|
|
However these image don't currently work as is in
|
|
the Twiggy Mac emulation. Matěj Hybler figured out a
|
|
small patch to their boot block code to make them work,
|
|
that disables some sort of check for the disk being bootable.
|
|
This might be needed because the emulation is still using
|
|
a replacement disk driver that is trying to imitate the
|
|
data structures in memory used by the
|
|
Sony disk driver, while the Twiggy disk driver has
|
|
significantly different data structures. (With this patch,
|
|
these two disk images will also work fine in the Macintosh
|
|
128K emulation.)
|
|
</p>
|
|
|
|
<p>
|
|
The Twig43 emulation (also by Matěj Hybler) allows use
|
|
of an even earlier ROM (which near the end of the ROM contains the
|
|
string “ROM4.3T 07/04/83”). This ROM is more
|
|
significantly different. Oddy though, it can use the early MacPaint
|
|
and MacWrite images without modification.
|
|
</p>
|
|
|
|
<p>
|
|
There is some code for PowerBook 100 emulation, but it does not yet
|
|
get very far in booting.
|
|
</p>
|
|
|
|
|
|
<p> <a name="option_cpu"> <b> CPU </b> </a> </p>
|
|
|
|
<p> The build system normally determines the CPU and operating
|
|
system from the target (-t) you have specified. If a target
|
|
doesn't yet exist for the combination of CPU and operating
|
|
system you desire, you can select a target for that operating
|
|
system and a different CPU, and then override the CPU with
|
|
a line such as: </p>
|
|
|
|
<pre>
|
|
-cpu 68k { 680x0 }
|
|
-cpu ppc { PowerPC }
|
|
-cpu x86 { Intel 32 bit }
|
|
-cpu x64 { Intel 64 bit }
|
|
-cpu spr { sparc }
|
|
-cpu arm { ARM }
|
|
-cpu mip { MIPS }
|
|
-cpu gen { generic }
|
|
</pre>
|
|
|
|
<p> It might or might not compile correctly, but it at least provides
|
|
a starting point. </p>
|
|
|
|
|
|
<p> <a name="option_api"> <b> API </b> </a> </p>
|
|
|
|
<p> The build system normally determines the appropriate API
|
|
(Application Programming Interface) from the target (-t)
|
|
you have specified. You can override this choice with lines
|
|
such as: </p>
|
|
|
|
<pre>
|
|
-api mac { Macintosh OS }
|
|
-api osx { Carbon for Macintosh OS X }
|
|
-api cco { Cocoa for Macintosh OS X }
|
|
-api win { Microsoft Windows 32 }
|
|
-api xwn { X Window System }
|
|
-api gtk { GTK+ (GIMP Toolkit) }
|
|
-api sdl { <a href="https://www.libsdl.org/download-1.2.php">Simple DirectMedia Layer</a> 1.2 }
|
|
-api sd2 { <a href="http://www.libsdl.org">Simple DirectMedia Layer</a> 2.0 }
|
|
</pre>
|
|
|
|
<p> One useful use of this option is
|
|
to specify '-api gtk' for a linux target (overriding
|
|
the default '-api xwn'). This gets
|
|
a menu bar and file dialogs, but loses other features
|
|
since this port is incomplete. </p>
|
|
|
|
<p> <a name="option_snd_api"> <b> Sound API </b> </a> </p>
|
|
|
|
<p> The build system normally determines the appropriate
|
|
Sound API from the target (-t) you have specified.
|
|
You can override this choice with lines such as: </p>
|
|
|
|
<pre>
|
|
-snd-api alsa { Advanced Linux Sound Architecture }
|
|
-snd-api ddsp { Open Sound System and compatible }
|
|
</pre>
|
|
|
|
<p> Currently the only useful use of this option is
|
|
to specify '-snd-api ddsp' for a linux target
|
|
(overriding the default '-snd-api alsa'). </p>
|
|
|
|
<p> <a name="option_d"> <b> Debugging Level </b> </a> </p>
|
|
|
|
<pre>
|
|
-d d { debug }
|
|
-d t { test }
|
|
-d s { ship }
|
|
</pre>
|
|
|
|
<pre>
|
|
-log 1 { enable logging infrastructure }
|
|
</pre>
|
|
|
|
<p> Logging won't do much without further enabling or creating code to log
|
|
various events that you are currently interested in. This is for developers only.
|
|
</p>
|
|
|
|
<pre>
|
|
-dis 1 { enable disassembler }
|
|
</pre>
|
|
|
|
<p> 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.
|
|
</p>
|
|
|
|
<p> <a name="option_vsync"> <b> Vertical synchronization </b> </a> </p>
|
|
|
|
<p> <b> bug </b> : This isn't working correctly in Full Screen
|
|
Mode, at least in OS X 10.6.8, and so is not supported
|
|
for this version, at least. </p>
|
|
|
|
<pre>
|
|
-vsync 1 (<a href="var/mnvm0159.html">mnvm0159</a>)
|
|
</pre>
|
|
|
|
<p> Currently for OS X only, this option turns on OpenGL
|
|
double buffering and sets AGL_SWAP_INTERVAL to 1. This eliminates the
|
|
"tearing" issues noted by Manuel Alfayate. Unfortunately
|
|
it isn't yet a real solution, it is more to help illustrate
|
|
the issue before coming up with a better implementation.
|
|
(See
|
|
<a href="extras/testsync/index.html">testsync</a>.)
|
|
Besides 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. </p>
|
|
|
|
<p> <a name="option_at"> <b> End of Developer Options </b> </a> </p>
|
|
|
|
<pre>
|
|
@ { no more developer options }
|
|
</pre>
|
|
|
|
<p>
|
|
If this option is present, then no developer options are permitted
|
|
to the right of this option.
|
|
</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>.
|
|
</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> Next - <b><a href="setupcfg.html">Setup Tool Configuration</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>/develop
|
|
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
|
|
<br>
|
|
copyright (c) 2018 Paul C. Pratt - last update 10/27/2018
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|