• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Mini vMac January 28, 2010: Mac II Sound Emulation

macgeek417

Well-known member
The latest Development source snapshot contains the preceding week's work on Macintosh II sound emulation. John Knoll sponsored food for the week, and Manuel Alfayate sponsored gas.
In many cases the Macintosh II emulation can now emit sound that is recognizably related to how it is supposed to. It's not perfect yet, and due to the nature of sound that means it not really yet usable at all. But it is significant progress.

Emulation of the ASC (Apple Sound Chip) is difficult, because unlike previous hardware emulated by Mini vMac, I have no real documentation of its operation. (I had a few clues from the Mac II section of Apple's "Macintosh Family Hardware Reference", from mac 68k bsd ports, and from the December 15th version of the MESS emulator source code, where early work has been done on ASC emulation.) Furthermore, unlike other hardware that has been emulated in Mini vMac so far, the ASC is not usually controlled by software in ROM, so my ROM disassembly is of less help.

So most of the work in the last week was not directly on the sound emulation, but improving the logging infrastructure in Mini vMac, to make it easier to figure out what is going on. It can now write out megabytes of information per second to a log file without bogging down the emulation too much. (On a modern machine.) Also, expanding upon code in Ross Martin's FPU emulation work, I've been putting in a disassembler directly into the emulator. 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.

Logging code is enabled by a new build system option '-log', and the disassembler by the option '-dis'. But nothing much will happen without further enabling or creating code to log various events that you are currently interested in. This is for developers only.
 
Last edited by a moderator:
Top