주말에 여유 시간을 몽땅 불태웠습니다~~ 워~~
ASO area 1의 배경을 반정도 옮겨서 스크롤을 해보았는데,
그럭저럭 볼만하게 나오는군요. ㅎ.ㅎ;
area1의 주요 배경 타일을 16x16 크기로 128개 정도 그려보았습니다.
원본 ASO의 팔레트가 256개에 RGB 단계가 세밀하다 보니,
MSX의 512컬러로는 옅은 녹색계열 팔레트를 만드는게 불가능하네요. ㅜ.ㅜㅋ
일단 회색톤으로 만들었습니다. (원판이랑 느낌이 많이 다르네용.. ㅎ.ㅎ;;;)
아래 스크린샷 나갑니다~ㅎ

이걸로 배경맵을 구현해야되니,
"수퍼 울트라 초간단 맵 에디터"부터 만들어야되더군요. ㅋ
아래는 에디터를 실행해본 모습입니다.
원하는 위치에서 스페이스바를 누르면 타일을 삽입할수 있도록 만들어져있습니다.
상하 스크롤도 가능하고요. (요걸 활용해서 파라의 탑 맵 에디트 할때도 쓰일 것 같습니다. ㅋ)

며칠전 "VDP 오버스캔 트릭"에 대한 소개를 했었는데요.
실제로 구현해본 모습입니다.
총 240 라인 중, 216 라인은 스크롤 되는 배경이고요.
하단의 24라인은 아이템 및 점수판으로 쓰이게 됩니다.
원래 ASO에서는 맨위 상단에 점수가 표시되는데요,
MSX 판에서는 수직 해상도가 낮아서, 걍 짧게 하단에 표시하기로 했습니다.

실기로 구동해보시려면, 터보알이 필요합니다. 없으시다고요? 그럼 패스~ ㅎ.ㅎㅋ
추가 메모리 96KB 필요합니다. 터보알 GT면 무난하게 실행되겠네요. ㅡ,.ㅡ
실행하면 처음에 배경 타일을 로딩한 화면이 뜨는데요,
ESC 누르면 스크롤 화면으로 넘어갑니다.
ESC 한번 더 누르면, 도스로 복귀하고요.
ASO_test_1.zip
아래는 실행되는 모습을 동영상으로 찍은 것입니다.
토욜날 버전이라 하단부가 쬐금 다릅니다. 참고하셔요.
(아래 동영상에서는 화면 분할 처리에 약간 문제가 있어서, 깜박이는 구간이 있어요. ㅋ)
덧글
저번에 공개해주신 그래픽라이브러리를 약간 변경해 보면서 놀고 있는데요..
서서히 이런 저런 궁금증이 나오기 시작합니다..
배경을 페이지단위로 하려니 용량도 크고 이런 저런 문제점이 있더군요..
그런걸 어떤식으로 해결해야 할까 궁리도 해보고 있습니다..ㅋㅋ
해답은 위처럼 맵파일과 타일을 만들어서 배치를 해주어야 할것 같은데...
비법좀 조금씩 공개 해주시면 감사하겠습니다..
테크닉의 강좌도 정말 좋을듯 싶은데요...
물론 부담이 안되시는 선에서 해주시면 저같은 중생에겐 무척 많은 도움이 되겠습니다~~
개인적인 소망을 건의해 봤네요~
좋은 주말되세요~~
사용도 안하면서 요청을 할순없어서 요즘 열심히 열심히 두두려보고 있습니다~~
그런데 혹시 bl_grp_print(); 함수에 스트링 말고 정수등을 표시할수 있나요?
스트링버퍼부분을 int형으로 바꿔서해봤는데 안되네요..
숫자를 표시하려면 sprintf()등의 버퍼를 사용하는 printf 계열 함수를 같이 쓰시면 되겠네요.
sprintf()로 필요한 문자열을 만든후 최종으로 bl_grp_print()를 통해 draw~~~
슈팅 게임처럼 계속 새로운 배경으로 그리려면 타일로 쪼개는 방법이 좋겠지요.
예를 들어 스크린5(그래픽모드4)를 쓰는 경우 페이지 4개를 쓸수 있는데,
페이지 한개 정도를 배경 타일만 로딩해놓고 vdp의 블럭 전송으로 필요할때마다 그리는 방식을 쓰면 되겠습니다.
ASO 도 같은식으로 구현되어있어요.
ASO의 경우 DD구락부로 16x16 타일을 이용해서 만들고, 각타일 번호를 지정해서 맵데이터를 만들고...뭐 그런식입니다.
한번 구상해보셔요. ㅎ.ㅎ
V9958의 HW스크롤이랑 vram간 블럭 전송만 써도 낮은 CPU 점유만으로 스크롤은 만들수 있을꺼에요.
실제 게임까지 만드려면 오브젝트, 배경 간의 좌표 계산도 해야되지만... 조금씩 만들면서 구현하는 것도 재밌지용~ㅎ
역시 맵데이터를 만들고 타일을 만들어서 붙이는 방식을 상요해야 할것 같은데요.
대충은 어떤식으로 해야 할지 구상은 잡히나 실제론 코딩을
어떻게 해야 할지 좀 막막하네요~
그냥 좀 그럴듯한 screen8용 배경과 mpxp플레이어를 이용하여 간단한 데모나 한번 만들어보고
멈춰야 겠습니다~~