Metal Gear Remix v1.995

Page 6/6
1 | 2 | 3 | 4 | 5 |

By Feiraco

Master (131)

Feiraco's picture

30-06-2020, 11:34

Thanks Nekura_Hoka for all your effort! For sure I will give Metal Gear another try now after finishing it several times before.

By Nekura_Hoka

Rookie (32)

Nekura_Hoka's picture

08-07-2020, 16:30

Thanks, everyone!

By h0ffman

Supporter (8)

h0ffman's picture

27-11-2020, 19:49

Hey nekura, do you have the source text data for the patch? I'm currently working on porting metal gear to the amiga, early stages, but I think it would be doing the game a disservice not to include this fine work as a gameplay option.

By Nekura_Hoka

Rookie (32)

Nekura_Hoka's picture

10-12-2020, 22:59

h0ffman wrote:

Hey nekura, do you have the source text data for the patch? I'm currently working on porting metal gear to the amiga, early stages, but I think it would be doing the game a disservice not to include this fine work as a gameplay option.

No problem, I'm glad that you reached out. Here is a zip file with documentation that I created over the years for the script hack. As I mentioned on your tumblr ask, there is no source code per say since there were no execution changes in the ROM. I hope this helps you with your Amiga port.

To give a general overview. The script code calls for tiles to be displayed from the font bitmap or is a dictionary (what I call in the documentation a "wordvar," short for Word Variable) call to an array of predefined tile sequences for common words. "Big Boss" is an example. Instead of taking up the space in the script to mention "Big Boss" multiple times, they list that sequence once, and use a single byte to refer to it in script. This saves a ton of data. These functions exist in all the commercial versions of the game.

In addition to the dictionary system, I altered several font tiles (which were previously Japanese katakana) to include multiple character sequences as a single tile that were otherwise consuming data space in the dictionary or script tables. Ellipsis "..." is an example, and so are common conjunctions, like "'ll". You'll see some bitmaps that will show you what I mean.

The key to stuffing as much data as possible into this system was optimizing what words and phrases were used in script, dictionary, and font tiles, to both maintain meaning, but also fall into a common usage that would maximize the use of these rudimentary compression techniques. Think of it as trying to tell an engrossing espionage story with only the same 150 words, and you can only tell a total of 1500 words to get the story across.

Honestly, if your port involves recompiling the game from source, you don't need to mess with all of this extra compression stuff. You won't have to fit it into a 128kb cartridge, haha!

By h0ffman

Supporter (8)

h0ffman's picture

15-12-2020, 18:48

Thanks so much Smile I think this will end up being the default play option with additional option to play old school European version ( or maybe not even include, haven't decided yet )

You're not wrong. I've got a ton more RAM on the Amiga so I'm being pretty wasteful in some areas but it makes life a lot easier. For the original European text I wrote an unpacker in C# to expand all the original text from the dictionary entries. Means I don't need to write the dictionary code in assembly at the cost of some RAM.

Thanks again. I'll make sure you're in the credits when it's finished.

By Nekura_Hoka

Rookie (32)

Nekura_Hoka's picture

21-12-2020, 17:24

That's awesome! Have fun with the project. Let me know if there's anything further I can provide.

Page 6/6
1 | 2 | 3 | 4 | 5 |