7P by ffdd270 2021-12-24 | favorite | 댓글 2개

- 과거 게임기들은 타일 기반으로 스프리이트를 그렸고. CPS-1은 16x16 타일이었음. 그래서 한 캐릭터를 그리기 위해서는 16x16 타일을 조합해서 그려야 함.

- 문제는 타일을 자유롭게 그려넣기에는 이 시절엔 ROM 사이즈가 가격 문제로 재한되어 있었고, 그래서 아트팀에게 할당해야 하는 메모리가 재한이 심했음. 스트리트 파이터 2에 할당된건 4.6 MiB 정도. 이걸 효율적으로 써야만 했음.

- 그래서 도입한 건 '종이 시트'. 메모리 맵을 적어놓은 시트지에 16x16개의 타일을 배치. 이걸로 실제 메모리 맵에 할당하는 것과 유사하게 타일을 그려 넣을 수 있음.

- 이걸로 아트실은 어떻게 작업했는지 예시 이미지들. (원문을 꼭 읽어보세요!)

- 최대한 메모리가 낭비하면 안 됐었기에 CPS-1의 기능까지 활용하여 그릴 수 있도록 꽉꽉 채워넣은 게 핵심.

고전 게임 메모리 맵 하니까 아래 영상이 생각나네요.

https://www.youtube.com/watch?v=FPzuYWbnln4

슈퍼마리오랜드2 에서 맵 타일 하나하나는 메모리 주소 하나랑 대응되는데, 몇가지 트릭을 이용해서 정상적인 맵 바깥으로 나간 뒤 타일을 부수거나 하면 게임의 메모리 값을 바꿀 수 있다고 하네요.

그래서 정상적인 맵 바깥 타일을 건드려 메모리를 조작하는걸 스피드런에 써먹기도 한다네요.

옛날 게임들 최적화가 재밌긴 하더라고요.
예전에 관심있어서 유튜브 영상 몇개 모아놨습니다.
https://black7375.tumblr.com/post/663908279732289536/