Register - Login
Views: 99381315
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 11:52:26 PM
Jul - Posts by messiaen
Pages: 1 2 3 4 5 6 7 8 9 10 ... 45 46 47 48 49 50 51 52 53 54
messiaen
Catgirl
Level: 68


Posts: 83/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-13-08 06:41:44 PM, in Half-Precision Floats to Hexadecimal ? Link
Thanks for your input. I don't have a background in computer science/programming, and while understanding conversions between binary/decimal/hex isn't very difficult, floats are still a mystery to me. For now, my initial aim is to understand how to represent simple integers in this 16-bit format. This is used for texture coordinates in Mario 64.

I probably will need to read much more about this, but let's see if a understood a bit of this. I want to find the decimal value of the 50DE (hex) 16-bit float. That in binary is "101000011011110" according to my Windows calculator .

This is the format used ("s10e5" ):

Sign bit: 1
Exponent width: 5
Significand precision: 10 (11 implicit)

1|01000|011011110

Did I do something wrong, why there is one missing bit? How do I proceed now to get my decimal value?
messiaen
Catgirl
Level: 68


Posts: 84/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-13-08 09:17:56 PM, in Behaviour Scripts (last edited by messiaen at 05-13-08 08:56 PM) Link
Uhh, getting back to behaviors, the index "43" is very intriguing (just to remember, 0x88 + index[hex] x 4 = RAM offset).

It is surely related to drawing/disappear distance, and when set on maximum value (I'm guessing it is a float), objects will be viewed all the time. This is one example:

0E 43 7B FF

However, I absolutely don't get why it has effects also on collision. For my custom platforms behavior, which are basically a call to 803839CC and a 0x2A collision pointer, if I don't set this the Goomba's won't be able to walk on it. Also, for my Mushroom Platform, the collision actually doesn't work without it. And what is more surprising is that it won't give the drawing/disappear effect UNLESS I remove a 0x0D command whose use is yet unkown from the Mushroom Platform Geo Layout. Now that is a very random discovery, but it shows how much related things are.
messiaen
Catgirl
Level: 68


Posts: 85/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-14-08 01:23:55 PM, in Behaviour Scripts (last edited by messiaen at 05-14-08 02:39 PM) Link
Thanks James, your point is absolutely relevant to this issue. So, I have a lot of tests to do concerning the interaction between geo layouts/distance settings/0x1E behavior command/collision.

For sure, I know now that if I want the solidity to work with ground moving enemies I have to make sure that the object is drawn all the time, using maximum (4BFF float) distance settings.

I'll try to find another emulator/plugin for RAM viewing which works with the extended ROM. Something I want to check is ROM Banks loaded with the 0x17 "load uncompressed data" command. If the ID of the ROM Bank determines a fixed place to begin storing data in the RAM, then loading custom assembly could be easy (especially in Flatworld), and executing it would be done by a behavior.


--

One small discovery: it seems that the "10 05 00 00" variable needs to be set for the 0x23 collision sphere to work. Remove that value from Mario and you won't be affected by enemies, won't grab coins, etc. Most objects which rely on this kind of collision use this.

Also, the behavior bank and probably other shared banks are just loaded once from the ROM. When you enter a level, the bank is read from the RAM, so if you change it in the Castle Grounds using NEMU or Gameshark, the changes will take effect when you die/change level. So, it is way easier to test behaviors parameters using a RAM viewer instead of ROM hacking.

In my Super Mario (U).z64 non-extended ROM, the behavior bank is loaded at 00EB180 in RAM.
messiaen
Catgirl
Level: 68


Posts: 86/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-16-08 09:58:26 AM, in Half-Precision Floats to Hexadecimal ? (last edited by messiaen at 05-16-08 09:03 AM) Link
Thanks for the help, I am beggining to understand this.

I am trying to calculate a few numbers but I still have some questions. I picked a few hex values from Wikipedia and tried to reach the decimal result. This one is quite easy:

Hex: 3C00
Binary: 0 | 01111 | 0000000000
Sign = 0 (Positive)
Exponent: 01111 = 15 ; (15 - 15) bias = 0 ; 2^0 = 1
Significand = 0 + 1 (implicit bit) = 1.

Final decimal result: 1 (exp) * 1 (significand) = 1

This one should come at 65504 (max value), but I'm not sure what is going wrong, because after (Exp) * (Sig) I don't get 65504.

Hex: 7BFF
0 | 11110 | 1111111111
Sign = 0 (Positive)
Exponent: (14 - 15) = 2 ^ (-1) = 0.2
Significand: 1023 / 1024 = 0.9990234375 + 1 (is this the "implicit bit"?) = 1.9990234375

messiaen
Catgirl
Level: 68


Posts: 87/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-16-08 11:33:46 AM, in Brainstorming ideas for Mushroom Battlefield (last edited by messiaen at 05-22-08 06:42 PM) Link
I think falling for stars would be too frustating and random. But your idea reminded me that I could use the flying cap in the level, especially combined with more challenges. I like the idea of an act in which you have to do a bunch of small tasks in order to get to the star. Flying around for something could be a nice climax for that.

---

Edit: I managed to get a "Flatworld" version of Lethal Lava Land, so I have a template from which to start yet another level. It is not actually Flatworld, but Lethal Lava Land without terrain polygons / level collision, so you have just the lava and objects from that level to place around. It will be easy to insert my custom geometry (blocks) in the level, because I won't use the second area (inside the volcano), so there is plenty of free space.

<object width="425" height="350"> <embed src="http://www.youtube.com/v/8KODKk0oKpE" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>

You can go under the lava because there are still some collision holes, but these will be okay when I move up the main big collision plane so that it gets just a little below the "Y" level of the lava polygons.
messiaen
Catgirl
Level: 68


Posts: 88/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-16-08 12:13:00 PM, in Half-Precision Floats to Hexadecimal ? Link
Ouch, I think I missed a bit when converting the exponent from bin -> dec.

Now I gotta figure what is the easiest way to start from decimal and go to this especific float format hex. For instance, what about if I want to find the hex values for integers such as 2, 3, 4 ? This is what the calculator in my first post does, but only for 32 and 64-bit floats.
messiaen
Catgirl
Level: 68


Posts: 89/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-16-08 12:57:00 PM, in Adobe Director 11 released March 25th. (last edited by messiaen at 06-09-08 03:47 PM) Link
If you can't find a solution for the next version, maybe you could make TT64 decode only the polygons for the level displayed. That would be just a few extra seconds of loading time, which is not annoying at all.

Edit: Probably this is not something simple to do, as TT64 seems to compile all the polygon information as a "master index".
messiaen
Catgirl
Level: 68


Posts: 90/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-17-08 02:48:13 PM, in ToadsTool Suggestions (last edited by messiaen at 05-17-08 12:26 PM) Link
These are (probably) RAM attributes which can't be changed with Toad's Tool ROM editing features. Read the Editing RAM objects thread and you will probably find there the information you need to create a Gameshark code that does that.

Now if you mean actually editing the polygons of Mario, then read the Mario Geo Layout Deconstruction thread and, if you still have motivation to do the manual hex editing, good luck!

If you are new here, the FAQ should not be missed.
messiaen
Catgirl
Level: 68


Posts: 91/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-17-08 04:08:48 PM, in Changing SM64 text fonts (last edited by messiaen at 05-17-08 01:10 PM) Link
Hi, I was corrupting some data in the ROM and I found what seems to be the "fonts" used for displaying text in the game.

The data is at 808A56-80A156 (in the middle of the first decompressed MI00 file of the extended ROM).

I never did any kind of graphics hacking so I don't know the format of this, but there are very few values so this should be simple to figure.

So, if anyone feels like working on this, go ahead and post your discoveries.
messiaen
Catgirl
Level: 68


Posts: 92/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-17-08 05:53:14 PM, in Half-Precision Floats to Hexadecimal ? (last edited by messiaen at 05-17-08 03:27 PM) Link
Thank you SO much, I tested it and indeed this is the format used. Anyway, there is also data stored in floats, so knowledge of these should be useful too.
messiaen
Catgirl
Level: 68


Posts: 93/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-18-08 12:57:53 AM, in Behaviour Scripts Link
Great! So you changed the ASM code of the Goomba 0x0C calls? If so, what is the address of this particular JAL call? This may open an interesting possibility. If you NOP that from the code, and add instead a behavior variable that writes to offset 0x198
(this would be index 44, as 198 - 88 / 4 = 44), this could make it more flexible, so you could set the number of coins by a behaviour code. This is where the 0x04 behavior jump comes very handy, because you can make a very small behaviour which sets the variable and them jumps to the regular code. This is used in the Whomp King behavior.

Also, did you tried altering the behaviour bank loaded on ROM at 0xEB180 in RAM? This is interesting because it is possible to translate any behaviour ROM hack into a Gameshark code. This affects all levels/objects, not just the specific RAM object you are altering.

Besides, you may want this use trick for interesting videos: you can make most moving objects go at double speed if you run the 0x0C call inside the 0x08 loop two times. It is logical, since the instructions are doubled.

I really think you should start a ASM thread, it would be very instuctive if you could share a bit of what you already know.
messiaen
Catgirl
Level: 68


Posts: 94/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-18-08 03:24:34 AM, in Behaviour Scripts Link
I don't know the differences between PAL and NTSC version, but even though the adresses are different, the code is the same, no? To begin with, I think that you could even use the non-extended ROM, because of its compatibilty with Nemu. Importing the code later to the extended version shouldn't be a problem.

Anyway, now that you talked about "initialization":

(From Goomba behavior)
21E558/004758 0C 00 00 00 80 2F F4 08
21E560/004760 08 00 00 00
21E564/004764 0C 00 00 00 80 2F F9 6C
21E56C/00476C 09 00 00 00

The 802FF408 must be the one you talk about, right? I guess this is run once, when you load the level, while 802FF96C is the one that controls movements/collision detection.

On the coin subject, take a look at the Small Whomp behavior:

21BDF0/001FF0 10 44 00 05

Since 0x198 (number of coins) = index 44, that should be it, however I changed the last byte to another value but still got 5 coins when I killed it. Bowser has "10 44 00 32". There are a lot of enemies who use this index, so if anyone could experiment that, it could be helpful.
messiaen
Catgirl
Level: 68


Posts: 95/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-18-08 02:23:52 PM, in How old is too old for forums (last edited by messiaen at 05-18-08 11:35 AM) Link
From Google Answers:

“The average game player is 30 years old and has been playing games for 9.5 years”
“The average game buyer is 37 years old. In 2005, 95 percent of
computer game buyers and 84 percent of console game buyers were over
the age of 18.”

I was born in the eighties and played videogames from Atari to SNES then pretty much stopped following it except for recently playing emulators and ROM Hacking. Since you didn't lived this era of gaming (ops, now I feel old) it may surprise you that the average gamer may be older than you think, but it does make sense to me.

Welcome to the forum. It is always a good idea to spend some days, weeks, or whatetever time you need to feel what these forums are about and what kind of behaviors are not tolerated. I say this especially because of the ROM Hacking forums, which are essentialy technical content, and if you don't work on that you are missing the best of it.

Also, it seems that GuyPerfect is the youngest member of the forum. Now that is what I call a mature 8 year old! He has actualy cracked undocumented compression formats and even wrote editors for N64 games!
messiaen
Catgirl
Level: 68


Posts: 96/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-18-08 06:05:18 PM, in How old is too old for forums Link
Some people are actually forced to stay in the basment.
messiaen
Catgirl
Level: 68


Posts: 97/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-18-08 11:31:41 PM, in Behaviour Scripts (last edited by messiaen at 05-18-08 08:54 PM) Link
Every behavior scripts start with "00 xx 00 00", xx values being 04, 05, 06, 08, 09, 0A, OB and 0C. This value affects some global properties of the object.

So, the behavior script at 0x09A4 is responsible fo spawning a coin? Makes sense, as it is very near the coin ones. I'll have to test this one later.

Also, the "Graphic ID" is the Model ID defined by the 0x22 Level Command Script. You can get a list of 0x22 commands and the Models ID in Toad's Tool 64 interface. Sometimes the same object (a Goomba for instance) can have a different ID in different levels.

This Model ID points to a "Geo Layout", a script that basically sets a few variables and which in turn points to the polygons (display lists).

Your Goomba into Bob-Omb video was really amazing. You can even set a infinite loop of objects (Goomba - Bob-omb - something - Goomba). Wait no further and create that ASM thread!
messiaen
Catgirl
Level: 68


Posts: 98/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-19-08 03:06:42 AM, in ASM hacking (last edited by messiaen at 05-19-08 11:03 AM) Link
Some useful reference:

N64 opcodes by Anarko
Dextrose.com - Assemblers/Disassembler and lots of tools for N64.
MIPS Registers
Programmed Instroduction to MIPS Assembly Language

Concerning emulators, Nemu has disassembler/RAM viewer features, so this is a must get. If you want to test the disassembler, use the RAM viewer and go to one of the adresses pointed by the 0x0C behavior command. For instance:

ROM Addr: 0021B098 Hex Behav: 13001298
Description: Multiple Coins
21B098/001298 00 08 00 00
21B09C/00129C 11 01 00 41
21B0A0/0012A0 35 00 00 00
21B0A4/0012A4 08 00 00 00
21B0A8/0012A8 0C 00 00 00 80 2A FC E4
21B0B0/0012B0 09 00 00 00

At RAM address 802AFCE4, the data will start with 27BD (ADDIU SP, SP, XXXX). Look for the next 27BD and you have the end of this code segment (is this right James?), usually precedeed by a NOP, a series of 0 bytes.

Edit: Renegade 64 seems a nice tool. It can attach to a running emulator view memory, assemble/disassemble plus other functions.
Also, this build of Project64 has debugging features.
messiaen
Catgirl
Level: 68


Posts: 99/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-20-08 01:33:41 AM, in ASM hacking (last edited by messiaen at 05-20-08 09:03 AM) Link
Could you give some help concerning breakpoints? I couldn't figure out effective ways to use them in Nemu (remember I'm a absolute begginer in ASM!). I found what seems to be a very generic "Break on Opcode" function on the interface, but how can I set it to break on a specific instruction (example, one of the JALs after a conditional) ?

What I'm trying to do is supress traits of behaviors from some of the 0x0C calls. A few days ago I tried noping a few jump instructions and found the instruction (that is, the jump) responsible for displaying the Bob-Omb dialogue after he is thrown from the cliff and gets respawned at the top of the mountain, however probably there is a quicker way to find that using breakpoints.

Also, some commented code would be very nice .
messiaen
Catgirl
Level: 68


Posts: 100/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-20-08 02:08:59 PM, in Brainstorming ideas for Mushroom Battlefield Link
While I'm not against the idea of a team hack, it would be frustrating to do the hard work and leave the fun part - creating the level in TT64 after everything is set and working - to someone else.

I'm beggining to design the main level terrain for the mushroom level, because I'm getting tired of that "Flatworld" look . Using 0x24 objects is too limited, so this will be pure polygon editing. It will be something simple to add more interest.

Also, here is a screenshot of one Koopa Shell experiment:




Just a simple-as-it-can-get track that I did to test how the shell behaves on a few collision terrains. The timer is just for entertainment purposes . It is triggered by a specific collision (#33) which is used in the Peach Slide. There is another one to stop it (#34), however it will behave exactly like the Peach Slide, including spawning a star at the same X,Y,Z position of that level.
messiaen
Catgirl
Level: 68


Posts: 101/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-20-08 04:16:48 PM, in Behaviour Scripts Link
One old post from Cellar Dweller concerning behavior commands 0x08/0x09:

"I discovered/verified a few things about the behavior scripts. First, the commands between the 0x08 and 0x09 commands get execuited repeatedly during gameplay. The 0x08 command puts the current script position on a stack and the 0x09 command jumps back to the command after the 0x08 command without popping the stack. (Actually, the 0x09 command pops the address off the stack, but then pushes it right back on.) The 0x09 command also halts the interpeter until later, probably the next frame.

The 0x0c command just calls a function.

Address in the ranges of 0x802461dc - 0x80328960 and 0x8037893c - 0x80384678 are functions. There are almost certainly some more functions outside these ranges as these are the bounds of the two main blocks of them recorded in my notes.

I canged the function pointer in the last 0x0c command in the "Collectable coin" behavior script to a stub function. The result was some coins not spinning and not being collectable. The stub function I used was 0x8028b704 which is actually the address of the return instruction of the preceding function in memory."
messiaen
Catgirl
Level: 68


Posts: 102/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 05-20-08 09:27:02 PM, in ASM hacking Link
Thanks James, that was very helpful! I didn't known that I had to right-click in order to enable the watch on a specific memory .

I looked at the RAM Editing thread and things are getting clearer regarding the "RAM objects". Your RAM map for them will certainly be very useful.

I'll spend a few days playing with breakpoints and trying to understand some of the opcodes.
Pages: 1 2 3 4 5 6 7 8 9 10 ... 45 46 47 48 49 50 51 52 53 54
Jul - Posts by messiaen


Rusted Logic

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

29 database queries, 48 query cache hits.
Query execution time:  0.079814 seconds
Script execution time:  0.026011 seconds
Total render time:  0.105826 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
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 147 column 135 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 95 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 161 - Warning: unescaped & or unknown entity "&page"
line 149 column 194 - Warning: unescaped & or unknown entity "&page"
line 149 column 229 - Warning: unescaped & or unknown entity "&page"
line 149 column 262 - Warning: unescaped & or unknown entity "&page"
line 149 column 295 - Warning: unescaped & or unknown entity "&page"
line 149 column 328 - Warning: unescaped & or unknown entity "&page"
line 149 column 361 - Warning: unescaped & or unknown entity "&page"
line 149 column 399 - Warning: unescaped & or unknown entity "&page"
line 149 column 434 - Warning: unescaped & or unknown entity "&page"
line 149 column 469 - Warning: unescaped & or unknown entity "&page"
line 149 column 504 - Warning: unescaped & or unknown entity "&page"
line 149 column 539 - Warning: unescaped & or unknown entity "&page"
line 149 column 574 - Warning: unescaped & or unknown entity "&page"
line 149 column 609 - Warning: unescaped & or unknown entity "&page"
line 149 column 644 - Warning: unescaped & or unknown entity "&page"
line 149 column 679 - Warning: unescaped & or unknown entity "&page"
line 149 column 714 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 751 - 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 194 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 196 column 9 - Warning: missing <tr>
line 214 column 13 - Warning: missing <tr>
line 227 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 229 column 9 - Warning: missing <tr>
line 247 column 13 - Warning: missing <tr>
line 266 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 268 column 9 - Warning: missing <tr>
line 286 column 13 - Warning: missing <tr>
line 312 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 314 column 9 - Warning: missing <tr>
line 332 column 13 - Warning: missing <tr>
line 341 column 930 - Warning: discarding unexpected <param>
line 341 column 996 - Warning: discarding unexpected </param>
line 347 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 349 column 9 - Warning: missing <tr>
line 367 column 13 - Warning: missing <tr>
line 375 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 377 column 9 - Warning: missing <tr>
line 395 column 13 - Warning: missing <tr>
line 403 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 405 column 9 - Warning: missing <tr>
line 423 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 465 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 467 column 9 - Warning: missing <tr>
line 485 column 13 - Warning: missing <tr>
line 491 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 493 column 9 - Warning: missing <tr>
line 511 column 13 - Warning: missing <tr>
line 524 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 526 column 9 - Warning: missing <tr>
line 544 column 13 - Warning: missing <tr>
line 566 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 568 column 9 - Warning: missing <tr>
line 586 column 13 - Warning: missing <tr>
line 603 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 605 column 9 - Warning: missing <tr>
line 623 column 13 - Warning: missing <tr>
line 626 column 196 - Warning: unescaped & or unknown entity "&k"
line 626 column 235 - Warning: discarding unexpected </b>
line 626 column 98 - Warning: missing </a> before </td>
line 629 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 631 column 9 - Warning: missing <tr>
line 649 column 13 - Warning: missing <tr>
line 664 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 666 column 9 - Warning: missing <tr>
line 684 column 13 - Warning: missing <tr>
line 689 column 170 - Warning: discarding unexpected </b>
line 689 column 103 - Warning: missing </a> before <a>
line 711 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 713 column 9 - Warning: missing <tr>
line 731 column 13 - Warning: missing <tr>
line 741 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 743 column 9 - Warning: missing <tr>
line 761 column 13 - Warning: missing <tr>
line 771 column 804 - Warning: unescaped & or unknown entity "&i"
line 776 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 778 column 9 - Warning: missing <tr>
line 796 column 13 - Warning: missing <tr>
line 810 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 812 column 9 - Warning: missing <tr>
line 830 column 13 - Warning: missing <tr>
line 840 column 17 - Warning: missing <tr>
line 840 column 17 - Warning: discarding unexpected <table>
line 843 column 35 - Warning: missing <tr>
line 843 column 95 - Warning: unescaped & or unknown entity "&page"
line 843 column 128 - Warning: unescaped & or unknown entity "&page"
line 843 column 161 - Warning: unescaped & or unknown entity "&page"
line 843 column 194 - Warning: unescaped & or unknown entity "&page"
line 843 column 229 - Warning: unescaped & or unknown entity "&page"
line 843 column 262 - Warning: unescaped & or unknown entity "&page"
line 843 column 295 - Warning: unescaped & or unknown entity "&page"
line 843 column 328 - Warning: unescaped & or unknown entity "&page"
line 843 column 361 - Warning: unescaped & or unknown entity "&page"
line 843 column 399 - Warning: unescaped & or unknown entity "&page"
line 843 column 434 - Warning: unescaped & or unknown entity "&page"
line 843 column 469 - Warning: unescaped & or unknown entity "&page"
line 843 column 504 - Warning: unescaped & or unknown entity "&page"
line 843 column 539 - Warning: unescaped & or unknown entity "&page"
line 843 column 574 - Warning: unescaped & or unknown entity "&page"
line 843 column 609 - Warning: unescaped & or unknown entity "&page"
line 843 column 644 - Warning: unescaped & or unknown entity "&page"
line 843 column 679 - Warning: unescaped & or unknown entity "&page"
line 843 column 714 - Warning: unescaped & or unknown entity "&page"
line 843 column 50 - Warning: missing </font> before </td>
line 843 column 751 - Warning: missing </font> before </table>
line 845 column 35 - Warning: missing <tr>
line 845 column 50 - Warning: missing </font> before </td>
line 845 column 135 - Warning: missing </font> before </table>
line 847 column 17 - Warning: discarding unexpected </textarea>
line 847 column 28 - Warning: discarding unexpected </form>
line 847 column 35 - Warning: discarding unexpected </embed>
line 847 column 43 - Warning: discarding unexpected </noembed>
line 847 column 53 - Warning: discarding unexpected </noscript>
line 847 column 64 - Warning: discarding unexpected </noembed>
line 847 column 74 - Warning: discarding unexpected </embed>
line 847 column 82 - Warning: discarding unexpected </table>
line 847 column 90 - Warning: discarding unexpected </table>
line 849 column 9 - Warning: missing </font> before <table>
line 861 column 25 - Warning: discarding unexpected </font>
line 870 column 58 - Warning: discarding unexpected </font>
line 848 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 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 111 - Warning: <img> lacks "alt" attribute
line 161 column 161 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 181 column 660 - Warning: <img> proprietary attribute value "absmiddle"
line 181 column 660 - Warning: <img> lacks "alt" attribute
line 199 column 22 - Warning: <img> lacks "alt" attribute
line 199 column 63 - Warning: <img> lacks "alt" attribute
line 199 column 111 - Warning: <img> lacks "alt" attribute
line 199 column 161 - Warning: <img> lacks "alt" attribute
line 210 column 15 - Warning: <img> lacks "alt" attribute
line 232 column 22 - Warning: <img> lacks "alt" attribute
line 232 column 63 - Warning: <img> lacks "alt" attribute
line 232 column 111 - Warning: <img> lacks "alt" attribute
line 232 column 161 - Warning: <img> lacks "alt" attribute
line 243 column 15 - Warning: <img> lacks "alt" attribute
line 271 column 22 - Warning: <img> lacks "alt" attribute
line 271 column 63 - Warning: <img> lacks "alt" attribute
line 271 column 111 - Warning: <img> lacks "alt" attribute
line 271 column 161 - Warning: <img> lacks "alt" attribute
line 282 column 15 - Warning: <img> lacks "alt" attribute
line 317 column 22 - Warning: <img> lacks "alt" attribute
line 317 column 63 - Warning: <img> lacks "alt" attribute
line 317 column 111 - Warning: <img> lacks "alt" attribute
line 317 column 161 - Warning: <img> lacks "alt" attribute
line 328 column 15 - Warning: <img> lacks "alt" attribute
line 352 column 22 - Warning: <img> lacks "alt" attribute
line 352 column 63 - Warning: <img> lacks "alt" attribute
line 352 column 111 - Warning: <img> lacks "alt" attribute
line 352 column 161 - Warning: <img> lacks "alt" attribute
line 363 column 15 - Warning: <img> lacks "alt" attribute
line 380 column 22 - Warning: <img> lacks "alt" attribute
line 380 column 63 - Warning: <img> lacks "alt" attribute
line 380 column 111 - Warning: <img> lacks "alt" attribute
line 380 column 161 - Warning: <img> lacks "alt" attribute
line 391 column 15 - Warning: <img> lacks "alt" attribute
line 408 column 22 - Warning: <img> lacks "alt" attribute
line 408 column 63 - Warning: <img> lacks "alt" attribute
line 408 column 111 - Warning: <img> lacks "alt" attribute
line 408 column 161 - Warning: <img> lacks "alt" attribute
line 419 column 15 - 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 111 - Warning: <img> lacks "alt" attribute
line 438 column 161 - Warning: <img> lacks "alt" attribute
line 449 column 15 - Warning: <img> lacks "alt" attribute
line 470 column 22 - Warning: <img> lacks "alt" attribute
line 470 column 63 - Warning: <img> lacks "alt" attribute
line 470 column 111 - Warning: <img> lacks "alt" attribute
line 470 column 161 - Warning: <img> lacks "alt" attribute
line 481 column 15 - Warning: <img> lacks "alt" attribute
line 496 column 22 - Warning: <img> lacks "alt" attribute
line 496 column 63 - Warning: <img> lacks "alt" attribute
line 496 column 111 - Warning: <img> lacks "alt" attribute
line 496 column 161 - Warning: <img> lacks "alt" attribute
line 507 column 15 - Warning: <img> lacks "alt" attribute
line 529 column 22 - Warning: <img> lacks "alt" attribute
line 529 column 63 - Warning: <img> lacks "alt" attribute
line 529 column 111 - Warning: <img> lacks "alt" attribute
line 529 column 161 - Warning: <img> lacks "alt" attribute
line 540 column 15 - Warning: <img> lacks "alt" attribute
line 571 column 22 - Warning: <img> lacks "alt" attribute
line 571 column 63 - Warning: <img> lacks "alt" attribute
line 571 column 111 - Warning: <img> lacks "alt" attribute
line 571 column 161 - Warning: <img> lacks "alt" attribute
line 582 column 15 - Warning: <img> lacks "alt" attribute
line 608 column 22 - Warning: <img> lacks "alt" attribute
line 608 column 63 - Warning: <img> lacks "alt" attribute
line 608 column 111 - Warning: <img> lacks "alt" attribute
line 608 column 161 - Warning: <img> lacks "alt" attribute
line 619 column 15 - Warning: <img> lacks "alt" attribute
line 634 column 22 - Warning: <img> lacks "alt" attribute
line 634 column 63 - Warning: <img> lacks "alt" attribute
line 634 column 111 - Warning: <img> lacks "alt" attribute
line 634 column 161 - Warning: <img> lacks "alt" attribute
line 645 column 15 - Warning: <img> lacks "alt" attribute
line 669 column 22 - Warning: <img> lacks "alt" attribute
line 669 column 63 - Warning: <img> lacks "alt" attribute
line 669 column 111 - Warning: <img> lacks "alt" attribute
line 669 column 161 - Warning: <img> lacks "alt" attribute
line 680 column 15 - Warning: <img> lacks "alt" attribute
line 716 column 22 - Warning: <img> lacks "alt" attribute
line 716 column 63 - Warning: <img> lacks "alt" attribute
line 716 column 111 - Warning: <img> lacks "alt" attribute
line 716 column 161 - Warning: <img> lacks "alt" attribute
line 727 column 15 - Warning: <img> lacks "alt" attribute
line 738 column 856 - Warning: <img> proprietary attribute value "absmiddle"
line 738 column 856 - Warning: <img> lacks "alt" attribute
line 746 column 22 - Warning: <img> lacks "alt" attribute
line 746 column 63 - Warning: <img> lacks "alt" attribute
line 746 column 111 - Warning: <img> lacks "alt" attribute
line 746 column 161 - Warning: <img> lacks "alt" attribute
line 757 column 15 - Warning: <img> lacks "alt" attribute
line 766 column 401 - Warning: <img> proprietary attribute value "absmiddle"
line 766 column 401 - Warning: <img> lacks "alt" attribute
line 770 column 677 - Warning: <img> lacks "alt" attribute
line 771 column 820 - Warning: <img> lacks "alt" attribute
line 773 column 1069 - Warning: <img> proprietary attribute value "absmiddle"
line 773 column 1069 - Warning: <img> lacks "alt" attribute
line 781 column 22 - Warning: <img> lacks "alt" attribute
line 781 column 63 - Warning: <img> lacks "alt" attribute
line 781 column 111 - Warning: <img> lacks "alt" attribute
line 781 column 161 - Warning: <img> lacks "alt" attribute
line 792 column 15 - Warning: <img> lacks "alt" attribute
line 815 column 22 - Warning: <img> lacks "alt" attribute
line 815 column 63 - Warning: <img> lacks "alt" attribute
line 815 column 111 - Warning: <img> lacks "alt" attribute
line 815 column 161 - Warning: <img> lacks "alt" attribute
line 826 column 15 - Warning: <img> lacks "alt" attribute
line 833 column 201 - Warning: <img> proprietary attribute value "absmiddle"
line 833 column 201 - Warning: <img> lacks "alt" attribute
line 855 column 25 - Warning: <img> lacks "alt" attribute
line 860 column 267 - Warning: <img> lacks "alt" attribute
line 147 column 135 - Warning: trimming empty <font>
line 149 column 751 - Warning: trimming empty <font>
line 840 column 17 - Warning: trimming empty <tr>
line 843 column 751 - Warning: trimming empty <font>
line 845 column 135 - 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 215 column 27 - Warning: <nobr> is not approved by W3C
line 248 column 27 - Warning: <nobr> is not approved by W3C
line 287 column 27 - Warning: <nobr> is not approved by W3C
line 333 column 27 - Warning: <nobr> is not approved by W3C
line 368 column 27 - Warning: <nobr> is not approved by W3C
line 396 column 27 - Warning: <nobr> is not approved by W3C
line 424 column 27 - Warning: <nobr> is not approved by W3C
line 454 column 27 - Warning: <nobr> is not approved by W3C
line 486 column 27 - Warning: <nobr> is not approved by W3C
line 512 column 27 - Warning: <nobr> is not approved by W3C
line 545 column 27 - Warning: <nobr> is not approved by W3C
line 587 column 27 - Warning: <nobr> is not approved by W3C
line 624 column 27 - Warning: <nobr> is not approved by W3C
line 650 column 27 - Warning: <nobr> is not approved by W3C
line 685 column 27 - Warning: <nobr> is not approved by W3C
line 732 column 27 - Warning: <nobr> is not approved by W3C
line 762 column 27 - Warning: <nobr> is not approved by W3C
line 797 column 27 - Warning: <nobr> is not approved by W3C
line 831 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 286 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