Snial
Well-known member
Sometimes it's argued that the compact Mac era would have done better if Apple had produced one with Atari ST/ Amiga (ish) colour graphics.
Well, now you can try it out for yourself! I modified the PCE Mac emulator to support 256x171x 4bpp graphics as per this proposition on the thread 68k-today. It's supposed to be a 512kB Mac with no SCSI and a maximum RAM of 1MB. Color graphics supports a 16 entry palette table with 11 bits per palette entry. Writing a 16-bit word:
Thus the Mac Personal Color can support 16 colours from a range of 2048 colours: 8 blue, 16 green and 16 red. A few things to note. Firstly, obviously Apple didn't produce a Mac like this, it's not a serious proposition! Secondly, it'd be pretty challenging to write an app on a base model in 512kB. MacPascal can't integrate assembler sprite routines quickly enough nor write to absolute memory locations easily. MacASM or MDS could have done it, but ASM isn't easy. Consulair C I think did fit in 512kB, so that's possible. No THINK Pascal or THINK C I thought ran in 512kB. Therefore, most Mac Personal Color developers would have needed 1MB from the start.
Thirdly: a real version of the Mac Personal Color would have needed the SE's video trick for reducing video bandwidth. This is because the 4bpp mode needs twice the graphics bandwidth as each scan line uses 128b and odd scan lines duplicate even ones. Even so, it'll have the same performance as a Mac Plus, about 6.5MHz of 68000 rather than 7.5MHz. Without that, you'd be left with a bit under 3MHz of CPU!
Fourthly: the colour frame buffer is chunked not planar. Each byte contains 2 pixels: [left:4][right:4].
Fifthly: at a resolution of 256x171, 16 colour mode is inferior to and incompatible with Atari ST and Amiga Resolutions (since they standardised on 320x200). This would have limited its appeal to gamers anyway.
Having said all that, it might have been a fun machine. The emulator seems to work. I've written the most simple demo program I could (it just sets the palette and video mode and goes back to B/W when you click again). In the next update I'll produce a better demo, the emulator and source code!
Before (and after clicking again):

When you run it the screen appears duplicated because as mentioned earlier, each scan line is 2 old scan lines (but then duplicated):

I love those chunky, coloured pixels! Let me know how horrified you are!
-cheers from Julz
Well, now you can try it out for yourself! I modified the PCE Mac emulator to support 256x171x 4bpp graphics as per this proposition on the thread 68k-today. It's supposed to be a 512kB Mac with no SCSI and a maximum RAM of 1MB. Color graphics supports a 16 entry palette table with 11 bits per palette entry. Writing a 16-bit word:
0x8000+(pal<<11)+(blue<<8)+(green<<4)+(red) to 0xbffffa
sets a palette entry; writing 0 or 1 set the video mode to black and white / colour.Thus the Mac Personal Color can support 16 colours from a range of 2048 colours: 8 blue, 16 green and 16 red. A few things to note. Firstly, obviously Apple didn't produce a Mac like this, it's not a serious proposition! Secondly, it'd be pretty challenging to write an app on a base model in 512kB. MacPascal can't integrate assembler sprite routines quickly enough nor write to absolute memory locations easily. MacASM or MDS could have done it, but ASM isn't easy. Consulair C I think did fit in 512kB, so that's possible. No THINK Pascal or THINK C I thought ran in 512kB. Therefore, most Mac Personal Color developers would have needed 1MB from the start.
Thirdly: a real version of the Mac Personal Color would have needed the SE's video trick for reducing video bandwidth. This is because the 4bpp mode needs twice the graphics bandwidth as each scan line uses 128b and odd scan lines duplicate even ones. Even so, it'll have the same performance as a Mac Plus, about 6.5MHz of 68000 rather than 7.5MHz. Without that, you'd be left with a bit under 3MHz of CPU!
Fourthly: the colour frame buffer is chunked not planar. Each byte contains 2 pixels: [left:4][right:4].
Fifthly: at a resolution of 256x171, 16 colour mode is inferior to and incompatible with Atari ST and Amiga Resolutions (since they standardised on 320x200). This would have limited its appeal to gamers anyway.
Having said all that, it might have been a fun machine. The emulator seems to work. I've written the most simple demo program I could (it just sets the palette and video mode and goes back to B/W when you click again). In the next update I'll produce a better demo, the emulator and source code!
Before (and after clicking again):

When you run it the screen appears duplicated because as mentioned earlier, each scan line is 2 old scan lines (but then duplicated):

I love those chunky, coloured pixels! Let me know how horrified you are!
-cheers from Julz