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 작업이겠네요.


그럼, 이만~~ ㅎ.ㅎ


2016년 8월 15일 월요일

PAC-V 제작 #4 - LED BAR 동작 테스트

일단 사진 한장 나갑니다~ (설정샷? ㅎ.ㅎ)





주문한 PCB가 배달이 되었습니다.

지난 주말을 전기인두와 함께 화끈하게~ ㅎ.ㅎ;;


슬롯 커넥터가 있는 보드는 사이즈가 아담하고 좋네요.

(요것만 넣고 그냥 PAC으로 써도 괜찮으려나요.)




부품들을 하나씩 붙여줍니다.

작은 애들 먼저, 큰 애들은 나중에~!




아래는 이번 납땜 노가다의 하이라이트가 되겠습니다. ㅜ.ㅜ

LED 바 보드인데요. 9개의 어레이 저항을 배치할 공간이 나오지 않아서, LED 바 아래쪽에 겹치도록 구성했어요.

근데, 이게 실제로 납땜해보니 쉽지가 않더군요. 위에 얹은 LED 바 역시 삐뚤삐뚤 -_-

보드 뒷면에 부품을 붙일 수 있으면 좋겠지만, 보드가 케이스 바닥에 거의 붙어서 공간이 나오질 않습니다.

어레이 저항 대신, 그냥 SMD 칩 저항으로 도배하는게 나을뻔했어요.

암튼 열심히 붙였습니다. ㅋㅋ




메인 보드는 합체/분리 가능하도록 핀헤더 소켓을 달았습니다.

LED 바 보드가 동작안하면 분리해서 디버깅할 수 있겠지요.




아래는 합체한 모습입니다.보드 두 장 사이 공간은 11mm 정도 되네요.

이 상태로는 절대 케이스에 못들어갑니다. 본체 슬롯에도 못 들어가겠구요.ㅋ

하지만 동작 테스트는 확장슬롯으로 가능합니다.




일단 LED가 켜지는지 확인해봅니다.

간단하게 CPLD를 코딩해서~ 으흐흠...

역시 한방에 안되네요. 안켜지는 LED가 4개군요. 72개 중 4개 불량이면 납땜이 괜찮은 수준일까요?!




저~~~기 위에 사진에서 보셨겠지만, LED 바와 아래쪽 어레이 저항 부분은 납땜 실수하면 다시 수정이 불가능합니다.

연결안된 LED 4개는 저항을 따로 연결해서 수정해줍니다.

9핀 어레이 저항은 내부에 저항이 8개 들어있어요. 참고하셔요.




다시 동작 확인!!

다행하게도 잘 켜지네요. ㅎ.ㅎ




이제 본격적으로 LED를 돌려(?)봐야겠지요?

OPLL 각채널의 볼륨은 MAX로 가정하고, 채널 ON/OFF에 따라 막대기가 출렁이도록 만들어줍니다.

LED 표시 데이터들은 SRAM에 테이블로 만들어져서 들어가게되겠구요. (현재는 간단하게 일자 작대기로 ㅎ.ㅎ)

CPLD는 메인 CPU가 카트리지를 액세스 하지 않는 타임에 살짝살짝 끼어들어서, LED 출력을 재설정하는 방식으로 동작합니다.


진도를 너무 많이 나가면 머리아프니까 이쯤에서 동작 영상을 한번 찍어봤습니다.

싸이코월드 오프닝 영상입니다. FM 사운드에 맞춰 LED가 출렁이는 모습을 보시면 되겠습니다요~

확장슬롯에서 동작하는거랑 영상 같이 찍으려고, 작은 LCD 모니터에 연결했어요.

(S비디오 연결이지만 화질은 별로입니다. ㅋ)





내친김에 보드 한장 더 만들었어요.

이번엔 케이스에 넣을 수 있도록 핀헤더로 두장을 가깝께 붙였습니다.





요렇게 하면 케이스에 쏘~옥 들어갑니다. 케이스 칼질 안해도 되니까 좋네요. ㅎ.ㅎ

맛탱이님의 검정색 투명 케이스인데요. 파란색 케이스에 넣어도 아마 괜찮을 것 같아요.




그럼 다음편을 기대해주셔요~ ㅎ.ㅎ