2016년 11월 16일 수요일

FontPack 제작 #9 - 넌인터레이스 ANSI 스크린 추가

FontPack BIOS에는 ANSI 스크린이 구현되어있습니다.


FontPack 만들 때, 처음 생각했던 기능은 H/W 폰트 엔진 + 한글 IME 였는데...

점점 프로젝트가 산으로 가고있어요~ ㅎ.ㅎ


기존 ANSI 스크린은 VDP 그래픽 모드 5, 6으로 구현됩니다.

(BASIC SCREEN 6, 7과 동일합니다.)


그래픽 모드의 가로 해상도가 512 픽셀이라, 글자를 그리면 새로로 길쭉하게 나옵니다.

하지만, 인터레이스 모드를 켜면 세로 해상도를 두배로 높일 수 있어서, 글자가 이쁘게 그릴수 있습니다.


인터레이스 디스플레이라는게 우리에겐 참 익숙한 화면인데요.

TV 화면이 그렇고, IQ-2000의 SCREEN 9 화면에서도 볼수 있었구요.

디스플레이 개발자라면, VGA의 1024x768 인터레이스 모드도 써보셨겠구요~


근데, 요즘 TV 보면서 "아... 화면이 너무 떨리네!" 이렇게 느끼시는 분 없으시지요?

디인터레이서 기술이 보편화된지 십여년이 지났습니다.

모션 보정 기능도 상향 평준화되서 왠만한 저가 기기 아니면 화면이 잘 나옵니다.


하.지.만.

레트로 느낌을 위해서 구형 CRT 디스플레이를 쓰시는 분들도 많이 있습니다.

우리 천국동도 마찬가지구요~ ㅎ.ㅎ


잡설이 길었네요.

암튼 디인터레이서 없는 CRT 모니터에서는, 인터레이스 화면의 떨림이 눈에 상당히 거슬립니다.

그래서, 세로 해상도를 절반으로 낮춘 넌인터레이스 화면으로 ANSI 스크린을 추가했습니다


아래 사진을 보시지요. ANSI3 모드로 설정된 화면입니다.





참고로, 아래는 현재 지원되는 전체 ANSI 모드에 관한 설명입니다.




ANSI1,2 모드와는 달리 12x12 폰트를 사용합니다.

원래 MSX 표준 텍스트 모드는 세로 글자 24개 사용됩니다.

ANSI3,4 모드는 세로로 글자 17개를 쓸 수 있습니다. 원래 화면의 70%정도 되는 셈이지요.

글자가 세로로 길쭉하니까, MSX가 아닌 것처럼 보이네요~ㅋ


VDP VSync 출력을 50Hz로 바꾸면, 출력 해상도가 240p(또는 480i)에서 288p(또는 576i)로 바뀝니다.

출력 해상도 바뀌어도 실제 그래픽 화면의 도트수는 변하지 않습니다.

결국 수평 라인수만 늘어난 셈이라 글씨 높이가 줄어드는 현상만 생기게 되지요.

근데 요렇게 하니까, 글자가 적당히 이쁘게 보이네요. ㅎ.ㅎ

아래 사진 보셔요~ 참고로 VDP 설정 바꾸려면, BASIC에서 CALL 50HZ 치면 됩니다.


 



CRT 모니터 쓰시는 분들께 활용이 잘 되었으면 하는 바램입니다요~

마지막으로 동작 영상 짧게 하나 찍어봤습니다.





즐거운 하루 되셔요!



댓글 없음:

댓글 쓰기