2008년 8월 30일 토요일

그래픽 보드 #4 프레임 버퍼

32KB SRAM 4개(128kb)를 이용하여 프레임 메모리를 구현해봤습니다.

해상도는 512 x 256이 되겠네요.




뒷면은 처절한 바느질 납땜으로 갑니다. 어헝~




MSX turboR의 후면 슬롯에 꼽으면 아래처럼 됩니다.

MSX RGB 출력을 받아서 비디오 믹스 후, 다시 출력되는 것이지요.




이번엔 256회색톤의 그림파일을 올려봤습니다.

제 모니터에서, 픽셀클럭 6MHz일때가 도트의 가로/세로 비율이 1:1에 가까운 것 같더군요.

이상태에서 출력 해상도가 288x220 정도 됩니다.


아래는 256 단계의 박스를 그려본 것인데, 가로 방향은 밝기차가 잘 보이지 않네요.

가로 16개, 세로 16개, 총 256개 박스를 그린 것입니다.




웹에서 구한 MSX turboR 사진입니다.




아래는 우리 아들 돌사진입니다. 얼굴만 오려서 넣어봤습니다.

생각보다 잘 나오는 것 같아요. ㅋ




MSX의 스크린0 고해상도 모드(512x192)의 텍스트와 믹스된 모습입니다.

그냥 도스에서 DIR한번 해봤습니다.




아래는 유투브에 올린 동영상입니다.

부팅해서 그림파일 슬라이드 쇼를 하는 것인데요.

비디오 메모리 로딩시, 그냥 Write하는 경우와, V-Blank 구간에서 Write하는 경우 두가지를 보여줍니다.




2008년 8월 7일 목요일

JunSoft MPX R1

파란(구 하이텔)의 MSX 동호회 시삽이신 '김준성'님이 제작하신

MSX용 미디어 플레이어 카트리지입니다.


아래는 터보알 후면 슬롯에 장착된 모습입니다.



12MHz XTAL 옆 작은 칩이 MP3, WAV, MIDI 디코딩을 담당하는 VS1003입니다.

스테레오 오디오이기 때문에 MSX 슬롯 사운드 입력핀(모노)을 쓰지 않고 별도 잭으로 출력합니다.

알테라 CPLD로 SPI 및 어드레스 매퍼 등의 로직이 구현되어 있습니다.

부가적으로 512KB 플래쉬롬이 장착되어, 전용의 바이오스 또는 게임 카트리지 등으로 활용가능합니다.


MSX의 Z80 CPU로는 MP3 파일 디코딩은 커녕, 파일 전송하는 역할도 버겁습니다. ㅎ.ㅎ;

예를 들어 320KBPS의 MP3 파일의 경우, 초당 40KBytes의 데이터를 디스크에서 디코더 칩으로 전송해야되니까요.


MSX 터보알을 구입한 뒤로는 미디 플레이어로 많이 활용했었는데,

이젠 MP3도 들을 수 있으니 좋네요.


아래 동영상은, 울 아들이 MSX 앞에서 동요을 듣는 모습입니다.



2008년 8월 3일 일요일

그래픽 보드 #3 라인 버퍼

본격적인 비디오램을 구현하기 전에,

간단한 수평 1라인 메모리를 만들어봅니다.

서랍에 굴러다니던 20ns짜리 32KB SRAM이 사용되었습니다.





MSX의 버스 인터페이스를 위해, 폐기 직전의 사라만다 PCB가 사용되었습니다.

예전 MMC/SD Drive V1 만들때 희생된 팩이지요.

잠시, 묵념...  ㅡ.ㅡ


이제, 본격적으로 라인 메모리를 써봅니다.

아래는 V-Sync와 적당한 간격을 두고 메모리를 3번 Writing 한 경우입니다.




1픽셀 토글 패턴과, UP/DOWN RAMP패턴을 출력해보았습니다.

패턴 사이 노이즈 처럼 보이는 것은 CPU의 메모리 Write와 DAC의 Read가 간섭이 되어서 나타나는 것이지요.

이건 회피 방법이 많으니 차후에 고려해보기로 합니다.


아래는 실제 MSX에서 동작되는 모습을 영상으로 찍은 것입니다.