Mini vMac är en öppen källkod, fri och plattforms grafisk programvara som implementeras i C och utformad från offset för att fungera som en emulator för Macintosh Plus datorsystemet som skapades av Apple och körde på Linux, BSD, Microsoft Windows och Mac OS X operativsystem.
Som en av de tidigaste Macintosh-maskinerna som designats av Apple kör Macintosh Plus bara gammal Mac-programvara, som förstås inte fungerar på de senaste Macintosh-datorerna. Därför hjälper Mini vMac-programvaran till att bevara historiken. Den har utformats för att vara så enkel att använda, bärbar och enkel som möjligt.
Komma igång med Mini vMac
För att använda Mini vMac-programmet på ditt GNU / Linux-system, se till att du laddar ner det binära paketet som motsvarar datorns hårdvaruarkitektur, spara arkivet någonstans på din dator, packa upp det och dubbelklicka på körbarheten .
Programmet öppnas och meddelar dig att en ROM-bild av Macintosh Plus-systemet inte kan hittas. Det betyder att du också måste få en vMac.ROM-fil (mer information finns på projektets hemsida) och placera den i samma mapp som Mini vMac-körbar.
När du har fått Macintosh Plus ROM-bilden måste du stänga programmet och öppna det igen. Om ROM-filen är giltig startar systemet automatiskt och låter dig använda det som att du skulle använda något annat virtualiserat operativsystem.
Körs på alla vanliga operativsystem
Den här mjukvaran är faktiskt en snurrning av vMac-applikationen, som inte har uppdaterats under många år. För din bekvämlighet distribueras det som förbyggda binära paket för ovannämnda operativsystem, som stöder både 64-bitars (x86_64) och 32-bitars (x86) instruktionsuppsättningar.
Programkällans källkod är också tillgänglig för nedladdning, för dem som vill optimera programvaran för en specifik maskinvaruplattform eller operativsystem.
Vad är nytt i den här utgåvan:
- Dagens Mini vMac 3.5.8 uppdaterar den stabila versionen för att lösa ett problem på PowerPC OS X och fixar också ett problem som påverkar varianteringen. Mini vMac 3.5.8 på andra plattformar än PowerPC OS X ('mach') och x86-32 OS X ('imch'), ska vara identisk med Mini vMac 3.5.7, förutom versionsträngen och modifieringsdatumet.
- Det rapporterades att "Mini vMac 3.5.7 kommer inte att köras på PPC G3-system". Det visar sig att GCC-flaggan "-macacx-version-min" bör anges för alla filer som sammanställts, inte bara plattformsberoende kod. Det påverkar saker som den nödvändiga processorn. Att göra denna ändring råkar inte ha någon effekt på Mini vMac för x86-64 OS X, det finns viss effekt för x86-32 OS X, och den största effekten är för PowerPC.
Vad är nytt i version 3.3.3:
- Nya funktioner i standardkompilering:
- Fler operativsystem stöds officiellt av Mini vMac:
- FreeBSD på x86-32 (Använda "-t fbsd" i byggsystemet)
- FreeBSD på x86-64 ("-t fb64")
- OpenBSD på x86-32 ("-t obsd")
- OpenBSD på x86-64 ("-t ob64")
- NetBSD på x86-32 ("-t nbsd")
- NetBSD på x86-64 (& quot; -t nb64 ")
- Dragonfly BSD på x86-32 ("-t dbsd")
- Dragonfly BSD på x86-64 ("-t db64")
- OpenIndiana på x86-32 ("-t oind")
- OpenIndiana på x86-64 ("-t oi64")
- Linux på ARM ("-tarm")
- Linux på SPARC ("-t lspr")
- Minix 3.2 ("-t minx")
- Dessa portar anpassar samma X Window-kod som Linux-porten, och bör ha samma funktion, förutom att det för närvarande inte är ljud för någon. X86-64-versionerna är för närvarande långsammare, eftersom det saknas monteringssprog tweaking och bör inte användas om x86-32-versionerna fungerar.
- X-versionerna kan nu spela ljud med hjälp av API: n för Open Sound System (OSS). (Vanligtvis använder du kompatibla implementeringar på varje operativsystem, i stället för den officiella OSS-enheten.) Ljud är nu aktiverat som standard på FreeBSD och NetBSD. Ljudet kompilerar utan problem (med "-ound 1") på Dragonfly BSD och OpenIndiana, men jag har inte kunnat testa på dessa ännu. Att få ljud på Dragonfly BSD verkar kräva lite manuell inställning. OpenIndiana verkar inte ge något ljud alls i VMware Fusion. Ljud kompilerar också utan problem på OpenBSD, men det fungerar inte - inställning av önskad samplingsfrekvens misslyckas. Minix verkar inte ha stöd för ljud än. Det är också möjligt att använda OSS API på Linux, med hjälp av den nya "-snd-api" bygga systemalternativ.
- X-versionerna kommer nu att försöka se i mappen innehåller programmet för ROM-bilden, som Macintosh och Windows-versionen gör. (Och även för disk1.dsk och så vidare.) Om applikationskatalogen inte kan bestämmas, används den aktuella katalogen som tidigare. Detta implementeras för Linux, FreeBSD, NetBSD, Dragonfly BSD och OpenIndiana, men inte OpenBSD och Minix.
- X-versionerna har nu ett nytt kommandoradsalternativ "-d [directory_path]", där [directory_path] används istället för programkatalogen när man letar efter ROM-bilden och disk1.dsk och så vidare filer .
- X-versionerna har nu ett nytt kommandoradsalternativ "-n [app_name]", där [app_name] används istället för programnamnet för titeln på Mini vMac-fönstret.
- X-versionerna stöder nu en central ROM-mapp som Macintosh och Windows-versionerna har. Om "~ / .gryphel / mnvm_rom" existerar, Mini vMac kommer att titta där för ROM-bilden. Om det inte finns, kommer det att se i programkatalogen. (Och alternativet -r-kommandoraden kommer att åsidosätta båda.)
- Ändrat beteende i standardkompilering:
- Att dra den emulerade skärmen till den verkliga skärmen är effektivare. När färgdjupet är 4 bitar eller mindre, istället för att konvertera varje pixel, finns det ett bord med 256 poster för att konvertera en byte åt gången. Det är också mer försiktig om att bara konvertera pixlar i rektangeln som begränsar det ändrade området, snarare än hela skärmen.
- Linux-versionen laddar ALSA-biblioteket dynamiskt för att spela upp ljud så att Mini vMac fortfarande körs, utan ljud, även om ALSA inte är installerat. (Denna teknik sågs i SDL.) Således är Linux-versionen nu kompilerad med ljud, som matchar Mac- och Windows-versionerna.
- I Linux-versionen kallas inte snd_pcm_delay när man spelar ljud med ALSA. Förseningen tills ett prov spelas är inte riktigt relevant. Vad Mini vMac behöver veta är det dags att buffra underkörning. Så Mini vMac ser nu på buffertstorlek minus tillgängligt ledigt utrymme i bufferten, vilket kan vara mer användbart för att förhindra buffertunderkörning samtidigt som latentiteten minimeras.
- X-versionerna använder nu rådgivande lås för att vägra att öppna för att skriva en skivavbildning som har öppnats för skrivning av en annan kopia av Mini vMac. Tidigare kan X-versionerna av Mini vMac öppna en redan öppnad skivavbildning, som sannolikt skadar bilden. Om Mini vMac bara kan öppna en skivavläsning, t.ex. eftersom användaren har låst filen, används inte det rådgivande låset och flera kopior av Mini vMac kan använda den.
- X-versionerna försöker nu använda programnamnet för att ställa in titeln på dess fönster, som Macintosh och Windows-versionerna har. (Om applikationsnamnet inte kan bestämmas, används "Mini vMac" som tidigare.) Detta hittas samtidigt som applikationskatalogen och är implementerad för samma operativsystem.
- Kommandoradsargument skannas nu innan du letar efter disk1.dsk och så vidare på filer. Detta är nödvändigt för det nya "-d" möjlighet att arbeta och har biverkningen att om diskbilderna specificeras på kommandoraden kommer de att öppnas först. Om det finns bilder på kommandoraden, kommer Mini vMac inte att bry sig om att leta efter disk1.dsk alls.
- "-l" (eller "/ l" på Windows) kommandoradsalternativet tas bort. "-hastigheten z" alternativ till byggsystemet bör användas istället. Kommandoradsalternativet var från innan byggsystemet fanns, och beslutet fattades för att gynna byggtidsmöjligheter över alternativen för körtid.
- Felkorrigeringar i standardkompilering:
- Windows-versionen kartlägger nu Enter-tangenten på det numeriska tangentbordet till Macintosh Enter-tangenten. Det kan nu skilja den nyckeln från Enter-tangenten på huvudtangentbordet, som är mappad till Macintosh Return Key. Det gick inte att skriva in Macintosh Enter-tangenten tidigare. Tack vare "Alex" för att påpeka detta problem.
- I Windows-versionen, i helskärmsläge, är kontrollen för om en nyckelfunktion är en auktoriserad nyckel felaktig. Så potentiella nycklar kunde ha blivit ignorerade när de inte borde ha varit. Jag har tagit bort kontrollen, eftersom det inte är klart hur man gör det på rätt sätt (när man använder en "tangentbordskrok med låg nivå"). Detta påverkar inte Macintosh-emulering, eftersom det finns en extra kontroll för överflödiga händelser. Det kan påverka kontrollläget, till exempel när du håller ner Control-M.
- Windows-versionen svarar nu på WM_QUERYENDSESSION-meddelandet, så att Mini vMac klagar och stoppar avstängningen om du försöker stänga av datorn med Mini vMac (med monterade diskbilder).
- I Linux-versionen, genom att använda ALSA för att spela ljud, heter snd_pcm_start innan du sätter några ljudprover i ALSA-bufferten. Detta kan orsaka stammar i början, eller enligt en rapport, förhindra att ljudet fungerar alls. Mini vMac väntar nu tills dess privata buffert är full, överför sedan så mycket som passar in i ALSA-bufferten och börjar sedan spela ljud.
- När Linux-versionen är sammanställd för ARM, innehåller den en kontroll att resultatet av snd_pcm_avail_update ser rimligt ut, och om det inte kallas snd_pcm_status_get_avail istället. Detta fungerar runt vad som verkar vara en bugg i Raspbian för Raspberry Pi.
- Den emulerade klockan initialiserades inte korrekt och var endast korrekt efter den första "andra" avbryta.
- Om den emulerade skärmen är för stor för att passa på den riktiga skärmen (när autoscroll är tillgängligt), om området på den emulerade skärmen som har ändrats inte skär det synliga området på den emulerade skärmen, var en ogiltig rektangel används för ritning. Jag upptäckte detta när jag provade Vector Linux 7, som verkar ha några extra felsökningskontroller.
- I osannolika fall kan autoscroll i helskärmsläget inte bläddra för att visa den sista raden av pixlar längst ner eller den sista kolumnen på pixlar till höger.
- Om värddatorn inte är tillräckligt snabb för att Mini vMac ska köras med 1x-hastigheter, skulle Mini vMac inte springa smidigt och pausa i några sekunder med jämna mellanrum. Testet för denna situation var felaktigt, och en byte-disk skulle överfalla. (Har så många räknare så små som möjligt gör det lättare att upptäcka fel som detta.)
- I X-fönsterversioner av Mini vMac används inte en spara dialog när du använder Mini vMac-tillägget för att skapa en fil på värdsystemet, till exempel med ExportFl. Tidigare skulle filen enkelt skapas i programkatalogen med den begärda namnet. Detta var inte säkert, i värsta fall tillåter det att ett program körs i Mini vMac för att ersätta Mini vMac-applikationen. Så nu kommer filer istället att skapas i en mapp med namnet & quot; output & quot; i katalogen som innehåller ansökan. Den här mappen skapas om den inte existerar.
- I en Microsoft Windows-version, om en sökväg till en skivavbildning skickas till Mini vMac på kommandoraden som är längre än vad som är laglig för en sökväg, resulterar ett bufferflöde.
- Windows CE-versionen fick lite ruttning. Den sammanställer nu och arbetar åtminstone på Microsoft Device Emulator med Windows Mobile Version 5.0. Jag har ingen aning om det fungerar på riktig hårdvara. Bryr sig någon (Windows Mobile avbröts och ersattes av Windows Phone.) Den här porten började störa underhållet av den huvudsakliga Windows-versionen, och valet var att ta bort det helt eller göra det underhållbart.
- Nya funktioner som inte är standardinställningar:
- Alternativet för nya byggsystem & quot; -lt & quot; möjliggör Mike Forts LocalTalk-emulering. Det finns för närvarande några begränsningar. Det är bara implementerat för OS X. Det måste köra kommandot "sudo chmod ugo + rw / dev / bpf * & quot; för att tillåta Mini vMac (och alla andra) tillgång till all nätverkstrafik. "-lt" Alternativet kan också leda till att Mini vMac körs i bakgrunden som standard, eftersom Mini vMac inte kan vara en riktig LocalTalk-nod om den inte körs. Och du måste manuellt slå på AppleTalk i väljaren - jag kan ställa in PRAM-flaggarna för att starta med AppleTalk redan, men det fungerar inte korrekt.
- Ett nytt system för byggsystem & quot; -lang pol & quot; väljer en polsk översättning av användargränssnittet av Przemyslaw Buczkowski.
- X-versionerna har initialt stöd för färg (för Mac II-emulering). X-versionen hittills endast stöder 24 bitar "TrueColor", och har några andra begränsningar för formatet. Jag tvivlar på att någonting förutom TrueColor används på moderna maskiner, och så förmodligen inte stöder de andra alternativen. Andra djup som 15, 16 och 32 bitar kan användas, och så ska det antagligen stödjas om jag kan hitta ett sätt att testa dem.
- Ett nytt system för byggsystem "-mf" tillåter ändring av förstoring från standard 2. Till exempel "-mf 3" ställer förstoringen till 3. Alternativet "-mf 1" inaktiverar förstoring (tar bort kontroll-M-kommandot). Förstoringsfaktorn måste vara ett heltal.
- Ändrat beteende inte i standardkompilering:
- Standardfärgdjupet för Mac II-emulering är "-depth 3" istället för "-depth 0".
- För Macintosh II-emulering är AutoSlow nu inaktiverat som standard & quot; -as 0 & quot ;. AutoSlow kan behöva ytterligare justering för att fungera bra med Mac II-emulering.
- I X-versionerna kontrolleras resultaten av fwrite och fread på diskbilder nu för fel, vilket stannar compiler varningar i senaste Ubuntu.
- Buggfixar inte i standardkompilering:
- Lös en bugg i DIVS.L-instruktionen rapporterad av "AP". (En 68020 instruktion som används i Mac II-emulering.)
- Fäst BFFFO-instruktionen, som var helt trasig, som rapporterats av "AP". (En annan 68020-instruktion som används i Mac II-emulering.)
- Bitfältoperationer i ett register använder nu rotera snarare än skift. De valda bitarna kan inte vara angränsande, såsom påpekats av "AP", och bekräftas av dokumentationen. (Bitoperationsfält läggs till i 68020.)
- Bitfältoperationer på minnet försöker nu bara fungera på så många byte som behövs. Tidigare fungerade den alltid på 5 byte, vilket kan ha biverkningar om den körs på en minneskortad enhet, som påpekas av "AP".
- "MoveP.L, Dn" instruktion blandas i ordning för skiftning och maskering, och så var fullständigt trasig, såsom rapporterats av "AP".
- Hacket som tillåter extra stora mängder Video RAM i Macintosh II-emuleringen fungerade inte korrekt eftersom en array som används för adressutrymmeöversättning i CPU-emuleringen inte tilldelades tillräckligt stor. Nu väljer byggsystemet fördelningsstorleken. (Detta problem observerades för 1024x768 med miljontals färger.) Ytterligare detaljer: Varje NuBus-kort får endast 1M adressrum när datorn är i 24-bitarsläge. Och en Mac II verkar brukar rita i 24-bitarsläge. När mer video RAM behövs för de begärda kompileringstidalternativen använder Mini vMac adressutrymme från intilliggande NuBus-kortplatser.
- Fast "-min-extn" byggalternativ i Linux-versionen.
- Bygg system:
- Tilläggsbyggnadssystemalternativ "-api cco" att använda Apples kakao API för OS X i stället för det avkodade Carbon API. Men Cocoa-porten i Mini vMac anses ännu inte vara helt redo att bli officiellt stödd, och så används Carbon-versionen fortfarande.
- Tilläggsbyggnadssystemalternativ "-api sdl" att använda Simple DirectMedia Layer 1.2 API. Detta tillsattes som en stegningssten till Cocoa-porten - genom att kombinera källkoden för SDL med källkoden för en SDL-port i Mini vMac och sedan ta bort allt som inte behövdes, och sedan mycket städning tills en ursprunglig infödd kakao hamnen uppstod. Dock kan SDL-porten användas som port till andra plattformar som stöds av SDL. Men detta är inte (ännu) officiellt stöd.
- Tilläggsbyggnadssystemalternativet "-t mx64" för Apples X11-implementering på x86-64. (Tidigare stöddes x86-32 och PowerPC.)
- Tilläggsbyggnadssystemalternativet "-t cygw" för Cygwin / X för Microsoft Windows. Cygwin kan också användas för att kompilera den vanliga Microsoft Windows-versionen med "-t wx86 -e cyg".
- Tilläggsbyggnadssystemalternativet "-t irix" för IRIX av Silicon Graphics, Inc., tack vare John Perkins.
- MinGW kan användas för att kompilera Mini vMac med alternativ för byggsystem "-t wx86 -e mgw". Eftersom Bloodshed Dev-C ++ är baserat på MinGW, "-t wx86 -e dvc -cl" skulle tidigare ge liknande resultat.
- Ändrad ordning av argument till länkkommandot när man bygger Linux-versionen. Det visar sig att det finns en konventionell ordning för hur bibliotek ska specificeras, vilket jag inte visste eftersom jag inte kom över en länkare som brydde sig till Ubuntu 11.10.
- Byggsystemet bör nu fungera korrekt i andra emulatorer som SheepShaver. Det rapporterades anonymt att byggsystemet skulle krascha emulatorer. Testet för huruvida byggsystemet kördes i Mini vMac (så att det resulterande arkivet kan exporteras till värden) var inte tillräckligt bra.
- Byggsystemet undertrycker nu varningsmeddelanden som genererades vid sammanställning av Macintosh II-emuleringen med Microsoft Visual C ++, tack vare en rapport från William Grana.
Kommentarer hittades inte