버블 시스템 부트로더 어셈블리를 뜯었고, 이젠 부트로더 이후의 0x10000부터 시작하는 프로그램을 뜯고 있습니다
CPU가 어떤 방식으로 다음 불러올 페이지를 지정하면서 버블 메모리를 불러오는지 궁금했거든요
그런데 일단 어셈블리는 루프랑 branch가 잘 안 보여요
들여쓰기도 아니고 그냥 쫘라락 되어있어서 들여쓰기를 해야 좀 보일 듯 하고...
또 동작 하나하나를 일일히 정의하고, 머릿속에 레지스터를 띄워두는 게 귀찮습니다.
그리고 C++과제한다고 비주얼 스튜디오 켰는데
신세계네요
코나미 버블 시스템 데이터 전송이 느린 건 사실 버블 메모리 데이터 로딩 -> 공유 램에 데이터 복사 -> CPU가 공유 램의 데이터를 일일히 6비트 왼쪽으로 쉬프트 -> CPU가 데이터를 원래 위치로 전송
이런 과정을 거쳐서 느린 겁니다. 특히 버블 메모리 데이터를 6비트 왼쪽으로 쉬프트시키는 작업이요. 왜인지는 모르겠지만, 제대로 된 데이터가 아닌 6비트 쉬프트된 데이터가 들어있습니다. 버블 메모리가 느린 건 별로 영향이 없습니다.
영상 출력 시기에는 영상 데이터가 버스를 붙잡고 있으므로, 공유 램에서 작업하는 건 VBLANK 때만 가능한데요, 이래서 또 느려지지요.
역시 아무렇게나 막 써도 보기편한 비주얼 스튜디오가...