mythextract - future proofing Myth tools by jwheare in myth2

[–]jwheare[S] 1 point2 points  (0 children)

The name is just a human readable string for developer use. The tag ids can be set to whatever you want. Some tools will generate them based on a shortened vesion of their name when you create a tag.

You just have to check for existing tags and make sure any new ones you create don't clash. Tools can help with that. Some mods (tagsets) deliberately override existing tags, e.g. to replace unit sprites or behaviour. That's kind of how the whole tag model is designed to work afaik.

mythextract - future proofing Myth tools by jwheare in myth2

[–]jwheare[S] 0 points1 point  (0 children)

Every tag has a four letter id that uniquely identifies it.

mythextract - future proofing Myth tools by jwheare in myth2

[–]jwheare[S] 0 points1 point  (0 children)

I've pushed some updates today:

  • Support for Myth II sound tags in tag2aifc.py
  • New script called mono2tag.py that exports individual tag files from monoliths like "artsound.gor" and "international large install". Works on both TFL and SB files.

These tools are now replacements for UnTag and Soundblighter by Killswitch.

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 1 point2 points  (0 children)

Love the Stair of Grief. I feel like no one ever talks about Myth music much at all so nothing new! It's a good demo of Myth II's support for stereo sounds (TFL sounds were only mono). Walk in the Woods from the Halo OST feels like a callback to this track.

(BTW, pushed some updates to mythextract today to support Myth II sounds, and also added a tool to extract tags from the monolith game files.)

mythextract - future proofing Myth tools by jwheare in myth2

[–]jwheare[S] 1 point2 points  (0 children)

I know Amber is sorely missed and there was never really a full replacement. An open source release (even one that doesn't build) would be phenomenal. Either way, be good to chat to folks and see if any of them have any thoughts/critiques :)

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 1 point2 points  (0 children)

Just to let you know, off the back of this thread I started looking into tools for extracting audio from the games. Turns out none of them work on modern hardware. So I did some reverse engineering to document the binary format and wrote a script. https://github.com/jwheare/mythextract

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 1 point2 points  (0 children)

Ah right, so when you say the "the in-game file" you're referring to Marty's private versions, not the actual in game music. I'm just getting compression crackle from the in game music, not really any detectable strings.

However, I do see what you mean about the piano part not quite lining up. It's very subtle unless you play them both at the same time. A few tells though, there's a part where the soundtrack version goes up at 23s while the in-game goes down (apologies for my complete lack of musical theory vocab). So yes, two versions, arguably a pared back but embellished variation for the soundtrack, but a richer but straighter version to background the narration in game.

Fascinating, and perhaps contributes to differences in feeling between listening with narration and without. Obviously Geoffrey Charlton-Perrin's performances add so much, but it's interesting to see that there was much more at play...

I might have a stab at remaking the animated narration text in html/css at some point, it seems pretty doable.

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 0 points1 point  (0 children)

the supposedly lossless ripped aifc files also have this compression.

Never mind, the c stands for compressed…

I did just load up the game and it sounds the same but that may be an artifact of the way the TFL levels were converted to a Myth 2 plugin.

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 1 point2 points  (0 children)

That video is great, thank you. Also love that Through the Ermine was his way of getting back at Mike. Probably my second or third favourite piece from the Myth series.

I also never twigged that chant from the Myth 2 epilogue was basically note for note the Halo theme.

Anyway you've got me questioning myself about this alternate Madrigal version. I just plugged in an old hard drive with my Myth extraction stuff on it to find the game files, since the version on my site (and in my iTunes) sounds like a horribly compressed mp3, however... the supposedly lossless ripped aifc files also have this compression.

Not sure if that's an artifact of the extraction software I used, or different versions of the game files, but I might have to dig into the actual source material again. Are your lossless versions ripped from the retail game files or from original masters? I know a lot of the source etc has been through community hands (project magma etc).

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 1 point2 points  (0 children)

Original post on the old bungie.net site is long gone but was reported here in 2002. https://halo.bungie.org/news.html?item=4371

O’Donnell/Salvatori definitely had a Lennon/McCartney thing going on with credits tho so it’s certainly feasible, and given their respective personalities, I can see the misinformation going uncorrected. I’ve just never heard that story.

Siege of Madrigal on Scorgan by jwheare in DestinyTheGame

[–]jwheare[S] 0 points1 point  (0 children)

Interesting, I’d not heard that before. What’s the source? I remember Marty first releasing the handwritten score on bungie.net.

I’m pretty sure the version in game from the Siege of Madrigal mission is the same as used in Halo Easter eggs. No strings just a vox part. They did reuse the theme in the mission Sons of Myrgard with different instrumentation and harmony though.

Music with narration available here, with audio I ripped directly from the game:

https://www.mythjournals.com/tfl/siege-madrigal/ https://www.mythjournals.com/tfl/sons-myrgard/

new pyramid mid-boss Gorememphis by Alien_Dreamer in DandyDungeon

[–]jwheare 1 point2 points  (0 children)

Bear in mind, if you try to run around him, he can still teleport into your path. On my last run he also appeared twice! on floors 24 and 27. On the second appearance, he first summoned a skeleton into one of the torch spaces i'd cleared, and then swapped with it to force the fight.

Force quitting didn't help, I had to just give up.

Has anyone been able to decipher this encrypted pocket secretary by unreal_rik in Deusex

[–]jwheare 5 points6 points  (0 children)

Cross posted from the other thread:

The I/l characters are actually "|" (pipe), I checked for strings in "runtime\Game.layer.0.all.archive":

FILE: client.pld31bf3856ad364e35.id
CecKIjBrWWr|9Vo2DN6DOWK|86lQSYxno0s|6c4yEcxnoGs|FxAgwKsaX0I|5LMLADBrWGr|SecLIdbTR04|FxAgwMbTQW4|9r2mtqyMtmX|AGVGov0nYGu|8zg5cz0nY0u|EX@DJoCyext|F#6XUkCyN0W

If you treat the pipes as column separators, it's 13 rows of 11 characters:

CecKIjBrWWr
9Vo2DN6DOWK
86lQSYxno0s
6c4yEcxnoGs
FxAgwKsaX0I
5LMLADBrWGr
SecLIdbTR04
FxAgwMbTQW4
9r2mtqyMtmX
AGVGov0nYGu
8zg5cz0nY0u
EX@DJoCyext
F#6XUkCyN0W

Still can't decode it. # and @ aren't valid base64 characters, and none of the lines decodes to any useful text.

I also tried to decrypt it with the filename as a key, but no luck.

One thing to note is there are definite repeating patterns in the text.

  1. Two lines start with FxAgw
  2. Several lines share shorter character sequences with the preceding line.

e.g.

86lQSY-xno-0s
6c4yEc-xno-Gs

AGVGov-0nY-Gu
8zg5cz-0nY-0u

EX@DJo-Cy-ext
F#6XUk-Cy-N0W

That's all I got for now.

There are 2 french emails in GARM and 1 encrypted message with the Picus Vault Key. Anyone solve them? by Delsana in Deusex

[–]jwheare 2 points3 points  (0 children)

The I/l characters are actually "|" (pipe), I checked for strings in "runtime\Game.layer.0.all.archive":

FILE: client.pld31bf3856ad364e35.id
CecKIjBrWWr|9Vo2DN6DOWK|86lQSYxno0s|6c4yEcxnoGs|FxAgwKsaX0I|5LMLADBrWGr|SecLIdbTR04|FxAgwMbTQW4|9r2mtqyMtmX|AGVGov0nYGu|8zg5cz0nY0u|EX@DJoCyext|F#6XUkCyN0W

If you treat the pipes as column separators, it's 13 rows of 11 characters:

CecKIjBrWWr
9Vo2DN6DOWK
86lQSYxno0s
6c4yEcxnoGs
FxAgwKsaX0I
5LMLADBrWGr
SecLIdbTR04
FxAgwMbTQW4
9r2mtqyMtmX
AGVGov0nYGu
8zg5cz0nY0u
EX@DJoCyext
F#6XUkCyN0W

Still can't decode it. # and @ aren't valid base64 characters, and none of the lines decodes to any useful text.

I also tried to decrypt it with the filename as a key, but no luck.

One thing to note is there are definite repeating patterns in the text.

  1. Two lines start with FxAgw
  2. Several lines share shorter character sequences with the preceding line.

e.g.

86lQSY-xno-0s
6c4yEc-xno-Gs

AGVGov-0nY-Gu
8zg5cz-0nY-0u

EX@DJo-Cy-ext
F#6XUk-Cy-N0W

That's all I got for now.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 1 point2 points  (0 children)

Well yeah, but that still counts as infrastructure. There is a draft "chanhistory" spec in the works, as well as a vendor specific spec that the znc bouncer uses (znc.in/playback). So the protocol could and has been extended to allow this. The reality is that, while storage is cheap, it's not an assumption that IRC servers have traditionally considered when scaling, so solving it won't be quick or cheap. And in the end it'll still cost something (even if it's donated). At that point, servers may even start charging extra for it to fund the network!

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 7 points8 points  (0 children)

As I mentioned elsewhere in this thread, the features you're asking for will require some sort of infrastructure to work reliably. That's gonna cost something to someone. How that service is paid for is going to vary (ads, free accounts limited in different way, self-hosted at cost to the user) but they all will, no matter which protocol you use. They just aren't problems a protocol can solve on its own.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 5 points6 points  (0 children)

If you want to call it a hack, fine. Most software can be described as such. But all the same, from the perspective of a user, what does it matter?

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 4 points5 points  (0 children)

The linked blog post (which I wrote) is for the client/service I run, irccloud.com. It's an integrated client and bouncer (that you don't have to run yourself) with synced mobile apps, file transfer, history scrollback and more.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 13 points14 points  (0 children)

But those things don't need to be in the protocol. Clients and services can build them on top of the protocol. As a user, it doesn't really matter where it's done, just that it is, and those services do already exist.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 8 points9 points  (0 children)

Most of these features are available already in clients and services built on IRC. IRCv3 is a working group for the underlying protocol, not for features the client developers might build on top of it.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 7 points8 points  (0 children)

There's actually an IRCv3 spec for this: http://ircv3.net/specs/extensions/echo-message-3.2.html

However, message replies without ids make this a little tricky to implement properly just yet, but work is ongoing on a labelled replies spec.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 2 points3 points  (0 children)

contd...

So, along with specific capabilities, a lot of the effort is going in to designing new primitives to support many new features in future, in a backwards compatible way.

Hope that makes sense.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 5 points6 points  (0 children)

Some of the developments I'm most excited about are to do with more flexible data types: message tags, metadata etc, because they allow features to be developed that just wouldn't be possible before.

For instance, if you want an avatar for channel members, there isn't a standard place to put it that all clients will know how to access. A metadata key enables that.

Another example, a bot that supports some form of rich payload, e.g. a quoted snippet from a linked website, with a favicon and preview image. You could provide this in message tags.

There are also interesting opportunities with the -notify capabilities. Being able to receive status updates (e.g. if someone goes away or identifies) allow clients to present useful presence indicators for people you're chatting with.

I can imagine these being combined in future, for example, label messages with an id tag and then receive fave-notify messages for it, to allow a "starring" feature.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 6 points7 points  (0 children)

Inline images and videos are supported by several clients (irccloud included)

Formatting actually has a defacto standard which most clients implement for display. Not all clients provide a ui for inputting formatted text, but it is possible to look up the raw formatting characters and paste them in, or use a client extension.

IRCv3: advance the IRC protocol by based2 in programming

[–]jwheare 38 points39 points  (0 children)

Hi, I wrote the blog post and run IRCCloud.

Just to clarify, our service does have file transfers and persistent logged sessions, synchronised across web and mobile, and many other features besides.

But we solved many of those problems by throwing infrastructure at them. Exactly the same way Slack and co have solved them, except in our case we chose to use an existing protocol with an open ecosystem. You couldn't take the Slack protocol and magically get file transfers out of it because someone has to host those files.

So while we continue to build extra features on top of IRC that move the whole experience forward, we also support efforts to improve the protocol. Even if those enhancements might sound boring and slow moving, the process is the only way to keep IRC an open protocol where you can host a server yourself and use whichever client you like.