Register - Login
Views: 99398180
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 02:50:26 PM
Jul - General Game/ROM Hacking - Super Mario 64 DS discoveries New poll - New thread - New reply
Pages: 1 2 Next newer thread | Next older thread
Deleted User
Collection of nobodies
Posted on 10-31-08 08:36:56 PM (last edited by Mega-Mario at 11-07-08 06:33 PM) Link | Quote
Hi,

Let's start SM64DS hacking with some discoveries I made.

DISCLAIMER :
ROM HACKING IS SOMETHING DELICATE AND COMPLEX WHERE YOU HAVE CHANCES TO CORRUPT YOUR ROM.
WHEN HACKING A ROM, ALWAYS HAVE A BACKUP OF THE ORIGINAL ROM !


All the 1-player game data (at least most of it) is located in the "data" folder. There are a lot of sub-folders, I don't know what all of them are.

I know that the "picture" sub-folder contains the textures for the paintings in the castle. For example, see this picture where I replaced the bob-omb painting with the Mario one. The painting files are BMD files. I don't know their format yet.



Next, the "stage" sub-folder contains the level data. Each level has a sub-folder here containing at least 5 files, like this :

xxxx.kcl : land model collision data
xxxx_yy_isc.bin : bottom screen map tilemap
xxxx_all.bmd : land model
xxxx_icg.bin : bottom screen map graphics
xxxx_icl.bin : bottom screen map palette

There may be more than 5 files, especially because a single level can have multiple rooms, involving multiple bottom screen map tilemaps (one per room).
(where xxxx is the name of the level sub-folder, and yy the room number)

I haven't found the format for all of these files yet, but I hope to do it soon.

Here's a picture where I replaced the bob-omb battlefield level with a test level. As you can see, the objects are still at the same place and the sky didn't change. I haven't found yet where the level header is stored.



The formats of the level files :

1. Bottom screen map palette files (xxxx_icl.bin)
These files aren't encoded. They are 512 bytes long, they contain 256 palette entries. Each palette entry is 15-bit BGR (the upper bit is unused), like this :

Bit 0-4 : Red
Bit 5-9 : Green
Bit 10-14 : Blue
Bit 15 : unused

2. Bottom screen map graphics files (xxxx_icg.bin)
These files are LZ77-encoded. The first byte is 0x10, the 3 next bytes are the decompressed data length, in little-endian format.
Once the data is uncompressed, each byte (pixel) corresponds to a palette entry, for example a value of 0 corresponds to the 1st palette entry, a value of 1 corresponds to the 2nd palette entry, ...
I don't know if the pixels are organized in tiles or not. The decompressed data is 65536 bytes long, so the image size is probably 256x256 pixels.



Here's what's to find :
1. Where the level headers are stored, so we'll be able to move the objects, change the sky and the music, ...
2. The formats of the level files
3. Where the level names are stored

Read the further posts for more info.
Any info is welcome !

If you can, help me locating the level headers ! They can be either :
-Stored in a file for each level
-All stored in one file
-Stored elsewhere in the ROM (not files)
-Dynamically generated when starting the levels


____________________


===================
[Posted by Mega-Mario]
(opacity disabled for image visibility)
Stevoisiak
Member
Level: 38


Posts: 135/283
EXP: 345497
For next: 24950

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 10-31-08 09:02:12 PM Link | Quote
This is probably a dumb question, but since Tile Molester can decode the graphics, why not use it to help decode the graphics?
Deleted User
Collection of nobodies
Posted on 10-31-08 09:25:53 PM (last edited by Mega-Mario at 10-31-08 06:26 PM) Link | Quote
Originally posted by Zophar Domain
Tile Molester is the next generation of tile editors. It has compatibility for GameBoy, NES, SNES, Master System, Genesis, TG-16, NeoGeo, Virtual Boy, Wonderswan, X68000, and Nintendo 64.


Here I'm talking about SM64DS. Tile Molester isn't compatible with the Nintendo DS (afaik). Plus I can't test it, when I download it, there's no executable, only a .jar containing lots of .class files, and folders containing images and docs.

____________________


===================
[Posted by Mega-Mario]
paulguy

Green Birdo
Level: 93


Posts: 109/2294
EXP: 8025844
For next: 26966

Since: 09-14-07

From: Buffalo, NY

Since last post: 9.7 years
Last activity: 9.6 years

Posted on 10-31-08 10:47:25 PM Link | Quote
.jar files can act as an executable. just run it with

java -jar <filename>



If it's just a linear list of palette indexes, then even something like photoshop should open them, if you can get the palette to import (it's just RGBX5551, so it shouldn't be any issue.).

As for any practical hacking shit, I can't provide any other help, sorry. D:
Deleted User
Collection of nobodies
Posted on 10-31-08 10:59:33 PM Link | Quote
I don't have this java thing. When I type java in cmd, it tells me java isn't a program. BTW, I think this is a little off-topic.

If you can open the graphics with Photoshop, then provide a screenshot. But I severely doubt of it because the graphics files are LZ77-encoded. You can still extract them with an old version of Nitro Explorer that has a "Extract LZSS" option, it should work.

I don't force you to provide any help for SM64DS hacking.
When I've finished my NSMB editor, I'll maybe design a tool for SM64DS. But SM64DS is a 3D game, so modifying it will be harder than modifying NSMB.

____________________


===================
[Posted by Mega-Mario]
Tanks

360? Yessum.
Level: 121


Posts: 1569/4170
EXP: 19792741
For next: 263955

Since: 07-10-07

From: VA

Since last post: 9.5 years
Last activity: 9.5 years

Posted on 10-31-08 11:15:57 PM Link | Quote

Originally posted by Mega-Mario
Tile Molester isn't compatible with the Nintendo DS (afaik).


WHAT.

. . .

Yes it is... I've used it with NSMB MANY TIMES.


____________________

Joe
Common spammer
🍬
Level: 111


Posts: 573/3392
EXP: 14489481
For next: 378879

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 12 hours

Posted on 11-01-08 05:32:48 AM Link | Quote
Tile Molester has a lot of problems with byte ordering. It seems to assume all color values are being copied from a byteswapped N64 ROM, making its abilities to import 16-bit color values useless. (This also breaks 16, 24, and 32-bit image editing. Tile Molester is in serious need of an update or replacement.)

Mega-Mario: You need to get Java. Here.

____________________
モノ江
Monoe
Deleted User
Collection of nobodies
Posted on 11-01-08 09:06:00 AM (last edited by Mega-Mario at 11-01-08 06:43 AM) Link | Quote
Tankenstine : Okay, I didn't know. Thank you.

Joe : Thank you too. I'll try intalling Java and tell you.

EDIT : I just tested, I couldn't get it loading the palette, because it expects the palette to be either part of the current file, or in a savestate file. This can be fixed by pasting the palette at the end of the graphics file with an hex editor, what I just did. After resizing the canvas to 32 columns, I finally got the image showing right. Here's a picture :



EDIT2 : this confirms what I said in the first post, the image size is 256x256 pixels. And this invalidates what Joe said about Tile Molester. For more info, PM me.

____________________


===================
[Posted by Mega-Mario]
(opacity disabled for image visibility)
wowfunhappy
Member
Level: 16


Posts: 32/40
EXP: 18487
For next: 1769

Since: 09-10-07


Since last post: 12.9 years
Last activity: 12.9 years

Posted on 11-01-08 02:40:11 PM Link | Quote
Originally posted by Mega-Mario


Here's a picture where I replaced the bob-omb battlefield level with a test level. As you can see, the objects are still at the same place and the sky didn't change. I haven't found yet where the level header is stored.






I've tried to do something similarity in the past- replace the "Castle_main" (Inside Castle, probably) stage with the "Koopa_1_map", or something similar (Bowser in the Dark World, probably). When ever I do so, when I go to test the game, the game starts and I can see the main menu and play minigames, but as soon as I choose adventure and load a file or start a new game, I get the white screen of death.

Stevoisiak
Member
Level: 38


Posts: 138/283
EXP: 345497
For next: 24950

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 11-01-08 04:00:52 PM Link | Quote
Originally posted by wowfunhappy
I've tried to do something similarity in the past- replace the "Castle_main" (Inside Castle, probably) stage with the "Koopa_1_map", or something similar (Bowser in the Dark World, probably). When ever I do so, when I go to test the game, the game starts and I can see the main menu and play minigames, but as soon as I choose adventure and load a file or start a new game, I get the white screen of death.



Well, I see a few reasons why you may have had trouble.

1. He used the test level, which is accesable by code, so messing with it probably doesn't affect the game too much
2. Maybe certain objects crashed it. Like The paintings in the castle
3. Could it have been the outside castle, where you start the game that you edited?
4. Or, maybe you just did something wrong. Rom hacking is a pretty comlex thing after all.
Sails
2800
as a video game‎‎‎‏‏‎ grows old its content and‏‏‎ internal logic‏‏‎ deteriorateÿ
Level: 102


Posts: 1302/2803
EXP: 10913601
For next: 176366

Since: 07-04-07

Pronouns: He/Him
From: MA

Since last post: 111 days
Last activity: 19 days

Posted on 11-01-08 04:24:25 PM Link | Quote
Originally posted by Stevoisiak
Originally posted by wowfunhappy
I've tried to do something similarity in the past- replace the "Castle_main" (Inside Castle, probably) stage with the "Koopa_1_map", or something similar (Bowser in the Dark World, probably). When ever I do so, when I go to test the game, the game starts and I can see the main menu and play minigames, but as soon as I choose adventure and load a file or start a new game, I get the white screen of death.



Well, I see a few reasons why you may have had trouble.

1. He used the test level, which is accesable by code, so messing with it probably doesn't affect the game too much
2. Maybe certain objects crashed it. Like The paintings in the castle
3. Could it have been the outside castle, where you start the game that you edited?
4. Or, maybe you just did something wrong. Rom hacking is a pretty comlex thing after all.

Or he used something like ndstool instead of nitroexplorer which tends to blow up pointers.

____________________
Layout by Kattwah
Stevoisiak
Member
Level: 38


Posts: 140/283
EXP: 345497
For next: 24950

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 11-01-08 04:55:44 PM Link | Quote
Originally posted by Sonicandtails
Originally posted by Stevoisiak
Originally posted by wowfunhappy
I've tried to do something similarity in the past- replace the "Castle_main" (Inside Castle, probably) stage with the "Koopa_1_map", or something similar (Bowser in the Dark World, probably). When ever I do so, when I go to test the game, the game starts and I can see the main menu and play minigames, but as soon as I choose adventure and load a file or start a new game, I get the white screen of death.



Well, I see a few reasons why you may have had trouble.

1. He used the test level, which is accesable by code, so messing with it probably doesn't affect the game too much
2. Maybe certain objects crashed it. Like The paintings in the castle
3. Could it have been the outside castle, where you start the game that you edited?
4. Or, maybe you just did something wrong. Rom hacking is a pretty comlex thing after all.

Or he used something like ndstool instead of nitroexplorer which tends to blow up pointers.

That would fall under #4 I believe. There are plenty of things that can go wrong in ROM hacking. These things weren't designed to be played around with.
Deleted User
Collection of nobodies
Posted on 11-01-08 05:05:24 PM (last edited by Mega-Mario at 11-01-08 03:49 PM) Link | Quote
Wowfunhappy :
Originally posted by Sonicandtails
Or he used something like ndstool instead of nitroexplorer which tends to blow up pointers.

To change files in a DS ROM, I use Nitro Explorer. The last version works fine. Thank you Treeki for this very useful tool.

Anyway, you shouldn't do stupid hacks like replacing the castle inside by a boss room. You KNOW that it will break the game, or at least make it unplayable because you can't access the various stages. Plus you don't even know what the levels you swapped are. To know what they are, swap them with bombhei_map (bob-omb battlefield), then go to the bob-omb battlefield.

EDIT : I'll add a disclaimer in the first post.


____________________


===================
[Posted by Mega-Mario]
Boing
450
Level: 46


Posts: 128/458
EXP: 709714
For next: 2060

Since: 12-16-07

From: Michigan, US

Since last post: 11.1 years
Last activity: 11.1 years

Posted on 11-01-08 08:33:01 PM Link | Quote


<object width="80" height="185">

<embed src="http://bbsplat.googlepages.com/bounce.swf" width="80" height="185">
</embed>
</object>


I like how stevoisiak acts like he knows what he's talking about when he probably doesn't.

____________________

Joe
Common spammer
🍬
Level: 111


Posts: 575/3392
EXP: 14489481
For next: 378879

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 12 hours

Posted on 11-01-08 08:42:05 PM Link | Quote
Originally posted by Mega-Mario
And this invalidates what Joe said about Tile Molester.
My apologies, I seem to have gotten some things mixed up. Palettes are not affected by the byte-ordering bug.

However, I have had issues with importing palettes from NDS ROMs before. I tried opening the door graphics in NSMB and some of the dark brown palette entries were bright blue. (The rest were okay.)

I notice that two of the dark colored entries in your image are showing up as bright green.

____________________
モノ江
Monoe
Deleted User
Collection of nobodies
Posted on 11-01-08 09:42:30 PM Link | Quote
Joe : maybe there are green colors in the palette, but the image is correct. But Tile Molester may have bugs that I don't know.

Boing : Stevoisiak was just telling how wowfunhappy could have corrupted his ROM.

____________________


===================
[Posted by Mega-Mario]
Joe
Common spammer
🍬
Level: 111


Posts: 576/3392
EXP: 14489481
For next: 378879

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 12 hours

Posted on 11-01-08 09:44:59 PM Link | Quote
Try opening different graphics, eventually you'll find some affected by the palette loading bug.

____________________
モノ江
Monoe
Deleted User
Collection of nobodies
Posted on 11-01-08 10:00:22 PM Link | Quote
Okay. I believe you.

____________________


===================
[Posted by Mega-Mario]
Stevoisiak
Member
Level: 38


Posts: 144/283
EXP: 345497
For next: 24950

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 11-01-08 11:01:05 PM (last edited by Stevoisiak at 11-01-08 08:02 PM) Link | Quote
Originally posted by Boing
I like how stevoisiak acts like he knows what he's talking about when he probably doesn't.

Well, it's kind of a bit of a talent. Even though most of this is really confusing, I have a knack for being able to figure things out. This talent led me to emulators and hacking in the first place!

On Topic: I still find it hard to believe that swapping 1 file actually changed all the objects with no problems whats so ever. Try that with other levels. I have a supspition that the Test level only worked so well since it was designed for experimentation.
Deleted User
Collection of nobodies
Posted on 11-02-08 08:56:51 AM Link | Quote
Normally, you should able to swap any levels together, as logn as you don't touch the castle.

____________________


===================
[Posted by Mega-Mario]
Pages: 1 2 Next newer thread | Next older thread
Jul - General Game/ROM Hacking - Super Mario 64 DS discoveries New poll - New thread - New reply


Rusted Logic

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

32 database queries, 5 query cache hits.
Query execution time:  0.102268 seconds
Script execution time:  0.033387 seconds
Total render time:  0.135656 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 320 - 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 202 - 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 50 - Warning: missing </font> before </td>
line 149 column 131 - Warning: missing </font> before </table>
line 155 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 156 column 25 - Warning: missing <tr>
line 163 column 33 - Warning: missing <tr>
line 164 column 119 - Warning: unescaped & or unknown entity "&postid"
line 166 column 241 - Warning: missing <tr>
line 166 column 316 - Warning: missing <tr>
line 228 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 230 column 9 - Warning: missing <tr>
line 248 column 13 - Warning: missing <tr>
line 249 column 99 - Warning: unescaped & or unknown entity "&postid"
line 253 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 254 column 25 - Warning: missing <tr>
line 261 column 33 - Warning: missing <tr>
line 262 column 119 - Warning: unescaped & or unknown entity "&postid"
line 268 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 270 column 9 - Warning: missing <tr>
line 288 column 13 - Warning: missing <tr>
line 289 column 99 - Warning: unescaped & or unknown entity "&postid"
line 298 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 299 column 25 - Warning: missing <tr>
line 306 column 33 - Warning: missing <tr>
line 307 column 119 - Warning: unescaped & or unknown entity "&postid"
line 316 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 318 column 9 - Warning: missing <tr>
line 336 column 13 - Warning: missing <tr>
line 337 column 99 - Warning: unescaped & or unknown entity "&postid"
line 339 column 311 - Warning: missing </font> before <blockquote>
line 340 column 340 - Warning: inserting implicit <font>
line 340 column 340 - Warning: missing </font> before <hr>
line 340 column 407 - Warning: inserting implicit <font>
line 340 column 407 - Warning: missing </font> before <hr>
line 340 column 472 - Warning: inserting implicit <font>
line 341 column 1 - Warning: inserting implicit <font>
line 341 column 1 - Warning: missing </font> before <hr>
line 347 column 749 - Warning: discarding unexpected </td>
line 350 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 352 column 9 - Warning: missing <tr>
line 370 column 13 - Warning: missing <tr>
line 371 column 99 - Warning: unescaped & or unknown entity "&postid"
line 373 column 73 - Warning: <style> isn't allowed in <td> elements
line 373 column 9 - Info: <td> previously mentioned
line 378 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 379 column 25 - Warning: missing <tr>
line 386 column 33 - Warning: missing <tr>
line 387 column 119 - Warning: unescaped & or unknown entity "&postid"
line 389 column 241 - Warning: missing <tr>
line 389 column 316 - Warning: missing <tr>
line 399 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 401 column 9 - Warning: missing <tr>
line 419 column 13 - Warning: missing <tr>
line 420 column 99 - Warning: unescaped & or unknown entity "&postid"
line 435 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 437 column 9 - Warning: missing <tr>
line 455 column 13 - Warning: missing <tr>
line 456 column 99 - Warning: unescaped & or unknown entity "&postid"
line 469 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 471 column 9 - Warning: missing <tr>
line 489 column 13 - Warning: missing <tr>
line 490 column 99 - Warning: unescaped & or unknown entity "&postid"
line 492 column 73 - Warning: <style> isn't allowed in <td> elements
line 492 column 9 - Info: <td> previously mentioned
line 492 column 4181 - Warning: missing <tr>
line 501 column 5739 - Warning: discarding unexpected </font>
line 501 column 5884 - Warning: discarding unexpected </td>
line 504 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 506 column 9 - Warning: missing <tr>
line 524 column 13 - Warning: missing <tr>
line 525 column 99 - Warning: unescaped & or unknown entity "&postid"
line 539 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 540 column 25 - Warning: missing <tr>
line 547 column 33 - Warning: missing <tr>
line 548 column 119 - 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 99 - Warning: unescaped & or unknown entity "&postid"
line 582 column 73 - Warning: <link> isn't allowed in <td> elements
line 582 column 9 - Info: <td> previously mentioned
line 582 column 297 - Warning: missing </font> before <p>
line 583 column 334 - Warning: inserting implicit <font>
line 584 column 376 - Warning: discarding unexpected <param>
line 587 column 576 - Warning: discarding unexpected </font>
line 587 column 583 - Warning: inserting implicit <p>
line 591 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 593 column 9 - Warning: missing <tr>
line 611 column 13 - Warning: missing <tr>
line 612 column 99 - Warning: unescaped & or unknown entity "&postid"
line 614 column 73 - Warning: <style> isn't allowed in <td> elements
line 614 column 9 - Info: <td> previously mentioned
line 621 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 622 column 25 - Warning: missing <tr>
line 629 column 33 - Warning: missing <tr>
line 630 column 119 - Warning: unescaped & or unknown entity "&postid"
line 636 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 638 column 9 - Warning: missing <tr>
line 656 column 13 - Warning: missing <tr>
line 657 column 99 - Warning: unescaped & or unknown entity "&postid"
line 659 column 73 - Warning: <style> isn't allowed in <td> elements
line 659 column 9 - Info: <td> previously mentioned
line 662 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 663 column 25 - Warning: missing <tr>
line 670 column 33 - Warning: missing <tr>
line 671 column 119 - Warning: unescaped & or unknown entity "&postid"
line 675 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 677 column 9 - Warning: missing <tr>
line 695 column 13 - Warning: missing <tr>
line 696 column 99 - Warning: unescaped & or unknown entity "&postid"
line 703 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 704 column 25 - Warning: missing <tr>
line 711 column 33 - Warning: missing <tr>
line 712 column 119 - Warning: unescaped & or unknown entity "&postid"
line 716 column 17 - Warning: missing <tr>
line 716 column 17 - Warning: discarding unexpected <table>
line 719 column 35 - Warning: missing <tr>
line 719 column 96 - Warning: unescaped & or unknown entity "&page"
line 719 column 50 - Warning: missing </font> before </td>
line 719 column 131 - Warning: missing </font> before </table>
line 721 column 35 - Warning: missing <tr>
line 721 column 50 - Warning: missing </font> before </td>
line 722 column 37 - Warning: unescaped & or unknown entity "&id"
line 721 column 202 - Warning: missing </font> before </table>
line 723 column 17 - Warning: discarding unexpected </textarea>
line 723 column 28 - Warning: discarding unexpected </form>
line 723 column 35 - Warning: discarding unexpected </embed>
line 723 column 43 - Warning: discarding unexpected </noembed>
line 723 column 53 - Warning: discarding unexpected </noscript>
line 723 column 64 - Warning: discarding unexpected </noembed>
line 723 column 74 - Warning: discarding unexpected </embed>
line 723 column 82 - Warning: discarding unexpected </table>
line 723 column 90 - Warning: discarding unexpected </table>
line 725 column 9 - Warning: missing </font> before <table>
line 737 column 25 - Warning: discarding unexpected </font>
line 746 column 57 - Warning: discarding unexpected </font>
line 724 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 159 column 37 - Warning: <img> lacks "alt" attribute
line 178 column 1092 - Warning: <img> lacks "alt" attribute
line 195 column 2079 - Warning: <img> lacks "alt" attribute
line 226 column 3713 - Warning: <img> proprietary attribute value "absmiddle"
line 226 column 3713 - Warning: <img> lacks "alt" attribute
line 226 column 3844 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 226 column 3892 - Warning: <font> attribute "size" has invalid value "0.5"
line 233 column 22 - Warning: <img> lacks "alt" attribute
line 233 column 63 - Warning: <img> lacks "alt" attribute
line 233 column 112 - Warning: <img> lacks "alt" attribute
line 233 column 162 - Warning: <img> lacks "alt" attribute
line 244 column 15 - Warning: <img> lacks "alt" attribute
line 257 column 37 - Warning: <img> lacks "alt" attribute
line 266 column 728 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 272 column 11 - Warning: <img> lacks "alt" attribute
line 273 column 22 - Warning: <img> lacks "alt" attribute
line 273 column 63 - Warning: <img> lacks "alt" attribute
line 273 column 112 - Warning: <img> lacks "alt" attribute
line 273 column 161 - Warning: <img> lacks "alt" attribute
line 274 column 11 - Warning: <img> lacks "alt" attribute
line 284 column 15 - Warning: <img> lacks "alt" attribute
line 302 column 37 - Warning: <img> lacks "alt" attribute
line 314 column 805 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 320 column 11 - Warning: <img> lacks "alt" attribute
line 321 column 23 - Warning: <img> lacks "alt" attribute
line 321 column 64 - Warning: <img> lacks "alt" attribute
line 321 column 113 - Warning: <img> lacks "alt" attribute
line 321 column 163 - Warning: <img> lacks "alt" attribute
line 322 column 11 - Warning: <img> lacks "alt" attribute
line 332 column 15 - Warning: <img> lacks "alt" attribute
line 347 column 663 - Warning: <img> lacks "alt" attribute
line 355 column 23 - Warning: <img> lacks "alt" attribute
line 355 column 64 - Warning: <img> lacks "alt" attribute
line 355 column 113 - Warning: <img> lacks "alt" attribute
line 355 column 163 - Warning: <img> lacks "alt" attribute
line 356 column 11 - Warning: <img> lacks "alt" attribute
line 366 column 15 - Warning: <img> lacks "alt" attribute
line 382 column 37 - Warning: <img> lacks "alt" attribute
line 395 column 863 - Warning: <img> lacks "alt" attribute
line 397 column 1193 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 397 column 1241 - Warning: <font> attribute "size" has invalid value "0.5"
line 404 column 22 - Warning: <img> lacks "alt" attribute
line 404 column 63 - Warning: <img> lacks "alt" attribute
line 404 column 112 - Warning: <img> lacks "alt" attribute
line 404 column 162 - Warning: <img> lacks "alt" attribute
line 415 column 15 - Warning: <img> lacks "alt" attribute
line 426 column 387 - Warning: <img> lacks "alt" attribute
line 440 column 22 - Warning: <img> lacks "alt" attribute
line 440 column 63 - Warning: <img> lacks "alt" attribute
line 440 column 112 - Warning: <img> lacks "alt" attribute
line 440 column 162 - Warning: <img> lacks "alt" attribute
line 451 column 15 - Warning: <img> lacks "alt" attribute
line 473 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 16 - Warning: <img> lacks "alt" attribute
line 473 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 59 - Warning: <img> lacks "alt" attribute
line 473 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 102 - Warning: <img> lacks "alt" attribute
line 473 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 145 - Warning: <img> lacks "alt" attribute
line 473 column 188 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 188 - Warning: <img> lacks "alt" attribute
line 473 column 231 - Warning: <img> proprietary attribute value "absmiddle"
line 473 column 231 - Warning: <img> lacks "alt" attribute
line 474 column 23 - Warning: <img> lacks "alt" attribute
line 474 column 64 - Warning: <img> lacks "alt" attribute
line 474 column 113 - Warning: <img> lacks "alt" attribute
line 474 column 163 - Warning: <img> lacks "alt" attribute
line 475 column 11 - Warning: <img> lacks "alt" attribute
line 485 column 15 - Warning: <img> lacks "alt" attribute
line 501 column 5673 - Warning: <img> proprietary attribute value "absmiddle"
line 501 column 5673 - Warning: <img> lacks "alt" attribute
line 509 column 22 - Warning: <img> lacks "alt" attribute
line 509 column 63 - Warning: <img> lacks "alt" attribute
line 509 column 112 - Warning: <img> lacks "alt" attribute
line 509 column 162 - Warning: <img> lacks "alt" attribute
line 520 column 15 - Warning: <img> lacks "alt" attribute
line 543 column 37 - Warning: <img> lacks "alt" attribute
line 557 column 962 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 563 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 563 column 15 - Warning: <img> lacks "alt" attribute
line 563 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 563 column 58 - Warning: <img> lacks "alt" attribute
line 563 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 563 column 101 - Warning: <img> lacks "alt" attribute
line 563 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 563 column 144 - Warning: <img> lacks "alt" attribute
line 563 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 563 column 187 - 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 161 - Warning: <img> lacks "alt" attribute
line 565 column 11 - Warning: <img> lacks "alt" attribute
line 575 column 15 - Warning: <img> lacks "alt" attribute
line 582 column 163 - Warning: <table> attribute "height" has invalid value "350px"
line 588 column 786 - Warning: <img> lacks "alt" attribute
line 588 column 884 - Warning: <img> lacks "alt" attribute
line 596 column 23 - Warning: <img> lacks "alt" attribute
line 596 column 64 - Warning: <img> lacks "alt" attribute
line 596 column 113 - Warning: <img> lacks "alt" attribute
line 596 column 163 - Warning: <img> lacks "alt" attribute
line 597 column 11 - Warning: <img> lacks "alt" attribute
line 607 column 15 - Warning: <img> lacks "alt" attribute
line 618 column 1828 - Warning: <img> proprietary attribute value "absmiddle"
line 618 column 1828 - Warning: <img> lacks "alt" attribute
line 625 column 37 - Warning: <img> lacks "alt" attribute
line 634 column 409 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 641 column 23 - Warning: <img> lacks "alt" attribute
line 641 column 64 - Warning: <img> lacks "alt" attribute
line 641 column 113 - Warning: <img> lacks "alt" attribute
line 641 column 163 - Warning: <img> lacks "alt" attribute
line 642 column 11 - Warning: <img> lacks "alt" attribute
line 652 column 15 - Warning: <img> lacks "alt" attribute
line 666 column 37 - Warning: <img> lacks "alt" attribute
line 673 column 213 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 680 column 22 - Warning: <img> lacks "alt" attribute
line 680 column 63 - Warning: <img> lacks "alt" attribute
line 680 column 112 - Warning: <img> lacks "alt" attribute
line 680 column 162 - Warning: <img> lacks "alt" attribute
line 691 column 15 - Warning: <img> lacks "alt" attribute
line 707 column 37 - Warning: <img> lacks "alt" attribute
line 714 column 286 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 722 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 722 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 722 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 731 column 25 - Warning: <img> lacks "alt" attribute
line 736 column 267 - Warning: <img> lacks "alt" attribute
line 340 column 472 - Warning: trimming empty <font>
line 492 column 4450 - Warning: trimming empty <font>
line 501 column 5732 - Warning: trimming empty <i>
line 587 column 583 - Warning: trimming empty <p>
line 716 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 164 column 47 - Warning: <nobr> is not approved by W3C
line 166 column 119 - Warning: <table> proprietary attribute "background"
line 249 column 27 - Warning: <nobr> is not approved by W3C
line 262 column 47 - Warning: <nobr> is not approved by W3C
line 289 column 27 - Warning: <nobr> is not approved by W3C
line 307 column 47 - Warning: <nobr> is not approved by W3C
line 337 column 27 - Warning: <nobr> is not approved by W3C
line 339 column 73 - Warning: <table> proprietary attribute "height"
line 371 column 27 - Warning: <nobr> is not approved by W3C
line 387 column 47 - Warning: <nobr> is not approved by W3C
line 389 column 119 - Warning: <table> proprietary attribute "background"
line 420 column 27 - Warning: <nobr> is not approved by W3C
line 456 column 27 - Warning: <nobr> is not approved by W3C
line 490 column 27 - Warning: <nobr> is not approved by W3C
line 492 column 4153 - Warning: <table> proprietary attribute "height"
line 525 column 27 - Warning: <nobr> is not approved by W3C
line 548 column 47 - Warning: <nobr> is not approved by W3C
line 580 column 27 - Warning: <nobr> is not approved by W3C
line 582 column 163 - Warning: <table> proprietary attribute "height"
line 612 column 27 - Warning: <nobr> is not approved by W3C
line 630 column 47 - Warning: <nobr> is not approved by W3C
line 657 column 27 - Warning: <nobr> is not approved by W3C
line 671 column 47 - Warning: <nobr> is not approved by W3C
line 696 column 27 - Warning: <nobr> is not approved by W3C
line 712 column 47 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 313 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