The Forum is up for sale: XeNTaX Forum looking for new owner

Maximum Tune 3 .igb models

Post questions about game models here, or help out others!
Post Reply
avwrtn
ultra-n00b
Posts: 6
Joined: Fri Sep 16, 2022 3:26 pm
Has thanked: 2 times

Maximum Tune 3 .igb models

Post by avwrtn »

I've been aware from a long time now that the Alchemy .igb models are considered impossible to access, however in recent years the Project Diva community seem to have learned a thing or two about Alchemy and those games. I want to ask if anybody can help get an understanding for the Maximum Tune 3 arcade games and maybe be able to find a reliable way to export those .igb into modern formats. Before anybody tells me to just look at the HD games, I understand that the HD games in this series have been figured out, but I'm only interested in preservation and documentation of MT3. 8)

My coding knowledge is very minimal, so I'll say what I do know.
Alchemy from the Project Diva forums can open a small amount of .igb files from MT3 such as courses, leftover test models and some menu 3D elements. However, it cannot open most of those same models from the later MT3DX-3DX+.
It appears all the data needed for the game engines such as, the 3D geometry, textures and materials, are all included in the files.

One interesting thing that could be looked at is the wheel models. For some reason MT3 uses very high polygon wheel models which are only seen in the menus when you would unlock them. I would love to document these and compare the quality to modern games.

Here's the link to the PD forum post about Alchemy: https://projectdiva.net/community/threa ... dule.1883/
And example models: https://drive.google.com/file/d/1k636vK ... sp=sharing
User avatar
Durik256
ultra-veteran
ultra-veteran
Posts: 425
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 45 times
Been thanked: 411 times

Re: Maximum Tune 3 .igb models

Post by Durik256 »

avwrtn wrote: Fri Sep 16, 2022 4:47 pm .igb models MT3. the wheel models.
You do not have the required permissions to view the files attached to this post.
avwrtn
ultra-n00b
Posts: 6
Joined: Fri Sep 16, 2022 3:26 pm
Has thanked: 2 times

Re: Maximum Tune 3 .igb models

Post by avwrtn »

I didn't expect that to happen quickly, well done!
Where can I find that app? Is it yours? It almost looks like a Noesis tool.
avwrtn
ultra-n00b
Posts: 6
Joined: Fri Sep 16, 2022 3:26 pm
Has thanked: 2 times

Re: Maximum Tune 3 .igb models

Post by avwrtn »

Durik256 wrote: Fri Sep 16, 2022 7:20 pm
avwrtn wrote: Fri Sep 16, 2022 4:47 pm .igb models MT3. the wheel models.
Hey, is there any chance you could share that mesh finder app please? I cannot seem to find it anywhere. No other hex to obj apps has that auto generate face feature. Manually creating thousands of ploygons is going to be a lot of pain.
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4231
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1139 times
Been thanked: 2222 times

Re: Maximum Tune 3 .igb models

Post by shakotay2 »

avwrtn wrote: Tue Sep 20, 2022 3:25 pm No other hex to obj apps has that auto generate face feature.
What are you talking about? :eek: hex2obj was one the first if not the first to have it.
.
wheel-igb.jpg
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
avwrtn
ultra-n00b
Posts: 6
Joined: Fri Sep 16, 2022 3:26 pm
Has thanked: 2 times

Re: Maximum Tune 3 .igb models

Post by avwrtn »

My mistake, I tried hex2obj but I couldn't find 0.24e so I got the 0.24d exe and didn't realise it's meant to be a full zip. And even then zippyshare is geo-restricted for me like the tutorial says. My bad. (:
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4231
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1139 times
Been thanked: 2222 times

Re: Maximum Tune 3 .igb models

Post by shakotay2 »

The files had to be split up to 3 (three) zips, starting from here:
shakotay2 wrote: Sun Mar 07, 2021 3:29 pm
(because of 250 kB size restriction of appended files)
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
User avatar
Durik256
ultra-veteran
ultra-veteran
Posts: 425
Joined: Wed Nov 21, 2018 7:26 pm
Has thanked: 45 times
Been thanked: 411 times

Re: Maximum Tune 3 .igb models

Post by Durik256 »

avwrtn wrote: Fri Sep 16, 2022 8:43 pm looks like a Noesis tool.
yes its noesis, and yes this my (tool)plugin with noewin. created just for convenience, for yourself.

"autoTriangles" you can do it in noesis:

Code: Select all

bs.seek(1761231)
rapi.rpgBindPositionBuffer(bs.readBytes(35100*12), noesis.RPGEODATA_FLOAT, 12)
rapi.rpgCommitTriangles(None, noesis.RPGEODATA_USHORT, 35100, noesis.RPGEO_TRIANGLE)
or just use python (drop file on this script) it will create an *.obj:

Code: Select all

import sys
import struct

input = sys.argv[1]

with open(input, 'rb') as rb, open(input.replace('.igb', '.obj'), 'w') as wb:
    rb.seek(1761231)
    vert = struct.unpack('%if'%(35100*3), rb.read(35100*12))
    
    for x in range(0, len(vert), 3):
        wb.write('v %f %f %f \n'%vert[x:x+3])
        
    for x in range(1, 35100, 3):
        wb.write('f %i %i %i \n'%(x, x + 1, x + 2))
or c++:

Code: Select all

#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>

int main(int argc, char* argv[])
{
    if (argc > 1) 
    {
        FILE* rb = fopen(argv[1], "rb");
        FILE* obj = fopen("wheel.obj", "w");
        
        float* vert = new float[35100 * 12];

        fseek(rb, 1761231, 0);
        fread(vert, 4, 35100 * 3, rb);

        for(int i = 0; i < 35100 * 3; i+=3)
            fprintf(obj, "v %f %f %f \n", vert[i], vert[i+1], vert[i+2]);

        for (int i = 1; i < 35100; i += 3)
            fprintf(obj, "f %i %i %i \n", i, i + 1, i + 2);
    
    fclose(rb );
    fclose(obj);
    }
    std::cout << "Done!\n";
}
c++_example.exe
or C#:

Code: Select all

using System.IO;

namespace example
{
    internal class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                float[] vert = new float[35100 * 12];

                using (var InStream = File.Open(args[0], FileMode.Open))
                {
                    using (var reader = new BinaryReader(InStream))
                    {
                        InStream.Seek(1761231, SeekOrigin.Begin);
                        for (int i = 0; i < 35100 * 12; i++)
                            vert[i] = reader.ReadSingle();
                    }
                }

                using (var OutStream = new StreamWriter(args[0].Replace(".igb", ".obj")))
                {
                    for (int i = 0; i < 35100 * 3; i += 3)
                        OutStream.WriteLine($"v {vert[i]} {vert[i + 1]} {vert[i + 2]}".Replace(',', '.'));

                    for (int i = 1; i < 35100; i += 3)
                        OutStream.WriteLine($"f {i} {i + 1} {i + 2}");
                }
            }
        }
    }
}
c#_example.exe
wheel_python_script.png
well, or use hex2obj
You do not have the required permissions to view the files attached to this post.
Post Reply