Mini vMac은 C로 구현되고 Apple, Linux, BSD, Microsoft Windows에서 실행되는 Macintosh Plus 컴퓨터 시스템의 에뮬레이터 역할을하도록 설계된 무료로 제공되는 무료 및 교차 플랫폼 그래픽 소프트웨어입니다. 및 Mac OS X 운영 체제를 지원합니다.
Apple이 설계 한 가장 초기의 Macintosh 컴퓨터 중 하나 인 Macintosh Plus는 최신 Macintosh 컴퓨터에서만 작동하는 오래된 Mac 소프트웨어 만 실행합니다. 따라서 Mini vMac 소프트웨어는 기록 보존에 도움이됩니다. 가능한 한 사용하기 쉽고 휴대 가능하며 단순하도록 설계되었습니다.
Mini vMac 시작하기
GNU / Linux 시스템에서 Mini vMac 응용 프로그램을 사용하려면 컴퓨터의 하드웨어 아키텍처에 해당하는 바이너리 패키지를 다운로드하고 컴퓨터의 어딘가에 보관 파일을 저장 한 다음 압축을 풀고 실행 파일을 두 번 클릭하십시오 .
Macintosh Plus 시스템의 ROM 이미지를 찾을 수 없다는 알림이 열립니다. 즉, vMac.ROM 파일 (자세한 내용은 프로젝트의 홈페이지에서 찾을 수 있음)을 구하여 Mini vMac 실행 파일과 동일한 폴더에 저장해야합니다.
Macintosh Plus ROM 이미지를 얻은 후에는 프로그램을 닫았다가 다시 열어야합니다. ROM 파일이 유효하면 시스템이 자동으로 부팅되며 다른 가상 운영 체제를 사용하는 것처럼 사용할 수 있습니다.
모든 주류 운영 체제에서 실행됩니다.
이 소프트웨어는 실제로 vMac 응용 프로그램에서 분리되었으므로 몇 년 동안 업데이트되지 않았습니다. 사용자 편의를 위해 앞서 언급 한 운영 체제 용으로 사전 빌드 된 바이너리 패키지로 배포되어 64 비트 (x86_64) 및 32 비트 (x86) 명령 세트 아키텍처를 모두 지원합니다.
응용 프로그램의 소스 코드는 특정 하드웨어 플랫폼 또는 운영 체제 용 소프트웨어를 최적화하려는 사용자를 위해 다운로드 할 수도 있습니다.
출시 :
오늘의 Mini vMac 3.5.8은 PowerPC OS X의 문제를 수정하는 안정 버전을 업데이트하고 유사 콘텐츠 서비스에 영향을 미치는 문제를 수정합니다. PowerPC OS X ( 'mach') 및 x86-32 OS X ( 'imch')가 아닌 플랫폼의 Mini vMac 3.5.8은 버전 문자열 및 수정 날짜를 제외하고 Mini vMac 3.5.7과 동일해야합니다.
"Mini vMac 3.5.7 PPC G3 시스템에서 실행되지 않을 것"이라고보고되었다. GCC 플래그 "-mmacosx-version-min"은, 플랫폼에 의존하는 코드뿐만 아니라 컴파일 된 모든 파일에 대해 지정해야합니다. 그것은 필요한 CPU와 같은 것들에 영향을 미친다. 이 변경을하면 x86-64 OS X 용 미니 vMac에는 아무런 영향을 미치지 않지만 x86-32 OS X에는 약간의 영향이 있으며 PowerPC에 가장 큰 영향을줍니다.
버전 3.3.3의 새로운 기능 :
기본 컴파일의 새로운 기능 :
Mini vMac은 공식적으로 더 많은 운영 체제를 지원합니다.
x86-32상의 FreeBSD (빌드 시스템에서 "-t fbsd"사용)
FreeBSD on x86-64 ( "-t-fb64")
x86-32에서 OpenBSD ( "-t obsd")
x86-64상의 OpenBSD ( "-t -t ob64")
x86-32상의 NetBSD ( "-t-nbsd")
x86-64의 NetBSD ( "-t nb64")
Dragonfly BSD (x86-32) ( "-t dbsd")
x86-64상의 Dragonfly BSD ( "-t-db64")
OpenIndiana on x86-32 ( "-t oind")
OpenIndiana on x86-64 ( "-t oi64")
ARM 기반 Linux ( "-t larm")
SPARC 기반 Linux ( "-t lspr")
미닉스 3.2 ( "-t minx")
이 포트는 Linux 포트와 동일한 X Window 코드를 채택하며 현재 일부 포트는 소리가 나지 않는 것을 제외하면 동일한 기능을 가져야합니다. x86-64 버전은 현재 어셈블리 언어가 미세 조정되어 있기 때문에 속도가 느리며 x86-32 버전이 작동하는 경우에는 사용하지 않아야합니다.
이제 X 버전은 Macintosh 및 Windows 버전처럼 ROM 이미지 용 응용 프로그램이 들어있는 폴더를 살펴 봅니다. (또한 disk1.dsk 등의 파일도 마찬가지입니다.) 응용 프로그램 디렉토리를 판별 할 수없는 경우 현재 디렉토리가 이전과 같이 사용됩니다. 이것은 Linux, FreeBSD, NetBSD, Dragonfly BSD 및 OpenIndiana에는 구현되지만 OpenBSD 및 Minix에는 구현되지 않습니다.이제 X 버전에는 "-d [directory_path]"라는 새로운 명령 행 옵션이 있는데, ROM 이미지를 찾을 때 응용 프로그램 디렉토리 대신에 [directory_path]가 사용되고 파일에는 disk1.dsk 등이 사용됩니다.
이제 X 버전에는 Mini-vMac 창의 제목 대신 응용 프로그램 이름 대신 [app_name]이 사용되는 새로운 명령 행 옵션 "-n [app_name]"이 있습니다.
X 버전은 이제 Macintosh 및 Windows 버전과 같은 중앙 ROM 폴더를 지원합니다. "~ / .gryphel / mnvm_rom"이 " 가 있으면 Mini vMac이 ROM 이미지를 찾습니다. 존재하지 않으면 응용 프로그램 디렉토리를 검색합니다. (그리고 -r 명령 행 옵션은 양쪽 모두를 오버라이드 (override)합니다.)
기본 컴파일에서 변경된 동작 :
에뮬레이트 된 화면을 실제 화면에 그리는 것이 더 효율적입니다. 색상 심도가 4 비트 이하이면 각 픽셀을 변환하는 것이 아니라 한 번에 한 바이트 씩 변환하기위한 256 개의 항목이있는 표가 있습니다. 또한 전체 화면이 아닌 변경된 영역을 경계 짓는 사각형의 픽셀 만 변환하는 것이 더주의해야합니다.Linux 버전은 ALSA 라이브러리가 동적으로로드되어 사운드를 재생하므로 미니 vMac은 ALSA가 설치되지 않은 경우에도 소리없이 실행됩니다. (이 기술은 SDL에서 볼 수있었습니다.) 그래서 기본적으로 리눅스 버전은 이제 Mac 및 Windows 버전과 일치하는 사운드와 함께 컴파일됩니다.
Linux 버전에서 ALSA로 사운드를 재생할 때 snd_pcm_delay가 더 이상 호출되지 않습니다. 샘플이 연주 될 때까지의 지연은 실제로 적절하지 않습니다. Mini vMac이 알아야 할 점은 언더런 버퍼링 시간입니다. 따라서 Mini vMac은 이제 버퍼 크기에서 버퍼의 사용 가능한 공간을 뺀 값을 확인합니다. 이는 대기 시간을 최소화하면서 버퍼 언더런을 방지 할 목적으로 더 유용 할 수 있습니다.
X 버전은 자문 잠금 기능을 사용하여 Mini vMac의 다른 사본으로 작성하기 위해 열어 놓은 디스크 이미지를 작성하기 위해 열지 않습니다. 이전 버전의 Mini vMac에서는 이미 열려있는 디스크 이미지를 열어 이미지가 손상 될 수있었습니다. Mini vMac이 사용자가 파일을 잠그기 때문에 읽기 전용 디스크 이미지 만 열 수있는 경우 자문 잠금이 사용되지 않으며 Mini vMac의 여러 복사본에서 사용할 수 있습니다.X 버전은 이제 응용 프로그램 이름을 사용하여 Macintosh 및 Windows 버전과 마찬가지로 창 제목을 설정하려고합니다. (애플리케이션 이름을 결정할 수 없다면, 이전처럼 "미니 vMac"이 사용된다.) 이는 애플리케이션 디렉토리와 동시에 발견되며, 동일한 운영 체제에 대해 구현된다.
disk1.dsk 등을 찾기 전에 명령 줄 인수를 검사합니다. 이것은 새로운 "-d" 옵션을 사용하면 디스크 이미지가 명령 줄에 지정되어 있으면 먼저 열리게된다는 부작용이 있습니다. 명령 줄에 이미지가 있으면 Mini vMac에서 disk1.dsk를 찾지 않아도됩니다.
"-l" (또는 Windows의 경우 "/ l") 명령 행 옵션이 제거됩니다. "- 속도 z" 옵션을 빌드 시스템에 사용해야합니다. 명령 행 옵션은 빌드 시스템이 존재하기 전부터였으며, 런타임 옵션보다 빌드 시간 옵션을 선호하는 결정이 내려졌습니다.
기본 컴파일시 버그 수정 :이제 Windows 버전은 숫자 키패드의 Enter 키를 Macintosh Enter 키에 매핑합니다. 이제는 해당 키와 Macintosh Return 키에 매핑 된 기본 키보드의 Enter 키를 구별 할 수 있습니다. 이전에는 Macintosh Enter 키를 입력 할 수있는 방법이 없었습니다. & quot; Alex & quot;에게 감사드립니다. 이 문제를 지적했다.
Windows 버전에서 전체 화면 모드에서 키 작동 중지 이벤트가 자동 반복 키인지 여부는 올바르지 않습니다. 따라서 잠재적으로 키가 없어야 할 때 무시되었을 수 있습니다. "로우 레벨 키보드 고리"를 사용할 때 정확하게 어떻게해야하는지 명확하지 않기 때문에 수표를 삭제했습니다. 중복 이벤트에 대한 추가 검사가 있으므로 Macintosh 에뮬레이션에는 영향을 미치지 않습니다. Control-M을 누르고있을 때와 같이 Control 모드에 영향을 줄 수 있습니다.
Windows 버전은 이제 WM_QUERYENDSESSION 메시지에 응답하므로, (마운트 된 디스크 이미지를 사용하여) 실행중인 Mini vMac으로 컴퓨터를 종료하려고하면 Mini vMac이 종료를 중지하고 중지합니다.Linux 버전에서 ALSA를 사용하여 사운드를 재생하면 사운드 샘플을 ALSA 버퍼에 넣기 전에 snd_pcm_start가 호출되었습니다. 이로 인해 처음에는 말더듬이가 날 수도 있고 한 보고서에 따르면 소리가 전혀 들리지 않을 수도 있습니다. 이제 미니 vMac은 개인 버퍼가 가득 찰 때까지 대기 한 다음 ALSA 버퍼에 맞게 전송 한 다음 사운드 재생을 시작합니다.
Linux 버전이 ARM 용으로 컴파일 될 때 snd_pcm_avail_update의 결과가 적당하다는 검사를 포함하고 그렇지 않은 경우 snd_pcm_status_get_avail을 호출합니다. 이것은 Raspbian에서 Raspberry Pi에 대한 버그로 보이는 것을 해결합니다.
에뮬레이트 된 클록은 적절하게 초기화되지 않았으며, 첫 번째 "두 번째" 일시 정지.
에뮬레이트 된 화면이 너무 커서 실제 화면에 맞출 수없는 경우 (자동 스크롤을 사용할 수있는 경우), 변경된 에뮬레이트 된 화면의 영역이 에뮬레이트 된 화면의 가시 영역과 교차하지 않으면 유효하지 않은 사각형이 그리기에 사용되었습니다 . Vector Linux 7을 시험해 볼 때 약간의 디버깅 검사가있는 것 같았습니다.드문 경우이지만, 전체 화면 모드에서 오른쪽의 픽셀의 마지막 또는 마지막 행에 픽셀의 마지막 행이 표시되도록 자동 스크롤이 스크롤되지 않을 수 있습니다.
호스트 컴퓨터가 Mini vMac이 1x 속도로 실행하기에 충분히 빠르지 않으면 Mini vMac이 원활하게 실행되지 않아 주기적으로 몇 초 동안 일시 중지됩니다. 이 상황에 대한 테스트가 잘못되어 1 바이트 카운터가 오버플로됩니다. 가능한 한 작게 카운터를 설정하면 이와 같은 버그를 쉽게 감지 할 수 있습니다.
X Window 버전의 Mini vMac에서 Mini vMac 확장을 사용하여 호스트 시스템에서 ExportFl을 사용하여 파일을 만들면 저장 대화 상자가 구현되지 않습니다. 이전에는 파일 이름과 함께 응용 프로그램 디렉토리에 파일이 간단하게 만들어졌습니다. 이것은 안전하지 않았습니다. 최악의 경우 Mini vMac에서 실행되는 프로그램이 Mini vMac 응용 프로그램을 대체 할 수 있습니다. 이제는 파일이 & quot; 출력 & quot;이라는 폴더에 생성됩니다. 응용 프로그램이 들어있는 디렉토리에 있습니다. 이 폴더가 없으면 만들어집니다.
Microsoft Windows 버전에서 명령 줄에서 디스크 이미지의 경로가 경로에 적합하지 않은 Mini vMac으로 전달되면 버퍼 오버플로가 발생합니다.Windows CE 버전은 조금 썩었습니다. 이제 컴파일되어 Windows Mobile 버전 5.0이 설치된 Microsoft Device Emulator에서 작동합니다. 나는 그것이 실제 하드웨어에서 작동하는지 전혀 모른다. 아무도 신경 안 쓸까? (Windows Mobile은 단종되고 Windows Phone으로 대체되었습니다.)이 포트는 기본 Windows 버전 유지를 방해하기 시작했으며 선택을 완전히 제거하거나 유지 보수 할 수 있도록했습니다.
기본적으로 컴파일되지 않는 새로운 기능 :
새로운 빌드 시스템 옵션 "-lt" Mike Fort의 LocalTalk 에뮬레이션을 활성화합니다. 현재 몇 가지 제한 사항이 있습니다. OS X 용으로 만 구현됩니다. "sudo chmod ugo + rw / dev / bpf *"명령을 실행해야합니다. Mini vMac (및 다른 모든 사람)이 모든 네트워크 트래픽에 액세스 할 수 있도록 허용합니다. "-lt" 옵션을 선택하면 Mini vMac이 실행되지 않는 경우 적절한 LocalTalk 노드가 될 수 없기 때문에 Mini vMac이 기본적으로 백그라운드에서 실행됩니다. 그리고 선택기에서 수동으로 AppleTalk를 켜야합니다 - 이미 AppleTalk로 부팅하도록 PRAM 플래그를 설정할 수 있지만 제대로 작동하지 않습니다.
새로운 빌드 시스템 옵션 "-lang pol" Przemyslaw Buczkowski가 사용자 인터페이스의 폴란드어 번역을 선택합니다.X 버전은 색상 (Mac II 에뮬레이션의 경우)에 대한 초기 지원을 제공합니다. X 버전은 지금까지 24 비트 "TrueColor"만을 지원하고 포맷에 몇 가지 다른 제한 사항을 가지고 있습니다. TrueColor 이외의 다른 것들은 최신 기계에서 사용되지 않으므로 아마도 다른 옵션을 지원하지 않을 것입니다. 15, 16 및 32 비트와 같은 다른 깊이가 사용될 수 있으므로이를 테스트 할 방법을 찾을 수 있으면 지원해야합니다.
새로운 빌드 시스템 옵션 "-mf" 배율을 디폴트 2로부터 변화시키는 것을 허용한다. 예를 들어, "-mf 3" 배율을 3으로 설정한다. 옵션 "-mf 1" 배율을 비활성화합니다 (Control-M 명령 제거). 배율 인수는 정수 여야합니다.
변경되지 않은 동작이 기본 컴파일되지 않음 :
Mac II 에뮬레이션의 기본 색상 깊이는 "-depth 3"입니다. "-depth 0"대신에 "-depth"를 사용한다.
Macintosh II 에뮬레이션의 경우 AutoSlow가 기본적으로 "-as 0"으로 비활성화됩니다. AutoSlow는 Mac II 에뮬레이션에서 잘 작동하려면 약간의 튜닝이 필요합니다.
X 버전에서는 디스크 이미지의 fwrite 및 fread 결과에 오류가 있는지 확인되므로 최근 우분투에서 컴파일러 경고가 중지됩니다.
버그 수정은 기본적으로 컴파일되지 않습니다 :& quot; AP & quot;에 의해보고 된 DIVS.L 명령어의 버그가 수정되었습니다. (Mac II 에뮬레이션에서 사용 된 68020 명령어.)
& quot; AP & quot;에 의해보고 된대로 완전히 깨진 BFFFO 명령을 수정했습니다. (Mac II 에뮬레이션에서 사용 된 또 다른 68020 명령어.)
레지스터의 비트 필드 연산은 이제 교대가 아닌 회전을 사용합니다. 선택된 비트는 "AP"에 의해 지적 된 바와 같이 인접하지 않을 수 있고, 문서에 의해 확인 될 수있다. (비트 연산 필드는 68020에 추가되었습니다.)
메모리의 비트 필드 연산은 이제 필요한만큼의 바이트 만 연산하려고합니다. 이전에는 항상 5 바이트로 동작했으며, 이는 "AP"에 의해 지적 된 바와 같이, 메모리 매핑 된 장치에서 동작하는 경우에 바람직하지 않은 영향을 줄 수있다.
"MoveP.L, Dn" 명령은 "AP"에 의해보고 된 바와 같이, 시프 팅 및 마스킹의 순서를 뒤섞었고 완전히 파손되었다.Macintosh 에뮬레이션에서 주소 공간 변환에 사용 된 배열이 충분히 할당되지 않았기 때문에 Macintosh II 에뮬레이션에서 많은 양의 비디오 RAM을 허용하는 해킹이 제대로 작동하지 않았습니다. 이제 빌드 시스템이 할당 크기를 선택합니다. (이 문제는 수백만 가지 색상의 1024x768에서 관찰되었습니다.) 세부 정보 : 컴퓨터가 24 비트 모드 일 때 각 NuBus 카드는 1M의 주소 공간 만 확보합니다. 그리고 Mac II는 대개 24 비트 모드로 그려집니다. 요청 된 컴파일 시간 옵션에 더 많은 비디오 RAM이 필요한 경우 Mini vMac은 인접한 NuBus 슬롯의 주소 공간을 사용합니다.
고정 "-min-extn" 리눅스 버전에서 빌드 옵션.
시스템 구축 :
빌드 시스템 옵션 "-api cco"를 추가했습니다. Apple의 Cocoa API (비추천 된 Carbon API 대신)를 사용하십시오. 그러나 Mini vMac의 Cocoa 포트는 공식적으로 지원 될 준비가 아직되어 있지 않으므로 Carbon 버전이 여전히 사용됩니다.빌드 시스템 옵션 "-api sdl"을 추가했습니다. Simple DirectMedia Layer 1.2 API를 사용합니다. 이것은 코코아 포트의 디딤돌로 추가되었습니다. SDL 용 소스 코드와 Mini vMac의 SDL 포트를 결합한 다음 필요하지 않은 것을 모두 제거한 다음 최초의 원시 코코아까지 많은 청소를합니다. 포트가 나타났다. 그러나 SDL 포트는 SDL에서 지원하는 다른 플랫폼으로 포팅 할 때 그대로 사용할 수 있습니다. 그러나 이것은 (아직) 공식적으로 지원되지 않습니다.
빌드 시스템 옵션 "-t mx64"를 추가했습니다. x86-64에서 Apple의 X11 구현 (이전에는 x86-32와 PowerPC가 지원되었습니다.)
빌드 시스템 옵션 "-t cygw"를 추가했습니다. Cygwin / X for Microsoft Windows 용. Cygwin은 또한 "-t wx86 -e cyg"를 사용하여 일반 Microsoft Windows 버전을 컴파일하는 데 사용될 수 있습니다.
빌드 시스템 옵션 "-t irix"를 추가했습니다. Silicon Graphics, Inc.의 IRIX는 John Perkins에게 감사드립니다.
MinGW를 사용하여 빌드 시스템 옵션 "-t wx86 -e mgw"을 사용하여 Mini vMac을 컴파일 할 수 있습니다. Bloodshed Dev-C ++은 MinGW를 기반으로하기 때문에, "-t wx86 -e dvc -cl" 이전에는 비슷한 결과가 나타납니다.Linux 버전을 빌드 할 때 link 명령의 인수 순서가 변경되었습니다. 우분투 11.10까지 신경 써야했던 링커에 대해 알지 못했기 때문에 라이브러리를 지정해야하는 일반적인 순서가 있습니다.
SheepShaver와 같은 다른 에뮬레이터에서 빌드 시스템이 올바르게 작동해야합니다. 익명으로 빌드 시스템이 에뮬레이터를 충돌시킬 것이라고보고되었습니다. 빌드 시스템이 Mini vMac에서 실행되고 있는지 (결과 아카이브가 호스트로 내보낼 수 있도록) 테스트가 충분하지 않았습니다.
빌드 시스템은 이제 Microsoft Visual C ++로 Macintosh II 에뮬레이션을 컴파일 할 때 생성 된 경고 메시지를 표시하지 않습니다. William Grana의 보고서 덕분입니다.
댓글을 찾을 수 없습니다