If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Marathon 2 (Mac OS Classic)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Marathon 2

Developer: Bungie
Publisher: Bungie
Platform: Mac OS Classic
Released in US: November 24, 1995


SourceIcon.png This game has uncompiled source code.
DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
MusicIcon.png This game has unused music.
TextIcon.png This game has unused text.
LevelSelectIcon.png This game has a hidden level select.


Hmmm...
To do:
  • Rip the hidden music track from the game disc.

The second entry of the Marathon series. The story is a continuation of the first game's and notably features all-new graphics and audio for everything. The engine was tweaked a little bit, and the game lacks any music aside from the opening screens.

Level Select

Marathon2-levelselect.png
As in the original game, holding the Command and Option keys together while clicking on the "Begin New Game" button brings up a prompt to go to any level in the game, along with a set of instructions on how to be the hardest-core gamer.

Unused Text

General

The copy expiration message is still from Marathon.

Messages for Cheaters

Three terminals in the game display messages that can only be seen in-game through the use of third-party cheating utilities. All three terminals display normal messages when accessed without cheating.

<CMND THRESHOLD 92%>

You cheater. Quit cheating and play for
real!

<CMND THRESHOLD 92%>

This is the second message of the second terminal in the level "What About Bob?"

Atc &33c.3ckl2

That's cool how you just walked through
that door, but I still won't let you leave.

The first message displays this on the second terminal in "Curiouser and Curiouser..."

<Trn 36 ap&1cz:: 9cm2>

Cheaters don't really win,
and winners don't really cheat,
Unless you're talking politics.

The fourth terminal in "Eat It, Vid Boi!" displays this as its first message.

Developer Message

A developer message exists in Marathon 2 for those using ResEdit. However, it is also shorter than the one from Marathon.

Here we are again, guys.

Nobody here has slept very much recently or eaten
anything besides pizza or burritos in a few weeks, but
we hope you like what we ended up with.

I don't have much to say, and I won't be fool enough to
give away my email address again, but I figured everyone
would be disappointed if there wasn't some inane little
message here.

So.

Keep your heads up and your fingers off the Caps Lock key.
See you at MacWorld.

Jason, Ryan, Greg, Mark and Rob

Map Messages

Several levels contain hidden messages in the map geometry that cannot be seen without using a level editor. One level has multiple hidden messages. The original capitalization of the text has been preserved.

Level Message Image
We're Everywhere hey you, the bob carrying my 2nd pistol! - let's go! Marathon2 Text 5.png
Ex Cathedra The NAR Marathon2 Text 6.png
Bob's Big Date BOB'S LATE FOR HIS BIG DATE!! Marathon2 Text 11.png
The Big House JAIL BREAK, or PRISON RIOT?! Marathon2 Text 17.png
God Will Sort The Dead... Q: How do you tell the difference between the good Bobs and the bad ones? Marathon2 Text 19A.png
God Will Sort The Dead... A: Good Bobs? Marathon2 Text 19B.png
All Roads Lead To Sol... 723rd KICKS WUSSY NAR BUTT! Marathon2 Text 27.png


Hidden Soundtrack

Track 2 on the disc is an arrangement of "Jingle Bells" using Bob death screams, followed by 26 seconds of silence. Later revisions of the game such as The Trilogy do not contain this track.

(Source: Marathon Music)

Uncompiled Source Code

Two terminals in the game display pieces of its source code along with some dialogue. Although the source code has since been officially released, these messages were displayed in-game before then.

li5%!_data(*li!$ne_in
 
ary, "endpoint &%d not in polygon &%d (fro
&%d)", endpoint_index, polygon_iing
the shipd.
ndex, polyg't believe
everython_index));nS_TRANSPARENT(line))
{polygon= get_polygon_data(*polygon_index);
case _clockwise_bias
 
Tycho is infiltrating the ship.
Don't believe everything you read.
 
/* loif (*polygon_indor (index=0;index<
polygon->vertex_count && p
polygon_index, polygTycho is
infiltrat3on_index));nS_TRANSPARENT(line))
{polygon= get_polygon_data(*polygon_index);
 
*line_E_I>endpoint_
indexes[index]!=endpoint_
index;+'index);vasse tyc!=cool
polygon->vertex_courcate our endpo
 
n->adjacent_polygon_indexesuct line_data *
line;struct wor
ld_point2d *vertex;long
cross_product;olygon-t, csprintf(tempo
 switch (bias){
 
You were inadvertently transported to an
abandoned and unimportant section of the
ship, but the Pfhor followed you anyway.
 
Someone's after you, personally. One word;
two syllables; rhymes with Psycho.
 
dex!=NONE){strex];
/* loif (*polygon_indor (index=0;
index<polygon->vertex_count && p
*polygon_index= polygo
 
The humans sustained heavy losses while you
were gone and our defenses are falling
apart, but the evacuation is not yet
complete.
 
li5%!_data(*li!$ne_in

The second terminal in the level "Sorry Don't Make It So" displays this message.

Yt-c469d02l;12
 
ary, "endpoint &%d not in polygon &%d (from
&%d)", endpoint_index, polygon_iing the
shipd.
ndex, polyg't believe
everython_index));nS_TRANSPARENT(line))
{polygon= get_polygon_data(*polygon_index);
  case _clockwise_bias
 
Finish me. I won't be like Leela.
 
Get out of here and find the human leader,
Blake.
 
/* loif (*polygon_indor (index=0;index<
polygon->vertex_count && p
polygon_index, polygTycho is
infiltrat3on_index));nS_TRANSPARENT(line))
{polygon= get_polygon_data(*polygon_index)
 
Yt-c469d02l;12

This message is displayed by the first terminal in "Begging For Mercy Makes Me Angry!"

struct line_data *line;
struct world_point2d *vertex;
long cross_product;
 
*line_index= polygon->line_indexes[index];
*side_index= polygon->side_indexes[index];
*polygon_index= polygon->adjacent_polygon_indexes[index];
               
line= get_line_data(*line_index);
if (*polygon_index!=NONE && LINE_IS_TRANSPARENT(line))
{
        polygon= get_polygon_data(*polygon_index);
                       
        /* locate our endpoint in this polygon */
        for (index=0;indexvertex_count && polygon->endpoint_indexes[index]!=endpoint_index;++index);
        vassert(index!=polygon->vertex_count, csprintf(temporary, "endpoint #%d not in polygon #%d (from #%d)", endpoint_index,
                polygon_index, polygon_index));
       
        switch (bias)
        {
                case _clockwise_bias: index= WRAP_HIGH(index, polygon->vertex_count-1); break;
                case _counterclockwise_bias: index= WRAP_LOW(index, polygon->vertex_count-1); break;

Compare the previous two messages with this section of "render.c" from the game's source code.