README: updates for screen resolution configuration
Bump to v0.22
This commit is contained in:
parent
59109b5f6a
commit
606f7f75fe
1 changed files with 27 additions and 4 deletions
31
README.md
31
README.md
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue