Converting old M1 content

Have a question, suggestion, or comment about Aleph One's features and functionality (Lua, MML, the engine itself, etc)? Post such topics here.
Post Reply
User avatar
The Man
Vidmaster
Posts: 1203
Joined: Aug 6th '08, 05:23
Location: Sarasota, FL
Contact:

We were of a mind in the Discord to grab some M1 scenarios out of a SheepShaver drive in HFVExplorer and see if they’ll run in Aleph One. (I’ve been able to do this with a modified sounds file I’ll post sometime when I feel like writing up a read-me for it… so probably around the same time I post all my remastered sounds for Rubicon, Phoenix, Yuge, AOPID, etc.) I don’t really expect to have any luck with Trojan, because it seems they did some weird stuff to the game code to store the physics model in the shapes (???) and who knows what else, but I’m hoping maybe some of the other scenarios will work. But as I compare the Aleph One file data against M1’s, I have a few questions.
  • Obviously there was some modification to the game data for the sake of the music. I assume they exported the original music using QuickTime 3.0 with QuickTime Musical Instruments 2.0. But I’m assuming the map itself (or some other piece of the game code) was modified to get Aleph One to play .ogg files with specific levels. How was this done, and how would we replicate it for other M1 scenarios/maps?
  • There is a separate .phys file. what

    (no, really, the original game has the physics stored in the application data, as far as I can make out. What’s with the discrepancy, and again, how would we replicate it for other scenarios?)
Thanks in advance for any explanation you can give us.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

“The law cannot protect anyone unless it binds everyone; and it cannot bind anyone unless it protects everyone.” —Frank Wilhoit

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar
Pfhorrest
Vidmaster
Posts: 1847
Joined: Oct 12th '07, 22:08
Location: California
Contact:

All of the games have default physics data stored in the application, but will supersede it with a physics model if present.
User avatar
treellama
Vidmaster
Posts: 6110
Joined: Jun 2nd '06, 02:05
Location: Pittsburgh
Contact:

No map modifications are necessary aside from resource fork conversion. If a level asks for song index 1, Aleph One will play 01.ogg (or 01.mp3). See Music::SetClassicLevelMusic in Music.cpp

Aleph One is able to read original Marathon physics files, yep. There's no reason Trojan shouldn't work, except for the music. You'd have to convert that yourself.

One time I tried to reverse engineer the QuickTime Music Instruments file but didn't get very far.
User avatar
The Man
Vidmaster
Posts: 1203
Joined: Aug 6th '08, 05:23
Location: Sarasota, FL
Contact:

Thanks!

I actually already have the Trojan music – I just don’t know what track corresponded to what index. But for some reason, they put the physics data in the shapes file rather than in the application, which I assume required some changes to the game code. Would taking the physics data out of the shapes and putting it into its own .phys file make the game work properly, do you think? And would we save that in the resource fork of the new .phys file before taking it out with HFVExplorer?
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

“The law cannot protect anyone unless it binds everyone; and it cannot bind anyone unless it protects everyone.” —Frank Wilhoit

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar
treellama
Vidmaster
Posts: 6110
Joined: Jun 2nd '06, 02:05
Location: Pittsburgh
Contact:

What makes you think the physics are in the shapes file? How would that even work?
User avatar
The Man
Vidmaster
Posts: 1203
Joined: Aug 6th '08, 05:23
Location: Sarasota, FL
Contact:

The readme for the scenario. I have no idea how they got it to work – they must have modified the application code somehow, but how they figured out what to do is beyond me – and I have even less idea why they did it that way. But apparently, if you just duplicate the shapes file and rename the copy to Standard.phys (or whatever), it works fine in Aleph One. I have yet to mess around with it much.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

“The law cannot protect anyone unless it binds everyone; and it cannot bind anyone unless it protects everyone.” —Frank Wilhoit

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar
treellama
Vidmaster
Posts: 6110
Joined: Jun 2nd '06, 02:05
Location: Pittsburgh
Contact:

I went back and looked, and Marathon shapes are stored as resources, so I guess one could store the shapes in the physics file. I don't know why anybody would want to do that, but scenario designers regularly create abominations I don't understand. Aleph One should accept the same file for both if you write the correct MML.

I doubt they modified the engine code, other than editing well-known offsets.
User avatar
The Man
Vidmaster
Posts: 1203
Joined: Aug 6th '08, 05:23
Location: Sarasota, FL
Contact:

I was probably just going to adapt the MML from Marathon 1 to work with Trojan. The main thing that we’d need to change is the dimensions of the main menu for the image file, which is just a matter of going in with an image editor and getting the correct pixel coordinates – I just haven’t gotten around to it (dividing my time between four different projects means it’s tough to find time for one-off tasks like this).

Would any of those offsets (I guess the menu is one example) meaningfully affect gameplay? And if they modified them, how could we tell? I guess we could use a bit comparison program, but I’d have no way of telling what any of that stuff did.

And yeah, I have absolutely no idea why they did it that way. Bizarre.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

“The law cannot protect anyone unless it binds everyone; and it cannot bind anyone unless it protects everyone.” —Frank Wilhoit

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
Post Reply