반다이의 독자 규격, 그리고 「완전체 셀 99990」의 정체
日本語 | English | Français | Español | Italiano | 한국어
집 안의 상품을 죄다 읽혀도 돌아오는 능력치는 한결같이 초라하다. 데이터크를 가지고 놀았던 사람 대부분이 그렇게 기억한다. 이 사이트의 1번부터 3번 해석은 그 이유를 시판 바코드 쪽에서 설명한다.
그런데 진짜 반다이 카드 중 어떤 것을 읽히면 시판 상품으로는 도달할 수 없는 숫자가 나온다. HP·BP·DP가 모두 99990인 완전체 셀 — 적어도 이야기는 그렇게 전해진다.
발단은 たれいち(@tareichi001) 님의 제보였다. 슈퍼 바코드 워즈 록맨5의 닥터 와일리 카드에서 HP·BP·DP가 모두 99990이 나온다는 것이다. 드래곤볼 카드가 아니라 캡콤의 록맨 카드다. 실제로 무슨 일이 벌어지고 있었는지가 이 페이지의 주제다.
짧게 말하면, 데이터크가 읽을 수 있는 것은 시판 JAN/EAN만이 아니다. 반다이 자사 카드용으로 만들어진 두 번째 규격이 있고, 그쪽은 완전히 다른 규칙으로 처리된다.
구분 기준은 읽어들인 바(막대)의 개수다. 시판 JAN(13자리)은 30개, EAN-8(8자리)은 22개, 반다이 규격은 27개로 이루어진다. 게임의 판정은 그보다 느슨하다. 27개 이상이면서 JAN의 30개가 아니면 독자 규격으로 간주해 전용 디코더로 넘긴다. 시판 바코드용 계산은 통째로 건너뛴다.
이 규격은 슈퍼 바코드 워즈 같은 반다이 카드 상품에 인쇄되어 있으며, 원래 그 게임들을 위해 설계된 것이다.
먼저 결론부터. 99990은 실제로 저장된 값이 아니다.
능력치는 내부 값을 네 자리로 보고 뒤에 0을 붙여 표시한다(내부 9950 → 99500, 내부 4775 → 47750). 내부 값이 10000에 이르면 네 자리에 담기지 않는다. 이때 변환 루틴이 넘침을 감지해 표시 자릿수를 전부 9로 채운다. 그래서 화면에는 언제나 99990이 뜬다.
내부 값 10000도 65535도 화면에는 똑같이 99990으로 나온다. 시판 바코드에서는 내부 상한이 9950(표시 99500)이라 이 한계값에 결코 닿지 않는다. 그 영역에 도달하는 것은 독자 규격뿐이다.
공개된 사진에서 복원한 닥터 와일리 카드의 바 배열이, 게임의 계산 방식에서 미리 도출해 두었던 후보 중 하나와 일치했다. 그 신호를 게임 자체의 판독 경로에 흘려 넣자 완전체 셀, HP/BP/DP 표시 99990, 기술 레벨 1이 그대로 재현되었다.
다만 사진에서 복원한 배열이 실물 카드와 완전히 일치하는지는 확인되지 않았고, 실물 카드를 실제 광학 리더로 읽어보지도 않았다. 이 페이지의 주장은 그 경계 안에 머문다. 아래의 「확인하지 못한 것」을 참조.
시판 바코드는 「줄무늬에서 숫자를 읽고, 그 숫자로 계산한다」는 방식이다. 이 규격은 전혀 다르다. 각 막대의 굵기 자체가 정보다.
쓰이는 굵기는 두 가지뿐이다. 가는 것과 굵은 것이라고 하자. 27개 중 앞의 다섯 개는 항상 굵고, 이것이 시작을 알린다. 나머지 22개가 22비트를 담는데, 그 방식이 독특하다. 앞의 막대와 굵기가 다르면 비트는 1, 같으면 0이다. 읽는 것은 굵기 자체가 아니라 변화이므로, 가는 것과 굵은 것만 구별되면 막대가 몇 밀리미터인지는 상관없다.
이 22비트는 다시 폭이 정해진 일곱 개의 필드로 잘린다.
| 필드 | 비트 | 역할 |
|---|---|---|
| 1 | 4 | 종류. 판독 결과가 캐릭터인지 아이템인지 오류인지, 캐릭터라면 어느 계통인지를 결정한다 |
| 2 | 2 | 용도 불명. 검사 코드 계산에서도 제외된다 |
| 3 | 4 | 값의 상위 부분 |
| 4 | 4 | 값의 하위 부분 |
| 5 | 3 | DP 계수 |
| 6 | 3 | BP 계수 |
| 7 | 2 | 검사 코드 |
검사 코드는 필드 2를 뺀 모든 필드에서 1인 비트의 총 개수를 하위 2비트만 남긴 값이다. 맞지 않으면 오류가 된다. 다만 2비트로는 놓치는 것이 많다. 일부 오독은 걸러지지만, 크게 잘못 읽힌 경우라도 검사값이 우연히 맞아떨어지면 그대로 통과한다.
필드 3과 4는 각각 0~15를 담는다. 둘 다 9 이하라면 값은 단순히 (상위 × 10 + 하위) × 10이다. 그런데 어느 한쪽이 10 이상이면 그 필드는 더 이상 자릿수가 아니라 배율 지시로 작동해 다른 계산식으로 넘어간다. 예컨대 하위 필드가 12 이상이면 (상위 × 10 + 하위 − 12) × 100을 쓴다. 그 결과를 두 배 한 값이 카드의 HP가 된다.
BP와 DP는 HP에 계수를 곱해 얻으며, 그 계수는 필드 5와 6에 따로 지정된다. 각 필드는 여덟 가지 값 중 하나를 갖는다. 그중 다섯 개는 0.1~0.5의 배율이지만, 나머지 세 개는 「HP와 같은 값을 쓴다」는 뜻이다. 두 필드를 모두 그렇게 두면 HP·BP·DP가 똑같이 나온다. 세 값이 나란히 같아지는 이유가 여기에 있다.
시판 바코드에서는 정상 생성 경로를 지나는 한 BP와 DP가 절반이 된다(3번 해석 참조). 유일한 예외는 계산을 통째로 건너뛰는 게임 내장 특수 코드뿐이다. 정상 생성 경로를 지나면서도 HP와 같은 값을 절반 없이 받는 것, 그것이 독자 규격이 허용하는 일이다.
앞의 절차대로 복원한 바 배열을 해독하면 다음 일곱 필드가 나온다.
| 필드 | 값 | 의미 |
|---|---|---|
| 1 종류 | 14 | 프리저·셀 계통 |
| 2 불명 | 3 | — |
| 3 값 상위 | 5 | (5 × 10 + 12 − 12) × 100 = 5000 |
| 4 값 하위 | 12 | |
| 5 DP 계수 | 6 | HP와 같은 값을 쓴다 |
| 6 BP 계수 | 6 | HP와 같은 값을 쓴다 |
| 7 검사 코드 | 3 | 계산값과 일치 |
5000을 두 배 하면 내부 HP는 10000이 되고, 계수에 따라 BP·DP도 같은 10000이 된다. 내부 10000은 정확히 표시 한계에 걸리므로 화면에는 99990이 세 개 뜬다.
캐릭터도 그 세 값에서 계산되어 기술 레벨 1의 셀 1단계로 나온다. 그다음 두 단계의 승격 문턱값을 모두 넘어 완전체 셀이 된다. 시판 바코드와 똑같은 승격 구조이며, 이 카드는 그저 문턱값을 넘었을 뿐이다.
시판 JAN/EAN으로 각 능력치를 따로따로 최대화하면 내부 값은 HP 9950, BP 4875, DP 4975가 된다. 게임 내장 특수 코드는 별개의 경우로 BP·DP가 4999까지 간다(곁다리 이야기 참조).
| 시판 JAN/EAN의 개별 최대치 | 닥터 와일리 카드 | |
|---|---|---|
| HP(내부 값) | 9950 | 10000 |
| BP(내부 값) | 4875(특수 코드로는 4999) | 10000 |
| DP(내부 값) | 4975(특수 코드로는 4999) | 10000 |
HP는 조금 높을 뿐이고 BP와 DP는 대략 두 배다. 그러나 진짜 차이는 배율이 아니라 셋이 동시에 성립한다는 점이다. 자릿수 제약 때문에 시판 코드로는 세 값을 한꺼번에 최대화할 수 없고, 최선의 합계도 99500 / 48250 / 33250(합계 181000)에서 멈춘다(가장 강한 바코드 참조). 이 카드는 세 값 모두 10000을 유지하며 표시 한계까지 넘어선다.
독자 규격 카드가 반드시 캐릭터가 되는 것은 아니다. 필드 1에 따라 판독 결과는 전사가 아니라 아이템 쪽으로 갈라진다.
흥미로운 점은 이 효과들이 시판 바코드로는 절대 닿을 수 없도록 울타리가 쳐져 있다는 것이다. 독자 규격 카드 전용인 셈이다. 종류는 여섯 가지이고, 실질적으로는 세 가지 효과로 정리된다.
| 효과 | 내용 |
|---|---|
| HP 회복 | 자신의 최대 HP의 5분의 1을 현재 HP에 더한다 |
| BP 회복 | 자신의 최대 BP의 5분의 1을 현재 BP에 더한다 |
| 공격 | 상대의 현재 HP에서 10퍼센트를 깎는다(0 아래로는 내려가지 않는다) |
회복 효과의 양은 카드에 적힌 숫자가 아니라 전사 자신의 능력치에서 나온다. 강한 전사일수록 더 많이 회복하며, 카드에 인쇄된 값은 아무 상관이 없다. 공격도 마찬가지로 상대 HP에 대한 비율로 작동한다. 세 가지 모두 실제 전투 중에 사용해 수치 변화를 확인했다.
이 영역에는 전용 연출도 딸려 있다. 바코드 감정 모드(카린님의 방)에 이 아이템 카드를 읽히면 화면에 전용 로고가 뜨고 카린님이 「오! 그건 슈퍼 바코드 워즈의 아이템 카드다!」라고 말한다. 전투에서 쓰면 시판 바코드에서는 나오지 않는 전용 메시지가 뜬다. 「바코드 워즈다! BP가 오른다!」 하는 식으로, 효과마다 문구가 준비되어 있다.
더 흥미로운 것은 이 영역이 드래곤볼 카드에 배정된 자리(별 1개부터 7개까지의 구슬)를 그대로 쓰고 있다는 점이다. 그 카드들은 아이템 효과표에서 건너뛰어지고, 독자 규격이 그 빈자리를 차지한다.
자연스레 떠오르는 의문. 드래곤볼 게임이 왜 다른 시리즈의, 그것도 타사 캐릭터가 나오는 카드를 읽을 수 있는가. 답은 꽤 분명하다. 처음부터 그렇게 만들어졌다.
가장 단순한 증거는 방금 본 것이다. 게임이 상품명을 직접 말한다. 그저 읽힌다는 것은 우연일 수 있다. 전용 로고를 준비하고 전용 대사를 써 넣는 것은 전혀 다른 이야기다.
시기도 들어맞는다. 이 데이터크 타이틀은 1992년 12월 29일 발매다. 슈퍼 바코드 워즈 카드는 1992년 12월부터 1993년 11월까지, 본체 동봉분을 포함해 230종이 나왔다. 같은 달, 같은 회사, 나란히 굴러간 두 제품 라인이다. 나중에 덧붙인 것이 아니다.
프로그램도 같은 말을 한다. 이 규격을 위한 독립된 판독 경로가 통째로 존재하고, 시판 바코드 계산은 건너뛴다. 게다가 드래곤볼 카드를 아이템 효과표에서 제외하는 판정과, 그 빈자리에 이 규격을 떨어뜨리는 계산이 한 쌍으로 짜여 있다. 잔재나 우연이 이런 식으로 맞아떨어지지는 않는다.
다만 어느 카드가 어떤 결과를 내야 하는지까지 정한 흔적은 없다. 타사 시리즈의 카드에서 시판 바코드로는 닿을 수 없는 숫자의 완전체 셀이 나오는 이유도 바로 그것이다. 읽는 구조는 만들었지만, 그 결과로 무엇이 나오는지는 조정하지 않았다 — 근거에 가장 가까운 해석은 그쯤이다(이는 필자의 해석이며 결정적인 증거는 없다).
이 주제는 과장하기 쉬우므로, 하지 못한 일을 적어둔다.
처음 조사했을 때 필자는 「99990은 생성될 수 없다. 이런 일은 일어나지 않는다」고 결론지었다. 그것은 틀렸다. 표시 쪽의 한계 처리를 확인하지 않았고, 내부 값이 그대로 화면에 나온다고 가정했기 때문이다.
다른 분들의 정보와 지적이 그 가정을 깨뜨렸고, 위의 결론으로 이어졌다. 누구나 빠지기 쉬운 가정이므로 기록으로 남겨둔다.
이 페이지 첫머리에 인용한 닥터 와일리 카드 제보는 たれいち(@tareichi001) 님에게서 받았다.
근거로 제시된 것은 니코니코 동화에 실기 플레이로 공개된 영상이다. 【FC】データック_ドラゴンボールZ_強3RTA_06:16(sm36113889, sion10 님 투고, 2019년 12월 21일, 2026년 8월 14일 열람). 참가자 등록 화면에 HP 99990, BP 99990, DP 99990, 기술 레벨 1의 셀이 나온다.