레이블이 _MMC/SD Drive인 게시물을 표시합니다. 모든 게시물 표시
레이블이 _MMC/SD Drive인 게시물을 표시합니다. 모든 게시물 표시

2024년 8월 25일 일요일

MMC/SD Drive V4 제작 #22 - MV 영상으로 SD 응답속도 테스트

SD카드를 Read/Write 할 때에는 컨트롤러에게 먼저 커맨드를 보내고 Ready 신호를 기다리게 됩니다.

그 후 Read/Write를 주르륵 해주는 거죠.

근데 데이터(파일)이 저장된 위치에 따라 응답속도에 편차가 생기게 됩니다.


MMC/SD에서 동영상 재생 기능을 처음 넣었던 때가 2009년 MMC/SD V2를 쓰던 시절이었는데요.

그 때는 동영상 저장용 파티션을 별도로 만들어서, SD카드의 연속된 메모리공간을 활용했습니다.

SD카드의 멀티섹터 Read 커맨드를 쓰면, 연속으로 데이터를 읽을 때 빠르게 처리가 가능하죠.


나중에 2015년 MMC/SD V3부터는 디스크 파티션에 일반 파일을 영상으로 처리할 수 있도록 구현이 되었습니다.

이 방법은 CPU에 굉장히 부담이 됩니다.

많은 클러스터로 쪼개진 파일을 처리해야 되는 것과 SD카드의 연속 읽기를 쓰지 못한다는 것 때문이죠.

사실 V3 설계 때에는 MV 플레이어는 계획에 없었는데요.

DSK 에뮬 때문에 클러스터 처리를 구현해보니, MV 플레이어도 가능성이 보이더라구요 ㅎ.ㅎ


처음 MV 플레이어를 만들었을 때에는 주로 8GB SD를 사용했구요.

2018년 V4에 와서는 16GB SD를 쓰다가 후기에는 32GB SD를 사용했습니다.


여러 종류의 SD카드를 쓰면서 알게된 것이 하나 있는데요.

용량이 늘면, 커맨드 응답도 느려지더라구요.

초기 코드는 샌디스크 8GB SD기준이었는데, 그 때는 커맨드 응답이 꽤 빨랐습니다.

이 코드가 32GB SD에서는 버티지 못해서, 결국 작년에 MV 플레이어 코드를 다 갈아엎었죠.


.

.

.


며칠전 알리에서 할인하는 SD 32GB를 3개 구매합니다.

빨간색+회색의 Sandisk Ultra UHS-I 모델입니다. 두둥~~




사진의 왼쪽 흰색+회색으로 된 SD가 구버전이구요. 오른쪽 빨강+회색은 신버전입니다.

둘 다 UHS-I, Class 10으로 거의 같은 속도입니다.

사실 구버전은 종류가 여러개 있는데요.

최대 속도가 80MB/s, 98MB/s, 100MB/s 였던걸로 기억하는데, V4에 번들된 SD는 80MB/s, 100MB/s 두 종류였습니다.

사진 아랫쪽의 삼성 EVO 32GB는 제가 최근 4년정도 계속 쓰던 거네요.


그럼 본론으로 넘어가서, 어제 택배로 받은 신버전 32GB SD에 기존 SD카드와 똑같이 파일들을 때려넣고 테스트 해봅니다.


드라마 도깨비의 영상으로 테스트해보았어요!


MMC/SD BIOS는 디버깅모드입니다. 동영상 재생 시, SD카드 커맨드의 응답속도가 PAC-V의 LED로 표시됩니다.

왼쪽부터 켜지는 LED바 1개가 PCM 샘플 1개를 의미합니다.

커맨드를 대기하는 동안 LED가 점점 켜지는거죠 ㅎ.ㅎ

결국 LED가 모두 꺼져있면 응답속도가 빠르고, LED가 많이 켜지면 응답이 느린 상태입니다.


아래는 삼성 EVO입니다.




아래는 샌디스크 구버전입니다.




아래는 샌디스크 신버전입니다.



위의 사진에서는 샌디스크 Ultra 신버전이 꽤 느린 것으로 보이는데요.

실제로 MV 재생을 해보면 타이밍을 놓쳐서 화면에 테어링도 생기고, 사운드도 끊어질 정도로 엉망이 됩니다 ㄷㄷ


여러 종류의 MV 파일로 테스트 했을 때의 응답 딜레이는,

삼성 EVO        -> 대부분 1개 또는 2개, 느린 경우는 6개까지 발생

샌디스크 구버전 -> 대부분 0개 또는 1개, 느린 경우는 9개 이상 발생

샌디스크 신버전 -> 대부분 2개 ~ 5개, 느린 경우는 9개 이상 발생


삼성 EVO가 가장 안정적이구요. (그래서 계속 쓰고 있었...)

샌디스크 구버전은 파일에 따라 가끔 테어링이 나는 경우가 생깁니다.

샌디스크 신버전은 사실상 재생포기 수준이네요 ㅎ.ㅎ


V4에서 빨강+회색의 샌디스크 SD를 쓰시려는 분은 참고하세요~

저는 이번에 구매한 것들 서랍에 쳐박아놨습니다ㅋㅋ


그럼, 이만...


PS. 나무위키에서 찾아보니 위의 SD에 대한 출시연도가 나오네요. (위키라서 틀린 정보일 수도 있습니다.)

제가 샌디스크의 구버전(흰색+회색), 신버전(빨강+회색)이라고 표현했는데, 모두 같은 해(2020년)에 출시되었군요.




2024년 7월 22일 월요일

MMC/SD Drive V4 제작 #21 - SUB-ROM에 긴 제목을 넣어보자

V4에서 SUB-ROM 기능을 쓰시는 분 계세요? ㅎ.ㅎ

참고로 V3에서는, 작은 용량의 메가램 때문에 하이브리드 모드(MegaRAM + FlashROM)나 코에이 모드로 활용되었습니다.


V4에서는 4MB의 SUB-ROM 영역을 Multi-ROM 모드로 사용하는데요.

이게 옛날 V2의 Multi-ROM II와 비슷한 모습이죠.


그닥 활용안되던 V4의 SUB-ROM을 좀 더 유용하게 보이도록(?) 만들어보았습니다.

롬 이름에 긴 제목을 달아주는 것으로요ㅋ

이 기능은 BIOS/Tool v5.75부터 지원됩니다!


일단 테스트를 위해, 코나미의 롬을 모아서 넣습니다.

파일명은 코나미 카트리지의 시리얼 넘버 RCxxx.ROM 스타일로 바꿨네요.

코나미의 모든 롬을 다 넣으면 좋겠지만, SUB-ROM 용량 제약이 있으니... 몇몇 게임을 제외합니다. (마종, 콘트라 등등)

선택된 롬은 총 53개입니다.




기존에 SUB-ROM을 다운로드하는 방법은 보통 2가지 정도인데요.

MMCSD FILENAME.ROM /S

MMCSD *.ROM /S


여기서 '/S:Long_Name' 옵션이 추가되었습니다.

최대 28자의 롬 제목을 별도로 붙여줄 수 있어요.

예) MMCSD RC749.ROM /S:THE_MAZE_OF_GALIOUS


제목을 쓸 때는 빈칸(SPACE)를 쓸 수 없으니, 대신 언더스코어(_)를 쓰면 됩니다.

다운로드 할 때 빈칸으로 변환이 되도록 해놨어요.


아래는 53개의 롬을 모두 다운로드한 후의 모습입니다.

남은 SUB-ROM 영역이 0이 되었네요! ㅎ.ㅎ




재부팅 후 부트 메뉴에서 SUB-ROM으로 진입하면 아래처럼 긴이름으로 표시됩니다.




만약 구버전의 BIOS를 쓰는 경우는 아래처럼 짧은 제목(롬 파일명)으로 표시됩니다. 참고하셔요.




그럼, 즐 V4 하셔요~~ ㅎ.ㅎ/


MMC/SD Drive V3/V4 - BIOS & Tool v5.75

Download: 20240722_MMCSD_Drive_V3_V4_BIOS_Tool_v575.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.75 ]


- MMC/SD BIOS


  MMCSD Tool에 BIOS 롬이 내장됨. (MMCSD.OVL에 포함)

  -> 기기와 Tool의 BIOS 버전이 차이나는 경우,

     옵션없이 MMCSD.COM을 실행하면 BIOS 업데이트가 진행됨.

     '/U' 옵션으로 강제 업데이트도 가능함.



- SUB-ROM


  롬 다운로드 시, 최대 28문자의 제목을 추가 가능.

  -> '/S' 대신 '/S:' 옵션 사용.

     예) MMCSD RC749.ROM /S:THE_MAZE_OF_GALIOUS



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD.COM 프로그램을 실행.


3. 'Update BIOS-ROM? [y/N]' 메시지가 나오면 Y키 누름.


4. 다운로드 완료 후 RETURN키 눌러서 재부팅.


4. 끝


2024년 7월 11일 목요일

[IPS] SD-SNATCHER - MMC/SD V4의 GameRunner II 전용 LED Visualizer 패치

SCC 및 SCC-I를 사용하는 코나미 게임은 대부분 롬카트리지입니다.

V4의 GameRuner II 모드를 이용하면 쉽게 PAC-V의 LED 비주얼라이저를 PSG + SCC 모드로 동작시킬 수 있죠.


문제는 디스크 버전으로 된 게임인데요. SNATCHER, SD-SNATCHER 두개가 있습니다.

SD-SNATCHER는 본체의 Main BIOS 루틴을 사용하지 않기 때문에, GameRunner II의 BIOS의 동작도 무시됩니다.

PAC-V가 존재하더라도 PSG + SCC를 위한 비주얼라이저는 동작이 불가능하게 됩니다요.


그.래.서.

SD-SNATCHER 전용의 LED 비주얼라이저 패치를 만들어보았습니다.

두말하면 잔소리지만, MMC/SD V4의 GameRunner II에서만 제대로 동작합니다 ㅎ.ㅎ

Download: SD-SNATCHER_PAC-V_VIS_Patch.zip


IPS 패치는 Luna IPS 등의 프로그램으로 적용하시면 되겠구요.

패치는 오리지널 SD-SNATCHER 디스크 버전 및 메모리매퍼 크랙버전과 크랙버전에 영문/한글 패치가 적용된 버전 모두 쓸 수 있습니다.


타이틀 및 오프닝 데모, 게임 플레이, 엔딩 데모의 3부분 코드가 패치되어있습니다.

패치파일 2개를 디스크 1번, 3번 DSK 파일에 패치하면 됩니다.


V4에서 실행할 때는, MMCSD.COM SD-SNAT.DSK /G2JSM /DM 등의 옵션을 쓰면 되겠습니다.

아래는 저의 GT에서 구동되는 모습입니다.




그럼, 이만...


2024년 6월 12일 수요일

Leonardo Padial 아자씨와 'MMC Disk'

구글 포토에서 (많이) 지난 6월 12일 사진을 띄워주길래, 조금 적어봅니다.

아래 사진은 2005-06-12에 찍은 건데, 당시 폰카메라 화질이 안좋아서 흐릿하네욤 ㅎ.ㅎ

제 GT에 LPE-MMC-V1 카트리지를 꽂은 모습입니다.



기억하시는 분 계시겠지만, MMC/SD Drive의 옛 이름 'MMC Disk'이죠.

2004년에 MMC Disk를 만들어서 공개했을 때, 유럽 아자씨들이 관심을 꽤 보이더라구요.


사진 보시면 SCC 칩이 안보이죠?

코나미 SCC게임들을 구동하거나 MGSEL 등의 뮤직 프로그램을 활용하려면 SCC가 있는 편이 좋은데요.


왠만한 MSX 유저들은 사운드 전용 SCC카트리지를 하나씩은 갖고 있었으니까,

이런 MMC/SD 미디어를 쓰는 디스크드라이브에 자체에 대한 것으로 관심이 많이 받은 것 같아요.

그리고, 선라이즈 IDE에 CF-SD 어댑터 쓰면 되는데, 이딴 거 왜 만들었냐고 핀잔도 좀 받았다는 게...ㅎ.ㅎㅋ


암튼 2005년쯤 Padial씨가 연락이 왔는데,

제 회로를 기반으로 No SCC 버전의 MMC Disk를 만들었다고 하면서, 보드 하나를 선물로 주겠다고 그러더라구요.

그래서 그 때 받았던 보드가 LPE-MMC-V1이었습니다.


그 후로 많은 교류는 없었지만, 20년이 지난 지금은 고인이 되셨네요.

이젠 이메일도 못 보낸다능...ㅠ.ㅠ



암튼, 그 후로 LPE-MMC 시리즈가 꽤 많이 나왔는데요.

아래 사진은 2007년에 나왔던 LPE-MMC-V6입니다.

확장슬롯 통합 버전이라서, 서브슬롯 1개는 MMC Disk가 점유된 상태니 나머지 3개 슬롯만 보이네요 ㅎ.ㅎ




갑자기 구글 포토에서 사진이 뜨는 바람에 좀 끄적여봤습니다.


즐거운 오후 되세요~ ㅎ.ㅎ/


2024년 5월 26일 일요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.74

Download: 20240526_MMCSD_Drive_V3_V4_BIOS_Tool_v574_1.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.74 ]


- GameRunner


  ROM파일 로딩 시, JoyMega 패치 가능

  -> '/J' 옵션으로 3버튼 및 6버튼 MD패드 사용


     포트1의 버튼맵입니다.

     MD MODE  = KeyBoard STOP

     MD START = KeyBoard F1

     MD X     = KeyBoard F2

     MD Y     = KeyBoard F3

     MD Z     = KeyBoard F4

     MD C     = KeyBoard F5

     MD A     = JoyStick A button

     MD B     = JoyStick B button


     포트2는 방향, A, B 버튼만 사용가능합니다.



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD574.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD574.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2024년 1월 18일 목요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.73

Download: 20240118_MMCSD_Drive_V3_V4_BIOS_Tool_v573.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.73 ]


- MegaROM


  ASCII 8K (SRAM) 매퍼 지원 개선

  -> 태양의 신전, Dires, Deep Dungeon II, Elslid,

     Heroes of the Lance, Kisei Shogi, Shougi Shinan 2,

     Syougun, Ultima Exodus, 사령전선, Wizardry, Xanadu


  ASCII 16K (SRAM) 매퍼 지원 개선

  -> A-Train, 대전략, Harry Fox Special, Hydlide 2,

     Jyansei, Mahjong Goku, 수퍼 대전략


- GameRunner


  V4에서 사용 시, 내장 SCC로 구동하도록 변경 

  -> V3의 '/G' 옵션 호환 용




[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD573.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD573.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 12월 25일 월요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.72

Download: 20231225_MMCSD_Drive_V3_V4_BIOS_Tool_v572.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.72 ]


- BOOT_MENU


  SCC-I 128KB 오동작 수정

  -> v5.69 ~ v5.71에서 발생함



- FDD_EMU


  DSK 이미지가 DOS2 디스크가 아니면 /DT 옵션 무시



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD572.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD572.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 8월 23일 수요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.71

Download: 20230823_MMCSD_Drive_V3_V4_BIOS_Tool_v571.zip


아래는 추가수정된 BIOS ROM파일입니다. MMCSD571.ROM 파일만 교체해서 쓰세요.

--------------------------------------------------
MMC/SD Drive(tm) V3/V4 - BIOS & Tool
    By Yeongman Seo <sharksym@hitel.net>
--------------------------------------------------


[ BIOS & Tool v5.71 ]

- GameRunner II

  FEEDBACK 로딩 시 멈춤문제 수정

- FDD_EMU

  내장 확장슬롯 처리 개선
  -> DOS2 Hybrid 모드 외에는 확장슬롯 OFF


[ 업데이트 가이드 ]

1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.
   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)

2. MMCSD571.ROM 파일을 SD카드 루트에 복사.

3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.
   A:\>MMCSD MMCSD571.ROM

4. 다운로드 완료 후 리턴키 눌러서 재부팅.

5. 끝

2023년 8월 12일 토요일

제가 만든 기기의 PCM 출력 종류

어제 파라동에서 MV Player의 PCM 포트에 대한 댓글을 적다가 생각나서 조금 적어봅니다.


제가 만든 기기들 중에 PCM 기능이 들어간 3종류의 기기가 있습니다.


1) MMC/SD Drive V4

-> unsigned 8bit mono PCM


I/O 포트는 필립스 뮤직모듈(0AH) 또는 코복스(91H)로 선택가능합니다. (default: 91H)

참고로 V4를 두개 꽂으면, 각각 뮤직모듈과 코복스로 자동설정됩니다.

MMCSD/COM에서 MV/MA Play 시 사용됩니다.



2) T-Wave

-> unsigned 8bit stereo/mono PCM


전용의 I/O 포트(mono: 3CH, stereo: 3DH)를 사용합니다. (default: OFF)

스테레오 데이터는 L -> R -> L ... 순서입니다. WAV 파일의 데이터 순서와 같습니다.

MMCSD.COM에서 MV/MA Play 시 mono 포트가 사용되며, 스테레오 WAV를 재생할 때는 stereo 포트가 사용됩니다.



3) MoonBase

-> signed 16bit mono PCM, unsigned 8bit mono PCM


16bit PCM은 전용의 I/O 포트(3EH)를 사용합니다. (default: OFF)

16bit 데이터는 low 8bit -> high 8bit -> low 8bit ... 순서입니다. WAV 파일의 little-endian 순서와 동일합니다.

MMCSD.COM에서 16bit WAV 재생 시 사용됩니다.


8bit PCM은 필립스 뮤직모듈(Y8950 + unsigned 8bit PCM)을 에뮬레이션합니다.

I/O 포트는 뮤직모듈(08H ~ 0FH)를 사용하며, 리셋 기본값은 포트 OFF입니다.

Y8950의 GPIO 에뮬레이션으로 ON됩니다.

MMCSD.COM에서 MV/MA Play 시 사용되며, 모노 WAV를 재생할 때에도 활용됩니다.


마지막으로,

MMCSD.COM에서 8bit PCM 출력시의 포트 우선순위입니다.

1. T-Wave

2. MMC/SD V4

3. turboR PCM

4. Philips Music Module



그럼 즐거운 주말되세요~ ㅎ.ㅎ/


2023년 8월 11일 금요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.70

Download: 20230811_MMCSD_Drive_V3_V4_BIOS_Tool_v570.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.70 ]


- Video Player


  싱크 타이밍 향상 및 구버전 SD의 성능개선


  재생 조절용 키처리 추가

  -> SELECT: 역재생

     RETURN: 빨리감기(8배속)

     BS: 되감기(8배속)

     CAPS Lock On: 현재 파일의 반복재생


- Audio/Video Player


  파일명에 와일드카드를 사용할 수 있음

  예) MMCSD.COM *.MV

      MMCSD.COM *.WAV


  여러개의 파일을 연속재생 시, 키 처리 추가

  -> ESC 키: 현재 재생을 중단하고 다음파일로 넘어감

     SHIFT + ESC: 모든 재생을 중단하고 DOS2로 복귀



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD570.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD570.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝




2023년 8월 9일 수요일

MMC/SD Drive V4 제작 #20 - 동영상 플레이어 대공사

현재 MMC/SD V3,V4에서 사용되는 스크린2 동영상(MV) 플레이어가 나온지 벌써 5년이 되었네요.

기존 코드는 구조적으로 개선하는 것이 힘들어서, PAC-V LED 비주얼라이저 처리만 겨우 추가한 상태로 오랫동안 쓰였는데요.

이번 여름 방학을 맞아, 코드를 갈아엎었습니다.


새로 만들면서 SD카드 몇 종류를 테스트해보니, 나중에 나온 SD가 커맨드 응답이 빠르네요.

아래는 주로 쓰던 microSD 3종류입니다.

왼쪽은 V3에 번들 된 SanDisk 8GB, 중앙은 V4에 번들 된 SanDisk 16GB,

오른쪽은 제가 요즘 쓰고 있는 삼성 EVO 32GB입니다.



참고로, EVO 32GB는 원래 UHS(UHS-I)를 지원합니다만...

MMC/SD에서는 3.3V SPI(1BIT)로 구동중이라서, 전송속도는 SanDisk Class4와 똑같습니다.

하지만 메모리 R/W를 위한 커맨드 응답 속도는 EVO가 가장 빠르고, SanDisk Class4가 가장 느립니다.


제가 처음 스크린2 MV 플레이어를 제작할 때에는, V3에 8GB 메모리의 동작에서 맞춰서 겨우 구동되도록 구현했었는데요.

근데 이젠 SD의 커맨드 응답이 빨라지민, 코드를 잘 만들면... 동영상 재생 타이밍을 정확하게 맞출 수 있을 것 같더라구요.

뭔가 알 수 없는 느낌적인 확신(?) ㅋ


사실 기존 MV 플레이어에서 음질이 왔다갔다하는 이유가...

이 커맨드 응답속도 문제에 PAC-V용 비주얼라이저 데이터 처리를 추가되면서 발생한 CPU 부하때문입니다.

하지만 이 코드를 더 개선할 방법이 없었어요. 당시 SD카드에서는 이미 한계라서요 ㅎ.ㅎ


이번 리뉴얼 되는 MV 플레이어의 1차 구현 목표는

- SanDisk class10과 삼성 EVO 등의 빠른 SD 용으로 더 정확한 타이밍을 구현

- 느린 SanDisk class4에서도 약간의 음질 저하만으로 타이밍 맞춤

입니다.


그리고 2차 구현 목표는 

- LED 비주얼라이저의 리프레쉬 올리기 (기존 12fps -> 24fps)

- 되감기, 역재생 구현

- 무한 루프 구현

입니다.



1차 구현을 해보니, 예상했던대로 싱크 타이밍은 좀 더 정확히 맞춰지니까 음질은 상당히 좋아졌습니다.

하지만 PAC-V LED 처리를 넣을 코드 공간이 안나오네요ㅋㅋ


머리를 쥐어뜯으면서 고민해보니,

VRAM 전송 루프를 더 크게(클럭을 더 쓰게) 만들면?

메인 루프의 idle time은 줄어들지만, VRAM 전송 시 PAC-V LED 컨트롤 함께 넣어버릴 수 있더라구요.

예전 코드에서는 비디오+오디오 따로 PAC-V LED 따로 처리했는데, 지금은 몽땅 한 루프에서 처리합니다.

대신 코드 여유가 줄어서, PAC-V 처리 옵션을 넣지는 못했네요. 그러니까 LED 출력코드가 '항상' 동작하게 됩니다.

물론 PAC-V가 없어도 아무일도 생기지 않습니다만... 다른분이 I/O 주소가 겹치는 기기를 만들게 된다면 문제가 될 수는 있겠네요 ㅎ.ㅎ


이제 남은 2차 목표는 되감기, 역재생, 무한 루프 처리입니다.

영상 재생 중 ESC 키는 무조건 해야하니까, 코드 양을 많이 늘리지 않고 추가적인 키 처리를 해야한다면...?

ESC 키와 같은 ROW의 키들을 활용해야겠죠? (사실 커서키를 쓰고 싶었는데...ㅋ)

ROW 7에는 RETURN, SELECT, BS, STOP, TAB, ESC, F5, F4가 들어있습니다.

여기서 MSB쪽의 RETURN, SELECT, BS를 사용합니다.

RETURN -> 빨리감기 (이건 기존 코드에서도 있었죠?)

SELECT -> 역재생

BS     -> 되감기

로 동작합니다.


열심히 짱구를 굴려서 구현이 되었네요. 

이제 남은 Z80 CLK이 별로 없으니, 무한루프 기능 포기입니다. ㅎ.ㅎ

.

.

.

라고 생각하면서 코드를 며칠 놔뒀더니... 또 아이디어가 떠올랐어요.

CAPS LED를 변수처럼 사용하면서 키가 연속입력이 되지않도록 구현하는데, 딱 마지막 여분의 CLK으로 구현이 되네요.

CAPS 키는 ROW 6에 있어서, PPI 컨트롤이 추가되는 것도 큰 짐이었는데요. 역시 궁지에 몰리니 두뇌 풀가동이...ㅎ.ㅎㅋ



어쨌든 계획했던 기능은 모두 구현이 되었습니다.

- 빠른 SD에서 좀 더 정확한 타이밍 (음질 저하 최소화)

- 두배 리프레쉬 되는 PAC-V LED 비주얼라이저

- RETURN키로 빨리감기 (8배속)

- BS키로 되감기 (8배속)

- SELECT키로 역재생

- CAPS ON 상태로 무한루프



실제 동작 모습은 아래 영상으로 확인하시죠~





개선된 기능은 좀 더 테스트 후, 다음번 MMC/SD Tool에서 릴리스 될 예정입니다~


2023년 7월 29일 토요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.69

Download: 20230729_MMCSD_Drive_V3_V4_BIOS_Tool_v569.zip

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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.69 ]


- FDD_EMU


  turboR에서 ONE-Drive Off 시, DiskROM 호환성 개선

  -> '/O' 옵션 시 자동적용됨

     eg: Moon Light Saga


  turboR DOS2 용 Fake FDD_EMU 모드 추가

  -> '/DT' 옵션으로 설정

     DOS2 디스크로 부팅 시,

     MMC/SD가 본체의 FDD(SLOT 3-2)처럼 동작하며,

     별도 드라이브로 등록되지않음



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD569.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD569.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝





2023년 7월 14일 금요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.68

 


Download: 20230714_MMCSD_Drive_V3_V4_BIOS_Tool_v568.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.68 ]


- MegaRAM / FDD_EMU / GameRunner


  MoonBase의 OPLL PCM Drum 모드전환 추가  

  -> '/M?' 옵션으로 OPLL Drum 모드로 전환

     GameRunner 모드에서는 DOS2로 복귀 후,

       MoonBase의 기존 동작모드로 원복됨.

     사용예: /M04 (PCM 패턴 0, 볼륨 4)

             /M15 (PCM 패턴 1, 볼륨 5)


- SUB-ROM


  MSX1에서 구동 가능하도록 개선

  -> 최소환경: MSX1 RAM 16KB



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD568.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD568.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 6월 11일 일요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.67

 






Download: 20230611_MMCSD_Drive_V3_V4_BIOS_Tool_v567.zip


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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



[ BIOS & Tool v5.67 ]


- MegaRAM


  turboR 용 PAC-V Visualizer 개선

  Z80 DRAM 모드 지원 추가


- FDD_EMU


  COMPILE 디스크에서 MSX-Audio 설정 추가

  '/CA' 옵션 사용



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD567.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD567.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 2월 18일 토요일

MMC/SD Drive V3/V4 - BIOS & Tool v5.66

 Download: MMC/SD Drive BIOS & Tool v5.66


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

MMC/SD Drive(tm) V3/V4 - BIOS & Tool

    By Yeongman Seo <sharksym@hitel.net>

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


[ BIOS & Tool v5.66 ]


- MegaRAM


  Bomber King 매퍼(ASCII 8K) 디텍션 추가. (V4 전용)


  BASIC 롬 디텍션 개선.

  -> CALL 엔트리를 사용하는 경우(예:Karamaru) 등


- SUB-ROM


  V4의 Hybrid 모드가 랜덤으로 설정되는 문제 수정.



[ 업데이트 가이드 ]


1. MMCSD.COM, MMCSD.OVL 두개 파일을 SD카드에 복사.

   기존 파일을 덮어쓰면 됩니다.(예:UTILS 디렉토리)


2. MMCSD566.ROM 파일을 SD카드 루트에 복사.


3. MSX-DOS2 부팅 후 명령창에서 아래처럼 입력.

   A:\>MMCSD MMCSD566.ROM


4. 다운로드 완료 후 리턴키 눌러서 재부팅.


5. 끝


2023년 2월 1일 수요일

오랜만의 PC <-> MSX 파일전송

흡혈양파님의 글을 보다가 갑자기 생각나서, 서랍구석에 있던 카트리지를 하나 꺼냈습니다.

자작 RS-232C 카트리지입니다. 마지막으로 구동해본게 언제인지 기억이 잘 안나네욤ㅋ


SLT-X V2의 맨앞 자리에 꽂고 사진을 찰칵!





파일 전송이나 한번 해보아요~


윈도에서 파일 Tx를 실행!




MSX에서 파일 Rx를 실행!





잘 돌아가는군욤. SLT-X에 맨 뒷자리에 걍 꽂아둘까요?

풀파티가 된 SLT-X V2!! 가끔 MMC/SD BIOS 업뎃할 때나 써먹는걸로...ㅎ.ㅎ





참고로 자작 RS-232C 카트리지의 글은 아래 링크에서 보시면 되겠네요. 2010년 글입니다 ㅎ.ㅎ

http://sharksym.egloos.com/4680576


2023년 1월 15일 일요일

간만에 MMC/SD V4의 PSG2SCC 사운드를 돌려봤어요. (feat. T-Wave)

예전에는 MMC/SD V4의 PSG2SCC를 활용해서 PSG+SCC 사운드를 즐겼는데요.

T-Wave를 만든 후에는 거의 PSG+WSG 사운드를 주로 듣고 있네요.


그.래.서.

오랜만에 V4의 PSG2SCC를 한번 돌려봤습니다.

T-Wave의 WSG도 기본세팅으로 함께 구동됩니다만,

출력 밸런스가 본체 PSG에 맞춰져있어서 조금 작게 들릴거에요 ㅎ.ㅎ


영상으로 감상하셔요~




2022년 12월 10일 토요일

MMC/SD Drive V4 제작 #19 - LED 비주얼라이저와 Game Master II

코나미 Game Master II 카트리지(이하 GM2)는 디스크 세이브/로드를 할 수 있습니다.

만약 PAC-V의 LED 비주얼라이저를 FM모드가 아닌 PSG + SCC 모드로 함께 구동하려면,

GameRunner II 모드를 쓰거나, R800 고속모드 용 메가램 모드를 써야합니다.


근데, T-Wave 용 GM2는 GameRunner II에서 동작되는게 아니죠.

결국 R800 고속모드 용 메가램 모드가 필요한데... 문제는 ㅋ

GM2의 디스크 구동때문에 turboR에서 항상 Z80 모드로 실행이 됩니다.


그래서,

GM2를 패치해서 고속모드로 부팅하는 경우에도 디스크롬 포함 고속모드를 유지하도록 했습니다.


MMCSD.COM에서 T-Wave 용 GM2를 실행할 때,

'/T /KT' 옵션으로 고속모드

'/V /KT' 옵션으로 고속모드 + LED 비주얼라이저

의 조합이 가능합니다.


설명이 조금 길었는데, 한줄로 요약하면...

'T-Wave 용 GM2를 turboR 고속모드로 구동가능함'입니다.


그럼, 동작 모습은 아래 영상으로 확인하시죠~





그럼, 즐거운 주말되세요~ ㅎ.ㅎ/


2022년 12월 7일 수요일

MMC/SD Drive V4 제작 #18 - T-Wave으로 Game Master II 로딩

갖고계신 T-Wave는 잘 활용하시는거죠? ㅎ.ㅎ


아래 사진은 T-Wave와 코나미 Game Master II 카트리지(이하 GM2)입니다.





[서론]


GM2의 구버전인 Game Master 카트리지(이하 GM1)는 V4의 옵션으로 쉽게 구동가능하지만,

GM2는 메가롬 카트리지로 되어있어서 지원이 안됩니다.

사실 제가 정품 GM2를 갖고 있지만, 제대로 써본적이 한번도 없었는데요 ㅎ.ㅎ;


매뉴얼을 보면, GM2 카트리지를 SLOT 1에 꽂고, 게임 카트리지를 SLOT 2에 꽂으라고 되어있어요.

이 상태에서 본체가 부팅되면 GM2가 먼저 실행이 되고, FDD를 초기화 한 후 게임이 구동됩니다.


만약 게임 롬파일을 메가램에 로딩하려면, GM2가 없는 상태에서 부팅해서 롬 로딩을 해야합니다.

결국 V4 등의 메가램+디스크 통합기기를 쓰려면 딱히 방법이 없어요 ㅎ.ㅎ


유일한 방법이라면...

SLOT 1에 연장선을 꽂고 /SLTSL에 스위치를 달아서 부팅할 때만 GM2를 끄는거겠네요.

부팅이 완료되면 SLOT 1의 스위치를 켜고 V4 메가램에 롬을 로딩 후 소프트 리셋!

하면 되겠습니다.


근데 지난 주말에 갑자기 요상한 생각이 들더라구요.

GM2를 SLOT 0-1에 꽂으면 혹시 동작할까나??

그래서 제 확장슬롯(본체의 SLOT 0-1 출력이 연장되어있어요)에 꽂아서 확인해보니...

.

.

어랏~ 잘 되네요? ㅎ.ㅎ

여태 왜 실행해볼 생각을 안했는지 몰겠지만, 암튼 결과는 그렇게 되었습니다.


그래서, GM2를 확장슬롯에 꽂는걸로 얘기가 마무리되었냐구요?

당연히 아니죠ㅋㅋ


GM2로 게임을 세이브/로드 하는 빈도를 고려해볼 때, 이걸 확장슬롯에 붙박이로 놔두는 건 슬롯 낭비입니다요 ㅎ.ㅎ




[본론]


그럼, 다른 방법으로 해보아요~! (근데 결론이 글 제목으로 스포가 되어있...ㅋ)


현재 제 SLOT 0-1에는 T-Wave가 붙박이로 있습니다.

아시다시피 T-Wave의 SCC-I는 메모리가 512KB라서 코나미의 메가롬들은 한방에 로딩됩니다.

물론 이거 주목적은 스내처 또는 SCMD 등의 프로그램에서 쓰기위함이구요.


그럼 GM2가 필요한 경우만 T-Wave에 로딩해서 구동하면 편하게 쓸 수 있겠죠?

한가지 고려할 사항은 SCC-I 메모리에 한번 로딩하면 전원 끄기전에는 메모리가 유지되니까,

프로그램을 지우려면 본체를 끄고 잠시 기다려야합니다. 메모리가 깨질 때 까지욤 ㅎ.ㅎ


아마 SCC-I 카트리지를 개조해서 메가램으로 써보신 분은 아시겠지만,

본체 껐다켜는 작업(?) 자체가 무지 귀찮습니다.

리셋버튼 누르는 것 보다 시간도 많이 걸리구요 ㄷㄷㄷ

사실 V4의 메가램도 마찬가지입니다. 이 문제를 해결하기위해, 본체를 리셋하면 디스크롬 모드로 바뀌도록 해놨죠.


결국 바라는 구동 방식은 이렇습니다.

1. MMCSD.COM의 옵션만으로 롬 + GM2를 쉽게 구동

2. 본체를 리셋하면 GM2는 OFF -> T-Wave는 기본 모드(SCC-I 128KB)로 복귀



아래 영상은 GM2 로더가 통합된 MMCSD.COM가 구동되는 모습입니다.

기존 GM1 옵션은 '/KG'였구요.

이번 GM2 옵션은 '/KT'입니다. 참고하셔요~






[결론]


업뎃된 MMCSD BIOS/Tool는 조만한 릴리스 예정입니다.

T-Wave와 V4를 항상 본체에 꽂고 쓰신다면, 저처럼 GM2를 활용하면 좋습니다요~ ㅎ.ㅎ


까먹으면 안되는 부분은... GM2가 게임보다 슬롯 우선순위가 높아야합니다.

SLOT 번호가 게임보다 낮아야된다는거죠.


예를 들면 이렇게 되겠네요!


1) 비표준 확장슬롯(6슬롯, SLT-X 등)을 쓰는 경우

SLOT 0-1 = T-Wave

SLOT 2-0 = MMC/SD V4


2) 슬롯1에 표준 확장슬롯(4슬롯)을 쓰는 경우

SLOT 1-0 = T-Wave

SLOT 2   = MMC/SD V4 (내부적으로는 SLOT 2-0으로 구동됨)


3) 슬롯2에 표준 확장슬롯(4슬롯)을 쓰는 경우

SLOT 1   = T-Wave

SLOT 2-0 = MMC/SD V4



그럼, 즐 MMC/SD 하셔요~ ㅎ.ㅎ