———————— 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.