Just a Blog

[MiSTer FPGA] Apple II 코어에서 floppy disk write를 지원하기 위해 'Floppy Emu'를 적용한 사례 발견 본문

Game

[MiSTer FPGA] Apple II 코어에서 floppy disk write를 지원하기 위해 'Floppy Emu'를 적용한 사례 발견

wehong 2022. 6. 2. 01:45

현재 MiSTer의 Apple II 코어가 가진 큰 아쉬운 점 중 하나는, 코어에서 사용되는 플로피 디스크 이미지에 쓰기(write)가 되지 않는다는 점이다. 플로피 디스크 쓰기가 안되니 플로피 디스크로 구동한 게임에서 저장(save)을 할 수 없고, 이에 따라 현재의 Apple II 코어에서 플로피 디스크로 구성된 RPG 게임을 제대로 플레이 하기 어려운 상황이다. 물론 하드 디스크 이미지에 대해서는 쓰기가 가능하지만, 매우 다양한 종류의 Apple II 게임이 현재에도 플로피 디스크 이미지로만 구성되어 있다.

 

Apple II가 다른 레트로 컴퓨터들에 비해 플로피 디스크 처리가 어려운 이유는, 플로피 디스크에 대한 제어를 플로피 디스크 자체가 아니라 Apple II 쪽에서 수행하기 때문일 것이다. Apple II의 'Disk II'는 장비의 비용을 낮추기 위해 Apple II에서 직접 제어를 하는 구조로 만들었다고 한다. 쉽게 표현하면 Apple II가 플로피 디스크 장비에게 행하는 일의 수준은, '플로피 디스크에 기록된 파일들의 정보를 보내줘'의 수준이 아니라 '디스크 드라이브의 헤더를 0번 트랙의 위치로 옮겨'의 수준인 것이다. 그렇다 보니 현대의 ODE 처럼 매체의 데이터 내용만 보내면 안되고 플로피 디스크의 물리적 구조 단위로 데이터를 처리해야 한다.

 

최근 misterfpga.org 사이트에서, 플로피 디스크 이미지 중 NIB 파일에 대해서는 쓰기가 가능하다고 하는 Apple II 코어 수정본이 소개되었다. 하지만 많은 사람들의 환영과 기대에도 불구하고 현재 전반적이 성능과 안정성 문제 때문에 사용자들이 사용을 보류하고 있는 듯 하다.

 

그러다가 개인적으로 Apple IIc 실기를 사용하면서 갑자기 생각이 떠 오른 것이 있었는데, '만약 MiSTer의 Apple II 코어에서 GPIO 또는 User I/O 포트를 통해 Floppy Emu와 연결할 수 있다면 플로피 디스크 쓰기가 가능하겠는데?'라는 생각이었다. Floppy Emu는 마이크로SD 카드에 있는 플로피 디스크 이미지에 대해 디스크 드라이브의 물리적 처리를 모의하고 있으며, 플로피 디스크 이미지에 대해 쓰기 까지 지원하고 있었기 때문이다.

 

그래서 검색을 해 봤더니 역시 해외에서 이미 시도한 사례를 찾을 수 있었다.

 

My solution to implementing write support on the Apple II core

Posted in r/MiSTerFPGA by u/joviance • 27 points and 9 comments

www.reddit.com

 

 

 

Apple II의 플로피 디스크 드라이브가 복잡하기 때문에, 이런 방식으로 개선이 되는 것이 더 바람직 할 것 같다. 물론 Apple II의 디스크 컨트롤러 보드에 해당하는 부분을 코어에 넣어야 하고, Floppy Emu를 연결할 I/O 포트 여분이 있어야 할 것이다. 

Comments