Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Maki

Pages: 1 ... 16 17 18 19 20 [21] 22 23 24 25
501
Halfer, excelent work. Will try this on my own.
Oh, by the way- try to completely delete texl.obj file and see what would happen.

502
Sure, but this can take some time, Halfer is making amazing progress, and after we know how texturing works I could convert data to UV mask only, fix it up and re-parse to FF8.

Edit: I tried to trick game to think I am ragnarok and can pass mountains, sea etc. but no luck. I'll try with coding sea and mountains as grass, thanks to Halfer I know it's possible to do, and where to search.

While coding ultimate hack found this:

Probably GPU related, but it's fun. :D

503
I see... Then steam re-release is different than the original one. My first texture is not a water and is at 117720. Hm... I have an idea. Let's see what happens if we mix files between releases.

Here: https://mega.co.nz/#!qRQVSAqC!Pkw2dyeOxnt235spPwdM34D2bhNRaMLybIGPvIfj-QA

BTW> I'm having fun with rail.obj :D

Aaaaand... Done. TRAAAAAINS!
http://wiki.qhimm.com/view/FF8/WorldMap_rail

504
This is World map with wmsetus.obj with null'ied all textures. 0x1cbd8-0x86cf8 (First file which textures are in center of file, not at the ending)


NOTE: wmsetxx.obj also is responsible for forest walking particle. I have some theory about that ragnarok texture change. Give me a sec, gonna test it.

As I thoughŁ


The textures in wmsetus(sp/it...).obj of world map are for Ragnarok. When you ride ragnarok, the game loads 1/2 sized textures from wmsetus.obj. When you land, the game loads texl.obj file.

TOWNS textures are gone too!

505
I found it little hard to browse FF8DISC1.img, as almost every extractor for PSOne files is dead. I had to manually extract it. My HexEditor just exploded, so had to work with buffer blockcopy. Thank you Visual Studio. <3

wmx.obj:
FFVIII Steam 2013: A594059C0D6D16F5DBEB8A82C4BE696FEB8A0E3D
FF8DISC1.IMG 0x108800 (size: 0x1D5B000): A594059C0D6D16F5DBEB8A82C4BE696FEB8A0E3D
FF8DISC1.IMG 0x19C8800 (size: 0x1D5B000): 500A79C34243AE19A49078BF36AB156C361F1043
FF8DISC1.IMG 0x388B800 (size: 0x333000): 950BCB3B5C8A3FE7F236C248044EC44653781329

This is a bit confusing. Offset 108800 is the same file that is present in Steam release. I'll run a BinDiff on 0x19C8800 and Steam one.

Update: There is a massive difference in 0x108800 and 0x19C8800 file. See the example:
 
I'll replace Steam wmx.obj with 0x19C8800 dump.

Well. It works. xD But I'm stuck inside some mountain and I can't move. Wait, I'll force ragnarok.

What the...


506
I could run a BinDiff on those two files, but I only have a PSN version of FF8, so I would have to "download" one.

507
Ran a script and generated complete offset list for every world segment. There are total of 835 segments.
http://pastebin.com/WLRjSDFj

I can't help more today. Too tired.

508
You're a God Halfer! :)

It works indeed.


Balamb part is at 1d13000-1d198a0.
Towns and garden is made from triangles and is part of world map, so yes, towns are in wmx.obj.

Also, I'm like 70% sure rail.obj is for trains movement. Deleting file makes train blink sometimes and go crazy on world map. Like show for 1/2 second on center of sea.

@EDIT: I don't know if it's in fact vertex data, probably not, but one byte operates shadow. Probably that unknown data is about shadowing.

509
Oops:


List of files that the game can run without:

Code: [Select]
music0.obj - ??
music1.obj - ??
music2.obj - ??
music3.obj - ??
music4.obj - ??
music5.obj - ??
rail.obj - ??
texl.obj - Destroys whole world textures. See image above.
wmset.obj - Contains towns, objects etc. but is NOT used by the game!

Crash:
Code: [Select]
wmsetXX.obj - where XX is language code. This one is actually used in-game.
wmx.obj - Well... :D

I updated wmsetus on wiki:
http://wiki.qhimm.com/view/FF8/WorldMap_wmsetxx

It appears, that wmset does not containg towns. It's not confirmed though!

510
I'm currently working on it. Sometimes I need to divide bytes by 256, sometimes by 64 or even 32. I need to find some dependency on it.  This is currently problem number 1.

511
@up - Okay. :)

---

Wmset.obj is using 8BPP and 4BPP textures, with various resolution and CLUT size +  Clut sets. The problem is some 4BPP textures ARE animated / or just are changing textures, or just work as battle stages do. No TIM documentation says about animated sets. I found out, that it's saved as big-endian two bytes before CLUT. Like every byte there is little-endian, but this one is big-endian and should be reordered in code. Really, really weird. This should be calculated like this then:

Code: [Select]
            //Getting # set
            String CLUT_sets = filebuffer[lookuped+16].ToString("X2");
            CLUT_sets = CLUT_sets.Substring(0, 1);

            if (BPP == 8)
            {
                if(int.Parse(CLUT_sets)>1)
                    tempres = tempres + 20 + (int.Parse(CLUT_sets) * 32);
                else
                    tempres = tempres + 20 + (CLUTs * 32);
            }
            else
            {
                if (int.Parse(CLUT_sets) > 1)
                    tempres = tempres + 20 + (int.Parse(CLUT_sets) * 512);
                else
                    tempres = tempres + 20 + (CLUTs * 512);
            }

            tempres += 8; //Padding + origin rot
            UInt16 width = BitConverter.ToUInt16(filebuffer, tempres);
            UInt16 height = BitConverter.ToUInt16(filebuffer, tempres + 2);

512
Thanks Halfer!
That's cool files are the same! :)
Now I can do a entry table for each model.

513
I coded an analyzer for ripper. This is complete list of models and it's offsets:

wmset.obj (Steam 2013) SHA1: 31516E8E2452FF65EF6009BB86AB0D7CC58D0E22
Offsets are int.
Code: [Select]
1. 15612 - Balamb Garden
2. 18980 - Balamb Garden Ring
3. 19376 - Train 1
4. 20940 - Train 2
5. 21256
6. 22820
7. 23136
8. 24100
9. 24336
10. 24492
11. 26088
12. 27700
13. 29288
14. 29444
15. 31140
16. 33172
17. 36484
18. 36880
19. 38320
20. 39712
21. 41144
22. 42604
23. 43904
24. 44884
25. 45968
26. 49360
27. 55100
28. 60808
29. 65588
30. 66640
31. 67036
32. 67896
33. 68388

First texture is at: 413048 (EDIT: Was 429980, but Balamb uses two times the same texture, and due to file specific it needs to be repeated two times. 413048 is correct entry.)

Texture offset list:
Where: 52 is 1 in index, and 83 is 31 in index.


Could someone please calculate SHA1 from wmset.obj file from 2000PC release? (lang_en).

514
Yea. Just like the stage meshes, these are divided on quads and triangles. It's only textured quad mesh on picture above. :3
I'm just laaaazy. :D I'm lending you train mesh and need to go for now. :C



Currently examined:
FFVIII_Steam/data/lang-en/world.fs/wmset.obj/
offset;description;TIM_texturePosition;TextureWidth/Height;
("0x3cfc", "Balamb Garden"); #51 (128/64)
("0x4a24", "Balamb Ring/Halo"); #51 (128/64)
("0x4bb0", "Train 1"); #52 (32/64)
("0x51cc", "Train 2"); #53 (16/64)

515

*HEY! This shot is a bit old and uses 1/2 of texture. :D

Phew.

World map objects VT calculation:

Code: [Select]
                const float newSzerU = 256.0f; //CHANGE height * 2
                const float newWysok = 256.0f; //CHANGE width * 2

                float UU1 = (float)U1v / newSzerU;
                float VV1 = 1.0f - (V1v / newWysok);
                float UU2 = (float)U2v / newSzerU;
                float VV2 = 1.0f - (V2v / newWysok);
                float UU3 = (float)U3v / newSzerU;
                float VV3 = 1.0f - (V3v / newWysok);
                float UU4 = (float)U4v / newSzerU;
                float VV4 = 1.0f - (V4v / newWysok);

After model there's of course well known: MODULO(Offset)+4
Balamb halo (or ring, whatever you call it) is second model just after Balamb. Ah, can't wait to see what's next. :)

Train. :3

516
I wrote a documentation for world map camera translation:
http://wiki.qhimm.com/view/FF8/Engine/WorldMapCamera

I'm going now for world map objects- towns and vehicles.

Ripped Balamb Garden thanks to http://forums.qhimm.com/index.php?topic=13799.msg193791#msg193791 notes.
Converter update is coming. ;)

517
Any chance for a difficulty mod?
the mods you have done are excellent, But this game is just too easy
// If they had done a training center like the FFX monster arena, where you could get all the additional monsters/boss's
That would've just been amazing
Hopefully if a hard mod comes along, it's so hard that it takes me 500 hours to complete the game

It's not a correct thread nor forum section for this. Please, use IFRIT, that you can find in tools section and read scenes.out specification at wiki and make one yourself. Today it's not that hard, you just follow instructions and read documentation.

518
General Discussion / Re: Requesting FF8 Balamb Island Map
« on: 2015-05-11 18:09:29 »
No problem. That was fun doing this. :)
I also found offsets and memory structure for other camera options.


Manipulating camera needs assembly real-time edit. Just changing update functions like ADD/MOV to NOP, and writing to memory blocks at static addresses. :)

519
General Discussion / Re: Requesting FF8 Balamb Island Map
« on: 2015-05-11 17:57:52 »
Higher quality and no bad spot and also no cursor:

520
General Discussion / Re: Requesting FF8 Balamb Island Map
« on: 2015-05-11 17:33:10 »
Hey. I made it:


I'll fix it and re-shot a higher quality. Just a sec.

Notes:
Code: [Select]
0203ED03

521
General Discussion / Re: Requesting FF8 Balamb Island Map
« on: 2015-05-11 17:07:58 »
Worked a bit on camera for you. See here:


Technical:
Code: [Select]
FF8_EN.exe+1584EA - add word ptr [FF8_EN.exe+1C3ED00],04
FF8_EN.exe+15848D - mov [FF8_EN.exe+1C3ED00],ax
Also Copy memory opcode (MOV) that prevents going down from 65k (2 bytes)
Code: [Select]
FF8_EN.exe+158495 - mov word ptr [FF8_EN.exe+1C3ED00],FE00

Fixed:
Code: [Select]
FF8_EN.exe+1C3ED00 (2 bytes)Fixed memory val works same as Squall X,Y,Z location. This is:
F0 00 is lowest, and FF FF is max. So if I add 00 01 to FF FF, then it's going to be reset to F0 00. But, this is a player location thing. I also found camera real position. Gonna capture now that top-down fragments.


Some notes:
Code: [Select]
FF8_EN.exe+158676 - add [FF8_EN.exe+1C3ED02],ax - LEFT-RIGHT translation (smooth ADD op)
FF8_EN.exe+15871A - add [FF8_EN.exe+1C3ED02],ax - Still ADD, couldn't find MOV
FF8_EN.exe+15873E - add [FF8_EN.exe+1C3ED02],ax - Another ADD
FF8_EN.exe+158948 - mov [ecx+0A],ax - Copy memory! :)
FF8_EN.exe+158936 - mov [ecx+0A],ax - Copy memory, another, ticked only one time, above also

522
Gameplay / Re: FF8 new story+monster tweaks
« on: 2015-05-05 07:54:58 »
For changing enemy stats use IFRIT: http://forums.qhimm.com/index.php?topic=8741.0
For editing bosses enemy structure (this is adding additional enemies to fight alongside boss) you need to work on scene.out: http://wiki.qhimm.com/view/FF8/BattleStructure
For editing map events (scripts) use http://forums.qhimm.com/index.php?topic=13050.0 (Script tab)

BTW> This is my 100th post. :)

523
FF8 Tools / Re: [FF8] Battle Stage to OBJ converter [1.1]
« on: 2015-04-25 13:34:07 »
Today I wrote the triangulation for quad meshes. I though that this was the issue for bad "stitching" for models, but even after making quad models triangular it DOES NOT fix the problem. Currently, I don't know how to make one model from segments without using external software. Anyone?

@Updated wiki page with Quad>Triangle translation

@Edit: Oh, by the way. I imported one of the Ultimecia castle battle stage to UE4 and made this:

524
attaching the Visual Studio debugger to the FF8 process (which is made unnecessarily difficult by that damned launcher...)

Use OllyDbg or Cheat Engine debugger to show debug window, as those two allow you to attach to running process instead of running with debugger.

525
I real-time debugged process, and found some entries testing on Shiva.

At first, when you summoning G.F. nothing happen to data in memory, it's 00 00... or the state of previous G.F.
After the G.F. gauge runs out, the memory is written by some small data, and after the character animation of summoning passes (You know, that one when for example Squall puts hand from his face to enemy and disappears after) the data is written by .TIM texture. After 1-2 second of Shiva animation, right before she appears in the crystal a data is again written to .TIM texture place and data from mag184_e.dat appears. This is memory dump of this region:
https://www.dropbox.com/s/g2vrrradn7muj8s/MemDump.7z?dl=0

The first texture is broken. Don't know why.

After textures, there's at least 3MB of free space. The models have to be before, but all I can see are still NULL's. At the moment, where there's ice over enemies, and shiva is no more able to be seen, the data is again overwritten. That's the real problem. I can't help myself with real-time memory edit/debugging if the values and addresses are changing by the situation.


Pages: 1 ... 16 17 18 19 20 [21] 22 23 24 25