Page 1 of 1

Operation Stealth

Posted: Thu Sep 16, 2010 10:31 am
by asle
Hi,

Maybe this is more addressed to Kyzer ...
Anyway, I have tried my luck at ripping the musics from the game "Operation Stealth". Spent a couple of hours on it, wrote a file extractor, manually rebuilt a couple of Sound FX 1.3 and ... and, well, the music plays wrong :). In fact, the notes are wrong. I checked UnExotica and, guess, it was already ripped :). Great, let's see .. hum .. ok, note frequencies are changed. hum .. what ?
I almost gave up, thinking it was a replayer hack which I couldn't handle, when I noticed the comment in the UnExotica page. I checked up the Aminet archive and it appears the notes are "fixed" with the extractor done by Kyzer.
So, if I read correctly, the samples were physically "halved" and the note frequencies were also halved (although realtime for those). Wouldn't it have been possible to "double" the sample data ?
Also, not all sample name without the first letter are available. I don't understand how you can "fix" this. I believe those are not used and could be set as empty in the rebuilt header.

Ah, well, this sounds just like a blog :). Anyway, I'll try this on my own and will let you know if something comes out.

Sylvain

Re: Operation Stealth

Posted: Mon Sep 19, 2016 10:14 am
by kyz
This may be 6 years late in replying, but yes, Delphine modified the SoundFX replayer to double all periods.

Original replayer:

Code: Select all

NoStop: move.l  4(a6),0(a5)             ;Intrument Adr.
        move.w  8(a6),4(a5)             ;Länge
        move.w  0(a6),6(a5)             ;Period
Super:  move.w  20(a6),d0               ;DMA Bit
        or.w    d0,DmaCon               ;einodern
NoNote: rts
Delphine's code:

Code: Select all

NoStop  move.l  (4,a6),(a5)
        move.w  (8,a6),(4,a5)
        move.w  (a6),d2
        lsl.w   #1,d2
        move.w  d2,(6,a5)
Super   move.w  ($14,a6),d0
        or.w    d0,(DmaCon).l
NoNote  rts
The samples could be doubled, but that'd just be a waste of disk space. Getting the original samples before the halving would be better.

The missing letters in sample names were fixed by me working out what they should have been and putting them back. It's an interesting mix.

Firstly, the samples which are 'needed' (the sampleinfo has sample length > 1) and also exist in the SDSONS archives as named by their sampleinfo in the song: ACCOTATE.AMI A_COEUR.AMI BASSDX.AMI BASSE2.AMI BASSLAP.AMI CCPCBALE.AMI CCPEPER2.AMI CCREERSE.AMI CCSUCHE7.AMI CELLO2.AMI CELLTION.AMI CONTSSE1.AMI CRASH.AMI CUIVTION.AMI EPIAORDM.AMI ETOMAMS.AMI ETOMONS3.AMI FENDDMI3.AMI FLUTEJAP.AMI FUZZITAR.AMI GUITRDMA.AMI GUITSSE2.AMI GUITTEDS.AMI GUITZYES.AMI HIHANGEE.AMI HIHAT2.AMI MONTECIN.AMI NYLOOTE2.AMI ORGUE.AMI ORGUTAVE.AMI PANFUTE5.AMI PIANVOIX.AMI PIED1.AMI PIEDECHE.AMI PIEDRLEY.AMI PRA1.AMI PRA21.AMI PRAT8888.AMI PRATT1.AMI PRATT1A.AMI PRO1002.AMI PRO105.AMI PRO11.AMI PRO110.AMI PRO1120.AMI PRO120.AMI PRO13.AMI PRO15.AMI PRO23.AMI PRO3.AMI PRO300.AMI PRO31.AMI PRO33.AMI PRO34.AMI PRO4.AMI PRO4000.AMI PRO69.AMI PRO700.AMI PRO71.AMI PRO80.AMI PRO800.AMI PRO86.AMI PRO9874.AMI PRO999.AMI SAXROCK3.AMI SNARE10.AMI SYNTDIUM.AMI SYNTIGH1.AMI

Secondly, samples which aren't needed (sampleinfo has sample length = 1), but have part of a filename (first character has been nulled out, here I've added a "?"): ?AX1.AMI ?PIARDMI.AMI ?RO1120.AMI ?RO16.AMI ?UIVION8.AMI ?UIVION9.AMI ?YLOE1FL.AMI ?YNTECHE.AMI

There aren't any files in the archives which could match these sample names, so it's good that these samples aren't used at all.

Thirdly, samples which are needed (sample length > 1), but aren't in the archives, because the first character in their name has been nulled out: ?AXROCK3.AMI ?CCOTATE.AMI ?CSUCHE7.AMI ?ELLTION.AMI ?IHANGEE.AMI ?ONTECIN.AMI ?RASH.AMI ?RO1002.AMI ?RO9874.AMI ?TOMAMS.AMI ?TOMONS3.AMI ?UITRDMA.AMI ?UITSSE2.AMI ?UITTEDS.AMI ?UZZITAR.AMI ?YNTDIUM.AMI

This third category is something I can fix, so I worked out what the first character was, to point them at files which do exist:

?AXROCK3.AMI -> SAXROCK3.AMI
?CCOTATE.AMI -> ACCOTATE.AMI
?CSUCHE7.AMI -> CCSUCHE7.AMI
?ELLTION.AMI -> CELLTION.AMI
?IHANGEE.AMI -> HIHANGEE.AMI
?ONTECIN.AMI -> MONTECIN.AMI
?RASH.AMI -> CRASH.AMI
?RO1002.AMI -> PRO1002.AMI
?RO9874.AMI -> PRO9874.AMI
?TOMAMS.AMI -> ETOMAMS.AMI
?TOMONS3.AMI -> ETOMONS3.AMI
?UITRDMA.AMI -> GUITRDMA.AMI
?UITSSE2.AMI -> GUITSSE2.AMI
?UITTEDS.AMI -> GUITTEDS.AMI
?UZZITAR.AMI -> FUZZITAR.AMI
?YNTDIUM.AMI -> SYNTDIUM.AMI

This change means that all the samples which are needed by the song do exist, and are the right ones.