2023. 4. 11. 23:47

CHIP8 Brix 관련 분석 내용.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

CHIP8에서 Bix에 해당하는 헥사 코드

오랫만에 글을 적습니다.

에물레이터 관련되서 관심있던 부분이 있었는데요. 최근 chip8이란 C# 오픈소스를 분석하면서 이것저것 진행하다, 기록 차원에서 글을 남깁니다.

CHIP8에 관한 스펙은 위키에서 참고 하시면 됩니다.

이게임을 보게 되면 총 5개의 life가 있는데요. 이 5개의 기회는 6E 05 첫번째 해당 구간입니다.

여기서 6E OPCODE 의 경우 Variables를 저장하는 byte[16] V의 배열의 E에 해당하는 14번째 배열에 05를 입력해 놓으라는 겁니다.

총 5번의 기회가 주어집니다.

여기서 죽었을 경우 5번의 기회를 -1씩 차감하는 로직을 보면 아래와 같습니다.

7E FF 즉, V 배열의 E에 해당하는 14번째 값에 FF를 더하라는 뜻입니다. 

1바이트로 캐스팅시 기존값 + FF는 -1 의 셈과 같습니다. 그래서 5 + FF 는 4가 됩니다. 

앞의 0001 은 짤리기 때문에 FF + 1 은 0 이 됩니다.

일단 저런방식으로 작동된다 로 보시면 됩니다.

그래픽을 표시할때는 V 배열에 각 좌표별로 값을 넣어놓고, 해당 pixel을 메모리의 주소번지에 일일이 값을 집어 넣은 후 갱신되는 부분을 다시 계산하고 60hz에 맞는 속도로 전체 화면을 다시 그립니다.

감사합니다.