Warning: You are using TidyHTML mode! Pages MAY and probably WILL break. To disable, click here or append 'xxx-off=1' to the URL!

Register - Login
Views: 57963336
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
10-18-14 01:32:54 PM
fortyfive-antelope

Jul - Posts by Garmichael
Pages: 1 2 3 4 5 6 7
Garmichael
Member
Level: 23


Posts: 1/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 06-24-09 03:16:49 AM, in A couple NSMB levels (last edited by Garmichael at 07-06-09 06:45 PM) Link
Hey all,

I've created a couple levels using Treeki's NSMB editor and I'd like to share them.
You can download the rom pack at: http://www.develteam.com/Garmichael/downloads/Garmichael_rompack_1-1_1-2.zip

I also have some youtube clips up of each level, but they contain spoilers and secrets, so if you're the type to explore you shouldn't watch them right away. I'm curious what you think, and if you aren't given the walkthrough, your feedback will be more appropriate.

EDIT: See post below for the clips...

Level 1 isn't too tough and is meant to be in World 1 somewhere, whereas Level 2 is meant for later in the game since its quite a bit tougher.

Level 1 should be imported into World 1-1, and Level 2 should be imported into World 1-2.


Thanks!
Garmichael
Member
Level: 23


Posts: 2/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 06-24-09 05:14:42 PM, in A couple NSMB levels Link
I use Snag-it 8 to record my videos. I did record through my mic without realizing it (you can hear my 'phew' at the end of level 2, and the clickityclack of my analog stick). Next time, I'll record through my stereo out. That VGA Poppy Bright DOES look WAAAYYYY better, thanks! Do you have any tips on making the sound less staticy?


Thanks for the feedback on the levels.. I've widened those beetle gaps Treeki mentioned. I'm sketching out some ideas for a couple more levels, but they'll take some time.
Garmichael
Member
Level: 23


Posts: 3/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 06-25-09 05:05:18 AM, in Original NSMB Hacking Thread (Archived) Link
I have a couple ideas for an upcoming release of this editor.

Hold SHIFT while clicking and dragging a tile to resize it, as if you clicked and dragged the little square under it.
Hold CONTROL while clicking and dragging a tile to make a clone of it under the cursor, retaining the width, height, and tile properties of it.

I don't know how hard or easy these UI improvements would be, but I feel they would dramatically reduce the time it takes to build a level (especially for those pesky edge/corner tiles)
Garmichael
Member
Level: 23


Posts: 4/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 06-29-09 03:35:36 PM, in Original NSMB Hacking Thread (Archived) Link
Originally posted by Treeki
Originally posted by m64m
awesome. So, about the intro "World 1-1" things; they're not pictures, so I can't edit them at all? :/

Nope, they're just text.

Anyway, version 4.7 is available on page 16 now. It includes the compression bugfix, resizing using the Shift key, object cloning using the Ctrl key and a few minor object definition updates.



Garmichael
Member
Level: 23


Posts: 5/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-04-09 07:49:46 AM, in Purps' NSMB Levels Link
How did you record your video? Specifically, the music sounds amazing.
Garmichael
Member
Level: 23


Posts: 6/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-04-09 08:30:34 PM, in Original NSMB Hacking Thread (Archived) Link
OH YEAH!

I spent a few hours this afternoon figuring out the Connection Pipes stuff. I feel great!

This post is about how to make connected pipes work, with the camera pans included.


1) Make a couple pipes, and put the entrances on them. Give unique values for the Entrance Number. Give them the same Connected Pipe ID number, and click "Connected Pipe" on both. Camera, Destination Entrance, and View should be 0 (there might be some exceptions for this, i dunno). However, for the Destination Area field: the first entrance should have a value of 0, and the second entrance should have a value of 1. Okay, thats the easy part.

2) Open up the level in Hex Editor. The blocks we're going to be playing with are blocks 11 and 13.

---- Block 11 ----

This block is like a table of contents. Each 'entry' is 8 bits (or whatever) long. The structure is as follows:

Format:
CC CC RR RR TT TT 00 00

Example:
01 00 00 00 02 00 00 00


CC: This is the Pipe Connector ID. A pipe will only work if an entry in block 11 starts with its Connector ID.
RR: This value points to the row in Block 13 that contains its information.
TT: This value is the number of twists and turns the camera will follow, PLUS one. If you have a pipe with no bends, this value will be 2. If you have a pipe that goes left for a while, then up, then right, then goes down and exits you out, there are 4 twists and turns, so this value will be a 5.
00: While looking through the rom, these values are always 0. They might mean something, but then they might not.

---- Block 13 ----

This block contains the information for the twists and turns.

Format:
XX XX YY YY 00 00 00 00 00 00 00 00 00 00 DD 00

Example:
30 01 60 06 00 00 00 00 00 00 00 00 00 00 02 00


XX: The X position of the current destination. There appears to be an offset of 16 to 32... not sure why, tho.
YY: The Y position of the current destination. There is also an offset of 16 to 32 here. These values might take some denial and error (TPB reference )
00: These values appear to be 00 every time throughout the rom.
DD: This is the direction you come out of this pipe. Sometimes, it doesn't seem to matter what this value is, and Mario will come out of the pipe the right way, but other times, he wont. 00: Down | 01: Right | 02: Up 03: Left


First of all, the row that this data is on is important. the RR value in block 11 points to this row. The first row is, of course, 00. Then, 10, 20, etc.
The number of rows for each Connection ID is equal to the number of Twists and Turns (the value of TT in block 11).

Each row is a destination to a 'node' in the pipe. For a pipe with no bends, there are two nodes: The entrance and the exit. For a pipe with a couple bends, each bend is also a node and needs a row. If you have a pipe that has bends, but you only make rows for the entrance and the exit, the camera will pan to the exit automatically, even if the pan is diagonal.

If you make an L shaped pipe where you go Down, then you exit to the right after just a couple tiles, you wont need a third node - the camera will just focus on Mario as he exits the pipe.

So lets say you have a pipe that goes right, down, right. Lets also say that the pipe is long enough that we want four nodes.

Row 00 is the Entrance point. It should have an appropriate value for DD.
Row 10 is the first Bend. It doesn't matter what its DD is, though i think its best if you make it 00.
Row 20 is the second Bend.
Row 30 is the Exit end of the pipe. It should have an appropriate value for DD as well.


Row 40 should be the start of your NEXT Connected Pipe ID, and 40 should be entered into spot RR in Block 11.


If you want some in game examples, check out level 7-A Area 2, 4-Ghost House Area 1, and 7-3 Area 1.

Yea, this was a long winded post

Garmichael
Member
Level: 23


Posts: 7/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-05-09 02:19:37 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-05-09 06:30 AM) Link
Originally posted by Treeki
This is pretty cool, I never figured out how they worked exactly - I knew connected pipes had something to do with the paths system, but I tried to figure out the format and failed.

Note that it's also used for some other things - The block trains in World 8 tower 2, autoscrolling in some levels, and Dorrie (the moving dinosaur from world 4).

These all also use different bytes in block 13; I'm not sure what use they have.

If you want to take a look at them, go to the main editor window, click Settings then click Data Finder. Choose to show all for block 11 and search. It will show every level which contains something in block 11.



Interesting!! Thanks for that info.. I checked out a few things and the format seems to hold up...

8 byte (am i using the right term??) sequences in Block 11 seem to follow the same IIII RRRR LLLL ****
IIII: ID of object to follow path
RRRR: First row of path sequence
LLLL: Length of path sequence
****: Dunno yet..


The paths themselves follow the XXXX YYYY ******etc
Each row is a node in the path.. I'll bet some of the *'s are for easing (like fast start, slow stop), for round curves, and so on.. We know the second to the last is Pipe Exit Direction... I'll keep looking through it

Maybe once we figure it out, your editor could have Pathing layer.

EDIT: You're already on it!!!!

EDIT2: I'm a sleepy Garmichael.. Ive gone through all the block 13s. I figured out that the third set of bytes is the Speed. So far, it only seems to effect auto-scrolling, Doree, and the Giant Wiggler. The next set is always 00 00. The set after that, however, is pretty tricky.

It seems to be some sort of easing system for the autoscrolling. If I set it to 0000, when the scroller gets to that point, it just stops. When I set it to other values, it seems the scrolling is slowed down, but there doesn't seem to be any logic to it. Also, this set is almost always one of just a small handful of values (00 08, 00 01, 20 00, 08 00, 10 00, and 40 00). My guess would be that each of these values is a 'setting' rather than a 'speed' since when i plug in FFFF, Its not immediately noticeable. When I mess with these values for the ridable critters, nothing appears to change.

The last two bytes are used with the ridable critters. With Doree, setting a 01 in the end will cause her to transition to the animation where her head is down. setting a 02 there will make her move her head up and return to her normal head-bobbing animation. Setting 00's will allow her to continue her current animation. For the Giant Wiggler, a 00 (01, 02, and 03 also) will allow it to do the 'bump up' move she does with her body. A 04 tells her not to do it.


Also, one thing thats bugging me is... How does block 11 know whether the ID its referencing is a Pipe Connection or a Movable Sprite?? The only guess I have is that if it uses an ID of 00, then it just looks for the first sprite with that ID. But that would mean we coudln't have two movable block platforms, Dorrees, or Wigglers in the same level. 4-6 is an example where there are two Dorrees... HMM!!!
Garmichael
Member
Level: 23


Posts: 8/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-05-09 03:22:47 AM, in Original NSMB Hacking Thread (Archived) Link
Oh also Treeki.. I have a couple hopefully minor UI improvement pitches, since it seems like you'll be releasing an update soon.
1) Could you make it so sprites and entrances also clone when you use Control+Click?
2) Can you wire up the delete or the backspace key to delete the currently selected object?
Garmichael
Member
Level: 23


Posts: 9/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-06-09 04:56:26 AM, in A couple NSMB levels (last edited by Garmichael at 07-06-09 06:48 PM) Link

Got a new level up... Its an easier level, I think, and it's not too extravagant. Actually, I feel its rather bleh but it has some merits.

I'll post a youtube clip of it after I make one. I want to remake the clips to my other two levels, now that I know how to make them not look and sound junky.

Right Click to download: Garmichael's W1-3

EDIT: I retook the clips of each level with Shantae and Purp's advice.


1-1


1-2


1-3



--------------------

Garmichael
Member
Level: 23


Posts: 10/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 02:06:58 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-07-09 04:20 AM) Link

Hey guys, I have some new info. If any of you have additional info relating to this, I'm all ears!

This relates to Blocks 8, 10, and 12.

Block 8

Format:
XXXX YYYY WWWW HHHH AABB MMMM EEFF GGII

X: Left
Y: Top
W: Width
H: Height
A: is either 00, 01, 02.. Editing this typically jacks up the view. Probably an ID or reference.
B: is either 00, 01, 02.. Editing this doesn't seem to do anything anywhere
M: Music
E: always 0
F: always 0
G: is usually between 00 and 05. Probably an ID or a reference
I: ID Reference for Use in Block 10


Treeki has already figured out the X, Y, W, H, M. The new bit of info is the I.


block 10

Format:
IIII RRRR AAAA 0000

I: Id (referenced from Block 8)
R: Starting Row in Block 12.
A: Number of Rows
0: Always 0


This is exactly like block 11


block 12

Format:
XXXX YYYY 0000 0000 0000 0000 0000 0000

X: X Coordinate
Y: Y Coordinate

This is exactly like block 13, except there doesn't appear to be any data except for the X and Y. Each row is a node which makes up a path.



Now here's the weird part. I have NO idea what this stuff is for. When I delete out blocks 10 and 12 and update the ID reference from Block 8, there doesn't seem to be any change in gameplay or in camera rules whatsoever.

Generally, there are only 2 nodes per view, and the line they make goes right across the bottom where the camera stops panning down. A great example of this is in 1-2 Area 1, where you can see the line it makes going from one end of the level to the other. The camera doesn't drop below this line except for the spot near the start where mario butt-stomps to go down there. The 198 and 199 sprites allow this, but when you remove them, the camera will still pan (but it will be jerky when it does...)
For lack of a better word, Ill call this line the 'Baseline'. I'll venture to guess that some values in Block 2 (since messing with them messes up the camera's panning) are offsets measured from this line.

However, it gets weird because there are a few exceptions. One of the stranger exceptions is World 2 Tower Area 1. I made a screenshot map, and drew a red line from each node. How could this be a baseline of any kind? Myt heory seems shot.





WTF?

Again, I would appreciate any input anyone has found out about this stuff.


--------------------

Garmichael
Member
Level: 23


Posts: 11/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 08:39:18 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-07-09 08:41 AM) Link

Originally posted by Treeki
... You know, I remember once that block 12 had something to do with the flagpole on the bottom screen. Looking at the screenshot you posted, it would make sense that those points are used to track progress within the level.

Also, notice how levels which have no flagpole tracking don't have these. Bonus rooms have a blank block 12. Ghost houses also have a blank block 12, since they just show two Boos there.


While looking into the views (block 8 stuff) I saw two interesting variables too: EE and FF which you mentioned are actually used.

EE seems to have something to do with the rotating rooms in world 8's final castle - several views in that level have EE set to 1. No other levels use it, except for the glitchy beta bonus room in unused level 3.

FF is always set to 0 except in the exits from ghost houses. I wonder what that has to do with it though..



Oh you're right about the flagpole tracking... So 10 and 12 work like 11 and 13, by creating a path that lines up with the level progress bar on the bottom screen.



I've been mucking around with the other values for Block 8...

The second to the last pair has been interesting. When playing with this value with Level 1-A area 1, the CheepCheeps and the Sharks go between having a white underbelly and a gray one. It seems to have something to do with Transparency - possibly either a blending mode or an opacity intensity. Also, this could be an effect on enemies. Either way, it doesn't seem to effect gameplay. Also, changing this value didn't change anything in the Ghost Houses. Mehhhhhhh

Anyway, here's an update value list:

Block 8

Format:
XXXX YYYY WWWW HHHH IIAA MMMM BBCC DDFF

X: Left
Y: Top
W: Width
H: Height
I: The View ID
A: Not sure, but the values are all 00 through 05. I haven't noticed any difference
M: Music
B: Something to do with Castle 8
C: Something to do with Ghost House Exits
D: Something to do with either the transparent layer or enemy coloring
F: Flagpole Tracker Path ID Reference for Use in Block 10


--------------------

Garmichael
Member
Level: 23


Posts: 12/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 10:27:54 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-07-09 10:29 AM) Link

Cool! I wish you success when you do try.

I just figured out what AA is. It refers to the ID of an entry in Block 2.

In Block 2, each entry is 24 pairs long and the 17th entry is its ID.

Edit: I think we're both pretty sure that Block 2 is the Camera rules for a view. These values don't seem like numeric values, but seem more like settings...

--------------------

Garmichael
Member
Level: 23


Posts: 13/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 11:25:09 AM, in Original NSMB Hacking Thread (Archived) Link

Originally posted by Treeki
Originally posted by Garmichael
Cool! I wish you success when you do try.

I just figured out what AA is. It refers to the ID of an entry in Block 2.

In Block 2, each entry is 24 pairs long and the 17th entry is its ID.

Edit: I think we're both pretty sure that Block 2 is the Camera rules for a view. These values don't seem like numeric values, but seem more like settings...

I know block 2 has something to do with the camera. I remember taking 6-6's block 2 and using it in 1-1 allowed the camera to move freely (instead of being restricted to the bottom 12 tiles).

However, the ID thing doesn't seem to make much sense.. Notice how 1-1's view refers to entry 1, but it only has view 0.



I think you misunderstood me.
In Block 8, look at entry AA (the 10th Pair).
Now, look at Block 2. It is 24 pairs, where the 17th pair is its ID.

So the view calls a camera by its ID.

In World 1-1, Block 8's AA = 00. Most of Block 8's AA are = 0.

There are a couple example I want to show you:


Block 2:
A01_1.bin: F0FF FFFF E0FF FFFF 0000 0000 F0FF FFFF 0000 0000 0000 0000

Block 8:
A01_1.bin: 3000 B000 8010 4001 0000 1A00 0000 0001

This is Level 1. Block 8 looks for Camera ID 0 and finds it.



Block 2:
F02_1.bin: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0F00 0000 0000
F02_1.bin: F0FF FFFF E0FF FFFF 1000 0000 0000 0000 0100 0000 0000 0000
F02_1.bin: F0FF FFFF E0FF FFFF 0000 0000 0000 0000 0200 0400 0000 0000

Block 8:
F02_1.bin: 5000 1000 B004 F000 0000 0E00 0000 0001
F02_1.bin: 0000 3002 8012 D001 0102 0E00 0000 0002
F02_1.bin: 7006 2000 9003 F000 0200 0E00 0000 0003

In this one, it seems to me that the developers created 2 cameras and one of them didnt work, so they added a third without deleting the second one.


Block 2:
H12_1.bin: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
H12_1.bin: 1000 0000 0C00 0000 0000 0000 0000 0000 0100 0F00 0000 0000
H12_1.bin: 1000 0000 0000 0000 0000 0000 0000 0000 0200 0F00 0000 0000
H12_1.bin: 1400 0000 F8FF FFFF 0000 0000 0000 0000 0300 0F00 0000 0000

Block 8:
H12_1.bin: 0000 0000 0004 0001 0000 1100 0000 0201
H12_1.bin: 0000 4002 0002 C000 0100 1100 0100 0001
H12_1.bin: 0005 0000 F005 0001 0201 1100 0000 0001
H12_1.bin: 1005 0002 F005 0001 0302 1100 0000 0001
H12_1.bin: 0007 A006 0002 C000 0400 1100 0100 0001
H12_1.bin: 0000 0006 0002 0002 0503 1100 0100 0001
H12_1.bin: 0005 4004 0002 C000 0600 1100 0000 0001
H12_1.bin: 0008 4004 0002 C000 0700 1100 0000 0001

Here, it looks like they created three cameras and reused the first one for several of the views.



--------------------

Garmichael
Member
Level: 23


Posts: 14/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 11:55:06 AM, in Original NSMB Hacking Thread (Archived) Link

Originally posted by Shantae
Originally posted by Garmichael
Cool! I wish you success when you do try.

I just figured out what AA is. It refers to the ID of an entry in Block 2.

In Block 2, each entry is 24 pairs long and the 17th entry is its ID.

Edit: I think we're both pretty sure that Block 2 is the Camera rules for a view. These values don't seem like numeric values, but seem more like settings...


Yea, the elusive block 2...

I remember messing with that a LONG time ago. It got to the point where I started using a corrupter... I believe when I was working with it, I was comparing 1-1's with 1-2's. I remember something about a difference in the locations of the FFs used for separation. It's been a while since I've even looked at it, but it seems like such a screwed up format.



I'm kind of figuring this Block 2 out... Check out what I got so far..


AAxx xxxx BBxx xxxx CCxx xxxx DDxx xxxx II00 EE00 0000 0000


I've found some curious things. First, I notice that there are a lot of repeating values. I BELIEVE these are all of the values found for AA,BB,CC, and DD.


00 08 0A 0C 10 14 16 18 20 23 24 28 2C 30 38 40 44 D0 E0 EC F0 F4 F6 F8 FC


Second, I notice that all but one of them (23) are even.

Third, if the value is higher than D0, the next 3 pairs (the xx xxxx) will be FF FFFF every time. If the value is not higher than D0, the next 3 pairs are 00 0000.


It makes me wonder that if there are only 4 variables and they are all similar, then are these maybe something to do with the border? Like, the camera will stop panning if it is AA away from the bottom border, BB away from the left border?

Anyway, II = the ID of the camera.

EE has something to do with the stickiness of the camera to the bottom of the view. Depending on what it is set to, it will not come off the bottom until you climb a vine or jump on a whirlie-pad. Then, depending on that value, it will either REMAIN free, or it will restick as soon as you hit the ground. I'm still playing around with this.



Originally posted by Treeki
... this is why I should stop basing my tests on a ROM which has so many hacks and edits.


Anyway, great job on the observation with the sharks. I tried it out and noticed it, but I still wasn't convinced.
I changed all the data mentioned to zeroes and re-entered the level.

Result: http://treeki.shacknet.nu/itsdarkinhere.png

So it looks like that byte controls shading on the 3D models. Who would have guessed that?


Awesome! Congrats! I would have never figured that out... I didn't even know No$GBA had a debug mode
You know what this means, right? SILHOUETTE LEVEL!!

--------------------

Garmichael
Member
Level: 23


Posts: 15/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-07-09 12:42:12 PM, in Original NSMB Hacking Thread (Archived) Link

Treeki, I was playing with Block 5 the other night.

I'm not sure about its exact format, but I'll share my findings with you.

My Background Top layer is 12 (Green/White Hills and Clouds)
My Background Bottom Layer is 33 (Clouds with Orange Hills at back)

My Block 5, by default is:
0000 0C00 0C00 FFFF FFFF 0800 0800 0000 0000 0000

The first 0C00 changes the color pallet, and the second 0C00 changes the tile pallet. I don't remember what value i set to the second 0C00 but one time it became the volcanos found in World 8, complete with raining lava rocks.

I changed the 0800 0800 to 1A00 1A00 and it moved my Top BG down a bit, so that the fast moving clouds were at ground level.

Then I changed that set to 0F00 0F00 and there was some pretty intense scrolling on that layer, both horizontally and vertically.


Originally posted by Hiccup
Block nine could be sound sets (i mentioned this before)

what levels is it occasionally used in?


In Block 1, there are 32 pairs. Count to the 27th one, and that is your Sound Set. In Level 1-1, the default value is 07.

Change it to 0D or to 10 to get your Dry Bones sound effect to work. Amazingly, the Goombas still sound like goombas being mashed up.

--------------------

Garmichael
Member
Level: 23


Posts: 16/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-08-09 07:20:10 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-08-09 07:25 AM) Link

Im up late again playing with Block 2.. Found out some tiny bits of info..



AAxx xxxx BBxx xxxx CCxx xxxx DDxx xxxx II00 SS00 0000 0000



I've figured out AA, BB, and SS. (We already know II is Camera ID, referenced from block 8).

SS: Values of 00 through D0 are a measurement of how far from the bottom of the view before the camera will no longer pan up (except for when Mario climbs a vine or jumps on a spin-pad). Place a value of F0 here and the camera will freely pan up until the top of the view.


With AA and BB, first, there are a few curious effects. I've mentioned this one before, but ill re-mention that any value A0 and higher must be followed by 6 F's, and any value lower than that must be followed by 6 0's.


AA is the measurement from the top of the screen to Mario's location before it will pan up.
Here's the weird thing:
Instead of 00 = 0, and FF = the max, the numbers are resorted sort of.
They should go in this order:
A0, B0, C0, D0, E0, F0, 00, 10, 20, 30, 40, 50, 60, 70, 80, 90

A0 is the minimum distance away
90 is the maximum distance away

In my testing, A0 was ABOVE the top of the screen, and when I put a value of 60 or higher in, the camera repositions so Mario is near the bottom of the screen.


BB is the measurement from the top of the screen to Mario's location before it will pan down.
The same ordering structure is present here as in AA.


When the two distances overlap, the screen tends to do this jumpy-effect that isn't very nice.

I feel that more testing is required... I'm not convinced I have this figured out 100%.

I havent tested CC and DD, but I'll be it has to do with how close to the left and right edges of the screen mario must be before it scrolls with him.

--------------------

Garmichael
Member
Level: 23


Posts: 17/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-08-09 06:25:58 PM, in Original NSMB Hacking Thread (Archived) Link

Originally posted by Treeki
You know.. the reversed thing seems like it uses signed numbers. It would make sense seeing everything you've mentioned, including the reordering and such.

With signed numbers, negative numbers start off from FF FF FF FF.

Example:

2 = 02 00 00 00
1 = 01 00 00 00
0 = 00 00 00 00
-1 = FF FF FF FF
-2 = FE FF FF FF
-3 = FD FF FF FF
and so on

This defines it: http://en.wikipedia.org/wiki/Two's_complement
Basically, 80 00 00 00 is the lowest (equal to -2147483648 I believe) and 7F FF FF FF is the highest (equal to 2147483647). I hope this makes them a lot clearer.


Thanks for this info Treeki (and Messiaen). It makes a lot more sense...
I've revised my theory to believe that this value is an offset in relation to the very center of the screen. Positive numbers measure the distance from the center to the point where the camera will start to pan up and down.

Negative numbers seem to reposition the camera in some way so that it starts our with mario closer to the top or bottom.



Originally posted by Hiccup
Treeki i made this level and when i played it it ---- i was on the map i go on to the level and it just jams at a black screen, i will post the level here:

http://www.mediafire.com/download.php?n5zutzzqfdg



Its something to do with your Block 1. The first problem is this bit:

0000 0000 2C01 1900 FFFF FFFF 2400 FFFF FFFF 0300 FFFF FFFF 0000 0000 0000 0000


Change that FF to 00.

Also, there is another problem in there somewhere because when it does open, the Interface graphics are all garbled up. I just copy and pasted the info from another level and it works fine.

--------------------

Garmichael
Member
Level: 23


Posts: 18/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-08-09 09:08:34 PM, in Original NSMB Hacking Thread (Archived) Link

I found where the Interface graphics were being garbled up.

Its in his Block 5

0000 03FF 03FF FFFF FFFF FFFF FFFF 0000 0000 0000



The problem is the Red set of FF. I set it to 00 and the Interface is back to normal. The Blue set doesn't look like it should be FF either, but when I set it to 00 nothing apparent changes. I feel that its probably best to keep it 00 tho, since the only instances Ive found where it is FF is when the 2 bytes preceding it are also FF.



Also, Treeki, I have a couple more UI requests. In the data finder, can you set the font used to a fixed font like fixedsys? It'll make it easier to compare values. This isn't a huge deal since Ive just been copying the data to notepad.

The other request is for a Sprite list similar to the Entrances list. Again, not a big deal, but it'll help when verifying a sprite does or doesn't exist in the level (like when I accidentally put a sprite 0 in and forget to update it to real one).

I don't mean to tell you how to do things or add to your continuously mounting to-do list. I think you've done a fantastic job with this editor.

--------------------

Garmichael
Member
Level: 23


Posts: 19/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-08-09 11:48:11 PM, in Original NSMB Hacking Thread (Archived) Link

Originally posted by Treeki
Originally posted by Garmichael
I found where the Interface graphics were being garbled up.

Its in his Block 5

0000 03FF 03FF FFFF FFFF FFFF FFFF 0000 0000 0000



The problem is the Red set of FF. I set it to 00 and the Interface is back to normal. The Blue set doesn't look like it should be FF either, but when I set it to 00 nothing apparent changes. I feel that its probably best to keep it 00 tho, since the only instances Ive found where it is FF is when the 2 bytes preceding it are also FF.

Still can't figure out how to get this to occur.. Hiccup's level always crashes for me no matter what. Setting the red byte to FF in 1-1 makes the level crash too. What emulator are you using? I wonder if that might have something to do with it?



Im using No$GBA...
Did you change that byte in block 1 for his map?
I uploaded the version of his map that I'm using to get the error to occur, so you can test that one. This level will load properly for me and the interface graphics are jacked.
Link (right click to download):
Hiccup's Garbledness

Originally posted by Treeki
Originally posted by Garmichael
Also, Treeki, I have a couple more UI requests. In the data finder, can you set the font used to a fixed font like fixedsys? It'll make it easier to compare values. This isn't a huge deal since Ive just been copying the data to notepad.

Done. I've also implemented your two earlier requests - sprites and entrances are clonable using Ctrl, and backspace deletes objects (works for any type).

Originally posted by Garmichael
The other request is for a Sprite list similar to the Entrances list. Again, not a big deal, but it'll help when verifying a sprite does or doesn't exist in the level (like when I accidentally put a sprite 0 in and forget to update it to real one).

Working on this now. It won't work like the entrances list though - clicking an option in the Options menu will let you pop up a sprite list, similar to the data finder. (It won't update in real-time with your edits though; you'll have to click a Refresh button for that to happen.)


Thanks for implementing all this stuff! Can't wait to try out your next version!

--------------------

Garmichael
Member
Level: 23


Posts: 20/121
EXP: 58661
For next: 9062

Since: 06-24-09
From: Seattle, Wa

Since last post: 1205 days
Last activity: 1140 days

Posted on 07-09-09 05:54:14 AM, in Original NSMB Hacking Thread (Archived) (last edited by Garmichael at 07-09-09 06:05 AM) Link

Sweet!
Figured out AA and BB empirically.

Check out this image I made:
Block 2 AA BB Described

As you can see, there are two red lines. The top line is the line mario must cross before the screen pans up, and the bottom line is the line mario must cross before the screen pans down. Keep in mind that Mario's reference point (the X/Y coordinate that determines mario's location) is at the soles of his feet and in the middle of his width.

The middle image, with AAxBB set to 00x00, shows the base lines for each.

When I went negative with the line, the line shifts upward by that amount. A positive number pushes that line downward by that amount.





I discovered something else pretty interesting....

This is tricky to explain, so I've supplied a screen shot to supplement:
Panning Block

Imagine the whole level broken up into squares of 256x256 pixels, measured from 0x0, not from the top left corner of your view.

Basically, if the game notices that there are no tiles in that block of 256x256, the camera will not pan into it from a horizontally or vertically adjacent block. In fact, the camera will pan specifically so that you can't even see into the block. If the empty block is to the left or right, it wont let Mario move into it and will act like a wall. If the block is above, Mario can move into it but the camera will not pan into it. If Mario falls into it, he will die instantly.

Notice that blocks A and F are empty. Mario cannot get to A from B, but he can actually jump from D to B. While he is in A, the camera will not move, but as soon as he crosses into B, the camera will jump to that location and that boundary would act like a wall. From there, As Mario approaches C, he will be able to see some of F, but as soon as he crosses into C, the camera will reposition so that the border to F is the bottom of the screen. If Mario jumps down into F, he dies (even though the block under F has ground).

If you're confused about this, try downloading my test level for it: Panning Block (right click and save as...)

--------------------

Pages: 1 2 3 4 5 6 7
Jul - Posts by Garmichael






Rusted Logic

Acmlmboard - 07/23/2013 b378.03
©2000-2013 Acmlm, Xkeeper, Inuyasha, et al.

23 database queries, 54 query cache hits.
Query execution time:  0.054056 seconds
Script execution time:  0.101024 seconds
Total render time:  0.155080 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 94 column 11 - Warning: <form> isn't allowed in <table> elements
line 93 column 10 - Info: <table> previously mentioned
line 95 column 11 - Warning: missing <tr>
line 95 column 124 - Warning: missing </font> before </td>
line 99 column 16 - Warning: plain text isn't allowed in <tr> elements
line 95 column 11 - Info: <tr> previously mentioned
line 100 column 68 - Warning: <nobr> is not approved by W3C
line 100 column 68 - Warning: missing </nobr> before </td>
line 117 column 68 - Warning: <nobr> is not approved by W3C
line 117 column 68 - Warning: missing </nobr> before <tr>
line 141 column 35 - Warning: missing <tr>
line 141 column 50 - Warning: missing </font> before </td>
line 141 column 137 - Warning: missing </font> before </table>
line 143 column 35 - Warning: missing <tr>
line 143 column 97 - Warning: unescaped & or unknown entity "&page"
line 143 column 130 - Warning: unescaped & or unknown entity "&page"
line 143 column 163 - Warning: unescaped & or unknown entity "&page"
line 143 column 196 - Warning: unescaped & or unknown entity "&page"
line 143 column 229 - Warning: unescaped & or unknown entity "&page"
line 143 column 262 - Warning: unescaped & or unknown entity "&page"
line 143 column 50 - Warning: missing </font> before </td>
line 143 column 297 - Warning: missing </font> before </table>
line 150 column 9 - Warning: <div> isn't allowed in <tr> elements
line 149 column 9 - Info: <tr> previously mentioned
line 152 column 9 - Warning: missing <tr>
line 166 column 13 - Warning: missing <tr>
line 167 column 27 - Warning: <nobr> is not approved by W3C
line 185 column 15 - Warning: missing <td>
line 186 column 9 - Warning: <div> isn't allowed in <tr> elements
line 185 column 15 - Info: <tr> previously mentioned
line 188 column 9 - Warning: missing <tr>
line 202 column 13 - Warning: missing <tr>
line 203 column 27 - Warning: <nobr> is not approved by W3C
line 210 column 15 - Warning: missing <td>
line 211 column 9 - Warning: <div> isn't allowed in <tr> elements
line 210 column 15 - Info: <tr> previously mentioned
line 213 column 9 - Warning: missing <tr>
line 227 column 13 - Warning: missing <tr>
line 228 column 27 - Warning: <nobr> is not approved by W3C
line 237 column 15 - Warning: missing <td>
line 238 column 9 - Warning: <div> isn't allowed in <tr> elements
line 237 column 15 - Info: <tr> previously mentioned
line 240 column 9 - Warning: missing <tr>
line 254 column 13 - Warning: missing <tr>
line 255 column 27 - Warning: <nobr> is not approved by W3C
line 265 column 15 - Warning: missing <td>
line 266 column 9 - Warning: <div> isn't allowed in <tr> elements
line 265 column 15 - Info: <tr> previously mentioned
line 268 column 9 - Warning: missing <tr>
line 282 column 13 - Warning: missing <tr>
line 283 column 27 - Warning: <nobr> is not approved by W3C
line 287 column 15 - Warning: missing <td>
line 288 column 9 - Warning: <div> isn't allowed in <tr> elements
line 287 column 15 - Info: <tr> previously mentioned
line 290 column 9 - Warning: missing <tr>
line 304 column 13 - Warning: missing <tr>
line 305 column 27 - Warning: <nobr> is not approved by W3C
line 375 column 15 - Warning: missing <td>
line 376 column 9 - Warning: <div> isn't allowed in <tr> elements
line 375 column 15 - Info: <tr> previously mentioned
line 378 column 9 - Warning: missing <tr>
line 392 column 13 - Warning: missing <tr>
line 393 column 27 - Warning: <nobr> is not approved by W3C
line 430 column 15 - Warning: missing <td>
line 431 column 9 - Warning: <div> isn't allowed in <tr> elements
line 430 column 15 - Info: <tr> previously mentioned
line 433 column 9 - Warning: missing <tr>
line 447 column 13 - Warning: missing <tr>
line 448 column 27 - Warning: <nobr> is not approved by W3C
line 454 column 15 - Warning: missing <td>
line 455 column 9 - Warning: <div> isn't allowed in <tr> elements
line 454 column 15 - Info: <tr> previously mentioned
line 457 column 9 - Warning: missing <tr>
line 471 column 13 - Warning: missing <tr>
line 472 column 27 - Warning: <nobr> is not approved by W3C
line 474 column 74 - Warning: <style> isn't allowed in <td> elements
line 474 column 9 - Info: <td> previously mentioned
line 485 column 1496 - Warning: unescaped & or unknown entity "&hl"
line 485 column 1502 - Warning: unescaped & or unknown entity "&fs"
line 485 column 1507 - Warning: unescaped & or unknown entity "&rel"
line 485 column 1513 - Warning: unescaped & or unknown entity "&color1"
line 485 column 1529 - Warning: unescaped & or unknown entity "&color2"
line 485 column 1545 - Warning: unescaped & or unknown entity "&border"
line 485 column 1556 - Warning: discarding unexpected </param>
line 485 column 1607 - Warning: discarding unexpected </param>
line 485 column 1662 - Warning: discarding unexpected </param>
line 485 column 1718 - Warning: unescaped & or unknown entity "&hl"
line 485 column 1724 - Warning: unescaped & or unknown entity "&fs"
line 485 column 1729 - Warning: unescaped & or unknown entity "&rel"
line 485 column 1735 - Warning: unescaped & or unknown entity "&color1"
line 485 column 1751 - Warning: unescaped & or unknown entity "&color2"
line 485 column 1767 - Warning: unescaped & or unknown entity "&border"
line 485 column 1670 - Warning: <embed> is not approved by W3C
line 485 column 1890 - Warning: discarding unexpected </embed>
line 488 column 2018 - Warning: unescaped & or unknown entity "&hl"
line 488 column 2024 - Warning: unescaped & or unknown entity "&fs"
line 488 column 2029 - Warning: unescaped & or unknown entity "&rel"
line 488 column 2035 - Warning: unescaped & or unknown entity "&color1"
line 488 column 2051 - Warning: unescaped & or unknown entity "&color2"
line 488 column 2067 - Warning: unescaped & or unknown entity "&border"
line 488 column 2078 - Warning: discarding unexpected </param>
line 488 column 2129 - Warning: discarding unexpected </param>
line 488 column 2184 - Warning: discarding unexpected </param>
line 488 column 2240 - Warning: unescaped & or unknown entity "&hl"
line 488 column 2246 - Warning: unescaped & or unknown entity "&fs"
line 488 column 2251 - Warning: unescaped & or unknown entity "&rel"
line 488 column 2257 - Warning: unescaped & or unknown entity "&color1"
line 488 column 2273 - Warning: unescaped & or unknown entity "&color2"
line 488 column 2289 - Warning: unescaped & or unknown entity "&border"
line 488 column 2192 - Warning: <embed> is not approved by W3C
line 488 column 2412 - Warning: discarding unexpected </embed>
line 491 column 2540 - Warning: unescaped & or unknown entity "&hl"
line 491 column 2546 - Warning: unescaped & or unknown entity "&fs"
line 491 column 2551 - Warning: unescaped & or unknown entity "&rel"
line 491 column 2557 - Warning: unescaped & or unknown entity "&color1"
line 491 column 2573 - Warning: unescaped & or unknown entity "&color2"
line 491 column 2589 - Warning: unescaped & or unknown entity "&border"
line 491 column 2600 - Warning: discarding unexpected </param>
line 491 column 2651 - Warning: discarding unexpected </param>
line 491 column 2706 - Warning: discarding unexpected </param>
line 491 column 2762 - Warning: unescaped & or unknown entity "&hl"
line 491 column 2768 - Warning: unescaped & or unknown entity "&fs"
line 491 column 2773 - Warning: unescaped & or unknown entity "&rel"
line 491 column 2779 - Warning: unescaped & or unknown entity "&color1"
line 491 column 2795 - Warning: unescaped & or unknown entity "&color2"
line 491 column 2811 - Warning: unescaped & or unknown entity "&border"
line 491 column 2714 - Warning: <embed> is not approved by W3C
line 491 column 2934 - Warning: discarding unexpected </embed>
line 495 column 15 - Warning: missing <td>
line 496 column 9 - Warning: <div> isn't allowed in <tr> elements
line 495 column 15 - Info: <tr> previously mentioned
line 498 column 9 - Warning: missing <tr>
line 512 column 13 - Warning: missing <tr>
line 513 column 27 - Warning: <nobr> is not approved by W3C
line 515 column 74 - Warning: <style> isn't allowed in <td> elements
line 515 column 9 - Info: <td> previously mentioned
line 584 column 15 - Warning: missing <td>
line 585 column 9 - Warning: <div> isn't allowed in <tr> elements
line 584 column 15 - Info: <tr> previously mentioned
line 587 column 9 - Warning: missing <tr>
line 601 column 13 - Warning: missing <tr>
line 602 column 27 - Warning: <nobr> is not approved by W3C
line 604 column 74 - Warning: <style> isn't allowed in <td> elements
line 604 column 9 - Info: <td> previously mentioned
line 646 column 15 - Warning: missing <td>
line 647 column 9 - Warning: <div> isn't allowed in <tr> elements
line 646 column 15 - Info: <tr> previously mentioned
line 649 column 9 - Warning: missing <tr>
line 663 column 13 - Warning: missing <tr>
line 664 column 27 - Warning: <nobr> is not approved by W3C
line 666 column 74 - Warning: <style> isn't allowed in <td> elements
line 666 column 9 - Info: <td> previously mentioned
line 676 column 15 - Warning: missing <td>
line 677 column 9 - Warning: <div> isn't allowed in <tr> elements
line 676 column 15 - Info: <tr> previously mentioned
line 679 column 9 - Warning: missing <tr>
line 693 column 13 - Warning: missing <tr>
line 694 column 27 - Warning: <nobr> is not approved by W3C
line 696 column 74 - Warning: <style> isn't allowed in <td> elements
line 696 column 9 - Info: <td> previously mentioned
line 764 column 15 - Warning: missing <td>
line 765 column 9 - Warning: <div> isn't allowed in <tr> elements
line 764 column 15 - Info: <tr> previously mentioned
line 767 column 9 - Warning: missing <tr>
line 781 column 13 - Warning: missing <tr>
line 782 column 27 - Warning: <nobr> is not approved by W3C
line 784 column 74 - Warning: <style> isn't allowed in <td> elements
line 784 column 9 - Info: <td> previously mentioned
line 835 column 15 - Warning: missing <td>
line 836 column 9 - Warning: <div> isn't allowed in <tr> elements
line 835 column 15 - Info: <tr> previously mentioned
line 838 column 9 - Warning: missing <tr>
line 852 column 13 - Warning: missing <tr>
line 853 column 27 - Warning: <nobr> is not approved by W3C
line 855 column 74 - Warning: <style> isn't allowed in <td> elements
line 855 column 9 - Info: <td> previously mentioned
line 882 column 15 - Warning: missing <td>
line 883 column 9 - Warning: <div> isn't allowed in <tr> elements
line 882 column 15 - Info: <tr> previously mentioned
line 885 column 9 - Warning: missing <tr>
line 899 column 13 - Warning: missing <tr>
line 900 column 27 - Warning: <nobr> is not approved by W3C
line 902 column 74 - Warning: <style> isn't allowed in <td> elements
line 902 column 9 - Info: <td> previously mentioned
line 942 column 15 - Warning: missing <td>
line 943 column 9 - Warning: <div> isn't allowed in <tr> elements
line 942 column 15 - Info: <tr> previously mentioned
line 945 column 9 - Warning: missing <tr>
line 959 column 13 - Warning: missing <tr>
line 960 column 27 - Warning: <nobr> is not approved by W3C
line 962 column 74 - Warning: <style> isn't allowed in <td> elements
line 962 column 9 - Info: <td> previously mentioned
line 977 column 1347 - Warning: <a> attribute "s_complement'" lacks value
line 1002 column 15 - Warning: missing <td>
line 1003 column 9 - Warning: <div> isn't allowed in <tr> elements
line 1002 column 15 - Info: <tr> previously mentioned
line 1005 column 9 - Warning: missing <tr>
line 1019 column 13 - Warning: missing <tr>
line 1020 column 27 - Warning: <nobr> is not approved by W3C
line 1022 column 74 - Warning: <style> isn't allowed in <td> elements
line 1022 column 9 - Info: <td> previously mentioned
line 1042 column 15 - Warning: missing <td>
line 1043 column 9 - Warning: <div> isn't allowed in <tr> elements
line 1042 column 15 - Info: <tr> previously mentioned
line 1045 column 9 - Warning: missing <tr>
line 1059 column 13 - Warning: missing <tr>
line 1060 column 27 - Warning: <nobr> is not approved by W3C
line 1062 column 74 - Warning: <style> isn't allowed in <td> elements
line 1062 column 9 - Info: <td> previously mentioned
line 1090 column 15 - Warning: missing <td>
line 1091 column 9 - Warning: <div> isn't allowed in <tr> elements
line 1090 column 15 - Info: <tr> previously mentioned
line 1093 column 9 - Warning: missing <tr>
line 1107 column 13 - Warning: missing <tr>
line 1108 column 27 - Warning: <nobr> is not approved by W3C
line 1110 column 74 - Warning: <style> isn't allowed in <td> elements
line 1110 column 9 - Info: <td> previously mentioned
line 1142 column 17 - Warning: discarding unexpected <table>
line 1145 column 35 - Warning: missing <tr>
line 1145 column 97 - Warning: unescaped & or unknown entity "&page"
line 1145 column 130 - Warning: unescaped & or unknown entity "&page"
line 1145 column 163 - Warning: unescaped & or unknown entity "&page"
line 1145 column 196 - Warning: unescaped & or unknown entity "&page"
line 1145 column 229 - Warning: unescaped & or unknown entity "&page"
line 1145 column 262 - Warning: unescaped & or unknown entity "&page"
line 1145 column 50 - Warning: missing </font> before </td>
line 1145 column 297 - Warning: missing </font> before </table>
line 1147 column 35 - Warning: missing <tr>
line 1147 column 50 - Warning: missing </font> before </td>
line 1147 column 137 - Warning: missing </font> before </table>
line 1149 column 17 - Warning: discarding unexpected </textarea>
line 1149 column 28 - Warning: discarding unexpected </form>
line 1149 column 35 - Warning: discarding unexpected </embed>
line 1149 column 43 - Warning: discarding unexpected </noembed>
line 1149 column 53 - Warning: discarding unexpected </noscript>
line 1149 column 64 - Warning: discarding unexpected </noembed>
line 1149 column 74 - Warning: discarding unexpected </embed>
line 1149 column 82 - Warning: discarding unexpected </table>
line 1149 column 90 - Warning: discarding unexpected </table>
line 1158 column 9 - Warning: missing </font> before <table>
line 1174 column 9 - Warning: inserting implicit <font>
line 1174 column 9 - Warning: missing </a> before <div>
line 1174 column 9 - Warning: missing </font> before <div>
line 1174 column 105 - Warning: inserting implicit <font>
line 1174 column 111 - Warning: discarding unexpected </a>
line 1193 column 58 - Warning: discarding unexpected </font>
line 1151 column 1 - Warning: missing </center>
line 474 column 74 - Warning: <style> inserting "type" attribute
line 515 column 74 - Warning: <style> inserting "type" attribute
line 604 column 74 - Warning: <style> inserting "type" attribute
line 666 column 74 - Warning: <style> inserting "type" attribute
line 696 column 74 - Warning: <style> inserting "type" attribute
line 784 column 74 - Warning: <style> inserting "type" attribute
line 855 column 74 - Warning: <style> inserting "type" attribute
line 902 column 74 - Warning: <style> inserting "type" attribute
line 962 column 74 - Warning: <style> inserting "type" attribute
line 1022 column 74 - Warning: <style> inserting "type" attribute
line 1062 column 74 - Warning: <style> inserting "type" attribute
line 1110 column 74 - Warning: <style> inserting "type" attribute
line 91 column 9 - Warning: <img> lacks "alt" attribute
line 93 column 10 - Warning: <table> lacks "summary" attribute
line 95 column 63 - Warning: <img> lacks "alt" attribute
line 100 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 100 column 93 - Warning: <img> lacks "alt" attribute
line 117 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 117 column 98 - Warning: <img> lacks "alt" attribute
line 136 column 1 - Warning: <table> lacks "summary" attribute
line 136 column 240 - Warning: <td> attribute "bgcolor" lacks value
line 141 column 17 - Warning: <table> lacks "summary" attribute
line 143 column 17 - Warning: <table> lacks "summary" attribute
line 151 column 9 - Warning: <table> lacks "summary" attribute
line 155 column 22 - Warning: <img> lacks "alt" attribute
line 155 column 63 - Warning: <img> lacks "alt" attribute
line 155 column 111 - Warning: <img> lacks "alt" attribute
line 155 column 161 - Warning: <img> lacks "alt" attribute
line 156 column 11 - Warning: <img> lacks "alt" attribute
line 162 column 15 - Warning: <img> lacks "alt" attribute
line 165 column 11 - Warning: <table> lacks "summary" attribute
line 187 column 9 - Warning: <table> lacks "summary" attribute
line 191 column 22 - Warning: <img> lacks "alt" attribute
line 191 column 63 - Warning: <img> lacks "alt" attribute
line 191 column 111 - Warning: <img> lacks "alt" attribute
line 191 column 161 - Warning: <img> lacks "alt" attribute
line 192 column 11 - Warning: <img> lacks "alt" attribute
line 198 column 15 - Warning: <img> lacks "alt" attribute
line 201 column 11 - Warning: <table> lacks "summary" attribute
line 212 column 9 - Warning: <table> lacks "summary" attribute
line 216 column 22 - Warning: <img> lacks "alt" attribute
line 216 column 63 - Warning: <img> lacks "alt" attribute
line 216 column 111 - Warning: <img> lacks "alt" attribute
line 216 column 161 - Warning: <img> lacks "alt" attribute
line 217 column 11 - Warning: <img> lacks "alt" attribute
line 223 column 15 - Warning: <img> lacks "alt" attribute
line 226 column 11 - Warning: <table> lacks "summary" attribute
line 239 column 9 - Warning: <table> lacks "summary" attribute
line 243 column 22 - Warning: <img> lacks "alt" attribute
line 243 column 63 - Warning: <img> lacks "alt" attribute
line 243 column 111 - Warning: <img> lacks "alt" attribute
line 243 column 161 - Warning: <img> lacks "alt" attribute
line 244 column 11 - Warning: <img> lacks "alt" attribute
line 250 column 15 - Warning: <img> lacks "alt" attribute
line 253 column 11 - Warning: <table> lacks "summary" attribute
line 263 column 597 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 597 - Warning: <img> lacks "alt" attribute
line 263 column 650 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 650 - Warning: <img> lacks "alt" attribute
line 263 column 703 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 703 - Warning: <img> lacks "alt" attribute
line 263 column 756 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 756 - Warning: <img> lacks "alt" attribute
line 263 column 809 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 809 - Warning: <img> lacks "alt" attribute
line 263 column 862 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 862 - Warning: <img> lacks "alt" attribute
line 263 column 915 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 915 - Warning: <img> lacks "alt" attribute
line 263 column 968 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 968 - Warning: <img> lacks "alt" attribute
line 263 column 1021 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 1021 - Warning: <img> lacks "alt" attribute
line 263 column 1074 - Warning: <img> proprietary attribute value "absmiddle"
line 263 column 1074 - Warning: <img> lacks "alt" attribute
line 267 column 9 - Warning: <table> lacks "summary" attribute
line 271 column 22 - Warning: <img> lacks "alt" attribute
line 271 column 63 - Warning: <img> lacks "alt" attribute
line 271 column 111 - Warning: <img> lacks "alt" attribute
line 271 column 161 - Warning: <img> lacks "alt" attribute
line 272 column 11 - Warning: <img> lacks "alt" attribute
line 278 column 15 - Warning: <img> lacks "alt" attribute
line 281 column 11 - Warning: <table> lacks "summary" attribute
line 289 column 9 - Warning: <table> lacks "summary" attribute
line 293 column 22 - Warning: <img> lacks "alt" attribute
line 293 column 63 - Warning: <img> lacks "alt" attribute
line 293 column 111 - Warning: <img> lacks "alt" attribute
line 293 column 161 - Warning: <img> lacks "alt" attribute
line 294 column 11 - Warning: <img> lacks "alt" attribute
line 300 column 15 - Warning: <img> lacks "alt" attribute
line 303 column 11 - Warning: <table> lacks "summary" attribute
line 346 column 2383 - Warning: <img> proprietary attribute value "absmiddle"
line 346 column 2383 - Warning: <img> lacks "alt" attribute
line 371 column 4313 - Warning: <img> proprietary attribute value "absmiddle"
line 371 column 4313 - Warning: <img> lacks "alt" attribute
line 377 column 9 - Warning: <table> lacks "summary" attribute
line 381 column 22 - Warning: <img> lacks "alt" attribute
line 381 column 63 - Warning: <img> lacks "alt" attribute
line 381 column 111 - Warning: <img> lacks "alt" attribute
line 381 column 161 - Warning: <img> lacks "alt" attribute
line 382 column 11 - Warning: <img> lacks "alt" attribute
line 388 column 15 - Warning: <img> lacks "alt" attribute
line 391 column 11 - Warning: <table> lacks "summary" attribute
line 410 column 1174 - Warning: <img> proprietary attribute value "absmiddle"
line 410 column 1174 - Warning: <img> lacks "alt" attribute
line 414 column 1510 - Warning: <img> proprietary attribute value "absmiddle"
line 414 column 1510 - Warning: <img> lacks "alt" attribute
line 418 column 1675 - Warning: <img> proprietary attribute value "absmiddle"
line 418 column 1675 - Warning: <img> lacks "alt" attribute
line 432 column 9 - Warning: <table> lacks "summary" attribute
line 436 column 22 - Warning: <img> lacks "alt" attribute
line 436 column 63 - Warning: <img> lacks "alt" attribute
line 436 column 111 - Warning: <img> lacks "alt" attribute
line 436 column 161 - Warning: <img> lacks "alt" attribute
line 437 column 11 - Warning: <img> lacks "alt" attribute
line 443 column 15 - Warning: <img> lacks "alt" attribute
line 446 column 11 - Warning: <table> lacks "summary" attribute
line 456 column 9 - Warning: <table> lacks "summary" attribute
line 460 column 22 - Warning: <img> lacks "alt" attribute
line 460 column 63 - Warning: <img> lacks "alt" attribute
line 460 column 111 - Warning: <img> lacks "alt" attribute
line 460 column 161 - Warning: <img> lacks "alt" attribute
line 461 column 11 - Warning: <img> lacks "alt" attribute
line 467 column 15 - Warning: <img> lacks "alt" attribute
line 470 column 11 - Warning: <table> lacks "summary" attribute
line 497 column 9 - Warning: <table> lacks "summary" attribute
line 501 column 22 - Warning: <img> lacks "alt" attribute
line 501 column 63 - Warning: <img> lacks "alt" attribute
line 501 column 111 - Warning: <img> lacks "alt" attribute
line 501 column 161 - Warning: <img> lacks "alt" attribute
line 502 column 11 - Warning: <img> lacks "alt" attribute
line 508 column 15 - Warning: <img> lacks "alt" attribute
line 511 column 11 - Warning: <table> lacks "summary" attribute
line 515 column 831 - Warning: <div> anchor "Gouter" already defined
line 516 column 852 - Warning: <div> anchor "Ginner" already defined
line 575 column 3455 - Warning: <img> lacks "alt" attribute
line 586 column 9 - Warning: <table> lacks "summary" attribute
line 590 column 22 - Warning: <img> lacks "alt" attribute
line 590 column 63 - Warning: <img> lacks "alt" attribute
line 590 column 111 - Warning: <img> lacks "alt" attribute
line 590 column 161 - Warning: <img> lacks "alt" attribute
line 591 column 11 - Warning: <img> lacks "alt" attribute
line 597 column 15 - Warning: <img> lacks "alt" attribute
line 600 column 11 - Warning: <table> lacks "summary" attribute
line 604 column 831 - Warning: <div> anchor "Gouter" already defined
line 605 column 852 - Warning: <div> anchor "Ginner" already defined
line 648 column 9 - Warning: <table> lacks "summary" attribute
line 652 column 22 - Warning: <img> lacks "alt" attribute
line 652 column 63 - Warning: <img> lacks "alt" attribute
line 652 column 111 - Warning: <img> lacks "alt" attribute
line 652 column 161 - Warning: <img> lacks "alt" attribute
line 653 column 11 - Warning: <img> lacks "alt" attribute
line 659 column 15 - Warning: <img> lacks "alt" attribute
line 662 column 11 - Warning: <table> lacks "summary" attribute
line 666 column 831 - Warning: <div> anchor "Gouter" already defined
line 667 column 852 - Warning: <div> anchor "Ginner" already defined
line 678 column 9 - Warning: <table> lacks "summary" attribute
line 682 column 22 - Warning: <img> lacks "alt" attribute
line 682 column 63 - Warning: <img> lacks "alt" attribute
line 682 column 111 - Warning: <img> lacks "alt" attribute
line 682 column 161 - Warning: <img> lacks "alt" attribute
line 683 column 11 - Warning: <img> lacks "alt" attribute
line 689 column 15 - Warning: <img> lacks "alt" attribute
line 692 column 11 - Warning: <table> lacks "summary" attribute
line 696 column 831 - Warning: <div> anchor "Gouter" already defined
line 697 column 852 - Warning: <div> anchor "Ginner" already defined
line 766 column 9 - Warning: <table> lacks "summary" attribute
line 770 column 22 - Warning: <img> lacks "alt" attribute
line 770 column 63 - Warning: <img> lacks "alt" attribute
line 770 column 111 - Warning: <img> lacks "alt" attribute
line 770 column 161 - Warning: <img> lacks "alt" attribute
line 771 column 11 - Warning: <img> lacks "alt" attribute
line 777 column 15 - Warning: <img> lacks "alt" attribute
line 780 column 11 - Warning: <table> lacks "summary" attribute
line 784 column 831 - Warning: <div> anchor "Gouter" already defined
line 785 column 852 - Warning: <div> anchor "Ginner" already defined
line 831 column 3987 - Warning: <img> proprietary attribute value "absmiddle"
line 831 column 3987 - Warning: <img> lacks "alt" attribute
line 832 column 4094 - Warning: <img> proprietary attribute value "absmiddle"
line 832 column 4094 - Warning: <img> lacks "alt" attribute
line 837 column 9 - Warning: <table> lacks "summary" attribute
line 841 column 22 - Warning: <img> lacks "alt" attribute
line 841 column 63 - Warning: <img> lacks "alt" attribute
line 841 column 111 - Warning: <img> lacks "alt" attribute
line 841 column 161 - Warning: <img> lacks "alt" attribute
line 842 column 11 - Warning: <img> lacks "alt" attribute
line 848 column 15 - Warning: <img> lacks "alt" attribute
line 851 column 11 - Warning: <table> lacks "summary" attribute
line 855 column 831 - Warning: <div> anchor "Gouter" already defined
line 856 column 852 - Warning: <div> anchor "Ginner" already defined
line 884 column 9 - Warning: <table> lacks "summary" attribute
line 888 column 22 - Warning: <img> lacks "alt" attribute
line 888 column 63 - Warning: <img> lacks "alt" attribute
line 888 column 111 - Warning: <img> lacks "alt" attribute
line 888 column 161 - Warning: <img> lacks "alt" attribute
line 889 column 11 - Warning: <img> lacks "alt" attribute
line 895 column 15 - Warning: <img> lacks "alt" attribute
line 898 column 11 - Warning: <table> lacks "summary" attribute
line 902 column 831 - Warning: <div> anchor "Gouter" already defined
line 903 column 852 - Warning: <div> anchor "Ginner" already defined
line 944 column 9 - Warning: <table> lacks "summary" attribute
line 948 column 22 - Warning: <img> lacks "alt" attribute
line 948 column 63 - Warning: <img> lacks "alt" attribute
line 948 column 111 - Warning: <img> lacks "alt" attribute
line 948 column 161 - Warning: <img> lacks "alt" attribute
line 949 column 11 - Warning: <img> lacks "alt" attribute
line 955 column 15 - Warning: <img> lacks "alt" attribute
line 958 column 11 - Warning: <table> lacks "summary" attribute
line 962 column 831 - Warning: <div> anchor "Gouter" already defined
line 963 column 852 - Warning: <div> anchor "Ginner" already defined
line 1004 column 9 - Warning: <table> lacks "summary" attribute
line 1008 column 22 - Warning: <img> lacks "alt" attribute
line 1008 column 63 - Warning: <img> lacks "alt" attribute
line 1008 column 111 - Warning: <img> lacks "alt" attribute
line 1008 column 161 - Warning: <img> lacks "alt" attribute
line 1009 column 11 - Warning: <img> lacks "alt" attribute
line 1015 column 15 - Warning: <img> lacks "alt" attribute
line 1018 column 11 - Warning: <table> lacks "summary" attribute
line 1022 column 831 - Warning: <div> anchor "Gouter" already defined
line 1023 column 852 - Warning: <div> anchor "Ginner" already defined
line 1044 column 9 - Warning: <table> lacks "summary" attribute
line 1048 column 22 - Warning: <img> lacks "alt" attribute
line 1048 column 63 - Warning: <img> lacks "alt" attribute
line 1048 column 111 - Warning: <img> lacks "alt" attribute
line 1048 column 161 - Warning: <img> lacks "alt" attribute
line 1049 column 11 - Warning: <img> lacks "alt" attribute
line 1055 column 15 - Warning: <img> lacks "alt" attribute
line 1058 column 11 - Warning: <table> lacks "summary" attribute
line 1062 column 831 - Warning: <div> anchor "Gouter" already defined
line 1063 column 852 - Warning: <div> anchor "Ginner" already defined
line 1092 column 9 - Warning: <table> lacks "summary" attribute
line 1096 column 22 - Warning: <img> lacks "alt" attribute
line 1096 column 63 - Warning: <img> lacks "alt" attribute
line 1096 column 111 - Warning: <img> lacks "alt" attribute
line 1096 column 161 - Warning: <img> lacks "alt" attribute
line 1097 column 11 - Warning: <img> lacks "alt" attribute
line 1103 column 15 - Warning: <img> lacks "alt" attribute
line 1106 column 11 - Warning: <table> lacks "summary" attribute
line 1110 column 831 - Warning: <div> anchor "Gouter" already defined
line 1111 column 852 - Warning: <div> anchor "Ginner" already defined
line 146 column 17 - Warning: <table> lacks "summary" attribute
line 1145 column 17 - Warning: <table> lacks "summary" attribute
line 1147 column 17 - Warning: <table> lacks "summary" attribute
line 1153 column 1 - Warning: <img> lacks "alt" attribute
line 1154 column 1 - Warning: <img> lacks "alt" attribute
line 1155 column 1 - Warning: <img> lacks "alt" attribute
line 1162 column 9 - Warning: <table> lacks "summary" attribute
line 1164 column 25 - Warning: <img> lacks "alt" attribute
line 1194 column 17 - Warning: <table> lacks "summary" attribute
line 141 column 137 - Warning: trimming empty <font>
line 143 column 297 - Warning: trimming empty <font>
line 1090 column 15 - Warning: trimming empty <tr>
line 1145 column 297 - Warning: trimming empty <font>
line 1147 column 137 - Warning: trimming empty <font>
line 1174 column 105 - Warning: trimming empty <font>
line 153 column 11 - Warning: <a> cannot copy name attribute to id
line 189 column 11 - Warning: <a> cannot copy name attribute to id
line 214 column 11 - Warning: <a> cannot copy name attribute to id
line 241 column 11 - Warning: <a> cannot copy name attribute to id
line 269 column 11 - Warning: <a> cannot copy name attribute to id
line 291 column 11 - Warning: <a> cannot copy name attribute to id
line 379 column 11 - Warning: <a> cannot copy name attribute to id
line 434 column 11 - Warning: <a> cannot copy name attribute to id
line 458 column 11 - Warning: <a> cannot copy name attribute to id
line 499 column 11 - Warning: <a> cannot copy name attribute to id
line 588 column 11 - Warning: <a> cannot copy name attribute to id
line 650 column 11 - Warning: <a> cannot copy name attribute to id
line 680 column 11 - Warning: <a> cannot copy name attribute to id
line 768 column 11 - Warning: <a> cannot copy name attribute to id
line 839 column 11 - Warning: <a> cannot copy name attribute to id
line 886 column 11 - Warning: <a> cannot copy name attribute to id
line 946 column 11 - Warning: <a> cannot copy name attribute to id
line 1006 column 11 - Warning: <a> cannot copy name attribute to id
line 1046 column 11 - Warning: <a> cannot copy name attribute to id
line 1094 column 11 - Warning: <a> cannot copy name attribute to id
Info: Document content looks like HTML Proprietary
Info: No system identifier in emitted doctype
489 warnings, 0 errors were found!


The table summary attribute should be used to describe
the table structure. It is very helpful for people using
non-visual browsers. The scope and headers attributes for
table cells are useful for specifying which headers apply
to each table cell, enabling non-visual browsers to provide
a meaningful context for each cell.

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 may also want to try
"http://www.cast.org/bobby/" which is a free Web-based
service for checking URLs for accessibility.

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.

To learn more about HTML Tidy see http://tidy.sourceforge.net
Please fill bug reports and queries using the "tracker" on the Tidy web site.
Additionally, questions can be sent to html-tidy@w3.org
HTML and CSS specifications are available from http://www.w3.org/
Lobby your company to join W3C, see http://www.w3.org/Consortium