2024년 6월 20일 목요일

PAC-V 제작 #8 - 롬 동작모드 개선

지난 제작 글(#7)이 2016년 8월이었으니까, 거의 8년만에 구조 변경이네요 ㅎ.ㅎ


[서론]


보통 PAC-V에는 FMPAC 롬(BIOS 16KB + 팩커맨더 48KB)을 다운로드해서 씁니다.


만약 PAC-V에서 동작하는 FM BIOS가 다른 S/W와 동작 문제가 발생하면,

부팅 시 P키를 눌러서, Dummy ROM 모드로 구동하면 되구요.


저는 turboR의 슬롯을 개조해서 SLOT 0-1에 PAC-V를 장착하기 때문에,

BASIC 프로그램에서 FM BIOS (MUSIC ROM)루틴을 제대로 쓰지 못합니다.

아시다시피 turboR의 FM BIOS는 본체의 H/W Timer를 사용하며, MIDI까지 통합되어있습니다.


그 때문에, 다른 외부 FM BIOS가 내장 BIOS보다 먼저 동작하는 상황이 발생하면 망하는 거죠. ㅎ.ㅎ

저처럼 turboR SLOT 0-1에 PAC-V를 꽂으면, 본체 내장된 SLOT 0-2의 BIOS보다 우선순위가 높아지니까요.


참고로 FM 내장된 MSX2+ 기종에서는 문제가 생기지 않습니다.

FMPAC의 FM BIOS와 본체 내장 FM BIOS가 같은 코드니까요~

어디까지나 turboR의 SLOT 0-1을 개조해서 사용하는 경우만 해당이 됩니다.


PAC-V에 FMPAC BIOS로 세팅해놓고, 필요할 때마다 P키를 눌러서 Dummy ROM 모드로 변경하는 방식은...

저처럼 Dummy ROM 모드를 주로 쓰는 경우는 꽤 번거로운 작업이 됩니다.

그래서 처음 PAC-V를 개발할 때 부터, FMPAC ROM 대신 그냥 Dummy ROM을 탑재하는 옵션을 넣었죠.

(참고로 이 Dummy ROM은 릴리스 하는 압축파일에 PACV.ROM이라는 이름으로 들어있습니다.)


결국 롬 동작모드는 FMPAC ROM(64KB) 또는 Dummy ROM(16KB), 둘 중 하나를 다운로드 하는 것으로 결정되구요.

FMPAC ROM 모드에서는 FM 사운드 칩(OPLL)이 없는 FMPAC 카트리지처럼 동작합니다.

Dummy ROM 모드에서는 오리지널 PAC 카트리지처럼 인식됩니다요.

물론 LED 비주얼라이저는 롬 모드 상관없이 똑같이 동작하구요.


암튼, 저는 Dummy ROM으로 사용하고 있었죠.

가끔 팩커맨더를 쓰고 싶을 때만 FMPAC.ROM을 다운로드해서 구동합니다.

그리곤 다시 Dummy ROM으로 다운로드ㅋ


.

.

.

그러던 어느날 이것도 좀 귀찮다는 생각이 들더라구요.

게다가 PAC-V 후기형(Blue)에서는 FRAM을 쓰고 있는데, 낭비되는 영역이 아까운 느낌도 있었구요.


롬 모드를 쉽게 전환할 수 있는 방법과 남은 FRAM(또는 SRAM)을 활용하는 방법을 생각해보기로 합니다.



[본론]


1) 롬 동작모드


기존처럼 동작모드가 현재 다운로드 된 ROM의 종류로 결정되는 방식이 아닌,

사용자가 부팅 중 P키를 눌러서 변경하는 방식으로 바뀝니다.


설정된 동작모드는 FRAM(또는 SRAM)에 저장되기 때문에,

전원을 끈 후 다시 켜더라도 모드가 유지됩니다.


그리고 소프트 리셋을 할 때에도 P키를 눌러 모드 변경이 가능합니다.

MMC/SD에서 롬/디스크 게임을 구동할 때 재부팅(소프트 리셋) 되니까, 이 때에도 변경할 수 있습니다.


아래 사진은 부팅 시, 현재 동작모드가 표시되는 모습입니다.

'Op.Mode'가 동작모드를 의미합니다. ㅎ.ㅎ




2) BASIC'n v2.1


PAC-V에서 SRAM 저장용으로 쓸 수 있는 공간은 32KB입니다.

지금까지는 PAC SRAM 8KB만 사용하고 있었습니다.


여기서 16KB를 Dummy ROM 모드 대체용으로 사용합니다.

아무 동작 안하는 것 보다는 쬐금 쓸모있는 프로그램을 넣어두는 게 나을 것 같아서요 ㅎ.ㅎ


근데, 기존 PAC 세이브/로드와 충돌하지 않는 롬 프로그램 중에서 쓸만한 것들이 뭐가 있을까요?

딱히 떠오르는 프로그램이 없네요. BASIC'n 정도밖에는요ㅋㅋ

그렇게 BASIC'n v2.1 롬이 들어가게 되었습니다.


롬 동작모드는 BASIC'n과 FMPAC 2개가 되겠습니다.



4) 2 x PAC


기존 데이터 저장 공간 32KB에서 16KB는 BASIC'n으로 할당되었으니, 이제 16KB가 남았네요.

PAC 8KB 데이터를 두벌을 넣을 수 있도록 해봅니다. PAC 카트리지를 두개처럼 쓰는거죠.


부팅 시, 동작모드와 함께 PAC 번호가 [PAC SRAM #0] / [PAC SRAM #1] 으로 표시됩니다.

아래는 부팅 중 P키를 눌러서 동작모드를 바꿔 본 모습입니다.

커서키 좌우로 선택 후 리턴키를 누르면 적용됩니다.




그럼, 이만... ㅎ.ㅎ/