레이블이 -ASO Remake인 게시물을 표시합니다. 모든 게시물 표시
레이블이 -ASO Remake인 게시물을 표시합니다. 모든 게시물 표시

2022년 2월 5일 토요일

ASO remake - 2022.02.05 update

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

    ASO remake (2022.02.05 update)

        By 서영만 <email:sharksym@hitel.net>

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



* ASO remake


본 프로그램은 1985년 SNK에서 제작된 ASO를

 MSX용으로 리메이크한 것입니다.


현재 ASO의 AREA1만 구현이 되어있습니다.



* 업데이트 내용


- VDP 인터럽트 관련 코드를 간소화

  타이밍이 정확하지 않은 에뮬레이터에서도 안정적으로 실행가능합니다.


- blueMSX의 터보알 타이밍 옵션 추가

  "ASO /B" 으로 실행하면 해당 옵션이 활성화됩니다.

  ASO_2022_(blueMSX).DSK에는 미리 적용되어있습니다.


- 잠시멈춤 기능 추가

  키보드 STOP 또는 조이메가 START로 PAUSE 상태가 됩니다.

  BGM은 계속 들을 수 있습니다.


- 그래픽 보완

  일부 타일 그래픽이 개선되었습니다.

  원작 AREA1에 가까운 연두색 팔레트로 변경되었습니다.


- 사운드 처리 추가

  AREA의 전반/후반 나눠진 두곡의 BGM을 모두 구현했습니다.

  각종 효과음도 추가되었습니다. (예: 게임시작, 워프, 아머 합체 등등)


- 처음 시작 시, 전투기 출격 씬 추가

  원작과 비슷한 느낌으로 만들었습니다.


- 보스 클리어 후 처음으로 복귀

  AREA1 레벨이 무한반복 플레이됩니다.


- 스코어 처리 추가

  현재 스코어만 우측 하단에 표시됩니다.


- 모든 아머(8개) 획득 가능

  실제 합체가 동작되는 아머는 기존 4개(OCTO, SHIELD, CANNON, FIRE) 그대로입니다.

  추가된 4개 아머는 획득(!)만 가능합니다.


- 아이템 처리 추가

  [P] 플레이어 기체가 1증가

  [C] 현재 장착된 아머 및 획득 중인 아머가 해제(취소)

  [B] 보너스 스코어 획득 (500, 1000, 3000, 8000점)

  [K] 기체가 파괴된 후 파워레벨을 유지 (파랑, 노랑, 빨강 순 등장)



* 첨부파일


ASO_2022.zip

-> MSX의 디스크에 압축을 풀어서 ASO.COM을 실행하면 됩니다.


ASO_2022.DSK.zip

-> 자동실행되는 2DD 이미지파일입니다. 2DD 에뮬이 지원되는 기기에서 사용하세요.


ASO_2022_(blueMSX).DSK.zip

-> blueMSX의 A1GT 에뮬모드에 최적화된 2DD 이미지파일입니다.

   에뮬레이터에서 구동할 때 사용하세요.



* 요구사항


실기: MSXturboR GT (또는 512램 확장된 ST)

      MoonSound (또는 OPL4 호환 사운드)

      JoyMega 호환 패드 (옵션)


에뮬: blueMSX FS-A1GT 모드



* 실행방법


압축 파일을 MSX용 디스크에 풀어 넣습니다.

에뮬레이터에서는 DSK 파일을 마운트하면 됩니다.


MSX-DOS2로 부팅 후 ASO.COM 파일을 실행



* 키입력


MOVE   : 커서  키           (JoyMega 방향 버튼)

LASER  : SPACE 키 또는 N 키 (JoyMega B 버튼)

MISSILE: 취소  키 또는 B 키 (JoyMega C 버튼)

ARMOR  : GRAPH 키 또는 V 키 (JoyMega A 버튼)

PAUSE  : STOP  키           (JoyMega START 버튼)

EXIT   : ESC   키



* 히스토리


2022.02.05

  10주년 기념 업데이트


2012.02.12

  JoyMega 3버튼 패드 지원


2012.02.05

  스크롤 및 아머 처리 개선

  키입력 추가 (N,B,V)


2012.02.04

  AREA1 릴리즈


아래는 오늘 제가 플레이했던 영상입니다.
심심하시면 구경하셔요~ (간만에 패드를 잡았더니 좀 힘드네요 ㅎ.ㅎㅋ)


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년 2월 12일 일요일

ASO remake - 2012.02.12 update

ASO_remake_20120212.zip

ASO_remake_20120212_dsk_image.zip


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

    ASO remake (2012.02.12)

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

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



* ASO remake


본 프로그램은 1985년 SNK에서 제작된 ASO를

 MSX용으로 리메이크한 것입니다.


현재 ASO의 AREA1만 구현이 되어있습니다. ^^



* 요구사항


실기: MSXturboR GT (또는 512램 확장된 ST)

      MSX-AUDIO (또는 MoonSound 호환 카드)

      JoyMega 3버튼 패드 (옵션)


에뮬: blueMSX FS-A1GT 컨피그



* 실행방법


압축 파일을 MSX용 디스크(IDE,MMC/SD등의 빠른 디스크 추천)에 놓는다.

(에뮬레이터에서는 DSK 파일을 마운트하면 끝)


DOS2로 부팅후 ASO.COM 파일을 실행


사운드 옵션은 기본 MoonSound로 설정되므로,

MSX-AUDIO 계열은 ASO /A 로 실행하면 소리를 들을 수 있습니다.



* 키입력


이동  : 커서  키           (JoyMega 십자 버튼)

레이져: SPACE 키 또는 N 키 (JoyMega B 버튼)

미사일: 취소  키 또는 B 키 (JoyMega C 버튼)

아머  : GRAPH 키 또는 V 키 (JoyMega A 버튼)

종료  : ESC   키



* 히스토리


2012.02.12

  JoyMega 3버튼 패드 지원


2012.02.05

  스크롤 및 아머 처리 개선

  키입력 추가 (N,B,V)


2012.02.04

  AREA1 릴리즈


2012년 2월 5일 일요일

ASO remake #14 - AREA1 완성!!! (2012.02.05)

드디어 AREA1 이 완성되었습니다. ㅜ.ㅜㅋ



작년 봄부터 만들던 것이 해가 바껴서야 빛을 보게 되네요.

원작을 100% 구현하지는 못했지만...

MSX turboR의 성능을 최대한 살려~서 비슷한 느낌이 나도록 했습니다. (진짜로...ㅋ)


아래 파일을 다운로드 하시면, 실행해볼수 있겠습니다.

일반 파일 압축과 에뮬레이터용 DSK 이미지 두개로 업로드합니다.

ASO_remake_20120205.zip

ASO_remake_20120205_dsk_image.zip


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

    ASO remake (2012.02.05)

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

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



* ASO remake


본 프로그램은 1985년 SNK에서 제작된 ASO를

 MSX용으로 리메이크한 것입니다.


현재 ASO의 AREA1만 구현이 되어있습니다. ^^



* 요구사항


실기: MSXturboR GT & MSX-AUDIO(또는 MoonSound 호환 카드)

에뮬: blueMSX FS-A1GT 컨피그



* 실행방법


압축 파일을 MSX용 디스크(IDE,MMC/SD등의 빠른 디스크 추천)에 놓는다.

(에뮬레이터에서는 DSK 파일을 마운트하면 끝)


DOS2로 부팅후 ASO.COM 파일을 실행


사운드 옵션은 기본 MoonSound로 설정되므로,

MSX-AUDIO 계열은 ASO /A 로 실행하면 소리를 들을 수 있습니다.



* 키입력


이동  : 커서 키

레이져: SPACE 키 또는 N 키

미사일: 취소 키 또는 B 키

아머  : GRAPH 키 또는 V 키

종료  : ESC 키



* 히스토리


2012.02.05

  스크롤 및 아머 처리 개선

  키입력 추가 (N,B,V)


2012.02.04

  AREA1 릴리즈


2012년 1월 28일 토요일

ASO remake #13 - AREA1 BOSS 완성

커피 한잔하면서 글 하나 올려봅니다~ ㅋ

지난 연휴때, 여가시간을 full 활용해서 구현해보았습니다.

아래는 오리지날 ASO의 보스 모습인데, 한번 보시죵...




다리가 셋 달린 놈이 나옵니다.

흐느적거리는 다리가 포인트라고 할수 있습지요. ㅋ


MSX 리메이크판에서는 100% 똑같이 만드는건 불가능했고요...

CPU,VDP가 버텨주는 정도에서 타협을 해보니,

좌우 다리는 관절 4개씩, 뒷다리(꼬리?)는 관절 3개로 만들수가 있었네요.


사진은 퇴근 후, 추가하겠습니다.

참고로 동영상은 정식 릴리즈(물론 AREA 1만.. ㅋ)할때 올릴 생각입니다.

(기대치를 높이기 위한 뭐..그런 ㅡ.ㅡ;;;)


보스 몸통 및 다리 관절은 스프라이트가 아닌 모두 비트맵 그래픽입니다.

두개의 색은 팔레트 애니메이션으로 보스의 체력 상태(빨강/노랑 점멸) 표시도 됩니다.

원판과 거의 비슷한 느낌이에요.


이제 남은건 점수판이랑 주인공 죽었을 때, 리셋 지점부터 다시 시작하는 루틴인데...

주말에 잘하면 완성할 수 있을 듯 하네요. 아... TITLE 화면도 그려야겠네요.ㅋ


지난 5월부터 계획하고 조금씩 만드느라 시간이 꽤 걸렸네요.

비록 터보알 전용이지만, 원판이랑 비슷하게 구현이 되서 아주 즐겁습니다. ㅎ.ㅎ


PS. 실기에서 구동되는 모습입니다.

디카 플래쉬 켜면 어둡게 나오고, 끄면 잔상이 생기네요. ㅎ.ㅎㅋ

대충 보셔요...









2012년 1월 2일 월요일

ASO remake #12 - 그래픽 타일 완성

ASO 리메이크에서 사용되는 그래픽입니다.

모두 DD 구락부에서 작업된 것이구요.


스프라이트는 게임 진행 상황에 따라, 수시로 패턴 테이블에 로딩됩니다.











2012년 1월 1일 일요일

ASO remake #11 - Armor 구현

2012년 새해가 밝았습니다.

올해도 즐거운 한해 되시길 바라겠습니다요~~ ㅎ.ㅎ


ASO 리메이크 진행상황입니다.

지난 크리스마스 때 릴리즈하려던 계획은 실패(!)로 돌아갔네요. (도저히 개인 시간이 안난다능... ㅜ.ㅜ)

1월말 쯤엔 가능하겠죠? ㅎ.ㅎ;


현재까지 AREA1에서 사용가능한 Armor 처리가 완료되었습니다.

아... 진짜 오리지날 ASO 분위기가 나네요. ㅋ


동영상은 귀찮아서 못찍었고요... 그냥 스크린 샷 몇개로 대신합니다.


2번 보호막 아머를 모으는 장면이네요.

아머는 3조각으로 분리되어있고, 3조각 모두 모으면 하단의 아이콘으로 등록됩니다.

에너지 바가 7이상(노란색 게이지)이 되면 아머 합체가 가능하지요.




보호막 아머를 사용하는 모습입니다.

적 유닛 또는 총알 부딛혔을때 일정 에너지를 소모하게 됩니다.




화염 방사기(?) 아머군요.

지상 및 공중 유닛 모두에게 타격이 됩니다.

대신 아머 사용중에는 레이저, 미사일 발사가 불가능하지요.

워낙 쌘 무기라서 밸런스를 위해, 약간의 패널티를 준게 아닐까 생각해봅니다.




6방향으로 레이져를 발사하는 아머의 모습입니다.

오리지날 ASO에서는 OCTO 라고해서 8방향으로 쏘는건데... 제 맘데로 6방향으로 줄였어요..ㅋ




캐논 아머의 모습입니다.

장착하면 기체의 레이져 레벨과는 상관없이 6발짜리 레이저가 발사됩니다.

잘만 쓰면 보스전에서 아주 유용하지요.




한손으로 디카들고 찍다보니 흔들린 사진이 많군요. ㅎ.ㅎ;


2011년 11월 28일 월요일

ASO remake #10 - 동작 데모 디스크

AREA1 맵은 거의 완성이 되었습니다.

보스 처리가 완성되면, 적 유닛은 모두 구현되는 셈이네요. (스프라이트 그리기 힘듭니다요. ㅜ.ㅜ)


ASO의 가장 중요한 요소인 "아머"도 구현이 안되어 있는데,

아마도 Test 10 버전은 아머 구현으로 가게 될것 같아요~ㅋ


아래는 터보알 또는 에뮬(blueMSX 등)에서 실행가능한 데모 파일입니다.


ASO_20111127_test_9.zip

ASO_20111127_test_9_DSK.zip



ASO /M 으로 실행하면 문사운드로 소리가 나며,

ASO /A 는 필립스 뮤직모듈 등의 MSX-AUDIO로 소리를 들을 수 있습니다.


아래는 제 터보알에서 구동한 모습입니다.

이번엔 ASO /M /I 으로 실행해서, CPU idle 구간을 볼 수 있도록 캡쳐했습니다. 참고하셔요. ㅎ.ㅎ




2011년 10월 31일 월요일

ASO remake #9 - 레이저, 미사일 업그레이드

ASO에서 지상에서 움직이는 유닛이 몇종류가 있는데, 그 중 하나가 추가되었습니다.

SW 스프라이트를 이용하기 때문에, 풀컬러로 움직이는 모습을 볼수 있겠습니다.

참고로 공중 유닛은 HW 스프라이트라서 3색 정도만 표현가능합니다요...

공중유닛도 2가지가 추가되었습니다. (스프라이트 그리느라 힘들었어요. ㅎ.ㅎㅋ)



2011년 10월 24일 월요일

ASO remake #8 - SW 스프라이트

사실, ASO 리메이크를 시작하면서 SW 스프라이트를 계획했었습니다.

느리게 움직이는 지상 유닛들은 가능하면 비트맵의 깔끔한 그래픽으로 보여주고 싶었지용... ㅎ.ㅎ

 

이걸 지난 주말에서야 구현해서 테스트를 해보았는데요.

60프레임으로 진행되는 게임에서 유닛 여러개 그려넣는데 부하가 심하네요. ㅎ.ㅎ

 

근데, 원본 게임을 자세히 보니, 지상 유닛이 2프레임에 1도트 움직이고 있더군요.

홀짝 프레임에 맞춰서 유닛들은 반반 나눠 처리하면 VDP 부하를 줄일수 있었지요. ㅋ

 

움직이는 지상 유닛 없을때, CPU IDLE 구간을 보면...

 

1. 공중 유닛이 없을때: 약 40%

2. 공중 유닛이 있을때: 약 30%

정도 됩니다. 

 

이 상태에서, 지상 유닛이 5개 정도 등장하면 거의 IDLE 구간이 0%가 되네요.

겨우 ASO 가 구현될만한 수준이었습니다. 흐...

 

 

여기서 ASO에서 구현된 지상군 SW 스프라이트는 아래 처럼 처리됩니다.

 

기본적으로 배경 화면은 스크린5의 페이지 한장에 그려지고,

그려진 배경을 다시 복구(유닛으로 덧칠된 부분 복구)하기 위해 다른 페이지 하나에 깨끗한 배경 화면이 또 있습니다.

 

실제 ASO에서는 페이지1이 보여주는 화면이 되고, 페이지2가 원본 배경 화면입니다.

참고로 페이지0 에는 스프라이트 패턴이랑 STATUS 창(에너지 미터 등등)이 그려지고,

페이지3은 배경 화면용 맵 타일 그래픽이 존재합니다.

 

 

원래 SW 스프라이트는 원본 배경에 유닛 비트맵을 덮어 씌우게 되는데,

이때 원본 배경이 복구 된 후 유닛 비트맵이 그려지는 순간이 순차적으로 보이게 되면

유닛이 깜박이는 것 처럼 보이게 됩니다.

 

이걸 해결하려면,

1. 배경 전체를 더블 버퍼링.

2. 유닛이 다시 그려질 부분만 다른 페이지에 미리 그린 후, 복구될 배경과 함께 원본 배경에 덮어 그려줌.

3. VDP에서 현재 출력 스캔라인과 유닛 그려질 라인이 만나지 않도록 조절해서 처리.

하면 됩니다.

 

근데 60프레임 슈팅겜에서 전체 더블 버퍼링은 속도상 불가능하겠고요.

(ASO에서 지상 유닛은 30프레임 업데이트이긴 하지만, 이것도 힘들겠지요. ㅋ)

 

VDP의 출력 스캔라인을 비켜 가려면,

 그려질 비트맵의 수직 위치랑 현재 스캔라인 간 차이가 많이 나도록 하면 됩니다.

 V-blank 구간에서 비트맵을 그리면 가장 안전하지만, 짧은 구간에 많이 그리진 못하겠지요.

 

참고로, V-blank 구간은 아래처럼 됩니다. (ASO는 60Hz 오버스캔 240라인 모드입니다. )

 

V sync 60Hz 출력일때 

 수직 192 해상도 V-blank 구간: 262 - 192 = 70 라인

 수직 212 해상도 V-blank 구간: 262 - 212 = 50 라인

 오버스캔 모드의 V-blank 구간: 262 - 240 = 22 라인

 

V sync 50Hz 출력일때 

 수직 192 해상도 V-blank 구간: 312 - 192 = 120 라인

 수직 212 해상도 V-blank 구간: 312 - 212 = 100 라인

 오버스캔 모드의 V-blank 구간: 312 - 240 = 72 라인

 

여담이지만, 25프레임 등의 애니메이션을 구현한다면 50Hz 모드가 훨씬 여유가 있다는걸 볼수 있어요.

(더블 버퍼링을 안하는 경우에 한해서...ㅎ.ㅎㅋ)

 

 

그럼, ASO에서는 어떻게 할까요?

 

처음엔 2번의 배경과 유닛 비트맵을 미리 계산(페이지 0 활용)해서 그려보았는데,

비트맵 세번 복사 하는데 시간이 꽤 걸려서 사용이 힘들더군요.

1. 별도 페이지에 원본 배경 복사 (복구될 영역과 유닛 이동 후의 영역만큼 18 x 18 사이즈)

2. VDP의 논리연산 COPY를 써서 배경에 유닛을 덮어씌움 (투명색은 배경이 그대로 보이겠죠?)

3. 완성된 비트맵을 실제 배경 페이지에 복사

 

최종으론, 3번 방법처럼 적절하게 VDP의 스캔라인과 그리는 부분이 겹치지 않게 처리하고 있습니다.

이 경우는 비트맵 두번만 복사하면 되서 1.5배 빠릅니다.

1. 원본 배경을 원본 페이지에 바로 복사(복구)

2. 새로운 위치에 유닛 비트맵 논리연산 COPY

 

지상 유닛은 한 프레임 처리에서 가장 마지막에 이루어집니다.

VDP의 라인인터럽트를 이용해서 스캔라인이 화면 아래쪽에 도달하면, 게임의 한프레임 처리가 시작되는데요.

이것 저것 다 끝내면, 스캔라인이 화면 중앙정도에 옵니다. 남은 CPU 시간이 반정도 남은거지요.

 

이때 지상 유닛을 처리하면서 화면에 다시 그리게 되면,

화면 아래쪽에 나타나는 경우가 아니라면, 눈으로 깜박임을 느낄수 없게 됩니다.

 

글로만 쓰니까, 잘 이해안되실수도 있겠습니다. ㅎ.ㅎ;;

 

암튼, 실제 구현해보니, 지상 유닛이 화면 하단 1/3 정도에선 깜빡이지만, 전체적으로 쓸만했습니다.

뻥 좀 보태면, 거의 원본 ASO의 유닛 움직임과 흡사합니다. ㅋ 

 

유닛의 수직 위치를 소팅해서 스캐라인과 잘 어긋나도록 그리면, 깜박이는 경계선을 더 낮출 수 있을 것 같네요.

이번 주중에 완료해서 동영상으로 보여드리겠습니다~

 

가능하면, 중간 보스도 등장 할 예정...


2011년 10월 17일 월요일

ASO remake #7 - 데모 디스크

이제 어느정도 ASO 스러운 화면이 나오게 되었습니다. ㅎ.ㅎ


MSXturboR GT (또는 램512확장된 ST)에서 실행 가능하며, blueMSX 등의 에뮬에서도 실행 가능합니다.

MSX-AUDIO 또는 MoonSound/DalSoRi 카드가 있으면 사운드를 들을 수 있습니다.


실행은 DOS2 상에서,

ASO /M 또는 ASO /A 등으로 실행하면 되겠습니다.

옵션의 /M은 MoonSound, /A는 MSX-AUDIO, /N은 NO-AUDIO 입니다.


아래의 파일을 받으시면 됩니다.

디스크 이미지 파일은 DOS2 부팅 및 ASO /M 으로 시작되도록 만들어놨습니다. blueMSX 등으로 바로 실행가능.


ASO_20111017_test_7.zip

ASO_20111017_test_7_DSK.zip


아래는 blueMSX에서 구동해본 모습입니다.




아래는 제 터보알, MoonSound 로 구동되는 영상입니다.



참고로, 옵션에 /I 를 추가하면 게임 화면 좌/우 테두리에 CPU idle time 표시기가 등장합니다. ㅋ

파란/빨간 막대가 길수록 CPU 여유가 있는 상태를 나타냅니다.


아래는 제 실기에서 동작되는 모습니다.






적 유닛 및 총알이 많아질수록 CPU가 바빠지는걸 볼수가 있어요.

아머 및 보스 처리 외에는 게임 기본적인 부분이 구현된 상태라, 크게 CPU 부하가 늘어날 것 같지는 않습니다.

버벅된다면, 어셈 노가다를 해야겠지요. ㅎ.ㅎㅋ


2011년 10월 3일 월요일

ASO remake #6 - 공중 유닛 처리

잠시 작업을 놓고 있다가, 연휴를 타서 좀 달려보았습니다~ ㅋ


이전 Test 5 에서 공중 유닛을 추가해봤습니다.

ASO 에서 맨처음 등장하게 되는 동그란 모양의 비행체인데욤.

빠르게 휘리릭~ 날아다니는 특징(?)이 있습지요. ㅎ.ㅎ;


기본적인 총알 및 기체간 충돌 처리도 넣고, 폭발 스프라이트도 대강 그려넣었습니다.


실기(터보알 GT 또는 램512 확장된 ST)에서 실행해보시려면, 파라동 게시판에서 테스트 파일을 받으시면 되겠습니다.

믈론 blueMSX에서도 실행가능합니다.

사운드는 문사운드(또는 달소리)로 출력됩니다.

사용키: 커서키, Z,X,C,스페이스, ESC, 숫자패드(기체 파워업 테스트용)


아래는 제 터보알에서 구동되는 모습입니다.

참고로 공중 유닛은 초당 60프레임으로 처리됩니다.

영상 뒷부분에는 움직임 패턴 데이터를 넣어보았습니다~ ㅎ.ㅎ




움직임 패턴(route) 에디터의 동작모습도 찍어보았습니다~




2011년 8월 15일 월요일

ASO remake #5 - 사운드 구현

오리지널 ASO에서 OPL로 출력되는 배경음악과 효과음 몇개를 추출(?)해봤습니다.


기존 Test 3 동영상에서 음악/효과음이 추가된걸로 보시면되겠네요.


효과음은 레이저, 미사일, 지상 폭발 3가지만 나옵니다.


OPL의 각 채널은 아래처럼 사용됩니다.


채널 1,2,3 : 레이저, 미사일 발사음

채널 4,5,6 : 폭발음

채널 7.8,9 : 배경음악



아래는 제 터보알에서 돌려본 모습입니다.

동영상 38초 쯤에 "아아~~" 하는 목소리가 들리는데요.

이거 아들넘이 옆에서 낸 소리입니다. (귀신 소리 아님 ㅡ.ㅡ)




2011년 8월 10일 수요일

ASO remake #4 - BGM 구현

이번엔 배경음악 테스트입니다~



제 실력에 원본 곡을 귀로 듣고 음악 만드는 건 불가능하니,

이번에도 MAME의 힘을 빌렸습니다. ㅋ


원본 ASO는 사운드 출력을 위해 YM3526 칩을 쓰고 있습니다.

YM3526이 뭐냐고요? 일명 OPL 이라고 불리는 FM 칩이지요.


참고로 MSX에서는

MSX-AUDIO(필립스 뮤직모듈 포함)와 MoonSound, 달소리 등의 카트리지에 OPL 호환칩이 들어있습니다.


ASO의 YM3526 은 메인 클럭이 4MHz 이고, MSX 쪽의 MoonSound 등은 3.58MHz라서

MSX에서 재생하면 소리가 좀 낮은 음이 나올걸로 예상됩니다요...


MAME의 YM3526 에뮬 소스를 약간 손봐서(!), 먼저 OPL 레지스터 write 하는 부분을 덤프해봤습니다.

사실 덤프된 데이터 만으로는 똑같이 재생할 수는 없는데요.


실제 ASO의 사운드 루틴에서는 어떻게 타이밍을 처리하고 있을까?

일단 두 가지 가정을 해봤습니다.


1. 타이밍을 맞추기 위해, 외부 타이머 또는 비디오 sync 등의 인터럽트를 썼다면,

   음악 데이터는 크기가 작기 때문에, 데이터 write 후 어느정도 대기 시간이 보여야 된다.


    MAME의 모든 사운드 에뮬에서는 최종 PCM 출력을 얻기위한 콜백 함수가 있습니다.

    이 때 얻어지는 샘플 갯수를 보면, 실제 시간을 반대로 계산 할수가 있습지요.


2. 만약 YM3526 내의 타이머를 인터럽트로 활용했다면, 이건 왕재수 상황 ㅎ.ㅎㅋ

   FLAG 레지스터 read/write 를 보면, 인터럽트 주기를 파악할수 있는 것이죠.


그럼, 결론은?

실제로는 2번이었습니다. (사실 이쪽을 기대했었어요. ㅋ)


FLAG 레지스터의 IRQ 리셋 하는 것을 체크하면, 타이밍이 눈에 보입니다.

배경음악 출력이라면, 타이머 주기를 바꿀 것 같지는 않고,

아마도 60Hz 등 일정한 속도로 처리하지 않을까 생각했던 것이지요.


아래는 제가 덤프해서 가공한 데이터입니다.


컬럼 두개가 보이는데, 왼쪽은 레지스터 번호, 오른쪽은 데이터입니다. (모두 write 하는 부분)

0x04번 레지스터에 0x80을 write하면, IRQ 리셋이지요.




요걸 기준으로 MoonSound에 데이터를 출력해서, 음악이 나오는지 확인해봤습니다.

결과는 아래 동영상으로 확인하셔요~ ㅎ.ㅎ




위의 동영상 보시면, 처음 예상과는 달리 타이머 주기가 고정된게 아닌걸 알수 있습니다.

게임 처음 시작하면, 기지에서 슈웅~ 하고 출격하는 장면이 나오는데,

이때는 타이머가 좀 빠르게 세팅된것 같더군요.


그 후, 메인 테마가 나올때는 30Hz 로 속도가 고정됩니다.

위의 ASO_BGM 프로그램에서는 그냥 처음부터 쭈욱 30Hz 로 동기 맞춰서 출력하고 있고요.


데이터를 잘 분석하면,

배경 음악과 총알, 폭파음 등의 효과음 채널도 분리할수 있을 듯 하네요. ㅎ.ㅎㅋ


2011년 8월 7일 일요일

ASO remake #3 - 지상 유닛 처리

주말 업무에도 굴하지않고 작업은 계속 됩니다~ ㅎ.ㅎ


폭발 애니메이션과 포탑의 충알 발사, 미사일 충돌 처리 등,

몇가지 추가해봤습니다.

실행해보시려면, 터보알 GT가 필요합니다.

에뮬에서도 실행 가능합니다.



키 동작

커서키 : 전투기 조종

C : 레이져 발사

X : 미사일 발사

ESC : 종료 (도스 복귀)


숫자패드 1,2,3 : 레이져 1,2,3단계 변경

숫자패드 4,5,6 : 미사일 1,2,3단계 변경

숫자패드 7,8,9 : 스피드 1,2,3단계 변경


실행은, 아래 파일의 압축 풀어서 ASO.COM을 실행하면 되겠습니다.

(파일은 파라동 게시판에서 찾으실 수 있어요~)


아래는, 제 터보알에서 구동되는 모습을 찍은 것입니다. 참고하셔요~




아래는 배경 패턴 및 스프라이트로 사용되는 그래픽입니다.

DD구락부로 만든 파일 그대로 사용되니, 심심하신 분은 로딩해보셔요~ ㅋ








2011년 8월 1일 월요일

ASO remake #2 - 플레이어 기본 구현

제작중인 ASO 리메이크 판의 테스트 용 프로그램입니다.



파일은 파라동에서 다운받으실 수 있습니다.


실기에서 실행하시려면, 터보알 GT가 필요합니다.

내장램 512KB로 확장된 터보알 ST에서도 구동됩니다.

직접 돌려보실 수 있는 분이 별로 없겠네용~ ㅎ.ㅎㅋ


조작법은 아래와 같습니다.

 전투기 이동: 커서키

 레이져: C 키

 미사일: X 키

 종료: ESC 키


에뮬레이터에서 구동하려면,

blueMSX 등에서는 시스템을 turboR 로 선택하시면 되겠고요,

paraMSX의 경우는 MSX2+ 를 선택한 후, CPU 속도를 400%에 맞추시면 됩니다.

참고로 blueMSX의 turboR 동작 타이밍이 실기와는 약간 차이가 나는데용, 신경 쓸 수준은 아닙니다요.


아래는 제 터보알에서 돌려본 모습입니다.

약간의 지상 오브젝트와 아군 전투기의 모습을 감상하실 수 있습니다. ㅋ




아래는 ASO 레벨 에디터를 구동해본 모습입니다.

아직 별다른 기능은 없습니다. ㅎ.ㅎ

그냥 구경만 하셔요~





2011년 5월 16일 월요일

ASO remake #1 - 스크롤 테스트

주말에 여유 시간을 몽땅 불태웠습니다~~ 워~~


ASO area 1의 배경을 반정도 옮겨서 스크롤을 해보았는데,

그럭저럭 볼만하게 나오는군요. ㅎ.ㅎ;


area1의 주요 배경 타일을 16x16 크기로 128개 정도 그려보았습니다.

원본 ASO의 팔레트가 256개에 RGB 단계가 세밀하다 보니,

MSX의 512컬러로는 옅은 녹색계열 팔레트를 만드는게 불가능하네요. ㅜ.ㅜㅋ


일단 회색톤으로 만들었습니다. (원판이랑 느낌이 많이 다르네용.. ㅎ.ㅎ;;;)

아래 스크린샷 나갑니다~ㅎ




이걸로 배경맵을 구현해야되니,

"수퍼 울트라 초간단 맵 에디터"부터 만들어야되더군요. ㅋ


아래는 에디터를 실행해본 모습입니다.


원하는 위치에서 스페이스바를 누르면 타일을 삽입할수 있도록 만들어져있습니다.

상하 스크롤도 가능하고요. (요걸 활용해서 파라의 탑 맵 에디트 할때도 쓰일 것 같습니다. ㅋ)



며칠전 "VDP 오버스캔 트릭"에 대한 소개를 했었는데요.

실제로 구현해본 모습입니다.


총 240 라인 중, 216 라인은 스크롤 되는 배경이고요.

하단의 24라인은 아이템 및 점수판으로 쓰이게 됩니다.


원래 ASO에서는 맨위 상단에 점수가 표시되는데요,

MSX 판에서는 수직 해상도가 낮아서, 걍 짧게 하단에 표시하기로 했습니다.



아래는 실행되는 모습을 동영상으로 찍은 것입니다.

토욜날 버전이라 하단부가 쬐금 다릅니다. 참고하셔요.

(아래 동영상에서는 화면 분할 처리에 약간 문제가 있어서, 깜박이는 구간이 있어요. ㅋ)




2011년 5월 9일 월요일

SNK의 슈팅게임 ASO

ASO를 아시나요?

 

제가 국딩 시절 정말 재밌게 했던 게임인데용.

가장 문화적(?) 충격이 컷던 슈팅 게임을 꼽으라면, 전 ASO가 1등입니다.

 

아침 일찍 오락실에 가서, 혼자 신나게 즐겼던 추억이 있습니다요.

오락실 독차지하면, 배경음악도 또렷하게 들을수 있는 장점(?)이 있었지요. ㅎ.ㅎ

 

참고로 ASO는 수직 스크롤 형태의 비행 슈팅입니다.

3단으로 조각난 ARMOR(특수 무기)를 모아서 기체를 강화하는 방식을 쓰고 있습니다.

 

당시에 정말 참신한 시스템이었다고 생각이 듭니다.

레이져와 로켓, 스피드 업그레이드도 각각 가능했었고,

아이템 잘못 먹으면 다운그레이드 되는 처절함...

 

특이하게도, 수직 스크롤을 빨리감기/되감기도 가능했었지요.

 

보스에 따라 특정 ARMOR가 없으면 깨는게 불가능했던 것도 있어서,

아이템 운이 안따라주면 포기해야했던 스테이지도 있었지요.

 

간만에 생각이 나서 MAME로 몇판 해봤습니다.

국딩 때의 기억이라 그런지, 아이템 위치나 클리어 노하우는 머리속에 그대로 남아있군요. 핫핫...ㅎ

어릴때는 기억력이 좋았던건지... 나이들어 술먹기 시작하면서 머리가 나빠진건지...암튼 그렇습니다. ㅋ

 

 

ASO를 한번도 못해보신 분이라면,

MAME 에뮬로 한번 즐겨보시는걸 추천드리고요...

 

혹시나해서 유튜브 검색하니, 동영상 하나 나오는군요.



그리고, 아래 PS 나갑니다. ㅡ.ㅡㅋ

 

PS. 갑자기 ASO 얘기를 꺼내게 된건,

    MSX로 한번 리메이크를 하고싶은 생각이 들었기 때문이에요. ㅎ.ㅎ

    수직 스크롤이니, MSX로도 어느정도 가능할 것 같은 느낌도 들고...

    게다가 지금은 터보알이 있으니, 코딩 노가다 좀만 하면 실현이 될 것 같다는 생각이 들었습니다.


    일단 스테이지1의 배경 그래픽을 몽땅 캡쳐해서(MAME 만세!!)

    16x16 타일 정리하고, 팔레트 만들고 있습니다요.


    언제 완성될지는 모르겠지만, 제작 상황은 게시판에 가끔 알려드리겠습니다요~ ㅎ