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
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

502
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!

503
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...


504
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.

505
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.

506
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.

507
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!

508
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.

509
@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);

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

511
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).

512
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)

513

*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

514
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. ;)

515
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.

516
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. :)

517
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:

518
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

519
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

520
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. :)

521
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:

522
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.

523
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.


524
Hum ..... I failed -_-

At least you tried and that's what matters most. :)

I uploaded the ASCII RIP. Be warned, it's 30k lines per one link.

http://pastebin.com/aPE6LnSJ - #1 = most interesting, contains parameters, functions and .cpp leftovers.
http://pastebin.com/DTqEn9sc - #2 = See the ABCDEFGH... things? They're models with texture refference (after these patterns there's a ABC.tim refference)
http://pastebin.com/EW5fnT2S - #3 = See at the end of file. I've seen things like this in rail.obj, what could it be? Also, FF8.EXE contains quote of Buddha:
Code: [Select]
"What is evil? Killing is evil, lying is evil, slandering is evil, abuse is evil, gossip is evil, envy is evil, hatred is evil, to cling to false doctrine is evil; all these things are evil. And what is the root of evil? Desire is the root of evil, illusion is the root of evil."Also I wonder if it's just a contingency, or it's some sort of encoded thing:
Code: [Select]
:Yqcq _ qumpb a_jjcb
 
Wncag_j qigjj gq
Vclxmisicl< sqgle
 
Wgjclr< _lb _ `gr
 
Pmtcq rfc fmr bmeq
qmjb gl rfc K_pbcl
a_dcrcpg_;
Yqcq ajmqc amk`_r
dgefrgle qigjjq rm
bcdc_r clckgcq ugrf
nslafcq _lb igaiq;
El cvncpr k_piq2
k_l;  G_l sqc
qncag_jgxcb `sjjcrq
rm _rr_ai clckgcq;
HmcqlCr ncpdmpk
tcpw ucjj slbcp
npcqqspc;
Yqcq _ ufgn;
[fcl gl b_lecp<
sqcq kmlqrcp qigjjq
qfc f_q jc_plcb;
Lcp _bkgpcpq gl rfc
K_pbcl f_tc
dmpkcb _ d_l ajs`;
`cp md rfc
`cp pcqgqr_lac

525
That moon is from Rinoas limit break called Invincible moon

Yep. Thanks. https://youtu.be/5zfvk6SfLZQ?t=1m48s

So, it's just a plane with a moving clouds. That's probably it. Need to find better model. (other magic file)

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