2016년 8월 24일 수요일

PAC-V 제작 #7 - IMSP/MPXP에서 LED 구동

일단 사진 한장 올라갑니요~ ㅎ.ㅎ

M에서 MP3 재생하는 모습이네요.




PAC-V는 본체에서 YM2413(OPLL) 칩을 액세스 하는 순간을 캡쳐해서 LED를 구동합니다.

아래는 OPLL 칩의 레지스터인데요, PAC-V에서 사용하는 부분은 빨간색으로 표시했습니다.




예를 들어, 게임에서 OPLL 채널 0번으로 소리를 낸다면,

30H 레지스터의 악기/볼륨 세팅 후 20H 레지스터의 Key ON을 설정하게 되겠죠?

그러면, PAC-V는 여기에 맞춰, 볼륨 설정에 따르는 LED 출력을 시작하게 됩니다.


기본적으로, PAC-V의 LED는 OPLL 사운드를 들을 때 동작하지만,

사용자가 임의로 LED를 컨트롤 할 수도 있습니다.


OPLL I/O로 사용되는 포트는 7CH, 7DH 두개인데요.

PAC-V는 해당 포트 외 5CH(7CH 미러), 5DH(7DH 미러) 포트를 사용해도 동작이 됩니다.

그러니까 5CH, 5DH 포트를 사용하면 OPLL 소리를 내지 않고도 PAC-V의 LED를 켤 수 있는거죠~



M에 내장된 IMSP와 MPXP 코드에 PAC-V LED 컨트롤을 넣어봤습니다.

IMS 음악은 원래 11채널이라서, 9채널인 PAC-V로는 마지막 2채널은 표시가 불가능...이라는게 ㅋ

결국 9개 채널의 출력에 따라 출렁이는 LED를 볼 수 있겠습니다요~


MPXP의 경우는 VS1033c 칩의 스펙트럼 애널라이저 플러그인을 사용했구요.

밴드 9개로 설정해서 동작시켰습니다.

참고로 VS1033c은 MPX R1.1 카트리지에 들어있구요. 구버전 MPX R1.0에는 VS1003 칩이 들어있을꺼에요.


아래는 M에 코드 적용 후 구동한 모습입니다.

초반엔 IMS 파일 재생이 나오구요. 후반엔 MP3 재생입니다.




그럼, 즐거운 저녁되셔요~ ㅎ.ㅎ

2016년 8월 21일 일요일

PAC-V 제작 #6 - LED 패턴 셋업

PAC-V의 SRAM에는 FMPAC BIOS 롬, PAC SRAM 데이터, LED 패턴 데이터가 함께 저장됩니다.

이런 데이터를 관리해주는 프로그램이 필요하겠죠?


일단 PAC의 SRAM 데이터는 FMPAC 내장 프로그램으로 세이브/로드 가능하니까,

FMPAC BIOS 롬과 LED 패턴 데어터 관리용 프로그램만 만들면 되겠네요.

그래서 완성된 프로그램이 "PACV.COM" 되겠습니다요~


아래는 실기에서 PACV 프로그램이 실행된 모습이구요.

패턴 데이터를 기기에 다운로드하는 것을 볼 수 있습니다.





1. FMPAC BIOS 롬


FMPAC BIOS는 64KB로 덤프된 롬파일을 로딩하면됩니다.

물론 키티야님의 한글판 BIOS 롬도 로딩가능하겠구요. ㅎ.ㅎb



2. LED 패턴 데이터


LED 패턴 데이터는 *.INI 파일을 사용합니다.

일반 아스키 텍스트 파일이구요.

MSX 또는 윈도의 문서 에디터로 편집이 가능합니다.

PACV.COM으로 로딩하게 되면, 실제 기기에서 사용되는 데이터구조로 변환되어 SRAM에 다운로드됩니다.


아래는 기본으로 쓰이게 될 패턴 파일의 일부분입니다.

#

# PAC-V

# LED pattern data

#

 

# Volume 7 (MAX)

###############################|###############################|

O...............................................................

OO..............................................................

OOOO............................................................

OOOOOO..........................................................

OOOOOOOOO.......................................................

OOOOOOOOOOOO....................................................

OOOOOOOOOOOOOOOO................................................

OOOOOOOOOOOOOOOOOOOO............................................

 

# Volume 6

###############################|###############################|

................................................................

O...............................................................

OO..............................................................

OOOO............................................................

OOOOOO..........................................................

OOOOOOOOO.......................................................

OOOOOOOOOOOO....................................................

OOOOOOOOOOOOOOOO................................................

 

# Volume 5

###############################|###############################|

................................................................

................................................................

O...............................................................

OO..............................................................

OOOO............................................................

OOOOOO..........................................................

OOOOOOOOO.......................................................

OOOOOOOOOOOO....................................................

 



볼륨 7,6,5,4,3,2,1,0 순으로 패턴이 저장되어있습니다.

각 볼륨은 가로 64문자 x 세로 8문자의 패턴으로 구성이 됩니다.

패턴의 가로축은 시간(애니메이션 프레임), 세로축은 LED 바의 8개 불빛을 나타냅니다.

모양을 보시면 시간이 지날수록 LED가 아래쪽으로 꺼지면서 사라지는 형태라는 걸 알 수 있지요?

'O' 문자는 LED ON, '.' 문자는 LED OFF를 의미합니다.


LED 패턴은 약 54Hz 속도로 애니메이션됩니다. 초당 54프레임이니까 부드럽게 보일꺼에요.

64개의 프레임을 표시가능해서, 약 1.2초 정도 동안 LED로 출력됩니다.

데이터가 모든 LED OFF 상태가 되면 애니메이션이 멈추게 되구요.

만약 64개 데이터 모두 LED OFF 상태없이 세팅이 되면, 애니메이션이 멈추지않고 반복됩니다.


아래는 사인파 형태의 패턴인데요.

한번 켜면 멈추지않고 움직이도록 만든 데이터입니다.


#

# PAC-V

# LED pattern data

#

 

# Volume 7 (MAX)

###############################|###############################|

OOOOOOOOOO......................................................

..........OOOOOO..........................................OOOOOO

................OOO....................................OOO......

...................OO................................OO.........

.....................OO............................OO...........

.......................OOO......................OOO.............

..........................OOOOOO..........OOOOOO................

................................OOOOOOOOOO......................

 

# Volume 6

###############################|###############################|

O.OOOOOO.O......................................................

OOOOOOOOOOOOOO.O..........................................O.OOOO

OOOOOOOOOOOOOOOOO.O....................................O.OOOOOOO

OOOOOOOOOOOOOOOOOOOOO................................OOOOOOOOOOO

.....................OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO...........

.......................O.OOOOOOOOOOOOOOOOOOOOOOOO.O.............

..........................O.OOOOOOOOOOOOOOOOOO.O................

................................O.OOOOOO.O......................

 




어떻게 동작되는지 아시겠지요? ㅎ.ㅎ


그럼 실기로 돌려본 영상으로 구경하셔요~

FMPAC BIOS 롬(원판/한글판) 다운로드 및 4가지 LED 패턴 데모,

마지막으로 사인파 형태의 무한반복 패턴으로 끝이납니다.





그럼, 즐거운 주말되셔요!! ㅎ.ㅎ


2016년 8월 19일 금요일

PAC-V 제작 #5 - 볼륨 및 드럼 채널 구현

이번엔 LED 막대기 크기를 실제 채널 볼륨에 맞춰서 보여주도록 해보았습니다.

OPLL(YM2413)은 채널 출력이 9개입니다.

각 채널 볼륨은 4BIT 설정이라 16단계로 설정이 가능하지만...

PAC-V의 LED는 채널 당 8개가 들어있으니, 약간 몽당연필스러운 모습이 되겠습니다요. ㅋ


아래는 동작 중 찍은 사진입니다.





아시다시피 OPLL은 아래 두 가지 출력모드가 있습니다.

1. 9개 채널의 멜로디 악기

2. 6개 채널의 멜로디 악기 + 리듬 악기 (드럼)


만약 리듬 악기를 쓰게 되면, 3채널 LED 표시부가 놀게(?) 되는데요.

이걸 어떻게 표시하면 보기 좋을까 생각하다가, 아래처럼 3가지 출력으로 나눴습니다.

1. 베이스 드럼

2. 스네어 드럼

3. 탐탐 / 탑 심벌 / 하이햇


아무래도 베이스/스네어 드럼이 소리가 크게 나오니까, 따로 표시하는게 보기가 좋더라구요. ㅎ.ㅎ

아래는 실제 동작 중 찍은 사진입니다.

카메라 플래쉬가 밝아서 잘 안보이지만, 리듬모드 상태에서는 오른쪽 아래에 녹색 LED가 켜지게 됩니다.




그럼 동작 영상을 한번 보시지용~ ㅎ.ㅎ

MuPlay 구동 영상이 대부분이구요. 마지막에 CALL FMPAC으로 내장 프로그램 동작도 넣어봤습니다.




이제 PAC-V의 H/W 부분은 완성입니다.

나머지는 LED 패턴 로더 등의 S/W 작업이겠네요.


그럼, 이만~~ ㅎ.ㅎ