Register - Login
Views: 99408820
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 09:12:44 PM
Jul - General Game/ROM Hacking - I offer 50$ to restore GIB routine in Cruis'n USA New poll - New thread - New reply
Pages: 1 2 3 Next newer thread | Next older thread
brian151
Banned
The administration (as well as a few users) have decided that you're creepy/weird enough that it's time to activate the sploded clause.
Laters.


Level: NaN


Posts: 202/-249
EXP: NaN
For next: 0

Since: 08-09-16

From: USA

Since last post: 4.7 years
Last activity: 4.7 years

Posted on 07-02-17 12:03:02 AM Link | Quote


Originally posted by BoringPerson
Originally posted by ihadtnowegtum
also, you may put a seizure warning with those spoilers, for those whom have such issues. just a friendly suggestion.

Oh crap, you're completely right! Alright, that should be better, and I really should be limiting the number of large gifs per page anyway.

Originally posted by ihadtnowegtum
how did you get that second one?
randomize vertex positions?


Yep, correct. I randomized X, Y, and Z positions this time, not just X position like in the Cruis'n USA gifs. It's such a dumb hack and I love it to bits.



happens, but yeah...
I embedded (or tried) a decent sized MLP GIF on wikifoundry
i had to hotlink it, sadly...

figured
i love it, too... should make a ROM hack or AR code for it if possible...XD


____________________

awesome title later...

CruisnEma
Member
Level: 24


Posts: 71/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 07-02-17 09:01:57 AM (last edited by CruisnEma at 07-03-17 01:28:36 PM) Link | Quote
Originally posted by BoringPerson
Have fun!

P.S. This code is very sloppy, and it will probably mess up or crash other parts of the game if you leave it on. If you can't get it to work (very possible, it's a sloppy code) then let me know and I'll put up a few gifs or something.

Well, you replaced the 3D models with other in the stage? Then is the GIB routine? I think is the right routine, for deer and cow use 2 different 3D models and textures, but if you can replace with these I think will not be a problem for you. The only problem could be find the original 3D models... But first I think the problem is set them randomly in the stage like in the arcade, and set also the cow's cry when you pass near it (prehaps you can copy the near cry from the trucks when you pass near them, also without touch them, they play the horn), the cry is into the rom is the song number 61, and have to play at the 6000 sample rate, I found it with the soundlist tool, if you want to check in the tool you have to search it in the "instruments" table and under it set the 6000 sample rate. The cow is also static, without animation.

Can you please try to put the cow in Iowa for now? Have to be in Indiana, but if you can't reach Indiana in an easy way (you have to press a button combination to highlight it and not is easy at the beginning if you don't know Cruis'n USA) to test it, test if you can put it in the street with the cry and set the routine you have found with these 3D models to test the GIB, and if the 3D models are missing maybe I can ask to my cousin if could create them for me, also if I don't know how insert to the game yet.

P.S. I have a question... When you hit the deer in the arcade version appear only 1 skull and other undefined pieces, with your code appear I think 3 unit of 2 different signs, bar and the payment cabinet, you set them randomly or the routine then load this 3D models in this way? Could be a problem, have to load only 1 skull as example. XD
BoringPerson
Member
Level: 18


Posts: 20/70
EXP: 25607
For next: 4290

Since: 01-29-17


Since last post: 1.8 years
Last activity: 1.3 years

Posted on 07-06-17 02:50:23 AM Link | Quote
(I've put both images behind spoiler tags because IMO they're kind of motion-sickness inducing if you watch too long.)

First, an explanation for anyone else reading—here's what the code I posted is supposed to do:

The code makes that orange-and-white sign gib when you hit it, and it turns the invisible roadkill chunks into other visible models.


Also, you can hit the roadkill chunks and bump them around, just like in the arcade version.
Unfortunately the code is really specific and kind of shoddy—it only works at the first toll booth in Iowa. (It also sort of works at the 2nd tollbooth, but the roadkill chunks turn into different models this time, and the game may act strangely.)

(Incidentally, my earlier attempts to hack the N64 video plugin were probably pointless, so it's a good thing I gave up on that. Roadkill chunks use a model value of 00000000—I suspect that means no model at all. So if my suspicion is correct, my attempted hack would have done absolutely nothing to make roadkill chunks visible.)

Originally posted by CruisnEma
(things to try)

Unfortunately, that stuff is all beyond me right now. I wasn't kidding when I said my code was shoddy—it's good for proving that the gib routine exists, but it's not good for actually putting the cow back in the game yet.

To be honest, I'm not sure what I'm going to do from here on out. It's not very clear what I need to do next. I also want to get back to hacking another game I was working on, but I don't want to drop this entirely. I'll need some time to think about this (and just to take a break in general and get recharged).

Originally posted by CruisnEma
P.S. I have a question... When you hit the deer in the arcade version appear only 1 skull and other undefined pieces, with your code appear I think 3 unit of 2 different signs, bar and the payment cabinet, you set them randomly or the routine then load this 3D models in this way? Could be a problem, have to load only 1 skull as example. XD

When I run into that orange-and-white roadblock sign, the values for the roadkill chunk models are read from four places in memory:
address: value: model:
80045410: 00000000 no model
80045420: 00000000 no model
80045430: 00000000 no model
80045440: 00000000 no model

As you see, all four of these places normally have a value of 00000000, which is why the roadkill chunks are invisible.

This is what the code changes them to:
address: value: model:
80045410: 8015 8FC4 stop sign
80045420: 8015 8D5C red bar
80045430: 8015 8E58 orange-and-white sign
80045440: 8015 8DCC blue pillar

(Incidentally, those same values will become other models later in the stage, so this isn't a reliable way to mod the game.)

Using the addresses above, the game creates roadkill chunks in this order. (I 'm only showing the last two digits of each address):
10 20 20 30 40 10
10 20 20 30 40 10
10 20 20 30 40 10

So that's a total of 18 roadkill chunks: in our case, I think it's 6 stop signs, 6 red bars, 3 orange-and-white signs, and 3 blue pillars. I don't see just 1 of anything that would correspond to the skull.

However, notice the final 10 is underlined. For some reason (if I'm understanding it correctly), all the roadkill chunks until that point are created in a single frame, but that final chunk is created on the next frame. This is pure speculation right now, but maybe the last one is meant to be a skull. If that isn't the answer, then I don't know, maybe they changed it for the N64 version. Or maybe there's something else going on.

So wait, does the cow have a skull when it gibs, or is that only the deer?



brian151
Banned
The administration (as well as a few users) have decided that you're creepy/weird enough that it's time to activate the sploded clause.
Laters.


Level: NaN


Posts: 212/-249
EXP: NaN
For next: 0

Since: 08-09-16

From: USA

Since last post: 4.7 years
Last activity: 4.7 years

Posted on 07-06-17 05:33:09 AM Link | Quote


*BARF!* JK LOL
idk how long i'd have to stare, i think i'd get totally bored LOOOONG before then.
Maybe if I browsed this thread while riding in a car! lol

Cool!

Well, my guess is either the devs have hard-coded the addresses/values of that stuff, or it's programmatically working-out the way you've observed. I can't say I'm surprised at this behavior.
One of my earlier attempts to do a full sprite-rip from ViewPoint for the Neo-Geo was particularly interesting... Sprites were, basically, jumping addresses. "oh, this ship just moved a few pixels-" "-and a few memory addresses". I gave-up using the sprite viewer pretty early... It was absolutely tedious...
Another thing to consider is back in the day, with as not powerful as the machines were, memory had to actually be managed. Probably what happens is the devs re-used the same memory addresses and change them when it's safe to do so. Optimizations also might explain how all but one of the models/objects were created on the same frame. In modern engines, the game ticks/updates at slower rate than it draws, well, usually... In a particularly intense moment, it may also do certain things in smaller batches. (Say I needed to initialize 100 objects, fairly complex ones. One way would be throw-up the loading screen and generate 10 of those objects each frame. If you've ever played MMOs, you'll know that they are big fans of the loading-while-playing model. I actually want to use it, myself.) Anyways, this is all just speculation... Take from it what you may. My suggestion would be figure-out why/how those addresses work-out the way that they do. Hopefully there's some function responsible for the loading/unloading of objects. (it'd be possible to invoke that if you did find it, right?)

____________________

awesome title later...

CruisnEma
Member
Level: 24


Posts: 72/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 07-06-17 07:04:52 PM Link | Quote
Originally posted by BoringPerson
(I've put both images behind spoiler tags because IMO they're kind of motion-sickness inducing if you watch too long.)


Also, you can hit the roadkill chunks and bump them around, just like in the arcade version.
Unfortunately the code is really specific and kind of shoddy—it only works at the first toll booth in Iowa. (It also sort of works at the 2nd tollbooth, but the roadkill chunks turn into different models this time, and the game may act strangely.)

(Incidentally, my earlier attempts to hack the N64 video plugin were probably pointless, so it's a good thing I gave up on that. Roadkill chunks use a model value of 00000000—I suspect that means no model at all. So if my suspicion is correct, my attempted hack would have done absolutely nothing to make roadkill chunks visible.)

Originally posted by CruisnEma
(things to try)

Unfortunately, that stuff is all beyond me right now. I wasn't kidding when I said my code was shoddy—it's good for proving that the gib routine exists, but it's not good for actually putting the cow back in the game yet.

To be honest, I'm not sure what I'm going to do from here on out. It's not very clear what I need to do next. I also want to get back to hacking another game I was working on, but I don't want to drop this entirely. I'll need some time to think about this (and just to take a break in general and get recharged).

Originally posted by CruisnEma
P.S. I have a question... When you hit the deer in the arcade version appear only 1 skull and other undefined pieces, with your code appear I think 3 unit of 2 different signs, bar and the payment cabinet, you set them randomly or the routine then load this 3D models in this way? Could be a problem, have to load only 1 skull as example. XD

When I run into that orange-and-white roadblock sign, the values for the roadkill chunk models are read from four places in memory:
address: value: model:
80045410: 00000000 no model
80045420: 00000000 no model
80045430: 00000000 no model
80045440: 00000000 no model

As you see, all four of these places normally have a value of 00000000, which is why the roadkill chunks are invisible.

This is what the code changes them to:
address: value: model:
80045410: 8015 8FC4 stop sign
80045420: 8015 8D5C red bar
80045430: 8015 8E58 orange-and-white sign
80045440: 8015 8DCC blue pillar

(Incidentally, those same values will become other models later in the stage, so this isn't a reliable way to mod the game.)

Using the addresses above, the game creates roadkill chunks in this order. (I 'm only showing the last two digits of each address):
10 20 20 30 40 10
10 20 20 30 40 10
10 20 20 30 40 10

So that's a total of 18 roadkill chunks: in our case, I think it's 6 stop signs, 6 red bars, 3 orange-and-white signs, and 3 blue pillars. I don't see just 1 of anything that would correspond to the skull.

However, notice the final 10 is underlined. For some reason (if I'm understanding it correctly), all the roadkill chunks until that point are created in a single frame, but that final chunk is created on the next frame. This is pure speculation right now, but maybe the last one is meant to be a skull. If that isn't the answer, then I don't know, maybe they changed it for the N64 version. Or maybe there's something else going on.

So wait, does the cow have a skull when it gibs, or is that only the deer?





Yeah, but the cow's skull is obviously different.

Then however when I thought that could be the pieces after the spinning I thought correctly. XD Yeah, is the GIB routine, is sure. Is great that is however existing, in Cruis'n World is fully working also if hidden, in Exotica if you hit an animal over the limits it only spin you around and bounce itself, recycling palms effect. But for Exotica is different, was ported in only 8 months, too things are unported.

Now the issues could be that have to load the sprites and the 3D model assigned to the track segment?

However you think that the 3D models and the textures couldn't be in the rom? If not, you could extract one random 3D model from the rom (and if you could re-insert into will be better)? I could pass it to my cousin to remade the needing models, he needs of N64 3D models, to see how many poligons are in the N64 models. Maybe couldn't be very faithful but without the original from the arcade one is the only way.

P.S. Please, don't quit the project, I trust in you, Cruis'n USA will be completed and will be beathiful.

Cruis'n World and Exotica have to spend too time to fix, not are only censored, but also too different and too things are missing. Cruis'n USA need only of restoring the censorship.
brian151
Banned
The administration (as well as a few users) have decided that you're creepy/weird enough that it's time to activate the sploded clause.
Laters.


Level: NaN


Posts: 214/-249
EXP: NaN
For next: 0

Since: 08-09-16

From: USA

Since last post: 4.7 years
Last activity: 4.7 years

Posted on 07-06-17 10:20:47 PM Link | Quote


Originally posted by CruisnEma
Cruis'n USA need only of restoring the censorship.


Sorry, but had to be said!
(spoilered in case of being considered "NSFW")


Also, don't you mean "removal of the censorship" or "restoring of the censored content" ?

____________________

awesome title later...

CruisnEma
Member
Level: 24


Posts: 73/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 07-07-17 03:43:54 PM (last edited by CruisnEma at 07-07-17 03:44:15 PM) Link | Quote
Only the trophy girl was censored, and I already did it years ago, and works perfectly also in the VC channel. XD XD XD

https://www.youtube.com/watch?v=5tLGSoB1m0c
BoringPerson
Member
Level: 18


Posts: 24/70
EXP: 25607
For next: 4290

Since: 01-29-17


Since last post: 1.8 years
Last activity: 1.3 years

Posted on 07-08-17 12:01:19 AM Link | Quote
Originally posted by CruisnEma
Someone know how extract textures or 3D models from Cruis'n USA, a Midaway game, from the arcade version?


I think that isn't the biggest obstacle right now. It will be necessary later, but I think right now the biggest issue is: does the N64 version have routines to place cows/deer randomly on the road, and if so, how the heck do you find those routines?

I am going to take a break of sorts. I made a personal wiki, but there's nothing on it yet so I won't link it. I will put some findings about from various game hacking stuff, including for Cruis'n USA. That way, someone else who knows how to hack games can see what I've found and maybe help out.
CruisnEma
Member
Level: 24


Posts: 75/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 07-08-17 12:50:17 PM Link | Quote
Mhh, I don't know if the routine could exists in the N64 rom, but I know that the crowd at the finish line is every time different and SubDrag changed the Cruis'n World trophy girl function for me, adding the random texture loading to load every time a different costume for the trophy girl, he said via a sort of timer, maybe the timer that reads the elapsed race time.

Maybe could be the same thing for the Roadkill function, maybe there are track segments where an animal could appear in the track, but maybe are loaded only if the timer matches. Sometimes you can see a cow just before the finish line in Indiana, but only sometimes.

Maybe you have to put about 10 cows/deers in the tracks, but that can be loaded only if the timer matches.
Maybe would not be very faithful, we don't have the arcade source code, but would be very similar.

I don't know if the game only put a cow randomly in every point of the track only following the right side rule, but I don't think, the coordinates can't be always the same, the road have the turns.

Otherwise if you want you could search the original function, if still exists (but I don't think, however is still a surprise discover what the devs made, then could be) would be better, would be very faithful to the arcade one.

If you think that will be easy extract the textures/3D models from the arcade rom is also wonderful!
CruisnEma
Member
Level: 24


Posts: 76/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 07-14-17 03:14:04 PM Link | Quote
Hem, Boring, can you please fix also the D-pad left and right? 'Cause don't work fine, if with an emulator I map the analog stick with the D-pad the D-pad is very accurate, if I use the official D-pad with the WII VC channel (that can't be mapped) have hard controls and I prefer use the D-pad instead of the analog stick.

Cruis'n World didn't have the D-pad but the Not64 emulator that works very fine with World can be mapped, Cruis'n Exotica was the only game of the franchise that had a very fine D-pad.

I don't know how you could do it, if is possible copy the analog controls lef/right also with the D-pad, if isn't possible use the good left/right controls togheter with D-pad and analog stick I prefer switch them. Can you please fix them?
CruisnEma
Member
Level: 24


Posts: 77/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 08-16-17 09:56:25 PM Link | Quote
UP @BoringPerson where r u? XD
BoringPerson
Member
Level: 18


Posts: 28/70
EXP: 25607
For next: 4290

Since: 01-29-17


Since last post: 1.8 years
Last activity: 1.3 years

Posted on 08-17-17 12:10:56 AM Link | Quote
Oh hey, sorry about that. I was going to put up what I found so far on a wiki (probably DataCrystal), but then real life stuff happened as it typically does. I need to be honest here: Even though I got this far, I can't continue what I started—I just don't have the technical experience or the passion it requires. The best I can do is write what I found and hope someone else will read it and continue where I left off.

For now I'm still feeling tired from real-life stuff, but if I get around to writing a page on DataCrystal, I'll say so here.
CruisnEma
Member
Level: 24


Posts: 78/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 08-17-17 10:06:55 AM (last edited by CruisnEma at 08-17-17 10:15:32 AM) Link | Quote
Ok, thank you.

However once you said that you can rip 3D models and textures from the arcade, can you help about then please?
BoringPerson
Member
Level: 18


Posts: 29/70
EXP: 25607
For next: 4290

Since: 01-29-17


Since last post: 1.8 years
Last activity: 1.3 years

Posted on 08-18-17 03:06:03 AM Link | Quote
Originally posted by CruisnEma
However once you said that you can rip 3D models and textures from the arcade, can you help about then please?


I don't remember saying that, and if I did say it, I apologize because that isn't something I can do now
CruisnEma
Member
Level: 24


Posts: 79/108
EXP: 68593
For next: 9532

Since: 02-01-12


Since last post: 2.8 years
Last activity: 49 days

Posted on 08-19-17 08:50:06 AM Link | Quote
Ok, no problem, thank you.
BoringPerson
Member
Level: 18


Posts: 30/70
EXP: 25607
For next: 4290

Since: 01-29-17


Since last post: 1.8 years
Last activity: 1.3 years

Posted on 08-20-17 05:38:20 AM Link | Quote
Okay, the page is now up at Data Crystal, where it will remain if I didn't screw anything up too badly. (Check the Notes page for stuff about Roadkill Collision.) Unfortunately my motivation ran out before I got the chance to find where those RAM values are loaded from in ROM.

And with that, my involvement is over. I'm sad it had to end like this, but I'm happy I got a chance to play with a Nintendo 64 debugger and try out some new things.

Speaking of new things... CruisnEma, I don't know how familiar you are with MIPS assembly (which is what the N64 uses), but if you are interested in learning it, this online tutorial looks like a good place to start.
Pages: 1 2 3 Next newer thread | Next older thread
Jul - General Game/ROM Hacking - I offer 50$ to restore GIB routine in Cruis'n USA New poll - New thread - New reply


Rusted Logic

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

27 database queries, 11 query cache hits.
Query execution time:  0.082828 seconds
Script execution time:  0.050180 seconds
Total render time:  0.133008 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 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 222 - 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 50 - Warning: missing </font> before </td>
line 149 column 165 - 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 102 - Warning: unescaped & or unknown entity "&postid"
line 179 column 74 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 1089 - Warning: missing </div>
line 199 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 201 column 9 - Warning: missing <tr>
line 219 column 13 - Warning: missing <tr>
line 220 column 102 - Warning: unescaped & or unknown entity "&postid"
line 232 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 234 column 9 - Warning: missing <tr>
line 252 column 13 - Warning: missing <tr>
line 253 column 102 - Warning: unescaped & or unknown entity "&postid"
line 258 column 298 - Warning: missing </label> before <div>
line 258 column 358 - Warning: inserting implicit <label>
line 258 column 364 - Warning: inserting implicit <label>
line 258 column 364 - Warning: missing </label> before <div>
line 258 column 407 - Warning: inserting implicit <label>
line 258 column 407 - Warning: missing </label> before <div>
line 258 column 412 - Warning: inserting implicit <label>
line 258 column 479 - Warning: discarding unexpected </label>
line 261 column 631 - Warning: missing </label> before <div>
line 261 column 691 - Warning: inserting implicit <label>
line 261 column 697 - Warning: inserting implicit <label>
line 261 column 697 - Warning: missing </label> before <div>
line 261 column 740 - Warning: inserting implicit <label>
line 261 column 740 - Warning: missing </label> before <div>
line 261 column 745 - Warning: inserting implicit <label>
line 261 column 812 - Warning: discarding unexpected </label>
line 296 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 298 column 9 - Warning: missing <tr>
line 316 column 13 - Warning: missing <tr>
line 317 column 102 - Warning: unescaped & or unknown entity "&postid"
line 319 column 74 - Warning: <style> isn't allowed in <td> elements
line 319 column 9 - Info: <td> previously mentioned
line 319 column 1089 - Warning: missing </div>
line 332 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 334 column 9 - Warning: missing <tr>
line 352 column 13 - Warning: missing <tr>
line 353 column 102 - Warning: unescaped & or unknown entity "&postid"
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 424 column 102 - Warning: unescaped & or unknown entity "&postid"
line 426 column 74 - Warning: <style> isn't allowed in <td> elements
line 426 column 9 - Info: <td> previously mentioned
line 432 column 1349 - Warning: missing </label> before <div>
line 432 column 1409 - Warning: inserting implicit <label>
line 432 column 1415 - Warning: inserting implicit <label>
line 432 column 1415 - Warning: missing </label> before <div>
line 432 column 1458 - Warning: inserting implicit <label>
line 432 column 1458 - Warning: missing </label> before <div>
line 433 column 1 - Warning: inserting implicit <label>
line 434 column 1547 - Warning: inserting implicit <label>
line 434 column 1553 - Warning: discarding unexpected </label>
line 426 column 1089 - Warning: missing </div>
line 439 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 441 column 9 - Warning: missing <tr>
line 459 column 13 - Warning: missing <tr>
line 460 column 102 - Warning: unescaped & or unknown entity "&postid"
line 467 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 469 column 9 - Warning: missing <tr>
line 487 column 13 - Warning: missing <tr>
line 488 column 102 - Warning: unescaped & or unknown entity "&postid"
line 497 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 499 column 9 - Warning: missing <tr>
line 517 column 13 - Warning: missing <tr>
line 518 column 102 - Warning: unescaped & or unknown entity "&postid"
line 534 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 536 column 9 - Warning: missing <tr>
line 554 column 13 - Warning: missing <tr>
line 555 column 102 - Warning: unescaped & or unknown entity "&postid"
line 564 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 566 column 9 - Warning: missing <tr>
line 584 column 13 - Warning: missing <tr>
line 585 column 102 - Warning: unescaped & or unknown entity "&postid"
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 611 column 102 - Warning: unescaped & or unknown entity "&postid"
line 618 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 620 column 9 - Warning: missing <tr>
line 638 column 13 - Warning: missing <tr>
line 639 column 102 - Warning: unescaped & or unknown entity "&postid"
line 646 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 648 column 9 - Warning: missing <tr>
line 666 column 13 - Warning: missing <tr>
line 667 column 102 - Warning: unescaped & or unknown entity "&postid"
line 674 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 676 column 9 - Warning: missing <tr>
line 694 column 13 - Warning: missing <tr>
line 695 column 102 - Warning: unescaped & or unknown entity "&postid"
line 700 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 702 column 9 - Warning: missing <tr>
line 720 column 13 - Warning: missing <tr>
line 721 column 102 - Warning: unescaped & or unknown entity "&postid"
line 730 column 17 - Warning: missing <tr>
line 730 column 17 - Warning: discarding unexpected <table>
line 733 column 35 - Warning: missing <tr>
line 733 column 95 - Warning: unescaped & or unknown entity "&page"
line 733 column 128 - Warning: unescaped & or unknown entity "&page"
line 733 column 50 - Warning: missing </font> before </td>
line 733 column 165 - Warning: missing </font> before </table>
line 735 column 35 - Warning: missing <tr>
line 735 column 50 - Warning: missing </font> before </td>
line 736 column 37 - Warning: unescaped & or unknown entity "&id"
line 735 column 222 - Warning: missing </font> before </table>
line 737 column 17 - Warning: discarding unexpected </textarea>
line 737 column 28 - Warning: discarding unexpected </form>
line 737 column 35 - Warning: discarding unexpected </embed>
line 737 column 43 - Warning: discarding unexpected </noembed>
line 737 column 53 - Warning: discarding unexpected </noscript>
line 737 column 64 - Warning: discarding unexpected </noembed>
line 737 column 74 - Warning: discarding unexpected </embed>
line 737 column 82 - Warning: discarding unexpected </table>
line 737 column 90 - Warning: discarding unexpected </table>
line 739 column 9 - Warning: missing </font> before <table>
line 751 column 25 - Warning: discarding unexpected </font>
line 760 column 58 - Warning: discarding unexpected </font>
line 738 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 246 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 23 - Warning: <img> lacks "alt" attribute
line 161 column 64 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 196 column 2228 - Warning: <ul> anchor "ihadbtnz" already defined
line 196 column 2436 - Warning: <li> anchor "ihadbtn" already defined
line 204 column 22 - Warning: <img> lacks "alt" attribute
line 204 column 63 - Warning: <img> lacks "alt" attribute
line 204 column 111 - Warning: <img> lacks "alt" attribute
line 204 column 161 - Warning: <img> lacks "alt" attribute
line 215 column 15 - Warning: <img> lacks "alt" attribute
line 237 column 22 - Warning: <img> lacks "alt" attribute
line 237 column 63 - Warning: <img> lacks "alt" attribute
line 237 column 112 - Warning: <img> lacks "alt" attribute
line 237 column 162 - Warning: <img> lacks "alt" attribute
line 238 column 11 - Warning: <img> lacks "alt" attribute
line 248 column 15 - Warning: <img> lacks "alt" attribute
line 258 column 412 - Warning: <img> lacks "alt" attribute
line 261 column 745 - Warning: <img> lacks "alt" attribute
line 301 column 23 - Warning: <img> lacks "alt" attribute
line 301 column 64 - Warning: <img> lacks "alt" attribute
line 312 column 15 - Warning: <img> lacks "alt" attribute
line 319 column 1089 - Warning: <div> anchor "ihadpost" already defined
line 329 column 2932 - Warning: <h3> anchor "ihadhead" already defined
line 329 column 2977 - Warning: <div> anchor "ihadbtnz" already defined
line 329 column 2996 - Warning: <ul> anchor "ihadbtnz" already defined
line 329 column 3014 - Warning: <li> anchor "ihadbtn" already defined
line 329 column 3204 - Warning: <li> anchor "ihadbtn" already defined
line 337 column 22 - Warning: <img> lacks "alt" attribute
line 337 column 63 - Warning: <img> lacks "alt" attribute
line 337 column 111 - Warning: <img> lacks "alt" attribute
line 337 column 161 - Warning: <img> lacks "alt" attribute
line 348 column 15 - Warning: <img> lacks "alt" attribute
line 408 column 23 - Warning: <img> lacks "alt" attribute
line 408 column 64 - Warning: <img> lacks "alt" attribute
line 419 column 15 - Warning: <img> lacks "alt" attribute
line 426 column 1089 - Warning: <div> anchor "ihadpost" already defined
line 436 column 1690 - Warning: <h3> anchor "ihadhead" already defined
line 436 column 1735 - Warning: <div> anchor "ihadbtnz" already defined
line 436 column 1754 - Warning: <ul> anchor "ihadbtnz" already defined
line 436 column 1772 - Warning: <li> anchor "ihadbtn" already defined
line 436 column 1962 - Warning: <li> anchor "ihadbtn" already defined
line 444 column 22 - Warning: <img> lacks "alt" attribute
line 444 column 63 - Warning: <img> lacks "alt" attribute
line 444 column 111 - Warning: <img> lacks "alt" attribute
line 444 column 161 - Warning: <img> lacks "alt" attribute
line 455 column 15 - Warning: <img> lacks "alt" attribute
line 472 column 22 - Warning: <img> lacks "alt" attribute
line 472 column 63 - Warning: <img> lacks "alt" attribute
line 472 column 112 - Warning: <img> lacks "alt" attribute
line 472 column 162 - Warning: <img> lacks "alt" attribute
line 473 column 11 - Warning: <img> lacks "alt" attribute
line 483 column 15 - Warning: <img> lacks "alt" attribute
line 502 column 22 - Warning: <img> lacks "alt" attribute
line 502 column 63 - Warning: <img> lacks "alt" attribute
line 502 column 111 - Warning: <img> lacks "alt" attribute
line 502 column 161 - Warning: <img> lacks "alt" attribute
line 513 column 15 - Warning: <img> lacks "alt" attribute
line 539 column 22 - Warning: <img> lacks "alt" attribute
line 539 column 63 - Warning: <img> lacks "alt" attribute
line 539 column 111 - Warning: <img> lacks "alt" attribute
line 539 column 161 - Warning: <img> lacks "alt" attribute
line 550 column 15 - Warning: <img> lacks "alt" attribute
line 569 column 22 - Warning: <img> lacks "alt" attribute
line 569 column 63 - Warning: <img> lacks "alt" attribute
line 569 column 111 - Warning: <img> lacks "alt" attribute
line 569 column 161 - Warning: <img> lacks "alt" attribute
line 580 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 112 - Warning: <img> lacks "alt" attribute
line 595 column 162 - Warning: <img> lacks "alt" attribute
line 596 column 11 - Warning: <img> lacks "alt" attribute
line 606 column 15 - Warning: <img> lacks "alt" attribute
line 623 column 22 - Warning: <img> lacks "alt" attribute
line 623 column 63 - Warning: <img> lacks "alt" attribute
line 623 column 111 - Warning: <img> lacks "alt" attribute
line 623 column 161 - Warning: <img> lacks "alt" attribute
line 634 column 15 - Warning: <img> lacks "alt" attribute
line 651 column 22 - Warning: <img> lacks "alt" attribute
line 651 column 63 - Warning: <img> lacks "alt" attribute
line 651 column 112 - Warning: <img> lacks "alt" attribute
line 651 column 162 - Warning: <img> lacks "alt" attribute
line 652 column 11 - Warning: <img> lacks "alt" attribute
line 662 column 15 - Warning: <img> lacks "alt" attribute
line 671 column 392 - Warning: <img> proprietary attribute value "absmiddle"
line 671 column 392 - Warning: <img> lacks "alt" attribute
line 679 column 22 - Warning: <img> lacks "alt" attribute
line 679 column 63 - Warning: <img> lacks "alt" attribute
line 679 column 111 - Warning: <img> lacks "alt" attribute
line 679 column 161 - Warning: <img> lacks "alt" attribute
line 690 column 15 - Warning: <img> lacks "alt" attribute
line 705 column 22 - Warning: <img> lacks "alt" attribute
line 705 column 63 - Warning: <img> lacks "alt" attribute
line 705 column 112 - Warning: <img> lacks "alt" attribute
line 705 column 162 - Warning: <img> lacks "alt" attribute
line 706 column 11 - Warning: <img> lacks "alt" attribute
line 716 column 15 - Warning: <img> lacks "alt" attribute
line 736 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 736 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 736 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 745 column 25 - Warning: <img> lacks "alt" attribute
line 750 column 267 - Warning: <img> lacks "alt" attribute
line 258 column 298 - Warning: trimming empty <label>
line 258 column 358 - Warning: trimming empty <label>
line 258 column 407 - Warning: trimming empty <label>
line 261 column 631 - Warning: trimming empty <label>
line 261 column 691 - Warning: trimming empty <label>
line 261 column 740 - Warning: trimming empty <label>
line 432 column 1349 - Warning: trimming empty <label>
line 432 column 1409 - Warning: trimming empty <label>
line 432 column 1458 - Warning: trimming empty <label>
line 434 column 1547 - Warning: trimming empty <label>
line 730 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 220 column 27 - Warning: <nobr> is not approved by W3C
line 253 column 27 - Warning: <nobr> is not approved by W3C
line 317 column 27 - Warning: <nobr> is not approved by W3C
line 353 column 27 - Warning: <nobr> is not approved by W3C
line 424 column 27 - Warning: <nobr> is not approved by W3C
line 460 column 27 - Warning: <nobr> is not approved by W3C
line 488 column 27 - Warning: <nobr> is not approved by W3C
line 518 column 27 - Warning: <nobr> is not approved by W3C
line 555 column 27 - Warning: <nobr> is not approved by W3C
line 585 column 27 - Warning: <nobr> is not approved by W3C
line 611 column 27 - Warning: <nobr> is not approved by W3C
line 639 column 27 - Warning: <nobr> is not approved by W3C
line 667 column 27 - Warning: <nobr> is not approved by W3C
line 695 column 27 - Warning: <nobr> is not approved by W3C
line 721 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 274 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