Qhimm.com Forums
Miscellaneous Forums => Scripting and Reverse Engineering => Topic started by: Lord_Skylark on 2004-01-26 06:25:40
-
ficedula's lzs program doesn't work on mine or two other people's computers... Can someone provide me with the unccompressed verison of scene.bin? Email/AIM/website upload, whatever. I'd relaly appreciate someone doing this.
email: [email protected]
AIM: lordskylark
Thanks,
~Sky
-
You should try search (http://forums.qhimm.com/search.php)ing first.
I thougt it was uncompressed ... check these threads for more info:
FF7's .BIN Format Spec (http://forums.qhimm.com/viewtopic.php?t=2113)
Help needed finding this monster (http://forums.qhimm.com/viewtopic.php?t=2561)
-
I saw that actually...all it says is that it's lzs compressed. And Ficedula's lzs program doesn't work on 3 computers that I've tried so I can't compress it. So I was hoping someone would be able to decompress it for me. I don't want just a text file of it. I want to be able to actually decompress the information from the actual scene.bin file so I can view the stuff myself.
~Sky
-
Also had another question...
What types of attacks (like give examples) are considered for the following "elements"
Sacre
Health
Cut
Hit
Punch
Shoot
Scream
Thanks,
~Sky
-
Also had another question...
What types of attacks (like give examples) are considered for the following "elements"
Sacre
Health
Cut
Hit
Punch
Shoot
Scream
Thanks,
~Sky
Well I recomend thinking about it.
Those are elements of physical attack and Health for example would be 'Healing'.
Cut (slicing)
Punch (pummeling)
Those are types of Physical attacks.
Scream would be audorial (shout loud noise)
I think these are attacks they exhibit possibly
Cyb
-
Sacre - is this like scared power/holy?
Health - is this suppose to mean then like Cure, Potion?
Cut - like swords?
Hit - ?
Punch - tifa's attack?
Shoot - vincents guns?
Scream - What's an example of this attack though?
Also, I do know what the unknown data is below the weaknesses in the scene.bin for each mosnter. I jsut want to be able to view the actual raw data in a hex editor.
~Sky
-
I saw that actually...all it says is that it's lzs compressed. And Ficedula's lzs program doesn't work on 3 computers that I've tried so I can't compress it. So I was hoping someone would be able to decompress it for me. I don't want just a text file of it. I want to be able to actually decompress the information from the actual scene.bin file so I can view the stuff myself.
~Sky
You'll find in FF7's .BIN Format Spec (http://forums.qhimm.com/viewtopic.php?t=2113) topic that files in SCENE.BIN archive are compressed using gzip. You'll find a PDF (http://perso.wanadoo.fr/fremensf/forumff7/ff7hack/scenebinfileformat.pdf) which describes how SCENE.BIN file is structured too, with my bad english. ;) Note this description hasn't been updated, and that we found a lot more, we have a board in French where we discuss about it. (http://forumsf.planet-shitfliez.org/viewforum.php?f=7) If it can be usefull for you, I can try to update the english version of "my" documentation file so as to you don't have to discover again what has already been discovered.
About Elements, when I discovered them, I tryied to understand what they are too. So I found a few of them :
Cut : I can be used for example by insects, sorry but I don't remind of any name.
Punch : The greatest example is "Gobelin Punch". Maybe Tifa's attack too ?
Shoot : Vincents guns are actually good examples
Scream : All Cait Siths MegaPhones are using "Scream" element.
I'm not sure yet, but if I remind, health element is often used to "describe" undeads, which can be kill/damaged with Cure/Potions/Life, like you wrote Lord_Skylark.
P.S.:Sorry, I didn't finish my answer : so if you want to (un)compress gzip data, you'll have to use gzip tool (homepage (http://www.gnu.org/software/gzip/gzip.html)). Note that you can find a Windows version by searching for it with Google. :) If you want to recompress data blocks, note that you may need to use "-9n" parameter, to follow the file format used by Square
Hope this helps.
-
WHere's the board where you talk about it at?
Thanks,
~Sky
-
Meh. A little misinformation being bandied about here, it seems.
FF7 supports 16 elements, and in the version I have, at least, the first 15 are named as such:
Fire, Ice, Lightning, Earth, Poison, Gravity, Water, Wind, Holy, Restorative, Cut, Hit, Punch, Shoot, Shout.
The first nine are self-explanatory.
Restorative *is* used basically for undead. All attacks that heal HP have the Restorative element set, and because all undead absorb the element, the damage is inversed for them, so they actually take damage instead of healing it.
As for the next five:
Cut indicates a slashing-type attack. Almost all of Cloud's swords have this property, as do many claw-type attacks and the like.
Hit indicates a bludgeoning-type attack. Tifa's gloves are mostly Hit, *NOT* Punch. Clubs, punches, all these are blunt attacks.
Punch indicates a piercing-type attack. That means lances, drills, spikes, etc. Goblin Punch is *NOT* Punch elemental, it is non-elemental.
Shoot indicates a range attack. It doesn't inherently have the Long Range property. It's applied to many different type of attacks, especially Barret and Vincent's guns and Yuffie's shuriken. Most of Shinra's long ranged weapons also have this element.
Shout indicates a sonic or energy-based attack, mostly the latter. Cait Sith's M-Phones are *NOT* Shout elemental, they're Hit elemental. The party has no way of inflicting Shout elemental damage. The first Shout elemental attack in the game is the Wave attack used by the Special Combatants in Reactor 5. The last is Stigma, used by Bizarro*Sephiroth. The most dangerous is probably Ruby Ray used by Ruby Weapon.
Finally, there is a 'Hidden' element that does not have a name, and is mistakenly set to a few rare enemy attacks. Due to a bug in the game, it is possible to absorb the 'Hidden' element on your party. The only damaging attack in the game with 'Hidden' element is Ultima Beam, used by Ultimate Weapon.
Oh, and while we're on the subject of elementals, the only Holy elemental attack in the game is Alexander, and the only other way to do Holy elemental damage is to attach Alexander to an Elemental Materia on your weapon.
The Cut/Hit/Punch/Shoot/Shout elements hold no real purpose save for one: the Ziedrich, along with resisting the main nine elements, also resists Cut, Hit, Punch and Shoot, thus allowing even more defense against most physical attacks then you might have thought possible.
---
Regarding scene.bin, I would personally appreciate it if all the internal files are either uncompressed and dumped somewhere where a copy can be downloaded, an executable program distributed to do the extraction automatically, or instructions on how to use already available programs to get all the files out of scene.bin in no more than five minutes. I've got too many projects to try and do it by hand at the moment.
-
#include <stdio.h>
#include <zlib.h>
char* buff = new char[7808];
char* buff2 = new char[8192];
int* FileOffsets = new int[16];
FILE* rf;
FILE* bd;
int fnum = 1;
int ProcFiles(int* i)
{
*i *= 4;
for(int j = 1; j<17; j++)
{
i++;
if (*i == 0xFFFFFFFF)
return j;
*i *= 4;
}
return 16;
}
void BlockProc(int& i, int dec)
{
while (i < dec)
i += 0x2000;
i -= dec;
}
void ExtractBlock()
{
char fname[64];
fread(FileOffsets, 4, 16, rf);
int fsize;
int nFiles = ProcFiles(FileOffsets);
fwrite(&nFiles, 1, 1, bd);
nFiles -= 1;
int BlockSize = 0x2000 - 0x40;
for (int i = 0; i<nFiles; i++)
{
fsize = FileOffsets[i+1] - FileOffsets;
BlockProc(BlockSize, fsize);
fread(buff2, fsize, 1, rf);
FILE* of = fopen("tmp.dat", "w+b");
fwrite(buff2, fsize, 1, of);
fclose(of);
gzFile gzip = gzopen("tmp.dat", "r+b");
gzread(gzip, buff, 7808);
sprintf(fname, "%d.txt", fnum);
of = fopen(fname, "w+b");
fwrite(buff, 7808, 1, of);
fclose(of);
fnum++;
gzclose(gzip);
}
fread(buff2, BlockSize, 1, rf);
FILE* of = fopen("tmp.dat", "w+b");
fwrite(buff2, BlockSize, 1, of);
fclose(of);
gzFile gzip = gzopen("tmp.dat", "r+b");
gzread(gzip, buff, 7808);
sprintf(fname, "%d.txt", fnum);
of = fopen(fname, "w+b");
fwrite(buff, 7808, 1, of);
fclose(of);
fnum++;
gzclose(gzip);
}
void main()
{
rf = fopen("scene.bin", "r+b");
bd = fopen("blockdat.dat", "w+b");
while (fnum < 254) //unsure here
ExtractBlock();
fclose(rf);
fclose(bd);
delete[] buff;
delete[] buff2;
delete[] FileOffsets;
}
And here's the pre-extracted stuff
ed2k://|file|scenebinextract.zip|267079|32DD4AF01C5767E8FC4E5E918AB85D2D|/
I am a bit unsure if I really do the extraction correctly.
-
Hello Terrence
Please refresh my memory what were you saying about the Zeidrich amour?
-
From the scene.bin document that I saw before viewing the enemies, I put them in this order based on their hex ID, not their order in the scene.bin file that you showed. In this order, they match up with the order of the model files. But there appears to be some enemies that are missing data...is there any way to get their data?
Also, in the original JP PSX version 0A-)F were more test enemies, but in the US and JP International versions they were replaced by the new weapons. Also, in the original JP version, the test enemies are actual monsters and not pyramids.
The missing enemies are:
0004 - test enemy
0070 - dummied bull motor
00B7/00B8 - dummied toxic frog
012F - some orb object
0159/015A/015F/0160 - dummied chocobo
0167/0168/0169 - scotch?
016D/016E/016F - MP?
So, if there's a way to get that data, that would be cool....does the scene.bin read it from another placein the file? Cause it would be weird to store the exact same monster data for every battle group that the mosnter appears in.
ID Name
00 êöô0(äð)
01 êöô1()
02 êöô2(ð)
03 test enemy
04 êöô4(ëô÷)
05 êöô5(áðô)
06 êöô6(ðâ)
07 êöô7(öðA)
08 êöô8(öðB)
09 êöô9(öðC)
0A NOT IN US VERSION
0B NOT IN US VERSION
0C NOT IN US VERSION
0D NOT IN US VERSION
0E NOT IN US VERSION
0F NOT IN US VERSION
U0A Diamond Weapon
U0B Ruby Weapon
U0C Ruby's Tentacle
U0D Emerald Weapon
U0E Leg
U0F Eye
10 MP
11 Guard Hound
12 Mono Drive
13 Grunt
14 1st Ray
15 Sweeper
16 Guard Scorpion
17 Grashtrike
18 Rocket Launcher
19 Whole Eater
1A Chuse Tank
1B Blugu
1C Hedgehog Pie
1D Smogger
1E Special Combatant
1F Blood Taste
20 Proto Machinegun
21 Air Buster
22 Vice
23 Corneo's Lackey
24 Scotch
25 Aps
26 Sahagin
27 Caesar
28 Eligor
29 Ghost
2A Cripshay
2B Deenglow
2C Hell House (1st form)
2D Hell House (2nd form)
2E Aero Combatant (1st form)
2F Aero Combatant (2nd form)
30 Turks: Reno (1)
31 Pyramid
32 Warning Board
33 Machinegun
34 Laser Cannon
35 Hammer Blaster
36 (Hammer Blaster Pod)
37 Sword Dance
38 SOLDIER: 3rd
39 Mighty Grunt (1st form)
3A Mighty Grunt (2nd form)
3B Moth Slasher
3C Grenade Combatant
3D Brain Pod
3E Vargid Police
3F Zenene
40 Sample: H0512
41 Sample: H0512-opt
42 Hundred Gunner
43 Heligunner
44 Rufus
45 Dark Nation
46 (Helicopter)
47 Motor Ball
48 Devil Ride
49 Custom Sweeper
4A Kalm Fang
4B Prowler
4C Elfadunk
4D Mu
4E (Mu Attack)
4F Mandragora
50 Levrikon
51 Midgar Zolom
52 Madouge
53 Crawler
54 Ark Dragon
55 Castanets
56 Zemzelett
57 Nerosuferoth
58 Hell Rider VR2
59 Formula
5A Capparwire
5B Bottom Swell
5C Waterpolo
5D Scrutin Eye
5E Marine
5F Jenova: BIRTH
60 Grangalan
61 Grangalan Jr.
62 Grangalan Jr. Jr.
63 Beachplug
64 Search Crown
65 Needle Kiss
66 Bloatfloat
67 Bagnadrana
68 Cokatolis
69 Bomb
6A Death Claw
6B 2-Faced
6C Bandit
6D Bullmotor
6E Land Worm
6F Dyne
70 Bullmotor (dummied)
71 Spencer
72 Joker
73 Flapbeat
74 Harpy
75 Grand Horn
76 Gagighandi
77 Touch Me
78 Crown Lance
79 Flower Prong (1st form)
7A Flower Prong (2nd form)
7B Flower Prong (3rd form)
7C Slaps
7D Kimaria Bug
7E Heavy Tank
7F Turks: Reno (2)
80 Turks: Rude (1)
81 Skeeskee
82 Griffin
83 Golem
84 Bagrisk
85 Desert Sahagin
86 Gi Specter
87 Sneaky Step
88 Heg
89 Stinger
8A Soul Fire
8B Gi Nattak
8C Nibel Wolf
8D Velcher Tusk
8E Bahba Velamyu
8F Valron
90 Battery Cap
91 Mirage
92 Dorky Face
93 Jersey
94 Black Bat
95 Ghirofelgo
96 Chain
97 Ying
98 Yang
99 Ying/Yang
9A Lost Number (1st form)
9B Lost Number (red)
9C Lost Number (blue)
9D Dragon
9E Sonic Speed
9F Twin Brain
A0 Zuu
A1 Kyuvilduns
A2 Screamer
A3 Materia Keeper
A4 Palmer
A5 (Tiny Bronco)
A6 (Shinra Semi)
A7 Thunderbird
A8 Razor Weed
A9 Edgehead
AA Bizarre Bug
AB Tail Vault
AC Adamantaimai
AD Attack Squad
AE Foulander
AF Garuda
B0 Jayjujayme
B1 Rapps
B2 Gorkii
B3 Shake
B4 Chekhov
B5 Staniv
B6 Godo
B7 Toxic Frog (dummied 1)
B8 Toxic Frog (dummied 2)
B9 Under Lizard
BA Kelzmelzer
BB Dual Horn
BC Tornadu
BD Toxic Frog
BE Jemnezmy
BF Doorbull
C0 Ancient Dragon
C1 Red Dragon
C2 8-Eye
C3 Demons Gate
C4 Jenova: LIFE
C5 Vlakorados
C6 Trickplay
C7 (Trickplay Attack)
C8 Boundfat
C9 Malldancer
CA Grimguard
CB Hungry
CC Acrophies
CD Ice Golem
CE Shred
CF Lessaloploth
D0 Frozen Nail
D1 Jumping
D2 Snow
D3 Bandersnatch
D4 Magnade
D5 (Magnade Shield)
D6 (Magnade Shield)
D7 Malboro
D8 Blue Dragon
D9 Icicle
DA Headbomber
DB Stilva
DC Zolokalter
DD Evilhead
DE Cuahl
DF Gigas
E0 Grenade
E1 Gremlin
E2 Ironite
E3 Sculpture
E4 Schizo (right)
E5 Schizo (left)
E6 Wind Wing
E7 Dragon Rider
E8 Killbin
E9 Tonberry
EA Jenova: DEATH
EB Roulette Cannon
EC Pedestal
ED SOLDIER: 2nd
EE Death Machine
EF Slalom
F0 Scissors
F1 Scissors (Upper)
F2 Scissors (Lower)
F3 Guard System
F4 Quick Machinegun
F5 Rocket Launcher (2)
F6 Ghost Ship
F7 Corvette
F8 Diver Nest
F9 Submarine Crew
FA Captain
FB Underwater MP
FC Senior Grunt
FD Hard Attacker
FE Guardian
FF Guardian (hand 1)
100 Guardian (hand 2)
101 Gun Carrier
102 Carry Armor
103 Left Arm (carry armor)
104 Right Arm (carry armor)
105 Rilfsak
106 Diablo
107 Epiolnis
108 Ho-chu
109 Gas Ducter
10A Wolfmeister
10B Eagle Gun
10C Serpent
10D Poodler
10E Bad Rap
10F Unknown
110 Unknown 3
111 Unknown 2
112 Turks: Reno (3)
113 Turks: Rude (3)
114 Hippogriff
115 Head Hunter
116 Spiral
117 Crysales
118 Sea Worm
119 Turks: Rude (2)
11A CMD Grand Horn (1)
11B CMD Grand Horn (2)
11C CMD Grand Horn (3)
11D Behemoth
11E Cromwell
11F Manhole
120 Manhole (cover)
121 Crazy Saw
122 Shadow Maker
123 Grosspanzer - Big
124 Grosspanzer - Small
125 Grosspanzer - Mobile
126 Gargoyle (stoned)
127 Gargoyle (unstoned)
128 Turks: Elena
129 Turks: Reno (4)
12A Turks: Rude (4)
12B Proud Clod
12C Jamar Armor
12D SOLDIER: 1st
12E Xcannon
12F (orb?)
130 Maximum Kimaira
131 Hojo
132 Hellectic Hojo
133 Right Arm (hojo)
134 Left Arm (hojo)
135 Lifeform Hojo N
136 Magic Pot
137 Christopher
138 Gighee
139 King Behemoth
13A Allemagne
13B Dragon Zombie
13C Armored Golem
13D Master Tonberry
13E Pollensalta
13F Mover
140 Iron Man
141 Parasite
142 Dark Dragon
143 Death Dealer
144 Jenova: SYNETHESIS
145 Bizarro Sephiroth
146 Bizarro Sephiroth
147 Bizarro Sephiroth
148 Bizarro Sephiroth
149 Bizarro Sephiroth
14A Bizarro Sephiroth
14B Safer Sephiroth
14C Sephiroth
14D Ultimate Weapon (1st battle)
14E Ultimate Weapon (land battles)
14F Ultimate Weapon (aerial battles)
150 Ultimate Weapon (final battle)
151 Cactuer
152 Goblin
153 Chocobo (1)
154 Chocobo (2)
155 Chocobo (3)
156 Chocobo (4)
157 Chocobo (5)
158 Chocobo (6)
159 Chocobo (dummied 1)
15A Chocobo (dummied 2)
15B Chocobo (7)
15D Chocobo (8)
15E Chocobo (9)
15F Chocobo (dummied 3)
160 Chocobo (dummied 4)
161 Mystery Ninja (1)
162 Mystery Ninja (2)
163 Mystery Ninja (3)
164 Mystery Ninja (4)
165 Mystery Ninja (5)
166 Mystery Ninja (6)
167 (Scotch?)
168 (Scotch?)
169 (Scotch?)
16A Bad Rap Sample
16B Poodler Sample
16C Cactaur
16D (MP?)
16E (MP?)
16F (MP?)
170 à à A÷ð
171 M LD÷ð
-
I wanted to make a note on something that I observed when I was viewing the memory to start my list before I actually was able to come to this site.
Despite that there's 3 parts to Jenova Synthesis, the game uses only one set of data and load that 3 times and then alters the stats of the other parts. Really weird.
Now, the Bizarro is the same thing too. The 6 different Bizarro files are not for each part of him. They are for each battle.
Not sure what order they are in, but these are all:
3 party - battle 1
3 party - battle 2
3 party - battle 3
2 party - battle 1
2 party - battle 2
1 party battle
And like Jenova, it takes one monster data entry and loads it for the number of parts available. I think there's up to 5 in seperate party's battle with him.
Seems kinda stupid that they just didn't make each part a seperate file.
I think it does the same thing with Emerald's eyes too.
~Sky
-
Well, I used that gzip program and it said that scene.bin was not in gzip format...so...
~Sky
-
Can someone just please upload the uncompressed file? I mean it's not like it's a huge file or anything. Or at least the exact program that uncompresses it and the /exact/ steps to use it if it's not obvious.
I will even host the uncompressed file if need be.
I'd really apprecaite your time,
~Sky
-
Despite that there's 3 parts to Jenova Synthesis, the game uses only one set of data and load that 3 times and then alters the stats of the other parts. Really weird.
Now, the Bizarro is the same thing too. The 6 different Bizarro files are not for each part of him. They are for each battle.
Because of my english knowlegde, maybe wouldn't I give you a correct answer, but I'll try.
Concerning Jenova Synthesis, I agree with you. There are 3 "slots" in each file where you can describe a monster, and only one is used. I don't know why.
About Bizarro Sephiroth, maybe don't you know that you can not use multiple files to describe parts of one monster (monster's parts must be in the same file).
Not sure what order they are in, but these are all:
3 party - battle 1
3 party - battle 2
3 party - battle 3
2 party - battle 1
2 party - battle 2
1 party battle
And like Jenova, it takes one monster data entry and loads it for the number of parts available. I think there's up to 5 in seperate party's battle with him.
Seems kinda stupid that they just didn't make each part a seperate file.
It's difficult for me to answer you, so I'm going to tell you how scene.bin file is structured, I think it could help you ?
Scene.bin file contains 256 gzipped blocks. Each block has got the following format :
- Monsters ID (there can be up to 3 monsters ID) ID1 ID2 ID3
- Battle scenes informations (each block can contain up to 4 battle scenes (=the description of 4 different battles)) :
--- At first, there are some ID numbers, telling which music, camera and background to use for each battle scene.
--- Then you'll find 4 sub-blocks describing the coordinates of each monster in each battle scene (each battle can contain up to 6 monsters), using this format :
>BattleScene1 - Monster 1 : Monster1ID Xcoordinate Ycoordinate Zcoordinate WhereIsTheMonster(first line/second line) Flags
>BattleScene1 - Monster 2 : Monster2ID Xcoordinate Ycoordinate Zcoordinate WhereIsTheMonster(first line/second line) Flags
...
>BattleScene1 - Monster 6 : Monster6ID Xcoordinate Ycoordinate Zcoordinate WhereIsTheMonster(first line/second line) Flags
>BattleScene2 - Monster 1 : Monster1ID Xcoordinate Ycoordinate Zcoordinate WhereIsTheMonster(first line/second line) Flags
etc...
- Monsters caracteristics :
--- Name of monster ID1
--- Level, Speed, Luck, Physical Dodge, Strength, Physical Defense, Magi, Magical Defense, MP, AP, HP, Exp, gils, objects (and how you can obtain these objects), elements (ex:fire resistant, ice weakness, ...)
--- List of IDs of available actions (Attack, Right Hand Revived, Repeating Slap for example)
--- List of "manipulable" attacks
--- Flags (for example it says if monster can be minimized or transformed in frogg)
--- Name of monster ID2
--- Level, Speed, ...
...
--- Name of monster ID3
...
- List of attacks names (you'll find IDs of each attacks and their name)
- Scripts describing each attacks. They are quite complex and I haven't found how they are written yet.
Then, for example, if we see the part of scene.bin about Bizarro Sephiroth (ID=145), and if we translate it, we will see something like that (in the battle scene part of the block) :
ID X Y Z ln ln2 flags
Scene[0]-Monster[0]= 145 0 0 ec78 1 0 ffffffff
Scene[0]-Monster[1]= 145 0 0 ec78 1 0 fffffffe // flag "hidden"
Scene[0]-Monster[2]= 145 0 0 ec78 1 0 fffffffe
Scene[0]-Monster[3]= 145 0 0 ec78 1 0 fffffffe
Scene[0]-Monster[4]= 145 0 0 ec78 1 0 fffffffe
Scene[0]-Monster[5]=ffff ffff ffff ffff ffff ffff ffffffff // empty slot
Another answer is that blocks are limited to 256. Maybe does it explains why monsters parts are not splited into different files.