Register - Login
Views: 99378917
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 10:34:03 PM
Jul - SM64 Hacking (Archive) - mml2m64: Music Macro Language importer for Mario 64 / Zelda 64 New poll - New thread - New reply
Pages: 1 2 3 4 5 Next newer thread | Next older thread
messiaen
Catgirl
Level: 68


Posts: 452/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-06-09 12:56:10 PM (last edited by messiaen at 01-07-09 09:13 AM) Link | Quote
mml2m64 is an experimental .mml importer that produces custom music in the Mario 64 and Zelda 64 sequence format. The main importer
module is built from Addmusic's (revX) MML parser, so big thanks to whoever wrote that program. You can download Addmusic binaries,
source code and documentation at http://www.smwcentral.net.

The importer is to be used along a MIDI -> MML conversion tool, such as tinymm or mid2mml, both of which can be download at SMW Central.
Afterwards, you can insert the custom music using the sequence inserter tool included in this package, which replaces the original Mario 64
sequences files with your custom music.

This package also includes a few more music-related tools, such as sequence rippers for Mario and Zelda 64 as well as parsing utilities that can
display all the sequence content. A description of all the tools included and their usage can be found below in the readme.txt file. There are 20k
just of documentation, so be sure to look at everything, especially if you are new to the .mml format. People who already used Addmusic probably
won't have any difficulty using this program.

Here is a sample of what mml2m64 can do:

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

If you want to submit a bug report, include log reports from mml2m64 and m64parser. You can do this by running these commands, which will redirect
the output to external .txt files:

"mml2m64 my_mml_file > mml_log.txt"
"m64parser my_m64_file > m64_log.txt"

Download link for v0.1b + Music Tools (fixed).

Disclaimer: This is an experimental program, depending on how well you use it you can produce very good results but in general don't expect much from it. There are numerous possible improvements which may be implementeded in future releases.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
Kenshi
Member
Level: 21


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

Since: 09-15-07

From: NY

Since last post: 6.9 years
Last activity: 6.2 years

Posted on 01-07-09 05:04:25 AM Link | Quote
Is there any way to swap the instruments that play the notes? Like lets say I wanted a custom song in SM64 but I didn't want mario 64 instruments to play it. I wanted a Zelda64 song to play with that instrument. Is that possible and would that be in a new update? Would be nice to import instruments and I guess way later on we code our own instruments.

____________________



messiaen
Catgirl
Level: 68


Posts: 453/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-07-09 12:52:41 PM Link | Quote
There was a problem with yerterday's release, but it is fixed now (download again the program from the first post).

mortalkenshi2: Dealing with audio is out of the reachs of this application. What I'm looking for is how to change which instruments are available in a sequence, so you can mix them and not be limited by the original sets.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
Delmaru
User
Level: 10


Posts: 9/14
EXP: 3650
For next: 764

Since: 01-04-09


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 01-07-09 12:55:15 PM Link | Quote
I am really having fun with this tool.

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

btw, if I'm not supposed to post this here, I'm sorry.
messiaen
Catgirl
Level: 68


Posts: 454/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-08-09 12:40:38 PM (last edited by messiaen at 01-08-09 11:20 AM) Link | Quote
I guess it's ok to post here if it's related to mml2m64 or to the music tools included in the package. My recommendation for the music in the video is to experiment with other instruments. I think the ideal way to start is to use @1, @2, @3, @4, @5, as most likely these are the main instruments loaded, and only then experiment with higher numbers.

Feel free also to share your mml2m64-ready .mml files (as an external link, unless your .mml file is very short).

I've updated an updated version of the readme.txt file with hyperlinks to my site, so it's easier to read than the original file.

Edit: "Aporia" from Gimmick! (NES).

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
Delmaru
User
Level: 10


Posts: 10/14
EXP: 3650
For next: 764

Since: 01-04-09


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 01-08-09 04:07:47 PM (last edited by Delmaru at 01-09-09 01:44 AM) Link | Quote
Oh, so those are the main instruments. Alright, I might experiment on those later. Too bad we can't export a music file like an SPC and post it so everyone could listen to it, that'd be cool.

EDIT: Here's the Starfox Map theme I have ported. I even made it really short, and it loops (that took me a second to figure out, lol) Link to MML file

Enjoy, and feel free to edit it and make it even better.
messiaen
Catgirl
Level: 68


Posts: 455/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-09-09 09:56:03 AM Link | Quote
The song loops by default, unless you use the ?0 command to make it not loop.

About loops in the track data ('[' and ']'), mml2m64 0.1b doesn't support it yet, but this is a feature I am working for the next release because it makes the sequence size much smaller and it's important for SMW compatibility. I guess I'll use your starfox.mml to test if the loop handler works correctly, since the loops are very simple.

On a side note, I've finally discovered how to change which 'instrument set' is used in each sequence, so there will be more flexibility on this. I'll post about it in the Music Editing thread. Perhaps we can keep that thread to discuss about more technical stuff (the inner workings) while keeping this for the practical side of music hacking to not make things more confuse.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
Delmaru
User
Level: 10


Posts: 11/14
EXP: 3650
For next: 764

Since: 01-04-09


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 01-09-09 10:41:12 AM Link | Quote
Oh, I didn't know you didn't have support for looping yet.
Also, how come it shows that you can open a .m64 with Project64?
Stevoisiak
Member
Level: 38


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

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 01-09-09 06:47:03 PM Link | Quote
Originally posted by Delmaru
Oh, I didn't know you didn't have support for looping yet.
Also, how come it shows that you can open a .m64 with Project64?

I guess Messiaen forgot that the m64 extendion is already used to repersent a type of rom file.
messiaen
Catgirl
Level: 68


Posts: 457/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-10-09 10:02:41 PM Link | Quote
Originally posted by Delmaru
Too bad we can't export a music file like an SPC and post it so everyone could listen to it, that'd be cool.

In theory, it's possible. USF files are basically ROMs hacked to only play the music, and in the best scenario with most of the non-audio related content stripped. It's not practical however, because the sequences would have to be hacked up in the USF (not an easy process) and the resulting files would be too big to distribute. So, I guess this possibility will have to be ruled out .

Originally posted by Delmaru
Also, how come it shows that you can open a .m64 with Project64?

.m64 (or .zseq) is just an arbitrary file extension. Never saw a ROM labeled .m64 though.

A good example of a situation where mml2m64 works quite well: Golden Eye 'Pause' Music by keeperofall. It uses a limited range and the instruments are nicely chosen. There are some possible improvements using the 'k' (gate time command) to make the strings more connected, but overall I like it.

And here is a sequence inserter utility for the Zelda 64 Debug ROM. In the first time you run it, you'll have to correct the CRC, as it moves the sequences to another area of the ROM. To produce files in the Zelda format (arbitrarly labeled .zseq), run "mml2m64 sequence.mml -zelda".

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
John2k4
490
Bubble Bobble
Level: 48


Posts: 420/499
EXP: 817246
For next: 6297

Since: 08-05-07

From: Arizona

Since last post: 8.9 years
Last activity: 7.7 years

Posted on 01-11-09 06:59:42 PM Link | Quote
Now wait, I have just about all the music from SM64 on .MINIUSF files that are only 1kb each, with music being great quality...is there a big difference between USF and MINIUSF?

____________________
#88: Never try to push your head into any opening that your whiskers won't clear easily."
From "A Cat's little Instruction Book"
messiaen
Catgirl
Level: 68


Posts: 458/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-11-09 10:21:34 PM Link | Quote
These are only 'tag' files. All the music/audio is on the very big usflib file.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
S.N.N.
750
Level: 58


Posts: 289/755
EXP: 1523114
For next: 54432

Since: 07-21-07

From: Ontario, Canada

Since last post: 8.4 years
Last activity: 5.5 years

Posted on 01-13-09 11:39:18 PM Link | Quote
Oh my god, Kattwah's layout works!
--------------------------------

I meant to comment on this earlier, but it slipped my mind.

If you based this off of Addmusic RevX, then I would assume all of the commands used in the MML are the same. I noticed you wondering about the * command earlier today .. not sure if you're still wondering what it does, but I may as well elaborate since I'm here and I need something useful to post.

The * basically allows the first loop used in a specific channel to be used again elsewhere in the same channel. Something like:

#0

a32a32 b16c8
a32a32 b8d4^16
a32a32 a32a32
c32a16 a32a32

could translate to this:

#0

[a32a32]1 b16c8
* b8d4^16
*2
c32a16 *

where the 1 on the initial loop is required to SET the loop, and any *s after that call the loop. The *2 would loop the first loop twice.

Assuming you haven't figured that out yet, that's what it does. There are a ton of others as well, so if you're not sure of what they are, I might be able to help.

(of course, if you've already figured them all out, then never mind. Heh.)

____________________
messiaen
Catgirl
Level: 68


Posts: 461/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-14-09 06:38:12 PM (last edited by messiaen at 01-14-09 03:39 PM) Link | Quote
I figured out about the * command, but thanks anyway. The * command will be simple to handle, it's only a matter of using the last loop data entered.

I have a few more questions if you don't mind, S.N.N:

- How does the "/" command works? Implementing intro support is not my priority, but I'm still a bit confused about it.
- How does the pan (y) setting works? Which value is for centered, right and left?
- What about tempo (t) ? How does it translates to BPM (beats per minute) in an usual SMW mml ?

I've finished the loop support (except for the * command), and it seems to work OK, but I still have to test in extreme
conditions. With that, most mml files from SMWCentral are now compatible with some minimal editing. Another useful new feature for v0.2 is a transpose setting which can be used globally (for the whole mml file), or for a specific channel or section. I have labeled it as `%`, so if you want to transpose a octave up just include %12 anywhere and them %0 to reset, or %-12 if you want an octave down.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
S.N.N.
750
Level: 58


Posts: 290/755
EXP: 1523114
For next: 54432

Since: 07-21-07

From: Ontario, Canada

Since last post: 8.4 years
Last activity: 5.5 years

Posted on 01-14-09 06:49:15 PM Link | Quote
Oh my god, Kattwah's layout works!
--------------------------------

Ah. Alright.

-The / commands designates an intro. However, it must be used on every channel, or else when the song loops, it will only play the data on whatever channel has it. Here is a little sample.

Normal Loop:

#0

a16a16a16a16
b16b16b16b16
c16c16c16c16

#1

d16d16d16d16
e16e16e16e16
f16f16f16f16

I'm sure you're familiar with this, obviously. When the end of the data is reached, it will loop back to the first note on each.

One Channel /

#0

a16a16a16a16
/
b16b16b16b16
c16c16c16c16

#1

d16d16d16d16
e16e16e16e16
f16f16f16f16

When the song reaches the end of the data, it will loop. However, it will start from wherever the / is - in this case, it would play the set of 8 notes after the / in channel #0, and continuously loop back to that point. Channel #1, however, will not play anything after that, as you have not designated a / there.

Correct Use of /

#0

a16a16a16a16
/
b16b16b16b16
c16c16c16c16

#1

d16d16d16d16
/
e16e16e16e16
f16f16f16f16

That will make each channel start four notes in at the loop point. Just remember though .. if you have three 16th notes before the / on one channel, and four 16th notes before the / on another, the song will desync upon looping. Each / must have the exact same note durations before it.

tl;dr, it's a loop marker that should be used in each channel. Hope that clears things up.


The pan (y) command adjusts speaker position, as I'm sure you know. y10 is centered, y5 would be the left speaker, and y15 would be the right, if I recall. From my experiences, going any higher or lower than these seems to have some strange effects on the volume, so I'd say a desired range would be y5-y15. You can also change it mid channel to produce some really cool ambient, or echo effects.

i.e. a16 y6 b8 y7 c4 y9 d4 y10 e4 y12

etc.


As for the tempo, there was a formula if I remember correctly. I think that you take the tempo value (i.e. t50), multiply it by 12 and divide by 2 to get the BPM. I could be wrong though, but it's something similar to that.

Hope all of this info helps you out a bit. If you need any clarification or more help, just ask.

____________________
Holavoir
Random nobody
Level: 4


Posts: 1/2
EXP: 196
For next: 83

Since: 01-23-09


Since last post: 13.2 years
Last activity: 13.2 years

Posted on 01-26-09 01:43:16 AM Link | Quote
Could anyone help me with the inserting process? I am on the last step (using insert_seq.exe), and am using Command Prompt like the tutorial file wanted. This is what it reads in the prompt:

C:\Documents And Settings\Dave>insert_seq more experiments.m64 Super Mario revamp.z64 -all

more experiments.m64 refers to the (eventually) music file
Super Mario revamp.z64 refers to the game
-all refers to inserting sequence for all levels

;But, I get this message instead of a success:

Invalid sequence number. Check insert_seq.txt for details.

Unfortunately I do not have insert_seq.txt. I do not know if I am supposed to. So now I am asking for help. Help! I know I am super close. If I'm being a stupid idiot just let me know!

My only guess is that the game files are not under \Dave but under \My Games, would this make an extreme difference?
messiaen
Catgirl
Level: 68


Posts: 466/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-26-09 09:47:07 AM Link | Quote
Ops, that error message is outdated . Insert_seq.txt is now merged into the readme.txt file included in mml2m64.

But getting back to your error, all the files have to be in the same folder, unless you specify their full path. This is not what is causing your error, though. I guess it happens because your filenames use space characters:

C:\Documents And Settings\Dave>insert_seq more experiments.m64 Super Mario revamp.z64 -all

What insert_seq may be doing is interpreting "experiments.m64" as the sequence file, "Super" as the ROM and "Mario" as the sequence number, hence why it says its invalid. So, try renaming your "Super Mario revamp.z64" file to "Mario.z64" and running the program again (this time with all the files on the same folder).

I will try to include a graphical interface for insert_seq in the next version of mml2m64 (will take a while to be released).

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
messiaen
Catgirl
Level: 68


Posts: 468/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-28-09 05:02:27 PM (last edited by messiaen at 01-28-09 02:22 PM) Link | Quote
Before finishing mml2m64 v0.2, I decided to release an intermediate beta version. Results should be better with this one, resulting files smaller, and now it also support loop commands ('[', ']' and '*'), so you can try using the .mml files from SMW Central.

The .zip file contains updated versions of mml2m64, mml_fix (which now fixes tinymm channel headers, replacing { Ch 01 } with #01 for instance, and also "sequence inserters" for Zelda 64 Debug ROM and Mario Kart 64.

To produce a Mario Kart 64 sequence file, just run "mml2m64 file.mml -mkart".

The source for mml2m64 is now included. If you want to compile it in Linux, just remove conio.h from mml2m64.h includes and all the getch(); calls from mml2m64.c.

Download 0.2 BETA.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
S.N.N.
750
Level: 58


Posts: 297/755
EXP: 1523114
For next: 54432

Since: 07-21-07

From: Ontario, Canada

Since last post: 8.4 years
Last activity: 5.5 years

Posted on 01-28-09 05:12:00 PM Link | Quote
Oh my god, Kattwah's layout works!
--------------------------------

Good work there messiaen (as I already told you). I looked through some of my old MMLs, since I have about 250 that I've made over the past couple of years. I found a set of nice Cave Story ones which could work well in this. They don't use any N-SPC commands (SNES format), nor do they have anything that you DIDN'T say was in it.

Link

It's 7 Cave Story MMLs which are all set up, except for the instruments of course. You folks are more than welcome to play around with them, if you'd like.

____________________
messiaen
Catgirl
Level: 68


Posts: 470/1085
EXP: 2594034
For next: 134766

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 01-29-09 04:58:30 PM Link | Quote
Thanks for sharing this, SNN.

With some editing - basically adjusting tempi and instruments - they will work nicely in Mario 64. By the way, what its the easiest to way to detect which channels are drums/percussion in Super Mario World .mml files?

One thing you use that still isn't supported in mml2m64 is changing instruments during the track data. Currently, mml2m64 will choose the last '@' command in a channel to be the main instrument. However, I'll see if I can implement this soon, as the same code will probably be useful for a bunch of other things, such as having real-time pan / vibrato / volume and other effects.

____________________
Mario 64 notes @ http://sites.google.com/site/messiaen64/
Pages: 1 2 3 4 5 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - mml2m64: Music Macro Language importer for Mario 64 / Zelda 64 New poll - New thread - New reply


Rusted Logic

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

33 database queries, 11 query cache hits.
Query execution time:  0.095849 seconds
Script execution time:  0.031930 seconds
Total render time:  0.127779 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 219 - 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 233 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 96 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 160 - Warning: unescaped & or unknown entity "&page"
line 149 column 192 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 227 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 99 - Warning: unescaped & or unknown entity "&postid"
line 194 column 1389 - Warning: unescaped & or unknown entity "&hl"
line 194 column 1395 - Warning: unescaped & or unknown entity "&fs"
line 194 column 1326 - Warning: discarding unexpected <param>
line 194 column 1402 - Warning: discarding unexpected </param>
line 194 column 1410 - Warning: discarding unexpected <param>
line 194 column 1453 - Warning: discarding unexpected </param>
line 194 column 1461 - Warning: discarding unexpected <param>
line 194 column 1508 - Warning: discarding unexpected </param>
line 194 column 1567 - Warning: unescaped & or unknown entity "&hl"
line 194 column 1573 - Warning: unescaped & or unknown entity "&fs"
line 207 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 209 column 9 - Warning: missing <tr>
line 227 column 13 - Warning: missing <tr>
line 228 column 99 - Warning: unescaped & or unknown entity "&postid"
line 230 column 503 - Warning: unescaped & or unknown entity "&GamerTag"
line 236 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 238 column 9 - Warning: missing <tr>
line 256 column 13 - Warning: missing <tr>
line 257 column 99 - Warning: unescaped & or unknown entity "&postid"
line 264 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 266 column 9 - Warning: missing <tr>
line 284 column 13 - Warning: missing <tr>
line 285 column 99 - Warning: unescaped & or unknown entity "&postid"
line 289 column 222 - Warning: unescaped & or unknown entity "&hl"
line 289 column 228 - Warning: unescaped & or unknown entity "&fs"
line 289 column 159 - Warning: discarding unexpected <param>
line 289 column 235 - Warning: discarding unexpected </param>
line 289 column 243 - Warning: discarding unexpected <param>
line 289 column 286 - Warning: discarding unexpected </param>
line 289 column 294 - Warning: discarding unexpected <param>
line 289 column 341 - Warning: discarding unexpected </param>
line 289 column 400 - Warning: unescaped & or unknown entity "&hl"
line 289 column 406 - Warning: unescaped & or unknown entity "&fs"
line 294 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 296 column 9 - Warning: missing <tr>
line 314 column 13 - Warning: missing <tr>
line 315 column 99 - Warning: unescaped & or unknown entity "&postid"
line 326 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 328 column 9 - Warning: missing <tr>
line 346 column 13 - Warning: missing <tr>
line 347 column 99 - Warning: unescaped & or unknown entity "&postid"
line 356 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 358 column 9 - Warning: missing <tr>
line 376 column 13 - Warning: missing <tr>
line 377 column 99 - Warning: unescaped & or unknown entity "&postid"
line 386 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 388 column 9 - Warning: missing <tr>
line 406 column 13 - Warning: missing <tr>
line 407 column 99 - Warning: unescaped & or unknown entity "&postid"
line 414 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 416 column 9 - Warning: missing <tr>
line 434 column 13 - Warning: missing <tr>
line 435 column 99 - Warning: unescaped & or unknown entity "&postid"
line 442 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 444 column 9 - Warning: missing <tr>
line 462 column 13 - Warning: missing <tr>
line 463 column 99 - Warning: unescaped & or unknown entity "&postid"
line 476 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 478 column 9 - Warning: missing <tr>
line 496 column 13 - Warning: missing <tr>
line 497 column 99 - Warning: unescaped & or unknown entity "&postid"
line 504 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 506 column 9 - Warning: missing <tr>
line 524 column 13 - Warning: missing <tr>
line 525 column 99 - Warning: unescaped & or unknown entity "&postid"
line 530 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 532 column 9 - Warning: missing <tr>
line 550 column 13 - Warning: missing <tr>
line 551 column 99 - Warning: unescaped & or unknown entity "&postid"
line 553 column 73 - Warning: <style> isn't allowed in <td> elements
line 553 column 9 - Info: <td> previously mentioned
line 553 column 302 - Warning: missing </font> before </div>
line 585 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 587 column 9 - Warning: missing <tr>
line 605 column 13 - Warning: missing <tr>
line 606 column 99 - Warning: unescaped & or unknown entity "&postid"
line 620 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 622 column 9 - Warning: missing <tr>
line 640 column 13 - Warning: missing <tr>
line 641 column 99 - Warning: unescaped & or unknown entity "&postid"
line 643 column 73 - Warning: <style> isn't allowed in <td> elements
line 643 column 9 - Info: <td> previously mentioned
line 643 column 302 - Warning: missing </font> before </div>
line 716 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 718 column 9 - Warning: missing <tr>
line 736 column 13 - Warning: missing <tr>
line 737 column 99 - Warning: unescaped & or unknown entity "&postid"
line 756 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 758 column 9 - Warning: missing <tr>
line 776 column 13 - Warning: missing <tr>
line 777 column 99 - Warning: unescaped & or unknown entity "&postid"
line 790 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 792 column 9 - Warning: missing <tr>
line 810 column 13 - Warning: missing <tr>
line 811 column 99 - Warning: unescaped & or unknown entity "&postid"
line 824 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 826 column 9 - Warning: missing <tr>
line 844 column 13 - Warning: missing <tr>
line 845 column 99 - Warning: unescaped & or unknown entity "&postid"
line 847 column 73 - Warning: <style> isn't allowed in <td> elements
line 847 column 9 - Info: <td> previously mentioned
line 847 column 302 - Warning: missing </font> before </div>
line 857 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 859 column 9 - Warning: missing <tr>
line 877 column 13 - Warning: missing <tr>
line 878 column 99 - Warning: unescaped & or unknown entity "&postid"
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 96 - Warning: unescaped & or unknown entity "&page"
line 890 column 128 - Warning: unescaped & or unknown entity "&page"
line 890 column 160 - Warning: unescaped & or unknown entity "&page"
line 890 column 192 - Warning: unescaped & or unknown entity "&page"
line 890 column 50 - Warning: missing </font> before </td>
line 890 column 227 - Warning: missing </font> before </table>
line 892 column 35 - Warning: missing <tr>
line 892 column 50 - Warning: missing </font> before </td>
line 893 column 37 - Warning: unescaped & or unknown entity "&id"
line 892 column 233 - 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 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 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 212 column 22 - Warning: <img> lacks "alt" attribute
line 212 column 63 - Warning: <img> lacks "alt" attribute
line 212 column 112 - Warning: <img> lacks "alt" attribute
line 212 column 162 - Warning: <img> lacks "alt" attribute
line 213 column 11 - Warning: <img> lacks "alt" attribute
line 223 column 15 - Warning: <img> lacks "alt" attribute
line 230 column 527 - Warning: <img> lacks "alt" attribute
line 232 column 676 - Warning: <img> lacks "alt" attribute
line 241 column 22 - Warning: <img> lacks "alt" attribute
line 241 column 63 - Warning: <img> lacks "alt" attribute
line 241 column 111 - Warning: <img> lacks "alt" attribute
line 241 column 161 - Warning: <img> lacks "alt" attribute
line 252 column 15 - Warning: <img> lacks "alt" attribute
line 269 column 22 - Warning: <img> lacks "alt" attribute
line 269 column 63 - Warning: <img> lacks "alt" attribute
line 269 column 112 - Warning: <img> lacks "alt" attribute
line 269 column 162 - Warning: <img> lacks "alt" attribute
line 280 column 15 - Warning: <img> lacks "alt" attribute
line 299 column 22 - Warning: <img> lacks "alt" attribute
line 299 column 63 - Warning: <img> lacks "alt" attribute
line 299 column 111 - Warning: <img> lacks "alt" attribute
line 299 column 161 - Warning: <img> lacks "alt" attribute
line 310 column 15 - Warning: <img> lacks "alt" attribute
line 331 column 22 - Warning: <img> lacks "alt" attribute
line 331 column 63 - Warning: <img> lacks "alt" attribute
line 331 column 112 - Warning: <img> lacks "alt" attribute
line 331 column 162 - Warning: <img> lacks "alt" attribute
line 342 column 15 - Warning: <img> lacks "alt" attribute
line 361 column 22 - Warning: <img> lacks "alt" attribute
line 361 column 63 - Warning: <img> lacks "alt" attribute
line 361 column 111 - Warning: <img> lacks "alt" attribute
line 361 column 161 - Warning: <img> lacks "alt" attribute
line 372 column 15 - Warning: <img> lacks "alt" attribute
line 391 column 22 - Warning: <img> lacks "alt" attribute
line 391 column 63 - Warning: <img> lacks "alt" attribute
line 391 column 112 - Warning: <img> lacks "alt" attribute
line 391 column 162 - Warning: <img> lacks "alt" attribute
line 402 column 15 - Warning: <img> lacks "alt" attribute
line 419 column 22 - Warning: <img> lacks "alt" attribute
line 419 column 63 - Warning: <img> lacks "alt" attribute
line 419 column 112 - Warning: <img> lacks "alt" attribute
line 419 column 162 - Warning: <img> lacks "alt" attribute
line 430 column 15 - Warning: <img> lacks "alt" attribute
line 439 column 393 - Warning: <img> proprietary attribute value "absmiddle"
line 439 column 393 - Warning: <img> lacks "alt" attribute
line 447 column 22 - Warning: <img> lacks "alt" attribute
line 447 column 63 - Warning: <img> lacks "alt" attribute
line 447 column 111 - Warning: <img> lacks "alt" attribute
line 447 column 161 - Warning: <img> lacks "alt" attribute
line 458 column 15 - Warning: <img> lacks "alt" attribute
line 466 column 663 - Warning: <img> proprietary attribute value "absmiddle"
line 466 column 663 - Warning: <img> lacks "alt" attribute
line 480 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 15 - Warning: <img> lacks "alt" attribute
line 480 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 58 - Warning: <img> lacks "alt" attribute
line 480 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 101 - Warning: <img> lacks "alt" attribute
line 480 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 144 - Warning: <img> lacks "alt" attribute
line 480 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 187 - Warning: <img> lacks "alt" attribute
line 480 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 230 - Warning: <img> lacks "alt" attribute
line 480 column 273 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 273 - Warning: <img> lacks "alt" attribute
line 480 column 316 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 316 - Warning: <img> lacks "alt" attribute
line 480 column 359 - Warning: <img> proprietary attribute value "absmiddle"
line 480 column 359 - Warning: <img> lacks "alt" attribute
line 481 column 22 - Warning: <img> lacks "alt" attribute
line 481 column 63 - Warning: <img> lacks "alt" attribute
line 481 column 112 - Warning: <img> lacks "alt" attribute
line 481 column 162 - Warning: <img> lacks "alt" attribute
line 482 column 11 - Warning: <img> lacks "alt" attribute
line 492 column 15 - Warning: <img> lacks "alt" attribute
line 501 column 506 - Warning: <img> lacks "alt" attribute
line 509 column 22 - Warning: <img> lacks "alt" attribute
line 509 column 63 - Warning: <img> lacks "alt" attribute
line 509 column 111 - Warning: <img> lacks "alt" attribute
line 509 column 161 - Warning: <img> lacks "alt" attribute
line 520 column 15 - Warning: <img> lacks "alt" attribute
line 534 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 534 column 15 - Warning: <img> lacks "alt" attribute
line 534 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 534 column 58 - Warning: <img> lacks "alt" attribute
line 534 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 534 column 101 - Warning: <img> lacks "alt" attribute
line 535 column 22 - Warning: <img> lacks "alt" attribute
line 535 column 63 - Warning: <img> lacks "alt" attribute
line 535 column 112 - Warning: <img> lacks "alt" attribute
line 535 column 162 - Warning: <img> lacks "alt" attribute
line 536 column 11 - Warning: <img> lacks "alt" attribute
line 546 column 15 - Warning: <img> lacks "alt" attribute
line 590 column 22 - Warning: <img> lacks "alt" attribute
line 590 column 63 - Warning: <img> lacks "alt" attribute
line 590 column 111 - Warning: <img> lacks "alt" attribute
line 590 column 161 - Warning: <img> lacks "alt" attribute
line 601 column 15 - Warning: <img> lacks "alt" attribute
line 624 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 624 column 15 - Warning: <img> lacks "alt" attribute
line 624 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 624 column 58 - Warning: <img> lacks "alt" attribute
line 624 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 624 column 101 - Warning: <img> lacks "alt" attribute
line 625 column 22 - Warning: <img> lacks "alt" attribute
line 625 column 63 - Warning: <img> lacks "alt" attribute
line 625 column 112 - Warning: <img> lacks "alt" attribute
line 625 column 162 - Warning: <img> lacks "alt" attribute
line 626 column 11 - Warning: <img> lacks "alt" attribute
line 636 column 15 - Warning: <img> lacks "alt" attribute
line 643 column 152 - Warning: <div> anchor "snn-over" already defined
line 643 column 169 - Warning: <div> anchor "snn-l" already defined
line 643 column 183 - Warning: <div> anchor "snn-r" already defined
line 643 column 197 - Warning: <div> anchor "snn-t" already defined
line 643 column 211 - Warning: <div> anchor "snn-b" already defined
line 643 column 225 - Warning: <div> anchor "snn-tl" already defined
line 643 column 240 - Warning: <div> anchor "snn-tr" already defined
line 643 column 255 - Warning: <div> anchor "snn-bl" already defined
line 643 column 270 - Warning: <div> anchor "snn-br" already defined
line 643 column 285 - Warning: <div> anchor "snn-post" already defined
line 713 column 2751 - Warning: <img> proprietary attribute value "absmiddle"
line 713 column 2751 - Warning: <img> lacks "alt" attribute
line 721 column 21 - Warning: <img> lacks "alt" attribute
line 721 column 62 - Warning: <img> lacks "alt" attribute
line 721 column 111 - Warning: <img> lacks "alt" attribute
line 721 column 161 - Warning: <img> lacks "alt" attribute
line 732 column 15 - Warning: <img> lacks "alt" attribute
line 761 column 22 - Warning: <img> lacks "alt" attribute
line 761 column 63 - Warning: <img> lacks "alt" attribute
line 761 column 111 - Warning: <img> lacks "alt" attribute
line 761 column 161 - Warning: <img> lacks "alt" attribute
line 772 column 15 - Warning: <img> lacks "alt" attribute
line 779 column 109 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 109 - Warning: <img> lacks "alt" attribute
line 795 column 22 - Warning: <img> lacks "alt" attribute
line 795 column 63 - Warning: <img> lacks "alt" attribute
line 795 column 111 - Warning: <img> lacks "alt" attribute
line 795 column 161 - Warning: <img> lacks "alt" attribute
line 806 column 15 - Warning: <img> lacks "alt" attribute
line 828 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 828 column 15 - Warning: <img> lacks "alt" attribute
line 828 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 828 column 58 - Warning: <img> lacks "alt" attribute
line 828 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 828 column 101 - Warning: <img> lacks "alt" attribute
line 829 column 22 - Warning: <img> lacks "alt" attribute
line 829 column 63 - Warning: <img> lacks "alt" attribute
line 829 column 112 - Warning: <img> lacks "alt" attribute
line 829 column 162 - Warning: <img> lacks "alt" attribute
line 830 column 11 - Warning: <img> lacks "alt" attribute
line 840 column 15 - Warning: <img> lacks "alt" attribute
line 847 column 152 - Warning: <div> anchor "snn-over" already defined
line 847 column 169 - Warning: <div> anchor "snn-l" already defined
line 847 column 183 - Warning: <div> anchor "snn-r" already defined
line 847 column 197 - Warning: <div> anchor "snn-t" already defined
line 847 column 211 - Warning: <div> anchor "snn-b" already defined
line 847 column 225 - Warning: <div> anchor "snn-tl" already defined
line 847 column 240 - Warning: <div> anchor "snn-tr" already defined
line 847 column 255 - Warning: <div> anchor "snn-bl" already defined
line 847 column 270 - Warning: <div> anchor "snn-br" already defined
line 847 column 285 - Warning: <div> anchor "snn-post" already defined
line 862 column 22 - Warning: <img> lacks "alt" attribute
line 862 column 63 - Warning: <img> lacks "alt" attribute
line 862 column 111 - Warning: <img> lacks "alt" attribute
line 862 column 161 - Warning: <img> lacks "alt" attribute
line 873 column 15 - Warning: <img> lacks "alt" attribute
line 893 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 893 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 893 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 902 column 25 - Warning: <img> lacks "alt" attribute
line 907 column 267 - Warning: <img> lacks "alt" attribute
line 887 column 17 - Warning: trimming empty <tr>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 228 column 27 - Warning: <nobr> is not approved by W3C
line 257 column 27 - Warning: <nobr> is not approved by W3C
line 285 column 27 - Warning: <nobr> is not approved by W3C
line 315 column 27 - Warning: <nobr> is not approved by W3C
line 347 column 27 - Warning: <nobr> is not approved by W3C
line 377 column 27 - Warning: <nobr> is not approved by W3C
line 407 column 27 - Warning: <nobr> is not approved by W3C
line 435 column 27 - Warning: <nobr> is not approved by W3C
line 463 column 27 - Warning: <nobr> is not approved by W3C
line 497 column 27 - Warning: <nobr> is not approved by W3C
line 525 column 27 - Warning: <nobr> is not approved by W3C
line 551 column 27 - Warning: <nobr> is not approved by W3C
line 606 column 27 - Warning: <nobr> is not approved by W3C
line 641 column 27 - Warning: <nobr> is not approved by W3C
line 737 column 27 - Warning: <nobr> is not approved by W3C
line 777 column 27 - Warning: <nobr> is not approved by W3C
line 811 column 27 - Warning: <nobr> is not approved by W3C
line 845 column 27 - Warning: <nobr> is not approved by W3C
line 878 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 360 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