Register - Login
Views: 99364459
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 02:36:44 PM
Jul - SM64 Hacking (Archive) - Toad's Tool 0.6.0 (On hiatus for an indefinite amount of time) New poll - New thread - Thread closed
Pages: 1 2 3 4 5 6 7 8 9 10 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Next newer thread | Next older thread
Polygon model importer, how soon do you want it?
Please vote or be transformed into Walluigi!
Now! Even if it means it will be buggy and limited to a single untextured model!
 
11.4%, 14 votes
I could wait a month for more features and textured model import.
 
22.8%, 28 votes
I want all the features you can cram in, even if it means waiting indefinitely!
 
56.9%, 70 votes
You shouldn't have announced anything and released it when ready!
 
4.1%, 5 votes
Me don't care!
 
4.9%, 6 votes
Multi-voting is disabled. 123 users have voted.

Breegullbeak
Member
Level: 27


Posts: 39/135
EXP: 107578
For next: 8581

Since: 06-06-09


Since last post: 10.5 years
Last activity: 9.7 years

Posted on 10-12-09 06:31:02 PM Link
Originally posted by VL-Tone
Originally posted by GhostMaster3000
I tried using your importer and when it said "parsing" and "not using mtl " it crashed and did not import the level, what did i do wrong???


For one thing GhostMaster3000, you did post in the wrong topic

I managed to import the Spiral Mountain with textures. I did struggle a lot to find the right texture scaling value, and its still not right. I'm pretty sure there's something wrong with my texture scaling value conversion function.

Pictures here

There's no simple way we'll ever get this level in SM64 to look like it did in Banjo Kazooie. Rare did create a completely new graphic engine to support higher res textures and other stuff. It uses 64x64 pixels textures that the SM64 engine doesn't support (it supports up to 32x64). The BK engine can combine multiple layers of textures, fading them into one another. Polygons are also colorized smoothly in a way I never seen in SM64.

Another thing, I found a lot of places where Mario would simply fall into the ground while walking and die. SM64's collision engine is very flaky, it was probably much more polished in BK.


WOW! Just seeing that made me dislocate my jaw so it could reach the floor. I want this update more than ever now.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 533/621
EXP: 1135466
For next: 21653

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 10-12-09 10:39:54 PM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Originally posted by wwwarea
Wow, that looks nice. Cant wait for this tool. Wow, Banjo Kazooie - Spiral mountain.

I have a question though, will Toads tool 0.6.0 import obj's into more then one level? I'm not sure if it will. I saw level slots and replacing Bomb omb battle field in the old screen shots.



Version 0.6b has 20 custom level slots, you can decide which level each slot will replace.

Originally posted by Breegullbeak

WOW! Just seeing that made me dislocate my jaw so it could reach the floor. I want this update more than ever now.



There were a few texture problems in those screenshots, namely they were flipped upside down. I fixed that and made a Youtube video which is currently processing.

____________________
Breegullbeak
Member
Level: 27


Posts: 40/135
EXP: 107578
For next: 8581

Since: 06-06-09


Since last post: 10.5 years
Last activity: 9.7 years

Posted on 10-12-09 10:42:55 PM Link
Originally posted by VL-Tone
Originally posted by wwwarea
Wow, that looks nice. Cant wait for this tool. Wow, Banjo Kazooie - Spiral mountain.

I have a question though, will Toads tool 0.6.0 import obj's into more then one level? I'm not sure if it will. I saw level slots and replacing Bomb omb battle field in the old screen shots.


Version 0.6b has 20 custom level slots, you can decide which level each slot will replace.

Originally posted by Breegullbeak

WOW! Just seeing that made me dislocate my jaw so it could reach the floor. I want this update more than ever now.


There were a few texture problems in those screenshots, namely they were flipped upside down. I fixed that and made a Youtube video which is currently processing.


Sounds awsome. About how many faces can you fit currently in a obj. with it still working?
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 534/621
EXP: 1135466
For next: 21653

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 10-12-09 10:55:41 PM (last edited by VL-Tone at 10-12-09 08:14 PM) Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
I think this model has like 4000+ polygons and uses 512k of RAM (half of what a level slot can contain). I forgot to tell you guys, there's a big problem in the current version of TT64, it will only read the first 2000 polygon commands, so levels like this won't show up completely. This was an artificial limitation I put back in the days to prevent it from reading data until the end of the ROM if something did go wrong. I removed the limitation in v0.6b.

Here's the Spiral Mountain video:

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

Edit: Hmmm weird, this video appears in High Quality when emmbeded, but in crappy quality when viewed directly on Youtube (with no HQ button). And the two other videos I posted yesterday are now in crappy quality while they were in HQ yesterday.

____________________
Breegullbeak
Member
Level: 27


Posts: 41/135
EXP: 107578
For next: 8581

Since: 06-06-09


Since last post: 10.5 years
Last activity: 9.7 years

Posted on 10-12-09 11:38:03 PM Link
Nice ending. I can't take credit for getting the file out of the game though. Credit Cooliscool of the RWP. He made the model ripper/viewer.

Their is another part to the model that has the bridge and the fences. I may also be able to search out the water model for the level to if it would help at all.

I could actually get you most of the charecters and objects as well.
VideoGuy
Member
Level: 22


Posts: 47/84
EXP: 52952
For next: 5398

Since: 05-10-09


Since last post: 12.0 years
Last activity: 9.9 years

Posted on 10-12-09 11:38:35 PM Link
Wow, that was amazing. I can see SM64 hacking becoming a lot more mainstream with this tool. It's good to see the SM64 engine can support a model like that without lagging, it gives me more confidence in the stuff I'm making with Blender.

I'm guessing from that video that TT64 doesn't use alpha when importing textures? Or was that the fault of the texture?
Breegullbeak
Member
Level: 27


Posts: 42/135
EXP: 107578
For next: 8581

Since: 06-06-09


Since last post: 10.5 years
Last activity: 9.7 years

Posted on 10-12-09 11:44:28 PM Link
Originally posted by VideoGuy
Wow, that was amazing. I can see SM64 hacking becoming a lot more mainstream with this tool. It's good to see the SM64 engine can support a model like that without lagging, it gives me more confidence in the stuff I'm making with Blender.

I'm guessing from that video that TT64 doesn't use alpha when importing textures? Or was that the fault of the texture?


The textures are not set up like the textures that SUper Mario 64 uses. In BK it's just the texture while on Super Mario 64 there is the texture followed by what the game picks up. Basicly some of the stuff could be improved while other things most likely can't.
messiaen
Catgirl
Level: 68


Posts: 671/1085
EXP: 2593952
For next: 134848

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-13-09 01:27:04 AM Link
Originally posted by VL-Tone
I think this model has like 4000+ polygons and uses 512k of RAM (half of what a level slot can contain). I forgot to tell you guys, there's a big problem in the current version of TT64, it will only read the first 2000 polygon commands, so levels like this won't show up completely. This was an artificial limitation I put back in the days to prevent it from reading data until the end of the ROM if something did go wrong. I removed the limitation in v0.6b.


I was going to ask you about this , I noticed that only half of the level shows up in TT64. The Spiral Mountain looked very nice, I haven't played Banjo so I don't know how different it looks in that game. When importing the .obj file, I actually scaled down the vertex to 70% of the original size to avoid the invisible boundaries problem. I also noticed that at some points you just fall through the floor, but I thought it was a problem with my importer.
unintelligentgenius
Random nobody
Level: 7


Posts: 1/6
EXP: 994
For next: 454

Since: 10-13-09


Since last post: 12.5 years
Last activity: 12.3 years

Posted on 10-13-09 03:21:04 AM (last edited by unintelligentgenius at 10-13-09 12:32 AM) Link
Hey VL (I'm new here), I was wondering, what's a good face count on a new obj. imported into Toad's Tool?
Also, you can delete and replace mesh terrain, right?

Edit: Also, how do you make invisible walls? I assumed using a mesh with just an completely alpha'd texture.
Is that right?
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 535/621
EXP: 1135466
For next: 21653

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 10-13-09 05:49:38 AM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Originally posted by VideoGuy
Wow, that was amazing. I can see SM64 hacking becoming a lot more mainstream with this tool. It's good to see the SM64 engine can support a model like that without lagging, it gives me more confidence in the stuff I'm making with Blender.

I'm guessing from that video that TT64 doesn't use alpha when importing textures? Or was that the fault of the texture?



It's planned that TT64 v0.6b will be able to use the alpha channel for textures, but it doesn't currently. I didn't check, but I'm not sure that the texture provided for the BK level had their alpha channel (which by the way in SM64, is only 1-bit for color textures)

Originally posted by unintelligentgenius
Hey VL (I'm new here), I was wondering, what's a good face count on a new obj. imported into Toad's Tool?
Also, you can delete and replace mesh terrain, right?

Edit: Also, how do you make invisible walls? I assumed using a mesh with just an completely alpha'd texture.
Is that right?



Hi unintelligentgenius, welcome to the forum. I would say that you should be safe with around 3000 faces, but I haven't done extensive tests yet. This level is more than 4000+, but I didn't put any enemies.

Originally posted by messiaen
I was going to ask you about this , I noticed that only half of the level shows up in TT64. The Spiral Mountain looked very nice, I haven't played Banjo so I don't know how different it looks in that game. When importing the .obj file, I actually scaled down the vertex to 70% of the original size to avoid the invisible boundaries problem. I also noticed that at some points you just fall through the floor, but I thought it was a problem with my importer.


You may want to take a look at this to see how the level is supposed to look: http://img26.imageshack.us/img26/5456/clipboard01jcg.jpg

First there's the vertex coloring that's missing (it's not in the .obj file and I'm not sure the .obj specs support vertex coloring). SM64 can do vertex coloring, but I'm not sure it can do the same kind of coloring. Then there are the higher resolution textures, but what's really impossible to do in SM64 can be seen on the bottom left and middle right. The BK engine can gradually fade between two layers of textures. The leave pattern on the left is actually on top of a brown ground pattern and it fades between the two layers at places.

I checked the collision map my importer generated and it looks normal, there's no missing triangles. The SM64 collision engine is definitally flaky. I can't imagine how many hours they had to test every single levels to find holes in the collision maps. I would venture to say that the levels that were cut from the final game were cut not only because of space, but also because they were the ones that probably still had collision problems.





____________________
BigBrain
Member
Level: 22


Posts: 60/85
EXP: 55265
For next: 3085

Since: 09-10-08


Since last post: 8.8 years
Last activity: 6.7 years

Posted on 10-13-09 10:04:39 AM Link
That's really too bad the SM64 engine does not support vertex diffuse colors - that's really a great limitation in the matter of level details...
With some manual tuning you could still get the path to show up though, just use a separate texture for it... Of course, the grey floor texture just needs to be premultiplied with the actual vertex diffuse color, as well as any other texture that expects the vertex diffuse colors to be available (this is about any texture as far as I could see, just look how the terrain is much more saturated in BK).

Cool to see how the SM64 still can handle this kind of levels though, keep up the good work
messiaen
Catgirl
Level: 68


Posts: 673/1085
EXP: 2593952
For next: 134848

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 10-13-09 01:28:27 PM Link
Originally posted by VL-Tone
I checked the collision map my importer generated and it looks normal, there's no missing triangles. The SM64 collision engine is definitally flaky. I can't imagine how many hours they had to test every single levels to find holes in the collision maps. I would venture to say that the levels that were cut from the final game were cut not only because of space, but also because they were the ones that probably still had collision problems.


Another possibility is that there is a limit for collision triangles. An easy way to test this would be to invert the face order and see what happens. If the falling spots change, it's a limitation of the game. By the way, since video emulation is all high level we many never know for sure about polygon count limitations.
xdaniel
980
Level: 64


Posts: 16/982
EXP: 2151468
For next: 62629

Since: 12-04-08

Pronouns: he/they
From: Germany

Since last post: 16 days
Last activity: 7 hours

Posted on 10-13-09 07:51:30 PM (last edited by xdaniel at 10-13-09 06:00 PM) Link
*randomly drops in*

A question/comment about the SM64 engine not supporting texture combining and such: The SetCombine graphics command (0xFC) which is responsible for such things as multi-texturing, is a shared command between many if not all microcodes, and thus Mario's Fast3D microcode should in theory support everything it allows, too. Actually, if the logs of my old MariOZMAV viewer are to be trusted (and, at least in this case, I do so), Mario 64 does even use the command - not for multi-texturing maybe, but it does use it somehow.

I'm not saying that Mario 64 MUST WITHOUT FAIL!!11 support multi-texturing or other advanced rendering techniques, but I guess it might be worth trying out?

EDIT:

The Zelda OoT Debug ROM's test map imported via messiaen's Wavefront importer, some badly patched together combiner setup lifted from OoT's Hyrule Field's grass and 45 minutes of hacking around:


Two more screenshots: http://magicstone.de/dzd/random/sm64_comb2.png & http://magicstone.de/dzd/random/sm64_comb3.png

Doesn't look pretty, but Mario 64 is able to do multi-texturing. Also, the relevant part of the display list, as MariOZMAV spits it out:

  0x00008858:        F3D_TEXTURE                     [BB000002 FFFFFFFF] -

0x00008860: G_SETTIMG [FD100000 09006000] -
0x00008868: G_SETTILE [F5100000 07000000] -
0x00008870: G_LOADBLOCK [F3000000 073FF100] <unemulated>
0x00008878: G_RDPLOADSYNC [E6000000 00000000] -
0x00008880: G_RDPPIPESYNC [E7000000 00000000] -
0x00008888: G_SETTILE [F5101000 00014050] -
0x00008890: G_SETTILESIZE [F2000000 0007C07C] -
0x00008898: G_SETTIMG [FD100000 09005000] -
0x000088A0: G_SETTILE [F5100100 07000000] -
0x000088A8: G_LOADBLOCK [F3000000 073FF100] <unemulated>
0x000088B0: G_RDPLOADSYNC [E6000000 00000000] -
0x000088B8: G_RDPPIPESYNC [E7000000 00000000] -
0x000088C0: G_SETTILE [F5101100 01014050] -
0x000088C8: G_SETTILESIZE [F2000000 0107C07C] -
0x000088D0: G_SETCOMBINE [FC267E04 1FFCFDF8] <unemulated>
0x000088D8: G_SETPRIMCOLOR [FA000000 FFFFFFFF] -
0x000088E0: <unknown> [FB000000 80808080] -


("unknown" being G_SETENVCOLOR, btw)

Hope this helps somehow and/or... wasn't already known? ^^"


____________________
cu xdaniel
Gecko
Member
Level: 25


Posts: 54/113
EXP: 83005
For next: 6615

Since: 03-27-09


Since last post: 9.1 years
Last activity: 7.6 years

Posted on 10-15-09 04:10:34 PM Link
I just had another idea while viewing your latest videos. Maybe it could be useful being able to create prefabs which means putting two or more items together in a speacial manner saving them onto a "prefab slot". The next step would be selecting a prefab slot and create a copy of the very same object combination, e.g. a tree with a red coin on its top which could save everyone some time. Prefabs could be sharable so everyone could import prefabs created by other users, analogous/similar to your TT64 level file standard.
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 192


Posts: 3534/12211
EXP: 99232311
For next: 641260

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 10-17-09 12:40:06 AM Link

Time/Date

&date&

Posts

&numposts&

Days Here

&numdays&

Level

&level&
Metal_Man88
Local Moderator
Suvo's junk posts in here have been deleted. He should really post them in the question/ suggestions thread, not here.



____________________
Original Layout © Tobias Kelmandia
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 538/621
EXP: 1135466
For next: 21653

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 10-18-09 05:30:04 AM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Welcome back xdaniel!

The thing is, despite having done a SM64 geometry decoder and an importer in TT64, I don't have a very deep knowledge of the actual GBI commands. Most of the reverse-engineering I did was through deductions and experimentation. So I'm not sure I understand how this SetCombine command works and how did you use it in your example. One thing I know is that what the Banjo Kazooie engine seems able to do is use two textured polygon layers and fade between them at the polygon level (not the texture level). It's kind of like they used vertex coloring but with an alpha channel.

Originally posted by Gecko
I just had another idea while viewing your latest videos. Maybe it could be useful being able to create prefabs which means putting two or more items together in a speacial manner saving them onto a "prefab slot". The next step would be selecting a prefab slot and create a copy of the very same object combination, e.g. a tree with a red coin on its top which could save everyone some time. Prefabs could be sharable so everyone could import prefabs created by other users, analogous/similar to your TT64 level file standard.


That's a good idea which I will probably implement in a future version. That makes me think: one of the interesting side benefit of the level file feature in the importer (which can contain objects from a level too, aside from the import parameters, the .obj file and textures.) is that clever people with some programming experience could feed mathematically calculated object positions in TT64.

Remember that first "flatworld" youtube demo I posted with the boxes making a spiral path? http://www.youtube.com/watch?v=SU6cIPdGllU. Some people were wondering how I did place the boxes in such a perfect spiral. It was easy for me since I have access to an "open version" of TT64, and I simply made a simple routine that uses SIN and COS to place the boxes at the right position in space.

With the "open" nature of the custom level file format in TT64 0.6 (which is a text file) some clever programmer could generate a level file that places objects in a level in a circle or whatever shape they want without having to move them manually in TT64. Here's an idea: someone could make a program that writes any text message you want in a level using coins (that reminds me of a program I did that would write messages in Starfox using asteroids).

____________________
xdaniel
980
Level: 64


Posts: 17/982
EXP: 2151468
For next: 62629

Since: 12-04-08

Pronouns: he/they
From: Germany

Since last post: 16 days
Last activity: 7 hours

Posted on 10-18-09 08:36:10 PM Link
Originally posted by VL-Tone
Welcome back xdaniel!

The thing is, despite having done a SM64 geometry decoder and an importer in TT64, I don't have a very deep knowledge of the actual GBI commands. Most of the reverse-engineering I did was through deductions and experimentation. So I'm not sure I understand how this SetCombine command works and how did you use it in your example. One thing I know is that what the Banjo Kazooie engine seems able to do is use two textured polygon layers and fade between them at the polygon level (not the texture level). It's kind of like they used vertex coloring but with an alpha channel.


With the fading in BK you describe, do you mean ex. the fade-out at the level edge that can be seen in the Bottles' Glasses screenshot you've posted above, http://img26.imageshack.us/img26/5456/clipboard01jcg.jpg ? If it's that, I'm pretty sure that this actually isn't created by the combiner, because Bottles' Glasses doesn't even emulate it (as far as I can see from the program's source that cooliscool released some time ago).

Also, something I've been working on for a few days now: http://z64.spinout182.com/index.php?topic=391.0 - it's a tool that allows experimenting with and previewing combiner setups. Might be useful if anyone wants to mess with the combiner or so

btw, another multi-texturing experiment, this time using Flatworld as the base (which is way easier to work with instead of an imported Wavefront model in this case): http://magicstone.de/dzd/random/sm64_newcomb.png


____________________
cu xdaniel
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 540/621
EXP: 1135466
For next: 21653

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 10-19-09 06:36:26 AM Link
Time: One second ago - Date: Tomorrow - Weather: Sunshine - Mood: Moody Answer to the universe: Yes
Originally posted by xdaniel
With the fading in BK you describe, do you mean ex. the fade-out at the level edge that can be seen in the Bottles' Glasses screenshot you've posted above, http://img26.imageshack.us/img26/5456/clipboard01jcg.jpg ? If it's that, I'm pretty sure that this actually isn't created by the combiner, because Bottles' Glasses doesn't even emulate it (as far as I can see from the program's source that cooliscool released some time ago).

Also, something I've been working on for a few days now: http://z64.spinout182.com/index.php?topic=391.0 - it's a tool that allows experimenting with and previewing combiner setups. Might be useful if anyone wants to mess with the combiner or so

btw, another multi-texturing experiment, this time using Flatworld as the base (which is way easier to work with instead of an imported Wavefront model in this case): http://magicstone.de/dzd/random/sm64_newcomb.png



I was talking more specifically about these parts:

Looking at the level in TT64, I can see (because of the flickering in those areas) that there are two polygon layers precisely on top of each other, with different textures. What you can see in the game and in these screenshots is that the ground fades smoothly between these textures in a similar way to vertex coloring. The version imported in SM64 only shows the top polygon layer.

Your program looks very interesting, it might help me understand this SETCOMBINE command better. I still don't have a suitable "transparent texture" header to be used in the importer, and I'm sure this command is involved in making the engine use the alpha channel from textures.

I might not include the transparency option in 0.6b, because I expect some big problems with mixing non-transparent and transparent textures. In SM64, parts of the level that are using alpha textures are drawn separately using their own 0x15 commands, which include a value that specifies the "drawing layer". Tree shadows, fences, windows on the castle, the rest of the levels are drawn on 4 separate layers. I presume that without this separation into layers, the engine will run into serious z-ordering issues. Shockwave 3d (the 3d engine used in TT64) has similar issues with transparent textures, but unfortunately no way to control the z-ordering at the polygon level (I mostly avoid these issues in TT64 by splitting the level into polygon chunks, but if you take a look at the Tick-Tock Clock level in TT64, you'll see that there are sill issues).

So to avoid these problems I would have to do a major rewrite of my importing code, as well as figuring out how to use this drawing layer value.




Now here's some progress update:



This is the latest version of the importer interface.

When you click "Save level to ROM" you'll be presented with this dialog box:

Before saving you'll have to choose in which level slot you want to save it, and which level in the game it will replace.

The "Manage Level Slots" button will present you with a similar interface, but will be used to change the replacing levels for levels already saved in slots.

The "Empty Objects Only" option will save your level with empty 0x24 objects. The number of objects can be set.

The "Keep existing objects" will keep the objects found in the slot you're saving to.

And lastly, the "Use Objects From File" will use the objects found in the current level file (the number of objects found in the file is in parenthesis).

By default, objects won't be saved in the level file. Automatic saving of the objects in the file had too many potential problems. While it's obvious that when you just saved a level in slot 2, that you want objects from slot 2 to be copied in the level file, if you open another ROM where there's another level in slot 2, TT64 would save the wrong objects. That's why you can only save objects in the level file when you check the option ("When Saving Level File Also Copy Objects") which btw has the checkbox missing in the screenshot. And when you do use this option, you'll be presented with a dialog where you choose/confirm which slots you want to copy the objects from.

It sounds a little complicated, but keep in mind that the only time you'll want the objects copied in the level file is when you want to move a custom level from one ROM to another (or from one slot to another), with its objects intact. You don't need a constantly updated copy of the objects in the level file for this purpose, and you can always go back to copy the objects even if you forget to check the option, because those are saved in the ROM when you edit them in the main level editor module.

Normally, what you'll want to use is the "Keep Existing Objects" option, so if you change your .obj file and reimport the level, the objects that were already in the level slot will remain.

Note: I just realized that the "Polys:" count in the screenshot is wrong, it should read 3136 polys (triangles) for this level.





____________________
Rez2
User
Level: 13


Posts: 9/24
EXP: 8072
For next: 2195

Since: 05-27-09

From: England

Since last post: 10.5 years
Last activity: 4.1 years

Posted on 10-19-09 07:10:03 PM Link
That looks really good now VL-Tone. I don't know if you already talked about this or not, but can water be added?
cooliscool
User
Level: 9


Posts: 1/11
EXP: 2475
For next: 687

Since: 09-15-09


Since last post: 12.5 years
Last activity: 12.3 years

Posted on 10-19-09 07:16:54 PM (last edited by VL-Tone at 10-19-09 07:48 PM) Link
Originally posted by VL-Tone
Originally posted by VideoGuy
Wow, that was amazing. I can see SM64 hacking becoming a lot more mainstream with this tool. It's good to see the SM64 engine can support a model like that without lagging, it gives me more confidence in the stuff I'm making with Blender.

I'm guessing from that video that TT64 doesn't use alpha when importing textures? Or was that the fault of the texture?


It's planned that TT64 v0.6b will be able to use the alpha channel for textures, but it doesn't currently. I didn't check, but I'm not sure that the texture provided for the BK level had their alpha channel (which by the way in SM64, is only 1-bit for color textures)

Originally posted by unintelligentgenius
Hey VL (I'm new here), I was wondering, what's a good face count on a new obj. imported into Toad's Tool?
Also, you can delete and replace mesh terrain, right?

Edit: Also, how do you make invisible walls? I assumed using a mesh with just an completely alpha'd texture.
Is that right?


Hi unintelligentgenius, welcome to the forum. I would say that you should be safe with around 3000 faces, but I haven't done extensive tests yet. This level is more than 4000+, but I didn't put any enemies.

Originally posted by messiaen
I was going to ask you about this , I noticed that only half of the level shows up in TT64. The Spiral Mountain looked very nice, I haven't played Banjo so I don't know how different it looks in that game. When importing the .obj file, I actually scaled down the vertex to 70% of the original size to avoid the invisible boundaries problem. I also noticed that at some points you just fall through the floor, but I thought it was a problem with my importer.


You may want to take a look at this to see how the level is supposed to look: http://img26.imageshack.us/img26/5456/clipboard01jcg.jpg

First there's the vertex coloring that's missing (it's not in the .obj file and I'm not sure the .obj specs support vertex coloring). SM64 can do vertex coloring, but I'm not sure it can do the same kind of coloring. Then there are the higher resolution textures, but what's really impossible to do in SM64 can be seen on the bottom left and middle right. The BK engine can gradually fade between two layers of textures. The leave pattern on the left is actually on top of a brown ground pattern and it fades between the two layers at places.

I checked the collision map my importer generated and it looks normal, there's no missing triangles. The SM64 collision engine is definitally flaky. I can't imagine how many hours they had to test every single levels to find holes in the collision maps. I would venture to say that the levels that were cut from the final game were cut not only because of space, but also because they were the ones that probably still had collision problems.






Yeah, OBJ doesn't support per vertex coloring. I could potentially "emulate" it using a color map but that would make the resulting file huge. I could add the RGBA values (8-bits each) to the file as comments which you could read in; and I eventually want to switch to VRML which supports them natively. I can also have it export combiner MUXs as comments for use in your importer. As Xdaniel said, the color combiner commands are globals, all ucodes can use them to the same extent.

The .png textures that BG makes do have their alpha channels (thus why they're PNG).

Edit: Here's a new obj file with vertex RGBAs and precompiled SETCOMBINE commands.

How to interpret them (they're formatted like any other .obj command, space delimited):




vc r g b a - vertex colors, as floats. Multiply by 255 to get 8-bit integer values. They share indices with vertices and texture coords.
cmb command - compiled color combiner (0xFC) command for the current group; stays the same for subsequent groups until the next instance.
BK doesn't use SETPRIMCOLOR, SETENVCOLOR, or SETBLENDCOLOR, combiner generation relies solely on vertex shading, texel0 and texel1.

Pages: 1 2 3 4 5 6 7 8 9 10 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Toad's Tool 0.6.0 (On hiatus for an indefinite amount of time) New poll - New thread - Thread closed


Rusted Logic

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

44 database queries, 8 query cache hits.
Query execution time:  0.152762 seconds
Script execution time:  0.054359 seconds
Total render time:  0.207121 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 300 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 233 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 94 - Warning: unescaped & or unknown entity "&page"
line 149 column 126 - Warning: unescaped & or unknown entity "&page"
line 149 column 158 - Warning: unescaped & or unknown entity "&page"
line 149 column 190 - Warning: unescaped & or unknown entity "&page"
line 149 column 222 - Warning: unescaped & or unknown entity "&page"
line 149 column 254 - Warning: unescaped & or unknown entity "&page"
line 149 column 286 - Warning: unescaped & or unknown entity "&page"
line 149 column 318 - Warning: unescaped & or unknown entity "&page"
line 149 column 350 - Warning: unescaped & or unknown entity "&page"
line 149 column 382 - Warning: unescaped & or unknown entity "&page"
line 149 column 419 - Warning: unescaped & or unknown entity "&page"
line 149 column 453 - Warning: unescaped & or unknown entity "&page"
line 149 column 487 - Warning: unescaped & or unknown entity "&page"
line 149 column 521 - Warning: unescaped & or unknown entity "&page"
line 149 column 558 - Warning: unescaped & or unknown entity "&page"
line 149 column 592 - Warning: unescaped & or unknown entity "&page"
line 149 column 626 - Warning: unescaped & or unknown entity "&page"
line 149 column 660 - Warning: unescaped & or unknown entity "&page"
line 149 column 694 - Warning: unescaped & or unknown entity "&page"
line 149 column 728 - Warning: unescaped & or unknown entity "&page"
line 149 column 762 - Warning: unescaped & or unknown entity "&page"
line 149 column 796 - Warning: unescaped & or unknown entity "&page"
line 149 column 830 - Warning: unescaped & or unknown entity "&page"
line 149 column 864 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 901 - Warning: missing </font> before </table>
line 152 column 73 - Warning: missing </b> before </td>
line 155 column 210 - Warning: discarding unexpected </a>
line 156 column 131 - Warning: missing <tr>
line 159 column 195 - Warning: discarding unexpected </a>
line 160 column 133 - Warning: missing <tr>
line 163 column 209 - Warning: discarding unexpected </a>
line 164 column 132 - Warning: missing <tr>
line 167 column 195 - Warning: discarding unexpected </a>
line 168 column 133 - Warning: missing <tr>
line 171 column 144 - Warning: discarding unexpected </a>
line 172 column 131 - Warning: missing <tr>
line 175 column 66 - Warning: missing </font> before </td>
line 175 column 140 - Warning: plain text isn't allowed in <tr> elements
line 175 column 25 - Info: <tr> previously mentioned
line 182 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 184 column 9 - Warning: missing <tr>
line 202 column 13 - Warning: missing <tr>
line 220 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 222 column 9 - Warning: missing <tr>
line 240 column 13 - Warning: missing <tr>
line 243 column 74 - Warning: <style> isn't allowed in <td> elements
line 243 column 9 - Info: <td> previously mentioned
line 243 column 1502 - Warning: missing </font> before <blockquote>
line 243 column 1581 - Warning: inserting implicit <font>
line 243 column 1581 - Warning: missing </font> before <hr>
line 244 column 1 - Warning: inserting implicit <font>
line 244 column 1 - Warning: missing </font> before <hr>
line 246 column 1 - Warning: inserting implicit <font>
line 246 column 1 - Warning: missing </font> before <blockquote>
line 249 column 2063 - Warning: inserting implicit <font>
line 249 column 2063 - Warning: missing </font> before <hr>
line 250 column 1 - Warning: inserting implicit <font>
line 250 column 1 - Warning: missing </font> before <hr>
line 251 column 1 - Warning: inserting implicit <font>
line 243 column 138 - Warning: missing </div>
line 255 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 257 column 9 - Warning: missing <tr>
line 275 column 13 - Warning: missing <tr>
line 292 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 294 column 9 - Warning: missing <tr>
line 312 column 13 - Warning: missing <tr>
line 315 column 74 - Warning: <style> isn't allowed in <td> elements
line 315 column 9 - Info: <td> previously mentioned
line 319 column 2178 - Warning: unescaped & or unknown entity "&hl"
line 319 column 2184 - Warning: unescaped & or unknown entity "&fs"
line 319 column 2115 - Warning: discarding unexpected <param>
line 319 column 2192 - Warning: discarding unexpected </param>
line 319 column 2200 - Warning: discarding unexpected <param>
line 319 column 2243 - Warning: discarding unexpected </param>
line 319 column 2251 - Warning: discarding unexpected <param>
line 319 column 2298 - Warning: discarding unexpected </param>
line 319 column 2357 - Warning: unescaped & or unknown entity "&hl"
line 319 column 2363 - Warning: unescaped & or unknown entity "&fs"
line 315 column 138 - Warning: missing </div>
line 324 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 326 column 9 - Warning: missing <tr>
line 344 column 13 - Warning: missing <tr>
line 354 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 356 column 9 - Warning: missing <tr>
line 374 column 13 - Warning: missing <tr>
line 382 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 384 column 9 - Warning: missing <tr>
line 402 column 13 - Warning: missing <tr>
line 412 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 414 column 9 - Warning: missing <tr>
line 432 column 13 - Warning: missing <tr>
line 440 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 442 column 9 - Warning: missing <tr>
line 460 column 13 - Warning: missing <tr>
line 470 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 472 column 9 - Warning: missing <tr>
line 490 column 13 - Warning: missing <tr>
line 493 column 74 - Warning: <style> isn't allowed in <td> elements
line 493 column 9 - Info: <td> previously mentioned
line 493 column 1502 - Warning: missing </font> before <blockquote>
line 493 column 1581 - Warning: inserting implicit <font>
line 493 column 1581 - Warning: missing </font> before <hr>
line 493 column 1646 - Warning: inserting implicit <font>
line 493 column 1646 - Warning: missing </font> before <hr>
line 496 column 1 - Warning: inserting implicit <font>
line 496 column 1 - Warning: missing </font> before <blockquote>
line 499 column 2323 - Warning: inserting implicit <font>
line 499 column 2323 - Warning: missing </font> before <hr>
line 499 column 2399 - Warning: inserting implicit <font>
line 499 column 2399 - Warning: missing </font> before <hr>
line 504 column 1 - Warning: inserting implicit <font>
line 504 column 1 - Warning: missing </font> before <blockquote>
line 507 column 2946 - Warning: inserting implicit <font>
line 507 column 2946 - Warning: missing </font> before <hr>
line 507 column 3011 - Warning: inserting implicit <font>
line 507 column 3011 - Warning: missing </font> before <hr>
line 508 column 1 - Warning: inserting implicit <font>
line 493 column 138 - Warning: missing </div>
line 520 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 522 column 9 - Warning: missing <tr>
line 540 column 13 - Warning: missing <tr>
line 550 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 552 column 9 - Warning: missing <tr>
line 570 column 13 - Warning: missing <tr>
line 578 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 580 column 9 - Warning: missing <tr>
line 598 column 13 - Warning: missing <tr>
line 640 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 642 column 9 - Warning: missing <tr>
line 660 column 13 - Warning: missing <tr>
line 666 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 668 column 9 - Warning: missing <tr>
line 686 column 13 - Warning: missing <tr>
line 689 column 74 - Warning: <style> isn't allowed in <td> elements
line 689 column 9 - Info: <td> previously mentioned
line 689 column 961 - Error: <z> is not recognized!
line 689 column 961 - Warning: discarding unexpected <z>
line 689 column 964 - Warning: unescaped & or unknown entity "&date"
line 689 column 970 - Warning: discarding unexpected </z>
line 689 column 996 - Error: <z> is not recognized!
line 689 column 996 - Warning: discarding unexpected <z>
line 689 column 999 - Warning: unescaped & or unknown entity "&numposts"
line 689 column 1009 - Warning: discarding unexpected </z>
line 689 column 1039 - Error: <z> is not recognized!
line 689 column 1039 - Warning: discarding unexpected <z>
line 689 column 1042 - Warning: unescaped & or unknown entity "&numdays"
line 689 column 1051 - Warning: discarding unexpected </z>
line 689 column 1077 - Error: <z> is not recognized!
line 689 column 1077 - Warning: discarding unexpected <z>
line 689 column 1080 - Warning: unescaped & or unknown entity "&level"
line 689 column 1087 - Warning: discarding unexpected </z>
line 709 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 711 column 9 - Warning: missing <tr>
line 729 column 13 - Warning: missing <tr>
line 732 column 74 - Warning: <style> isn't allowed in <td> elements
line 732 column 9 - Info: <td> previously mentioned
line 732 column 1502 - Warning: missing </font> before <blockquote>
line 736 column 2194 - Warning: inserting implicit <font>
line 736 column 2194 - Warning: missing </font> before <hr>
line 736 column 2256 - Warning: inserting implicit <font>
line 736 column 2256 - Warning: missing </font> before <hr>
line 737 column 1 - Warning: inserting implicit <font>
line 732 column 138 - Warning: missing </div>
line 745 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 747 column 9 - Warning: missing <tr>
line 765 column 13 - Warning: missing <tr>
line 781 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 783 column 9 - Warning: missing <tr>
line 801 column 13 - Warning: missing <tr>
line 804 column 74 - Warning: <style> isn't allowed in <td> elements
line 804 column 9 - Info: <td> previously mentioned
line 804 column 1502 - Warning: missing </font> before <blockquote>
line 804 column 1581 - Warning: inserting implicit <font>
line 804 column 1581 - Warning: missing </font> before <hr>
line 804 column 1645 - Warning: inserting implicit <font>
line 804 column 1645 - Warning: missing </font> before <hr>
line 809 column 2801 - Warning: inserting implicit <font>
line 810 column 1 - Warning: inserting implicit <font>
line 810 column 1 - Warning: missing </font> before <hr>
line 822 column 1 - Warning: inserting implicit <font>
line 804 column 138 - Warning: missing </div>
line 854 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 856 column 9 - Warning: missing <tr>
line 874 column 13 - Warning: missing <tr>
line 880 column 9 - Warning: <div> isn't allowed in <table> elements
line 178 column 17 - Info: <table> previously mentioned
line 882 column 9 - Warning: missing <tr>
line 900 column 13 - Warning: missing <tr>
line 944 column 17 - Warning: missing <tr>
line 944 column 17 - Warning: discarding unexpected <table>
line 947 column 35 - Warning: missing <tr>
line 947 column 94 - Warning: unescaped & or unknown entity "&page"
line 947 column 126 - Warning: unescaped & or unknown entity "&page"
line 947 column 158 - Warning: unescaped & or unknown entity "&page"
line 947 column 190 - Warning: unescaped & or unknown entity "&page"
line 947 column 222 - Warning: unescaped & or unknown entity "&page"
line 947 column 254 - Warning: unescaped & or unknown entity "&page"
line 947 column 286 - Warning: unescaped & or unknown entity "&page"
line 947 column 318 - Warning: unescaped & or unknown entity "&page"
line 947 column 350 - Warning: unescaped & or unknown entity "&page"
line 947 column 382 - Warning: unescaped & or unknown entity "&page"
line 947 column 419 - Warning: unescaped & or unknown entity "&page"
line 947 column 453 - Warning: unescaped & or unknown entity "&page"
line 947 column 487 - Warning: unescaped & or unknown entity "&page"
line 947 column 521 - Warning: unescaped & or unknown entity "&page"
line 947 column 558 - Warning: unescaped & or unknown entity "&page"
line 947 column 592 - Warning: unescaped & or unknown entity "&page"
line 947 column 626 - Warning: unescaped & or unknown entity "&page"
line 947 column 660 - Warning: unescaped & or unknown entity "&page"
line 947 column 694 - Warning: unescaped & or unknown entity "&page"
line 947 column 728 - Warning: unescaped & or unknown entity "&page"
line 947 column 762 - Warning: unescaped & or unknown entity "&page"
line 947 column 796 - Warning: unescaped & or unknown entity "&page"
line 947 column 830 - Warning: unescaped & or unknown entity "&page"
line 947 column 864 - Warning: unescaped & or unknown entity "&page"
line 947 column 50 - Warning: missing </font> before </td>
line 947 column 901 - Warning: missing </font> before </table>
line 949 column 35 - Warning: missing <tr>
line 949 column 50 - Warning: missing </font> before </td>
line 950 column 37 - Warning: unescaped & or unknown entity "&id"
line 949 column 233 - Warning: missing </font> before </table>
line 951 column 17 - Warning: discarding unexpected </textarea>
line 951 column 28 - Warning: discarding unexpected </form>
line 951 column 35 - Warning: discarding unexpected </embed>
line 951 column 43 - Warning: discarding unexpected </noembed>
line 951 column 53 - Warning: discarding unexpected </noscript>
line 951 column 64 - Warning: discarding unexpected </noembed>
line 951 column 74 - Warning: discarding unexpected </embed>
line 951 column 82 - Warning: discarding unexpected </table>
line 951 column 90 - Warning: discarding unexpected </table>
line 953 column 9 - Warning: missing </font> before <table>
line 965 column 25 - Warning: discarding unexpected </font>
line 974 column 57 - Warning: discarding unexpected </font>
line 952 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 216 - Warning: <img> proprietary attribute value "absmiddle"
line 155 column 70 - Warning: <img> proprietary attribute value "absmiddle"
line 155 column 70 - Warning: <img> lacks "alt" attribute
line 156 column 70 - Warning: <table> attribute "width" has invalid value "11.4%"
line 159 column 70 - Warning: <img> proprietary attribute value "absmiddle"
line 159 column 70 - Warning: <img> lacks "alt" attribute
line 160 column 70 - Warning: <table> attribute "width" has invalid value "22.8%"
line 163 column 70 - Warning: <img> proprietary attribute value "absmiddle"
line 163 column 70 - Warning: <img> lacks "alt" attribute
line 164 column 70 - Warning: <table> attribute "width" has invalid value "56.9%"
line 167 column 70 - Warning: <img> proprietary attribute value "absmiddle"
line 167 column 70 - Warning: <img> lacks "alt" attribute
line 168 column 70 - Warning: <table> attribute "width" has invalid value "4.1%"
line 171 column 70 - Warning: <img> proprietary attribute value "absmiddle"
line 171 column 70 - Warning: <img> lacks "alt" attribute
line 172 column 70 - Warning: <table> attribute "width" has invalid value "4.9%"
line 172 column 70 - Warning: <table> attribute "bgcolor" has invalid value "grey"
line 187 column 22 - Warning: <img> lacks "alt" attribute
line 187 column 63 - Warning: <img> lacks "alt" attribute
line 187 column 112 - Warning: <img> lacks "alt" attribute
line 187 column 162 - Warning: <img> lacks "alt" attribute
line 188 column 11 - Warning: <img> lacks "alt" attribute
line 198 column 15 - Warning: <img> lacks "alt" attribute
line 207 column 461 - Warning: <img> proprietary attribute value "absmiddle"
line 207 column 461 - Warning: <img> lacks "alt" attribute
line 225 column 22 - Warning: <img> lacks "alt" attribute
line 225 column 63 - Warning: <img> lacks "alt" attribute
line 225 column 112 - Warning: <img> lacks "alt" attribute
line 225 column 162 - Warning: <img> lacks "alt" attribute
line 236 column 15 - Warning: <img> lacks "alt" attribute
line 243 column 694 - Warning: <img> lacks "alt" attribute
line 252 column 2519 - Warning: <img> lacks "alt" attribute
line 252 column 2678 - Warning: <img> lacks "alt" attribute
line 260 column 22 - Warning: <img> lacks "alt" attribute
line 260 column 63 - Warning: <img> lacks "alt" attribute
line 260 column 112 - Warning: <img> lacks "alt" attribute
line 260 column 162 - Warning: <img> lacks "alt" attribute
line 261 column 11 - Warning: <img> lacks "alt" attribute
line 271 column 15 - Warning: <img> lacks "alt" attribute
line 297 column 22 - Warning: <img> lacks "alt" attribute
line 297 column 63 - Warning: <img> lacks "alt" attribute
line 297 column 112 - Warning: <img> lacks "alt" attribute
line 297 column 162 - Warning: <img> lacks "alt" attribute
line 308 column 15 - Warning: <img> lacks "alt" attribute
line 315 column 694 - Warning: <img> lacks "alt" attribute
line 321 column 2850 - Warning: <img> lacks "alt" attribute
line 321 column 3009 - Warning: <img> lacks "alt" attribute
line 329 column 22 - Warning: <img> lacks "alt" attribute
line 329 column 63 - Warning: <img> lacks "alt" attribute
line 329 column 112 - Warning: <img> lacks "alt" attribute
line 329 column 162 - Warning: <img> lacks "alt" attribute
line 330 column 11 - Warning: <img> lacks "alt" attribute
line 340 column 15 - Warning: <img> lacks "alt" attribute
line 359 column 22 - Warning: <img> lacks "alt" attribute
line 359 column 63 - Warning: <img> lacks "alt" attribute
line 359 column 112 - Warning: <img> lacks "alt" attribute
line 359 column 162 - Warning: <img> lacks "alt" attribute
line 370 column 15 - Warning: <img> lacks "alt" attribute
line 387 column 22 - Warning: <img> lacks "alt" attribute
line 387 column 63 - Warning: <img> lacks "alt" attribute
line 387 column 112 - Warning: <img> lacks "alt" attribute
line 387 column 162 - Warning: <img> lacks "alt" attribute
line 388 column 11 - Warning: <img> lacks "alt" attribute
line 398 column 15 - Warning: <img> lacks "alt" attribute
line 417 column 22 - Warning: <img> lacks "alt" attribute
line 417 column 63 - Warning: <img> lacks "alt" attribute
line 417 column 111 - Warning: <img> lacks "alt" attribute
line 417 column 161 - Warning: <img> lacks "alt" attribute
line 428 column 15 - Warning: <img> lacks "alt" attribute
line 437 column 667 - Warning: <img> proprietary attribute value "absmiddle"
line 437 column 667 - Warning: <img> lacks "alt" attribute
line 445 column 21 - Warning: <img> lacks "alt" attribute
line 445 column 62 - Warning: <img> lacks "alt" attribute
line 445 column 111 - Warning: <img> lacks "alt" attribute
line 445 column 161 - Warning: <img> lacks "alt" attribute
line 456 column 15 - Warning: <img> lacks "alt" attribute
line 475 column 22 - Warning: <img> lacks "alt" attribute
line 475 column 63 - Warning: <img> lacks "alt" attribute
line 475 column 112 - Warning: <img> lacks "alt" attribute
line 475 column 162 - Warning: <img> lacks "alt" attribute
line 486 column 15 - Warning: <img> lacks "alt" attribute
line 493 column 694 - Warning: <img> lacks "alt" attribute
line 507 column 3045 - Warning: <img> proprietary attribute value "absmiddle"
line 507 column 3045 - Warning: <img> lacks "alt" attribute
line 517 column 4844 - Warning: <img> lacks "alt" attribute
line 517 column 5003 - Warning: <img> lacks "alt" attribute
line 525 column 22 - Warning: <img> lacks "alt" attribute
line 525 column 63 - Warning: <img> lacks "alt" attribute
line 525 column 112 - Warning: <img> lacks "alt" attribute
line 525 column 162 - Warning: <img> lacks "alt" attribute
line 536 column 15 - Warning: <img> lacks "alt" attribute
line 546 column 726 - Warning: <img> proprietary attribute value "absmiddle"
line 546 column 726 - Warning: <img> lacks "alt" attribute
line 555 column 22 - Warning: <img> lacks "alt" attribute
line 555 column 63 - Warning: <img> lacks "alt" attribute
line 555 column 111 - Warning: <img> lacks "alt" attribute
line 555 column 161 - Warning: <img> lacks "alt" attribute
line 566 column 15 - Warning: <img> lacks "alt" attribute
line 582 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 15 - Warning: <img> lacks "alt" attribute
line 582 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 58 - Warning: <img> lacks "alt" attribute
line 582 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 101 - Warning: <img> lacks "alt" attribute
line 582 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 144 - Warning: <img> lacks "alt" attribute
line 582 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 187 - Warning: <img> lacks "alt" attribute
line 582 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 230 - Warning: <img> lacks "alt" attribute
line 582 column 273 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 273 - Warning: <img> lacks "alt" attribute
line 582 column 316 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 316 - Warning: <img> lacks "alt" attribute
line 582 column 359 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 359 - Warning: <img> lacks "alt" attribute
line 582 column 402 - Warning: <img> proprietary attribute value "absmiddle"
line 582 column 402 - Warning: <img> lacks "alt" attribute
line 583 column 22 - Warning: <img> lacks "alt" attribute
line 583 column 63 - Warning: <img> lacks "alt" attribute
line 583 column 112 - Warning: <img> lacks "alt" attribute
line 583 column 162 - Warning: <img> lacks "alt" attribute
line 584 column 11 - Warning: <img> lacks "alt" attribute
line 594 column 15 - Warning: <img> lacks "alt" attribute
line 611 column 1018 - Warning: <img> lacks "alt" attribute
line 645 column 22 - Warning: <img> lacks "alt" attribute
line 645 column 63 - Warning: <img> lacks "alt" attribute
line 645 column 112 - Warning: <img> lacks "alt" attribute
line 645 column 162 - Warning: <img> lacks "alt" attribute
line 646 column 11 - Warning: <img> lacks "alt" attribute
line 656 column 15 - Warning: <img> lacks "alt" attribute
line 670 column 17 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 17 - Warning: <img> lacks "alt" attribute
line 670 column 60 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 60 - Warning: <img> lacks "alt" attribute
line 670 column 103 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 103 - Warning: <img> lacks "alt" attribute
line 670 column 146 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 146 - Warning: <img> lacks "alt" attribute
line 670 column 189 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 189 - Warning: <img> lacks "alt" attribute
line 670 column 232 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 232 - Warning: <img> lacks "alt" attribute
line 670 column 275 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 275 - Warning: <img> lacks "alt" attribute
line 670 column 318 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 318 - Warning: <img> lacks "alt" attribute
line 670 column 361 - Warning: <img> proprietary attribute value "absmiddle"
line 670 column 361 - Warning: <img> lacks "alt" attribute
line 671 column 23 - Warning: <img> lacks "alt" attribute
line 671 column 64 - Warning: <img> lacks "alt" attribute
line 671 column 113 - Warning: <img> lacks "alt" attribute
line 671 column 163 - Warning: <img> lacks "alt" attribute
line 672 column 11 - Warning: <img> lacks "alt" attribute
line 682 column 15 - Warning: <img> lacks "alt" attribute
line 689 column 1520 - Warning: <img> lacks "alt" attribute
line 689 column 1730 - Warning: <img> lacks "alt" attribute
line 689 column 1818 - Warning: <img> lacks "alt" attribute
line 689 column 2062 - Warning: <img> lacks "alt" attribute
line 706 column 122 - Warning: <img> lacks "alt" attribute
line 706 column 311 - Warning: <img> lacks "alt" attribute
line 714 column 22 - Warning: <img> lacks "alt" attribute
line 714 column 63 - Warning: <img> lacks "alt" attribute
line 714 column 112 - Warning: <img> lacks "alt" attribute
line 714 column 162 - Warning: <img> lacks "alt" attribute
line 725 column 15 - Warning: <img> lacks "alt" attribute
line 732 column 694 - Warning: <img> lacks "alt" attribute
line 742 column 4201 - Warning: <img> lacks "alt" attribute
line 742 column 4360 - Warning: <img> lacks "alt" attribute
line 749 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 15 - Warning: <img> lacks "alt" attribute
line 749 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 58 - Warning: <img> lacks "alt" attribute
line 749 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 101 - Warning: <img> lacks "alt" attribute
line 749 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 144 - Warning: <img> lacks "alt" attribute
line 749 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 187 - Warning: <img> lacks "alt" attribute
line 749 column 230 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 230 - Warning: <img> lacks "alt" attribute
line 749 column 273 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 273 - Warning: <img> lacks "alt" attribute
line 749 column 316 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 316 - Warning: <img> lacks "alt" attribute
line 749 column 359 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 359 - Warning: <img> lacks "alt" attribute
line 749 column 402 - Warning: <img> proprietary attribute value "absmiddle"
line 749 column 402 - Warning: <img> lacks "alt" attribute
line 750 column 22 - Warning: <img> lacks "alt" attribute
line 750 column 63 - Warning: <img> lacks "alt" attribute
line 750 column 112 - Warning: <img> lacks "alt" attribute
line 750 column 162 - Warning: <img> lacks "alt" attribute
line 751 column 11 - Warning: <img> lacks "alt" attribute
line 761 column 15 - Warning: <img> lacks "alt" attribute
line 774 column 1594 - Warning: <img> proprietary attribute value "absmiddle"
line 774 column 1594 - Warning: <img> lacks "alt" attribute
line 786 column 22 - Warning: <img> lacks "alt" attribute
line 786 column 63 - Warning: <img> lacks "alt" attribute
line 786 column 112 - Warning: <img> lacks "alt" attribute
line 786 column 162 - Warning: <img> lacks "alt" attribute
line 797 column 15 - Warning: <img> lacks "alt" attribute
line 804 column 694 - Warning: <img> lacks "alt" attribute
line 806 column 2459 - Warning: <img> proprietary attribute value "absmiddle"
line 806 column 2459 - Warning: <img> lacks "alt" attribute
line 812 column 2876 - Warning: <img> lacks "alt" attribute
line 812 column 2953 - Warning: <img> lacks "alt" attribute
line 825 column 4781 - Warning: <img> lacks "alt" attribute
line 830 column 5011 - Warning: <img> lacks "alt" attribute
line 851 column 7380 - Warning: <img> lacks "alt" attribute
line 851 column 7539 - Warning: <img> lacks "alt" attribute
line 859 column 22 - Warning: <img> lacks "alt" attribute
line 859 column 63 - Warning: <img> lacks "alt" attribute
line 859 column 111 - Warning: <img> lacks "alt" attribute
line 859 column 161 - Warning: <img> lacks "alt" attribute
line 860 column 11 - Warning: <img> lacks "alt" attribute
line 870 column 15 - Warning: <img> lacks "alt" attribute
line 885 column 21 - Warning: <img> lacks "alt" attribute
line 885 column 62 - Warning: <img> lacks "alt" attribute
line 885 column 111 - Warning: <img> lacks "alt" attribute
line 885 column 161 - Warning: <img> lacks "alt" attribute
line 896 column 15 - Warning: <img> lacks "alt" attribute
line 917 column 1626 - Warning: <img> proprietary attribute value "absmiddle"
line 917 column 1626 - Warning: <img> lacks "alt" attribute
line 950 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 950 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 950 column 216 - Warning: <img> proprietary attribute value "absmiddle"
line 959 column 25 - Warning: <img> lacks "alt" attribute
line 964 column 267 - Warning: <img> lacks "alt" attribute
line 243 column 1502 - Warning: trimming empty <font>
line 493 column 1502 - Warning: trimming empty <font>
line 804 column 1502 - Warning: trimming empty <font>
line 809 column 2801 - Warning: trimming empty <font>
line 944 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 203 column 27 - Warning: <nobr> is not approved by W3C
line 241 column 27 - Warning: <nobr> is not approved by W3C
line 243 column 158 - Warning: <table> proprietary attribute "height"
line 243 column 223 - Warning: <td> proprietary attribute "background"
line 243 column 319 - Warning: <td> proprietary attribute "background"
line 243 column 409 - Warning: <table> proprietary attribute "height"
line 243 column 489 - Warning: <td> proprietary attribute "background"
line 243 column 1434 - Warning: <td> proprietary attribute "background"
line 276 column 27 - Warning: <nobr> is not approved by W3C
line 313 column 27 - Warning: <nobr> is not approved by W3C
line 315 column 158 - Warning: <table> proprietary attribute "height"
line 315 column 223 - Warning: <td> proprietary attribute "background"
line 315 column 319 - Warning: <td> proprietary attribute "background"
line 315 column 409 - Warning: <table> proprietary attribute "height"
line 315 column 489 - Warning: <td> proprietary attribute "background"
line 315 column 1434 - Warning: <td> proprietary attribute "background"
line 345 column 27 - Warning: <nobr> is not approved by W3C
line 375 column 27 - Warning: <nobr> is not approved by W3C
line 403 column 27 - Warning: <nobr> is not approved by W3C
line 433 column 27 - Warning: <nobr> is not approved by W3C
line 461 column 27 - Warning: <nobr> is not approved by W3C
line 491 column 27 - Warning: <nobr> is not approved by W3C
line 493 column 158 - Warning: <table> proprietary attribute "height"
line 493 column 223 - Warning: <td> proprietary attribute "background"
line 493 column 319 - Warning: <td> proprietary attribute "background"
line 493 column 409 - Warning: <table> proprietary attribute "height"
line 493 column 489 - Warning: <td> proprietary attribute "background"
line 493 column 1434 - Warning: <td> proprietary attribute "background"
line 541 column 27 - Warning: <nobr> is not approved by W3C
line 571 column 27 - Warning: <nobr> is not approved by W3C
line 599 column 27 - Warning: <nobr> is not approved by W3C
line 661 column 27 - Warning: <nobr> is not approved by W3C
line 687 column 27 - Warning: <nobr> is not approved by W3C
line 689 column 1599 - Warning: <td> proprietary attribute "background"
line 689 column 1899 - Warning: <td> proprietary attribute "background"
line 689 column 2152 - Warning: <table> proprietary attribute "height"
line 706 column 203 - Warning: <td> proprietary attribute "background"
line 730 column 27 - Warning: <nobr> is not approved by W3C
line 732 column 158 - Warning: <table> proprietary attribute "height"
line 732 column 223 - Warning: <td> proprietary attribute "background"
line 732 column 319 - Warning: <td> proprietary attribute "background"
line 732 column 409 - Warning: <table> proprietary attribute "height"
line 732 column 489 - Warning: <td> proprietary attribute "background"
line 732 column 1434 - Warning: <td> proprietary attribute "background"
line 766 column 27 - Warning: <nobr> is not approved by W3C
line 802 column 27 - Warning: <nobr> is not approved by W3C
line 804 column 158 - Warning: <table> proprietary attribute "height"
line 804 column 223 - Warning: <td> proprietary attribute "background"
line 804 column 319 - Warning: <td> proprietary attribute "background"
line 804 column 409 - Warning: <table> proprietary attribute "height"
line 804 column 489 - Warning: <td> proprietary attribute "background"
line 804 column 1434 - Warning: <td> proprietary attribute "background"
line 875 column 27 - Warning: <nobr> is not approved by W3C
line 901 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 533 warnings and 4 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