Register - Login
Views: 99377906
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 09:49:54 PM
Jul - SM64 Hacking (Archive) - PixelScrambler: A fortran program for automized texture modding New poll - New thread - Thread closed
Next newer thread | Next older thread
bonifarz
Member
Level: 16


Posts: 24/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-09-07 01:58:35 PM (last edited by bonifarz at 12-26-07 06:04 PM) Link
Overview

Pixelscrambler is a tool that allows you to tune the colors of an extended,
possibly modified ROM of SM64. It reads your tilemolester bookmarks
from an xml file, takes them as offset and ending of the textures you wish
to adjust and optionally tunes the Mario colors. An xml file with the
bookmarks of most textures is provided as well. The program does not
have a GUI, but it should be easy to use and ...fast.


download: http://www.mediafire.com/?4m3c4vjmndx


Example: Turning day into night.

We want to dim the colors, reduce the saturation and add some blue.
Because reducing the lightness of bright colors in HSL space yields
strong hue fluctuations, we also reduce red and green.


The input.txt for the above example.





The head and tail of terminal output (verbose on)


Load screen


Castle at night.


Lethal Lava Land.


Night flight.


The following passage is found in the README.txt


About the files:

The .exe file is a standalone application of the .f90 code created with
gfortran. I provide it for Windows users who do not want to compile
themselves. To run the program, it must be located in the same
directory as the input.txt, the bookmark file and the rom you wish to
read from (otherwise, include the path in the filenames).
If you place a copy of the bookmark file out.xml in your
tilemolester/resources directory and give it the appropriate name,
it will be loaded by tilemolester as well. The program will create two
files, the processed rom and an optional colorsample that can be
viewed with tilemolester.


Screenshot of tilemolester with the bookmarks from out.xml


About the input file:

Most input is commented.
The first three lines give the names of your files,
followed by one line of options and six lines defining
how to process the colors of your rom.


About the options:

The options line is read up to the first blank space or comma,
anything that follows is comment.
Recognized keywords are mario, verbose, sample, wait and swap.
Excluding mario conserves the mario colors.
Excluding verbose reduces terminal output.
With sample, a mapping of both, RGB and HSL space is written in a .z64 file.
The option wait is helpful if you run the .exe by double click
and you don't want to have the window closed on exit.
The option swap switches between big and little endian byte order.


About color transformations:

Consider each coordinate in color space normalized to the interval from 0 to 1.
Scaling factor and shift define a linear function: (color-0.5)*factor+0.5 + shift
Recommended are shifts in [-0.5 , 0.5] and factors of 1 (default).
All values except for hue are capped to the interval from 0 to 1.
Therefore, any scaling factor other than +/- 1 and any amount of shift will
cause a loss of color information. The hue value is not capped but has periodic
boundary conditions. This means you can shift the colors on the hue spectrum
without losing information.


About the colorsample:

With the option sample, a color sample is written, which contains
all possible input and output colors and can be viewed with tilemolester.
The four coloumns are mappings of RGB input and output,
followed by HSL input and output. Note that only that part of HSL space
is shown, which is sampled by your color settings.


A part of the colorsample of the above example.


About custom bookmarks:

If you wish to use your own bookmark file, make sure to have all offsets
arranged in pairs of both, a (group of) textures offset and ending.
The ending is the offset of the first tile NOT to process. If you don't want
to use an xml file from tilemolester, flag all decimal offsets by the patterns
offset=" and ".




____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Xkeeper

Level: 263


Posts: 3882/25343
EXP: 296707956
For next: 2252497

Since: 07-03-07

Pronouns: they/them/????????

Since last post: 8 days
Last activity: 2 days

Posted on 12-09-07 02:08:06 PM Link
Some, uh, screenshots of what this does would be nice.

____________________

bonifarz
Member
Level: 16


Posts: 25/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-09-07 02:18:06 PM Link
Originally posted by Xkeeper
Some, uh, screenshots of what this does would be nice.


Thanks. I thought it would be clear. Tilemolestor Screenie for that job added.



____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Xkeeper

Level: 263


Posts: 3884/25343
EXP: 296707956
For next: 2252497

Since: 07-03-07

Pronouns: they/them/????????

Since last post: 8 days
Last activity: 2 days

Posted on 12-09-07 02:36:07 PM Link
...

It looks like something you could do in Paint or Irfanview. Uh.

____________________

bonifarz
Member
Level: 16


Posts: 26/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-10-07 05:41:45 AM Link
Originally posted by Xkeeper
...

It looks like something you could do in Paint or Irfanview. Uh.



Uh... let me explain.
First of all, it does not process any picture format, but accesses the rom directly to overwrite the regions bit by bit. That would not be such a big deal if TT64 could export all the textures or tilemolester was a bit more flexible in exporting and importing.

Second, even if you could easily export the textures you wish to modify, you would have to process one after the other and import them all again. Here you can sweep over as many regions as you wish in one run, each possibly containing several textures.

Third, the software you mentioned seems to have very limited color adjusting capabilities. The example I gave was just to invert the colors, which is trivial, but you can adjust the strength and scale of the r g and b channel separately as well.

Fourth, if the program is useless indeed, that is no problem. I implemented it to learn something and decided to share my insights.




____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Ebeb

Level: 18


Posts: 31/54
EXP: 29090
For next: 807

Since: 08-06-07

From: NY

Since last post: 14.4 years
Last activity: 14.2 years

Posted on 12-10-07 10:01:20 AM (last edited by Ebeb at 12-10-07 03:34 PM) Link
This is a nice tool, though, bonifarz. Now I can invert colors without getting annoyed by Tile Molester. Much. (I really should come up with another SM64 texture idea, inverted colors is getting stupid and a bit old).
paulguy

Green Birdo
Level: 93


Posts: 15/2294
EXP: 8025311
For next: 27499

Since: 09-14-07

From: Buffalo, NY

Since last post: 9.7 years
Last activity: 9.6 years

Posted on 12-10-07 12:27:36 PM Link
Any tile editing programs without endian problems? I'd hate to make a hack with bleedy colors.
bonifarz
Member
Level: 16


Posts: 27/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-11-07 10:24:12 AM Link
Originally posted by paulguy
Any tile editing programs without endian problems?



True. As I learn about these issues, I included another option to switch between big and little endian byte order. I also found a couple of other problems that should be fixed now. I will post the update after some testing. It would be nice if I could also provide a full list of all texture offsets so you could process the color values of the entire rom in one run. But I think I am too lazy for that. On the other hand, this would allow a REAL i/o check that prevents you from scambling asm code



____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Mega Mario XD
80
Level: 22


Posts: 49/81
EXP: 53040
For next: 5310

Since: 10-26-07

From: Australia

Since last post: 13.8 years
Last activity: 13.8 years

Posted on 12-13-07 05:36:08 AM Link
What Matthew Coburn has to say on this topic...
****
The thing is, can the N64 still read the correct texture for the paintings? Eg. Willl the ROM display Bomb-omb Battle Field's painting correctly, or just display garabage?

____________________
Matthew Coburn
Member of the Peachy64 Hacking Team
World 9 - Hacking Forums
Sig Banner
****
THIS POST IS TOTALLY ORIGINAL
UNAUTHORISED DUPLICIATION PROHIBITED
bonifarz
Member
Level: 16


Posts: 28/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-13-07 01:49:36 PM (last edited by bonifarz at 12-15-07 04:52 AM) Link
Originally posted by Matthew Coburn
The thing is, can the N64 still read the correct texture for the paintings? Eg. Willl the ROM display Bomb-omb Battle Field's painting correctly, or just display garabage?


Here WAS an example of the inversion of the red color channel.

The next release will not overwrite parts of your ROM but create a new file.
It might be ready soon, or take its time for debugging. Let's see.

____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Xkeeper

Level: 263


Posts: 3917/25343
EXP: 296707956
For next: 2252497

Since: 07-03-07

Pronouns: they/them/????????

Since last post: 8 days
Last activity: 2 days

Posted on 12-13-07 08:35:41 PM Link
...I, for one, would rather see actual talent instead of "hey, look, I can puke on the colors".

(Yeah, I don't like this. LOL INVERTED MARIO!!!111)

____________________

Apofisu

Level: 32


Posts: 56/193
EXP: 197178
For next: 9264

Since: 07-03-07


Since last post: 11.0 years
Last activity: 9.1 years

Posted on 12-13-07 09:47:52 PM Link
Wow! You've made a program that makes the graphics look like they were done by someone tripping on acid! Way to fail!
Mega Mario XD
80
Level: 22


Posts: 50/81
EXP: 53040
For next: 5310

Since: 10-26-07

From: Australia

Since last post: 13.8 years
Last activity: 13.8 years

Posted on 12-14-07 01:11:59 AM Link
What Matthew Coburn has to say on this topic...
****
Originally posted by Apophis
Wow! You've made a program that makes the graphics look like they were done by someone tripping on acid! Way to fail!


Hey! Bonifarz has done a wonderful job at making this tool, and you stab him with a "Way to fail" comment?

This program is great if you want to make a "night-time" hack or something. It's also good because you can then replace the painting with your own custom one, eg. a SM64 Beta-like Painting.

____________________
Matthew Coburn
Member of the Peachy64 Hacking Team
World 9 - Hacking Forums
Sig Banner
****
THIS POST IS TOTALLY ORIGINAL
UNAUTHORISED DUPLICIATION PROHIBITED
Apofisu

Level: 32


Posts: 58/193
EXP: 197178
For next: 9264

Since: 07-03-07


Since last post: 11.0 years
Last activity: 9.1 years

Posted on 12-14-07 01:23:23 AM Link
You're right. I was in a bad mood, and I apologize. While I may not see a practical application for this program, I have to admire anyone who can program in fortran.
bonifarz
Member
Level: 16


Posts: 29/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-14-07 07:17:05 AM Link
Originally posted by Matthew Coburn
Originally posted by Apophis
Wow! You've made a program that makes the graphics look like they were done by someone tripping on acid! Way to fail!


Hey! Bonifarz has done a wonderful job at making this tool, and you stab him with a "Way to fail" comment?

This program is great if you want to make a "night-time" hack or something. It's also good because you can then replace the painting with your own custom one, eg. a SM64 Beta-like Painting.



Heheh, this amuses me. Don't worry, I won't get you wrong and I won't feel offended.

The new program works perfectly now and converts the ENTIRE ROM in about 0.25 seconds on a laptop with 1.7 GHz per core!

Ahmmm, it's not about hacking painting textures, it processes ALL TEXTURES YOU WANT in one run. Am I getting repetitive?

Linear transformations in RGB space work fine, but I will also impement linear transformations in HSL space before I release the program.

And if you want to learn about fortran, just PM me, its the main tool of my masters thesis.





____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Deleted User
Collection of nobodies
Posted on 12-14-07 03:55:12 PM Link
If I want to learn about Fortran, I just read Wikipedia and go from there.

Actually, I'm more surprised at the fact people still use it!

*Kawa slinks back never to post here again

____________________


===================
[Posted by Kawa]
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 192


Posts: 889/12211
EXP: 99235071
For next: 638500

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 12-15-07 07:30:23 AM Link
12-15-07 01:30:23am
889 posts
164 days
I don't know why I put this here.
I should make a COBOL program which scrambles the colors of random Mario images. That would be very useful! Not.

I see what you're doing here, but I think you may want to try to make it more complex. Like... maybe do a pallete swap or something that'll result in an image that DOESN'T look like somebody left it out in the sun and then spilled rainbow goo on it. Just a suggestion.

____________________
"My name is Ozymandias, king of kings: Look on my works, ye mighty, and despair!" Nothing beside remains: round the decay Of that colossal wreck, boundless and bare, The lone and level sands stretch far away. -Shelley Death to n00bs!
bonifarz
Member
Level: 16


Posts: 31/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-15-07 07:51:21 AM (last edited by bonifarz at 12-15-07 04:56 AM) Link
Originally posted by Metal_Man88
I should make a COBOL program which scrambles the colors of random Mario images. That would be very useful! Not.

I see what you're doing here, but I think you may want to try to make it more complex. Like... maybe do a pallete swap or something that'll result in an image that DOESN'T look like somebody left it out in the sun and then spilled rainbow goo on it. Just a suggestion.



I see it was a mistake to post that old version of the program before my project was finished. Sorry for that. The example I put above was a check for correct behavior of the application and I know that it looks HORRIBLE, so I removed it.
If I have the time, I will finish the code such that it allows you to tune the red, green, blue, hue, saturation and lightness of all textures, just as you are used to tune your pictures with some standard viewer software or open office.

Swapping the palette would be trivial, but here we have 16bbp rgba, a type of rich color format. On the other hand, in the current version I actually create a "palatte" of 2*32^3 possible colors to process the rom's data much faster (and with a better scaling).

Please be patient, there will something to judge soon, but it's not finished up to now.



____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Mega Mario XD
80
Level: 22


Posts: 54/81
EXP: 53040
For next: 5310

Since: 10-26-07

From: Australia

Since last post: 13.8 years
Last activity: 13.8 years

Posted on 12-17-07 11:37:39 PM (last edited by Matthew Coburn at 12-17-07 08:49 PM) Link
What Matthew Coburn has to say on this topic...
****
Bonifarz, you have a great tool. I must add it to my hacking collection.

And I was thinking of a "midnight sleepwalk" concept for a SM64 Hack, with your new screenshot. Heh. '

____________________
Matthew Coburn
Member of the Peachy64 Hacking Team
World 9 - Hacking Forums
Sig Banner
****
THIS POST IS TOTALLY ORIGINAL
UNAUTHORISED DUPLICIATION PROHIBITED
bonifarz
Member
Level: 16


Posts: 32/41
EXP: 19111
For next: 1145

Since: 10-20-07

From: Switzerland

Since last post: 14.1 years
Last activity: 13.9 years

Posted on 12-18-07 02:43:39 PM (last edited by bonifarz at 12-26-07 06:11 PM) Link
Some things have been rearranged in the input file, some minor issue has been fixed and the colorsample.z64 has been extended to 4x16x32 tiles including a partial mapping of HSL space. All together gives Version 0.3, as linked in the threads header.

Any constructive feedback is highly appreciated.



EDIT:

Version 0.4 is linked and documented at the top of this thread.
It supports tilemolesters bookmark format and optionally tunes the Mario colors.



____________________
Greetings,
Bonifarz
______________________
visit nccr nano sciences
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - PixelScrambler: A fortran program for automized texture modding New poll - New thread - Thread closed


Rusted Logic

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

32 database queries, 8 query cache hits.
Query execution time:  0.083515 seconds
Script execution time:  0.032044 seconds
Total render time:  0.115559 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 300 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 234 - 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 300 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 302 column 9 - Warning: missing <tr>
line 320 column 13 - Warning: missing <tr>
line 323 column 243 - Warning: missing <tr>
line 323 column 491 - Warning: missing <tr>
line 323 column 829 - Warning: unescaped & or unknown entity "&theme"
line 327 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 329 column 9 - Warning: missing <tr>
line 347 column 13 - Warning: missing <tr>
line 360 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 362 column 9 - Warning: missing <tr>
line 380 column 13 - Warning: missing <tr>
line 383 column 243 - Warning: missing <tr>
line 383 column 491 - Warning: missing <tr>
line 385 column 849 - Warning: unescaped & or unknown entity "&theme"
line 389 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 391 column 9 - Warning: missing <tr>
line 409 column 13 - Warning: missing <tr>
line 433 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 435 column 9 - Warning: missing <tr>
line 453 column 13 - Warning: missing <tr>
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 485 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 487 column 9 - Warning: missing <tr>
line 505 column 13 - Warning: missing <tr>
line 519 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 521 column 9 - Warning: missing <tr>
line 539 column 13 - Warning: missing <tr>
line 552 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 554 column 9 - Warning: missing <tr>
line 572 column 13 - Warning: missing <tr>
line 586 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 588 column 9 - Warning: missing <tr>
line 606 column 13 - Warning: missing <tr>
line 609 column 243 - Warning: missing <tr>
line 609 column 491 - Warning: missing <tr>
line 611 column 929 - Warning: unescaped & or unknown entity "&theme"
line 615 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 617 column 9 - Warning: missing <tr>
line 635 column 13 - Warning: missing <tr>
line 641 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 643 column 9 - Warning: missing <tr>
line 661 column 13 - Warning: missing <tr>
line 678 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 680 column 9 - Warning: missing <tr>
line 698 column 13 - Warning: missing <tr>
line 704 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 706 column 9 - Warning: missing <tr>
line 724 column 13 - Warning: missing <tr>
line 751 column 15 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 752 column 25 - Warning: missing <tr>
line 759 column 33 - Warning: missing <tr>
line 768 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 770 column 9 - Warning: missing <tr>
line 788 column 13 - Warning: missing <tr>
line 791 column 73 - Warning: missing </font> before <table>
line 795 column 1109 - Error: <tfooter> is not recognized!
line 795 column 1109 - Warning: discarding unexpected <tfooter>
line 795 column 1455 - Warning: discarding unexpected </tfooter>
line 795 column 1473 - Warning: discarding unexpected </font>
line 798 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 800 column 9 - Warning: missing <tr>
line 818 column 13 - Warning: missing <tr>
line 839 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 841 column 9 - Warning: missing <tr>
line 859 column 13 - Warning: missing <tr>
line 875 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 877 column 9 - Warning: missing <tr>
line 895 column 13 - Warning: missing <tr>
line 915 column 17 - Warning: missing <tr>
line 915 column 17 - Warning: discarding unexpected <table>
line 918 column 35 - Warning: missing <tr>
line 918 column 50 - Warning: missing </font> before </td>
line 918 column 91 - Warning: missing </font> before </table>
line 920 column 35 - Warning: missing <tr>
line 920 column 50 - Warning: missing </font> before </td>
line 921 column 37 - Warning: unescaped & or unknown entity "&id"
line 920 column 234 - Warning: missing </font> before </table>
line 922 column 17 - Warning: discarding unexpected </textarea>
line 922 column 28 - Warning: discarding unexpected </form>
line 922 column 35 - Warning: discarding unexpected </embed>
line 922 column 43 - Warning: discarding unexpected </noembed>
line 922 column 53 - Warning: discarding unexpected </noscript>
line 922 column 64 - Warning: discarding unexpected </noembed>
line 922 column 74 - Warning: discarding unexpected </embed>
line 922 column 82 - Warning: discarding unexpected </table>
line 922 column 90 - Warning: discarding unexpected </table>
line 924 column 9 - Warning: missing </font> before <table>
line 936 column 25 - Warning: discarding unexpected </font>
line 945 column 57 - Warning: discarding unexpected </font>
line 923 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 216 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 198 column 880 - Warning: <img> lacks "alt" attribute
line 202 column 1015 - Warning: <img> lacks "alt" attribute
line 204 column 1106 - Warning: <img> lacks "alt" attribute
line 207 column 1250 - Warning: <img> lacks "alt" attribute
line 210 column 1357 - Warning: <img> lacks "alt" attribute
line 213 column 1469 - Warning: <img> lacks "alt" attribute
line 216 column 1582 - Warning: <img> lacks "alt" attribute
line 236 column 2433 - Warning: <img> lacks "alt" attribute
line 281 column 4375 - Warning: <img> lacks "alt" attribute
line 305 column 23 - Warning: <img> lacks "alt" attribute
line 305 column 64 - Warning: <img> lacks "alt" attribute
line 305 column 113 - Warning: <img> lacks "alt" attribute
line 305 column 163 - Warning: <img> lacks "alt" attribute
line 306 column 11 - Warning: <img> lacks "alt" attribute
line 316 column 15 - Warning: <img> lacks "alt" attribute
line 323 column 267 - Warning: <img> lacks "alt" attribute
line 323 column 680 - Warning: <img> lacks "alt" attribute
line 323 column 776 - Warning: <img> lacks "alt" attribute
line 324 column 884 - Warning: <img> lacks "alt" attribute
line 324 column 943 - Warning: <img> lacks "alt" attribute
line 332 column 22 - Warning: <img> lacks "alt" attribute
line 332 column 63 - Warning: <img> lacks "alt" attribute
line 332 column 112 - Warning: <img> lacks "alt" attribute
line 332 column 162 - Warning: <img> lacks "alt" attribute
line 333 column 11 - Warning: <img> lacks "alt" attribute
line 343 column 15 - Warning: <img> lacks "alt" attribute
line 365 column 23 - Warning: <img> lacks "alt" attribute
line 365 column 64 - Warning: <img> lacks "alt" attribute
line 365 column 113 - Warning: <img> lacks "alt" attribute
line 365 column 163 - Warning: <img> lacks "alt" attribute
line 366 column 11 - Warning: <img> lacks "alt" attribute
line 376 column 15 - Warning: <img> lacks "alt" attribute
line 383 column 267 - Warning: <img> lacks "alt" attribute
line 385 column 700 - Warning: <img> lacks "alt" attribute
line 385 column 796 - Warning: <img> lacks "alt" attribute
line 386 column 904 - Warning: <img> lacks "alt" attribute
line 386 column 963 - Warning: <img> lacks "alt" attribute
line 394 column 22 - Warning: <img> lacks "alt" attribute
line 394 column 63 - Warning: <img> lacks "alt" attribute
line 394 column 112 - Warning: <img> lacks "alt" attribute
line 394 column 162 - Warning: <img> lacks "alt" attribute
line 395 column 11 - Warning: <img> lacks "alt" attribute
line 405 column 15 - Warning: <img> lacks "alt" attribute
line 437 column 11 - Warning: <img> lacks "alt" attribute
line 438 column 22 - Warning: <img> lacks "alt" attribute
line 438 column 63 - Warning: <img> lacks "alt" attribute
line 438 column 112 - Warning: <img> lacks "alt" attribute
line 438 column 162 - Warning: <img> lacks "alt" attribute
line 439 column 11 - Warning: <img> lacks "alt" attribute
line 449 column 15 - Warning: <img> lacks "alt" attribute
line 463 column 11 - 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 161 - Warning: <img> lacks "alt" attribute
line 465 column 11 - Warning: <img> lacks "alt" attribute
line 475 column 15 - Warning: <img> lacks "alt" attribute
line 490 column 22 - Warning: <img> lacks "alt" attribute
line 490 column 63 - Warning: <img> lacks "alt" attribute
line 490 column 112 - Warning: <img> lacks "alt" attribute
line 490 column 162 - Warning: <img> lacks "alt" attribute
line 491 column 11 - Warning: <img> lacks "alt" attribute
line 501 column 15 - Warning: <img> lacks "alt" attribute
line 511 column 730 - Warning: <img> proprietary attribute value "absmiddle"
line 511 column 730 - Warning: <img> lacks "alt" attribute
line 523 column 14 - Warning: <img> proprietary attribute value "absmiddle"
line 523 column 14 - Warning: <img> lacks "alt" attribute
line 523 column 57 - Warning: <img> proprietary attribute value "absmiddle"
line 523 column 57 - Warning: <img> lacks "alt" attribute
line 523 column 100 - Warning: <img> proprietary attribute value "absmiddle"
line 523 column 100 - Warning: <img> lacks "alt" attribute
line 523 column 143 - Warning: <img> proprietary attribute value "absmiddle"
line 523 column 143 - Warning: <img> lacks "alt" attribute
line 524 column 22 - Warning: <img> lacks "alt" attribute
line 524 column 63 - Warning: <img> lacks "alt" attribute
line 524 column 112 - Warning: <img> lacks "alt" attribute
line 524 column 162 - Warning: <img> lacks "alt" attribute
line 525 column 11 - Warning: <img> lacks "alt" attribute
line 535 column 15 - Warning: <img> lacks "alt" attribute
line 557 column 22 - Warning: <img> lacks "alt" attribute
line 557 column 63 - Warning: <img> lacks "alt" attribute
line 557 column 112 - Warning: <img> lacks "alt" attribute
line 557 column 162 - Warning: <img> lacks "alt" attribute
line 558 column 11 - Warning: <img> lacks "alt" attribute
line 568 column 15 - Warning: <img> lacks "alt" attribute
line 591 column 23 - Warning: <img> lacks "alt" attribute
line 591 column 64 - Warning: <img> lacks "alt" attribute
line 591 column 113 - Warning: <img> lacks "alt" attribute
line 591 column 163 - Warning: <img> lacks "alt" attribute
line 592 column 11 - Warning: <img> lacks "alt" attribute
line 602 column 15 - Warning: <img> lacks "alt" attribute
line 609 column 267 - Warning: <img> lacks "alt" attribute
line 611 column 780 - Warning: <img> lacks "alt" attribute
line 611 column 876 - Warning: <img> lacks "alt" attribute
line 612 column 984 - Warning: <img> lacks "alt" attribute
line 612 column 1043 - Warning: <img> lacks "alt" attribute
line 619 column 11 - Warning: <img> lacks "alt" attribute
line 620 column 22 - Warning: <img> lacks "alt" attribute
line 620 column 63 - Warning: <img> lacks "alt" attribute
line 620 column 112 - Warning: <img> lacks "alt" attribute
line 620 column 162 - Warning: <img> lacks "alt" attribute
line 621 column 11 - Warning: <img> lacks "alt" attribute
line 631 column 15 - Warning: <img> lacks "alt" attribute
line 645 column 14 - Warning: <img> proprietary attribute value "absmiddle"
line 645 column 14 - Warning: <img> lacks "alt" attribute
line 645 column 57 - Warning: <img> proprietary attribute value "absmiddle"
line 645 column 57 - Warning: <img> lacks "alt" attribute
line 645 column 100 - Warning: <img> proprietary attribute value "absmiddle"
line 645 column 100 - Warning: <img> lacks "alt" attribute
line 645 column 143 - Warning: <img> proprietary attribute value "absmiddle"
line 645 column 143 - Warning: <img> lacks "alt" attribute
line 646 column 22 - Warning: <img> lacks "alt" attribute
line 646 column 63 - Warning: <img> lacks "alt" attribute
line 646 column 112 - Warning: <img> lacks "alt" attribute
line 646 column 162 - Warning: <img> lacks "alt" attribute
line 647 column 11 - Warning: <img> lacks "alt" attribute
line 657 column 15 - Warning: <img> lacks "alt" attribute
line 682 column 11 - Warning: <img> lacks "alt" attribute
line 683 column 22 - Warning: <img> lacks "alt" attribute
line 683 column 63 - Warning: <img> lacks "alt" attribute
line 683 column 112 - Warning: <img> lacks "alt" attribute
line 683 column 162 - Warning: <img> lacks "alt" attribute
line 684 column 11 - Warning: <img> lacks "alt" attribute
line 694 column 15 - Warning: <img> lacks "alt" attribute
line 709 column 22 - Warning: <img> lacks "alt" attribute
line 709 column 63 - Warning: <img> lacks "alt" attribute
line 709 column 112 - Warning: <img> lacks "alt" attribute
line 709 column 162 - Warning: <img> lacks "alt" attribute
line 710 column 11 - Warning: <img> lacks "alt" attribute
line 720 column 15 - Warning: <img> lacks "alt" attribute
line 755 column 37 - Warning: <img> lacks "alt" attribute
line 766 column 400 - Warning: <font> attribute "color" had invalid value "888888" and has been replaced
line 772 column 17 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 17 - Warning: <img> lacks "alt" attribute
line 772 column 60 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 60 - Warning: <img> lacks "alt" attribute
line 772 column 103 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 103 - Warning: <img> lacks "alt" attribute
line 772 column 146 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 146 - Warning: <img> lacks "alt" attribute
line 772 column 189 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 189 - Warning: <img> lacks "alt" attribute
line 772 column 232 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 232 - Warning: <img> lacks "alt" attribute
line 772 column 275 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 275 - Warning: <img> lacks "alt" attribute
line 772 column 318 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 318 - Warning: <img> lacks "alt" attribute
line 772 column 361 - Warning: <img> proprietary attribute value "absmiddle"
line 772 column 361 - Warning: <img> lacks "alt" attribute
line 773 column 23 - Warning: <img> lacks "alt" attribute
line 773 column 64 - Warning: <img> lacks "alt" attribute
line 773 column 113 - Warning: <img> lacks "alt" attribute
line 773 column 163 - Warning: <img> lacks "alt" attribute
line 774 column 11 - Warning: <img> lacks "alt" attribute
line 784 column 15 - Warning: <img> lacks "alt" attribute
line 793 column 332 - Warning: <img> lacks "alt" attribute
line 803 column 22 - Warning: <img> lacks "alt" attribute
line 803 column 63 - Warning: <img> lacks "alt" attribute
line 803 column 112 - Warning: <img> lacks "alt" attribute
line 803 column 162 - Warning: <img> lacks "alt" attribute
line 804 column 11 - Warning: <img> lacks "alt" attribute
line 814 column 15 - Warning: <img> lacks "alt" attribute
line 843 column 14 - Warning: <img> proprietary attribute value "absmiddle"
line 843 column 14 - Warning: <img> lacks "alt" attribute
line 843 column 57 - Warning: <img> proprietary attribute value "absmiddle"
line 843 column 57 - Warning: <img> lacks "alt" attribute
line 843 column 100 - Warning: <img> proprietary attribute value "absmiddle"
line 843 column 100 - Warning: <img> lacks "alt" attribute
line 843 column 143 - Warning: <img> proprietary attribute value "absmiddle"
line 843 column 143 - Warning: <img> lacks "alt" attribute
line 844 column 22 - Warning: <img> lacks "alt" attribute
line 844 column 63 - Warning: <img> lacks "alt" attribute
line 844 column 112 - Warning: <img> lacks "alt" attribute
line 844 column 162 - Warning: <img> lacks "alt" attribute
line 845 column 11 - Warning: <img> lacks "alt" attribute
line 855 column 15 - Warning: <img> lacks "alt" attribute
line 866 column 308 - Warning: <img> proprietary attribute value "absmiddle"
line 866 column 308 - Warning: <img> lacks "alt" attribute
line 880 column 22 - Warning: <img> lacks "alt" attribute
line 880 column 63 - Warning: <img> lacks "alt" attribute
line 880 column 112 - Warning: <img> lacks "alt" attribute
line 880 column 162 - Warning: <img> lacks "alt" attribute
line 881 column 11 - Warning: <img> lacks "alt" attribute
line 891 column 15 - Warning: <img> lacks "alt" attribute
line 921 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 921 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 921 column 216 - Warning: <img> proprietary attribute value "absmiddle"
line 930 column 25 - Warning: <img> lacks "alt" attribute
line 935 column 267 - Warning: <img> lacks "alt" attribute
line 149 column 50 - Warning: trimming empty <font>
line 791 column 73 - Warning: trimming empty <font>
line 915 column 17 - Warning: trimming empty <tr>
line 918 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 321 column 27 - Warning: <nobr> is not approved by W3C
line 348 column 27 - Warning: <nobr> is not approved by W3C
line 381 column 27 - Warning: <nobr> is not approved by W3C
line 410 column 27 - Warning: <nobr> is not approved by W3C
line 454 column 27 - Warning: <nobr> is not approved by W3C
line 480 column 27 - Warning: <nobr> is not approved by W3C
line 506 column 27 - Warning: <nobr> is not approved by W3C
line 540 column 27 - Warning: <nobr> is not approved by W3C
line 573 column 27 - Warning: <nobr> is not approved by W3C
line 607 column 27 - Warning: <nobr> is not approved by W3C
line 636 column 27 - Warning: <nobr> is not approved by W3C
line 662 column 27 - Warning: <nobr> is not approved by W3C
line 699 column 27 - Warning: <nobr> is not approved by W3C
line 725 column 27 - Warning: <nobr> is not approved by W3C
line 760 column 47 - Warning: <nobr> is not approved by W3C
line 789 column 27 - Warning: <nobr> is not approved by W3C
line 791 column 116 - Warning: <table> proprietary attribute "background"
line 819 column 27 - Warning: <nobr> is not approved by W3C
line 860 column 27 - Warning: <nobr> is not approved by W3C
line 896 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 341 warnings and 1 error!

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