N-EMU · 레트로 게임 에뮬레이터v0.9.13개발자 후원하기
개발 이야기작성일 Thor's Workshopv0.9.13

숫자 하나를 잘못 적어 두었더니

Android에서 메가 드라이브 게임이 전혀 실행되지 않았습니다. 화면 높이를 실제보다 열여섯 줄 작게 적어 둔 숫자 하나가 원인이었고, 검사를 여러 겹 두고도 몇 달을 못 찾았습니다.

출시 전 개발 기록

N-EMU는 열한 기종을 다룹니다. 기종마다 화면 크기가 다르니 그 숫자를 한곳에 모아 두고 iOS와 Android가 같이 읽습니다. 한 번 적어 두면 양쪽이 어긋날 일이 없다는 생각이었습니다.

메가 드라이브 자리에는 320x224가 적혀 있었습니다. 그런데 실제 코어가 내놓는 그림은 320x240입니다. 열여섯 줄이 더 옵니다.

Android는 그 숫자로 그림을 담을 상자를 만듭니다. 상자가 2만 바이트 모자라니 그림이 들어가지 못하고 「Native engine error 7」만 남았습니다. 메가 드라이브 게임은 한 장도 그려지지 않았습니다.

iOS는 멀쩡했습니다. 그림을 상자에 옮겨 담지 않고 있는 자리에서 바로 그리기 때문입니다. 크기를 잘못 알아도 다칠 데가 없었습니다.

못 찾은 이유가 여기 있습니다. iOS 검사는 메가 드라이브가 224줄이나 240줄 중 하나를 낸다는 것을 이미 알고 있었고, 둘 다 받아들이도록 짜여 있었습니다. 진실을 아는 쪽은 다칠 수 없었고, 다칠 수 있는 쪽은 확인하지 않았습니다. 양쪽 검사가 모두 초록불이었습니다.

찾은 건 우연이 아니라 순서 덕분입니다. 실기기에서 무엇이 실제로 돌았는지 세어 보니 여섯 기종은 한 번도 켜 본 적이 없었습니다. 게임 없이 확인할 수 있도록 시험용 카트리지를 만들어 태블릿에서 차례로 돌리다가, 메가 드라이브 차례에서 오류가 났습니다.

숫자를 320x240으로 고쳤습니다. 게임이 224줄 모드를 골라도 그 안에 들어갑니다. 화면 비율도 실제 기기와 같은 4:3이 됐습니다. 그리고 각 기종이 실제로 내는 그림이 적어 둔 크기를 넘지 않는지 보는 검사를 새로 넣었습니다. 넣자마자 이 문제를 그대로 짚어 냈습니다.

  1. 개발 이야기v0.9.11

    닌텐도 DS를 닮은 폴더블 화면

    폴더블은 펼치면 화면을 둘로 나눠 쓸 수 있습니다. 닌텐도 DS도 화면이 둘입니다. 그 닮은 구조를 살려, 펼친 화면에서는 DS 본체처럼 위 화면을 크게 두고 터치 화면을 방향키와 버튼 사이에 놓습니다.

  2. 개발 이야기v0.2.0

    여러 게임기를 한 앱에 담기

    기종이 바뀌어도 같은 보관함에서 게임을 고르고 저장 데이터를 관리하도록 여러 에뮬레이터 코어를 연결했습니다.

목록으로지원 기종과 기능

N-EMU 개발 응원하기

N-EMU 개발을 응원해 주세요. 후원금은 개발자 계정과 테스트 기기 비용, 앱을 꾸준히 다듬는 데 보탭니다. 후원 여부에 따라 앱 기능이 달라지지는 않습니다.