Metal Gear Solid 5 cassette tape

Page 19/22
12 | 13 | 14 | 15 | 16 | 17 | 18 | | 20 | 21 | 22

By Guillian

Prophet (3450)

Guillian's picture

17-11-2015, 15:50

To create the audio they probably used CAS2WAV or similar tool.

From its header the file seems to be a CLOAD, with an empty name (just 1 space?). But the content is not a BASIC program but a binary. So it can't be loaded on a real MSX.

By chapter3pls

Supporter (2)

chapter3pls's picture

17-11-2015, 18:05

Just give it to us straight, doc.
Is the dream dead?

By TeamZebra

Supporter (4)

TeamZebra's picture

17-11-2015, 19:19

Guillian wrote:

@TeamZebra. Try MSX Cas Tools. It will decode part/most of the tape. It can add some fake header bytes here and there, and some bits are wrong.

The data chunk contains the begining of Metal Gear ROM (Japanese)

So I think this just proves what was obvious: the next operation (OPERATION INTRUDE N313) is Metal Gear MSX.
BTW, Big Boss/whoever should have some kind of extra hardware in his computer in order to load the game (MegaFlashROM, ESE-RAM, etc... ) (^_^!)

What parameters are you running MSX Cas Tools with? No matter how I fiddle with the input values, my output CAS file is always empty, only a few bytes long, or completely different from what you've gotten.

By Guillian

Prophet (3450)

Guillian's picture

17-11-2015, 23:48

@TeamZebra: First remove the silence/noise from the begining of the audio.

Then configure the tool with these values:
Threshold = 10.00
Window = 1.25
Envelope = 2.0

Erase the injected by the tool "1F A6 DE BA CC 13 7D 74" and "00 00 00 00 00 00 00" chunks.
The "D3 D3 D3..." is the CLOAD header, followed by an empty filename.
After removing the file header you will get the begining of Metal Gear ROM.
"43 44 07 50" is the identification of RC750 (Metal Gear MSX)

I used a threshold value of 6 in my first test, but with 10 you will get better results.

By TeamZebra

Supporter (4)

TeamZebra's picture

18-11-2015, 06:05

Guillian wrote:

@TeamZebra: First remove the silence/noise from the begining of the audio.

Then configure the tool with these values:
Threshold = 10.00
Window = 1.25
Envelope = 2.0

Erase the injected by the tool "1F A6 DE BA CC 13 7D 74" and "00 00 00 00 00 00 00" chunks.
The "D3 D3 D3..." is the CLOAD header, followed by an empty filename.
After removing the file header you will get the begining of Metal Gear ROM.
"43 44 07 50" is the identification of RC750 (Metal Gear MSX)

I used a threshold value of 6 in my first test, but with 10 you will get better results.

Thanks :) I'm starting to see results.

Did you clean up the audio or do any post-processing to get the data? I've trimmed the excess silence at the beginning of the audio clip, but the most I can manage to get is 457 bytes from wav2cas. If you could share your WAV file, that'd be fantastic if you did do some cleanup on it.

Your given parameters (threshold: 10.0, windows factor: 1.25, envelope correction: 2.0) resulted in an empty file for me. To get the above mentioned 457 bytes, I had to use these values:
Normalize amplitude level: TRUE
Threshold: 10.0
Window factor: 1.25
Envelope correction: 9.0

With the above parameters, here's my resulting 457 byte CAS file. The ASCII will be a little different from yours, I just used hexdump from the commandline as opposed to a GUI hex editor. Curiously, though, some of the data bytes in my results are different from yours. Though, since you got more than 457 bytes seemingly, I'm chalking that up to unreliably converted data right now.

00000000  1f a6 de ba cc 13 7d 74  ff 00 00 00 00 00 00 00  |......}t........|
00000010  1f a6 de ba cc 13 7d 74  d3 d3 d3 d3 d3 d3 d3 d3  |......}t........|
00000020  d3 d3 00 00 00 00 00 00  1f a6 de ba cc 13 7d 74  |..............}t|
00000030  41 42 f3 41 00 00 00 00  00 00 00 00 00 00 00 00  |AB.A............|
00000040  43 44 07 50 00 00 00 00  00 00 00 00 00 04 00 00  |CD.P............|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  f8 c0 12 c0 32 c0 52 c0  10 c0 11 c0 30 c0 31 c0  |....2.R.....0.1.|
00000070  50 c0 51 c0 92 68 f2 cc  f4 c0 7a c0 f0 c0 71 c0  |P.Q..h....z...q.|
00000080  cd e0 41 18 4e cd e5 41  18 49 cd 7c 42 18 44 cd  |..A.N..A.I.|B.D.|
00000090  fb 5c 18 3f cd c9 61 1c  3a cd af 61 18 35 cd 54  |.\.?..a.:..a.5.T|
000000a0  62 18 30 cd 4b 65 18 2b  cd 51 65 18 26 cd 61 69  |b.0.Ke.+.Qe.&.ai|
000000b0  18 21 cd ee 69 18 1d cd  00 6c 18 17 cd 5d 50 18  |.!..i....l...]P.|
000000c0  12 cd fe 51 18 0d cd 91  4f 18 08 cd 00 00 00 00  |...Q....O.......|
000000d0  1f a6 de ba cc 13 7d 74  4d 18 03 ed 0e 4e 18 4e  |......}tM....N.N|
000000e0  cd 15 50 18 49 cd 41 4f  18 44 cd 0c 51 18 3f cd  |..P.I.AO.D..Q.?.|
000000f0  8a 71 18 3a cd 4d 61 18  35 cd b4 42 18 30 cd 93  |.q.:.Ma.5..B.0..|
00000100  4d 19 2b cd 59 4d 18 26  cd 66 4e 18 21 cd e1 43  |M.+.YM.&.fN.!..C|
00000110  18 1c cd 21 65 18 17 cd  10 51 18 12 cd 28 6f 18  |...!e....Q...(o.|
00000120  0d cf 35 51 18 08 cd 00  1f a6 de ba cc 13 7d 74  |..5Q..........}t|
00000130  99 1a 00 00 00 00 00 00  1f a6 de ba cc 13 7d 74  |..............}t|
00000140  03 cd a7 44 18 5e cd 1b  4e 18 49 cd 35 49 18 44  |...D.^..N.I.5I.D|
00000150  cd cb 4a 18 3f cd af 44  18 3a cd ac 44 18 35 cd  |..J.?..D.:..D.5.|
00000160  0b 7d 18 30 cd 90 4e 18  2b cd c4 4e 18 26 cd 4b  |.}.0..N.+..N.&.K|
00000170  4c 18 21 cd cd 4f 18 1c  cd f3 5c 19 17 cd 4a 90  |L.!..O....\...J.|
00000180  18 12 cd 2f 4f 18 0d cd  fc 4e 18 08 cd ca 73 18  |.../O....N....s.|
00000190  03 cd 84 42 18 4e cd 03  4b 18 49 cd 1d 5d 18 44  |...B.N..K.I..].D|
000001a0  cd 36 6a 18 3f cd 3e 6a  18 3a cd be 6f 18 35 cd  |.6j.?.>j.:..o.5.|
000001b0  67 6f 18 30 cd 1d 4e 18  2b 00 00 00 00 00 00 00  |go.0..N.+.......|
000001c0  1f a6 de ba cc 13 7d 74  94                       |......}t.|

By TeamZebra

Supporter (4)

TeamZebra's picture

18-11-2015, 06:16

Here's a GUI hex editor's view of my current CAS file, so you can more easily see the ASCII representation properly:

By Manuel

Ascended (18136)

Manuel's picture

18-11-2015, 08:14

Use the 'code' tags, not the 'quote' tags...

By Guillian

Prophet (3450)

Guillian's picture

18-11-2015, 10:01

@TeamZebra: I don't remember the steps I did, so I tried to start again from the audio file posted by lan67043@
- I removed the silence/noise at the beginning
- Amplified the sound (13 db using Audacity)
This is the wav file.

Then I used:
Threshold: 9
Window factor: 1.25
Envelope correction: 2.0

Bear in mind that some bytes can be replaced with "1F A6 DE BA CC 13 7D 74" and "00 00 00 00 00 00 00" chunks by the tool, and must be removed.

By Guillian

Prophet (3450)

Guillian's picture

18-11-2015, 11:27

At the end of the audio file there are two short silences/cuts. I tried to manually restore the data, checking the start and stop bits of each byte. Here is the new wav.

I managed to decode a few extra bytes but, as expected, they are just more bytes from the Metal Gear ROM.
I removed the CLOAD header and extra chunks added by the tool, and replaced the missing bytes with #FFs (in red).
Some bits are wrong. But don't try to find any secret message on them. It is just Z80 opcodes (the game code).

I also checked the "end_tape" (adding to it the missing header) and it also contains chunks of the original Metal Gear ROM.

Why Konami changed the tape? Probably because they find out that some people decoded it and realized it has no sense to load a PC-6001 game on an MSX2 computer. Also, Portopia was not Operation Intrude N313.
So they 'fixed it' (it is weird loading Metal Gear ROM from tape but...) and now the circle is closed.

By chapter3pls

Supporter (2)

chapter3pls's picture

18-11-2015, 17:19

Might be a silly question, but is it at all possible to run this Metal Gear MSX Rom with this code? Maybe if we could play an "altered" version of the game, there might be something for us to find there?
Thank you all for your work here, either way

Page 19/22
12 | 13 | 14 | 15 | 16 | 17 | 18 | | 20 | 21 | 22