Author Topic: [PSX/PC] Rinoa's Toolset - BS, WMSET, WMX, GF, RAIL, TIM, TEX, FMV, wm2field...  (Read 9856 times)

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile


Rinoa's Toolset is a Final Fantasy VIII modding, ripping and analyzing software. Program has a built-in 3D renderer, support for many file formats, manual ripper and additional minor analyzing tools. Rinoa's toolset is currently the only program that can view full 3D textured geometry model for Battle Stages, World Map Vehicles, geometry for World map segments, geometry for G.Fs stages and items used in animation, also comes with train track visualizer. I'm happy to introduce you program in which I put all my skills and experience, that first github commit was dated in August 2015. I really wish this software would be handy and comfortable. Finally, I would like to thanks everyone that supported me, especially Halfer and Kaspar01. Have fun!


Full list of features
Features - 3D

    Battle Stages + original texture mixing to get texture 1:1 as in-game
    World Map vehicles
    World Map segments
    World Map train track visualizer
    World Map train track editor
    Guardian Forces environment objects
    MCH support (chara.one files) *only static T-pose!

Features - Other

    English dialogs decoding from raw files
    Searcher for development paths inside FF8
    Namedic.bin editor
    LZSS decompressor
    Archive extractor
    Wm2field editor
    Movie unpacker
    TIM support
    TEX support
    World map interactive region editor
    World map encounters editor
    World map draw points editor
    Magic+GFs texture support

Battle Stage support features

    View in real-time 3D any Battle Stage
    Hide and inspect segments
    View UV layout on texture!
    Directly modify vertices with real-time preview
    Convert segments to single OBJ file!
    Get final rendered texture as in game [mixing textures with original algorithm]
    Convert OBJ model to FFVIII ! [Alpha]


@Built-in renderer is powered with custom modified SharpGL

Download


github page: https://github.com/MaKiPL/FF8-Rinoa-s-Toolset
Binary release: https://github.com/MaKiPL/FF8-Rinoa-s-Toolset/releases/latest

Requires .NET Framework 4.0



At the end,
I wish to ask you for any donation. This will motivate me for further and more excessive work on FFVIII research and tools creation. I won't stop anyway.



Thank you kindly, feel free to contact me, ask me anything. Report bugs either here or on github and... Have a nice day!  :wink:
« Last Edit: Today at 17:25:10 by Covarr »

alexfilth

  • Fast newbie
  • *
  • Posts: 38
  • Karma: 9
    • View Profile
Nice work Maki.  ;D

Aavock

  • Crazy poster
  • *
  • Posts: 174
  • Karma: 17
    • View Profile
Awesome work Maki, cheers!

Zervox

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
Just had to donate for this, really awesome work. : )

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
Just had to donate for this, really awesome work. : )

Whoah, thanks! :O

Any special requests? What you'd like to see?
What about interactive in-game editor for rail or battle stages?  :D

Halfer

  • Crazy poster
  • *
  • Posts: 142
  • Karma: 32
    • View Profile
This is awesome! ;)

Any special requests? What you'd like to see?
What about interactive in-game editor for rail or battle stages?  :D

If you are going to do editor for battle stages, I would like to see UV editor on your textures because the feature that you can see UV faces on top of texture was really cool! And of course vertex editor in OpenGL would be cool but I, if someone, know that it's easier said than done! :D Good work nonetheless !

Xinlus

  • Fast newbie
  • *
  • Posts: 19
  • Karma: 2
    • View Profile
Awesome work!

Zervox

  • Fast newbie
  • *
  • Posts: 49
  • Karma: 5
    • View Profile
battle stage editor sounds really cool, I also like Halfers idea(unless it is already in there somewhere?). :)

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
The art of assembly hacking..
https://my.pcloud.com/publink/show?code=XZ0fFuZKBBgUAjgaNyClGppFm6nEVRcJvL7

If you have ever programmed 3D camera, then FF8 uses simple as WorldTransform Vector3 and LookAt-target Vector3.
Sky rotation is sint16.
Everything here is based on X, -Z, Y axis system.
« Last Edit: 2016-07-21 13:01:27 by Maki »

Mcindus

  • Freak
  • *
  • Posts: 701
  • Karma: 118
  • Artist, Modder, Musician.
    • View Profile
Wahoo!!! Now I don't have to go back/forth just to look at my new textures!

IzzacSturnburg

  • Fast newbie
  • *
  • Posts: 22
  • Karma: 0
    • View Profile
Woah! This is also a really impressive tool, This covers a big portion of the modding scene for sure. Can't wait til we accessibly get create a visual effects/animation for magic,limits,gf's.

This tool is really really nice, thanks for the release Maki.

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
1.1 UPDATE



-New files-
-Added namedic.bin editor!
-Added Archive tool (unpack any FS file) [also LZSSed compressed]
-Added LZSS decompressor!
-Added WM2FIELD.TBL editor
-Added FF8 Movie .pak unpacker to BINK
-Added all TIM texture support
-Added raw image drawing
-Added .TEX texture support

-New features-
-3D Viewer now supports mouse movement! Try it!

-Stability fixes-
-Rosetta Stone is now more stable and with HEX input
-Brand new text algorithm
-Fixed Rail editor saving error


« Last Edit: 2016-10-23 11:50:24 by Maki »

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
1.1.2 UPDATE

-New files-
-Added wmset.Section2 support (World map regions)
-Added wmset.Section4 support (World map encounters)




Girl next door

  • Crazy poster
  • *
  • Posts: 113
  • Karma: 1
    • View Profile
Thanks, great job ! :)

But now I've got some trouble:





I've selected on the world map the Centra region, your tool indicates that's it's the region 7. But when I look at the encounters, those are from Trabia region...

And another thing: the word map encounters editor don't seem to be able to edit some region right ? Like the Island closest to hell.

volvania

  • Cool newbie
  • *
  • Posts: 50
  • Karma: 0
    • View Profile
time to donate for the love of modding thank u maki keep going please :wink:

volvania

  • Cool newbie
  • *
  • Posts: 50
  • Karma: 0
    • View Profile
maki , i have a question does changing the encounter number change the monster formations ? so in region 0 balamb we have this 512 something i change them all to 540 to see a difference but nothing seems to change how does it work and what does these numbers actually do


 

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
Sorry for late reply. :C

time to donate for the love of modding thank u maki keep going please :wink:

Thanks! :)
Any special requests?

maki , i have a question does changing the encounter number change the monster formations ? so in region 0 balamb we have this 512 something i change them all to 540 to see a difference but nothing seems to change how does it work and what does these numbers actually do

In this example, 512 is encounter ID. Here's the cheatsheet for encounters:
http://wiki.qhimm.com/view/FF8/Encounter_Codes
therefore:
ID Monster Location
512      2 Bite Bug      Balamb Plains

I've selected on the world map the Centra region, your tool indicates that's it's the region 7. But when I look at the encounters, those are from Trabia region...

Regions editor is 100% working, but talking about encounters editor - probably I did a mistake. I'll investigate it today. Thanks for reporting!

And another thing: the word map encounters editor don't seem to be able to edit some region right ? Like the Island closest to hell.
Just like above, probably my mistake. The maximum region in regions section is 19, but maximum region number in encounter editor is 14 or 15 AFAIR. I'll test some new cases and roll out an hotfix.


EDIT1:
Yep, I found the problem (it's strictly related to encounter editor):



Summary: The only issue is just wrong regionID number in encounter editor. It looks like the encounters data is not 42 bytes per region. Looks like every region has it's own encounter size. Still don't know where's that number stored. I'm looking for it now.
« Last Edit: 2016-10-25 17:41:55 by Maki »

volvania

  • Cool newbie
  • *
  • Posts: 50
  • Karma: 0
    • View Profile
Maki Im sorry i need more explanation i have changed the encounter in id 512 which is region 10 i assume its not balamb plains but just to make sure also i changed the encounter number in region 0 which is balamb yet i always see the same vanilla encounters ? what am i doing wrong,
 
first i open wmset and unpack then modify then i repack then replace the wmset in ffviii using deling editor but nothing change it seems

Girl next door

  • Crazy poster
  • *
  • Posts: 113
  • Karma: 1
    • View Profile
Try to use FF8AC, sometimes that doesn't work with Deling.

Thanks Maki, so I'll wait for the update. :)

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
first i open wmset and unpack then modify then i repack then replace the wmset in ffviii using deling editor but nothing change it seems

What is your Final Fantasy VIII language version? English? Do not change wmset.obj, but your language file, like wmsetus.obj or wmsetit.obj.
Also make sure to delete and then add file in Deling, as the Deling has a bug with 'replace' option that doesn't really replace the file.

Thanks Maki, so I'll wait for the update. :)

This is far more complicated than I though. It's not only based on region but also on ground type, therefore if you change balamb region to 8, then there may be no encounter data for balamb type-ground and no battle will happen... (except you will walk on beach, this one works) >_> The most vital here is wmset.section1. I think it works like this:

uint size,
uint*(size/4) entry

entry:
byte regionID
byte unknown?GroundType?
byte ESImultiply (see below)
byte UNUSED

ESImultiply:
Encounter from section2 is calculated from:
ECX + ESI * 8 (ESI is grabbed from section1) and ECX is random.


Clever Square, clever! :)
Okay, I have to parse section 1 and calculate all locations.

EDIT:
I've got full list parsed:
Code: [Select]
RegionID: 0 GroundID: 6 ESI: 0
RegionID: 0 GroundID: 4 ESI: 1
RegionID: 0 GroundID: 10 ESI: 2
RegionID: 0 GroundID: 27 ESI: 5
RegionID: 0 GroundID: 28 ESI: 4
RegionID: 0 GroundID: 24 ESI: 3
RegionID: 2 GroundID: 6 ESI: 6
RegionID: 2 GroundID: 7 ESI: 7
RegionID: 2 GroundID: 0 ESI: 8
RegionID: 2 GroundID: 10 ESI: 9
RegionID: 2 GroundID: 14 ESI: a
RegionID: 2 GroundID: 15 ESI: b
RegionID: 2 GroundID: 16 ESI: c
RegionID: 2 GroundID: 27 ESI: e
RegionID: 2 GroundID: 28 ESI: d
RegionID: 1 GroundID: 6 ESI: f
RegionID: 1 GroundID: 0 ESI: 10
RegionID: 1 GroundID: 10 ESI: 11
RegionID: 1 GroundID: 14 ESI: 12
RegionID: 1 GroundID: 15 ESI: 13
RegionID: 1 GroundID: 27 ESI: 15
RegionID: 1 GroundID: 28 ESI: 14
RegionID: 3 GroundID: 6 ESI: 16
RegionID: 3 GroundID: 7 ESI: 17
RegionID: 3 GroundID: 0 ESI: 18
RegionID: 3 GroundID: 14 ESI: 19
RegionID: 3 GroundID: 16 ESI: 1a
RegionID: 3 GroundID: 27 ESI: 1b
RegionID: 4 GroundID: 6 ESI: 1c
RegionID: 4 GroundID: 7 ESI: 1d
RegionID: 4 GroundID: 8 ESI: 20
RegionID: 4 GroundID: 10 ESI: 1e
RegionID: 4 GroundID: 14 ESI: 1f
RegionID: 4 GroundID: 15 ESI: 21
RegionID: 4 GroundID: 16 ESI: 22
RegionID: 4 GroundID: 27 ESI: 24
RegionID: 4 GroundID: 28 ESI: 23
RegionID: 6 GroundID: 6 ESI: 26
RegionID: 6 GroundID: 7 ESI: 27
RegionID: 6 GroundID: 10 ESI: 28
RegionID: 6 GroundID: 14 ESI: 29
RegionID: 6 GroundID: 15 ESI: 2a
RegionID: 6 GroundID: 16 ESI: 2b
RegionID: 9 GroundID: 9 ESI: 2c
RegionID: 9 GroundID: 7 ESI: 2d
RegionID: 9 GroundID: 10 ESI: 2e
RegionID: 9 GroundID: 17 ESI: 2f
RegionID: 8 GroundID: 9 ESI: 30
RegionID: 8 GroundID: 7 ESI: 34
RegionID: 8 GroundID: 5 ESI: 36
RegionID: 8 GroundID: 1 ESI: 31
RegionID: 8 GroundID: 10 ESI: 32
RegionID: 8 GroundID: 17 ESI: 33
RegionID: 8 GroundID: 16 ESI: 35
RegionID: 8 GroundID: 14 ESI: 38
RegionID: 7 GroundID: 10 ESI: 3b
RegionID: 7 GroundID: 7 ESI: 39
RegionID: 7 GroundID: 16 ESI: 3c
RegionID: 7 GroundID: 3 ESI: 3a
RegionID: 11 GroundID: 10 ESI: 3f
RegionID: 11 GroundID: 7 ESI: 3d
RegionID: 11 GroundID: 16 ESI: 40
RegionID: 11 GroundID: 18 ESI: 34
RegionID: 11 GroundID: 23 ESI: 35
RegionID: 11 GroundID: 14 ESI: 41
RegionID: 11 GroundID: 2 ESI: 3e
RegionID: 12 GroundID: 10 ESI: 46
RegionID: 12 GroundID: 8 ESI: 44
RegionID: 12 GroundID: 7 ESI: 43
RegionID: 12 GroundID: 3 ESI: 45
RegionID: 12 GroundID: 16 ESI: 47
RegionID: 13 GroundID: 7 ESI: 42
RegionID: 15 GroundID: 6 ESI: 48
RegionID: 15 GroundID: 15 ESI: 49
RegionID: 15 GroundID: 14 ESI: 4a
RegionID: 17 GroundID: 9 ESI: 4b
RegionID: 17 GroundID: 17 ESI: 4c
RegionID: 18 GroundID: 7 ESI: 4d
RegionID: 18 GroundID: 14 ESI: 41
RegionID: 18 GroundID: 0 ESI: 3e
RegionID: 14 GroundID: 7 ESI: 4e
RegionID: 14 GroundID: 8 ESI: 4f
RegionID: 19 GroundID: 6 ESI: 6
RegionID: 19 GroundID: 7 ESI: 17
RegionID: 19 GroundID: 8 ESI: 20
RegionID: 19 GroundID: 10 ESI: 9
RegionID: 19 GroundID: 14 ESI: a
RegionID: 19 GroundID: 15 ESI: b
RegionID: 19 GroundID: 16 ESI: c
RegionID: 19 GroundID: 27 ESI: 24
RegionID: 19 GroundID: 28 ESI: 23
RegionID: 10 GroundID: 14 ESI: 50
RegionID: 10 GroundID: 12 ESI: 52
RegionID: 10 GroundID: 7 ESI: 51
RegionID: 10 GroundID: 16 ESI: 53
RegionID: 10 GroundID: 25 ESI: 51

I'm sleepy. I'll roll out the fix tomorrow. Good night!
« Last Edit: 2016-10-25 22:06:06 by Maki »

Girl next door

  • Crazy poster
  • *
  • Posts: 113
  • Karma: 1
    • View Profile
So if I understand well, it will be possible to edit the encounters by sections ? I think about the great forest of Timber. Encounters are all the same in each part of the forest. That would be interesting if I could make a special encounter for one part of the forest. For example.

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
1.1.2.1 UPDATE + HOTFIX b

-New features-
-Added ground type to World map encounter editor

-Stability fixes-
-Program automatically unpacks and handles files paths
-Fixed Encounter data mismatch on regions based on Section1 parsing
-Fixed 1.1.2.1 release bug





So if I understand well, it will be possible to edit the encounters by sections ? I think about the great forest of Timber. Encounters are all the same in each part of the forest. That would be interesting if I could make a special encounter for one part of the forest. For example.

Ufortnuately not. Game detects where are you based on ground you're walking. If you wish to do the things you wrote, you'd need to edit world map and change portion of forest to another 'ground type', then add new section1 entry with region id and new forest id + multiplier for section4 and then add eight section4 encounters for this forest portion. It sounds difficult, but still possible (with world map editor coming soon by Halfer).
« Last Edit: 2016-10-27 16:59:05 by Maki »

Girl next door

  • Crazy poster
  • *
  • Posts: 113
  • Karma: 1
    • View Profile
OK, I'll wait for the new editor. Thanks for the update. :)

Girl next door

  • Crazy poster
  • *
  • Posts: 113
  • Karma: 1
    • View Profile
Hum Maki... the encounter editor doesn't seem to work. When I try to change something, I always have that whatever I do:



 :|

Maki

  • Software hacker
  • Insane poster
  • *
  • Posts: 489
  • Karma: 89
  • Paranoid
    • View Profile
Hum Maki... the encounter editor doesn't seem to work. When I try to change something, I always have that whatever I do:



 :|

damn, I'm so sorry (this is an extremely stupid error). Here's the fixed version:

https://github.com/MaKiPL/FF8-Rinoa-s-Toolset/releases/tag/1.1.2.2

Again, sorry!

I edited also the update post so it directs to fixed version.