닌텐도 E-Reader의 드로잉 API 리버스 엔지니어링: 스택에 숨겨진 비밀

2025-02-02
닌텐도 E-Reader의 드로잉 API 리버스 엔지니어링: 스택에 숨겨진 비밀

닌텐도 E-Reader용 지뢰찾기 게임을 개발하던 개발자가 드로잉 API의 `DrawLine` 함수에 숨겨진 기능을 우연히 발견했습니다. 처음에는 `DrawLine`을 사용하여 미니맵 사각형을 그리는 루프에서 선이 점점 더 빨리 그려지는 것을 알았습니다. 그리고 드로잉 시간은 스택에 푸시된 값(루프 카운터와 다른 레지스터의 조합)에 의해 결정된다는 것을 알아냈습니다. 스택에 0을 푸시하여 문제를 해결하고 API의 특이한 세부 사항이 드러났습니다. 이것은 리버스 엔지니어링의 매력과 오래된 프로세서 아키텍처의 특징을 보여줍니다.