Register - Login
Views: 99348892
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-21-22 05:30:59 PM
Jul - SM64 Hacking (Archive) - FlatWorld Battlefield, Take Two (New flat empty level template! TT64 v0.5.98b!) New poll - New thread - New reply
Pages: 1 2 3 Next newer thread | Next older thread
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 186/621
EXP: 1135268
For next: 21851

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.6 years
Last activity: 1.2 years

Posted on 01-26-08 03:02:39 AM (last edited by VL-Tone at 01-26-08 12:03 AM) Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Note: I trashed the original thread about FlatWorld Battlefield because it was mainly about debugging the first versions. As far as I know, TT64 0.5.8b works correctly and can enable FlatWorld on your ROM.


This is the first step towards creating entire levels from scratch, including the importation of new geometry.

FlatWorld BattleField is a big flat square that replaces Bob-Omb Battlefield. In itself, it can be quite boring, as the level is empty.



Hopefully, despite the boring aspect of the level, some people will realize that it has a lot of potential, as it can be used as a template to create brand new levels. There are over 150 object slots available. They're all 0x24 objects, which is a good thing, as 0x42 and 0x43 objects are only limited versions of 0x24 objects. The only objects that are enabled by default are the Mario Start warp, and the original BBB warps. The other objects are invisible because their "acts" stars are all off. To activate an object, just chose which act it should appear in, and then select an object combo. I also added a few 0x26 commands slots so you can create more warps than in the original level.

The available object combos are from BBB, but eventually it will be possible to select object banks from other levels.

This new level was created through a lot of manual hex hacking, and with the help of my development version of TT64. So for now it can't be easily replicated using other levels as a basis. Still I now have a very good idea of what is needed to create a new plain level automatically.

The polygon and collision data combined only take 108 bytes, so it's a good basic template to envision more complicated polygon models, and importation of external models. Keep in mind that between creating a flat square level, and importing complex polygon models, there's a lot work involved.

I documented and commented the changes and the whole level and polygon data in these documents:

http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldHexData.txt
http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldHexUncommented.txt

The uncommented version can be used as a template for editing the data "by hand", much like I did when creating the level.

You might also want to read this, which has other important info:

http://homepage.mac.com/qubedstudios/READ_ME_FlatWorld_BattleField.txt

Flatworld Battlefield is available as a .PPF patch: http://homepage.mac.com/qubedstudios/FlatWorldBattleFieldPatch.zip

Editing the patched ROM requires a new version of TT64, which I'm releasing now: version 0.5.98b (sorry it wasn't worthy of being called 0.6b).

Download the new "interim" version of TT64 at http://homepage.mac.com/qubedstudios/ToadsTool64.htm

Note that the .PPF patch is not really needed, since TT64 0.5.98b can patch the ROM by itself. Just go to Preferences... and click on "Enable FlatWorld".

Important: Version 0.5.98b fixes an important bug that prevented FlatWorld enabled ROMs from loading on Windows version.




My next step is to create an "height terrain map" level, which will be generated from a 33x33 greyscale image, and a 32x32 bitmap that determines the texture used by each triangle. I'm currently working on it, but at the same time I'm really busy because of my work.





____________________
KINGDUDE139

I Don't post as much as I should....
Level: 13


Posts: 25/26
EXP: 9717
For next: 550

Since: 08-05-07

From: Youtube

Since last post: 14.2 years
Last activity: 13.9 years

Posted on 01-26-08 08:50:55 PM Link | Quote


Wow! This is amazing! Empty and flat, with lots of potential! This is a first step into creating levels from scratch and adding new geometry! Excellent work!

____________________
WOOT! DANCING FROGGY MARIO!WOOT! DANCING FROGGY MARIO! Needs members... Lots of 'em! <img src=images/smilies/biggrin.gif align=absmiddle>
Plareon
User
Level: 13


Posts: 21/24
EXP: 8574
For next: 1693

Since: 09-28-07

From: North America

Since last post: 13.8 years
Last activity: 13.8 years

Posted on 01-28-08 04:11:57 PM Link | Quote
This is just so great! I can't wait for the one with the Texture editing with the triangles. (But no rush. Like you said, you're busy. Business before pleasure, if you call TT64 pleasure.)

:-)

____________________
Plareon
Stevoisiak
Member
Level: 38


Posts: 38/283
EXP: 345403
For next: 25044

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 02-11-08 07:08:00 PM Link | Quote
Hmmmm. Does this mean that you can make it so objects colision data move with the image of the object when we move it? (Like the tilting platforms in Bowsers level)
vingamer234
User
Level: 9


Posts: 1/10
EXP: 2276
For next: 886

Since: 02-13-08


Since last post: 13.5 years
Last activity: 13.0 years

Posted on 02-13-08 11:09:12 PM Link | Quote
Well, VL I've been watching TT64 and I really like it! It's an awesome program.

Too bad the program doesn't work on Vista (hardware acceleration). I hope this gets fixed when the next version of MX Studio comes out (or whatever you used to create it; I'm not entirely sure).
MarioBros395
Random nobody
Level: 4


Posts: 2/2
EXP: 203
For next: 76

Since: 01-26-08


Since last post: 14.2 years
Last activity: 14.1 years

Posted on 02-22-08 03:18:18 PM Link | Quote
VL-Tone how did u make that spiraling path that u shown on youtube: www.youtube.com/watch?v=SU6cIPdGllU
Me-me
340
Level: 41


Posts: 20/341
EXP: 461584
For next: 18561

Since: 08-05-07


Since last post: 9.7 years
Last activity: 8.1 years

Posted on 02-25-08 05:20:28 PM Link | Quote
I think it's made of the ''Pushable block'' object.
It's texture is edited.
Erika
Catgirl
미안합니다
Level: 68


Posts: 163/1088
EXP: 2634685
For next: 94115

Since: 07-19-07


Since last post: 9.4 years
Last activity: 9.3 years

Posted on 02-26-08 05:25:38 PM (last edited by Erika at 02-26-08 02:27 PM) Link | Quote
Originally posted by VL-Tone on YouTube
Note that the spiraling path was created mathematically using my own development version of TT64, not by moving boxes "by hand".

Ratchetfan19
Member
Level: 18


Posts: 28/50
EXP: 25655
For next: 4242

Since: 11-20-07


Since last post: 9.0 years
Last activity: 8.6 years

Posted on 02-26-08 08:51:12 PM Link | Quote
VL-Tone, did you change any music sequences in the game, or was the music in your video music you mixed in with the capture?
DJ Bouche
Random nobody
Level: 6


Posts: 2/5
EXP: 803
For next: 104

Since: 03-01-08

From: Sydney, Australia

Since last post: 10.5 years
Last activity: 10.2 years

Posted on 03-03-08 11:34:41 AM (last edited by DJ Bouche at 03-03-08 08:35 AM) Link | Quote
Originally posted by Ratchetfan19
VL-Tone, did you change any music sequences in the game, or was the music in your video music you mixed in with the capture?


It's mixed in (no sfx, no event music), it is just a sped up version of Koopa Road.
Thesimsdude
Random nobody
Level: 4


Posts: 2/2
EXP: 204
For next: 75

Since: 12-29-07

From: D/FW, Texas

Since last post: 14.1 years
Last activity: 14.1 years

Posted on 03-05-08 11:25:26 PM Link | Quote
That is an awesome achievement!!!

Yes, I have returned.(Like anyone cares)

I have been working on a huge mod project. Progress is slow.....(About 15% done)

Anyway, Congrats!!!!
Vinnyboiler
Catgirl
Level: 66


Posts: 24/1044
EXP: 2439256
For next: 22595

Since: 12-27-07

From: London, England

Since last post: 4 days
Last activity: 21 hours

Posted on 03-17-08 05:14:20 PM Link | Quote
Thanks to this i'm back into hacking again.
i'm creating a town level like Delfino Plaza in super mario sunshine
(i have allready edited all the textures)
messiaen
Catgirl
Level: 68


Posts: 4/1085
EXP: 2593489
For next: 135311

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 03-19-08 02:41:16 PM (last edited by messiaen at 03-20-08 01:04 PM) Link | Quote
Hello, have you guys tried messing up with FlatWorld`s vertices/collision data?

For instance, try changing the first 6 bytes of the level vertices at 0x1203000
(See the commented HexData in VL-Tone's first post). What I would like to do first
is to set a smaller FlatWorld, because that would be easy using only the
four level vertices currrently used. What 3D program could I use to generate these
X,Y,Z coordinates ?

Also, is it possible to add a few vertices in the level? Next step would be trying a two-island, or two platforms FlatWorld.


---

Edit: I will find X Y Z coordenates by altering 0x24 object and manually checking X,Y,Z on Hex. However, whenever I change X,Y,Z coordenates TT64 just saves the object change, not their positions. Anyone else running on this problem?

Edit2: Found a Bug on TT64 0.598b! If you change X Y Z using keys J,K,L TT64 won't trigger the Red Save button. Changing with the mouse works fine.

Edit3: OK, I got my Little FlatWorld, with correct collision data. I know it is not very impressive, but maybe it will trigger some interest on geometry data.

Screenshot (Corrected)

Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 2421/5390
EXP: 29044397
For next: 290608

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 330 days
Last activity: 330 days

Posted on 03-20-08 04:06:22 AM Link | Quote
Jul - Post #2421 - 03-19-08 11:06:22pm
Originally posted by messiaen
OK, I got my Little FlatWorld, with correct collision data.
But Mario's foot is in the ground.

____________________
messiaen
Catgirl
Level: 68


Posts: 5/1085
EXP: 2593489
For next: 135311

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 03-20-08 12:40:26 PM (last edited by messiaen at 03-20-08 01:42 PM) Link | Quote
Ops, I just checked and I mystyped some bytes in the collision data , but
anyway what matters is just the idea. I'll correct the screenshot later (Edit: Done!), maybe
with a prettier terrain design (Edit: Not done!), and I'll try next to add two little platforms,
but I'm not really sure how to add more geometry data.

I'm also a bit lost on the SM64 Hacking documents, if someone could help me
where to find the exact collision data ROM addresses for some of the levels.

---

Edit: I'm not at home, but found this very interesting 0x17 command in HexData.txt

17 0C 00 07 01 20 30 00 01 20 31 08 <------ Loads Polygon & Collision data in Bank 0x07

--From MarioHacking1.5 doc-

[17] [0C] 00 [0C] [00 13 B5 D0] [00 13 B9 10]

[1]: 17= Copy uncompressed data from ROM to a RAM segment
[2]: Length byte (dec 12)
[4]: RAM segment to copy data to
[5,6,7,8]: Start address in ROM of uncompressed data
[9,10,11,12]: End address in ROM of uncompressed data

---

So, probably changing this will give extra space for more vertexes and collision data. My noobish question is, what exactly is a lenght byte? Do I have to change this if I'm going to expand the End-Rom address to load to RAM (to include more geometry data) or is this just a fixed number telling my byte number must be multiple of 12?

---

[Another Edit]

Here is a easy way for finding geometry data: just copy the hex offset of the first warp object of a level, then search for it on the ROM. Go back a little and find the 0x17 command that points to some lenghty hex data. If you want the collision data, go the beggining of geometry and search for the 0040 command.

P.S: Why does "Rom addess" at the bottom corner in TT64 shows in Decimal, not Hex?
Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 2440/5390
EXP: 29044397
For next: 290608

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 330 days
Last activity: 330 days

Posted on 03-20-08 05:57:15 PM Link | Quote
Jul - Post #2440 - 03-20-08 12:57:15pm
The length byte is the number of bytes in the command IIRC.

____________________
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 188/621
EXP: 1135268
For next: 21851

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.6 years
Last activity: 1.2 years

Posted on 03-24-08 03:27:20 AM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
ah, nice to see that at least one person decided to hack the polygons of flatworld!

messiaen:

You can indeed change the 0x17 command to allow more space for polygons. If you add polygons, remember that you also have to add collision polygon. That means that you'll have to change the related pointers so that they take that into account. That means the pointer to the polygon data , vertice data and the color data. These are pointers to bank 0x07, where the pointer is relative to the beginning of the bank in ROM. So, for example offset 0 in bank 0x07 is equal to 0x1203000 (the beginning of the bank), and offset 4D would be equal to 0x120304D.

To get the ROM address in Hex in TT64, just click the "Hex values" option in the main TT64 window.

The length byte is indeed the length of this particular command. The 0x17 command is 12 bytes long. The length of the bank loaded by this command is simply the difference between the start and end adresses.

I will investigate the problem you had where positions were not saved, it's possible that it only happens when using keys to move objects.

____________________
messiaen
Catgirl
Level: 68


Posts: 7/1085
EXP: 2593489
For next: 135311

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 03-24-08 12:33:28 PM (last edited by messiaen at 03-24-08 03:04 PM) Link | Quote
Hi VL-Tone,

Thanks for information. That is why my experiments were mostly crashing
the game, I had just changed the 0x17 pointer.
So, it seems I have to work around with these commands :

15 01 00 00 07 00 00 40 <------- Points to level polygons in Bank 0x07

03 86 00 10 07 00 00 D0 <------ Points to a color in current bank (0x07) at 0x00D0

2E 08 00 00 07 00 00 D8 <------ Points to collision data in bank 0x07

17 0C 00 07 01 20 30 00 01 20 31 08 <------ Loads Polygon & Collision data in Bank 0x07

00 40 00 04 <------ Loads 4 collision data vertices

So, I added two level vertices and two collision vertices. After changin the four pointers, the level runs, but I didn't get exactly the shapes I was expecting. My six vertices rendered a triangle, while I was expecting some kind of hexagon. Also, the collision data didn't worked very good.

That is probably because I don't have any 3D knowledge . Anyway, it works!

---

Edit: I was looking through Flatworld Hex data again, and I think it is probably someting related to the triangle data.
As far as the collision, what I get about the command below (of course I could be wrong) is that it tells what to do with the vertices, otherwise just adding collision vertices won't do nothing.

00 00 00 02 <----- Loads 2 collision triangles

00 00 00 01 00 02 <----- Three 16-bit vertices numbers defining a triangle.
00 00 00 03 00 01

My question is, take for instance 00 00 00 01 00 02, the important data is just the 01 00 02 last three bytes, right? What does zero means, is it the first vertice of the collision data or just a blank value? Is this the command that sets the two big triangles you see at TT64 FlatWorld Wireframe collision data?

That makes me wonder how interesting would be a "update collision data from ROM" or a "change collision triangles vertexes" feature, if that is how it does works.


Also, Could someone help me understanding the command below (especfically the last 3 bytes) ?

BF 00 00 00 00 00 0A 14 <------ Triangle command: last 3 bytes point to three vertices (base vertices address + vertex number * 10)
BF 00 00 00 00 00 1E 0A

Is this the command I would have to change to get what I want from my level vertices?

VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 192/621
EXP: 1135268
For next: 21851

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.6 years
Last activity: 1.2 years

Posted on 03-24-08 08:46:05 PM (last edited by VL-Tone at 03-24-08 05:49 PM) Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by messiaen

00 00 00 02 <----- Loads 2 collision triangles

00 00 00 01 00 02 <----- Three 16-bit vertices numbers defining a triangle.
00 00 00 03 00 01

My question is, take for instance 00 00 00 01 00 02, the important data is just the 01 00 02 last three bytes, right? What does zero means, is it the first vertice of the collision data or just a blank value? Is this the command that sets the two big triangles you see at TT64 FlatWorld Wireframe collision data?

That makes me wonder how interesting would be a "update collision data from ROM" or a "change collision triangles vertexes" feature, if that is how it does works.



In collision data, all 6 bytes of a triangle are relevant. Indeed, 00 00 means the first collision vertex.

[00 00] [00 01] [00 02]

This triangle connects the first, second and third vertices.

Be careful with the vertices order. It must be clockwise when looking at the triangle from the top. If the order is anti-clockwise, Mario will fall thru the triangle, because the polygon will act as a "ceiling" instead of a floor. Note that I may have inverted the order when telling, maybe it's anti-clockwise when looking from the top. The same applies to textured polygons. If the order is inverted, the polygon will only be visible from under.

Originally posted by messiaen

Also, Could someone help me understanding the command below (especfically the last 3 bytes) ?

BF 00 00 00 00 00 0A 14 <------ Triangle command: last 3 bytes point to three vertices (base vertices address + vertex number * 10)
BF 00 00 00 00 00 1E 0A

Is this the command I would have to change to get what I want from my level vertices?



You forgot an important command, which is just before the BF commands and is relevant to your question.

04 30 00 00 07 00 00 00 <------ Loads vertices at 0x0000 in current bank (0x07)

The 0x04 command loads some vertex data in the vertex cache. Note that you can load a maximum of 16 vertices at a time. If you end up adding more than 16, you'll have to add another 0x04 command.

The last 3 bytes of the 0x04 command represents the offset of the vertex data in the bank. In this case, it's 00 00 00 since the vertex data is right at the beginning of bank 07. If you were to add another 0x04 command, it would have to point at the beginning of the additional vertex data. And to avoid repeating vertices, the 0x04 command may point to previously used vertices. For example, you may chose to include the last two vertices of the first bunch when using the second 0x04 command.

Another important thing, the second byte of the 0x04 command (in this case 0x30) represents the number of vertices to be loaded. To calculate this number do (number of vertices -1)*16.

The 0xBF command will use triangles available in the vertex cache.

BF 00 00 00 00 [00] [0A] [14]

In the case of polygon data, there's only one byte per triangle vertex, that means that only the last three bytes are relevant.

In decimal, the example upthere is 00,10,20. They represent vertex 1, 2 and 3. While the triangle vertex values work in increments of 10, each vertex in the data is 16 bytes long. So to find the position of a vertex, you have to divide by 10, then multiply by 16. That would mean 00,16,32. Note that you have to add the base address defined by the 0x04 command. In the case of the first one, it's easy since it's 000000. If you add another 0x04 command, the new offset will need to be added, instead of 000000.

If you want to do the reverse process, to find which values to use in the BF command, starting from the vertex data position: substract the base address of the vertex bunch you load with the 0x04 command, divide by 16 then multiply by 10.


____________________
messiaen
Catgirl
Level: 68


Posts: 8/1085
EXP: 2593489
For next: 135311

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 03-24-08 09:41:10 PM (last edited by messiaen at 04-13-08 08:06 PM) Link | Quote
Thank you SO much, VL-Tone! This will come VERY in handy . Now things are getting clearer!

This is also good reading, essentially on the same subject:



---

Edit: Hi, I just made a graphical representation of the geometry data of Flatworld Battlefield.

Edit2: Er, I'm sorry but that was flawed. First of all, I should have used "Top View", not bottom view". So, the order from top view is counter-clockwise. I'll post it again when corrected.
Pages: 1 2 3 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - FlatWorld Battlefield, Take Two (New flat empty level template! TT64 v0.5.98b!) New poll - New thread - New reply


Rusted Logic

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

38 database queries, 6 query cache hits.
Query execution time:  0.085994 seconds
Script execution time:  0.043728 seconds
Total render time:  0.129721 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 300 - 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 250 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 96 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 163 - 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 99 - Warning: unescaped & or unknown entity "&postid"
line 179 column 73 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 1511 - Warning: missing </font> before <hr>
line 181 column 1 - Warning: inserting implicit <font>
line 181 column 1 - Warning: missing </font> before <h3>
line 208 column 4807 - Warning: inserting implicit <font>
line 216 column 1 - Warning: inserting implicit <font>
line 216 column 1 - Warning: missing </font> before <hr>
line 217 column 1 - Warning: inserting implicit <font>
line 179 column 137 - Warning: missing </div>
line 224 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 226 column 9 - Warning: missing <tr>
line 244 column 13 - Warning: missing <tr>
line 245 column 99 - Warning: unescaped & or unknown entity "&postid"
line 252 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 254 column 9 - Warning: missing <tr>
line 272 column 13 - Warning: missing <tr>
line 273 column 99 - Warning: unescaped & or unknown entity "&postid"
line 280 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 282 column 9 - Warning: missing <tr>
line 300 column 13 - Warning: missing <tr>
line 301 column 99 - Warning: unescaped & or unknown entity "&postid"
line 306 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 308 column 9 - Warning: missing <tr>
line 326 column 13 - Warning: missing <tr>
line 327 column 99 - Warning: unescaped & or unknown entity "&postid"
line 334 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 336 column 9 - Warning: missing <tr>
line 354 column 13 - Warning: missing <tr>
line 355 column 99 - Warning: unescaped & or unknown entity "&postid"
line 360 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 362 column 9 - Warning: missing <tr>
line 380 column 13 - Warning: missing <tr>
line 381 column 99 - Warning: unescaped & or unknown entity "&postid"
line 387 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 389 column 9 - Warning: missing <tr>
line 407 column 13 - Warning: missing <tr>
line 408 column 99 - Warning: unescaped & or unknown entity "&postid"
line 414 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 416 column 9 - Warning: missing <tr>
line 434 column 13 - Warning: missing <tr>
line 435 column 99 - Warning: unescaped & or unknown entity "&postid"
line 440 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 442 column 9 - Warning: missing <tr>
line 460 column 13 - Warning: missing <tr>
line 461 column 99 - Warning: unescaped & or unknown entity "&postid"
line 468 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 470 column 9 - Warning: missing <tr>
line 488 column 13 - Warning: missing <tr>
line 489 column 99 - Warning: unescaped & or unknown entity "&postid"
line 500 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 502 column 9 - Warning: missing <tr>
line 520 column 13 - Warning: missing <tr>
line 521 column 99 - Warning: unescaped & or unknown entity "&postid"
line 528 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 530 column 9 - Warning: missing <tr>
line 548 column 13 - Warning: missing <tr>
line 549 column 99 - Warning: unescaped & or unknown entity "&postid"
line 575 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 577 column 9 - Warning: missing <tr>
line 595 column 13 - Warning: missing <tr>
line 596 column 99 - Warning: unescaped & or unknown entity "&postid"
line 598 column 84 - Warning: <style> isn't allowed in <td> elements
line 598 column 9 - Info: <td> previously mentioned
line 598 column 2840 - Warning: unescaped & or unknown entity "&config"
line 598 column 3030 - Warning: unescaped & or unknown entity "&pr"
line 598 column 3035 - Warning: unescaped & or unknown entity "&lv"
line 598 column 3041 - Warning: unescaped & or unknown entity "&ep"
line 598 column 3049 - Warning: unescaped & or unknown entity "&ed"
line 598 column 3058 - Warning: unescaped & or unknown entity "&ll"
line 598 column 3068 - Warning: unescaped & or unknown entity "&ex"
line 598 column 3079 - Warning: unescaped & or unknown entity "&le"
line 598 column 3090 - Warning: unescaped & or unknown entity "&eg"
line 598 column 3098 - Warning: unescaped & or unknown entity "&et"
line 601 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 603 column 9 - Warning: missing <tr>
line 621 column 13 - Warning: missing <tr>
line 622 column 99 - Warning: unescaped & or unknown entity "&postid"
line 661 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 663 column 9 - Warning: missing <tr>
line 681 column 13 - Warning: missing <tr>
line 682 column 99 - Warning: unescaped & or unknown entity "&postid"
line 684 column 84 - Warning: <style> isn't allowed in <td> elements
line 684 column 9 - Info: <td> previously mentioned
line 684 column 2656 - Warning: unescaped & or unknown entity "&config"
line 684 column 2846 - Warning: unescaped & or unknown entity "&pr"
line 684 column 2851 - Warning: unescaped & or unknown entity "&lv"
line 684 column 2857 - Warning: unescaped & or unknown entity "&ep"
line 684 column 2865 - Warning: unescaped & or unknown entity "&ed"
line 684 column 2875 - Warning: unescaped & or unknown entity "&ll"
line 684 column 2885 - Warning: unescaped & or unknown entity "&ex"
line 684 column 2896 - Warning: unescaped & or unknown entity "&le"
line 684 column 2907 - Warning: unescaped & or unknown entity "&eg"
line 684 column 2915 - Warning: unescaped & or unknown entity "&et"
line 687 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 689 column 9 - Warning: missing <tr>
line 707 column 13 - Warning: missing <tr>
line 708 column 99 - Warning: unescaped & or unknown entity "&postid"
line 710 column 73 - Warning: <style> isn't allowed in <td> elements
line 710 column 9 - Info: <td> previously mentioned
line 710 column 137 - Warning: missing </div>
line 723 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 725 column 9 - Warning: missing <tr>
line 743 column 13 - Warning: missing <tr>
line 744 column 99 - Warning: unescaped & or unknown entity "&postid"
line 791 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 793 column 9 - Warning: missing <tr>
line 811 column 13 - Warning: missing <tr>
line 812 column 99 - Warning: unescaped & or unknown entity "&postid"
line 814 column 73 - Warning: <style> isn't allowed in <td> elements
line 814 column 9 - Info: <td> previously mentioned
line 814 column 1511 - Warning: missing </font> before <blockquote>
line 814 column 1590 - Warning: inserting implicit <font>
line 814 column 1590 - Warning: missing </font> before <hr>
line 815 column 1 - Warning: inserting implicit <font>
line 815 column 1 - Warning: missing </font> before <hr>
line 823 column 1 - Warning: inserting implicit <font>
line 823 column 1 - Warning: missing </font> before <blockquote>
line 832 column 3006 - Warning: inserting implicit <font>
line 832 column 3006 - Warning: missing </font> before <hr>
line 833 column 1 - Warning: inserting implicit <font>
line 833 column 1 - Warning: missing </font> before <hr>
line 839 column 3435 - Warning: inserting implicit <font>
line 840 column 1 - Warning: inserting implicit <font>
line 814 column 137 - Warning: missing </div>
line 863 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 865 column 9 - Warning: missing <tr>
line 883 column 13 - Warning: missing <tr>
line 884 column 99 - Warning: unescaped & or unknown entity "&postid"
line 888 column 294 - Warning: unescaped & or unknown entity "&page"
line 899 column 17 - Warning: missing <tr>
line 899 column 17 - Warning: discarding unexpected <table>
line 902 column 35 - Warning: missing <tr>
line 902 column 96 - Warning: unescaped & or unknown entity "&page"
line 902 column 128 - Warning: unescaped & or unknown entity "&page"
line 902 column 50 - Warning: missing </font> before </td>
line 902 column 163 - Warning: missing </font> before </table>
line 904 column 35 - Warning: missing <tr>
line 904 column 50 - Warning: missing </font> before </td>
line 905 column 37 - Warning: unescaped & or unknown entity "&id"
line 904 column 250 - Warning: missing </font> before </table>
line 906 column 17 - Warning: discarding unexpected </textarea>
line 906 column 28 - Warning: discarding unexpected </form>
line 906 column 35 - Warning: discarding unexpected </embed>
line 906 column 43 - Warning: discarding unexpected </noembed>
line 906 column 53 - Warning: discarding unexpected </noscript>
line 906 column 64 - Warning: discarding unexpected </noembed>
line 906 column 74 - Warning: discarding unexpected </embed>
line 906 column 82 - Warning: discarding unexpected </table>
line 906 column 90 - Warning: discarding unexpected </table>
line 908 column 9 - Warning: missing </font> before <table>
line 920 column 25 - Warning: discarding unexpected </font>
line 929 column 57 - Warning: discarding unexpected </font>
line 907 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 245 - 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 172 column 15 - Warning: <img> lacks "alt" attribute
line 179 column 693 - Warning: <img> lacks "alt" attribute
line 185 column 2116 - Warning: <img> lacks "alt" attribute
line 185 column 2203 - Warning: <img> lacks "alt" attribute
line 185 column 2290 - Warning: <img> lacks "alt" attribute
line 221 column 5810 - Warning: <img> lacks "alt" attribute
line 221 column 5969 - Warning: <img> lacks "alt" attribute
line 228 column 11 - Warning: <img> lacks "alt" attribute
line 229 column 22 - Warning: <img> lacks "alt" attribute
line 229 column 63 - Warning: <img> lacks "alt" attribute
line 229 column 112 - Warning: <img> lacks "alt" attribute
line 229 column 162 - Warning: <img> lacks "alt" attribute
line 230 column 11 - Warning: <img> lacks "alt" attribute
line 240 column 15 - Warning: <img> lacks "alt" attribute
line 247 column 73 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 73 - Warning: <img> lacks "alt" attribute
line 249 column 278 - Warning: <img> proprietary attribute value "absmiddle"
line 249 column 278 - Warning: <img> lacks "alt" attribute
line 249 column 544 - Warning: <img> lacks "alt" attribute
line 257 column 22 - Warning: <img> lacks "alt" attribute
line 257 column 63 - Warning: <img> lacks "alt" attribute
line 257 column 112 - Warning: <img> lacks "alt" attribute
line 257 column 162 - Warning: <img> lacks "alt" attribute
line 258 column 11 - Warning: <img> lacks "alt" attribute
line 268 column 15 - Warning: <img> lacks "alt" attribute
line 285 column 22 - Warning: <img> lacks "alt" attribute
line 285 column 63 - Warning: <img> lacks "alt" attribute
line 285 column 112 - Warning: <img> lacks "alt" attribute
line 285 column 162 - Warning: <img> lacks "alt" attribute
line 296 column 15 - Warning: <img> lacks "alt" attribute
line 311 column 21 - Warning: <img> lacks "alt" attribute
line 311 column 62 - Warning: <img> lacks "alt" attribute
line 311 column 110 - Warning: <img> lacks "alt" attribute
line 311 column 160 - Warning: <img> lacks "alt" attribute
line 322 column 15 - Warning: <img> lacks "alt" attribute
line 339 column 21 - Warning: <img> lacks "alt" attribute
line 339 column 62 - Warning: <img> lacks "alt" attribute
line 339 column 111 - Warning: <img> lacks "alt" attribute
line 339 column 161 - Warning: <img> lacks "alt" attribute
line 350 column 15 - Warning: <img> lacks "alt" attribute
line 364 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 15 - Warning: <img> lacks "alt" attribute
line 364 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 58 - Warning: <img> lacks "alt" attribute
line 364 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 101 - Warning: <img> lacks "alt" attribute
line 364 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 144 - Warning: <img> lacks "alt" attribute
line 364 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 187 - Warning: <img> lacks "alt" attribute
line 364 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 364 column 230 - Warning: <img> lacks "alt" attribute
line 365 column 22 - Warning: <img> lacks "alt" attribute
line 365 column 63 - Warning: <img> lacks "alt" attribute
line 365 column 112 - Warning: <img> lacks "alt" attribute
line 365 column 162 - Warning: <img> lacks "alt" attribute
line 366 column 11 - Warning: <img> lacks "alt" attribute
line 376 column 15 - Warning: <img> lacks "alt" attribute
line 392 column 22 - Warning: <img> lacks "alt" attribute
line 392 column 63 - Warning: <img> lacks "alt" attribute
line 392 column 112 - Warning: <img> lacks "alt" attribute
line 392 column 162 - Warning: <img> lacks "alt" attribute
line 403 column 15 - Warning: <img> lacks "alt" attribute
line 411 column 309 - Warning: <img> proprietary attribute value "absmiddle"
line 411 column 309 - Warning: <img> lacks "alt" attribute
line 419 column 22 - Warning: <img> lacks "alt" attribute
line 419 column 63 - Warning: <img> lacks "alt" attribute
line 419 column 112 - Warning: <img> lacks "alt" attribute
line 419 column 162 - Warning: <img> lacks "alt" attribute
line 420 column 11 - Warning: <img> lacks "alt" attribute
line 430 column 15 - Warning: <img> lacks "alt" attribute
line 445 column 21 - Warning: <img> lacks "alt" attribute
line 445 column 62 - Warning: <img> lacks "alt" attribute
line 445 column 111 - Warning: <img> lacks "alt" attribute
line 445 column 161 - Warning: <img> lacks "alt" attribute
line 456 column 15 - Warning: <img> lacks "alt" attribute
line 473 column 21 - Warning: <img> lacks "alt" attribute
line 473 column 62 - Warning: <img> lacks "alt" attribute
line 473 column 111 - Warning: <img> lacks "alt" attribute
line 473 column 161 - Warning: <img> lacks "alt" attribute
line 484 column 15 - Warning: <img> lacks "alt" attribute
line 497 column 271 - Warning: <img> proprietary attribute value "absmiddle"
line 497 column 271 - Warning: <img> lacks "alt" attribute
line 505 column 22 - Warning: <img> lacks "alt" attribute
line 505 column 63 - Warning: <img> lacks "alt" attribute
line 505 column 112 - Warning: <img> lacks "alt" attribute
line 505 column 162 - Warning: <img> lacks "alt" attribute
line 506 column 11 - Warning: <img> lacks "alt" attribute
line 516 column 15 - Warning: <img> lacks "alt" attribute
line 533 column 22 - Warning: <img> lacks "alt" attribute
line 533 column 63 - Warning: <img> lacks "alt" attribute
line 533 column 113 - Warning: <img> lacks "alt" attribute
line 544 column 15 - Warning: <img> lacks "alt" attribute
line 572 column 1262 - Warning: <img> lacks "alt" attribute
line 580 column 23 - Warning: <img> lacks "alt" attribute
line 580 column 64 - Warning: <img> lacks "alt" attribute
line 580 column 113 - Warning: <img> lacks "alt" attribute
line 580 column 163 - Warning: <img> lacks "alt" attribute
line 591 column 15 - Warning: <img> lacks "alt" attribute
line 598 column 2613 - Warning: <img> proprietary attribute value "absmiddle"
line 598 column 2613 - Warning: <img> lacks "alt" attribute
line 598 column 2851 - Warning: <img> lacks "alt" attribute
line 598 column 2973 - Warning: <img> lacks "alt" attribute
line 606 column 22 - Warning: <img> lacks "alt" attribute
line 606 column 63 - Warning: <img> lacks "alt" attribute
line 606 column 113 - Warning: <img> lacks "alt" attribute
line 617 column 15 - Warning: <img> lacks "alt" attribute
line 624 column 141 - Warning: <img> proprietary attribute value "absmiddle"
line 624 column 141 - Warning: <img> lacks "alt" attribute
line 666 column 23 - Warning: <img> lacks "alt" attribute
line 666 column 64 - Warning: <img> lacks "alt" attribute
line 666 column 113 - Warning: <img> lacks "alt" attribute
line 666 column 163 - Warning: <img> lacks "alt" attribute
line 677 column 15 - Warning: <img> lacks "alt" attribute
line 684 column 2667 - Warning: <img> lacks "alt" attribute
line 684 column 2789 - Warning: <img> lacks "alt" attribute
line 692 column 22 - Warning: <img> lacks "alt" attribute
line 692 column 63 - Warning: <img> lacks "alt" attribute
line 692 column 112 - Warning: <img> lacks "alt" attribute
line 692 column 162 - Warning: <img> lacks "alt" attribute
line 703 column 15 - Warning: <img> lacks "alt" attribute
line 710 column 693 - Warning: <img> lacks "alt" attribute
line 720 column 2788 - Warning: <img> lacks "alt" attribute
line 720 column 2947 - Warning: <img> lacks "alt" attribute
line 728 column 22 - Warning: <img> lacks "alt" attribute
line 728 column 63 - Warning: <img> lacks "alt" attribute
line 728 column 113 - Warning: <img> lacks "alt" attribute
line 739 column 15 - Warning: <img> lacks "alt" attribute
line 764 column 1041 - Warning: <img> proprietary attribute value "absmiddle"
line 764 column 1041 - Warning: <img> lacks "alt" attribute
line 796 column 22 - Warning: <img> lacks "alt" attribute
line 796 column 63 - Warning: <img> lacks "alt" attribute
line 796 column 112 - Warning: <img> lacks "alt" attribute
line 796 column 162 - Warning: <img> lacks "alt" attribute
line 807 column 15 - Warning: <img> lacks "alt" attribute
line 814 column 693 - Warning: <img> lacks "alt" attribute
line 860 column 5639 - Warning: <img> lacks "alt" attribute
line 860 column 5798 - Warning: <img> lacks "alt" attribute
line 868 column 22 - Warning: <img> lacks "alt" attribute
line 868 column 63 - Warning: <img> lacks "alt" attribute
line 868 column 113 - Warning: <img> lacks "alt" attribute
line 879 column 15 - Warning: <img> lacks "alt" attribute
line 886 column 130 - Warning: <img> proprietary attribute value "absmiddle"
line 886 column 130 - Warning: <img> lacks "alt" attribute
line 905 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 905 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 905 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 914 column 25 - Warning: <img> lacks "alt" attribute
line 919 column 267 - Warning: <img> lacks "alt" attribute
line 814 column 1511 - Warning: trimming empty <font>
line 839 column 3435 - Warning: trimming empty <font>
line 899 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 179 column 157 - Warning: <table> proprietary attribute "height"
line 179 column 222 - Warning: <td> proprietary attribute "background"
line 179 column 318 - Warning: <td> proprietary attribute "background"
line 179 column 408 - Warning: <table> proprietary attribute "height"
line 179 column 488 - Warning: <td> proprietary attribute "background"
line 179 column 1443 - Warning: <td> proprietary attribute "background"
line 245 column 27 - Warning: <nobr> is not approved by W3C
line 273 column 27 - Warning: <nobr> is not approved by W3C
line 301 column 27 - Warning: <nobr> is not approved by W3C
line 327 column 27 - Warning: <nobr> is not approved by W3C
line 355 column 27 - Warning: <nobr> is not approved by W3C
line 381 column 27 - Warning: <nobr> is not approved by W3C
line 408 column 27 - Warning: <nobr> is not approved by W3C
line 435 column 27 - Warning: <nobr> is not approved by W3C
line 461 column 27 - Warning: <nobr> is not approved by W3C
line 489 column 27 - Warning: <nobr> is not approved by W3C
line 521 column 27 - Warning: <nobr> is not approved by W3C
line 549 column 27 - Warning: <nobr> is not approved by W3C
line 596 column 27 - Warning: <nobr> is not approved by W3C
line 622 column 27 - Warning: <nobr> is not approved by W3C
line 682 column 27 - Warning: <nobr> is not approved by W3C
line 708 column 27 - Warning: <nobr> is not approved by W3C
line 710 column 157 - Warning: <table> proprietary attribute "height"
line 710 column 222 - Warning: <td> proprietary attribute "background"
line 710 column 318 - Warning: <td> proprietary attribute "background"
line 710 column 408 - Warning: <table> proprietary attribute "height"
line 710 column 488 - Warning: <td> proprietary attribute "background"
line 710 column 1443 - Warning: <td> proprietary attribute "background"
line 744 column 27 - Warning: <nobr> is not approved by W3C
line 812 column 27 - Warning: <nobr> is not approved by W3C
line 814 column 157 - Warning: <table> proprietary attribute "height"
line 814 column 222 - Warning: <td> proprietary attribute "background"
line 814 column 318 - Warning: <td> proprietary attribute "background"
line 814 column 408 - Warning: <table> proprietary attribute "height"
line 814 column 488 - Warning: <td> proprietary attribute "background"
line 814 column 1443 - Warning: <td> proprietary attribute "background"
line 884 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 374 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