Ok, sounds like you know a thing or two about mw, so that’s nice, let’s discuss! ![]()
About ReplaceText: that’s a noooooooononononono. No. No.
If I try to do it that way across thousands of pages, I’ll be fighting regex (with which I have a love/hate relationship) till kingdom come. Some pages use structured infoboxes ({{Infobox Game | disk = ...}}), some use raw [[Media:game.dsk]] links, and others link to external FTP mirrors or .zip archives. There’s no way I can get them all without introducing errors, plus it would introduce a new revision for each and every page touched to the database.
About the hooks, though. This got me thinking. Automatic link detection is possible (though I suspect that Mediawiki’s parser cache would probably make it tricky), however I think we don’t even need a PHP hook. What we could do, probably, is introduce a JS snippet to the MediawIki:Ccommon.js (or even directly into the theme??), scan the DOM on every page load and if a dsk link is found introduce a [Play] button next to them. That’s similar to what I did on the forum, too.
I won’t be touching it just yet, I need to think about it and look into mw modification a little first. If you’ve got any ideas, let me know!