Register - Login
Views: 99379221
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 10:47:26 PM
Jul - SM64 Hacking (Archive) - Stuff inside the checksum protected area (Title Screen, etc.) New poll - New thread - New reply
Pages: 1 2 3 Next newer thread | Next older thread
BigBrain
Member
Level: 22


Posts: 13/85
EXP: 55267
For next: 3083

Since: 09-10-08


Since last post: 8.8 years
Last activity: 6.7 years

Posted on 01-02-09 03:03:02 PM Link | Quote
Originally posted by sennar2006
no guys my problem is different.. I would change the text SUPER MARIO 64 in SUPER MARIO WP, so I must change 64 in WP. I must not use the text in a level. what I do?

Eh no, the thing we "discussed" was wether the SM64 text is a 3d model or a text*. In short: Replacing text is easy, replacing models is not
Even with the comming model importer you still would have to extract the SM64 Logo model from the ROM and edit it with Blender (or some other 3d modeller). But as the model importer is not ready yet, you'd even have to replace the model data manually with a hex editor and I guess that would be a /bit/ too complicate.
As I said though, it may be easier to replace the model with a square that is textured with an alternative logo (could still be quite hard to do though).

*The thing about the SM64 logo in levels was just the "proof" that it's a model.
Kenshi
Member
Level: 21


Posts: 37/75
EXP: 47437
For next: 2506

Since: 09-15-07

From: NY

Since last post: 6.9 years
Last activity: 6.2 years

Posted on 01-05-09 01:24:43 AM (last edited by mortalkenshi2 at 01-04-09 10:26 PM) Link | Quote
Originally posted by VL-Tone
Even if we did manage to use the side view camera, the problem would be that it would rotate with Mario. So the effect would work when Mario walks in parallel to the 2d SMB level, but any deviation from a straight path would make the camera rotate and thus ruining the effect. Furthermore, when Mario would change direction (from "right" to "left" as seen in SMB) the camera would end up showing the other side of the level (mirrored) and Mario still going right.

To make a 2.5d level, the camera would need to stay perpendicular to the level, not to Mario. I guess that we're getting closer to find more details on how the lakitu cam works, and that we could eventually program such a camera setting, but for now it doesn't seem like a simple hack can achieve this.




Sorry to reply late to this but have been to busy to post.


I think, that there is probably a way you can make it the way it should be. I think that you can make object dissapearance in a way so that, there is the camera, a block and then mario and another block. That way he cannot deviate from the straight path. Then just find a way to make the objects dissapear like they do depending on the distance from the camera. I'll try to make a diagram of what I mean when I can.

[A temporary Diagram below]

From an Over head view, so if your above looking down. y
________________
------- Mario
________________

Like this mario cannot walk out, and then make those 2 lines (which would be immovable blocks I guess) not visible to the person playing. Very complicated and I will try to make a better diagram when I can.


____________________



Doogie1012
Member
Level: 15


Posts: 24/35
EXP: 14542
For next: 1842

Since: 10-21-08


Since last post: 11.6 years
Last activity: 9.2 years

Posted on 01-05-09 02:15:40 AM Link | Quote
Even if there was a block to stop him from deviating from the path, if the player walks up the camera will still go into that direction because Mario still changes direction even if something is blocking his path.
Pinhead
Random nobody
Level: 7


Posts: 5/6
EXP: 1029
For next: 419

Since: 11-16-08


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 02-06-09 07:20:33 AM Link | Quote
When i try to change the "1996 Nintendo" in the first screen, but also "PRESS START" in the second screen, after use a tool to recalculate CRC, it only shows a black screen instead of the first one; after it runs normally. What can i do?
Stevoisiak
Member
Level: 38


Posts: 215/283
EXP: 345475
For next: 24972

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 02-06-09 06:40:22 PM Link | Quote
Originally posted by Pinhead
When i try to change the "1996 Nintendo" in the first screen, but also "PRESS START" in the second screen, after use a tool to recalculate CRC, it only shows a black screen instead of the first one; after it runs normally. What can i do?

Try changing one at a time first. Maybe you made an error in changing one of them.
Pinhead
Random nobody
Level: 7


Posts: 6/6
EXP: 1029
For next: 419

Since: 11-16-08


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 02-06-09 07:59:09 PM Link | Quote
Originally posted by Stevoisiak
Originally posted by Pinhead
When i try to change the "1996 Nintendo" in the first screen, but also "PRESS START" in the second screen, after use a tool to recalculate CRC, it only shows a black screen instead of the first one; after it runs normally. What can i do?

Try changing one at a time first. Maybe you made an error in changing one of them.

Yes i tried just now; and so, using CHKSUM64.EXE to correct the CRC, it does nothing now (the emulator complains as i did not recalculate it). But i'm sure i did it well. Why me? -.-
Stevoisiak
Member
Level: 38


Posts: 216/283
EXP: 345475
For next: 24972

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 02-06-09 08:09:01 PM Link | Quote
Originally posted by Pinhead
Originally posted by Stevoisiak
Originally posted by Pinhead
When i try to change the "1996 Nintendo" in the first screen, but also "PRESS START" in the second screen, after use a tool to recalculate CRC, it only shows a black screen instead of the first one; after it runs normally. What can i do?

Try changing one at a time first. Maybe you made an error in changing one of them.

Yes i tried just now; and so, using CHKSUM64.EXE to correct the CRC, it does nothing now (the emulator complains as i did not recalculate it). But i'm sure i did it well. Why me? -.-

Hmmmm. Make a PPF patch of the ROM file thats giving you problems and someone can see whats wrong.
gamekrazzy
Member
Level: 32


Posts: 147/199
EXP: 194425
For next: 12017

Since: 03-06-09


Since last post: 10.4 years
Last activity: 8.6 years

Posted on 06-28-09 02:50:07 AM Link | Quote
This is an interesting thing I found while working on my hack.
Turns out that the levels that do not have act selections copy there acts from the previous level.

Castle grounds in the list of bytes after 0xE8D98 has the byte 00.
I tested this with other non act selecter levels such as Peaches slide as well which has a byte of 13.

by making one level with an act selecter warp to a level without it, if that level were on act 1, the objects I had on act 1 in the other level would appear.

So the same would go for act 2.

I tested it, and it did the same thing with the byte 13.

Here is a video demenstrating this find. (Note: The levels look like the same level but are different. I had to use multiple levels to fix a camera glitch for the underground.)

<object width="425" height="344"><embed src="http://www.youtube.com/v/cq3K1zToIgQ&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

____________________
Gamekrazzy*
messiaen
Catgirl
Level: 68


Posts: 617/1085
EXP: 2594036
For next: 134764

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 07-06-09 02:07:24 PM (last edited by messiaen at 07-06-09 11:08 AM) Link | Quote
While trying to solve a bug in "The Missing Stars" (Goomba on the roof in the first area) I found the trajectories of MIPS the Rabbit. There's a table for its trajectories at offset 0x79068 of the Inside Castle 0x07 bank.

Here's the code that loads this base address. Easiest solution will be to move it to extended memory so MIPS can work on all levels:

802F85FC: LUI A0, 0x0708
802F8600: JAL 0x80277F50 ; segmented_to_virtual function
802F8604: ADDIU A0, A0, 0x9068 ; I hate you signed addition

Here's the table: (0xE84B6F in ROM)

0x07078EF8
0x07078F2C
0x07078F68
0x07078F7C
0x07078FA8
0x07078FD4
0x07078FE8
0x07079004
0x07079020
0x07079044

Each of these entries points to a different trajetory. Seems like they are somehow combined to form MIPS movement (though one would have to plot them all in the Inside Castle level (basement area) to confirm this).
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 517/621
EXP: 1135502
For next: 21617

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 09-09-09 05:42:33 AM (last edited by VL-Tone at 09-09-09 02:42 AM) Link | Quote
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Our good friend yoshiman (aka yoshielectron), the super SM64 RAM hacker, stumbled on the table that determines the content of "!" boxes.

You can check out his video where he tells us where in RAM the table is located in the different versions, and shows us some cool things to do with it.
<object width="425" height="344"><embed src="http://www.youtube.com/v/QkgwHezZk54&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

Of course, being a ROM hacker, what interests me is where the table is in the ROM. Turns out it's in the checksum protected area at 0x0EBBA0.

Here's the table content:


00 00 00 87 13 00 3D B8 -- Wing Cap

01 00 00 86 13 00 3D D8 -- Metal Cap
02 00 00 88 13 00 3E 1C -- Vanish Cap
03 00 00 BE 13 00 1F 3C -- Koopa Shell
04 00 00 74 13 00 09 A4 -- One Coin
05 00 00 00 13 00 09 64 -- Three Coins
06 00 00 00 13 00 09 84 -- Ten Coins
07 00 00 D4 13 00 3F DC -- 1up Mushroom Static
08 00 00 7A 13 00 07 F8 -- Star 0
09 00 00 D4 13 00 40 10 -- 1up Mushroom Runs Away
0A 00 01 7A 13 00 07 F8 -- Star 1
0B 00 02 7A 13 00 07 F8 -- Star 2
0C 00 03 7A 13 00 07 F8 -- Star 3
0D 00 04 7A 13 00 07 F8 -- Star 4
0E 00 05 7A 13 00 07 F8 -- Star 5



The first byte is the byte used by the second behavior parameter of the "!" box itself. Bytes 2-3 are behavior parameters you want to pass to the object being spawned by the box (for example, byte 3 determines the star number for the star objects). Byte 4 is the model ID, and the last 4 bytes are the behavior pointer.

If you put TT64 in hexadecimal mode you'll be able to find values for the model ID and behavior pointer that are suitable to spawn any object you want, as long as it's available in the level you plan to put the box in. (note: in TT64 0.5.x the first byte of the behavior pointer i.e. 0x13 is omitted).

Of course, as with other stuff in the checksum area, if you change something there you'll have to either:
-Disable the checksum (look in this thread to see how).
-Recalculate the checksum.
-Use an emulator that doesn't mind if the checksum fails.

Now if we were to relocate this table where we have more space, we could probably have up to 256 different kind of items available for "!" boxes.



____________________
MarIO0
Member
Level: 16


Posts: 4/43
EXP: 19156
For next: 1100

Since: 09-03-09


Since last post: 9.2 years
Last activity: 8.6 years

Posted on 09-09-09 04:44:07 PM (last edited by MarIO0 at 09-09-09 01:49 PM) Link | Quote
Originally posted by VL-Tone


Now if we were to relocate this table where we have more space, we could probably have up to 256 different kind of items available for "!" boxes.




The memory address of the table is loaded by the 2 instructions at 0x0x0007C8E0 (ROM).

I've tried to change it's location, but the emulator hangs after I break the box, and when I look at the memory in Nemu64, it looks like it didn't load the part of the ROM where I put the table.
messiaen
Catgirl
Level: 68


Posts: 636/1085
EXP: 2594036
For next: 134764

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 09-09-09 07:07:07 PM (last edited by messiaen at 09-09-09 04:08 PM) Link | Quote
Originally posted by MarIO0
Originally posted by VL-Tone


Now if we were to relocate this table where we have more space, we could probably have up to 256 different kind of items available for "!" boxes.




The memory address of the table is loaded by the 2 instructions at 0x0x0007C8E0 (ROM).

I've tried to change it's location, but the emulator hangs after I break the box, and when I look at the memory in Nemu64, it looks like it didn't load the part of the ROM where I put the table.


With this hack, you can easily set a region of the ROM to be loaded in extended memory hack. Just changing the pointer loaded in register A0 will work. When copying the table, remember that the last empty entry, indexed 0x63, is also part of it. If you remove it, any invalid value (not part of the table) for the box content will make the game stuck on an infinite loop.

The table can be expanded as much as you want, however you'll have to keep 0x63 as the last entry. This doesn't mean you can't use higher values than 0x63, this is what I mean:

[..]
62 00 04 7A 13 00 07 F8 -- Star 4
64 00 05 7A 13 00 07 F8 -- Star 5
65 00 05 7A 13 00 07 F8 -- Star 5
63 00 00 00 00 00 00 00 -- Last entry, empty box

That's because instead of multiplying the table index by the size of an entry lenght, the function uses an while loop to match the number to its content, so they don't have to be sequential.

Also, something important to keep in mind is that:

LUI A0, 0x8033
ADDIU A0, A0, 0x8BA0

is different from

LUI A0, 0x8033
ORI A0, A0, 0x8BA0

because of the signed addition. In the first case, A0 will be 0x80328BA0 while in the second case it will be 0x80338BA0. Not that this happens in this specific table case since the number being added is less than 0x8000, but it's always to good to be alert when pointers are loaded using LUI + ADDIU instead of LUI + ORI.
MarIO0
Member
Level: 16


Posts: 5/43
EXP: 19156
For next: 1100

Since: 09-03-09


Since last post: 9.2 years
Last activity: 8.6 years

Posted on 09-10-09 02:49:08 PM Link | Quote
Originally posted by messiaen
Originally posted by MarIO0
Originally posted by VL-Tone


Now if we were to relocate this table where we have more space, we could probably have up to 256 different kind of items available for "!" boxes.




The memory address of the table is loaded by the 2 instructions at 0x0x0007C8E0 (ROM).

I've tried to change it's location, but the emulator hangs after I break the box, and when I look at the memory in Nemu64, it looks like it didn't load the part of the ROM where I put the table.


With this hack, you can easily set a region of the ROM to be loaded in extended memory hack. Just changing the pointer loaded in register A0 will work. When copying the table, remember that the last empty entry, indexed 0x63, is also part of it. If you remove it, any invalid value (not part of the table) for the box content will make the game stuck on an infinite loop.

The table can be expanded as much as you want, however you'll have to keep 0x63 as the last entry. This doesn't mean you can't use higher values than 0x63, this is what I mean:

[..]
62 00 04 7A 13 00 07 F8 -- Star 4
64 00 05 7A 13 00 07 F8 -- Star 5
65 00 05 7A 13 00 07 F8 -- Star 5
63 00 00 00 00 00 00 00 -- Last entry, empty box

That's because instead of multiplying the table index by the size of an entry lenght, the function uses an while loop to match the number to its content, so they don't have to be sequential.

Also, something important to keep in mind is that:

LUI A0, 0x8033
ADDIU A0, A0, 0x8BA0

is different from

LUI A0, 0x8033
ORI A0, A0, 0x8BA0

because of the signed addition. In the first case, A0 will be 0x80328BA0 while in the second case it will be 0x80338BA0. Not that this happens in this specific table case since the number being added is less than 0x8000, but it's always to good to be alert when pointers are loaded using LUI + ADDIU instead of LUI + ORI.


I did manage to load the table in an unused but loaded part of the ROM shortly after my post.

About the ADDIU instruction, I had this problem (I'm very new to MIPS assembly, but fortunately it isn't very hard to learn since I'm already decent with x86 assembly). Also fortunately, ADDIU and ORI take the same parameters, so just changing the opcode works.

About the "Extended Memory support", it looks very interesting. I'll have to look at it

Also, what debugger/disassembler do you use? I use Nemu64 and IDA Pro, but Nemu64 can't load "extended" ROMs.
messiaen
Catgirl
Level: 68


Posts: 641/1085
EXP: 2594036
For next: 134764

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 09-13-09 04:12:34 PM Link | Quote
Haven't used any disassembler in a while, I mostly use an giant .txt file with the entire checksum-area disassembly dumped from Nemu and step-in through the code using the same emulator. When working on "The Missing Stars" hack I ocasionally used Project 64 1.4 debugger, but it isn't very practical compared to Nemu's.

You can run the extended ROM on Nemu if you use this modified version of Cellar Dweller's "alternate" extender. The normal extended ROM doesn't run because some data isn't aligned and Nemu seems to be the only emulator accurate enough to make an issue out of this. Toad's Tool 64 seems to run this 'aligned' ROM fine.
messiaen
Catgirl
Level: 68


Posts: 878/1085
EXP: 2594036
For next: 134764

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-13-10 02:38:13 PM Link | Quote
Lakitu's data:

RAM 0x8032ED50 -- 0xE9D50 in ROM
RAM 0x8032EE08 -- 0xE9E08 in ROM

First table seems to be coordinates (index + 3 16-bit signed integers)

Second table seems to deal with rotation and camera speed, but I haven't experimented a lot.
lambo666enzoh
Random nobody
Level: 7


Posts: 4/6
EXP: 934
For next: 514

Since: 03-27-11


Since last post: 11.0 years
Last activity: 11.0 years

Posted on 04-21-11 10:44:58 PM Link | Quote
so how do i make a custom title screen?
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 192


Posts: 8857/12211
EXP: 99235437
For next: 638134

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 04-21-11 11:49:56 PM Link | Quote
Stats
Time/Date
04-21-11 05:49:56 PM
Posts
8857
Days Here
1388
Level
138
Metal_Man88's Post
Ask that question in the quite clearly marked SM64 Help Thread, not here. It's irrelevant and distracting when posted in the middle of a bunch of data finds.

____________________

Eisnaught - SSQ² - Mobius Roleplay - SSS
Pages: 1 2 3 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Stuff inside the checksum protected area (Title Screen, etc.) New poll - New thread - New reply


Rusted Logic

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

37 database queries, 7 query cache hits.
Query execution time:  0.111959 seconds
Script execution time:  0.029824 seconds
Total render time:  0.141783 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 232 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 94 - Warning: unescaped & or unknown entity "&page"
line 149 column 126 - 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 188 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 190 column 9 - Warning: missing <tr>
line 208 column 13 - Warning: missing <tr>
line 209 column 99 - Warning: unescaped & or unknown entity "&postid"
line 230 column 1893 - Warning: unescaped & or unknown entity "&GamerTag"
line 236 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 238 column 9 - Warning: missing <tr>
line 256 column 13 - Warning: missing <tr>
line 257 column 99 - Warning: unescaped & or unknown entity "&postid"
line 262 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 264 column 9 - Warning: missing <tr>
line 282 column 13 - Warning: missing <tr>
line 283 column 99 - Warning: unescaped & or unknown entity "&postid"
line 288 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 290 column 9 - Warning: missing <tr>
line 308 column 13 - Warning: missing <tr>
line 309 column 99 - Warning: unescaped & or unknown entity "&postid"
line 315 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 317 column 9 - Warning: missing <tr>
line 335 column 13 - Warning: missing <tr>
line 336 column 99 - Warning: unescaped & or unknown entity "&postid"
line 343 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 345 column 9 - Warning: missing <tr>
line 363 column 13 - Warning: missing <tr>
line 364 column 99 - Warning: unescaped & or unknown entity "&postid"
line 372 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 374 column 9 - Warning: missing <tr>
line 392 column 13 - Warning: missing <tr>
line 393 column 101 - Warning: unescaped & or unknown entity "&postid"
line 409 column 1017 - Warning: unescaped & or unknown entity "&hl"
line 409 column 1023 - Warning: unescaped & or unknown entity "&fs"
line 409 column 954 - Warning: discarding unexpected <param>
line 409 column 1031 - Warning: discarding unexpected </param>
line 409 column 1039 - Warning: discarding unexpected <param>
line 409 column 1082 - Warning: discarding unexpected </param>
line 409 column 1090 - Warning: discarding unexpected <param>
line 409 column 1137 - Warning: discarding unexpected </param>
line 409 column 1196 - Warning: unescaped & or unknown entity "&hl"
line 409 column 1202 - Warning: unescaped & or unknown entity "&fs"
line 412 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 414 column 9 - Warning: missing <tr>
line 432 column 13 - Warning: missing <tr>
line 433 column 101 - Warning: unescaped & or unknown entity "&postid"
line 459 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 461 column 9 - Warning: missing <tr>
line 479 column 13 - Warning: missing <tr>
line 480 column 101 - Warning: unescaped & or unknown entity "&postid"
line 482 column 74 - Warning: <style> isn't allowed in <td> elements
line 482 column 9 - Info: <td> previously mentioned
line 485 column 1970 - Warning: unescaped & or unknown entity "&hl"
line 485 column 1976 - Warning: unescaped & or unknown entity "&fs"
line 485 column 1907 - Warning: discarding unexpected <param>
line 485 column 1984 - Warning: discarding unexpected </param>
line 485 column 1992 - Warning: discarding unexpected <param>
line 485 column 2035 - Warning: discarding unexpected </param>
line 485 column 2043 - Warning: discarding unexpected <param>
line 485 column 2090 - Warning: discarding unexpected </param>
line 485 column 2149 - Warning: unescaped & or unknown entity "&hl"
line 485 column 2155 - Warning: unescaped & or unknown entity "&fs"
line 482 column 1502 - Warning: missing </font> before <blockquote>
line 491 column 2522 - Warning: inserting implicit <font>
line 491 column 2522 - Warning: missing </font> before <hr>
line 506 column 1 - Warning: inserting implicit <font>
line 482 column 138 - Warning: missing </div>
line 521 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 523 column 9 - Warning: missing <tr>
line 541 column 13 - Warning: missing <tr>
line 542 column 101 - Warning: unescaped & or unknown entity "&postid"
line 555 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 557 column 9 - Warning: missing <tr>
line 575 column 13 - Warning: missing <tr>
line 576 column 101 - Warning: unescaped & or unknown entity "&postid"
line 613 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 615 column 9 - Warning: missing <tr>
line 633 column 13 - Warning: missing <tr>
line 634 column 101 - Warning: unescaped & or unknown entity "&postid"
line 679 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 681 column 9 - Warning: missing <tr>
line 699 column 13 - Warning: missing <tr>
line 700 column 101 - Warning: unescaped & or unknown entity "&postid"
line 707 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 709 column 9 - Warning: missing <tr>
line 727 column 13 - Warning: missing <tr>
line 728 column 101 - Warning: unescaped & or unknown entity "&postid"
line 740 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 742 column 9 - Warning: missing <tr>
line 760 column 13 - Warning: missing <tr>
line 761 column 101 - Warning: unescaped & or unknown entity "&postid"
line 766 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 768 column 9 - Warning: missing <tr>
line 786 column 13 - Warning: missing <tr>
line 787 column 101 - Warning: unescaped & or unknown entity "&postid"
line 789 column 74 - Warning: <style> isn't allowed in <td> elements
line 789 column 9 - Info: <td> previously mentioned
line 789 column 1365 - Error: <z> is not recognized!
line 789 column 1365 - Warning: discarding unexpected <z>
line 789 column 1377 - Warning: discarding unexpected </z>
line 791 column 1409 - Error: <z> is not recognized!
line 791 column 1409 - Warning: discarding unexpected <z>
line 791 column 1417 - Warning: discarding unexpected </z>
line 793 column 1433 - Error: <z> is not recognized!
line 793 column 1433 - Warning: discarding unexpected <z>
line 793 column 1445 - Warning: discarding unexpected </z>
line 795 column 1461 - Error: <z> is not recognized!
line 795 column 1461 - Warning: discarding unexpected <z>
line 795 column 1469 - Warning: discarding unexpected </z>
line 798 column 2429 - Warning: discarding unexpected </td>
line 801 column 17 - Warning: missing <tr>
line 801 column 17 - Warning: discarding unexpected <table>
line 804 column 35 - Warning: missing <tr>
line 804 column 94 - Warning: unescaped & or unknown entity "&page"
line 804 column 126 - Warning: unescaped & or unknown entity "&page"
line 804 column 50 - Warning: missing </font> before </td>
line 804 column 163 - Warning: missing </font> before </table>
line 806 column 35 - Warning: missing <tr>
line 806 column 50 - Warning: missing </font> before </td>
line 807 column 37 - Warning: unescaped & or unknown entity "&id"
line 806 column 232 - Warning: missing </font> before </table>
line 808 column 17 - Warning: discarding unexpected </textarea>
line 808 column 28 - Warning: discarding unexpected </form>
line 808 column 35 - Warning: discarding unexpected </embed>
line 808 column 43 - Warning: discarding unexpected </noembed>
line 808 column 53 - Warning: discarding unexpected </noscript>
line 808 column 64 - Warning: discarding unexpected </noembed>
line 808 column 74 - Warning: discarding unexpected </embed>
line 808 column 82 - Warning: discarding unexpected </table>
line 808 column 90 - Warning: discarding unexpected </table>
line 810 column 9 - Warning: missing </font> before <table>
line 822 column 25 - Warning: discarding unexpected </font>
line 831 column 57 - Warning: discarding unexpected </font>
line 809 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 180 column 479 - Warning: <img> proprietary attribute value "absmiddle"
line 180 column 479 - Warning: <img> lacks "alt" attribute
line 193 column 22 - Warning: <img> lacks "alt" attribute
line 193 column 63 - Warning: <img> lacks "alt" attribute
line 193 column 112 - Warning: <img> lacks "alt" attribute
line 193 column 162 - Warning: <img> lacks "alt" attribute
line 194 column 11 - Warning: <img> lacks "alt" attribute
line 204 column 15 - Warning: <img> lacks "alt" attribute
line 230 column 1917 - Warning: <img> lacks "alt" attribute
line 232 column 2066 - Warning: <img> lacks "alt" attribute
line 241 column 22 - Warning: <img> lacks "alt" attribute
line 241 column 63 - Warning: <img> lacks "alt" attribute
line 241 column 112 - Warning: <img> lacks "alt" attribute
line 241 column 162 - Warning: <img> lacks "alt" attribute
line 252 column 15 - Warning: <img> lacks "alt" attribute
line 267 column 21 - Warning: <img> lacks "alt" attribute
line 267 column 62 - Warning: <img> lacks "alt" attribute
line 267 column 111 - Warning: <img> lacks "alt" attribute
line 267 column 161 - Warning: <img> lacks "alt" attribute
line 278 column 15 - Warning: <img> lacks "alt" attribute
line 293 column 22 - Warning: <img> lacks "alt" attribute
line 293 column 63 - Warning: <img> lacks "alt" attribute
line 293 column 112 - Warning: <img> lacks "alt" attribute
line 293 column 162 - Warning: <img> lacks "alt" attribute
line 304 column 15 - Warning: <img> lacks "alt" attribute
line 320 column 21 - Warning: <img> lacks "alt" attribute
line 320 column 62 - Warning: <img> lacks "alt" attribute
line 320 column 111 - Warning: <img> lacks "alt" attribute
line 320 column 161 - Warning: <img> lacks "alt" attribute
line 331 column 15 - Warning: <img> lacks "alt" attribute
line 348 column 22 - Warning: <img> lacks "alt" attribute
line 348 column 63 - Warning: <img> lacks "alt" attribute
line 348 column 112 - Warning: <img> lacks "alt" attribute
line 348 column 162 - Warning: <img> lacks "alt" attribute
line 359 column 15 - Warning: <img> lacks "alt" attribute
line 377 column 22 - Warning: <img> lacks "alt" attribute
line 377 column 63 - Warning: <img> lacks "alt" attribute
line 377 column 112 - Warning: <img> lacks "alt" attribute
line 377 column 162 - Warning: <img> lacks "alt" attribute
line 378 column 11 - Warning: <img> lacks "alt" attribute
line 388 column 15 - Warning: <img> lacks "alt" attribute
line 417 column 22 - Warning: <img> lacks "alt" attribute
line 417 column 63 - Warning: <img> lacks "alt" attribute
line 417 column 111 - Warning: <img> lacks "alt" attribute
line 417 column 161 - Warning: <img> lacks "alt" attribute
line 428 column 15 - Warning: <img> lacks "alt" attribute
line 464 column 22 - Warning: <img> lacks "alt" attribute
line 464 column 63 - Warning: <img> lacks "alt" attribute
line 464 column 112 - Warning: <img> lacks "alt" attribute
line 464 column 162 - Warning: <img> lacks "alt" attribute
line 475 column 15 - Warning: <img> lacks "alt" attribute
line 482 column 694 - Warning: <img> lacks "alt" attribute
line 518 column 4313 - Warning: <img> lacks "alt" attribute
line 518 column 4472 - Warning: <img> lacks "alt" attribute
line 526 column 22 - Warning: <img> lacks "alt" attribute
line 526 column 63 - Warning: <img> lacks "alt" attribute
line 526 column 112 - Warning: <img> lacks "alt" attribute
line 526 column 162 - Warning: <img> lacks "alt" attribute
line 537 column 15 - Warning: <img> lacks "alt" attribute
line 560 column 22 - Warning: <img> lacks "alt" attribute
line 560 column 63 - Warning: <img> lacks "alt" attribute
line 560 column 111 - Warning: <img> lacks "alt" attribute
line 560 column 161 - Warning: <img> lacks "alt" attribute
line 571 column 15 - Warning: <img> lacks "alt" attribute
line 618 column 22 - Warning: <img> lacks "alt" attribute
line 618 column 63 - Warning: <img> lacks "alt" attribute
line 618 column 112 - Warning: <img> lacks "alt" attribute
line 618 column 162 - Warning: <img> lacks "alt" attribute
line 629 column 15 - Warning: <img> lacks "alt" attribute
line 674 column 2794 - Warning: <img> proprietary attribute value "absmiddle"
line 674 column 2794 - Warning: <img> lacks "alt" attribute
line 684 column 22 - Warning: <img> lacks "alt" attribute
line 684 column 63 - Warning: <img> lacks "alt" attribute
line 684 column 111 - Warning: <img> lacks "alt" attribute
line 684 column 161 - Warning: <img> lacks "alt" attribute
line 695 column 15 - Warning: <img> lacks "alt" attribute
line 712 column 22 - Warning: <img> lacks "alt" attribute
line 712 column 63 - Warning: <img> lacks "alt" attribute
line 712 column 111 - Warning: <img> lacks "alt" attribute
line 712 column 161 - Warning: <img> lacks "alt" attribute
line 723 column 15 - Warning: <img> lacks "alt" attribute
line 745 column 21 - Warning: <img> lacks "alt" attribute
line 745 column 62 - Warning: <img> lacks "alt" attribute
line 745 column 110 - Warning: <img> lacks "alt" attribute
line 745 column 160 - Warning: <img> lacks "alt" attribute
line 756 column 15 - Warning: <img> lacks "alt" attribute
line 770 column 17 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 17 - Warning: <img> lacks "alt" attribute
line 770 column 60 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 60 - Warning: <img> lacks "alt" attribute
line 770 column 103 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 103 - Warning: <img> lacks "alt" attribute
line 770 column 146 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 146 - Warning: <img> lacks "alt" attribute
line 770 column 189 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 189 - Warning: <img> lacks "alt" attribute
line 770 column 232 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 232 - Warning: <img> lacks "alt" attribute
line 770 column 275 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 275 - Warning: <img> lacks "alt" attribute
line 770 column 318 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 318 - Warning: <img> lacks "alt" attribute
line 770 column 361 - Warning: <img> proprietary attribute value "absmiddle"
line 770 column 361 - Warning: <img> lacks "alt" attribute
line 771 column 23 - Warning: <img> lacks "alt" attribute
line 771 column 64 - Warning: <img> lacks "alt" attribute
line 771 column 113 - Warning: <img> lacks "alt" attribute
line 771 column 163 - Warning: <img> lacks "alt" attribute
line 772 column 11 - Warning: <img> lacks "alt" attribute
line 782 column 15 - Warning: <img> lacks "alt" attribute
line 789 column 1210 - Warning: <tr> attribute "valign" has invalid value "center"
line 797 column 2075 - Warning: <img> lacks "alt" attribute
line 807 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 807 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 807 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 816 column 25 - Warning: <img> lacks "alt" attribute
line 821 column 267 - Warning: <img> lacks "alt" attribute
line 491 column 2522 - Warning: trimming empty <font>
line 801 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 209 column 27 - Warning: <nobr> is not approved by W3C
line 257 column 27 - Warning: <nobr> is not approved by W3C
line 283 column 27 - Warning: <nobr> is not approved by W3C
line 309 column 27 - Warning: <nobr> is not approved by W3C
line 336 column 27 - Warning: <nobr> is not approved by W3C
line 364 column 27 - Warning: <nobr> is not approved by W3C
line 393 column 27 - Warning: <nobr> is not approved by W3C
line 433 column 27 - Warning: <nobr> is not approved by W3C
line 480 column 27 - Warning: <nobr> is not approved by W3C
line 482 column 158 - Warning: <table> proprietary attribute "height"
line 482 column 223 - Warning: <td> proprietary attribute "background"
line 482 column 319 - Warning: <td> proprietary attribute "background"
line 482 column 409 - Warning: <table> proprietary attribute "height"
line 482 column 489 - Warning: <td> proprietary attribute "background"
line 482 column 1434 - Warning: <td> proprietary attribute "background"
line 542 column 27 - Warning: <nobr> is not approved by W3C
line 576 column 27 - Warning: <nobr> is not approved by W3C
line 634 column 27 - Warning: <nobr> is not approved by W3C
line 700 column 27 - Warning: <nobr> is not approved by W3C
line 728 column 27 - Warning: <nobr> is not approved by W3C
line 761 column 27 - Warning: <nobr> is not approved by W3C
line 787 column 27 - Warning: <nobr> is not approved by W3C
line 789 column 1136 - Warning: <table> proprietary attribute "height"
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 304 warnings and 4 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