2012년 5월 21일 월요일

ASO Remake - 조금씩 업뎃~ㅋ

AREA1 완성 후, 구석에 쳐박아둔 ASO 소스를 다시 보고 있습니다.

목표는 올해안에 AREA2 완성! (너무 느긋하려나요? ㅋ)


HI-TECH C의 LIB에서 R800 명령을 쓸수 있도록 한군데 보완했습니다.

16BIT 곱셈 루틴인 IMUL 함수지요.

앞으로 터보알 고속모드 전용 프로그램은 LIB 바꿔서 쓸예정입니다.


사실... 순수 곱셈을 많이쓰는 프로그램이 아니라면 속도 향상이 미미하겠지만,

몇바이트 용량 작은 LIB 쓰는 재미도 있으니...ㅎ


으흠, 근데 OCM에서 돌릴려면, 기존 LIB쓰는 실행파일도 빌드해야되겠군요.



지저분한 코드 정리도 좀 했구요.ㅎ

점수 디스플레이도 추가했습니다.

사실 요건 숫자 출력하면 속도가 떨어질것 같아서, 빼놓고 만든거였지요. 히히..

숫자 폰트는 원본 ASO 캡쳐한 것과 동일한 8x8 크기로 넣었습니다.


속도 저하를 최소화하기 위해,

 점수판 숫자는 매 프레임 당 한 글자만 그리도록 했습니다. ㅋ

6자리 숫자니까 다 그리는데 6/60 초가 필요한 셈이죠. 0.1 초

2012년 4월 23일 월요일

GRUN으로 메가롬 게임도 세이브/로드가 가능할까요?

어제 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용 메가롬 게임이 꽤되나요? 그라디우스 시리즈 정도밖에 생각나는게 없네요. 으흠... 몽대륙이랑~


2012년 4월 22일 일요일

GRUN v1.1 release



Download: GRUN_v1.1.zip


----------------------------------------------------------------

    Game Runner v1.1 (MSX-DOS2용 게임 로더 2012.04.22)

        By 서영만 (E-mail:sharksym@hitel.net)

----------------------------------------------------------------


* Game Runner (GRUN)


  GRUN은 MSX1용 16KB 또는 32KB의 MSX1 용 롬이미지 로더입니다.

  게임 실행 중 DOS로 복귀가 가능하며,

  게임 속도 조절 및 상태 저장/복구 기능을 지원합니다.



* 요구 사항


  MSX-DOS2가 구동되는 MSX2(VRAM 128KB) 이상의 기종.

  메모리 매퍼 사용하지 않음.



* 사용법


  DOS2 프롬프트에서 아래처럼 입력하면 롬파일이 실행됩니다.

  GRUN filename.rom


  특수키 입력

  ESC : 게임을 강제 종료하고 DOS2로 복귀

  1   : 일시 정지

  0   : 게임 속도를 원래의 60프레임으로 복귀

  2   : 게임 속도를 30프레임으로 낮춤

  3   : 게임 속도를 40프레임으로 낮춤

  4   : 게임 속도를 45프레임으로 낮춤

  5   : 게임 속도를 48프레임으로 낮춤

  6   : 게임 속도를 50프레임으로 낮춤

  7   : 게임 속도를 52프레임으로 낮춤

  F4  : 게임 상태를 저장

  F5  : 게임 상태를 복구



* 마지막으로


  MSX 메인 BIOS를 패치 후 램에서 구동하므로,

  제대로 실행안되는 게임도 있습니다.

  코나미, 남코 등의 게임은 대부분 동작합니다.

 

  GRUN 에서는 turboR의 CPU 모드를 변경하지 않습니다.

  속도가 빨라지는 현상이 생기는 게임은,

   로딩 전에 미리 CPU모드를 Z80으로 변경하세요.