2018년 12월 21일 금요일

MMC/SD Drive V4 케이스를 받았습니다!

저도 택배가 왔네요~ ㅎ.ㅎ

보드를 넣고 정품 카트리지를 완성!



영롱한 빛깔~~ ㅎ.ㅎb







그리고 이건 보너스~

테스트 용으로 만들었던 녹색 보드는 파랑색 케이스에 넣어봤습니다.


이것도 이쁘네요~ ㅎ.ㅎ 





즐거운 금욜되세요~ 


2018년 12월 12일 수요일

MMC/SD Drive V4 - 1차 보드제작 완료




긴시간~~ 납땜이 끝나고~ 1차 보드가 준비되었습니다!


이제 케이스/레이블 합체하러 떠날 시간입니다~ㅋ


V4와 함께 즐거운 연말을 보내시면 좋겠습니다~ ㅎ.ㅎ/



사탕봉지(?) 사진도 한장 찍었어요.





이만 자러갑니다~ 슝~


2018년 11월 11일 일요일

MMC/SD Drive V4 제작 #9 - GameRunner (PAC-V Visualizer)




MMC/SD V3와 PAC-V를 갖고 계신다면, GameRunner에서 동작하는 PSG 불꽃쇼를 보셨을텐데요.

V4에서는 SCC-I 기능이 추가되면서 SCC 불꽃쇼도 가능하도록 되었습니다.


PAC-V에는 총 9개의 LED 바(Bar)가 들어있습니다.

만약 S/W에서 OPLL을 사용한다면, OPLL 레벨미터가 우선권을 가지고 동작하게 되구요.

OPLL을 쓰지 않는 경우는 PSG 3개 + SCC 5개로 사용가능합니다.


MMCSD.COM 프로그램에서 GameRunner 모드로 진입 시,

MSX-Music ROM을 Disable 하면, PSG + SCC 모드로 설정이 됩니다.


만약 S/W가 Main BIOS의 ISR(인터럽트 처리 루틴)을 사용하지 않거나,

PSG를 직접 컨트롤하는 경우는 PSG/SCC 비주얼라이저가 동작하지 않으니... 놀라지마시구요. ㅎ.ㅎ;


음... 설명할게 별로 없네요. 그냥 영상으로 보시죠~ ㅎ.ㅎ





2018년 11월 4일 일요일

MMC/SD Drive V4 제작 #8 - OCM 기종에서 DCSG 동작불가

MMC/SD Drive V4에는 DCSG칩인 SN76489AN가 들어있습니다.

근데 저의 OCMC에서는 DCSG 컨트롤이 전혀 되지않네요.

OCMC 기본 펌웨어는 KdL PLD v3.1 또는 v3.2를 기반으로 제작된걸로 알고 있습니다.

제껀 v3.2 펌웨어입니다. 오리지널 OCM에서는 테스트를 못해봤지만, 아마 동작안 될 것 같네요.



DCSG칩은 조금 특이하게도 data write 시, 32 클럭동안 data를 유지해야하는 조건이 있는데요.

V4는 DCSG의 READY 출력신호를 이용하여 MSX의 /WAIT를 인가하는 방법으로 설계되어있어요.

세가 SG-1000 구조와 동일하다고 보시면 됩니다.


문제는 OCM의 /WAIT 상태에서 BUS 신호가 유지되지 않는 것처럼 보이더라구요.

실제로 오실로스코프 등으로 확인해본건 아니라서, 어떤 신호가 문제인지는 파악안된 상태입니다.

MRC 게시판을 검색해보니,

DCSG를 넣은 롬팩이 OCM에서는 소리가 안나온다는 얘기가 있긴하더라구요.

아마 OCM의 설계 문제가 아닐까 싶습니다.



암튼 결론은,

MMC/SD Drive V4의 DCSG 사운드는 OCM 계열의 본체에서는 사용불가입니다.

MMC/SD BIOS에서 부팅 시, KdL PLD 펌웨어가 인식되면 DCSG를 끄도록 해놨습니다.


OCM 본체에서 MMC/SD V4를 사용하실 분들은 참고하셔요.


궁금한 부분이 있으시면, 댓글로 ㄱㄱㄱ


2018-11-07 추가

/WAIT 처리 문제는 KdL PLD 문제로 확인되었습니다.

OCMC의 경우는 메가밍크스님의 최신 펌웨어(2018-11-07)로 업뎃하시면 정상동작합니다.

결론: 본문 내용은 잊으시면 되겠습니다요~ ㅎ.ㅎㅋ



PS. 최종 PCB가 나와서 조립해보았습니다.

    아래 사진처럼 빨간색 보드입니다요~ ㅎ.ㅎ




2018년 10월 28일 일요일

MMC/SD Drive V4 제작 #7 - 듀얼 DCSG 활용

MMC/SD V4에는 SCC-I, DCSG, 8BIT PCM 이렇게 3종류의 사운드가 들어있습니다.


만약 MMC/SD V4를 두개 이상 꽂게 되면 어떻게 될까요?

I/O 포트를 사용하는 DCSG와 PCM은 I/O 주소가 중복이 되겠죠?

참고로, SCC-I의 경우는 메모리맵 I/O로 구동되기 때문에 서로 충돌하지 않습니다.


DCSG, PCM의 기본포트는 아래와 같습니다.

DCSG = 49H (Franky DCSG 포트)

PCM  = 91H (Covox PCM 포트)


만약 카트리지가 두개가 장착이 되면 두번째 DCSG, PCM 포트는 아래처럼 변경됩니다.

DCSG = 3FH (MMM DCSG 포트)

PCM  = 0AH (MusicModule PCM 포트)


물론 포트를 개별적으로 OFF할 수도 있구요.

사실 DCSG, PCM 모두 출력전용 포트라서, 기기가 중복되어도 큰 문제가 생기지는 않습니다.

대신 사운드가 중복되니까 볼륨이 좀 크게 나오겠네요ㅋ


현재 DCSG의 경우는 활용할 수 있는 경우가 두가지인데요.

SG-1000 loader, VGMPlay


여기서 VGMPlay는 듀얼 DCSG를 지원합니다.

하지만 MMC/SD V4를 직접 지원하는건 아니니, 활용하려면 VGMPlay 소스를 좀 고쳐야겠죠?

PAC-V의 비주얼라이저도 쓸 수 있으면 더 좋겠구요. ㅎ.ㅎ


아래는 수정된 VGMPlay로 원더보이2 VGM을 재생하는 모습입니다.

DCSG는 구형파 3채널 + 노이즈 1채널로 구성되어있구요.

DCSG 칩 하나가 PAC-V의 LED바 4개를 사용하도록 했습니다.

듀얼 DCSG가 모두 동작하면 불꽃 8개를 볼 수 있겠네요.




영상도 하나 찍어보았습니다.

DCSG뿐만 아니라 PSG, SCC 재생 시에도 PAC-V의 불꽃을 볼 수 있어요. ㅎ.ㅎ




그럼, 이만...~

궁금한 부분이 있으시면 댓글달아주세요.



2018년 10월 20일 토요일

MMC/SD Drive V4 제작 #6 - GameRunner (가상 슬롯)

GameRunner는 가상의 MSX 환경을 만들어 주는 기능입니다.

MMC/SD V3에서도 GameRunner 기능(가상의 MSX1 ROM 환경)이 있었는데요,

V4는 내부 가상슬롯(확장슬롯이 아닙니다) 기능으로 좀 더 다양한 환경을 만들 수 있게되었습니다.


기능을 나열해보면요...

- MSX1,2,2+ 가상모드 (JP/KR/EU Locale 지원)

- BASIC 환경 지원

- DiskROM 지원 (DSK 파일 실행)

- MegaRAM과 DiskROM을 동시 구동 (ROM + DSK, DeluxeBox + DSK, SCC-I + DSK)

- RAM Kanji Font 지원

- 넌매퍼 64KB 또는 메모리매퍼 512KB 선택가능 (메인 메모리 설정)



V4의 가상 슬롯은 4개로 이루어져있구요. GameRunner 모드로 전환되면 활성화됩니다.

활성화되면, 가상 슬롯 4개가 본체의 기본 슬롯 4개를 대체하는 방식으로 동작합니다.


아래는 MSX2 JP 모드로 구동 후, SLOT_CHK.ROM을 실행한 모습입니다.

참고로, MMC/SD V4 카트리지는 A1GT의 슬롯2-0에 장착된 상태입니다.

어떤식으로 구현되는지 짐작이 되시죠? ㅎ.ㅎ





아래는 여러가지 조합으로 구동되는 GameRunner 영상입니다.

ROM/DSK 로딩없는 BASIC 부팅 및 각종 ROM, DSK, DeluxeBox, SCC-I 조합환경을 보여줍니다.





다음편에서는 PAC-V 비주얼라이저 연동과 듀얼 DCSG 동작 모습이 나올 예정입니다~ ㅎ.ㅎ

궁금한 부분이 있으시면 댓글달아주세요.



.

.

.


PS. 최종 테스트 용 V4 PCB가 나왔습니다. (아쉽게도 잘 동작하네요.ㅋ)

    곧 제작 신청을 받을 예정입니다. 올 크리스마스까지 달려보아요~ ㅎ.ㅎ/





2018년 10월 6일 토요일

MMC/SD Drive V4 제작 #5 - 레알 DCSG(SN76489)를 붙여보자

초기 계획이랑 조금 달라진 부분이 되겠네요.

보드에 CPLD 두개를 실장하고, 두번째 CPLD는 사운드 전용으로 쓰려는 계획이었는데요.


막상 개발를 해보니...

메인 CPLD 하나에 MMC/SD + MegaRAM + GameRunner (Virtual Machine) + SCC-I + PCM까지 다 들어가더라구요.

남은 로직은 별로 없긴하지만요~ ㅎ.ㅎ


결과적으로, 두번째 CPLD에 DCSG랑 PSG를 넣으려던 계획은 삭제(!)되었습니다. ㅎ.ㅎ

대신 DCSG 칩 한개를 보드에 넣기로 했어요. 진짜 칩이요~ SN76489입니다.


DCSG(SN76489)는 PSG(AY-891x)에 비해 크기가 작아서, 보드에 넣기에도 부담이 적습니다.

물론 DIP 타입이긴 하지만요. 꼭 OPLL 칩을 보는 듯 하네요.





기존 MMC/SD V4 개발 보드에도 하나를 붙이고, 따로 만능기판으로도 하나 만들었습니다.

칩 테스트 용으로 하나 있어야할 것 같아서요. 흐...


앞면 사진입니다.





뒷면 사진입니다.





DCSG 컨트롤 포트는 49H를 사용합니다.

사실 40H~4FH 영역은 Switched I/O로 할당된 곳이긴 하지만,

Franky 카트리지가 오랫동안 점유하고 있습니다. (덕분에 다른 기기들은 49H 포트를 피해야..ㅋ)


참고로 VGMplay 프로그램은 DCSG 재생 시, 항상 Franky 카트리지가 존재한다고 가정하고 동작합니다.

DCSG는 레지스터를 읽을 수 없는 칩이라서, 디텍션이 불가능하기때문에 이렇게 동작하는걸로 보심 되겠습니다.


그리고, MMC/SD V4의 DCSG I/O포트는 Disable 가능하기 때문에,

진짜 Franky 카트리지를 함께 꽂더라도 문제되진 않습니다.



동작영상은 따로 안찍어도 되겠죠? ㅎ.ㅎ

DCSG 구동 모습은 이미 유튜브에 두어개 올라가있을겁니다. 궁금하시면 찾아보시구요~



그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글주세요!

 

2018년 9월 15일 토요일

MMC/SD Drive V4 제작 #4 - 메가램 로딩 및 SRAM 활용

일단 사진 한장 띄우고 갑니다.

2048KB 롬인 Pointless Fighting을 로딩하는 모습이네요.





MMC/SD V3를 써오셨다면 아주 익숙한 화면이 되겠습니다.

V4와 H/W는 좀 다르지만, V4에서 MMCSD.COM의 사용법은 똑같습니다. ㅎ.ㅎ



1. SRAM 사용


V4의 SRAM 2048KB는 용도별로 조각조각 나누어서 사용하게 되는데요.

메가램 단일모드에는 모든 SRAM을 사용할 수 있습니다.

위의 사진처럼 2048KB 롬을 로딩하거나, 코에이의 1024KB 롬과 SRAM 세이브 등등

사이즈 제한없이 쓸 수가 있어요.

이젠 V3의 하이브리드모드(플래쉬롬 1024KB + SRAM 1024KB 조합)는 더 이상 쓰지 않습니다.

물론 대부분의 롬은 512KB 이하로 되어있으니, 평소에는 SRAM이 많이 낭비되겠죠? ㅎ.ㅎ


단일 메가램 모드가 아닌 경우에는 SRAM을 여러가지 용도로 나누어 사용합니다.

메인 메모리매퍼(512KB) 및 GameRunner 모드 용 메모리매퍼(512KB),

딜럭스박스(512KB), MA/MV 미디어플레이어 용 클러스터버퍼,

User Kanji Font (256KB) 등으로요~


동작 시나리오에 따라 중복되지 않는 기능은 서로 메모리 영역을 공유하도록 되어있습니다.

이 때문에 롬 로더 등의 코드는 모두 새로 만들었어요.

MMCSD.COM는 DOS2용 프로그램이긴 하지만,

실제 동작 시에는 MMC/SD BIOS 내부에서 BDOS, 메인 BIOS를 전혀 쓰지않습니다.

코딩하다가 머리가 뽀개지는줄..ㅋ




2. 기본 슬롯에서 구동


기본슬롯에서 사용할 때는 서브슬롯 할당이 아래처럼됩니다.

저사양 기종을 쓰는 분들에게는 이정도가 유용하지 않을까 싶으네요.


SSLOT 0 = MMC/SD Drive

SSLOT 1 = KanjiROM (BASIC)

SSLOT 2 = BASIC'n 2.1

SSLOT 3 = Memory Mapper 512KB


본체의 메모리도 충분(512KB 이상)하고 슬롯 여유도 있다면,

그냥 저처럼 확장슬롯에 꽂아서 쓰시면 되겠습니다.

당연한거지만, V4를 확장슬롯에 꽂으면 위의 SSLOT 1,2,3의 기능은 동작안합니다.


참, 이전 게시물에서는 메인 메모리매퍼로 496KB을 할당했었는데요.

이게 아무래도 S/W 호환성 문제를 발생시킬 듯 해서, 512KB를 쓰는걸로 바꼈습니다.




3. 메가롬 매퍼


이전 V3에서는 SCC 매퍼와 간이 16K 매퍼 두개만으로 모든 매퍼를 처리했습니다.

그러다보니 S/W 패치만으로 구동이 불가능한 경우도 좀 있었는데요.

(MMC/SD 용 I/O맵과 충돌하는 경우 등)


이번 V4는 아래의 기본 매퍼가 H/W적으로 구현이 되어있습니다.

KONAMI 8K, KONAMI SCC, V3호환 16K,

ASCII/KOEI 8K, ASCII 8K + SRAM, ASCII 16K, ASCII 16K + SRAM


그리고 MMC/SD로 사용되는 I/O 영역과 SCC SOUND IO로 쓰이는 영역은,

메모리 I/O를 ON/OFF 할 수 있도록 되어있습니다. 더 이상 충돌의 여지가 없는 셈이죠.


막상 구현해서 동작시켜보니 쬐끔 허무한 느낌도 있네요.

V3때는 H/W 충돌을 회피하려고, 디버깅을 참 많이 했었는데 말이죠.

(배부른 소리이려나요. ㅎ.ㅎ)




4. 기타


현재 기본 기능은 거의 다 구현이 되어있습니다.

SCC 사운드, 8BIT PCM도 들어있구요.

paraMSX-R의 기술이 집약된 NEW GameRunner도 있구요. 으흐흐...


현상태에서 메인 CPLD가 85%정도 점유중인데요.

원래 계획했던 DCSG와 세컨더리 PSG를 빼버릴까...고민하고 있습니다요.

보드 앞뒤로 CPLD 두개를 넣고 디버깅하려면 고생길이 활짝 열릴 가능성도 있어서요.ㅋㅋ

차라리 DCSG 하나를 실제칩으로 넣는 것도 괜찮아보이구요.

이거 SN76489 칩이 크기가 작아서 보드에서는 별 부담이 안되거든요.




마지막으로, 각종 롬들을 로딩/실행하는 모습을 한번 보시죠~

Voice Set 패치된 게임 구동을 위해 SCC-I 카트리지가 추가(슬롯2-2)로 쓰이고 있어요.




그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 8월 21일 화요일

MMC/SD Drive V4 제작 #3 - 확장슬롯/메모리매퍼/한자롬 테스트

일단 사진 한장 띄우고 갑니다.

아이큐2000 + MMC/SD V4 (proto ver) + FMPAC으로 프린세스메이커를 실행한 모습입니다.

한자도 잘 나오죠? ㅎ.ㅎ




아시다시피 DOS2를 구동하려면 램이 최소 128KB는 필요하구요.

MMC/SD V3의 경우 COMMAND 2.44, FAT16.COM, MMCSD.COM 등의 기본 프로그램 구동 시, 최소 램256KB가 필요합니다.


대부분 일제 MSX2/2+ 기종들이 내장 메모리가 64KB뿐이죠?

제대로 쓰려면 본체램을 확장하거나 확장슬롯 + 메모리매퍼를 써야하는데요.

확장슬롯이 없거나, 그냥 저가의 MSX2 본체 하나만 쓰시는 분도 꽤 있을꺼에요.


집에 파나소닉 FS-A1이 한대 있습니다.

요놈은 메모리매퍼도 없고, FM 사운드도 없고, 디스크도 없고, 한자롬도 없고...

그 흔한 숫자키패드도 없어요. 완전 싸9려 기종입니다. ㅎ.ㅎ

주로 애들이 게임할 때 쓰고 있죠.


요걸 MMC/SD V4를 꽂아서 써봅시다요~

현재 개발 용으로 쓰는 보드는 paraMSX-R에 쓰였던 보드입니다.

CPLD + FlashROM 8MB + SRAM 2MB + SRAM 128KB + SD카드를 넣어서, proto 버전의 V4를 구성했습니다.

V3 때처럼 이번 proto 버전은 H/W V4.0으로 되어있습니다.

개발완료되면 정식 보드는 V4.1 정도가 되겠네요.





V4 보드는 한장이지만, 내부는 확장슬롯으로 구성되어있습니다.

서브슬롯0: MMC/SD DiskROM

서브슬롯1: Kanji Driver

서브슬롯2: 비어있음

서브슬롯3: 메모리매퍼 496KB

그리고 Kanji JIS 1/2을 위한 256KB 한자폰트롬이 들어있습니다.


본체의 기본슬롯에 꽂으면 기능을 모두 사용할 수 있습니다.

저가 MSX2 기종 또는 확장슬롯이 없으시면 요렇게 쓰시구요.


메모리가 충분한 MSX2+ 이상의 기종을 쓰신다면, 그냥 확장슬롯에 꽂아서 쓰면 되겠습니다.

이 때는 MMC/SD DiskROM 하나만 동작합니다.

확장슬롯에 꽂더라도 GameRunner 모드에서 한자롬/메모리매퍼를 활용가능하니 참고하시구요.

(이건 아주~ 나중에 설명을...ㅋ)



아래는 FS-A1에서 구동 후 MEGAREPORT 프로그램을 실행한 모습입니다.

KANJI, JIS, DOS2 등이 인식되는걸 볼 수 있습니다.






그럼, 실제 동작영상을 보시죠~ ㅎ.ㅎ

메가램 기능은 V3 호환모드로 구동이 되구요.

한자롬은 본체에 한자롬이 없는 경우만 활성화됩니다. 참고하세요.





그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 7월 23일 월요일

MMC/SD Drive V4 제작 #2 - DCSG, PSG, PCM Sound Test

CPLD 용량을 꽉꽉 채우니까, SCC 1개, DCSG 2개, PSG 1개, 8BIT PCM을 넣을 수 있네요. ㅎ.ㅎ

사실 올봄에 DCSG + PSG를 묶어서, 간단한 사운드 카트리지를 만들까 한번 생각했어요.

근데 이걸 활용하실 분이 별로 없으실 것 같아서 걍 놔뒀거든요 ㅋ

결국 MMC/SD V4에 끼워넣게 되었습니다. 으흐흐...



사운드 기능이니까, 걍 동영상으로 보시죠~

아래 순서로 진행됩니다.

1. DCSG 1개 테스트 -> Alex Kidd, I'm Sorry

2. DCSG 2개 테스트 -> Wonder Boy, Wonder Boy 2

3. DCSG 2개 + PSG 테스트 -> Exed Exes

4. PSG  2개 테스트 -> Flashgal, Slap Fighter, Tiger Heli

5. PCM  1개 테스트 -> YS2 오프닝, 에이핑크 방송영상





그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 7월 16일 월요일

MMC/SD Drive V4 제작 #1 - 구상 및 SCC Sound Test

이제 슬슬 V4를 준비할 때가 되었네요! ㅎ.ㅎㅋ

그 동안 생각했던 것들을 정리해봅니다.



[확장슬롯]


사실 저는 카트리지를 항상 확장슬롯에 꽂아놔서, 별 필요없는 기능인데요.

확장슬롯이 없거나, 메모리매퍼가 없는 분들을 위한 기능입니다.

(이걸 요청하시는 분이 좀 계셔서...)

V4를 기본슬롯에 꽂으면, 디스크롬/메모리매퍼가 서브슬롯으로 나뉘어 동작합니다.



[디스크 드라이브]


기존 V3의 기능은 V4에서도 그대로 유지될 예정입니다.

메모리카드는 microSDHC 16GB 한장이면 충분하겠구요.

FAT16 코드를 디스크롬에 내장할까 생각중입니다. (1chipMSX의 스타일?)



[메가램]


용량 큰 CPLD를 쓸 예정이라서, 가능하면 많은 기능을 넣으려고 합니다.

아스키/코나미/코에이SRAM 등 많이 쓰이는 것 위주로 되겠네요.

파일 로딩 시, 롬패치를 안해도 될테니 빠르게 구동되겠죠?



[게임러너]


V3에서는 램BIOS만으로 구현되었지만...

V4에서는 paraMSX-R와 유사한 방식으로 구현될 예정입니다.

카트리지를 확장슬롯에 꽂아서 쓰더라도 가상의 기본슬롯이 에뮬됩니다.



[Kanji 폰트]


디스크롬에 Kanji BIOS가 포함되는건 V3와 동일하구요.

여기에 JIS1/2 Kanji 폰트롬이 추가됩니다.



[사운드]


SCC, DCSG (SN76489), 12BIT DAC 등이 들어갑니다.

CPLD 여유가 되면, 다른(?) 것들도 넣어볼까 생각중입니다.




바뀌는 기능은 이정도로 보시면 되겠구요.

1차로 SCC 사운드를 구현해서 테스트해보았습니다.

그동안 DCSG, PSG 등을 넣어서 테스트해봤지만, 아무래도 SCC가 비중이 가장 크겠죠?


paraMSX-R 보드를 활용해서 SCC 사운드를 한번 구현해보았습니다.

보드의 SRAM 칩이 55ns 짜리라서, SCC 5채널 모두 동작하기는 힘들까 생각했는데요.

막상 40ns 타이밍으로 SRAM 처리해도 잘 동작하네요. ㄷㄷㄷ

실제 V4 보드에는 20ns 칩으로 들어갈 예정입니다. 안전빵! ㅎ.ㅎ


아래 영상은 파로디우스를 실행해본 모습입니다.

메가램은 슬롯2-0의 MMC/SD V3가 그대로 사용되었구요.

슬롯1에는 SCC 사운드가 구현된 paraMSX-R 보드가 장착되었습니다.

MMCSD.COM을 실행하면 슬롯1에서 SCC가 인식되는걸 볼 수 있습니다.

영상에는 없지만, 메탈기어2 디스크판(해킹버전)에서도 정상 인식되었어요.




그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 7월 1일 일요일

paraMSX-R 제작 #16 - 메모리 슬롯 설정

30년 전에 MSX를 쓰셨던 분들은 이걸 기억하실텐데요.

"MSX1은 메모리가 슬롯2에 있고, MSX2는 메모리가 슬롯0-2에 있다"

물론 국산 기종에 한정된 내용입니다. 아이큐1000, X-II 등등


그 시절에는 확장슬롯이나 외장 메모리매퍼를 쓰는 사용자가 (거의) 없으니,

프로그램 만들 때, 메인 메모리의 위치를 확인할 필요성이 없었습니다.

메인 BIOS의 MSX 버전만 확인해서, 이게 MSX1인지 MSX2인지 정도만 알면 땡이었어요.

파워업테크닉 책에도 슬롯 설명할 때 비슷한 내용이 나옵니다.


일제 MSX 기종은 메모리가 대부분 슬롯3-0에 있어요.

OEM으로 들어간 유럽쪽 필립스 기종도 마찬가지이구요.

그 때문에 유럽쪽 SW에서 메모리 슬롯을 변경할 때, FFFFH 번지를 그냥 써버리곤합니다.

아이큐2000 에서 하던거랑 비슷하죠ㅋ



그럼, 여기 paraMSX-R 글에서 메모리 얘기를 왜 하는지 궁금하실텐데요.

1주일 전에 paraMSX-R + 재미나 메가램을 테스트하느라, 메탈기어2를 한번 실행해본적이 있었어요.

아래 글에 보시면, 실행이 잘 안된다는 내용이 있어요. 아마 기억하시는 분 있으시죠?

https://cafe.naver.com/msx/1791


저도 이게 갑자기 생각나서 paraMSX-R로 테스트를 해봤는데...

어?? 그냥 잘 실행이 되더라구요.

아이큐2000(CPC-300) 에뮬 모드에서 MMC/SD V3의 DOS2로 로더를 실행했는데, 별 문제 없었습니다.

그래서 번쩍 머리에 떠오른 생각!

요즘 실기를 쓰는 분들 중 DOS2 활용을 위해, 메모리매퍼를 대용량으로 쓰는 경우가 많잖아요?

특히 국산 MSX2의 경우는 내부 슬롯0-2의 메모리를 확장하는게 힘이드니,

대개 확장슬롯 + 메모리매퍼 카트리지를 쓰게 됩니다.


재미나 메가램 용 메탈기어2가 실행안되는 이유도, 결국 메인 메모리 슬롯 문제인 것 같더라구요.

그래서 paraMSX-R로 테스트를 해봤습니다.


아래 3가지 설정에서 메탈기어2 로더를 테스트합니다.

1. CPC-300 모드 (DOS2 부팅을 위해 램512KB로 설정)

2. CPC-300 모드 (램을 슬롯0-2에서 슬롯2로 변경)

3. FS-A1F  모드 (램을 슬롯3-0에서 슬롯0-2로 변경)


아래 사진처럼 FS-A1F 모드에서도 메인메모리를 슬롯0-2에 놓으면, 로더가 정상 동작하더라구요.




결국, 실기 아이큐2000(내장램 128KB 슬롯0-2)에 외장 메모리매퍼(256KB 이상)를 꽂게되면...

메인 메모리로 쓰이는 슬롯이 변경되어 로더가 죽는 문제가 발생하게 됩니다.


그럼, 영상을 보시죠~





즐거운 주말되셔요~ ㅎ.ㅎ


2018년 6월 11일 월요일

출격 대기중인 2018년식(?) MMC/SD Drive V3




플래쉬롬이 잘 못 배송(칩 type이 바뀜 ㅠ.ㅠ)되는 바람에 시간을 많이 잡아먹었네요.

드디어 작업 중인 보드가 완성이 되었습니다.

이제 케이스 작업만 남았네요. 바통을 넘길 시간이~ㅋ


기존 MX29F800 롬은 구하기 힘들어서 AM29F800 롬으로 넣었습니다.

플래쉬 타입(섹터 분할)은 똑같으니까 기존 S/W와 문제되진 않습니다요.


증명사진 한장 나갑니다 ㅎ.ㅎㅋ




즐거운 월요일 되셔요~ 





2018년 6월 6일 수요일

FIGlet 2.2.5 for MSX-DOS2 (2018.06.06)


Download: FIGlet_2.2.5_for_MSX-DOS2_20180606.zip


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

    FIGlet 2.2.5 for MSX-DOS2 (2018.06.06)

        By 서영만 <sharksym@hitel.net>

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


* FIGlet 2.2.5의 MSX-DOS2 port입니다.


  FIGlet 공식 홈페이지는 아래 링크를 참고하세요.

  http://www.figlet.org


  FIGlet Fonts Library Version 4.0을 포함하고 있으며,

  일부 파일은 MSX-DOS2 파일명(8.3)으로 변경되어있습니다.


  FIGlet Fonts Library는 아래 링크를 참고하세요.

  http://www.jave.de/figlet/fonts.html



* 요구 사항


  MSX-DOS2, TPA 메모리(추가 메모리매퍼 할당않음)



* 설치 방법


  압축파일을 임의의 디렉토리에 풀면 됩니다.

  폰트를 모두 넣으면 디스크 용량 2.7MB가 필요합니다.

  2DD 등의 저용량 디스크에서는, 사용할 폰트만 복사하면 됩니다.



* 사용법


  자세한 사용법은 매뉴얼 파일(FIGLET.6)을 참고하세요.

  실행 예) FIGLET -c Hello, world!


2018년 5월 30일 수요일

MMC/SD V3에서 16GB 메모리카드 사용하기

SD카드에 MP3, MV 동영상을 넣다보니 점점 용량이 부족해지더라구요.

주력(?)으로 쓰는 SD카드를 16GB로 바꿨습니다. 기존 SD카드는 8GB였구요.


이번엔 파티션을 좀 크게 나눠서, 클러스터 사이즈 64KB로 해봤습니다.

FAT16 최대치인 4GB 크기가 되는거지요~


예전에 SD카드 파티션 나눌때는 별도의 프로그램(파티션 위저드)을 썼는데요.

이제는 윈도 10의 디스크 관리에서 바로 설정이 가능합니다.




SD카드는 SanDisk 메모리로 구했습니다. ㅎ.ㅎ





먼저 V3의 INSTALL 프로그램으로 FAT12 파티션 32MB x 2개를 만들었구요.

(깜박하고 사진을 안찍었네요. ㅋ)


나머지 파티션은 윈도10의 "디스크 관리" 메뉴에서 진행했습니다.


FAT16 파티션 설정할 때, 사이즈를 4095MB 이하로 해야합니다.

4096MB 이상으로 설정하면 FAT32 파티션이 됩니다. 참고하셔요!





파티션 6개는 아래처럼 설정이 되었습니다.

32MB  x 2개

4.0GB x 3개

2.7GB x 1개


FAT16 4GB 설정할 때, 클러스터가 크다고 경고가 나오는데요.

MSX의 FAT16.COM 드라이버에서도 별 문제없이 동작이 되니까 걱정안하셔도 됩니다.

제가 테스트를 많이 해봤어요. ㅎ.ㅎㅋ

그나저나 윈도 내장 프로그램만으로 작업할 수 있어서 좋네요!!



아래는 파티션 위저드를 실행한 모습입니다.

FAT12 파티션은 파일시스템이 "Other"로 나오지만 망가진건 아닙니다요~





SD카드를 GT로 옮겨서 부팅한 모습입니다.

파티션 6개로 인식이 되었네요.





파일을 마구마구 넣을 수 있으니 좋습니다요~ ㅎ.ㅎ


작업완료 기념으로 파이널 판타지 엔딩(8편이죠? Eyes on me) 영상도 한번 돌려봅니다.





그럼, 즐거운 MSX 하셔요!


2018년 4월 17일 화요일

대우 FDD CPF-350C - 아이큐2000의 친구

대우 3.5" FDD가 한대 있습니다. "대우 CPF-350C"

아이큐2000과 함께 저의 어린시절을 아름답게 수놓았던 FDD였지요 ㅋ


마지막으로 전원을 넣어본지 10년 넘은 것 같은데... 기억이 가물합니다. ㅎ.ㅎ

오랫동안 책장에서 먼지만 쌓이고 있었는데, 그냥 창고에 넣어주기로 합니다.


녹슬고 상처난 곳이 많지만, 잘 닦고 동작확인을 한번 해보았습니다요.

아이큐2000에 연결해서 알레스트 외전을 실행해봅니다.





오랜만이라 그런지 디스크 I/O 에러도 좀 나고... 암튼 100% 정상 상태는 아닌 것 같네요.

디스켓을 넣었다뺐다 몇번 해주니 좀 괜찮아집니다요 ㅋ


사실 처음에 디스켓 넣는데, 안에서 부시럭거리는 소리가 나면서 디스켓이 끝까지 안들어가더라구요.

봤더니... 아래처럼 비닐봉투가 하나 들어있네요. 아마도 큰아들넘의 소행인 듯!





창고에 넣기전에 내부 사진도 한번 찍어봤습니다.


파나소닉 FDD, 모델명은 JU-363으로 적혀있네요. 레이블이 살구색으로 잘 익었습니다. ㅎ.ㅎ





컨트롤칩인 WD1772도 보이네요~





그럼, FDD야 이제 안녕~~ ㅎ.ㅎ/


2018년 3월 11일 일요일

MMC/SD Drive V3 - 프로토타입 카트리지

때는 2015년... MMC/SD V3를 개발하던 시절 얘기입니다.


처음 개발할 때에는 PCB를 바로 찍어서 만든건 아니었구요.

폰트팩에 microSD 슬롯을 붙여서 만들었습니다.




폰트팩에는 플래쉬롬 2MB와 SRAM 128KB가 내장되어있는데요.

이 상태로 메가램은 못 만들겠지만, SDHC 카드로 드라이브는 미리 구동해볼 수가 있었어요.


기능으로만 본다면,

V3 정식 버전의 디스크드라이브 기능만 동작한다고 보시면 되겠습니다.


정식 V3 PCB를 만든 후에는, 헐벗은 보드 상태로 서랍에서 잠자고 있었는데요.

주말을 맞아 옷을 입혀줬습니다.


짜잔~ㅋ

이제 책장에 꽂아두면 되겠네요. 장식품ㅋㅋ




그.리.고,

오랫만에 MMC/SD 가족 모임도 했습니다.

사진 한장 나갑니다요~ ㅎ.ㅎ





그럼, 편안한 밤 되셔요...



2018년 2월 13일 화요일

출격 대기 중인 PAC-V

주르륵 납땜 완료 후 대기 중인 PAC-V 보드입니다. ㅎ.ㅎ

테스트는 끝난 상태인데요. 연휴 끝나면 맛탱이님께 전해드릴 예정입니다. (옷을 입어야~ㅋ)




즐거운 밤 되셔요~ ㅎ.ㅎ


2018년 1월 16일 화요일

MMC/SD Drive V3 제작 #16 - 동영상 변환 갑니다~

지난주에 동영상 재생 기능을 구현했는데요.

BIOS랑 유틸을 정리해서 업로드했습니다. 자료실 참고하시구요.


그럼, 이번엔 변환 유틸을 실행하는 방법을 보여드릴께요.


아마 써보신분 계시겠지만ㅋ

MMC/SD V2 용 변환툴은 사용법이 매우(!) 복잡했었는데요. ㅎ.ㅎ

이번 MMC/SD V3 용 변환툴은 FFmpeg을 이용해서 쉽게 동작하도록 만들었습니다.



1. 준비물

   MMCSD_AVGEN.exe

    -> MMC/SD BIOS 툴 묶음파일에 들어있습니다.


   ffmpeg.exe, ffprobe.exe

    -> FFmpeg 툴에 포함된 프로그램입니다.

       https://ffmpeg.org 에서 다운로드하시면 됩니다.


   유틸을 같은 디렉토리에 모아둡니다.

   (윈도의 PATH가 걸린 곳에 유틸을 옮기셔도 좋습니다.)




2. 실행 방법


   아래는 윈도의 커맨드 창을 열고 MMCSD_AVGEN을 실행한 모습입니다.




   MMCSD_AVGEN 동영상파일명 [엔터]입력하면 됩니다.

   옵션으로 볼륨, 밝기 등을 조절할 수 있습니다.


   /Dn: audio Delay  (n = 0, <1>, 2, ... 8)

        오디오 출력에 딜레이를 줍니다. (기본값 1 = 1프레임 딜레이)

        영상 프레임단위의 딜레이입니다.

        사용자 환경에 따라 설정하면 됩니다.


   /Vn: Volume boost (n = <0>, 1, 2, ... 9)

        오디오 볼륨을 높입니다. (기본값 0 = x1.0)


   /Bn: Brightness boost (n = <0>, 1, 2, ... 8)

        영상 밝기를 높입니다. (기본값 0 = x1.0)


   /R : Remove side black-bar (4:3 image on 16:9 video)

        기본값은 OFF입니다. /R을 넣으면 켜지는 옵션입니다.

        4:3 영상을 16:9 비디오파일로 만든 경우가 있는데요.

        영상을 보면, 좌우에 검은 띠가 있습니다. 이때 쓰시면 됩니다. 



3. 실행 예


   아래는 "Ys ETERNAL.mp4" 영상을 변환하는 모습입니다.




   원본 영상의 사이즈는 720p(1920 x 720)입니다.

   MSX의 스크린2 화면 비율에 맞게 적당히 자르고 눌러서(?) 만듭니다.

   ffmpeg 구동 시의 필터 설정을 확인할 수 있습니다. (Crop, Pad ... 등)

   참고로 프로그램 동작 시, 작업 용으로 임시 디렉토리를 생성됩니다. (작업 완료 후 삭제됨)


   오디오(PCM) -> 비주얼라이저(PAC-V) -> 비디오(스크린2) 순으로 진행됩니다.


   아래는 변환이 완료된 모습입니다. 72MB짜리 MV파일이 생성되었네요.

   최종 출력 파일의 이름은 MMCSD_V3.MV으로 되어있습니다.

   적당히 이름을 바꿔서 MSX에서 쓰면 되겠습니다.





4. MSX에서 재생


   MMCSD.COM 파일명 [리턴]하면 영상이 재생됩니다.

   아래는 변환된 이스 이터널 오프닝이 재생되는 모습입니다.






궁금한 부분 있으시면 댓글 붙여주세요~ ㅎ.ㅎ


2018년 1월 8일 월요일

MMC/SD Drive V3 제작 #15 - 동영상을 돌려보아요!

아마 기억하시는 분이 계실 듯 하네요.

2009년에 MMC/SD V2용으로 동영상 플레이어를 만들었는데요.

크기는 좀(많이) 작지만 스크린12의 컬러풀한 영상을 볼 수 있었지요. 12FPS입니다.

궁금하시면 이쪽으로 --> https://youtu.be/1NytCAW1Dws


이번엔 MMC/SD V3로 조금 다른 방식의 영상을 만들어보았습니다.


스크린2 모드의 풀스크린(256 x 192 픽셀)으로 12FPS 영상을 구현했습니다.

스크린2를 사용하지만 V9938의 넓은(?) VRAM과 팔레트를 활용해서,

어느정도 최적화된 화면으로 인코딩을 해보았어요.


영상 데이터는 FAT16 드라이브에서 파일을 읽어서 표시합니다.

참고로 FAT16 드라이브의 최대 용량은 4GB인데요. (클러스터 64KB 경우)

이번 동영상 플레이어는 용량 제약이 없어서, 4GB 단일 파일로 쭈욱 재생할 수 있습니다.

(예전 MMC/SD V2에서는 64MB 영상이 최대 크기였지요.)


오디오 출력으로는 터보알 PCM 또는 코복스 PCM을 사용할 수 있습니다.

샘플레이트는 13KHz 정도되구요.


결론적으로, MSX2 기종에서 MMC/SD V3 + Covox만 꽂으면 영상을 볼 수 있다는 얘기지요.



아래는 영상재생 중에 찍은 사진입니다.

스크린2라서 한번에 16색 밖에 표시 못하지만, 적절한 팔레트 선정과 디더링으로...

사람 얼굴 정도는 식별 가능합니다. ㅎ.ㅎ;;





설명이 길었네요. 영상 몇개를 조금씩 재생해보았습니다. 한번 보시지요~

Big Buck Bunny -> Apink의 Mr.Chu -> IU의 좋은날 -> YS2 이터널 오프닝

순으로 나옵니다.





영상 하나 더 가욤~

요건 Bad Apple로 알려진 영상입니다.





그럼, 이만 물러갑니다~ ㅎ.ㅎ