<- 1  -   of 75 ->
^^
vv
List results:
Search options:
Use \ before commas in usernames
Quote from Tanks:
Well now I just feel fucking stupid. I was working with my 0-02 iso and not my 0-00... Got it working and just FYI to anyone looking to do the Widescreen hard-patch for 0-01 or 0-02, the offsets do not match up at all. Better off just ripping your 0-00 one (or finding one. I'm an internet poster, not a cop...)


I don't think it'll even work on other versions of the game because they changed some stuff on the HUD (like the addition of the "missile capacity" counter on the combat visor).
Decided to try adding something to the pause menu. I added the unused bomb upgrades to the inventory:

west furnace access why
hey parax, do you have something that decodes the echoes audio files?
Prime Audio Decoder will work on the AGSC files, jackoalan's Audacity will work on the other formats. Check the first post.
Hello, I am reading this forum in search of some way to encode back AGSC files with custom audio files for the sound effects.
As far as I know, Prime Audio Decoder works only for decoding the files.
My main objective is to make a custom version of Metroid Prime with every sound effect replaced.

Anyone can help me in this? Parax, maybe you know a way to encode back the files?
MrSinistar has done that (videos here and here). AGSC files just embed MusyX sound files (pool/proj/samp/sdir) so I think what he did was he found the MusyX SDK and he was able to use the tools in there to set up his custom sound effects, and then used a custom tool to assemble the output into an AGSC that the game can read. I obviously can't link the SDK here and we don't have any tools for creating AGSCs without it yet, but if you find it and set up your custom MusyX files the way you want them, we could probably help you put them in the game. I haven't done much work with it personally but MrSinistar or Antidote could probably tell you more.
I watched the videos from MrSinistar.
So you're saying that after using the tools in the MusyX SDK to create my custom sound effects, I would need this "custom tool" that probably is a homebrew program that MrSinistar himself programmed, did I get that right?
No, it's a PC application that generates an AGSC file. MrSinistar didn't write it. I think Antidote did. It's pretty simple in any case - all it does is generate the AGSC header and assemble the four input files into one AGSC file.
If you can please tell me the name of the application (if you know it) or a link to it, would be really appreciated!
There is no link. You need to ask them for it.
Ok, thanks a lot for the info! I'll try to ask them.
Actually, no tool currently exists to do that yet, MrSinistar manually edited the AGSC in a hex editor to add his samples in.

On another note, there was a bit of an oops in regards to FONT, there was a missing field (vertical offset) in the v4 data struct, I've since added it.
Ahh, well in that case, Zebesiano, if you want to take a stab at assembling it yourself with a hex editor, the format's documented on the wiki. http://www.metroid2002.com/retromodding/wiki/AGSC_(File_Format)
Edit history:
finiteBytes: 2015-08-08 03:14:31 am
The work that's being done here is insanely impressive. Love to see that this game still has such an active community.

I've been using the MREA files as an excuse to reintroduce myself to Java and also learning the basics of hex editing, and have written a small application that reads the lights section and outputs it into a text file in a more easy-to-read format. Pretty proud of that.

I'm still struggling to figure out what I'm doing with collisions though. The Wiki says that the collision section number is stored at 0x48; the file I've been working with is b2701146.MREA (which is the Tallon IV Landing Site) and at 0x48 in that file is 0x00000d08. But offset d08 is really close to the top of the file, definitely not after the geometry section... Am I misunderstanding how the "section numbers" work? I was able to easily find the light section because it's always headed by BABEDEAD, but the collisions don't seem to have a magic number. Apologies if this has been addressed in the past, there's been a lot of discussion since I was last active on this topic.
Edit history:
jackoalan: 2015-08-08 03:46:53 am
That value is actually a section index

You're looking for the section starting with 0xDEAFBABE.. that's right where the static collision triangle indexing begins.
DEAFBABE has 8 tables of indexing elements, starting with an octree and ending with raw world-space verts..

We haven't really gotten around to documenting it on the wiki though.. just keep an eye out for the 8 tables!

As far as sections are concerned, they come up differently in certain formats..
MREA has a table of section sizes that you can use to iteratively seek
Edit history:
Aruki: 2015-08-08 10:54:19 am
The main reason we haven't documented it is because we wanted to figure out the best way to do it without needless duplication of information. It's a little tricky because the huge "collision indices" struct that takes up most of the format is shared between MREA and DCLN (which are otherwise different formats), and it's further complicated by not wanting to duplicate information between the different MREA pages. So basically we'd need to document the indices struct (shared), the octree (MREA), the OBB tree (DCLN), and their respective headers + any format differences. Collision indices changes format from MP1 -> MP2 and the octree changes format from MP3 -> DKCR. So it gets a little complicated to figure out a non-confusing way to do this without duplicating info in multiple places.
@Parax: problem is, if someone like me wants to edit every sound effect in the game, manual editing so many AGSC files via  hex editor would be really an hassle. Since there are no other options, I'll take a look at it anyway.
Nice job!
Does it replace the ship in the landing cutscene as well? Or when you try to save in the ship? If so, this needs to be recorded.
no, I only replaced it on the ship platform. The ones from the cutscene are different actors.
Edit history:
Firenukes777: 2019-06-04 08:30:04 am
Edit history:
Antidote: 2015-08-09 09:57:04 pm
I just had an epic "hurdur" moment while trying to RE CAABox, I was staring at a function for far too long before I realized what it was doing. In hindsight it should have been obvious, but for some reason it wasn't:

https://gist.github.com/Antidote/980861222750c21cc6bb <- clamps r5 to be between min/max, and stores the result in r3 as the return value.

WHY it took me so long to figure it out is beyond me, I guess it's just one of those days :/
I actually RE'd that function myself ages ago to use with my renderer.

Code:
CVector3f CAABox::ClosestPointAlongVector(const CVector3f& dir) const
{
    CVector3f out;
    out.x = (dir.x >= 0.f) ? mMin.x : mMax.x;
    out.y = (dir.y >= 0.f) ? mMin.y : mMax.y;
    out.z = (dir.z >= 0.f) ? mMin.z : mMax.z;
    return out;
}
That's not correct parax, I don't where you got 0.f, but this is my RE of it:
Code:
    inline CVector3f closestPointAlongVector(const CVector3f& other)
    {
        return {(other.x < m_min.x ? m_min.x : (other.x > m_max.x ? m_max.x : other.x)),
                (other.y < m_min.y ? m_min.y : (other.y > m_max.y ? m_max.y : other.y)),
                (other.z < m_min.z ? m_min.z : (other.z > m_max.z ? m_max.z : other.z))};
    }