2026년 5월 14일 목요일

PAC-M 제작 #3 - 유저롬

PAC 백업용으로 들어있는 플래쉬롬은 8MBytes입니다.

백업에 실제 사용되는 영역은 7MB이구요.

남은 1MB를 유저롬으로 할당해놓았습니다. (정확히는 896KB입니다.)


참고로 제가 만든 기기들이 대부분 8MB 플래쉬롬을 쓰고 있는데요.

ASCII 16K 등의 범용 매퍼로는 4MB밖에 커버가 안되니, 전용의 매퍼를 만들어 쓰고 있습니다.

이번에는 MSXdev에서 몇몇 게임들이 사용한 ASCII16-X를 넣어보았어요.


ASCII16-X는 고용량 롬 카트리지를 위해, 뱅킹 레지스터가 8bit에서 12bit로 늘어났습니다.

최대 64MB의 게임 롬팩을 만들 수 있다는 얘기죠.


만약 896KB를 초과하는 롬을 다운로드하면, PAC 백업 영역을 사용하지 못하게 됩니다.

PAC-M을 PAC처럼 써야한다는 의미입니다 ㅎ.ㅎ

따라서 이 때는 PACM /S 명령으로 데이터 전체를 백업한 후, 게임롬을 넣어서 쓰고요.

다시 원래의 PAC-M 모드로 돌아가려면, PACM /L 명령으로 데이터를 원복하면 되겠습니다.


유저롬을 넣더라도 그냥 부팅하면 PAC 카트리지로 동작합니다.

유저롬을 실행하려면, 부팅 시 커서 DOWN 키를 누르고 있으세요.

커서 RIGHT를 함께 누르면 turboR 고속모드로 전환되니 참고하시고~


유저롬 크기가 896KB 이하라면, PAC-M 기능을 그대로 유지하니까...

자낙EX(128KB), 알레스트(256KB), R-TYPE 스크롤패치(512KB), 프리뷰 나오는 멀티롬(896KB)

등을 활용하면 좋습니다요~ ㅎ.ㅎ



요약하면

- 896KB 이하의 ASCII 16K 메가롬을 다운로드해서, PAC 멀티플렉서 기능과 유저롬 기능을 함께 활용

- 더 큰 용량의 롬을 유저롬으로 등록하면, 일반 PAC (8KB) 모드로 동작함

- PACM /L 명령으로 기본 멀티플렉서 모드로 원복 가능



아래는 기본으로 들어있는 '프리뷰가 나오는 멀티롬'입니다.




8MB 용량의 네온 호라이즌 롬을 다운로드 하는 모습입니다.




네온 호라이즌 게임이 실행되었네요!




만약 대용량 유저롬을 넣어서 쓰는 경우는, PAC-M의 데이터 관리 기능은 정지됩니다.

PACM /V 등의 명령 실행 시, 아래처럼 에러 메시지가 나와요.

원래의 PAC-M 모드로 돌아가려면, PACM /L 명령으로 데이터를 복원해야 합니다!




그럼, 다음편에서 이어지겠습니다! ㅎ.ㅎ


2026년 5월 13일 수요일

PAC-M 제작 #2 - PAC 데이터 관리

MMCSD.COM으로 게임(롬, 디스크)을 실행하면 PAC 데이터 생성, 백업은 자동으로 이루어집니다.

통상적으로는 특별한 관리가 필요하지 않지만, 알고 있으면 좋은(?) 기능을 알려드려요.


먼저 YS2(YS2.DSK 파일)를 실행합니다.

PAC-M의 부트 메시지에서 YS2.DSK라는 이름으로 PAC 데이터가 생성된 것을 볼 수 있네요.



게임 세이브 메뉴에서 S-RAM을 선택하면 PAC으로 세이브됩니다.

재부팅(또는 전원 껐다 켜기) 시, "Syncing...Ok" 메시지를 볼 수 있습니다.

현재 버퍼(FRAM)의 데이터를 FlashROM에 다운로드해서 데이터를 동기화 하는 작업입니다.



DOS2에서 PACM.COM 툴을 이용하면,

현재 플래쉬롬에 저장된 PAC 데이터 파일들을 보거나 삭제할 수 있습니다.


아래는 PACM /V 명령으로 리스트를 출력 후,

PACM YS2.DSK /D 명령으로 FlashROM 내의 PAC 데이터 파일을 삭제하는 모습입니다.



PAC-M 내부에 최대 114개의 PAC 데이터를 생성할 수 있으니, 참고하세요.


그 외, 데이터 전체를 한번에 백업하거나 복원하는 기능도 들어있습니다.


PACM /S 명령으로 백업하면, 약 2MB 용량의 PACM.DAT 파일이 생성됩니다.

PACM /L 명령으로 이 데이터를 복원(로드) 할 수 있어요. 아래 사진 참고요~




그럼, 다음편에서 이어지겠습니다! ㅎ.ㅎ


2026년 5월 11일 월요일

PAC-M 제작 #1 - 여러개의 PAC을 하나로!

[서론]


SLT-Turbo를 쓰면서부터 PAC-V는 본체(GT)의 슬롯에 장착되어 LED 비주얼라이저로 쓰이고 있습니다.

SLT-X에 꽂아서 쓸 PAC(S-RAM) 대용품을 만들까... 생각을 좀 해봤는데요.


PAC을 사용하는 게임들은 약 40개 정도로 그리 많지 않습니다.

하지만, 일단 PAC이 있으면 꽤 편리합니다. 단지 관리하는 것이 상당히 귀찮아요.


데이터가 충돌하지 않도록 각 게임에서 사용되는 데이터 블럭을 기억하는 것도 귀찮고.

경우에 따라서는 디스크에 백업파일(*.PAC)로 백업/복구 하는 과정도 필요하겠습니다요.


.

.

.


그래서, 카트리지 하나로 여러개의 PAC을 쓰는 효과를 내는 기기를 만들어봤습니다.



[본론]


주기능을 간단히 설명하면...

MMC/SD로 게임을 실행할 때, 해당 게임의 이미지(ROM 또는 DSK) 파일을 로딩하게 되는데요.

이 이미지 파일명으로 구분이 되는 PAC 데이터 8KB를 분리해서 생성/관리하는 것입니다.


사용자 입장에서는 그냥 V3, V4로 게임을 실행하는 방법은 동일하지만,

PAC-M은 거기에 맞춰 자동으로 S-RAM 데이터가 스위칭되는 것이죠.

총 114개의 PAC 카트리지가 존재하는 것과 동일한 효과입니다.


실제 보드는 FRAM과 FlashROM의 조합으로 구성됩니다.

FRAM은 런타임 버퍼로 PAC(S-RAM)처럼 동작하고,

FlashROM은 각 게임(파일명)에 맞춰 데이터 백업/복구 하는 용도로 쓰입니다.


PAC-M을 슬롯에 붙박이로 꽂아두면, 편하게 쓸 수 있겠습니다!

제가 일주일 쯤 써보니, 진짜 편하긴 하더라구요.

귀찮은 아자씨들에게 평화로운 게임 환경을! ㅎ.ㅎ/


게임 실행 시, 사용자에게 부가적인 작업을 요구하지 않습니다.

아래 사진은 V4에서 QUINPL.DSK를 실행한 모습인데요.

PAC-M에서는 같은 이름의 PAC 카트리지로 설정되는 것을 볼 수 있습니다.




실제 동작하는 모습은 아래 영상으로 확인해보셔요.




현재 보드는 테스트용으로 만든거라서, 나중에 정식 버전이 나오면 보여드리겠구요.


그럼, 다음편에서 이어지겠습니다! ㅎ.ㅎ