슈퍼 마리오 브라더스 3/완성되지 않은 보너스 게임
이 페이지는 슈퍼 마리오 브라더스 3의 서브페이지입니다.
해야할 일: 사라진 보너스 게임들의 '올바른' 행동 패턴을 보이는 영상을 와이드 화면이 아니게 만들어주세요. |
맵 에디터로 스페이드 보너스 타일의 속성을 바꾸면, 두 개의 없어진 보너스 게임에 접근할 수 있다. 월드 맵이 보너스 게임으로 접근하면, 셋 중의 한 호스트와, 서로 다른 배경과 보너스 게임 타입으로 들어가진다. 그 호스트들 중 아무거나 들어가지며, 게임이 어떻게 진행되고 대사가 어떻게 나오는지는 서로 바뀌지 않는다.
(참고: 아래 스크린샷에 있는 그래픽이 일부 혹은 전부 불일치할 수 있으며, 최종판에서 이들의 원래 타일이 다른 곳으로 이동되었거나 완전히 덮어써졌을지도 모릅니다. 추측들은 남아있는 스프라이트와 배경 타일 설정에 근거한 것입니다.)
위의 스크린샷은 Rusty의 보너스 게임 복원 해킹판에서 보이는 것이며, 다른 호스트, 배경 및 게임 타입을 보인다.
Contents
보너스 게임 호스트
네 개의 호스트 번호가 있으며, 오직 0 하나만이 일반 게임플레이에서 볼 수 있는 키노피오이다. 엉금엉금과 해머브러스가 보너스 게임의 호스트로 등장한다. CHR 타일(어떤 이유로 인해 ROM에 두번 들어가있다)이 어떤 시점에서 바뀌며, 코드와 맞지 않게 늘어선다(16으로 끈다. 자세한 것은 Disassembly source for PRG bank #22로 들어가, "HostTroopa_DrawSprites:"와 "HostHammerBro_DrawSprites:"로 검색).
호스트 번호 | 결과 |
---|---|
0 | 키노피오 |
1 | 박스 있는 엉금엉금 |
2 | 박스 없는 엉금엉금 |
3 | 해머브러스 |
보너스 게임 배경
5개의 보너스 배경이 있지만, 오직 하나만 사용되었다. 그 중 두 개는 비어있어서 오직 벽돌 배경만 보이고, 다른 것들은 자리만 차지하는 듯 하다. 두개는 사용하지 않은 깨진 오브젝트가 있으며 어떤 배경으로도 지정되지 않은 것들이다.
배경 번호 | 결과 |
---|---|
0 | 탁자가 있는 보너스 방(평상시). |
1 | 탁자가 없는 보너스 방. |
2 | 깨진 파란 상자가 있는 보너스 방. |
3, 4 | 다른 디자인을 염두한 완전히 빈 보너스 방. |
없음 | 망가진 주황색 상자가 있는 시험용 보너스 방. |
없음 | 긴 오브젝트가 있는 시험용 보너스 방. |
사용하지 않은 텍스트
미국판 ROM에서 발견할 수 있는 일본어 텍스트이며, 보너스 게임 호스트가 말할 예정이었던 대사이다. 이들 중 몇몇은 보너스 게임 중 메모리 주소를 포킹하여야만 볼 수 있지만, 그 '모든' 것들은 명백히 '주사위 굴리기'의 기회와 관련된 것이다.
일본어 | 한국어 번역 | 비고 |
---|---|---|
1がでたら 1 2がでたら かぎを |
1이 나오면 1 2가 나오면 열쇠를 |
뒤에 언급할 보너스 게임 0에 대한 대사이다. 상금 코딩이 완성되지 않았다. |
きすうが でたら ルーレットゲームを |
홀수가 나오면 룰렛 게임을 |
룰렛 게임으로 바뀔 때의 설명이다. |
ぐーすうがでたら カードゲームを |
짝수가 나오면 카드 게임을 |
카드 게임으로 바뀔 때의 설명이다. |
2 もどれ | 2 돌아감 | 뒤에 언급할 보너스 게임 7에 대한 대사이며, 월드 맵의 4군데 고정된 지점으로 쫓아내는 것이다. |
ものを やろう? | 물건을 줄까? | 보너스 게임 0의 두번째 설명이다. |
3かい プレイだよ | 3회 플레이(하는거)야 | 이 메시지는 홀수가 나오고 나서 나온다. 닌텐도가 주사위 굴리기를 없애면서, 필요없게 되었다. |
チャンスは 2かい おなじ カードを |
찬스는 2회 같은 카드를 |
이 메시지는 짝수가 나오고 나서 나온다. 위와 동일한 운명이다. |
주사위 굴리기
보너스 게임의 구조는 모두 기본적으로 주사위 굴리기 게임에 기반을 둔다. 모든 게임이 주사위로 열리며 이기거나 진행하는 다른 설명을 하게 된다. 게임이 발매되었을 때, 주사위는 여전히 코드상에 남아있고 (그래픽은 없어졌지만), 닌텐도 개발자들에 의해 강제로 볼 수 없게 되었다. 이러한 해킹이 보너스 게임에서 주사위 조절을 강제로 진행하게 해, '두번째' 설명으로 곧바로 점프하게 만든다(Disassembly source for PRG bank #22로 들어가서, "PRG022_C8E6:"을 검색).
이 코드는 총 8개의 보너스 게임을 수용할 수 있으며, 각각의 두번째 대사로 넘어갈 수 있게 해준다. 이 기능은 사용하지 않게 되었으며, 닌텐도의 해킹이 남아있는 것들의 대부분을 사용할 수 없게 만들었다. 만약 그 해킹이 없다면, 주사위는 숨겨지지 않고 보너스 상태 전환이 전혀 일어나지 않게 되며, 대부분의 기능이 되돌아오게 된다. 없어진 텍스트들은 게임의 절반이 어떻게 이루어지는지에 대한 힌트를 제공해준다.
보너스 게임 0: 주사위 게임
일본어 | 번역 |
---|---|
1がでたら 1 2がでたら かぎを |
1이 나오면 1 2가 나오면 열쇠를 |
일본어 | 번역 |
---|---|
ものを やろう? | 물건을 줄까? |
프로그래밍이 완성되지/유지되지 않아서, 게임이 끝나고 보상을 받지만, 올바르지 않은 것을 준다.
- '1'이 나오면 목숨을 받을 수 있으며, 소리가 나오지 않고 99개 이상의 오버플로 방지도 되어있지 않다. 이것이 의도된 동작인지 불분명하다(아마 '1'이 '1-up'을 가리키는 것일지도 모른다).
- '2'가 나오면 플레이어의 점수 '저장소'(플레이어가 바뀔 때를 대비해 유지하는 곳)의 첫번째 바이트 값을 증가시킨다. 하지만 이는 플레이어 점수를 바꾸는 올바르지 않은 방법이며, 게임에서 나가게 될 때 현재 점수로 다시 덮어씌워버리게 된다. 아마 무언가 다른 의도로 하는 것임에 분명하다.
- 다른 값은 10 x (주사위값)만큼의 동전 대신에 점수를 준다. 이는 제대로 동작하지 않는 것이다(점수에 중요한 자릿수를 증가시켜주지 않는다). 이를 통해 이 코드는 유지되지 않는 코드라고 볼 수 있다.
보너스 게임 1: 스페이드 게임(룰렛)
최종판 마리오 3의 스페이드 게임이 궁극적으로 무엇인지를 알려주는 바이다. 이는 타입 5(홀수-이기기 게임)의 원래 위치였거나, 주사위 게임을 포기하고 난 뒤에 옮겨진 게임으로 추정된다. 어떤 경우에, 위에서 언급한 해킹의 기능이 첫번째 보너스 게임의 로직(주사위 굴리기)를 건너뛰고 곧바로 두번째 설명으로 넘어가는 경우가 있다(주사위 게임에 이긴 것 처럼). 해킹이 없어지면, 이 게임은 타입 0을 따라한 정의되지 않은 주사위 게임이 된다.
보너스 게임 2: N-스페이드 게임(카드)
최종판 마리오 3가 궁극적으로 진행하려는 게임이다. 이는 타입 6(짝수-이기기 게임)의 원래 위치였거나, 주사위 게임을 포기하고 나서 이쪽으로 옮겨진 게임일 수 있다. 어떤 경우에, 해킹의 기능이 타입 1과 똑같고, 해킹이 없어졌을 경우 타입 0을 따라한 주사위 게임이 된다.
보너스 게임 3: 정의되지 않은 게임 1 (CCCCCCC CCCCCCC)
일본어 | 영어 |
---|---|
ううううううう ううううううう | CCCCCCC CCCCCCC |
호스트가 그 지점에 있는 텍스트를 말한다. 일본어판에서는 일본어 문자를 반복하며, 영어판에서는 C가 반복된다. 이 것이 타입 0을 따라한 정의되지 않은 주사위 게임이다.
보너스 게임 4: 정의되지 않은 게임 2 (DDDDDDD)
일본어 | 영어 |
---|---|
えええええええ | DDDDDDD |
호스트가 그 지점에 있는 텍스트를 말한다. 일본어판에서는 일본어 문자를 반복하며, 영어판에서는 C가 반복된다. 이 것이 타입 0을 따라한 정의되지 않은 주사위 게임이지만, 메모리 주소 $072D 부분을 01로도 만든다. 이 값의 중요성은 사라졌으며, 코드 어디에서도 쓰이지 않는다.
Disassembly source for PRG bank #30에서, "BONUS_UNUSED_DDDD (??!) only..."를 검색하면 된다.
보너스 게임 5: 홀수 굴리기
일본어 | 번역 |
---|---|
きすうが でたら ルーレットゲームを |
홀수가 나오면 룰렛 게임을 |
일본어 | 번역 |
---|---|
3かい プレイだよ | 3회 플레이(하는거)야. |
'스페이드' 게임이라 일컫는 '룰렛' 게임으로 가기 위해 홀수로 주사위를 굴려야하는 것을 알려준다. 만약 보너스 게임 나가기 코드가 이 게임타입과 맞다면, 플레이어가 주사위를 굴려 홀수가 나왔을 때 룰렛, 슬롯머신, 스페이드 게임으로 진행하게 된다. 더 흥미로운 점은, 원래의 호스트가 초기화되며 두번째 텍스트가 나온다는 것이다.
대개 룰렛,스페이드 게임은 그림을 세울 수 있는 기회를 한번만 주나, RAM 주소에 있는 사용하지 않은 카운터 $419가 있고 기본값은 00인데, 다른 값으로 지정하면 0으로 떨어지거나 이길 때까지 기회가 유지된다. 단순히 A, B 또는 Start로 바퀴를 돌릴 수 있다. 단순히 1바이트를 수정하는 것만으로도 여러 번의 기회를 가질 수 있다.
이 게임을 고치기 위해서는, disassembly source for PRG bank #30으로 들어가서 "If Bonus_GameType <> BONUS_SPADE, jump to PRG030_8D85"에 해당하는 부분을 찾고 "BONUS_UNUSED_ODDROULETTE"를 사용하기 전에 CMP 한 줄을 수정하면 된다.
여러번 기회를 가지게 하고 싶으면, disassembly source for PRG bank #22로 들어가서, "Roulette_ConfigTurns:"를 찾고 LDA #$00을 LDA #$02로 바꾸면 된다.
보너스 게임 6: 짝수 굴리기
일본어 | 번역 |
---|---|
ぐーすうがでたら カードゲームを |
짝수가 나오면 카드 게임을 |
일본어 | 번역 |
---|---|
チャンスは 2かい おなじ カードを |
찬스는 2회 같은 카드를 |
'N-스페이드' 게임이라 일컫는 '카드' 게임으로 가기 위해 홀수로 주사위를 굴려야하는 것을 알려준다. 만약 보너스 게임 나가기 코드가 이 게임타입과 맞다면, 플레이어가 주사위를 굴려 홀수가 나왔을 때 카드, N-스페이드 게임으로 진행하게 된다. 더 흥미로운 점은, 원래의 호스트가 초기화되며 두번째 텍스트가 나온다는 것이다.
이 게임을 고치기 위해서는, disassembly source for PRG bank #30으로 들어가서 "If Bonus_GameType <> BONUS_NSPADE, jump to PRG030_8D95"에 해당하는 부분을 찾고, "BONUS_UNUSED_EVENCARD"를 사용하기 전에 CMP 한 줄을 수정하면 된다.
보너스 게임 7: 돌아가기
일본어 | 번역 |
---|---|
2 もどれ | 2 돌아감 |
아마 없어진 게임 중에 가장 이상할 것이다. 호스트가 '2'의 완전하지 않은 방향들을 제공해준다(아마 주사위의 눈?). 이 게임은 유일하게 호스트가 중요한 것인데, '엉금엉금과 상자 위에 있는 아이템'이 월드 맵에 2개의 가능한 위치 중에 한 곳으로 정해준다. 다른 결정인자가 필요한데, 이 코드가 잘 작동하지 않을지라도 월드맵을 왼쪽/위, 오른쪽/아래 중 어디로 이동할 것인지에 대한 것이 명백히 예정되어 있다(Disassembly source for PRG bank #22로 들어가서, "Bonus_Return2_SetMapPos:" 검색).
Southbird에 의한 해킹의 스크린샷은 총 8개의 보너스 게임을 보여준다. 물 밖에 있는 부두는 타입 7로 이동시켜주는 고정된 타겟들이다. 어떤 지점이 '보너스 게임'인지에 대한 명백한 증거가 없으나(해당 보너스게임을 불러올지라도), 이 코드를 봤을 때 엉금엉금의 박스 위에 있는 오브젝트가 파워업이 아니라는 것을 얘기하지만, 어디로 보내질지에 대한 몇몇 다른 지시인자라는 것을 보여준다.
오동작이나 월드 맵의 숨겨진 곳을 이동하는 무언가라고 생각하는 것은 시간낭비이다.