README: updates for screen resolution configuration

Bump to v0.22
This commit is contained in:
Matt Evans 2024-12-16 22:52:49 +00:00
parent 59109b5f6a
commit 606f7f75fe

View file

@ -1,6 +1,6 @@
# Micro Mac (umac)
v0.21 26 August 2024
v0.22 16 Dec 2024
This is a minimalist Apple Macintosh 128K/512K emulator. It uses the
_Musashi_ 68K interpreter and lashes the absolute minimum in hardware
@ -39,6 +39,8 @@ This emulates the following hardware:
a 1/2/4MB Mac Plus-like machine. Straying off-piste a little, you
can also use unsupported values like 256, 208, 192KB; when this is
done, the ROM is patched to "probe" the correct memory size.
* Monochrome 512x342 framebuffer (as per Mac Plus). This can be
reconfigured for different/higher resolutions, such as VGA.
There's no emulation for:
@ -114,9 +116,13 @@ chars 'LK'. Some emulators append a header (which can be `dd`'d off).
make
```
No surprises here. No autoconf either. :D You can add a `DEBUG=1` to
make to compile in debug spew, and add `MEMSIZE=<size_in_KB>` to control
the amount of memory.
No surprises here. No autoconf either. :D To the `make` command you
can add:
* `DEBUG=1` to compile in debug spew,
* `MEMSIZE=<size_in_KB>` to control the amount of memory,
* `DISP_WIDTH=<xres>` and/or `DISP_HEIGHT=<yres>` to control the
video framebuffer resolution.
This will configure and build _Musashi_, umac, and `unix_main.c` as
the SDL2 frontend. The _Musashi_ build generates a few files
@ -145,6 +151,16 @@ frequently-used 68K opcodes. This was generated by profiling a System
1967 opcodes, these hottest 200 opcodes represent 98% of the dynamic
execution. (See _RISC_.)
Note on altering screen res: The fact that we can change resolution at
all is a testament to the well thought-out MacOS code, even System 3,
which accommodates whichever resolution the ROM describes. Some early
apps (such as MacPaint) will assume a given geometry, but generally
all is good, especially once you get to the System 6/System 7 era.
For `umac`, the practical maximum resolution is roughly 800x600; the
framebuffer is limited to 64KB total (i.e. `x*y/8 < 65536`). The X
resolution must also be a multiple of 32. Consider the additional
memory use; a Mac 128K is too small for any real increase.
# Running
@ -235,6 +251,13 @@ pitfalls/observations:
however, have some bug fixes. Anyway: the MacPlus ROM runs on
512K and 128K Macs, and was used as the 'e' in the Mac 512Ke.
* A benefit of the MacPlus ROM disassembly is that it helped to
reverse-engineer the ROM code relating to video, enabling changing
screen resolution. See `rom.c` for a slew of patches to various
constants/code; some of it supplies X/Y res to the OS (along with
screen base), but most of the patches alter the ROM's own drawing
of the cursor, happy/sad Mac, and disc icons.
# See also