————————
 In B209-Win32, if you’ve switched to another program outside
the emulator, whatever you do, do not click on the
window to return (crash); use Alt-Tab (task menu) instead.
Better yet, don’t switch…
————————


=== 2012.12.29
-Nope.  Aleph One still can’t handle 34-byte IMA ADPCM.
I found out why the EMR music sounds horrible: LibSndFile’s
aiff_ima_decode_block treats the double-sample bytes LSB
Correction: this ordering appears to actually be
correct.

The high (first) sample byte for the block is also treated
unsigned (the actual problem).  I’ve fixed the decoder in
libsndfile, as well as attempted to optimize the encoder.


=== 2012.12.12…25
-Mini vMac MacII 3.3.3
 I was finally able to compile and link the Nov and Dec src
snapshots using Pelles C, but the builds hang easily for some
reason (common trait: color table changes)—something low-level
that I can’t trace with the debugger—the native thread is so
thin that you can’t do anything past the sysenter instruction
(hang until forced break).
 Sound is still messed up, but I know one of the reasons why:
timing is too fast; the wave output’s cut up.  Buffering also
pauses when the cursor’s moved, causing music/sfx to stop
until the cursor is still.

Update: it can handle DooM II, turning down the minimum heap
(the Finder will give you a crash warning); performance is a
bit slow and jerky; and the sound issue mentioned.  The used
“next cursor” trap needs to be removed though (I replaced the
two words with $"588F 70FF" to skip and make an error code);
you won’t be able to use the mouse.

More things I forgot to mention:
 When it came to compiling the code, some ‘implied’ libraries
were not listed in the project file (doing the conversion);
w. a lot of trial and error, I completed the list:
 kernel32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib
 advapi32.lib delayimp.lib winmm.lib shell32.lib ole32.lib
 uuid.lib.

The Appearance extension still doesn’t work well despite the
DIVS.L fix; scroll bars don’t update their thumbs, for one.


=== 2012.10.12
-Basilisk II and SheepShaver jerkiness
 A higher playback rate could explain the Bare Naked Ladies
"The Old Apartment" movie being out of sync; sounds in
Aleph One have a slightly lower (probably correct) pitch than
in B209/Marathon.

 Update: B209’s timing calculation (Microseconds) fails after
a while under B209; restarting fixes it.


=== 2012.10.xx-10.11
-Mini vMac 505.exe (also Win32, 2012.06.27): MacII v3.3.2a
 Enter key mapped (LSb #76), works; not much difference from
recipe 26 otherwise.

 Bad: StuffIt™ Lite 3.6 crashes the emulator when opening an
archive.

 Weak: like older versions and the newer B2/SS you can’t
force quit (need a Mac debugger, if possible), due to Alt-Esc
being passed to the OS (switches native programs only).


=== 2012.09.xx
-B209 on a modern Intel multi-core chip produces certain
DIVS.L h:l or other math errors—implementation changes in the
hardware, it appears.  Either use a subtraction routine
instead of relying on a native idiv...or complain to Intel.


=== 2012.09.16-18
-Mini vMac 26.exe: MacII version 3.2.3 (B/W, 256-colors only)
 Good marks:
  X-Mas Lemmings, MacsBug 6.5.x work fine.
  Accurate timer, smoothest cursor performance for color.

 Bad marks:
  Norton Disk Editor crashed the emulator (had to End Task).
  Only 24-bit mode really works; serious problems exist in
 switching; MODE32 doesn’t work: OS skips boot.  B2 has the
 better semi-MMU.
  CPU: 64/32 bit DIVS.L is broken: overflow case results are
 inconsistent/garbled, overflow CC off.  Last result for
 FFFFFFFE:80000000/1: FFF15CC6 rem, FFBF6A0C quo.
 The official test was conducted with downloads/kook.c.
  Emulated FPU is bad: power ignores fraction; invalid
 quotients in sine (pi/4 results in -sqrt(.5)).  SysError #10
 (F-line/FPU instr.) comes up easily.  (Omit FPU in building,
 and use SoftwareFPU instead.)
  Text, erasure, frames sometimes don’t render.  Quickdraw
 layering problem?  32-bit problem?
  No sound, despite the Sound control panel’s output settings;
 0x01 data reads in reading the supposedly emulated SoundChip;
 hangs only with the kind of waiting code found in Marathon.
  Marathon 2: I fixed build_trig_tables,
 spending way too much time putting the explicit values into
 the binary code with ResEdit.  Beyond that, the messed up
color tables, and addressing/DIVS.L bugs, the cmdkey bomb
.
  Appearance will load, but graphics are screwy: settings app
 renders in incorrect drawing order; window collapsing fails;
 grow icon (window bot-right) doesn’t render; going from one
 menu to the next while holding the mouse down F-line bombs.
  Emulation at ‘all out’ is slower than the other emulators;
 again, this is due to the CPU instruction type-table method,
 as stated in March.

-SoftMac XP under 7.5.5 w. MacsBug 6.6.3 (unused).
 While the setup was slightly different from before, I
did get od28-6 gameplay.  Fades are again very slow, and
this time only the brightest of colors are wrong (black); QD
builds a bad ITable (srcOr text becomes opaquely garbled).
 TimeTask timing is up to 50% slower than normal, however
smooth, even at ‘high detail’ in Marathon - similar to B2 142
and v0.9.
 No sound; trying to adjust sound likely results in a hang.
 Emulated FPU is producing similar invalid pow/trig results
to MinivMac0026; no crashes.
 Any extensive use/switching in some programs results in a
hang, but force-quitting still usually works, using the left
control key for option.

 Discovered why Wolfenstein 3D First Encounter™ failed.
Both of these emulators, bad tables: FPU emulation was the
problem all along.
Fixed! B209/68030/nofpu.

 Inconsistent implementation:
On 9.18 morning, the full 68040 actually started working...
The timer for QT movie playing was at a crawl, though.


=== 2012.08.02
-Aleph One 2012.05.14 (not latest, but latest SF release)
 Film replay option accurately emulates M2 and Infinity.
 Anti-aliased text, also reflecting the limitations of the
main font (apostrophe/rsquo shows as the 'undefined'
rectangle).
 Some crashes occur when switching settings and also
abruptly during game time, with no errors reported.

 Update: linear sound interpolation confirmed, reading
'AlephOne-20100424.src.zip/
AlephOne-20100424/Source_Files/Sound/Mixer.h'.



=== 2012.06.11
-Updated B209time to do 3/4 instead of 1/2.
The 1/2-time INIT is still available for those who want
40fps gaming instead of 30.


=== 2012.04.18
-B209time will not fix QT music because QuickTime uses the
inaccurate tick rate (the 17 ms instead of 16+2/3 ms).

Update: QT uses Microseconds.  This explains its failure
after three hours, after the low-32 bits wraps.  B209
doesn’t handle the 64-bit math well there.


=== 2012.04.07 More bugs

Cursor issues
-B2, particularly during typing.
  Native gets flashed, an older position on the screen.
  Maybe this is related to screen bugs, witnessed in WOLF,
 where the dest address register isn't restored (interrupt
 time, perhaps).  Update: no.

-SheepShaver, makes native cursor instead of emulating it
  Regardless of the program being in the foreground,
 if anything about the cursor is changed (including
 shape), the native cursor is moved to its point.
 (Bad loc. = you’re screwed.)
 Native is often visible when it’s supposed to be hidden.



=== 2012.03.30-31 Mac OS Kitchen Nightmare

 The MPW Search tool is now failing to parse its params:
"Search 'FCEU_fopen' `Files -s -f -r -t TEXT :`"
 Results in:
### MPW Shell - 's must occur in pairs.

 3.31 1:27 AM: flushing the buffer, flushing everything,
Search suddenly works again....as it matters where you're
executing the tool from.  What a tool.

 Here’s a patch I wrote into the morning
to fix the slow TimeTask emulation.  It’ll only affect B2.
It doesn’t, however, high-rate fix QT music.
 Recommended to be a multiple of 1024, but setting the buffer
size from 4096 to 3584 for 44.1KHz stereo fixed sync.
The BNL QT video looks right, but sync is lost when other
Windows programs are running.

-- WTF

 HyperCard fails to perform real number multiplication in
a long case: "answer 1.981617647*65536" in the message box.
The result: 1.981617647.  Persisting with this, I get an
"Out of memory" dialog, but "About This Macintosh" says HC
has enough.  If I don’t, and quit, the emulator crashes;
the heap corrupts.  Software FPU doesn’t fix anything here.
 Mini vMac has no problem with this, but there are no ’020
expectations under that Standard Apple Numeric Env. case.
 Obviously, Basilisk II is sensitive in stupid areas.
v0.9 does not have this floating-point problem, but the
MPW problem, stated above, happens under v0.9 too.

-- Pains

 Versions 1.0+ ignore the "extension" bit when importing
keycodes; keypad keys go to arrow/home/end/page/insert/etc.
 Also, the Windows key, used for Option, activates the
Start menu; Win-L, for Opt-L (negate char.), logs me off!

-- Hmmm...

 v0.9 doesn’t crash with MnvM_bld, DABEEF (expected
Mini vMac ptr for the uncompressed StuffIt "disk" output).
 And with the fastest cursor performance, also allowing Win
and Alt-Ret to be used by the emulator only.  If it wasn’t
for inaccurate timing (TimeTasks are late; Marathon gaming
is smooth but slow) and some unimplemented instructions...
It does inexplicably bomb sometimes.


=== 2012.03.30 Aleph One (v0.17.2, 2006.12.28-2007.04.01)
 from Marathon 2 code —can still run M2 films to an extent

What works
 No crashes, so far.
 Long distances, high-speed raster/clipping, although objects
close up, particularly darkening "invisible" ones bring that
30fps down to 12+ fps, and some objects are still improperly
clipped by farther polygons.
 OpenGL rendering, however a cheap trick is used for static
effects (single-color outline of a shape), and the alt. the
programmers wrote is very slow.  Also, the "anti-aliasing"
feature doesn’t do anything.

General bugs
 Infinity "penetrate media" flag not handled correctly; SMG
bullets get stuck trying to leave a media for a couple of
moments.  (od28-6 emulates this feature correctly.)
 For some frames weapon shapes disappear.
 Sounds are still not interpolated (tingy Pfhor, beeps).
 With OpenGL on, terminating a game often results in blank
screens, bad menu fades otherwise.

-- Pains
 The required files have no room for file types, meaning the
icons will remain blank on Windows.
 AIFC-compressed music fails.
 Sometimes the cursor recenters after a game has ended,
then being moved.
 The app needlessly tries to change the resolution when the
res. it’s being switched to is the same.  Switching to
larger screens won’t increase the screen res.--just render
centered, with the sides clipped off.

 I still can’t use the old keymap settings, but this is due
to the hardware not being capable of certain keys being
pressed all at once (keys lock up until depress, PC beeps).


=== 2012.03.27-29 FCEUX 2.1.5 (latest release) tests

What works
 Video issn’t screwed up RGB-wise after video dialog (98.16).
 demo3.nes (MMC5 test) -- mostly
 scanline test: no asterisks (or partials) appear

General bugs
 Normal debug step over through sprite_hit_timing program
causes vertical lines to appear in instead of text.
 Full screen video mode messes up desktop view, dialogs.
 PPU doesn’t handle output raw pipe when "disabled," as
required for full_nes_palette.

Un-fixed old bugs:
 May crash on open after prev. load failure.
There was another crash, but I don’t remember what for...
 Sound still breaks up, no matter the settings or CPU speed.
 cpu_timing_test: they didn’t fix opcode time for $E2
  (fixed in MacFCEU a long time ago)
 Sprite-hit timing basics:
  Old PPU, #2 (upper-left corner too soon); new, #3 (late).
 Sprite 0 hit timing: #5 (sp-0 hit was set too late).
 Sprite overflow
  3.Timing: #2 (ovf not set on X=0).
  4.Obscure #2 (2nd byte of sprite not treated as its Y).
 NEStress: *all* sprite tests fail w. "new" PPU
  (collision works under old).

 MMC3 IRQ counter:
  1.Clocking: #3 (should decr. on $2006 A12 toggle).
  2.Details: #2 (doesn’t work when loaded w. 255)
  3.A12_clocking: #4 ($2006 write, should clock turning 1)
  4.Scanline_timing: passed
  5.MMC3_rev_A (Crystalis): #2
   (IRQ should be set when reloading 0 after clear)
  6.MMC3_rev_B (SMB3, Mega Man 3): #2
   (should reload and set IRQ every clock when reload is 0)

 PAL APU
  01.len_ctr, 02.len_table, 10.len_halt_timing: passed
  03.irq_flag: #6, $00 or $80 ==> $4017 doesn’t affect flag
  04.clock_jitter: frame irq too soon
  05.len_timing_mode0, 06.len_timing_mode1: #2, too soon
  07.irq_flag_timing: #2 (flag 1st too soon)
  08.irq_timing: #2 (IRQ, < min. 29833cc after 0==>$4017)
  09.reset_timing (9-12, @$4017==0): #3 (4th step too soon)
  11.len_reload_timing: #5
   (reload during len clock when ctr>0 should be ignored)

 squire_timer_div2 still renders low pitch rect at start
instead of lasting high.

== New bugs
 No \n for "Old"/"New" " PPU loaded" in message log.
 "Save Snapshot As..." displays "Snapshot Saved." on cancel.
 NTSC 2x filter doesn’t interlace properly (or at all), the
whole frame at 60.1 Hz.  It also doesn’t handle emphasis or
track the per-3 color burst shift consistently.

-- Pains
 Get a .deb file of zeros every time you open a cart in an
archive -- can’t turn this off.
 Load "Error!" in archive load cancel.
 H/W accel. (smooth) streching faster than app’s own blocky


=== 2012.03.18 "Wolfenstein 3D First Encounter" tests,
 various Mac emulators, under Mac OS 7.5 and 8.1, JIT on/off.
  I suspected the MIDI driver... Update: it’s the FPU.

 Common bug, 68K-side: Bad video rendering, bad slope-to-angle
table generated.

-Basilisk II build 2010.01.15 (2.06MB):
  Sound always runs continuously (no stops w/o channel close).
  This emulator build fails to reallocate the frame buffer
   on restart--I’d recommend using the 2008 build instead.
  Moving the player into a corner (or really anywhere far)
   crashes.

 I got plenty of type-3 errors (illegal instruction) with
  this emulator -- bad return addresses.

-SoftMac:
  Verrry slow fades, bad colors; must switch to Finder
   to correct this.
  Other emulation problems:
   No sound (crashes when on - chime only).
   The emulated system hangs on disk image mount (DiskCopy
   driver hangs!), requiring a "force quit" (cmd-opt-esc).

-SheepShaver (OS 8.1):
  No emulation problems except w. immediate sound commands
 using later build.
  Performance can be very jerky (and on a fast machine:
 dual-2.593GHz Pentium 4).

-Basilisk II 2001.07.22 (1.43MB)
  Right side streched (math error), but left side of window
 renders correctly when loaded under good circumstances.
  Again, music--even sound off, you still get gfx glitches.
  Bad updates produce diagonally-scewed pixel lines (bad
 rowbytes), title screen at times even.
  Crash occurs whilst going through the menubar to File menu.

  Unlike 2010+, sudden channel flushing/rebuffering, as
 needed for virtual automatic weapons, works.  However, the
 implementation drifts.
  Instead of late sound, video that gradually becomes later:
 "Mac OS 8:Extras:QuickTime Sample:The Old Apartment - BNL".
 That problem doesn’t seem to exist in the 2008 build.

-Mini vMac:
  WOLF: unimplemented A-trap error (no 32-bit QuickDraw for
 _GetMainDevice, just bef. "32 bit QuickDraw INIT not
 installed"...).  Older ROM: 32bqd will not install, even as
 I’ve been using OS 7.5.5 on this emulator - f**kin’ fast as
 hell on "all-out" speed - Even "X-Mas Lemmings" runs!...
 without a menubar most of the time (type P for Pause).  I’m
 actually surprised by how much s/w actually works, with only
 a few fix-able hiccups (I’ve been making code
 68000-compatible!).  MPW Shell executes ’020+ code bef. the
 dialog saying "This version of MPW Shell requires"...


=== System notes (not entirely the emulator’s fault)

 Nixing presumably unused Virtual Desktop files behind the
Finder’s back caused this never-ending error:
"The disk My Computer cannot be used because it is not found."

 Mac OS 8.x 68K often fails to maintain the translated desktop
pattern under high direct bit depths--most notably 24/32-bit.
Garbled desktop updates, after drags, noise under icons.


=== Compatibility comprehensive

-MacsBug

B2 v1.0 (2006): startup abort().
SoftMac: startup hang.
SheepShaver: black screen and abort() on entry/exception.

Mini_vMac
 Limited virtual h/w support; do the wrong thing and you’ll
get a dead screen (cursor slowly flashes, but no input).

B2-20100115, B2-20080723
 Int-7 hang (60Hz regardless of interrupt was a stupid idea).
 No (significant) update in reentry (DebugStr(...";g");).

B2 v0.9 (2001)
 Partial, 68040-only, OS 7.5.x-only support.
 Scattered red ("bad") coloring for black text.
 Bad data/code updates, and MacsBug code got overwritten by
any code--making code read-only requires MMU support.
 Attempts to break at suspected code unsuccessful.
 Turn off: JIT makes the command-line key rate too fast.
 The JIT compiler may make emulation unstable in certain
areas.  That bug was fixed,
but jitfpu (still) breaks MrC floating-point parsing.

-ImagNSpect Lite 4.2 -- FPU instruction-heavy
  Works perfectly in SoftMac.
  Crashes in Basilisk II: packed BCD (.P) not implemented!
 SheepShaver: no "Continue" in error dialog.
 Fixed using SoftwareFPU, and completely under ’020/30.
 Mini vMac enters debugger at 4E74/RTD instruction (’020+).
 See 2012/03/Mini_vMac.txt for further tests w. this emulator.

-Norton Utilities
 Usually crashes later-release B2 with JIT on.

-MacFCEU 0.7.6 (required testing -- my own project)
 2008 B2 handles sound correctly; 2010’s delayed copy produces
mid-write garble, expecting the sound to be valid.  All are
too slow for real-time - older versions offer continuous
playback at 8KHz x 25% like the 68LC040 machine, but only
50-100% faster; needs to be 1000% faster.

-MPW Shell
  Running on Sheepshaver requires Mac OS 8.x+ to launch
 (StdCLib built-in, solving the message of it missing), but
 after that the emulator crashes when really doing anything if
 you don’t have enough of the OS installed.

-American Heritage Dictionary
 Crashes Basilisk II under OS 8+ (JIT).


=== (exact date of tests unknown) - MESS 0.144b, 0.145u3b

-After countless hours trying to get anything up and running
with the difficult-to-work-with system, I only got NES
emulation up.  And it’s buggy, but not as bad as NESticle.
 I still can’t get any form of Mac OS running.