Register - Login
Views: 99377857
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 09:48:28 PM
Jul - SM64 Hacking (Archive) - Mario Geometry Layout Deconstruction New poll - New thread - New reply
Next newer thread | Next older thread
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 13/621
EXP: 1135498
For next: 21621

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-06-07 04:08:52 AM Link | Quote
I didn't manage until recently to correctly decode Mario's Geometry Layout data, mainly because of some commands I didn't know the length of.

Mario has by far the most complicated geometry layout of all animated characters in the game.

But that's mainly because of the LOD (level of detail) system, which creates four variations of Mario: One with all the high-polygon parts, the other with some high and some low polygon parts, another with only low polygon parts, and another with very low polygon parts.

Then, there's also four variation of Mario's body, the first one is normal, the 2nd which seems unused in the game, with half metal parts and half normal parts, and the two others seems to be metal Mario, though the last one doesn't seem to be used in the game.

So, in total, that makes 16 different Mario variation, each having a similar or the same structure, but pointing to different polygon parts.

The geometry layout data is structured in a hierarchy, with command 0x04 opening a node, and 0x05 closing the node. Nodes preceded by the 0x0E commands are animated. The animation code chooses inside that node which command or sub-node is used.

For example:

00127CA4/02F4:     0E 00 00 00 80 27 77 40 

00127CAC/02FC: 04 00 00 00
00127CB0/0300: 0E 00 00 00 80 27 71 BC
00127CB8/0308: 04 00 00 00
00127CBC/030C: 15 01 00 00 04 01 19 A0 -- head 1 hp color
00127CC4/0314: 15 01 00 00 04 01 1A 90 -- head 2 hp color
00127CCC/031C: 15 01 00 00 04 01 1B 80 -- head 3 hp color
00127CD4/0324: 15 01 00 00 04 01 1C 70 -- head 4 hp color
00127CDC/032C: 15 01 00 00 04 01 1D 60 -- head 5 hp color
00127CE4/0334: 15 01 00 00 04 01 1E 50 -- head 6 hp color
00127CEC/033C: 15 01 00 00 04 01 1F 40 -- head 7 hp color
00127CF4/0344: 15 01 00 00 04 01 20 30 -- head 8 hp color
00127CFC/034C: 05 00 00 00
00127D00/0350: 0E 00 00 00 80 27 71 BC
00127D08/0358: 04 00 00 00
00127D0C/035C: 15 01 00 00 04 01 39 E8 -- head no cap 1 hp color
00127D14/0364: 15 01 00 00 04 01 3A B8 -- head no cap 2 hp color
00127D1C/036C: 15 01 00 00 04 01 3B 88 -- head no cap 3 hp color
00127D24/0374: 15 01 00 00 04 01 3C 58 -- head no cap 4 hp color
00127D2C/037C: 15 01 00 00 04 01 3D 28 -- head no cap 5 hp color
00127D34/0384: 15 01 00 00 04 01 3D F8 -- head no cap 6 hp color
00127D3C/038C: 15 01 00 00 04 01 3E C8 -- head no cap 7 hp color
00127D44/0394: 15 01 00 00 04 01 3F 98 -- head no cap 8 hp color
00127D4C/039C: 05 00 00 00
00127D50/03A0: 05 00 00 00


(hmmm... the "pre" tag inserts additional linefeeds?)

So in this example, the root node is "animated" by the code, which choses the one of the two sub-node, depending on if Mario is wearing his hat or not. Then, in the sub-node, the animation code choses which head to use, depending on the state of the eyes animation.

Here's the fully decoded Mario geometry layout, with text labels for body parts: MarioGeoLayout.txt

HP means High Polygon, LP means Low Polygon and VLP means Very Low Polygon.

The addresses found at the beginning of each line show the actual ROM address and after the slash the offset in the current geometry layout segment/bank which starts at 001279B0.

Note that this doc also includes small accessory objects which are also found in the same geometry layout bank, and incidentally in the same MIO0 file.

To help you understand the meaning of geometry layout commands, here's the newly updated Mario 64 Hacking Doc which includes much more geo layout commands than the original doc. Keep in mind that this doc is aimed at experienced ROM hackers.

The root of the Mario geometry layout is found near the end, at 0012A784/2DD4, and this is where the 0x22 command for Mario points to. At the root the two main branches are the High Poly Mario, and the LOD Mario (which includes the HP Mario). The "High Poly Mario" feature in TT64 works by changing the destination of the 0x02 command that normally jumps to the LOD Mario part so that it points to the next command instead, in effect disabling the low-poly Marios.


As a bonus, here's a similar deconstruction of Peach's geo layout, also with body parts labels: PeachGeo.txt

Some very experienced hacker could, with these docs and a lot of work, change Mario into Peach. It's far from simple since she has no legs, and her body parts hierarchy is a little different, and it would require re-positioning each body part. Also, you could only play with her on the Castle Grounds level, and she would sound like Mario

____________________

The Super Mario Level Editor
Xtreme Starfox
180
Level: 31


Posts: 24/180
EXP: 177056
For next: 8307

Since: 08-05-07

From: I don't know, Seriously.

Since last post: 12.4 years
Last activity: 12.4 years

Posted on 08-06-07 03:24:13 PM; last edit by Xtreme Starfox on 08-06-07 03:27 PM Link | Quote
I Got A "Turn Mario Into Peach Code" But She Is Kinda Invisible....I'll Post The "Code" When I Find It...


Here:
Play As Peach While Outside Castle (Kinda Invisible)

D134B89E 0860
8134B89C 8019
D134B89E 0860
8134B89E 4690

____________________

Deleted User
Collection of nobodies
Posted on 08-06-07 03:27:04 PM Link | Quote
Oh, yes I tried this code also. She needs some texture though.

____________________


===================
[Posted by Dudaw]
Xtreme Starfox
180
Level: 31


Posts: 25/180
EXP: 177056
For next: 8307

Since: 08-05-07

From: I don't know, Seriously.

Since last post: 12.4 years
Last activity: 12.4 years

Posted on 08-06-07 03:30:07 PM Link | Quote
But Why is She The Only One Without Textures?

____________________

Deleted User
Collection of nobodies
Posted on 08-06-07 03:58:04 PM Link | Quote
It may be because her actions don't match Mario's correctly. Like a Goomba, It doesn't have that many body parts to move, neither do the others, so they will match.

____________________


===================
[Posted by Dudaw]
Darkdata
Ruins!? ♥
Level: 103


Posts: 87/2892
EXP: 11436133
For next: 35273

Since: 07-04-07


Since last post: 193 days
Last activity: 1 day

Posted on 08-06-07 04:00:01 PM; last edit by Darkdata on 08-06-07 04:02 PM Link | Quote
DPP - [internet://board/post87.bit] - 08-06-07 04:00:01 PM
File Edit View Settings ?
Originally posted by Dudaw
It may be because her actions don't match Mario's correctly. Like a Goomba, It doesn't have that many body parts to move, neither do the others, so they will match.


No.. her texture is just not loaded. It seems to be only loaded in the ending where she floats down from the castle....

I could be wrong too, of course.

Edit: That sprite deconstruction is interesting... hmm...

____________________
To continue using this program, please click here
Deleted User
Collection of nobodies
Posted on 08-06-07 04:05:10 PM; last edit by Dudaw on 08-06-07 04:45 PM Link | Quote
Darkdata: Well..... It was just an educated guess.

____________________


===================
[Posted by Dudaw]
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 19/621
EXP: 1135498
For next: 21621

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-06-07 06:23:26 PM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
If you look at her geometry layout, you find that there are two versions of Peach, the main difference being in the 0x15 and 0x13 commands.

From Peach version 1:

0018062C/00EC: 15 01 00 00 05 00 5C E0 -- head (kissing) 1

Peach version 2:

001807E8/02A8: 15 05 00 00 05 00 5C E0 -- head (kissing) 1


What's the difference? The second byte in the command changes from 01 to 05.

This second byte controls the "drawing layer" of polygons. It's not exactly z-ordering, it's more about ensuring that transparent textures (often drawn in the same layer) appear correctly.

For some reason, Peach 2 is set to 05, it seems more to have something with her fading out in the intro.

While you could manually change all 05 to 01, there a simpler solution.


This is the entry point/root of the Peach geometry layout:


00180950/0410: 16 00 00 00 00 96 00 64
00180958/0418: 04 00 00 00
0018095C/041C: 1D 00 00 00 00 00 40 00
00180964/0424: 04 00 00 00
00180968/0428: 18 00 00 0A 80 29 D9 24
00180970/0430: 0E 00 00 02 80 29 DB 48
00180978/0438: 04 00 00 00
0018097C/043C: 02 01 00 00 0C 00 00 98
--Jump to: 00823BFC/0098
00180984/0444: 02 01 00 00 0C 00 02 54
--Jump to: 00823DB8/0254
0018098C/044C: 05 00 00 00
00180990/0450: 05 00 00 00
00180994/0454: 05 00 00 00
00180998/0458: 01 00 00 00


Note that the animation code can chose between two jump points, and incidentally they point to the two peach versions.

If you change this command:

02 01 00 00 0C 00 02 54

into this:

02 01 00 00 0C 00 00 98

You'll be sure that only version 1 is used, and you'll be able to see her with that GS code.



But, as I predicted, she's severally glitched because her body part hierarchy doesn't match Mario.

To do the modification, go to 18098A and change 0254 to 0098. If you don't know how to do this, don't ask in the SM64 hacking forum.

____________________
John2k4
490
Bubble Bobble
Level: 48


Posts: 59/499
EXP: 817244
For next: 6299

Since: 08-05-07

From: Arizona

Since last post: 8.9 years
Last activity: 7.7 years

Posted on 08-09-07 05:31:14 PM Link | Quote
Yeah, I noticed that the Peach Code worked fine when the game ended, but when Mario would walk, he\she got severally messed up.

____________________


Poor Mario.
If only he knew.
yoshiman
Member
Level: 23


Posts: 31/95
EXP: 67007
For next: 716

Since: 12-21-07

From: London, England

Since last post: 13.2 years
Last activity: 12.9 years

Posted on 01-20-08 02:58:31 AM Link | Quote
Firstly, there is a byte in an object's structure which when set to FF disables transparency so you can use that. Secondly you need Peach's animation pointer otherwise she will be messed up. Just look at my video-Playing as Peach in Super Mario 64-to see how it's done with codes.

James S.

____________________
We English do things a little differently...Anyone for a cup of tea while we hack?!
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Mario Geometry Layout Deconstruction New poll - New thread - New reply


Rusted Logic

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

30 database queries, 1 query cache hits.
Query execution time:  0.110389 seconds
Script execution time:  0.020491 seconds
Total render time:  0.130880 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 201 - 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 207 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 91 - 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 98 - Warning: unescaped & or unknown entity "&postid"
line 243 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 245 column 9 - Warning: missing <tr>
line 263 column 13 - Warning: missing <tr>
line 264 column 98 - Warning: unescaped & or unknown entity "&postid"
line 266 column 204 - Warning: missing </div>
line 266 column 73 - Warning: missing </div>
line 278 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 279 column 25 - Warning: missing <tr>
line 286 column 33 - Warning: missing <tr>
line 287 column 118 - 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 98 - Warning: unescaped & or unknown entity "&postid"
line 314 column 204 - Warning: missing </div>
line 314 column 73 - Warning: missing </div>
line 317 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 318 column 25 - Warning: missing <tr>
line 325 column 33 - Warning: missing <tr>
line 326 column 118 - Warning: unescaped & or unknown entity "&postid"
line 330 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 332 column 9 - Warning: missing <tr>
line 350 column 13 - Warning: missing <tr>
line 351 column 98 - Warning: unescaped & or unknown entity "&postid"
line 353 column 73 - Warning: <style> isn't allowed in <td> elements
line 353 column 9 - Info: <td> previously mentioned
line 361 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 362 column 25 - Warning: missing <tr>
line 369 column 33 - Warning: missing <tr>
line 370 column 118 - Warning: unescaped & or unknown entity "&postid"
line 374 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 376 column 9 - Warning: missing <tr>
line 394 column 13 - Warning: missing <tr>
line 395 column 98 - Warning: unescaped & or unknown entity "&postid"
line 397 column 73 - Warning: <style> isn't allowed in <td> elements
line 397 column 9 - Info: <td> previously mentioned
line 397 column 1511 - Warning: missing </font> before <pre>
line 435 column 1 - Warning: inserting implicit <font>
line 397 column 137 - Warning: missing </div>
line 455 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 457 column 9 - Warning: missing <tr>
line 475 column 13 - Warning: missing <tr>
line 476 column 98 - Warning: unescaped & or unknown entity "&postid"
line 478 column 73 - Warning: missing </span> before </td>
line 484 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 486 column 9 - Warning: missing <tr>
line 504 column 13 - Warning: missing <tr>
line 505 column 98 - Warning: unescaped & or unknown entity "&postid"
line 512 column 17 - Warning: missing <tr>
line 512 column 17 - Warning: discarding unexpected <table>
line 515 column 35 - Warning: missing <tr>
line 515 column 50 - Warning: missing </font> before </td>
line 515 column 91 - Warning: missing </font> before </table>
line 517 column 35 - Warning: missing <tr>
line 517 column 50 - Warning: missing </font> before </td>
line 518 column 37 - Warning: unescaped & or unknown entity "&id"
line 517 column 207 - Warning: missing </font> before </table>
line 519 column 17 - Warning: discarding unexpected </textarea>
line 519 column 28 - Warning: discarding unexpected </form>
line 519 column 35 - Warning: discarding unexpected </embed>
line 519 column 43 - Warning: discarding unexpected </noembed>
line 519 column 53 - Warning: discarding unexpected </noscript>
line 519 column 64 - Warning: discarding unexpected </noembed>
line 519 column 74 - Warning: discarding unexpected </embed>
line 519 column 82 - Warning: discarding unexpected </table>
line 519 column 90 - Warning: discarding unexpected </table>
line 521 column 9 - Warning: missing </font> before <table>
line 533 column 25 - Warning: discarding unexpected </font>
line 542 column 57 - Warning: discarding unexpected </font>
line 520 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 244 - 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 239 column 5137 - Warning: <img> proprietary attribute value "absmiddle"
line 239 column 5137 - Warning: <img> lacks "alt" attribute
line 239 column 5227 - Warning: <img> lacks "alt" attribute
line 247 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 15 - Warning: <img> lacks "alt" attribute
line 247 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 58 - Warning: <img> lacks "alt" attribute
line 247 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 101 - Warning: <img> lacks "alt" attribute
line 247 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 144 - Warning: <img> lacks "alt" attribute
line 247 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 187 - Warning: <img> lacks "alt" attribute
line 247 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 247 column 230 - Warning: <img> lacks "alt" attribute
line 248 column 22 - Warning: <img> lacks "alt" attribute
line 248 column 63 - Warning: <img> lacks "alt" attribute
line 248 column 112 - Warning: <img> lacks "alt" attribute
line 248 column 162 - Warning: <img> lacks "alt" attribute
line 249 column 11 - Warning: <img> lacks "alt" attribute
line 259 column 15 - Warning: <img> lacks "alt" attribute
line 275 column 722 - Warning: <img> lacks "alt" attribute
line 282 column 37 - Warning: <img> lacks "alt" attribute
line 289 column 255 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 295 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 15 - Warning: <img> lacks "alt" attribute
line 295 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 58 - Warning: <img> lacks "alt" attribute
line 295 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 101 - Warning: <img> lacks "alt" attribute
line 295 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 144 - Warning: <img> lacks "alt" attribute
line 295 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 187 - Warning: <img> lacks "alt" attribute
line 295 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 295 column 230 - 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 314 column 485 - Warning: <img> proprietary attribute value "absmiddle"
line 314 column 485 - Warning: <img> lacks "alt" attribute
line 314 column 572 - Warning: <img> lacks "alt" attribute
line 321 column 37 - Warning: <img> lacks "alt" attribute
line 328 column 357 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 334 column 11 - Warning: <font> attribute "color" has invalid value "orange"
line 335 column 23 - Warning: <img> lacks "alt" attribute
line 335 column 64 - Warning: <img> lacks "alt" attribute
line 335 column 113 - Warning: <img> lacks "alt" attribute
line 335 column 162 - Warning: <img> lacks "alt" attribute
line 336 column 11 - Warning: <img> lacks "alt" attribute
line 346 column 15 - Warning: <img> lacks "alt" attribute
line 353 column 222 - Warning: <img> lacks "alt" attribute
line 353 column 323 - Warning: <img> lacks "alt" attribute
line 353 column 573 - Warning: <img> lacks "alt" attribute
line 357 column 1101 - Warning: <img> proprietary attribute value "absmiddle"
line 357 column 1101 - Warning: <img> lacks "alt" attribute
line 359 column 1355 - Warning: <img> proprietary attribute value "absmiddle"
line 359 column 1355 - Warning: <img> lacks "alt" attribute
line 365 column 37 - Warning: <img> lacks "alt" attribute
line 372 column 243 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 379 column 22 - Warning: <img> lacks "alt" attribute
line 379 column 63 - Warning: <img> lacks "alt" attribute
line 379 column 112 - Warning: <img> lacks "alt" attribute
line 379 column 162 - Warning: <img> lacks "alt" attribute
line 390 column 15 - Warning: <img> lacks "alt" attribute
line 397 column 693 - Warning: <img> lacks "alt" attribute
line 448 column 3421 - Warning: <img> lacks "alt" attribute
line 452 column 3828 - Warning: <img> lacks "alt" attribute
line 452 column 3987 - Warning: <img> lacks "alt" attribute
line 459 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 15 - Warning: <img> lacks "alt" attribute
line 459 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 58 - Warning: <img> lacks "alt" attribute
line 459 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 101 - Warning: <img> lacks "alt" attribute
line 459 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 144 - Warning: <img> lacks "alt" attribute
line 459 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 187 - Warning: <img> lacks "alt" attribute
line 459 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 230 - Warning: <img> lacks "alt" attribute
line 459 column 273 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 273 - Warning: <img> lacks "alt" attribute
line 459 column 316 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 316 - Warning: <img> lacks "alt" attribute
line 459 column 359 - Warning: <img> proprietary attribute value "absmiddle"
line 459 column 359 - Warning: <img> lacks "alt" attribute
line 460 column 22 - Warning: <img> lacks "alt" attribute
line 460 column 63 - Warning: <img> lacks "alt" attribute
line 460 column 112 - Warning: <img> lacks "alt" attribute
line 460 column 162 - Warning: <img> lacks "alt" attribute
line 461 column 11 - Warning: <img> lacks "alt" attribute
line 471 column 15 - Warning: <img> lacks "alt" attribute
line 478 column 103 - Warning: <img> lacks "alt" attribute
line 478 column 350 - Warning: <img> lacks "alt" attribute
line 489 column 22 - Warning: <img> lacks "alt" attribute
line 489 column 63 - Warning: <img> lacks "alt" attribute
line 489 column 112 - Warning: <img> lacks "alt" attribute
line 489 column 161 - Warning: <img> lacks "alt" attribute
line 500 column 15 - Warning: <img> lacks "alt" attribute
line 518 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 518 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 518 column 244 - Warning: <img> proprietary attribute value "absmiddle"
line 527 column 25 - Warning: <img> lacks "alt" attribute
line 532 column 267 - Warning: <img> lacks "alt" attribute
line 149 column 50 - Warning: trimming empty <font>
line 512 column 17 - Warning: trimming empty <tr>
line 515 column 50 - Warning: trimming empty <font>
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 264 column 27 - Warning: <nobr> is not approved by W3C
line 287 column 47 - Warning: <nobr> is not approved by W3C
line 312 column 27 - Warning: <nobr> is not approved by W3C
line 326 column 47 - Warning: <nobr> is not approved by W3C
line 351 column 27 - Warning: <nobr> is not approved by W3C
line 370 column 47 - Warning: <nobr> is not approved by W3C
line 395 column 27 - Warning: <nobr> is not approved by W3C
line 397 column 157 - Warning: <table> proprietary attribute "height"
line 397 column 222 - Warning: <td> proprietary attribute "background"
line 397 column 318 - Warning: <td> proprietary attribute "background"
line 397 column 408 - Warning: <table> proprietary attribute "height"
line 397 column 488 - Warning: <td> proprietary attribute "background"
line 397 column 1443 - Warning: <td> proprietary attribute "background"
line 476 column 27 - Warning: <nobr> is not approved by W3C
line 505 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 229 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