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


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-05-08 08:13:17 PM, in Behaviour Scripts (last edited by messiaen at 06-06-08 10:59 AM) Link
I'm assuming that by Blaster you mean the "Bullet Bill Cannon" (Behav 0x600) behavior.
Looking at it, it is just a standard "solid" behavior. This one will crash in levels other than Whomp's Fortress because it uses a collision pointer:

21A408/000608 2A 00 00 00 07 01 02 60 - Points to Offset 0x10260 of current Bank 0x07.

On top of it, there is another object which uses behavior 0x179C (Bullet Bill) and actually spawns the object itself.

I tried using the 0x179C Behavior with the Bird model (ID 54) and I got a Bird shooter . I tried with other objects, and the effect is the same.

So probably you just chose the wrong behavior (0x0600 instead of 0x179C).

---

I'm almost sure this is one of the Bowser Key behaviors:

ROM Addr: 0021B92C Hex Behav: 13001B2C
>>>>>>>>>>Unused Behavior?
21B92C/001B2C 00 08 00 00
21B930/001B30 11 01 00 09
21B934/001B34 2D 00 00 00
21B938/001B38 27 26 00 00 03 01 C2 B0 -- turns the key animation
21B940/001B40 28 00 00 00
21B944/001B44 08 00 00 00
21B948/001B48 0C 00 00 00 80 2B 93 5C -- makes the key disappear after it is turned
21B950/001B50 09 00 00 00

This was easy to find, I just searched for pointers to Bank 0x03, which hold many shared objects.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-06-08 01:46:45 PM, in ToadsTool Suggestions Link
What about the possibility to manually input the behavior number instead of choosing it from the list? Since this would require some intimacy with behaviors, TT64 could prompt a confirmation box.

The reason I ask this is twofold: first, because of the "undefined behaviors" and, second, to make access to custom behaviors more easy. TT64 compiles the list of behaviors from objects used in the game, so if you have an unused behavior it won't show in the interface. To use it, you have manually change the behavior of a object in a hex editor, and then open TT64 behavior for a new "object combo" to be created.

Another option, but this probably needs a bit more work, is to actually read the bank 0x13 and compile the list of behaviors pointers from there.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-07-08 04:52:25 PM, in Editing the RAM objects Link
Thanks for the updated list! However, I'm having a few problems working with the extended ROM.

Nemu doesn't open it, Project 64 "Debug" (Build 52) has a memory viewer, but doesn't have searching or dump features. I tried to "attach" Renegade64 to Project 64 and Mupen64, but got errors.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-07-08 06:14:24 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! (last edited by messiaen at 06-07-08 05:11 PM) Link
Something I did a few days ago, Yoshi and Princess Toadstool in Bob-omb:

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

To correct Peach's transparency, I used yoshiman RAM object information, which says offset 0x17C = transparency. The equivalent in behavior coding is "10 3D 00 FF" [(17C - 88) / 4 = 3D, see behavior tread].

Here it uses Koopa behavior, so that's why the animations are so glitchy, but one of the "playing as peach" codes would work.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-07-08 06:16:44 PM, in Behaviour Scripts (last edited by messiaen at 06-07-08 05:16 PM) Link
No, if you use this behavior in the bowser key model it will just automatically rotate and disappear in a few seconds, exactly how it is used in the game.

--

Index 3D = Transparency (Offset 0x17C). Used with 0x10 command, for instance:

Description: Fwoosh Blowing Wind
21E798/004998 10 3D 00 F0

Common values = F0, FE, FF
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-08-08 04:06:32 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! Link
Yes, this is an edit of the level script commands. I made this for testing purposes in my modified/expanded version of "Flatworld" (which is a linear version of the Bob-omb level script made by VL-Tone). Doing it in the actual Bob-omb would be like hell, because there would be a LOT of pointers to be updated.

Basically, I changed the 0x17 level commands so that the Geo Layout/Polygons of Yoshi and Peach (which are actually in the same ROM 'bank') are loaded and then inserted the respective 0x22 commands to set their model IDs.

Probably due to memory limitations, the level was crashing, so I removed one of the banks which contains almost all the objects from Bob-omb and all the respective 0x22 commands that point to them.

It is interesting that sometimes you can get more objects in a level without loading extra banks or swap existing ones, but just by adding 0x22 commands. For instance, in the Bob-omb level, objects such as the Green Pipe, the Palm Tree and the Castle Door are loaded, but since there isn't a 0x22 to configure them, they aren't available.

Also, if you are wondering the ROM equivalent of your "Play as ____ hacks", this is it:

25 0C 00 01 00 00 00 01 13 00 2E C0

This is the level script command that sets Mario model/behavior. The fourth byte is the Model ID, and the last four bytes the behavior pointer.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-08-08 10:40:38 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! (last edited by messiaen at 06-09-08 07:54 PM) Link
I didn't swap the polygons/geo layout of any object, just the banks which load them, and then inserted the 0x22 commands which point to the Yoshi/Peach Geo Layout and assign a model ID. These commands can be found at the Castle Grounds level script with Toad's Tool64.

The problem is that while you can change the RAM segment in which a bank (a block of data) will be loaded, each bank has its internal pointers with a fixed ID. Peach's and Yoshi's geo layout are stored in a bank which uses ID 0x0C, and their polygons in bank 0x05. Bob-omb has already loaded banks which uses these IDs, so before changing the 0x17 commands so that it loads the Peach/Yoshi data, you have to get rid of everything (basically, 0x22 pointers and 0x24 objects) which point to these banks, otherwise the level will crash.

To add yet more trouble, the new 0x0C and 0x05 banks are bigger than the previous ones, so I had to remove another bank and all its objects for the level to work. Perhaps in a very lightweight level you will be able to even load Peach without removing anything, but you could still have troubles with banks IDs (nothing that a simple custom program can't fix).

I think the best thing you could do for now is to separate Yoshi's data from Peach's data in their bank, so you would have less troubles with memory.

Also, there are some very useful docs regarding ROM banks in the Hacking Docs thread.

Edit: Using the same procedure, here is Bowser in Bob-omb Battlefield.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-09-08 08:15:59 PM, in Post your SM64 mods, patches and screenshots here! (NO ROM LINKS!) (last edited by messiaen at 06-23-08 06:18 PM) Link
Bowser and his children in Bob-omb

AND...

Rainbow Road! (well, sort of) .
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-10-08 08:00:56 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! Link
Yes, depending on the level you would have to remove a lot of banks, so while it is possible to load the Peach bank in all levels, I think you would get a very dull hack.

Maybe a more interesting alternative would be to actually replace Mario's geometry with Peach's, if you REALLY want to work that much just to make a playable Peach.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-12-08 04:02:11 PM, in Flat Lethal Lava Land v0.2 Released (with sample level included!) Link
Unfortunately, no. The bank which holds the level geometry/collision data also contains polygons/collision for some of the objects used in the level, so you can't use this space for other things. That is, unless you did some major editing, but I don't think it is worth it.

I'm not sure where are the lava polygons loaded from, but like water they aren't part of the regular level geometry.

Also, I still haven't decided what to do with the second area. Right now, I'm using the same flat terrain setting of area 1 (instead of the original inside volcano area), so that you can use another set of 0x24 objects.

I have also created a few remodeled versions of the "Platform with Arrows" for a little personal project which will be released along with the empty setting of this Flat Lethal Lava Land.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-12-08 08:17:30 PM, in Strange color code Link
I'm not 100% sure, but all these offsets seem to be just colors/lightning used by the 0x03 RSP command (check the dedicated thread). 8107EC93 seems to be the same, as there isn't any relevant change of pattern in the data.

However, many other texture/geometry settings are embodied in the polygons commands, so that specific offset could be used by some highly specific set of polygon commands, thus producing the effect you noticed. I changed a few values for this but didn't notice nothing striking.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-12-08 08:31:51 PM, in Flat Lethal Lava Land v0.2 Released (with sample level included!) (last edited by messiaen at 06-22-08 07:34 PM) Link
You're right about lava, unlike water it is a just a regular type of collision. I'm not sure if works on all kinds of terrains, as I have only tested this on Bob-Omb Battlefield.

So, it is possible to change each chunk of collisions commands to 0001 (Lava), retexture it and get a lava effect. The problem is that collision data is grouped in BIG chunks, so everything would turn into lava, making the level impossible .

A better option would be to create some kind of "lava block", so you can selectively place it as lava.

Edit: I released version 0.1 of this. Read the first post for more information and download link. If you make a level with it, don't hesitate to post screenshots/patch here .
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-13-08 03:16:47 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! Link
I don't know much about Geometry Layout of complicated models, but what commands of the Peach layout did you change to get rid of transparency?

To correct it in my test hack, I just inserted "10 3D 00 FF" in the behavior of the Peach object, which is basically the same you do with a Gameshark code. Perhaps you could add the same to Mario's behavior?

I don't know if the following will help you, but transparent and semi-transparent polygons are rendered in different "drawing layers" (the second byte of the 0x15 Geo Layout command). From my experiments, each drawing layer can hold its own attributes. If you insert a object with different geometry settings (for instance, generate texture coordinates from normals) it will affect all the polygons in the same drawing layer when that object is visible.

By the way, I think rotation (you asked a few messages ago) is probably determined by the Animation data, not by the Geo Layout.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-14-08 03:56:35 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! Link
Oh, wait! I forgot something important!

Some weeks ago I had the same problem when some custom models weren't showing in the game. It took me a while to figure what was wrong, but the solutions is quite simple: the level script is of course processed linearly, so you have to make sure that the model has been already been defined by the 0x22 command before any 0x24 command uses it, otherwise there won't be any polygons to draw. This is the same case, so you must place the 0x25 command after the 0x22 which defines the model you are going to use.

This is not an issue with the Mario Model (ID #01) because it is loaded all the time in one of the shared banks.

So, I tried it and now Peach works on Bob-omb:

Video

I tried also playing with Bowser in Bob-omb, but his animations are too glitchy.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-17-08 07:48:56 PM, in Why a Peach 64 hack is not impossible, but would require a lot of work! (last edited by messiaen at 06-17-08 04:51 PM) Link
This is Flatworld . I just replaced Bank 0x07 with the regular Bob-omb bank, updated the Collision (0x2E) and Level Polygons pointers (0x1F) and used the original Bob-omb terrain Geo Layout. This way you can get a more flexible Bob-omb level script ready to be expanded (if you change the 0x00 load script commands).

But getting back to the original question, the procedure to get Peach in Flatworld is the same I described above:

- Load the banks which contains Peach's Geo Layout and Polygons (for reference, use SM64GeoLayoutPtrsAndPolys.txt) .
If you have a duplicate bank ID (which is the case for this), you'll have to replace banks.
- Since the objects of the replaced banks are no longer available, remove the 0x22 commands which points to them. At this point you don't have to worry about 0x24 objects, because your Flatworld is probably empty.
- Add the corresponding 0x22 Peach pointer (you can get this data from the Castle Grounds). You may want to get Yoshi as a bonus (it is in the same bank as Peach).
- If the game crashes, probably you don't have enough memory, so you'll have to choose another bank to remove and all its 0x22 object pointers. If the game still crashes after this, you'll have to check all your level script for any kind of errors.

I'm learning some C to write a program to help me creating collision for objects, but when I get around that I could try a Bank ID changer. That would be very helpful to attain flexibility so we can mix objects from many levels.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-18-08 09:39:49 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
The problem is that the Tilting Bridge data (polygons/collision) is not loaded in Flatworld, it is in the middle of the Bob-omb level terrain bank. You would have to load the whole Bob-omb bank, which is a more complicated edit.

Also, when you say input, I hope you didn't inserted any bytes in the ROM, because if you do so it will probably crash. For now, think of replacing commands.

You might want do this little experiment:

Find a 0x22 command in TT64 which points to a model you surely don't want to use on Flatworld. See how TT64 displays the ROM Address of each command you are working with ? By now, may want to turn the "hexadecimal box" to make things easier.

Go to the ROM Address of the 0x22 command you chose and replace it with:

22 08 00 12 16 00 03 88

This is a pointer to the "Green Pipe". The polygon/collision is already loaded in Flatworld (and in Bob-omb), but since there isn't a 0x22 command to assign a model ID to it, you can't use it the level.

Open the ROM again in TT64 and the Green Pipe will be available for you .

You can try also going to the "Castle Grounds" Level and looking at which commands use "Bank ID h03", all these objects will work on Flatworld because the loaded Bank is the same. Example of objects are a variety of doors and trees.

For anyone else reading, if you want a little twist to your Bob-omb level, this simple edit you will get you a few different objects into the level.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-20-08 04:18:37 AM, in Weird roms Link
Indeed, the scroller seems interesting. If it was on a European ROM, I would say it could be one of the trainers found at Dextrose.com, which were released almost ten years before TT64.
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-21-08 09:05:07 PM, in Main Level Scripts and Geo Layout Hacking (First screens + Level menu) (last edited by messiaen at 06-21-08 06:09 PM) Link
Before you start reading this thread, I encourage you to take a quick look at SM64MainLevelScripts.txt, as this is the relevante file if you want to understand it. The main SM64 Hacking Doc included in TT64 is also a must, and the "level_commands.txt" file from Cellar Dweller's Hacking Notes contains some additional information.

Level scripts in SM64 are responsible for a lot of things, not just initializing the levels but also the menus and intro screen. The fact that almost all of the major commands are already documented makes SM64 a very interesting game to hack, because you don't need direct contact with the code itself to make some interesting things.

The first relevant Level Script is found at 269EA0-26A3A0 and loaded to RAM Segment 0x14. Let's take a look at the first code:

269EA4/0004: 16 10 00 00 80 16 F0 00 00 21 F4 C0 00 26 9E A0 --Loads ASM code into RAM at 8016F000
269EB4/0014: 17 0C 00 13 00 21 9E 00 00 21 F4 C0 --Loads Behavior Scripts into segment 0x13
269EC0/0020: 17 0C 00 07 00 AE D7 14 00 AF A0 54 --Loads MIO0 data in current level segment, 0x07 (18 0C 00 07 00 26 A3 A0 00 26 F4 20 in compressed ROM)
269ECC/002C: 1D 04 00 00
269ED0/0030: 1F 08 01 00 14 00 02 D0 --Points to Geometry Layout script for menus. (In levels, used to point to the main level Geometry Layout)
269ED8/0038: 20 04 00 00 --Usually means end of area in a normal level script.

This is the first intro screen code. The part that interest us are the Banks loaded with command 0x17 (Load uncompressed data). A ROM Bank is block of data loaded into a RAM segment identified by an ID number (the fourth byte of the 0x17 command). While the Bank ID is an arbitrary number, there is a consistent pattern used in the game. Bank 0x0E holds level scripts, Bank 0x09 Level textures, Bank 0x0A Background textures, Bank 0x07 Polygons/Animation/Collision, Banks 0x05, 0x06 and 0x08 usually contains the objects used in each level.

If you want to try a simple hack, go to the Bank 0x07 for this first menu and nope (replace with 0's) all the vertex data from AED714 to AF55A5. You have erased the "Super Mario 64" polygons from the intro screen.

The next command of interest is the Geometry Layout pointer:
1F 08 01 00 14 00 02 D0 = Offset 0x2D0 of Bank 0x14 = 0x2D0 + 269EA0 = 26A170 - This is the Geo Layout JUST for the first screen.

There are still some undocumented Geo Layout commands, but here are the main ones for this menu:

0800 0000 00A0 0078 00A0 0078 <-- Initializes the display Width/Height ?
1800 0000 8016 F670
1800 0000 8016 F984

The 0x18 command is used to load things directly from the RAM, not polygon data like the 0x15 one, but instead it points to ASM. Sometimes it is used to load water/lava polygons and if I'm not mistaken even regular ones in the Castle Grounds. The third and fourth byte sometimes provides arguments, which probably will be interpreted by the ASM loaded. Sometimes it seems to be the Drawing Layer, but other times it seems very different.

I can't do much for this screen so lets move on with the level script. Here are other Geo Layout pointers:

1F 08 01 00 14 00 03 5C -> Second Screen (press start) Geo Layout

In this second screen Geo Layout, there are two 0x18 commands

18 00 00 00 80 16 FE 70 - ??
18 00 00 02 80 27 64 B0 - Places Mario Face on screen

If you want to get rid of Mario's face, get rid of that second 0x18 command. Here is a way to nope 0x18 commands: if you just fill with 0's, the game will crash, so instead you just replace it with the first one. You can also try changing that 0x18 with the following:

1F 08 01 00 14 00 03 B8 -> Game Over Geo Layout

18 00 00 00 80 16 FF FC - Place Game Over GFX at BG

Another interesting thing in main level script is the list of 0x00 "Load script commands". This is very important if you want to extend the level script you are working with. Also, you may want to try changing it (or the conditionals above) so that the first level loaded is not the Castle Grounds but something else. It turns out that the first camera animation / letter is not loaded in the Castle Grounds level script, but somewhere else before the "New game" starts.

So, there are just some ideas. Maybe in the future we can change the very beginning of these level scrips to load something else .
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-22-08 10:11:17 PM, in Main Level Scripts and Geo Layout Hacking (First screens + Level menu) (last edited by messiaen at 06-23-08 09:10 PM) Link
The basics of the model format understood and documented by VL-Tone, otherwise TT64 wouldn't exist. This isn't the polygon data but the vertex list. The polygon data is called by the "Geometry Layout", but in this case the command that loads doesn't point directly to the polygon data but to ASM which loads the polygon data.

However, finding the "entry-point" which loads the vertex data is not hard. I just looked for an 0xE7 command which initializes the RSP and I found it at AF8AB4.

The "Mario 64" is composed of 3 layers, each one called by a 0x06 Jump command.
Instead of erasing all the vertex data, you can also just nope each one of these jumps commands to get rid of the "Super Mario 64" text. Here is it without one of the layers:


This is, by the way, the procedure I used to make the "Flat" Lethal Lava Land (psss, has anybody tried it?)

Another combination of layers:


With some modifications you may even load another model instead of the "Super Mario 64" title screen. My first try:



The mushroom wouldn't fit on screen (too tall), so I changed a bit the Y values of its vertices, that why it is a bit messed up.

---
A video of the first screens without "Super Mario 64" and the "Mario Face". And a cool experimental level, of course .
messiaen
Catgirl
Level: 68


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

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 06-24-08 09:45:28 PM, in SM64 Water Hex Hacking (Geeky stuff) Link
Nice .

The polygon part will be a bit harder. As rstewart said a few messages ago, they are loaded with the 0x18 command in the level terrain Geo Layout. For instance, there are the 0x18 commands in the Castle Grounds, starting at offset 0x454DB4:

1800 0000 802D 01E0 -> This one is shared by other levels. I can't notice any different upon removing it.
1800 1601 802D 1B70 -> Waterfall polygons
1800 1601 802D 104C -> Main water area (under the bridge and near the start area)

These are pointers to ASM data. My guess is that the water polygons are in the middle of the 0x07 bank of a specific level, but they get called indirectly by that ASM data, instead of the usual 0x15 command.

Perhaps a close look at the polygons of semi-transparent objects (I'm thinking of the Boo enemy) will help us creating a more portable kind of water polygons.

It's been a long time since I last looked at this thread, but what was your approach to create the water box in Flatworld? A "water" 0x24 object would be interesting!
Pages: 1 2 3 4 5 6 7 8 9 10 11 ... 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.

30 database queries, 47 query cache hits.
Query execution time:  0.073291 seconds
Script execution time:  0.028416 seconds
Total render time:  0.101707 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 227 - Warning: unescaped & or unknown entity "&page"
line 149 column 260 - 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 395 - 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 749 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 786 - 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 208 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 210 column 9 - Warning: missing <tr>
line 228 column 13 - Warning: missing <tr>
line 238 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 240 column 9 - Warning: missing <tr>
line 258 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 291 column 193 - Warning: discarding unexpected <param>
line 291 column 259 - Warning: discarding unexpected </param>
line 298 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 300 column 9 - Warning: missing <tr>
line 318 column 13 - Warning: missing <tr>
line 333 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 335 column 9 - Warning: missing <tr>
line 353 column 13 - Warning: missing <tr>
line 371 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 373 column 9 - Warning: missing <tr>
line 391 column 13 - Warning: missing <tr>
line 408 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 410 column 9 - Warning: missing <tr>
line 428 column 13 - Warning: missing <tr>
line 438 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 440 column 9 - Warning: missing <tr>
line 458 column 13 - Warning: missing <tr>
line 466 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 468 column 9 - Warning: missing <tr>
line 486 column 13 - Warning: missing <tr>
line 498 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 500 column 9 - Warning: missing <tr>
line 518 column 13 - Warning: missing <tr>
line 526 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 528 column 9 - Warning: missing <tr>
line 546 column 13 - Warning: missing <tr>
line 558 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 560 column 9 - Warning: missing <tr>
line 578 column 13 - Warning: missing <tr>
line 590 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 592 column 9 - Warning: missing <tr>
line 610 column 13 - Warning: missing <tr>
line 626 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 628 column 9 - Warning: missing <tr>
line 646 column 13 - Warning: missing <tr>
line 662 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 664 column 9 - Warning: missing <tr>
line 682 column 13 - Warning: missing <tr>
line 706 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 708 column 9 - Warning: missing <tr>
line 726 column 13 - Warning: missing <tr>
line 732 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 734 column 9 - Warning: missing <tr>
line 752 column 13 - Warning: missing <tr>
line 763 column 1381 - Warning: discarding unexpected </b>
line 803 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 805 column 9 - Warning: missing <tr>
line 823 column 13 - Warning: missing <tr>
line 849 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 851 column 9 - Warning: missing <tr>
line 869 column 13 - Warning: missing <tr>
line 887 column 17 - Warning: missing <tr>
line 887 column 17 - Warning: discarding unexpected <table>
line 890 column 35 - Warning: missing <tr>
line 890 column 95 - Warning: unescaped & or unknown entity "&page"
line 890 column 128 - Warning: unescaped & or unknown entity "&page"
line 890 column 161 - Warning: unescaped & or unknown entity "&page"
line 890 column 194 - Warning: unescaped & or unknown entity "&page"
line 890 column 227 - Warning: unescaped & or unknown entity "&page"
line 890 column 260 - Warning: unescaped & or unknown entity "&page"
line 890 column 295 - Warning: unescaped & or unknown entity "&page"
line 890 column 328 - Warning: unescaped & or unknown entity "&page"
line 890 column 361 - Warning: unescaped & or unknown entity "&page"
line 890 column 395 - Warning: unescaped & or unknown entity "&page"
line 890 column 434 - Warning: unescaped & or unknown entity "&page"
line 890 column 469 - Warning: unescaped & or unknown entity "&page"
line 890 column 504 - Warning: unescaped & or unknown entity "&page"
line 890 column 539 - Warning: unescaped & or unknown entity "&page"
line 890 column 574 - Warning: unescaped & or unknown entity "&page"
line 890 column 609 - Warning: unescaped & or unknown entity "&page"
line 890 column 644 - Warning: unescaped & or unknown entity "&page"
line 890 column 679 - Warning: unescaped & or unknown entity "&page"
line 890 column 714 - Warning: unescaped & or unknown entity "&page"
line 890 column 749 - Warning: unescaped & or unknown entity "&page"
line 890 column 50 - Warning: missing </font> before </td>
line 890 column 786 - Warning: missing </font> before </table>
line 892 column 35 - Warning: missing <tr>
line 892 column 50 - Warning: missing </font> before </td>
line 892 column 135 - Warning: missing </font> before </table>
line 894 column 17 - Warning: discarding unexpected </textarea>
line 894 column 28 - Warning: discarding unexpected </form>
line 894 column 35 - Warning: discarding unexpected </embed>
line 894 column 43 - Warning: discarding unexpected </noembed>
line 894 column 53 - Warning: discarding unexpected </noscript>
line 894 column 64 - Warning: discarding unexpected </noembed>
line 894 column 74 - Warning: discarding unexpected </embed>
line 894 column 82 - Warning: discarding unexpected </table>
line 894 column 90 - Warning: discarding unexpected </table>
line 896 column 9 - Warning: missing </font> before <table>
line 908 column 25 - Warning: discarding unexpected </font>
line 917 column 58 - Warning: discarding unexpected </font>
line 895 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 186 column 635 - Warning: <img> proprietary attribute value "absmiddle"
line 186 column 635 - Warning: <img> lacks "alt" attribute
line 213 column 22 - Warning: <img> lacks "alt" attribute
line 213 column 63 - Warning: <img> lacks "alt" attribute
line 213 column 111 - Warning: <img> lacks "alt" attribute
line 213 column 161 - Warning: <img> lacks "alt" attribute
line 224 column 15 - Warning: <img> lacks "alt" attribute
line 243 column 22 - Warning: <img> lacks "alt" attribute
line 243 column 63 - Warning: <img> lacks "alt" attribute
line 243 column 111 - Warning: <img> lacks "alt" attribute
line 243 column 161 - Warning: <img> lacks "alt" attribute
line 254 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 303 column 22 - Warning: <img> lacks "alt" attribute
line 303 column 63 - Warning: <img> lacks "alt" attribute
line 303 column 111 - Warning: <img> lacks "alt" attribute
line 303 column 161 - Warning: <img> lacks "alt" attribute
line 314 column 15 - Warning: <img> lacks "alt" attribute
line 338 column 22 - Warning: <img> lacks "alt" attribute
line 338 column 63 - Warning: <img> lacks "alt" attribute
line 338 column 111 - Warning: <img> lacks "alt" attribute
line 338 column 161 - Warning: <img> lacks "alt" attribute
line 349 column 15 - Warning: <img> lacks "alt" attribute
line 376 column 22 - Warning: <img> lacks "alt" attribute
line 376 column 63 - Warning: <img> lacks "alt" attribute
line 376 column 111 - Warning: <img> lacks "alt" attribute
line 376 column 161 - Warning: <img> lacks "alt" attribute
line 387 column 15 - Warning: <img> lacks "alt" attribute
line 413 column 22 - Warning: <img> lacks "alt" attribute
line 413 column 63 - Warning: <img> lacks "alt" attribute
line 413 column 111 - Warning: <img> lacks "alt" attribute
line 413 column 161 - Warning: <img> lacks "alt" attribute
line 424 column 15 - Warning: <img> lacks "alt" attribute
line 435 column 273 - Warning: <img> proprietary attribute value "absmiddle"
line 435 column 273 - Warning: <img> lacks "alt" attribute
line 443 column 22 - Warning: <img> lacks "alt" attribute
line 443 column 63 - Warning: <img> lacks "alt" attribute
line 443 column 111 - Warning: <img> lacks "alt" attribute
line 443 column 161 - Warning: <img> lacks "alt" attribute
line 454 column 15 - Warning: <img> lacks "alt" attribute
line 471 column 22 - Warning: <img> lacks "alt" attribute
line 471 column 63 - Warning: <img> lacks "alt" attribute
line 471 column 111 - Warning: <img> lacks "alt" attribute
line 471 column 161 - Warning: <img> lacks "alt" attribute
line 482 column 15 - Warning: <img> lacks "alt" attribute
line 503 column 22 - Warning: <img> lacks "alt" attribute
line 503 column 63 - Warning: <img> lacks "alt" attribute
line 503 column 111 - Warning: <img> lacks "alt" attribute
line 503 column 161 - Warning: <img> lacks "alt" attribute
line 514 column 15 - Warning: <img> lacks "alt" attribute
line 531 column 22 - Warning: <img> lacks "alt" attribute
line 531 column 63 - Warning: <img> lacks "alt" attribute
line 531 column 111 - Warning: <img> lacks "alt" attribute
line 531 column 161 - Warning: <img> lacks "alt" attribute
line 542 column 15 - Warning: <img> lacks "alt" attribute
line 551 column 500 - Warning: <img> proprietary attribute value "absmiddle"
line 551 column 500 - Warning: <img> lacks "alt" attribute
line 555 column 846 - Warning: <img> proprietary attribute value "absmiddle"
line 555 column 846 - Warning: <img> lacks "alt" attribute
line 563 column 22 - Warning: <img> lacks "alt" attribute
line 563 column 63 - Warning: <img> lacks "alt" attribute
line 563 column 111 - Warning: <img> lacks "alt" attribute
line 563 column 161 - Warning: <img> lacks "alt" attribute
line 574 column 15 - Warning: <img> lacks "alt" attribute
line 595 column 22 - Warning: <img> lacks "alt" attribute
line 595 column 63 - Warning: <img> lacks "alt" attribute
line 595 column 111 - Warning: <img> lacks "alt" attribute
line 595 column 161 - Warning: <img> lacks "alt" attribute
line 606 column 15 - Warning: <img> lacks "alt" attribute
line 631 column 22 - Warning: <img> lacks "alt" attribute
line 631 column 63 - Warning: <img> lacks "alt" attribute
line 631 column 111 - Warning: <img> lacks "alt" attribute
line 631 column 161 - Warning: <img> lacks "alt" attribute
line 642 column 15 - Warning: <img> lacks "alt" attribute
line 649 column 98 - Warning: <img> proprietary attribute value "absmiddle"
line 649 column 98 - Warning: <img> lacks "alt" attribute
line 667 column 22 - Warning: <img> lacks "alt" attribute
line 667 column 63 - Warning: <img> lacks "alt" attribute
line 667 column 111 - Warning: <img> lacks "alt" attribute
line 667 column 161 - Warning: <img> lacks "alt" attribute
line 678 column 15 - Warning: <img> lacks "alt" attribute
line 699 column 1180 - Warning: <img> proprietary attribute value "absmiddle"
line 699 column 1180 - Warning: <img> lacks "alt" attribute
line 711 column 22 - Warning: <img> lacks "alt" attribute
line 711 column 63 - Warning: <img> lacks "alt" attribute
line 711 column 111 - Warning: <img> lacks "alt" attribute
line 711 column 161 - Warning: <img> lacks "alt" attribute
line 722 column 15 - Warning: <img> lacks "alt" attribute
line 737 column 22 - Warning: <img> lacks "alt" attribute
line 737 column 63 - Warning: <img> lacks "alt" attribute
line 737 column 111 - Warning: <img> lacks "alt" attribute
line 737 column 161 - Warning: <img> lacks "alt" attribute
line 748 column 15 - Warning: <img> lacks "alt" attribute
line 800 column 4771 - Warning: <img> proprietary attribute value "absmiddle"
line 800 column 4771 - Warning: <img> lacks "alt" attribute
line 808 column 22 - Warning: <img> lacks "alt" attribute
line 808 column 63 - Warning: <img> lacks "alt" attribute
line 808 column 111 - Warning: <img> lacks "alt" attribute
line 808 column 161 - Warning: <img> lacks "alt" attribute
line 819 column 15 - Warning: <img> lacks "alt" attribute
line 832 column 846 - Warning: <img> lacks "alt" attribute
line 837 column 1082 - Warning: <img> lacks "alt" attribute
line 841 column 1289 - Warning: <img> lacks "alt" attribute
line 846 column 1691 - Warning: <img> proprietary attribute value "absmiddle"
line 846 column 1691 - Warning: <img> lacks "alt" attribute
line 854 column 22 - Warning: <img> lacks "alt" attribute
line 854 column 63 - Warning: <img> lacks "alt" attribute
line 854 column 111 - Warning: <img> lacks "alt" attribute
line 854 column 161 - Warning: <img> lacks "alt" attribute
line 865 column 15 - Warning: <img> lacks "alt" attribute
line 872 column 78 - Warning: <img> proprietary attribute value "absmiddle"
line 872 column 78 - Warning: <img> lacks "alt" attribute
line 902 column 25 - Warning: <img> lacks "alt" attribute
line 907 column 267 - Warning: <img> lacks "alt" attribute
line 147 column 135 - Warning: trimming empty <font>
line 149 column 786 - Warning: trimming empty <font>
line 887 column 17 - Warning: trimming empty <tr>
line 890 column 786 - Warning: trimming empty <font>
line 892 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 229 column 27 - Warning: <nobr> is not approved by W3C
line 259 column 27 - Warning: <nobr> is not approved by W3C
line 287 column 27 - Warning: <nobr> is not approved by W3C
line 319 column 27 - Warning: <nobr> is not approved by W3C
line 354 column 27 - Warning: <nobr> is not approved by W3C
line 392 column 27 - Warning: <nobr> is not approved by W3C
line 429 column 27 - Warning: <nobr> is not approved by W3C
line 459 column 27 - Warning: <nobr> is not approved by W3C
line 487 column 27 - Warning: <nobr> is not approved by W3C
line 519 column 27 - Warning: <nobr> is not approved by W3C
line 547 column 27 - Warning: <nobr> is not approved by W3C
line 579 column 27 - Warning: <nobr> is not approved by W3C
line 611 column 27 - Warning: <nobr> is not approved by W3C
line 647 column 27 - Warning: <nobr> is not approved by W3C
line 683 column 27 - Warning: <nobr> is not approved by W3C
line 727 column 27 - Warning: <nobr> is not approved by W3C
line 753 column 27 - Warning: <nobr> is not approved by W3C
line 824 column 27 - Warning: <nobr> is not approved by W3C
line 870 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 292 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