Hoping someone here can help me with this. The ROM is Outlander (U) [!].bin I found a password at $05FB32. The password is PSYCHOSLAPHEAD. When I enter the password, it's not accepted. I found the routine that checks to see if that specific password has been entered, but that routine is never accessed. I changed some code so it runs the routine and accepts the password, but I found that all it does is accept any random password. I'm guessing I inserted my new code in the wrong place? Or maybe there's some controller buttons I need to press?
Anyways, here's some of the info I have so far...
The routine that checks that password starts at $012054...
01:2054 48 E7 MOVEM.L {d0-a7}[c0 c0],-(A7) A0=00FF0B6A A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFF2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2058 41 F9 LEA ($0005FB32),A0 A0=00FF0B6A A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:205E B3 08 CMPM.B (A0)+,(A1)+ A0=0005FB32 A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2060 66 00 BNE #$001C [01:207E] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2064 0C 10 CMPI.B #$FF,(A0) A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2068 67 00 BEQ #$0008 [01:2072] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvC
01:206C 60 00 BRA #$FFFFFFF0 [01:205E] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvC
This routine is NOT run when entering the password. Here is the new code I inserted to get the routine to run...
00:2180 4E F9 JMP ($00012054)
As you can see above, at 01:205E it compares A0 (0005FB32 = start of password in ROM) to A1 (00FF03D0 = RAM address for first letter of password entered). Then it compares 0005FB33 to 00FF03D1, and so on. At 01:2064, it determines when the end of the password has been reached and branches to 01:2072. Here's that assembly...
01:2072 3D 7C MOVE.w #$0001,$07C6(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2078 4E B9 JSR ($000056CA) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56CA 4A 6E TST.W $0A52(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56CE 66 08 BNE #$08 [00:56D8] A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
00:56D0 33 FC MOVE.w #$0045,($00FF0B8E) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
00:56D8 3D 7C MOVE.w #$0001,$0412(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56DE 4E 75 RTS
It's entirely possible that the password doesn't do anything, but it seems unlikely that they would have the password, and have a routine specifically for that password. Can anyone figure out how to activate that password? I'd appreciate any help.
Anyways, here's some of the info I have so far...
The routine that checks that password starts at $012054...
01:2054 48 E7 MOVEM.L {d0-a7}[c0 c0],-(A7) A0=00FF0B6A A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFF2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2058 41 F9 LEA ($0005FB32),A0 A0=00FF0B6A A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:205E B3 08 CMPM.B (A0)+,(A1)+ A0=0005FB32 A1=00FF03D0 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2060 66 00 BNE #$001C [01:207E] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2064 0C 10 CMPI.B #$FF,(A0) A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2068 67 00 BEQ #$0008 [01:2072] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvC
01:206C 60 00 BRA #$FFFFFFF0 [01:205E] A0=0005FB33 A1=00FF03D1 A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvC
This routine is NOT run when entering the password. Here is the new code I inserted to get the routine to run...
00:2180 4E F9 JMP ($00012054)
As you can see above, at 01:205E it compares A0 (0005FB32 = start of password in ROM) to A1 (00FF03D0 = RAM address for first letter of password entered). Then it compares 0005FB33 to 00FF03D1, and so on. At 01:2064, it determines when the end of the password has been reached and branches to 01:2072. Here's that assembly...
01:2072 3D 7C MOVE.w #$0001,$07C6(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
01:2078 4E B9 JSR ($000056CA) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFE2 D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56CA 4A 6E TST.W $0A52(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56CE 66 08 BNE #$08 [00:56D8] A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
00:56D0 33 FC MOVE.w #$0045,($00FF0B8E) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnZvc
00:56D8 3D 7C MOVE.w #$0001,$0412(A6) A0=0005FB40 A1=00FF03DE A2=00FF2F5E A3=00C00000 A4=0000BB28 A5=00C00004 A6=00FF0000 A7=00FFFFDE D0=00000005 D1=00000000 D2=00000007 D3=0000000E D4=4BB40002 D5=00360000 D6=FFFF00D4 D7=0000000D xnzvc
00:56DE 4E 75 RTS
It's entirely possible that the password doesn't do anything, but it seems unlikely that they would have the password, and have a routine specifically for that password. Can anyone figure out how to activate that password? I'd appreciate any help.
Comment