어제 GRUN v1.1 동작영상 찍으면서 생각해본 것인데요.
메가롬팩 게임도 잘 굴려보면, 상태저장/복구가 가능할 것 같다는 생각이 들었습니다.ㅋ
몇가지 추가로 구현이 필요하지만 MSX1 용 메가롬팩은 가능할 것 같네요.
참고로 MSX2 용 게임은 VRAM 128KB 전체 백업해야되는 문제랑,
VDP 레지스터 몽땅 백업해야 되는 문제가 있어서 불가능 확률 99%입니다.ㅋ
VDP 레지스터의 경우 분명히 게임 내에서는 shadow 레지스터 처럼 램에 백업을 해놓겠지만,
해당 위치를 알수가 없으니 다시 복구가 불가능합니다.
그리고 팔레트 레지스터는 램에 저장안할 확률이 높고요.
암튼, MSX1용 메가롬팩으로 제한을 합니다.
메가롬은 메모리에서 실행하는게 불가능하니, MMC/SD의 멀티롬 또는 SCC메가플래쉬롬 등이 있어야겠군요.
문제는 메가롬 매퍼 레지스터를 백업하는 방법인데,
이것도 게임롬의 매퍼 처리하는 루틴을 패치하면 가능합니다.
FLASHMAN의 경우 매퍼 패치를 필수로 해야되기 때문에 별로 어려운건 아닙니다.
그러니까 멀티롬으로 실행되는 게임은 일단 다 된다고 보시면 되겠네요.
매퍼 레지스터는 GRUN 처럼 BIOS를 램에 올린후 후반 영역(3F00H ~ 3FFFH 등)을 활용합니다.
이렇게 되면 GRUN같은 DOS용 프로그램으로 겜이 시작되는게 아닌...
MMC/SD의 멀티롬에서 게임 시작하는 방식으로 밖에 구현이 안되겠지요.
결국 MMC/SD BIOS내에 GRUN 의 기능이 기본으로 포함되어야겠구요.
FLASHMAN에서 롬 다운로드할때는,
GRUN 루틴으로 실행할지, 기존의 롬 BIOS 에서 실행할지 선택해서,
각각 패치를 적용하면 되겠습니다.
쓰고보니 SCC 메가플래쉬 용으로는 안되겠군요. 흐...
불가능한건 아니지만, 다운로더를 따로 만들어야되겠지요.
근데 MSX1용 메가롬 게임이 꽤되나요? 그라디우스 시리즈 정도밖에 생각나는게 없네요. 으흠... 몽대륙이랑~