드래곤볼Z 격투천하제일무도회(데이터크 조인트 ROM 시스템, 1992년, 반다이)가 바코드로 캐릭터를 만들어내는 방식
日本語 | English | Français | Español | Italiano | 한국어
데이터크는 패미컴에 끼워 쓰는 바코드 리더였다. 과자 봉지의 바코드를 긁으면 드래곤볼Z 캐릭터가 튀어나와 싸웠다. 어린 시절의 기억이라고는, 무엇을 읽혀도 약한 캐릭터만 나왔다는 것뿐이다. 프리저도 셀도 끝내 나오지 않았다. 그 30년 묵은 분함이 결국 이 사이트를 만들었다. 알고 보니 운이 나빴던 게 아니라, 확률이 약 8000분의 1이었다.
에뮬레이션 쪽에서 찾아온 분들을 위해 적어 두면, 카트리지는 드래곤볼Z 격투천하제일무도회로 1992년 12월에 데이터크 조인트 ROM 시스템의 첫 타이틀로 발매되었다. 영어권 에뮬레이터 문서는 데이터크 타이틀을 대체로 반다이 FCG 계열(매퍼 16) 안의 iNES 매퍼 157로 분류한다. 카트리지를 에뮬레이트하는 일과 바코드 리더를 에뮬레이트하는 일은 별개의 문제이며, 이 사이트는 그 어느 쪽도 다루지 않는다. 다루는 것은 바코드의 숫자가 게임에 도달한 뒤 실제로 무엇을 의미하는가이다.
구체적으로는 시판 바코드의 13자리(또는 8자리)가 캐릭터·HP·BP·DP·필살기 레벨을 어떻게 결정하는가다. 답은 두 방향에서 동시에 복원했다. 하나는 다수의 실측 데이터에서 구조를 추론하는 방향, 다른 하나는 게임 자체가 결과를 계산하는 과정을 들여다보는 방향이다. 양쪽 결과는 일치한다. 시판 JAN/EAN에 관해서는 알고리즘 자체를 복원했다.
데이터크가 읽는 것은 시판 JAN/EAN만이 아니다. 반다이 전용 카드용 독자 규격이 하나 더 있고, 그쪽은 전혀 다른 규칙으로 움직인다. 1~3번 해석과 가장 강한 바코드 페이지는 시판 JAN/EAN에 관한 이야기이며, 독자 규격은 4. 반다이 전용 바코드에 정리했다.
여러 사람이 오랜 기간 기록해 온 바코드와 대조한 결과, 다섯 항목이 모두 일치한 것은 13자리 바코드 508건 중 502건, 8자리 바코드 18건 중 14건이었다. 어긋난 10건은 모두 다섯 항목 중 정확히 하나만, 그것도 근소하게 어긋난다. 이 가운데 8자리 4건은 2026년 8월 15일에 게임에서 하나씩 다시 확인한 결과, 네 건 모두 원자료 쪽의 오기임이 확인되었다. 한 건은 능력치를 잘못 옮겨 적은 것이고, 나머지 세 건은 바코드 숫자 자체가 한 자리 다르며 바로잡으면 다섯 항목이 모두 일치한다. 13자리 6건도 같은 종류의 전사 오류로 보이지만 실기 재확인까지는 하지 못했다. 알고리즘에 대한 반례는 아직 한 건도 나오지 않았다. 어긋나는 사례를 발견하신 분은 꼭 알려주시기 바란다.
| 페이지 | 내용 |
|---|---|
| 1. 바코드를 읽는 방식 | 어느 자리가 쓰이고 어느 자리가 무시되는가, 40비트 산포표, EAN-8의 처리 |
| 2. 캐릭터 결정 | 가중 추첨, 아이템 칸, 초사이어인과 최종 형태로의 승격, 특수 코드 |
| 3. 능력치 계산 | HP/BP/DP의 계산식과 참조표, 그리고 필살기 레벨 |
| 4. 반다이 전용 바코드 | 반다이 전용 카드의 독자 규격, 표시 한계, 그리고 「완전체 셀 99990」의 정체 |
| 가장 강한 바코드 | 시판 JAN/EAN에서의 이론적 최대치, 캐릭터별 최강 코드, 실측 데이터 중 최고 기록 |
| 판정 도구 | 바코드를 입력하면 예측 결과가 나온다. 캐릭터별 실측 바코드 표도 함께 싣는다 |
| 곁다리 이야기 | 게임에 심어진 특수 코드, 프리저 3단계가 나오지 않았던 이유, 어느 매대에서 사야 하는가, 어긋난 기록의 정체, 그리고 아직 모르는 것 |
| 2026-08-09 | 사이트 공개: 해석 1~3, 가장 강한 바코드, 판정 도구, 곁다리 이야기 |
| 2026-08-14 | 해석 4 공개: 반다이 전용 카드의 독자 규격과 「완전체 셀 99990」의 원리. 모든 페이지에 시판 JAN/EAN이 대상임을 명시 |
| 2026-08-15 | 미해결 과제 두 건 종결: EAN-8의 근소한 불일치 4건은 원자료의 오기였고, 레벨 4 손오공의 기술명 두 가지도 설명이 붙었다. 체크 디지트 처리도 명확히 정리 |
완전히 고정이다. 과정 어디에도 난수는 없다. 같은 바코드는 어느 카트리지에서든 언제나 같은 캐릭터와 같은 능력치를 만들어낸다.
알고리즘에 일본 고유의 요소는 없다. 계산에 쓰이는 것은 3~12번째 자리뿐이고, 앞 두 자리(국가 코드)와 체크 디지트는 결과에 영향을 주지 않는다. 미국의 UPC-A는 앞에 0이 붙은 EAN-13이므로 완전히 같은 경로를 지나 지극히 평범한 결과를 낸다. 다만 두 가지 단서가 있다. 체크 디지트는 계산에서는 무시되지만 리더는 검사하므로, 애초에 올바른 바코드여야 읽힌다. 그리고 이는 알고리즘에 관한 이야기이며, 실물 리더가 특정 인쇄 라벨을 제대로 읽는지는 별개의 문제로 여기서 검증하지 않았다.
4936338232324로, 초사이어인 손오공 HP 99500 / BP 48250 / DP 33250, 필살기 레벨 4, 합계 181000이 나온다. 레벨 4 조건에서 증명된 최대치다. 실재하는 상품이 아니라 만들어낸 숫자다. 도출 과정과 캐릭터별 표는 가장 강한 바코드 페이지에 있다.
프리저 1단계는 캐릭터 추첨에서 60장 중 1장이고, 변신 형태는 애초에 추첨되지 않는다. 능력치가 좁은 구간에 들어와야만 승격되기 때문이다. 3단계는 대략 8,000분의 1, 셀 3단계는 약 17,000분의 1이 된다. 자세한 내용은 곁다리 이야기에 있다.
가능하다. 이 사이트의 판정 도구는 복원한 알고리즘을 브라우저에서 실행해 EAN-13·EAN-8 코드의 결과를 예측한다. 아무 데이터도 외부로 보내지 않는다. 역방향으로는 의도적으로 작동하지 않는다. 원하는 캐릭터가 나오는 바코드를 만들어 주거나 인쇄하는 기능은 없다.
생성 규칙은 해명되었다. 표시 계층에 하나가 남아 있다. 실측된 적 없는 몇몇 아이템의 이름이다. 함께 남아 있던 두 가지 의문 — 레벨 4 손오공에게 기술명이 두 가지 보였던 이유와, 기록된 8자리 실측 4건이 한 항목씩 어긋났던 이유 — 는 2026년 8월에 게임에서 직접 재확인해 답이 나왔고, 둘 다 원자료의 오기로 판명되었다. 자세한 내용은 곁다리 이야기에 있다.
이 사이트는 먼저 공개된 다른 분들의 작업 위에 서 있다. 특히 네 가지 빚이 있다.
실측 데이터. 알고리즘 검증에 쓴 바코드-결과 대조표는 @tareichi001님과 패미컴 올(atwiki)에 모인 기록에서 왔다. 그 500건이 넘는 기록이 없었다면 알고리즘이 맞는지 시험할 방법 자체가 없었다. 특히 필살기 레벨이 6번째와 8번째 자리에 좌우된다는 관찰이 이 해석의 출발점이었다.
캐릭터명과 아이템명. 이 사이트의 표에 실린 이름은 패미컴 치트 위키 nnnes1에 공개된 캐릭터표·아이템표·필살기 등급과 대조한 것이다. 프로그램은 ID 번호만 돌려주므로, 그 표가 없었다면 아무것도 이름 붙일 수 없었다.
당시의 설명서. 아이템 카드의 효과 목록은 게임의 원래 설명서에서 왔으며, 게임 설명서(가)에 실려 있다. 프로그램은 각 루틴이 무엇을 하는지만 알려줄 뿐, 어느 아이템이 어떤 이름인지는 말해주지 않는다. 그 목록을 코드와 맞춰본 뒤에야 이름·효과·내부 번호가 나란히 정렬되었고, 여기서 읽어낸 것 하나가 한 항목씩 밀려 있었다는 사실도 그 목록 덕분에 드러났다. 이런 종이 자료를 온라인에 남겨 주신 분께 감사드린다.
선행 연구. 프리저와 셀의 변신 형태가 나오는 바코드는 이미 2013년에 만들어진 바 있다(니코니코 동영상 sm21301478, xyaa 님). 확인할 수 있는 범위에서는 변환 규칙 자체를 공개적으로 기술한 것은 이 사이트가 처음이지만, 코드를 만들어내는 시도는 그보다 훨씬 전부터 있었다.