Register - Login
Views: 99382002
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 01:07:03 AM
Jul - The Cutting Room Floor - Final Fantasy XIII (Unused/Beta/Early stuff) New poll - New thread - New reply
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 Next newer thread | Next older thread
VIRGIN KLM
Member
Level: 21


Posts: 50/89
EXP: 45036
For next: 4907

Since: 06-07-14


Since last post: 6.3 years
Last activity: 6.0 years

Posted on 10-20-14 03:00:48 AM Link | Quote
I'm getting the Bodhum chapter audio files working, looks like it involved playing in warm waters or something when the protagonists would arive there or something (it's in Japanese).
My issue is while the extractor/script is able to decrypt those files using the E3 disc filelist, since the begining and ending of some files don't match, they get parted into pieces in a pretty non-recoverable state. So my question is, are we able to extract atleast the z900 file as one continuous binary file and let me separate the files using a HEX editor? All the files contain headers so it's easy to find where each one starts or ends.
SkacikPL
Member
Level: 15


Posts: 2/41
EXP: 13749
For next: 2635

Since: 10-19-14


Since last post: 7.3 years
Last activity: 7.3 years

Posted on 10-20-14 09:39:47 AM (last edited by SkacikPL at 10-20-14 09:42:38 AM) Link | Quote
Yeah, the theory about game automatically drawing all instances of loaded tile/block seems to be correct.
If i stand close enough to the wall, so that the map starts outlining next room i can get the "train station" and tunnel tiles to load in.

http://skacik.pl/images/FinalFantasy/XIII-7thark/11.png
http://skacik.pl/images/FinalFantasy/XIII-7thark/12.png

Perhaps the teleportation does not work if the destination point isn't solid ground?

But yeah, entire area seems to be rather thrown around both in XY and Z, certain parts are not even shown on the minimap, even though they are rendered (perhaps due to height difference, i don't know).

It's hard to tell without being able to see all the tiles, however i guess that it'd be a miracle if actually all of those parts were connected, we know for a fact that already the initial area is entirely disconnected.
hedgehog89
Member
Level: 19


Posts: 48/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-20-14 11:54:47 AM Link | Quote
I've been playing with Pulse Extractor by Albeoris's code. I've made it dump the actual filelist it extracts, with filename, offset, size and uncompressed size. It looks like all the *.scd files aren't compressed and can be extracted from the container without any decompression. I was trying to make an Extractor based on Pulse that giving the offset, size and uncompressed size would try to extract, but that zlib library just keeps saying me 'inflating unknown compression method' when I give it real values from an entry of a filelist with it's counterpart.

About the 7th, it's likely by just looking at the map the sealed areas are disconnected from each other too. I've call them Area A for the one at the right, B for the one at the right of A, C for the Southwest one and D for the small room at the far east of the map, as I've uncovered them in that order when getting the full map.
akafa123
Random nobody
Level: 4


Posts: 2/3
EXP: 272
For next: 7

Since: 10-19-14


Since last post: 7.5 years
Last activity: 7.4 years

Posted on 10-20-14 12:52:27 PM Link | Quote
Originally posted by hedgehog89
I've been playing with Pulse Extractor by Albeoris's code. I've made it dump the actual filelist it extracts, with filename, offset, size and uncompressed size. It looks like all the *.scd files aren't compressed and can be extracted from the container without any decompression. I was trying to make an Extractor based on Pulse that giving the offset, size and uncompressed size would try to extract, but that zlib library just keeps saying me 'inflating unknown compression method' when I give it real values from an entry of a filelist with it's counterpart.

About the 7th, it's likely by just looking at the map the sealed areas are disconnected from each other too. I've call them Area A for the one at the right, B for the one at the right of A, C for the Southwest one and D for the small room at the far east of the map, as I've uncovered them in that order when getting the full map.

Use foobar with vgmstream, it plays .scd
Or do this, guy named brendan19 helped me on xentax forum.

''1. Download vgmstream and its external DLL libraries from HCS here.
vgmstream
vgmstream external dll

2. Extract them both into the same folder.

3. Save the following into notepad with the extension .bat in the same folder with the test.exe

Code:
FOR %%a IN (*.scd) DO test -l 2 -f 10 -o "%%a.wav" "%%a"


4. Run the batch file and it will convert them for you ''
VIRGIN KLM
Member
Level: 21


Posts: 51/89
EXP: 45036
For next: 4907

Since: 06-07-14


Since last post: 6.3 years
Last activity: 6.0 years

Posted on 10-20-14 05:29:50 PM Link | Quote
Here are the only voice dialog files (translated from Japanese) I was able to resurrect properly from the unused Bodhum area:

01 - So this is the Lebreau's hideout?" We're lucky, aren't we?!
02 - So hot! So hot! ...You look like you feel hot too, so let's play with water!
03 - C'mon! Let's race to the sea!
04 - Woah, there so much water! Daddy, where does the sea end?
05 - Until the outer layer of Cocoon. Beyond the sea there's a shell protecting Cocoon. Didn't they taught you that at school?
06 - They did! I wonder how big that shell is...
07 - Tell me, daddy. Why do waves happen?
08 - That's because the water collides with the shell of Cocoon and bounces back.
09 - If the shell disappears, the waves will, too?
10 - That's not going to happen! If the shell disappeared, Cocoon would break.
11 - Snow, good work on guarding the village. You haven't seen any monster today, haven't you?
12 - Today the beach has been suspiciously quiet...
13 - The guys who checked other areas said there weren't any monsters around either.
14 - I guess monsters have days off, too!
15 - Snow, are you patroling on your own?
16 - I ran up into Serah a moment ago, but she didn't look very happy...
17 - She looked like she was thinking hard about something. You should go to see her.
18 - Leave the guard to me, Snow!
19 - Today's patrol has just begun. Why don't you go eat?
20 - I wonder what Lebreau has cooked today.

Link to the files:
http://www.mediafire.com/download/1vy3o7ayocnpg2w/Lines.rar

So from what I see here most possibly it isn't a chapter that you would return to Bodhum but rather an area that you would be able to experience realtime flashback memories and this one is pretty obvious takes place exactly before the scene you play as Snow in Bodhum, like even just a minute before that moment.
hedgehog89
Member
Level: 19


Posts: 49/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-20-14 06:08:14 PM (last edited by hedgehog89 at 10-20-14 07:37:56 PM) Link | Quote
This is strange, but some of that text do appear in the Snow cutscene. If you get closer to the NPCs you will likely see that same dialogue. The one I can confirm 100% is the one about the waves.

If the resurrected files are from the ones extracted with Noesis / Pulse, then you should give it a try to recognize the headers inside the compressed file. They are uncompressed.

Here is an extract of the Bodhum file list values from the E3 demo, as csv

--Name --Offset --Length --Uncompressed Length

sound/pack/9000/9000000_01bod030001gda0.ps3.scd 3608576 17696 17696
sound/pack/9000/9000001_01bod030002gda0.ps3.scd 3627008 22080 22080
sound/pack/9000/9000002_01bod030003gda0.ps3.scd 3649536 38176 38176
sound/pack/9000/9000003_01bod030001lta0.ps3.scd 3688448 21248 21248


The same happens with the filelist of white_imgu of the pc version, all scd files have same Length value for both uncompressed and compressed.

When the Length and Uncompressed Length is the same the Pulse extractor will not use zlib to decompress the data, instead it will just go to the offset, take 'n' bytes according to the length and create the extracted file.

I want to make a tool that, giving a file list as csv file can extract files using it, so we can make our own filelist for easily extracting the audio files. However I'm having trouble making zlib work.

Edit: The offset was the wrong value, but zlib stills doesn't work.

Edit 2: I've finally made it work, I will try to get it done soon as I can with a demo list.
hedgehog89
Member
Level: 19


Posts: 50/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-21-14 12:06:22 AM (last edited by hedgehog89 at 10-21-14 12:50:19 AM) Link | Quote
It seems I've found a way to extract the files from the containers, but it requires a lot of luck. So far I've got three wdb files from Bodhum.

It can be done using Lady Luck Extractor, the tool I've been working. First, open the container, then you will see you have to give in three values, Offset, Length and Uncompressed Size.

Here is the tricky part, how to get these.

The first file offset will always be zero. It seems each compressed file have a common header of two bytes with values 78 DA. So in order to get the length search for the next bytes with 78 DA. Then calculate how much bytes are between offset A to B. In the uncompressed size start giving a value greater than the length, if the extracted file's beginning looks equal to the starting from the offset in the container, give in a greater value. It's recommended to go adding 1 or two bytes in the uncompressed size as a higher value could make you get lost and never decompress it.

If you now see it's contents have changed it started to decompress, but it's not done, you have to keep adding the uncompressed size until the message (Unexpected end of stream.) appears, then increase more, if nothing changes at the end of the file you've decompressed it. Then make it perfect by substracting the value until the message does not appear or when the decompressed file losses some bytes. You will get there the exact uncompressed value.

The tool have two modes, a check that says "Generate Name Based on Values" will extract the file with a name based on your values. Unchecking it will always extract to a file named "extracted.bin" and it will get overwritten each time you try to extract.

Why you need luck?

Because it may be possible to hit with two 78 DA bytes that are part of the stream and not a header.
There are uncompressed audio files that can jeopardize getting the compressed file that lies before one of them.

How to do it the quickest way?

Open the extracted.bin file in HxD Hex Editor, try again, and go back to HxD, it will update and reflect the content of the file.

Here is the link to the tool, for anyone interested in trying it out:

http://www.mediafire.com/download/sc99du92ja8jy9p/LadyLuckExtractor.7z

So far, filelist for Bodhum files you can try:


File Name - Offset - Length - Uncompressed Size
zone/z009/z009.wdb, 0, 2047, 2048
db/script/script00009.wdb, 2048, 4095, 4096
temp001.wdb, 4096, 320, 456


EDIT: I've forgot to put the zlib.net.dll file with the application, it's in the source.
VIRGIN KLM
Member
Level: 21


Posts: 52/89
EXP: 45036
For next: 4907

Since: 06-07-14


Since last post: 6.3 years
Last activity: 6.0 years

Posted on 10-21-14 12:18:14 AM (last edited by VIRGIN KLM at 10-21-14 12:21:10 AM) Link | Quote
Good work! I hope after we get to extract everything we could try to make a filelist file and re-inject it on the game's code (far shot but I hope more people will get attracted to the project and help)

Also I just wanted to say thank you to everybody but mostly hedgehog89 for what is done here.
Google "Seventh Ark" and you'll get what I mean.
We can easily say that we have shook up the video game internet world with all those things in this post.
The last like week or so people that know me contact me to tell me that they found articles on the internet linking to what we do over here.
I just hope Square Enix won't get pissed off though.

Great job everybody, keep doing what you're doing, I'm on your side!

I just hope everybody that is doing a video or an article about it will link this thread so we could attract more people that could potentially help.
ayuanx
Random nobody
Level: 3


Posts: 1/1
EXP: 52
For next: 76

Since: 10-21-14


Since last post: 7.5 years
Last activity: 7.2 years

Posted on 10-21-14 04:02:27 AM (last edited by ayuanx at 10-21-14 04:07:57 AM) Link | Quote
Here you go:

Final Fantasy XIII PC Camera Unlocker
SkacikPL
Member
Level: 15


Posts: 3/41
EXP: 13749
For next: 2635

Since: 10-19-14


Since last post: 7.3 years
Last activity: 7.3 years

Posted on 10-21-14 05:48:52 AM Link | Quote
Originally posted by VIRGIN KLM

Also I just wanted to say thank you to everybody but mostly hedgehog89 for what is done here.
Google "Seventh Ark" and you'll get what I mean.
We can easily say that we have shook up the video game internet world with all those things in this post.
The last like week or so people that know me contact me to tell me that they found articles on the internet linking to what we do over here.
I just hope Square Enix won't get pissed off though.

Great job everybody, keep doing what you're doing, I'm on your side!

I just hope everybody that is doing a video or an article about it will link this thread so we could attract more people that could potentially help.

I guess it's all about videos nowadays.
I wasn't sure whether to make a video about someones elses findings, but in the end i did, and now it's embedded on 90% of articles mentioning 7th ark.

Mostly cause another 80% of the articles are copy'n pastes or just translations.

Either way, the bottom line is - you want attraction, then compile it to a video.
hedgehog89
Member
Level: 19


Posts: 51/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-21-14 03:27:09 PM Link | Quote
Originally posted by ayuanx
Here you go:

Final Fantasy XIII PC Camera Unlocker



Thanks for that awesome tool. It allowed us to demonstrate the sealed areas do exist in the game and, that they wasn't deleted.

I wonder if it would be possible to make a Character Unlocker one, not move the camera but the Character, breaking the collision system and without gravity when pressing Del for Free Mode. That would allow full exploration of the 7th Ark sealed areas as the game, due to the nature of gaming engines, only loads objects, monsters, and map parts according to the location of the character. With the Camera Unlocker it only loads some parts of the map but without objects and monsters due to the character being placed in the beginning area.
hedgehog89
Member
Level: 19


Posts: 52/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-22-14 01:27:34 AM (last edited by hedgehog89 at 10-22-14 02:21:38 PM) Link | Quote
I've finally have managed to partially break the collision system, but the method it's quite hard.

1. Follow KazukiMutou method he talked in page 5 replies, for finding the X, Y and Z coordinates, it goes around finding a .c201 string. After you find the string you may want to try the 3rd or 4th entry, for each entry go many rows below until you see changing values, if you move and more values change, you have found them.

This is a test, but in my game it seems there is a "signature" of bytes that doesn't change just before the coords, so you should try finding these values, if you move and something change just after them, you have got your price.

Here is a picture of my coords:



2. Get your X, Y and Z values, you may want to move your character to get better values to try.

3. Hard part, You just find any float that have that value in a first scan. (I'm having trouble with Cheat Engine in this, as it fails to get them with the exact value, try rounding it to 5 decimals rounded, extreme rounding.) Then do a scan of unchanged values, if you see the results and there are still changing values, keep sacanning until no value change. In my success attempt, there are 64 entries. This means the game mirrors the coords in around 64 entries!! (EDIT: It seems you don't have to force at all, you can even change the changing ones, just, don't force the changing ones. If it doesn't work, keep trying until, there's a 90% chance it will).

4. After you got your unchanging entries, press Ctrl+A to select them all, then add them to the address list.

5. On the address list press Ctrl+A to select them all, then right click -> "Toggle Selected Records", then on value change it for the one you like. If all records are selected they will change at one and your character will finally warp!!

EDIT:

Coordinates for Exploring, being the data Signature - X (First value after signature) - Y (second one) - Z (third one):

Signature to find: 2C610A101C610A10

Area A (First to the east): X: 200 (before, go to the left of the Berserker statue, place your character in the top right corner, facing to the right, then warp).

Area B (Second to the east, bottom): X: 508 (before, place your character in front of the right door in the bottom switch, centered. after warping press up the less you can, gravity will let you in or fall endlessly if pressed up too much).

Area C (Southwest): Z: 595 (before, move you character in front of the portal to the Cradle, aligned in the center).



EDIT B - about findings:

Don't try to interact with things or you will have to start over. The zone C makes Lightning react like a monster is near her, but no monster is there as there is no model for it, it seems.

AREA B: It started slowing down the game, opening the map seems to be a heavy processing task and may end up crashing the game. I wonder if this performance issue should have been a reason for scrapping it.

AREA D: The door on the most deep area, that seemed to go to a second floor have interaction. A popup appears, pressing down then X another popup appears, but on the top-left corner of the screen. Pressing down then X will stuck you like the switches.

EDIT C - The signature seems to change, this is another one 2CD10A101CD10A10, in this one 61 got changed by D1, you should try finding your own and see if it doesn't change too much. It may be a per savegame thing.

-- Expect more updated info in this same reply --
SkacikPL
Member
Level: 15


Posts: 4/41
EXP: 13749
For next: 2635

Since: 10-19-14


Since last post: 7.3 years
Last activity: 7.3 years

Posted on 10-22-14 11:11:51 AM (last edited by SkacikPL at 10-22-14 11:46:24 AM) Link | Quote
Uh, if you've managed to find the floats, can you give us the default one for height?
Assuming initial area is entirely flat, it will be easy to find that float, browse it and look for surrounding values to change when moving.

Either way i think i've managed to find the correct values, however i can't change them, no matter what.
Character won't budge even within current zone bounds.
Preceding sequence of bytes seems to always start with 2c and is 8 bytes long.

hedgehog89
Member
Level: 19


Posts: 53/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-22-14 01:22:03 PM (last edited by hedgehog89 at 10-22-14 01:27:12 PM) Link | Quote
Maybe you've forgot to continue the steps.

You have three floats, I've named them X, Y and Z just for the order, not that they actually are those axis. The second one is height.

If you just change one of these nothing will happen, my discovery goes around what you have to do once you got your values.

If you want to change your first value, -9.850917816, you have to do a new scan for floating values, exact value, and give in your float with 5 decimals (-9.85091) if it doesn't appear try with less decimals or rounded until you get multiple entries with the same value. After those lot of entries appear try to do next scan for unchanged values to remove the ones that are in constant change.

After that, if you move your character you will notice ALL those entries do change. The game seems to BACKUP the X, Y and Z values on around 64-120 addresses for each axis, that are dynamically assigned by the way. You must press Ctrl+A on the found results and add them to your list, then Ctrl+A on your address list to change the value of all, that will warp you.

EDIT: After warping you will notice not all things are loaded, it seems if you walk through some part of an area, the game will load the map right but still, no objects appear, although their code do. I wonder if leaving a member of the party in the first area is the reason of not loading properly, in my save I can't change the leader so I can't try yet.
VIRGIN KLM
Member
Level: 21


Posts: 53/89
EXP: 45036
For next: 4907

Since: 06-07-14


Since last post: 6.3 years
Last activity: 6.0 years

Posted on 10-22-14 04:11:23 PM Link | Quote
Originally posted by hedgehog89
I wonder if leaving a member of the party in the first area is the reason of not loading properly, in my save I can't change the leader so I can't try yet.

Grab that if you want, I can create a one-memeber party too:

http://www.mediafire.com/download/l7a1wt51jgk9fxq/ff13-20.dat
SkacikPL
Member
Level: 15


Posts: 5/41
EXP: 13749
For next: 2635

Since: 10-19-14


Since last post: 7.3 years
Last activity: 7.3 years

Posted on 10-22-14 04:49:48 PM (last edited by SkacikPL at 10-22-14 04:58:25 PM) Link | Quote
Yup worked now.

However, changing battle team does exactly nothing. Current leader gets teleported in place of old leader and old leader gets teleported in the place of current leader.

I guess if you wanted to test that theory you'd need to find XYZ for each of 2 AI members, which is well...
Perhaps if it was to work at all, then one man party would be the way to go.


Additionally i can confirm that getting to "area B" will start tanking your FPS. Though it has something to do with poor optimization of the game as it just locks my framerate to 30 and not a single dip below.
hedgehog89
Member
Level: 19


Posts: 54/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-22-14 05:29:55 PM (last edited by hedgehog89 at 10-22-14 11:44:39 PM) Link | Quote
I will try this time to explain the process the best I can, so even someone who have never used Cheat Engine can do it, It can be hard at the beginning but, when you practice it you will find it's not that hard.

In this example I will show how to access the southwest area, Area C.

1. Place your character in front of the gate to Orphan's Cradle, centered as shown:



2. Find .c201 strings after loading the savegame on the 7th, if there is no results, you can grab KazukiMutou's saves here https://mega.co.nz/#!8sJWkSiT!A-yCzQNUIUAClGNIPVAyeRSHlj8o3UPzAsT1w6XosQs, I've had no trouble with save No. 01.



3. Right click on the 2nd entry, "Browse this memory region", if you see a string like "s1z_idle4_0" (they start with s1z_ or something like that and change when your character moves alone making gestures)






, then the next entry es the one you need, in my case it's the 3rd one. Go to it and again, Right click -> "Browse this memory region".

4. On the entry NEXT to the one that have the "s1z_idle..." string, after right click -> "Browse this memory region" (the picture shows the second but, it's not the second, it's about the right click process),



go down a little bit until you notice changing values with the follwing pattern:



Then, go around 4 rows up from the row that have the first changing values and notice when you see the values 0A 10, with other preceding, unchanging values.



Move your character, if the values after 0A 10 changes, those are your coords. Add them to your address list. In order, I name them X, Y and Z although they may actually be X, Z and Y, etc...



You will notice in the picture, I've marked bytes in green, that mean you have to right click on those bytes and add them to your list as a Float:







And that's how you can get your coords, you will notice in the image where I've marked the bytes to add of each axis, that there are other entries in this same memory region with the same values and, they do change if you move too.

On to the next part, warping your character...

EDIT: if you couldn't get your coords, try .c202 instead of .c201, if none of these then .c203 and so on (untested, buy could work).
hedgehog89
Member
Level: 19


Posts: 55/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-22-14 05:54:44 PM Link | Quote
Having your character in front of the gate to Orphan's Cradle, centered, we will modify the Axis Z to go to Area C. So here we go:

1. My value for Axis Z is 15.81821346. We need to find all float values that have this value, since Cheat Engine can't get them with the exact value , you have to try with 5 decimals, rounded or truncated. You can try moving your character if it get's difficult to get them. Before finding the values, remember to click "New Scan" button.



2. Do a next scan, but of unchanging value, do it many times, waiting around 1 or 2 seconds until you get less than 100 entries:



3. Selecting one of the entries found, press Ctrl+A to select all of them, then right click -> "Add selected addresses..."



4. Now, go to your added address list, press Ctrl+A to select all of them, keeping them selected unselected or delete the X and Y axis entries.



5. Enter the value as 595. If nothing happens try again until your character warps.

It it really doesn't seem to work, try with KazukiMutou No. 1 save, it seems other saves change it so much it gets too hard to find the coords. I've failed with the save VIRGIN KLM shared me.
hedgehog89
Member
Level: 19


Posts: 56/75
EXP: 34313
For next: 1464

Since: 09-02-14


Since last post: 7.1 years
Last activity: 6.7 years

Posted on 10-22-14 06:02:41 PM Link | Quote
I've found what happens with VIRGIN KLM save, it warps a character of the party that appears together with you in the area, not your character. The address for Snow must be somewhere else.
SkacikPL
Member
Level: 15


Posts: 6/41
EXP: 13749
For next: 2635

Since: 10-19-14


Since last post: 7.3 years
Last activity: 7.3 years

Posted on 10-22-14 06:10:52 PM (last edited by SkacikPL at 10-22-14 06:45:08 PM) Link | Quote
Just a small addendum. To reach "area B" i had to move myself entirely to the side of berserker statue and actually set X of 620 or so.

595 from center of warp gate spawned me near the room but still outside of it.

Also a small video: http://youtu.be/WeM8OHts1ak .
I think that most of the zones are actually connected one way or another. On one minute mark there's an elevator which goes upwards(well, at least it should, i didn't bother trying as i guess it doesn't work).
There's another elevator around 4:35 and you can see its destination above, while the tile hasn't loaded in yet.
Weird room at 7:42 and onwards also connects two different height levels. And there's more than one of those rooms.

//
On a side note, Square has announced first patch for the PC version of XIII:
http://steamcommunity.com/games/292120/announcements/detail/251400071459323982

I wonder whether it would not be a bad choice to do a backup in case Square wants to ninja clean up some content.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 Next newer thread | Next older thread
Jul - The Cutting Room Floor - Final Fantasy XIII (Unused/Beta/Early stuff) New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

33 database queries, 15 query cache hits.
Query execution time:  0.098447 seconds
Script execution time:  0.032939 seconds
Total render time:  0.131386 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 301 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 215 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 95 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 161 - Warning: unescaped & or unknown entity "&page"
line 149 column 194 - Warning: unescaped & or unknown entity "&page"
line 149 column 227 - Warning: unescaped & or unknown entity "&page"
line 149 column 262 - Warning: unescaped & or unknown entity "&page"
line 149 column 295 - Warning: unescaped & or unknown entity "&page"
line 149 column 328 - Warning: unescaped & or unknown entity "&page"
line 149 column 361 - Warning: unescaped & or unknown entity "&page"
line 149 column 395 - Warning: unescaped & or unknown entity "&page"
line 149 column 430 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 467 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 102 - Warning: unescaped & or unknown entity "&postid"
line 183 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 185 column 9 - Warning: missing <tr>
line 203 column 13 - Warning: missing <tr>
line 204 column 102 - Warning: unescaped & or unknown entity "&postid"
line 219 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 221 column 9 - Warning: missing <tr>
line 239 column 13 - Warning: missing <tr>
line 240 column 102 - Warning: unescaped & or unknown entity "&postid"
line 247 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 249 column 9 - Warning: missing <tr>
line 267 column 13 - Warning: missing <tr>
line 268 column 102 - Warning: unescaped & or unknown entity "&postid"
line 291 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 293 column 9 - Warning: missing <tr>
line 311 column 13 - Warning: missing <tr>
line 312 column 102 - Warning: unescaped & or unknown entity "&postid"
line 343 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 345 column 9 - Warning: missing <tr>
line 363 column 13 - Warning: missing <tr>
line 364 column 102 - Warning: unescaped & or unknown entity "&postid"
line 392 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 394 column 9 - Warning: missing <tr>
line 412 column 13 - Warning: missing <tr>
line 413 column 102 - Warning: unescaped & or unknown entity "&postid"
line 453 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 455 column 9 - Warning: missing <tr>
line 473 column 13 - Warning: missing <tr>
line 474 column 102 - Warning: unescaped & or unknown entity "&postid"
line 489 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 491 column 9 - Warning: missing <tr>
line 509 column 13 - Warning: missing <tr>
line 510 column 102 - Warning: unescaped & or unknown entity "&postid"
line 518 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 520 column 9 - Warning: missing <tr>
line 538 column 13 - Warning: missing <tr>
line 539 column 102 - Warning: unescaped & or unknown entity "&postid"
line 559 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 561 column 9 - Warning: missing <tr>
line 579 column 13 - Warning: missing <tr>
line 580 column 102 - Warning: unescaped & or unknown entity "&postid"
line 592 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 594 column 9 - Warning: missing <tr>
line 612 column 13 - Warning: missing <tr>
line 613 column 102 - Warning: unescaped & or unknown entity "&postid"
line 660 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 662 column 9 - Warning: missing <tr>
line 680 column 13 - Warning: missing <tr>
line 681 column 102 - Warning: unescaped & or unknown entity "&postid"
line 693 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 695 column 9 - Warning: missing <tr>
line 713 column 13 - Warning: missing <tr>
line 714 column 102 - Warning: unescaped & or unknown entity "&postid"
line 729 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 731 column 9 - Warning: missing <tr>
line 749 column 13 - Warning: missing <tr>
line 750 column 102 - Warning: unescaped & or unknown entity "&postid"
line 758 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 760 column 9 - Warning: missing <tr>
line 778 column 13 - Warning: missing <tr>
line 779 column 102 - Warning: unescaped & or unknown entity "&postid"
line 792 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 794 column 9 - Warning: missing <tr>
line 812 column 13 - Warning: missing <tr>
line 813 column 102 - Warning: unescaped & or unknown entity "&postid"
line 867 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 869 column 9 - Warning: missing <tr>
line 887 column 13 - Warning: missing <tr>
line 888 column 102 - Warning: unescaped & or unknown entity "&postid"
line 913 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 915 column 9 - Warning: missing <tr>
line 933 column 13 - Warning: missing <tr>
line 934 column 102 - Warning: unescaped & or unknown entity "&postid"
line 939 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 941 column 9 - Warning: missing <tr>
line 959 column 13 - Warning: missing <tr>
line 960 column 102 - Warning: unescaped & or unknown entity "&postid"
line 978 column 17 - Warning: missing <tr>
line 978 column 17 - Warning: discarding unexpected <table>
line 981 column 35 - Warning: missing <tr>
line 981 column 95 - Warning: unescaped & or unknown entity "&page"
line 981 column 128 - Warning: unescaped & or unknown entity "&page"
line 981 column 161 - Warning: unescaped & or unknown entity "&page"
line 981 column 194 - Warning: unescaped & or unknown entity "&page"
line 981 column 227 - Warning: unescaped & or unknown entity "&page"
line 981 column 262 - Warning: unescaped & or unknown entity "&page"
line 981 column 295 - Warning: unescaped & or unknown entity "&page"
line 981 column 328 - Warning: unescaped & or unknown entity "&page"
line 981 column 361 - Warning: unescaped & or unknown entity "&page"
line 981 column 395 - Warning: unescaped & or unknown entity "&page"
line 981 column 430 - Warning: unescaped & or unknown entity "&page"
line 981 column 50 - Warning: missing </font> before </td>
line 981 column 467 - Warning: missing </font> before </table>
line 983 column 35 - Warning: missing <tr>
line 983 column 50 - Warning: missing </font> before </td>
line 984 column 37 - Warning: unescaped & or unknown entity "&id"
line 983 column 215 - Warning: missing </font> before </table>
line 985 column 17 - Warning: discarding unexpected </textarea>
line 985 column 28 - Warning: discarding unexpected </form>
line 985 column 35 - Warning: discarding unexpected </embed>
line 985 column 43 - Warning: discarding unexpected </noembed>
line 985 column 53 - Warning: discarding unexpected </noscript>
line 985 column 64 - Warning: discarding unexpected </noembed>
line 985 column 74 - Warning: discarding unexpected </embed>
line 985 column 82 - Warning: discarding unexpected </table>
line 985 column 90 - Warning: discarding unexpected </table>
line 987 column 9 - Warning: missing </font> before <table>
line 999 column 25 - Warning: discarding unexpected </font>
line 1008 column 58 - Warning: discarding unexpected </font>
line 986 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 188 column 22 - Warning: <img> lacks "alt" attribute
line 188 column 63 - Warning: <img> lacks "alt" attribute
line 188 column 112 - Warning: <img> lacks "alt" attribute
line 188 column 162 - Warning: <img> lacks "alt" attribute
line 199 column 15 - Warning: <img> lacks "alt" attribute
line 224 column 22 - Warning: <img> lacks "alt" attribute
line 224 column 63 - Warning: <img> lacks "alt" attribute
line 224 column 112 - Warning: <img> lacks "alt" attribute
line 224 column 162 - Warning: <img> lacks "alt" attribute
line 225 column 11 - Warning: <img> lacks "alt" attribute
line 235 column 15 - Warning: <img> lacks "alt" attribute
line 252 column 21 - Warning: <img> lacks "alt" attribute
line 252 column 62 - Warning: <img> lacks "alt" attribute
line 252 column 111 - Warning: <img> lacks "alt" attribute
line 252 column 160 - Warning: <img> lacks "alt" attribute
line 263 column 15 - Warning: <img> lacks "alt" attribute
line 288 column 1584 - Warning: <img> proprietary attribute value "absmiddle"
line 288 column 1584 - Warning: <img> lacks "alt" attribute
line 296 column 22 - Warning: <img> lacks "alt" attribute
line 296 column 63 - Warning: <img> lacks "alt" attribute
line 296 column 112 - Warning: <img> lacks "alt" attribute
line 296 column 162 - Warning: <img> lacks "alt" attribute
line 297 column 11 - Warning: <img> lacks "alt" attribute
line 307 column 15 - Warning: <img> lacks "alt" attribute
line 348 column 22 - Warning: <img> lacks "alt" attribute
line 348 column 63 - Warning: <img> lacks "alt" attribute
line 348 column 112 - Warning: <img> lacks "alt" attribute
line 348 column 162 - Warning: <img> lacks "alt" attribute
line 349 column 11 - Warning: <img> lacks "alt" attribute
line 359 column 15 - Warning: <img> lacks "alt" attribute
line 397 column 22 - Warning: <img> lacks "alt" attribute
line 397 column 63 - Warning: <img> lacks "alt" attribute
line 397 column 112 - Warning: <img> lacks "alt" attribute
line 397 column 162 - Warning: <img> lacks "alt" attribute
line 398 column 11 - Warning: <img> lacks "alt" attribute
line 408 column 15 - Warning: <img> lacks "alt" attribute
line 458 column 22 - Warning: <img> lacks "alt" attribute
line 458 column 63 - Warning: <img> lacks "alt" attribute
line 458 column 112 - Warning: <img> lacks "alt" attribute
line 458 column 162 - Warning: <img> lacks "alt" attribute
line 459 column 11 - Warning: <img> lacks "alt" attribute
line 469 column 15 - Warning: <img> lacks "alt" attribute
line 494 column 21 - Warning: <img> lacks "alt" attribute
line 494 column 62 - Warning: <img> lacks "alt" attribute
line 494 column 110 - Warning: <img> lacks "alt" attribute
line 494 column 160 - Warning: <img> lacks "alt" attribute
line 505 column 15 - Warning: <img> lacks "alt" attribute
line 523 column 22 - Warning: <img> lacks "alt" attribute
line 523 column 63 - Warning: <img> lacks "alt" attribute
line 523 column 112 - Warning: <img> lacks "alt" attribute
line 523 column 162 - Warning: <img> lacks "alt" attribute
line 534 column 15 - Warning: <img> lacks "alt" attribute
line 564 column 22 - Warning: <img> lacks "alt" attribute
line 564 column 63 - Warning: <img> lacks "alt" attribute
line 564 column 112 - Warning: <img> lacks "alt" attribute
line 564 column 162 - Warning: <img> lacks "alt" attribute
line 565 column 11 - Warning: <img> lacks "alt" attribute
line 575 column 15 - Warning: <img> lacks "alt" attribute
line 597 column 22 - Warning: <img> lacks "alt" attribute
line 597 column 63 - Warning: <img> lacks "alt" attribute
line 597 column 112 - Warning: <img> lacks "alt" attribute
line 597 column 162 - Warning: <img> lacks "alt" attribute
line 598 column 11 - Warning: <img> lacks "alt" attribute
line 608 column 15 - Warning: <img> lacks "alt" attribute
line 623 column 791 - Warning: <img> lacks "alt" attribute
line 665 column 22 - Warning: <img> lacks "alt" attribute
line 665 column 63 - Warning: <img> lacks "alt" attribute
line 665 column 112 - Warning: <img> lacks "alt" attribute
line 665 column 162 - Warning: <img> lacks "alt" attribute
line 676 column 15 - Warning: <img> lacks "alt" attribute
line 690 column 563 - Warning: <img> lacks "alt" attribute
line 698 column 22 - Warning: <img> lacks "alt" attribute
line 698 column 63 - Warning: <img> lacks "alt" attribute
line 698 column 112 - Warning: <img> lacks "alt" attribute
line 698 column 162 - Warning: <img> lacks "alt" attribute
line 699 column 11 - Warning: <img> lacks "alt" attribute
line 709 column 15 - Warning: <img> lacks "alt" attribute
line 734 column 22 - Warning: <img> lacks "alt" attribute
line 734 column 63 - Warning: <img> lacks "alt" attribute
line 734 column 112 - Warning: <img> lacks "alt" attribute
line 734 column 162 - Warning: <img> lacks "alt" attribute
line 735 column 11 - Warning: <img> lacks "alt" attribute
line 745 column 15 - Warning: <img> lacks "alt" attribute
line 763 column 22 - Warning: <img> lacks "alt" attribute
line 763 column 63 - Warning: <img> lacks "alt" attribute
line 763 column 112 - Warning: <img> lacks "alt" attribute
line 763 column 162 - Warning: <img> lacks "alt" attribute
line 774 column 15 - Warning: <img> lacks "alt" attribute
line 797 column 22 - Warning: <img> lacks "alt" attribute
line 797 column 63 - Warning: <img> lacks "alt" attribute
line 797 column 112 - Warning: <img> lacks "alt" attribute
line 797 column 162 - Warning: <img> lacks "alt" attribute
line 798 column 11 - Warning: <img> lacks "alt" attribute
line 808 column 15 - Warning: <img> lacks "alt" attribute
line 821 column 461 - Warning: <img> lacks "alt" attribute
line 825 column 887 - Warning: <img> lacks "alt" attribute
line 829 column 1156 - Warning: <img> lacks "alt" attribute
line 831 column 1218 - Warning: <img> lacks "alt" attribute
line 837 column 1635 - Warning: <img> lacks "alt" attribute
line 841 column 1779 - Warning: <img> lacks "alt" attribute
line 845 column 2002 - Warning: <img> lacks "alt" attribute
line 849 column 2258 - Warning: <img> lacks "alt" attribute
line 853 column 2468 - Warning: <img> lacks "alt" attribute
line 855 column 2523 - Warning: <img> lacks "alt" attribute
line 857 column 2580 - Warning: <img> lacks "alt" attribute
line 872 column 22 - Warning: <img> lacks "alt" attribute
line 872 column 63 - Warning: <img> lacks "alt" attribute
line 872 column 112 - Warning: <img> lacks "alt" attribute
line 872 column 162 - Warning: <img> lacks "alt" attribute
line 873 column 11 - Warning: <img> lacks "alt" attribute
line 883 column 15 - Warning: <img> lacks "alt" attribute
line 894 column 565 - Warning: <img> lacks "alt" attribute
line 898 column 757 - Warning: <img> lacks "alt" attribute
line 902 column 944 - Warning: <img> lacks "alt" attribute
line 906 column 1151 - Warning: <img> lacks "alt" attribute
line 918 column 22 - Warning: <img> lacks "alt" attribute
line 918 column 63 - Warning: <img> lacks "alt" attribute
line 918 column 112 - Warning: <img> lacks "alt" attribute
line 918 column 162 - Warning: <img> lacks "alt" attribute
line 919 column 11 - Warning: <img> lacks "alt" attribute
line 929 column 15 - Warning: <img> lacks "alt" attribute
line 944 column 22 - Warning: <img> lacks "alt" attribute
line 944 column 63 - Warning: <img> lacks "alt" attribute
line 944 column 112 - Warning: <img> lacks "alt" attribute
line 944 column 162 - Warning: <img> lacks "alt" attribute
line 955 column 15 - Warning: <img> lacks "alt" attribute
line 984 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 984 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 984 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 993 column 25 - Warning: <img> lacks "alt" attribute
line 998 column 267 - Warning: <img> lacks "alt" attribute
line 978 column 17 - Warning: trimming empty <tr>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 204 column 27 - Warning: <nobr> is not approved by W3C
line 240 column 27 - Warning: <nobr> is not approved by W3C
line 268 column 27 - Warning: <nobr> is not approved by W3C
line 312 column 27 - Warning: <nobr> is not approved by W3C
line 364 column 27 - Warning: <nobr> is not approved by W3C
line 413 column 27 - Warning: <nobr> is not approved by W3C
line 474 column 27 - Warning: <nobr> is not approved by W3C
line 510 column 27 - Warning: <nobr> is not approved by W3C
line 539 column 27 - Warning: <nobr> is not approved by W3C
line 580 column 27 - Warning: <nobr> is not approved by W3C
line 613 column 27 - Warning: <nobr> is not approved by W3C
line 681 column 27 - Warning: <nobr> is not approved by W3C
line 714 column 27 - Warning: <nobr> is not approved by W3C
line 750 column 27 - Warning: <nobr> is not approved by W3C
line 779 column 27 - Warning: <nobr> is not approved by W3C
line 813 column 27 - Warning: <nobr> is not approved by W3C
line 888 column 27 - Warning: <nobr> is not approved by W3C
line 934 column 27 - Warning: <nobr> is not approved by W3C
line 960 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 307 warnings and 0 errors!


The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md