Register - Login
Views: 99379538
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 10:58:05 PM
Jul - SM64 Hacking (Archive) - Stuff inside the checksum protected area (Title Screen, etc.) New poll - New thread - New reply
Pages: 1 2 3 Next newer thread | Next older thread
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 214/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 07-21-08 12:48:32 AM (last edited by VL-Tone at 05-19-09 01:23 AM) Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
The checksum protected area in the SM64 is starting at 0x1000 and ends at 0x100000. If you modify anything in this area, you'll have to recalculate the checksum or else the ROM won't startup. (Is there a way to disable the CIC bootrom check?)

One way to experiment editing these values without recalculating each time would be to find the RAM location of these values, and edit RAM instead.

This area probably contains a lot of the key missing stuff that we haven't documented, as I didn't experiment much in there because of the checksum problem.

Some of the stuff I found in the area:

At 0xE8D98, (which is incidentally inside the checksum protected area) you'll find this list of bytes:

00 00 00 05 04 00 06 08 01 0A 0B 03 0D 0E 0F 00 10 16 11 18 12 07 09 02 19 00 13 14 15 10 17 00 11 12 00 0C

You must know that each level has a byte ID, used for example by warps. The 0x0C commands you can find in the SM64MainLevelScripts.txt doc will conditionally branch to the corresponding level script when the "current level ID" variable is set by a warp command. The 8th byte of the 0x0C command refers to the level ID, and in the doc you can see to which level each command correspond.

Here's the first level select command in the doc:

2ABF1C/027C:  0C 0C 02 00 00 00 00 04 15 00 03 F4 --Haunted House



The level ID for the Haunted House is 0x04. Note that in the 0xE8D98 list, the first three bytes are 00, the fourth byte being the first "meaningful" byte of the list. It's not a coincidence, and level ID 0x04 indeed refers to the fourth byte of this list, which contains 0x05.

If you match the 0xE8D98 list with the level IDs, you get that:


00--01--Not in level selector

00--02--Not in level selector
00--03--Not in level selector
05--04--Haunted House
04--05--Cool Cool Mountain
00--06--Inside Castle
06--07--Hazy Maze Cave
08--08--Shifting Sand Land
01--09--Bob-Omb's Battlefield
0A--0A--Snow Man's land
0B--0B--Wet Dry World
03--0C--Jolly Roger Bay
0D--0D--Tiny Huge Island
0E--0E--Tick Tock Clock
0F--0F--Rainbow Ride
00--10--Castle Grounds
10--11--Bowser First Course
16--12--Vanish Cap
11--13--Bowser's Fire Sea
18--14--Secret Aquarium
12--15--Bowser Third Course
07--16--Lethal Lava Land
09--17--Dire Dire Docks
02--18--Whomp's Fortress
19--19--Picture at the end
00--1A--Castle Courtyard
13--1B--Peach's Secret Slide
14--1C--Metal Cap
15--1D--Wing Cap
10--1E--Bowser First Battle
17--1F--Rainbow Clouds
00--20--Not in level selector
11--21--Bowser Second Battle
12--22--Bowser Third Battle
00--23--Not in level selector
0C--24--Tall Tall Mountain



Swapping the bytes around in the 0xE8D98 list, I found that the bytes refer to level specific characteristics that are not contained in the level script, like camera settings, Boss stars positions and many other things. If I remember correctly (or maybe it was just a dream) you can make it snow in Bob-omb Battlefield by replacing the 0x01 with 0x0A, which will make BBB inherit Snowman's land characteristics. If you beat King Bobomb after this modification, the resulting star will appear where the Chilling Bully star appears.

Another thing to note is that both Castle grounds and courtyard have 0x00 as a value, just like the empty slots. (Counting the empty slots reveals that something like 5 levels where cut from the game in the final version!! And no, they're not still in the ROM like SMB3.)

The main problem with experimenting with this list is that you have to recalculate the checksum each time you want to test a modification.

I suspect that the level characteristics/parameters themselves are somewhere not that far from 0xE8D98, still in the checksum area.

There are other interesting stuff around this address. At 0xE8DFC there's list of behavior pointers which happens to be a list of all warp behavior pointers used by objects in levels.


13000AFC Door Warp Behavior

13003E3C Collect Star
13000720 Exit Podium Warp
13000780 Warp
130007A0 Warp (Pipe)
1300075C Fading Warp
13002F60 Warp
13002F64 Warp: Mario Start
13002F68 Warp
13002F6C Warp: Mario Start
13002F70 Level Exit
13002F74 Warp: Mario Level Start
13002F78 Warp: Mario Start Flying
13002F94 Warp
13002F7C Painting Exit (Success)
13002F80 Painting Exit (Failure)
13002F88 Warp
13002F84 Warp
13002F8C Level Exit From Hole



Just after these, at 0xE8E4C is a list of bytes that define Mario's behavior while being warped using these each of these behaviors.

01 02 03 03 03 04 10 12 13 14 15 16 17 11 20 21 22 23 24

At 0xEC7E0 is the list of 512 model ID/param/behavior pointer combos used by the 0x42 commands, and at 0xED358 is for the 0x43 commands. The 0x43 combo list acts as a patch list to the 0x42 combos. The 0x43 list contains 81 items, and each one of these contain a value that determines which item of the 0x42 list is patched. 0x43 commands can only access the first 256 combos of the patched list.

There another similar combo list containing behavior pointers at EAECC for which I haven't found a use yet. Most if not all of the behavior there are "Unused" according to my docs, though a better word would've been "Unidentified".

At 0x0EA4DC there's a table of RAM pointers (0x80******)

At 0xF0BA1, as you may have found, the credits are there in plain ASCII, and not so far after are some interesting but unused strings used by a disabled debugger.

There's some other interesting stuff I found, like Mario's moves table, but I can't find my notes about it and their precise location.

____________________
messiaen
Catgirl
Level: 68


Posts: 176/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 07-21-08 04:03:27 PM (last edited by messiaen at 07-22-08 02:00 PM) Link | Quote
Amazing stuff!

The list at 0xE8D98 seems to be related to the "select act" white screen. Swapping Bob-omb's value for Snowman's Land will only change that screen. If you set any level to "1B" (Peach's secret slide value) the act selector won't show up, but I'm not sure which act you end up on.

Some time ago Yoshiman found some data in RAM which is used by the Tox Boxes to determine its movement. In the ROM, it is found at 0xEB8A8-EB8CC (this is probably just for one of the parameters, the data seems to begin at 0xEB850). Probably there are lots of interesting data used by objects in nearby areas.

I also found some data used by the King Bob-Omb:

0xF28F0-0xF2903 (in RAM, begins at 803378F0): I'm not sure what it does. 0xF28FC seems to be read a lot (try placing a breakpoint there). It's probably a floating point number.

From 0xF2904 to 0xF2917, there is a list of RAM pointers, and they are used by the King Bob-Omb like this:

802A7D40: LW T7, 0x7904 (AT) <-- Loads value from 80337904 and stores at $t7
802A7D44: JR T7 <-- Jump to value stored at register $t7

The last pointer (at 0xF2914) is responsible for creating the dialog box when the King is thrown off the cliff (more info on the ASM thread).

---

At 0xED9CC, begins a long list of pointers mainly to Bank 0x07. I placed a few breakpoints in these values, and indeed some of them are hardcoded collision pointers. For instance, at RAM 80332A0C, we have "070113F0". This is the pointer for the Bob-Omb's Bridge collision data. If you look at its behavior, there isn't any 0x2A collision pointer.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 220/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 07-24-08 02:49:52 AM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by messiaen
Amazing stuff!

The list at 0xE8D98 seems to be related to the "select act" white screen. Swapping Bob-omb's value for Snowman's Land will only change that screen. If you set any level to "1B" (Peach's secret slide value) the act selector won't show up, but I'm not sure which act you end up on.



Yeah, the "select act" seems to be one of the level "characteristics" determined by the 0xE8D98 table. While you're tracing stuff around this area, couldn't you find by what routine the table is read? This would give us a clue to where the actual parameters are stored. I'm to lazy to search myself, but do you know what is the RAM offset for the 0xE8D98table?


____________________
messiaen
Catgirl
Level: 68


Posts: 179/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 07-24-08 04:16:00 PM (last edited by messiaen at 07-24-08 01:18 PM) Link | Quote
The table starts at 0x8032DD98. Placing a breakpoint at it and stepping through the code will help us find some meaningful values. So far, I haven't found nothing interesting.

This if from Cellar Dweller's generalnotes.txt:

for most code: (low text)
ram - rom = 0x80245000
ram = 0x80245000 + rom
rom = ram - 0x80245000

By the way, if you are considering making TT64 edit the checksum area, some Gameshark codes contain really interesting stuff. For instance:

0x6BD4 - NOP to Skip Intro (4 bytes)
0x6D98 - NOP to Skip Lakitu (4 bytes)
0x10018 - Ammount of lives to start (last 2 bytes, it's an ADD Immediate instruction)

These codes were created by Viper, I just found the respective ROM offsets. The "Skip Intro" and "Skip Lakitu" could be very useful, otherwise if you change the Castle Grounds script most likely the intro will crash the game. There's also a bunch of codes to change the number of stars needed to open each door in the castle, these also would be useful.
Stevoisiak
Member
Level: 38


Posts: 100/283
EXP: 345476
For next: 24971

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 07-25-08 12:16:30 AM Link | Quote
Originally posted by messiaen
otherwise if you change the Castle Grounds script most likely the intro will crash the game. There's also a bunch of codes to change the number of stars needed to open each door in the castle, these also would be useful.


Actually, if you use level select when first starting a game, and choose a level other than castle grounds, the game will not freeze. I tried it in the aquarium level. Also, can you show me the star door code? I'm verry interested in that. It could also lead to useful things if it's decoded.
rstewart215804
User
Crazed Mario 64 Hacker!!!
Level: 11


Posts: 14/18
EXP: 5578
For next: 407

Since: 09-13-07


Since last post: 13.2 years
Last activity: 11.7 years

Posted on 07-25-08 06:45:14 PM Link | Quote
I know this lies outside the checksum but at 0x21F5E8 is the ASM that runs the stage select. It is strange that it uses data inside the checksum and how there are spots for extra levels. Maybe if ever we find a way around the checksum we could make more levels.

____________________
Just you wait until next time. Until then, keep that Control Stick smokin’! Buwaa ha ha!
messiaen
Catgirl
Level: 68


Posts: 182/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 07-27-08 07:26:59 PM Link | Quote
I did some tests and the snow at "Cool Cool Mountain" is created by a function called in the Geo Layout. So, maybe you achieved the snow effect on Bob-omb when experimenting with the main terrain Geo Layout. I'll see if I can do the same.

I know this may be a bit off-topic, but if there are more level characteristics besides the ones we already know, perhaps this command is worth looking at:

[28] [0C] [00 01 00 00 00 00 00 00 00 00]

[1]: 28= Sometimes seen after 0x26 commands, near the end, I don't know it's use
[2]: Length byte (dec 12)
[3-12]: ??

Look at struct_area.txt from Cwellar Dweller's Hacking Notes:

void *off0x1c /* 4 @ 0x1c pointer to a array of four eight byte structures defined by command 0x28 */
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 223/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-02-08 02:58:25 AM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by messiaen
I did some tests and the snow at "Cool Cool Mountain" is created by a function called in the Geo Layout. So, maybe you achieved the snow effect on Bob-omb when experimenting with the main terrain Geo Layout. I'll see if I can do the same.

I know this may be a bit off-topic, but if there are more level characteristics besides the ones we already know, perhaps this command is worth looking at:

[28] [0C] [00 01 00 00 00 00 00 00 00 00]

[1]: 28= Sometimes seen after 0x26 commands, near the end, I don't know it's use
[2]: Length byte (dec 12)
[3-12]: ??

Look at struct_area.txt from Cwellar Dweller's Hacking Notes:

void *off0x1c /* 4 @ 0x1c pointer to a array of four eight byte structures defined by command 0x28 */



About the snow, it's possible that I was mistaken. I'm not even sure if I actually achieved it or dreamed about it

I was thinking about something... Don't you think it would be possible to copy/move most of this stuff out of the checksum area and into the extended part of the ROM? That way we wouldn't have to recalculate the checksum each time we make a change. Do you have any idea where the command and pointer that loads this data in RAM is? Let's hope it's a big block of ROM that's copied at once in RAM from this area.

____________________
messiaen
Catgirl
Level: 68


Posts: 189/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-02-08 05:06:45 PM (last edited by messiaen at 08-02-08 02:44 PM) Link | Quote
I can't help much in that, because this area is loaded very early in the initialization process, so probably this would require a good deal of low-level knowledge of the N64. By the way, in the header of the ROM there's the RAM address where this area is copied to (80246000), hence the ram = 0x80245000 + rom "formula".

About the snow, this is the function called in the Geo Layout I was talking about:

18 00 00 [xx] 80 27 61 D0

xx = Some argument (usually 00). Values used:

01 = used in Cool Cool Mountain (area 1) and Snowman's Land (area 1). Produces the snow effect.
02 = used in Jolly Roger Bay (area 2) and Secret Aquarium.
0C = used in Lethal Lava Land (area 1), Bowser's Fire Sea and Bowser Second Battle
0D = used in Dire Dire Docks (area 1).
0E = used in Jolly Roger Bay and Dire Dire Docks (area 2).

I tried using the 01 value in Bob-omb Battlefield, but instead of producing snow it produces strange polygon shapes. So, I guess it could be either that a specific bank loaded in Cool Cool Mountain/Snowman's Land is needed or that snow is in one of the shared banks but there isn't a 0x22 pointing to it in Bob-omb Battlefield.

But getting back to the checksum area, I don't know if that's what you meant when you said you find Mario's move table, but a lot of the 8027xxxx RAM pointers are some sort of jump table for specific Mario actions. For instance, the value at 80336C60 is read and them jumped to (by a Jump Register opcode) when you do the "jump" action. All nearby values are jump related, such as double jump, triple jump, etc. By swapping these values you can make things like a instant triple jump or another changes. For example, here is a fun code I created that replaces the kick after two punches value with another punch value. This way you can punch very fast:

81336EE8 8027
81336EEA 4F90
Stevoisiak
Member
Level: 38


Posts: 103/283
EXP: 345476
For next: 24971

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 08-04-08 12:27:14 PM Link | Quote
To make some of these things clearer, can you post images for those of us who cannot do this ourselves?
Boing
450
Level: 46


Posts: 80/458
EXP: 709669
For next: 2105

Since: 12-16-07

From: Michigan, US

Since last post: 11.1 years
Last activity: 11.1 years

Posted on 08-04-08 08:07:32 PM Link | Quote


<object width="80" height="185">

<embed src="http://bbsplat.googlepages.com/bounce.swf" width="80" height="185">
</embed>
</object>


Originally posted by Stevoisiak
To make some of these things clearer, can you post images for those of us who cannot do this ourselves?

I don't particularly see how images would help hex editing...

____________________
Stevoisiak
Member
Level: 38


Posts: 106/283
EXP: 345476
For next: 24971

Since: 11-22-07

From: New York, Long Island

Since last post: 12.3 years
Last activity: 5.6 years

Posted on 08-05-08 01:47:44 PM Link | Quote
Originally posted by Boing
Originally posted by Stevoisiak
To make some of these things clearer, can you post images for those of us who cannot do this ourselves?

I don't particularly see how images would help hex editing...

I mean to see the effects of the editing. And I thought you hacked SMW.
messiaen
Catgirl
Level: 68


Posts: 193/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-05-08 06:08:06 PM Link | Quote
This was way simpler than I thought, so here is a simple way to skip CRC check. Just NOP these two instructions:

(ROM)
0x066C: BNE A3, T0, 0x800001C8 <-- Sends you to a dark trap room.
0x0678: BNE S0, T0, 0x800001C8

The emulator will complain about it ("unknown CIC"), but it works. There also could be an option in TT64 to restore this code and recalculate the CRC when your project is ready, to avoid emulator annoyances.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 227/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-05-08 11:30:08 PM (last edited by VL-Tone at 08-05-08 08:35 PM) Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
Originally posted by messiaen
This was way simpler than I thought, so here is a simple way to skip CRC check. Just NOP these two instructions:

(ROM)
0x066C: BNE A3, T0, 0x800001C8 <-- Sends you to a dark trap room.
0x0678: BNE S0, T0, 0x800001C8

The emulator will complain about it ("unknown CIC"), but it works. There also could be an option in TT64 to restore this code and recalculate the CRC when your project is ready, to avoid emulator annoyances.



Nice! it works and my emulator (Sixtyforce on the Mac) doesn't even complain!

Isn't there an option to avoid the "unknown CIC" dialog from appearing on other emulators? Maybe we could NOP a few instructions in the emulator to get rid of it

Edit:
Here is what I did:

At 0x66C I replaced 14E80006 with 24000000, and at 0x678 I replaced 16080003 with 24000000.




____________________
messiaen
Catgirl
Level: 68


Posts: 194/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-06-08 12:42:39 AM Link | Quote
I tested it on a few emulators. Here are the results:

1964 - Doesn't complain at all.
Mupen 0.5.1 - Same (haven't tried MupenPlus yet).
Nemu64 0.8 - One error message ("Unknown bootcode. Chances that this game won't work are high").
Project 64 1.6 - Two error messages ("Unknown Cic Chip" and "Unhandled CicChip(-1) in first DMA".

Now it's time to gather more data, I'll see what I can gather from Gameshark codes.
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 192


Posts: 1618/12211
EXP: 99235505
For next: 638066

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 08-06-08 03:06:21 AM Link | Quote

Time/Date

08-05-08 09:06:21pm

Posts

1618

Days Here

399

Level

55
Metal_Man88
Local Moderator
Originally posted by Stevoisiak
Originally posted by Boing
Originally posted by Stevoisiak
To make some of these things clearer, can you post images for those of us who cannot do this ourselves?

I don't particularly see how images would help hex editing...

I mean to see the effects of the editing. And I thought you hacked SMW.


Please stop cluttering this thread with nonsense, or I will delete any more of them I see you posting here, Stevo.

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


Posts: 228/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-06-08 04:02:13 AM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
First discovery using the checksum less ROM:

With good old ROM corruption, I was able to find a table that seems to contain camera animation pointers.

The table is found at 0xEA4D4 and ends at 0xEA804. Each item in the table is 8 bytes long, the first 4 bytes are a RAM address (0x80xxxx) and the last 4 bytes are some parameters.

The item I first stumbled upon is at 0xEA554, it's the camera settings for when Mario opens (or close) the double doors of the castle lobby (it applies to both inside and outside the castle). By swapping around this item with others found in the table I was able to identify most of them, though some may just not have worked as expected while being used on the door transition.

The most interesting ones are labeled with **, these camera modes follow Mario in unusual ways, and these modes will usually remain active until you enter a painting. The rest are mostly static cameras or non-interactive camera animations. The most interesting camera animations are labeled with %%. The unlabeled items didn't do anything particular, except maybe a few that provided a normal Lakitu camera in the Castle lobby instead of the "stuck in the corner" camera normally found in that room.


80 29 0F 8C 00 46 00 00 -- temporary top down view

80 29 0E 00 00 4B 00 00 -- Pointing somewhere else for a couple of seconds
80 29 0F 1C 01 82 00 00 -- Shows two other places with iris effect
80 29 11 08 00 8B 00 00 -- Crashes while pointing somewhere else
80 29 13 54 02 4E 00 00 -- Crashes while looking up to the sky
80 29 14 2C 00 5F 00 00 -- Shows somewhere else with iris effect
80 29 15 14 01 A9 00 00 -- Pointing somewhere else for a couple of seconds
80 29 15 D4 00 EC 00 00 -- Shows somewhere else with iris effect
80 29 17 74 00 F5 00 00 -- Pointing somewhere else for a couple of seconds
80 29 18 70 7F FF 00 00 -- Stuck 3/4 top down camera
80 29 19 24 00 00 00 00 -- Normal Lakitu cam?
80 29 1C D0 01 68 00 00 -- Zoom out and in on Mario animation
80 29 21 64 7F FF 00 00 -- ** Weird cam follows Mario from very high
80 29 0C 1C 00 01 00 00 -- Normal Lakitu cam?
80 29 0C 30 7F FF 00 00 -- Stuck and static
80 29 91 00 00 01 00 00 -- =======Double door opening======= (Hacked to make this list)
80 29 91 A8 7F FF 00 00 -- Normal Lakitu cam?
80 29 7B 84 7F FF 00 00 -- %% End camera zoom out castle animation with Lakitu flying around. (When everyone says goodbye at the end).
80 29 7C 40 7F FF 00 00 -- Static cam from way down, Mario controls not relative to cam
80 29 91 00 00 01 00 00 -- Double door opening
80 29 91 54 00 1E 00 00 --
80 29 91 F0 00 01 00 00 --
80 29 92 CC 00 32 00 00 --
80 29 93 60 00 00 00 00 --
80 29 91 00 00 01 00 00 --
80 29 91 54 00 14 00 00 -- Points somewhere else shortly
80 29 91 F0 00 01 00 00 -- Castle view when Mario first enters castle ( Bowser message 1?)
80 29 92 CC 00 32 00 00 -- Short zoom on Mario
80 29 93 60 00 00 00 00 --
80 29 91 00 00 01 00 00 -- Double door opening
80 29 91 54 00 1E 00 00 -- Points somewhere else shortly
80 29 94 04 7F FF 00 00 --
80 29 91 00 00 01 00 00 --
80 29 91 54 00 14 00 00 -- Points somewhere else shortly
80 29 94 04 7F FF 00 00 --
80 29 8F E8 00 01 00 00 --
80 29 8D 9C 00 79 00 00 -- Short zoom out animation
80 29 8D 44 00 00 00 00 -- ** Cannon POV cam! Walk slowly (backward) or crouching to move around, and don't jump!
80 29 3C 2C 7F FF 00 00 -- Stuck and static
80 29 3C B0 00 0F 00 00 -- Weird quick glitchy camera movement for a second
80 29 3D 5C 00 00 00 00 --
80 29 42 F0 7F FF 00 00 -- Crash
80 29 43 D4 00 00 00 00 -- Quick Zoom out
80 29 84 B4 7F FF 00 00 -- Zoom on Mario, then stuck and static
80 29 8A F8 00 76 00 00 -- Temporary view from down under
80 29 8C CC 00 00 00 00 --
80 29 8A F8 00 B4 00 00 -- Temporary view from down under
80 29 8C CC 00 00 00 00 --
80 29 8B A0 00 01 00 00 -- Close view from opening door
80 29 8C 2C 00 3C 00 00 --
80 29 8C CC 00 00 00 00 --
80 29 7A 64 7F FF 00 00 -- %% Peach letter!
80 29 7A 38 00 23 00 00 --
80 29 78 4C 03 34 00 00 -- %% Lakitu tour of the castle opening!!
80 29 79 08 01 0E 00 00 -- %% Ciao! Welcome message
80 29 76 2C 7F FF 00 00 --
80 29 4A 14 00 AA 00 00
80 29 4A 94 00 00 00 00 -- from under?
80 29 3E 7C 00 34 00 00 -- from far away for a second
80 29 3E D8 00 00 00 00 --
80 29 3F 70 00 49 00 00 -- from farther away
80 29 3E D8 00 00 00 00
80 29 59 30 00 5A 00 00 -- travels to top view for a second
80 29 3E D8 00 00 00 00 --
80 29 04 40 7F FF 00 00 -- Stuck on side view mario
80 29 57 C8 00 96 00 00 -- Weird fly over animation
80 29 58 94 00 00 00 00
80 29 4C 5C 7F FF 00 00 -- stuck wobbly lakitu cam POV
80 29 54 18 00 64 00 00 --
80 29 3E D8 00 00 00 00 --
80 29 4D B4 7F FF 00 00 -- stuck wobbly lakitu cam POV 2
80 29 4E E8 7F FF 00 00 -- stuck wobbly lakitu cam POV 3
80 29 4F EC 7F FF 00 00 -- **Drunk Lakitu cam follows mario from 3/4 top, controls not relative to cam
80 29 4F EC 7F FF 00 00 -- **same
80 29 52 70 7F FF 00 00 -- **Drunk Lakitu cam loosely follows mario from 3/4 top, controls not relative to cam
80 29 39 44 00 B4 00 00 -- static for a few seconds
80 29 38 6C 7F FF 00 00 -- Bowser message 2
80 29 38 C8 00 00 00 00 --
80 29 24 B8 7F FF 00 00 -- ** Camera circles around Mario
80 29 30 18 7F FF 00 00 -- Stuck drunk Lakitu cam cam from far away
80 29 2A 80 7F FF 00 00 -- **Fish-Eye Mario cam!
80 29 33 8C 7F FF 00 00 -- **Weird backward Mario cam, he always faces the camera, every joystick move will make him go forward in an absolute direction that is relative to the level.
80 29 6F A8 7F FF 00 00 -- Stepping on the wing cap switch message
80 29 83 B4 00 32 00 00 --
80 29 84 58 00 00 00 00 --
80 29 73 B0 00 C8 00 00 -- Goes behind mario for a second, then switches back to normal cam
80 29 84 58 00 00 00 00 --
80 29 67 10 00 BE 00 00 -- From far under when exiting the Castle
80 29 67 C4 00 00 00 00 --
80 29 69 F8 00 78 00 00 -- From far under when exiting the Castle 2
80 29 67 C4 00 00 00 00 --
80 29 68 A0 00 A3 00 00 -- From far under when exiting the Castle 3
80 29 67 C4 00 00 00 00 --
80 29 6B 30 00 78 00 00 -- From far under when exiting the Castle 3
80 29 67 C4 00 00 00 00 --
80 29 5E 8C 7F FF 00 00 -- crash from double door
80 29 5F B0 00 0C 00 00 --
80 29 5F D8 00 00 00 00 --
80 29 61 60 7F FF 00 00 -- stuck and static cam
80 29 62 C8 00 0F 00 00 --
80 29 62 F0 00 00 00 00 --



____________________
messiaen
Catgirl
Level: 68


Posts: 195/1085
EXP: 2594038
For next: 134762

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-06-08 03:48:10 PM (last edited by messiaen at 08-09-08 01:38 PM) Link | Quote
Great list! Just to narrow our searches, the non-ASM data seems to start at 0x0E6260.

I think I found what the parameters after the RAM pointer does: it's the time before you regain camera control.

To confirm this, I swapped the "00 01" parameter in the double door opening with "03 34" from the Lakitu tour, then opened another emulator window and watched the intro at the same time I opened the double door. When the intro's over, you can control the camera again. With parameter "7F FF", there is probably some kind of input (either from joypad or some function to be called) needed to regain camera control.

By the way, at 0x8029000C lies some sort of StopCamera() function which is called by some behaviors (ie, collect star).

And here's what I got from the behavior list on 0xEAED8 (updated):


1300 24AC - Produces "white dust" when Mario starts/stops running.
1300 0A54 - Produces little yellow stars (when Mario hits a wall)
1300 0A98 - Produces little yellow starts (when Mario pounds the ground)
1300 2B08 - ??
1300 02B8 - ??
1300 2C14 - ??
1300 2CE0 - ??
1300 0428 - Produces snow?? (Not sure. Hardcoded model setting in ASM = 0xA4).
1300 2DC0 - ??
1300 11EC - ??
1300 2D50 - ??
1300 2D7C - ??
1300 1390 - Produces leaves (when Mario is on a tree?)
1300 0E58 - Produces little snowballs (when Mario is walking on snow?)
1300 0D98 - Produces shadows
1300 0E3C - Produces little red objects (when Mario hits something?)
1300 0E24 - Produces the dust when Mario pounds the ground
1300 0AD8 - Same effect as 0xA54, but producing little arrows?


I used Yoshiman's Spawn any object anywhere code to discover most of this (code on his website). Most of these are "spawn" behaviors, and they have a hardcoded model setting.
VL-Tone
Member
Super Mario 64 forum moderator
Level: 53


Posts: 230/621
EXP: 1135503
For next: 21616

Since: 07-27-07

From: Montreal, Canada

Since last post: 4.7 years
Last activity: 1.2 years

Posted on 08-08-08 11:05:16 PM Link | Quote
Time: Now - Date: Today - Weather: What can be seen outside. - Mood: How it feels. Answer to the universe: 42
When I found the Lakitu tour item, I actually only swapped the pointer so I could regain control of the camera after the animation. For the rest of the items (most of them I think) I swapped the pointer and the parameters.

The behavior list you experimented with all seem to be "particle effects". I guess that there's some particle effect code somewhere that deals with all of them.

____________________
Kenshi
Member
Level: 21


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

Since: 09-15-07

From: NY

Since last post: 6.9 years
Last activity: 6.2 years

Posted on 08-09-08 02:00:18 AM Link | Quote
So with this info, its possible to force the camera to show mario like a side scroller in vl-tone's smb 1 remake hack?

____________________
Pages: 1 2 3 Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Stuff inside the checksum protected area (Title Screen, etc.) New poll - New thread - New reply


Rusted Logic

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

33 database queries, 13 query cache hits.
Query execution time:  0.097007 seconds
Script execution time:  0.078660 seconds
Total render time:  0.175667 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 232 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 96 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 163 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 99 - Warning: unescaped & or unknown entity "&postid"
line 179 column 73 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 1511 - Warning: missing </font> before <blockquote>
line 194 column 2968 - Warning: inserting implicit <font>
line 194 column 2968 - Warning: missing </font> before <hr>
line 195 column 1 - Warning: inserting implicit <font>
line 195 column 1 - Warning: missing </font> before <blockquote>
line 200 column 3467 - Warning: inserting implicit <font>
line 200 column 3467 - Warning: missing </font> before <hr>
line 236 column 1 - Warning: inserting implicit <font>
line 236 column 1 - Warning: missing </font> before <blockquote>
line 247 column 5863 - Warning: inserting implicit <font>
line 247 column 5863 - Warning: missing </font> before <hr>
line 266 column 1 - Warning: inserting implicit <font>
line 179 column 137 - Warning: missing </div>
line 282 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 284 column 9 - Warning: missing <tr>
line 302 column 13 - Warning: missing <tr>
line 303 column 99 - Warning: unescaped & or unknown entity "&postid"
line 327 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 329 column 9 - Warning: missing <tr>
line 347 column 13 - Warning: missing <tr>
line 348 column 99 - Warning: unescaped & or unknown entity "&postid"
line 350 column 73 - Warning: <style> isn't allowed in <td> elements
line 350 column 9 - Info: <td> previously mentioned
line 350 column 1511 - Warning: missing </font> before <blockquote>
line 350 column 1590 - Warning: inserting implicit <font>
line 350 column 1590 - Warning: missing </font> before <hr>
line 350 column 1655 - Warning: inserting implicit <font>
line 350 column 1655 - Warning: missing </font> before <hr>
line 353 column 1 - Warning: inserting implicit <font>
line 350 column 137 - Warning: missing </div>
line 358 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 360 column 9 - Warning: missing <tr>
line 378 column 13 - Warning: missing <tr>
line 379 column 99 - Warning: unescaped & or unknown entity "&postid"
line 400 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 402 column 9 - Warning: missing <tr>
line 420 column 13 - Warning: missing <tr>
line 421 column 99 - Warning: unescaped & or unknown entity "&postid"
line 428 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 430 column 9 - Warning: missing <tr>
line 448 column 13 - Warning: missing <tr>
line 449 column 99 - Warning: unescaped & or unknown entity "&postid"
line 454 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 456 column 9 - Warning: missing <tr>
line 474 column 13 - Warning: missing <tr>
line 475 column 99 - Warning: unescaped & or unknown entity "&postid"
line 492 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 494 column 9 - Warning: missing <tr>
line 512 column 13 - Warning: missing <tr>
line 513 column 99 - Warning: unescaped & or unknown entity "&postid"
line 515 column 73 - Warning: <style> isn't allowed in <td> elements
line 515 column 9 - Info: <td> previously mentioned
line 515 column 1511 - Warning: missing </font> before <blockquote>
line 515 column 1590 - Warning: inserting implicit <font>
line 515 column 1590 - Warning: missing </font> before <hr>
line 515 column 1655 - Warning: inserting implicit <font>
line 515 column 1655 - Warning: missing </font> before <hr>
line 528 column 1 - Warning: inserting implicit <font>
line 515 column 137 - Warning: missing </div>
line 534 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 536 column 9 - Warning: missing <tr>
line 554 column 13 - Warning: missing <tr>
line 555 column 99 - Warning: unescaped & or unknown entity "&postid"
line 579 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 581 column 9 - Warning: missing <tr>
line 599 column 13 - Warning: missing <tr>
line 600 column 99 - Warning: unescaped & or unknown entity "&postid"
line 605 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 607 column 9 - Warning: missing <tr>
line 625 column 13 - Warning: missing <tr>
line 626 column 99 - Warning: unescaped & or unknown entity "&postid"
line 628 column 73 - Warning: <link> isn't allowed in <td> elements
line 628 column 9 - Info: <td> previously mentioned
line 628 column 297 - Warning: missing </font> before <p>
line 629 column 334 - Warning: inserting implicit <font>
line 630 column 376 - Warning: discarding unexpected <param>
line 633 column 576 - Warning: discarding unexpected </font>
line 633 column 583 - Warning: inserting implicit <p>
line 635 column 922 - Warning: inserting implicit <p>
line 638 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 640 column 9 - Warning: missing <tr>
line 658 column 13 - Warning: missing <tr>
line 659 column 99 - Warning: unescaped & or unknown entity "&postid"
line 666 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 668 column 9 - Warning: missing <tr>
line 686 column 13 - Warning: missing <tr>
line 687 column 99 - Warning: unescaped & or unknown entity "&postid"
line 698 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 700 column 9 - Warning: missing <tr>
line 718 column 13 - Warning: missing <tr>
line 719 column 99 - Warning: unescaped & or unknown entity "&postid"
line 721 column 73 - Warning: <style> isn't allowed in <td> elements
line 721 column 9 - Info: <td> previously mentioned
line 721 column 1511 - Warning: missing </font> before <blockquote>
line 721 column 1590 - Warning: inserting implicit <font>
line 721 column 1590 - Warning: missing </font> before <hr>
line 721 column 1655 - Warning: inserting implicit <font>
line 721 column 1655 - Warning: missing </font> before <hr>
line 728 column 1 - Warning: inserting implicit <font>
line 721 column 137 - Warning: missing </div>
line 742 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 744 column 9 - Warning: missing <tr>
line 762 column 13 - Warning: missing <tr>
line 763 column 99 - Warning: unescaped & or unknown entity "&postid"
line 775 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 777 column 9 - Warning: missing <tr>
line 795 column 13 - Warning: missing <tr>
line 796 column 99 - Warning: unescaped & or unknown entity "&postid"
line 798 column 73 - Warning: <style> isn't allowed in <td> elements
line 798 column 9 - Info: <td> previously mentioned
line 798 column 960 - Error: <z> is not recognized!
line 798 column 960 - Warning: discarding unexpected <z>
line 798 column 982 - Warning: discarding unexpected </z>
line 798 column 1008 - Error: <z> is not recognized!
line 798 column 1008 - Warning: discarding unexpected <z>
line 798 column 1015 - Warning: discarding unexpected </z>
line 798 column 1045 - Error: <z> is not recognized!
line 798 column 1045 - Warning: discarding unexpected <z>
line 798 column 1051 - Warning: discarding unexpected </z>
line 798 column 1077 - Error: <z> is not recognized!
line 798 column 1077 - Warning: discarding unexpected <z>
line 798 column 1082 - Warning: discarding unexpected </z>
line 805 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 807 column 9 - Warning: missing <tr>
line 825 column 13 - Warning: missing <tr>
line 826 column 99 - Warning: unescaped & or unknown entity "&postid"
line 828 column 73 - Warning: <style> isn't allowed in <td> elements
line 828 column 9 - Info: <td> previously mentioned
line 828 column 1511 - Warning: missing </font> before <blockquote>
line 838 column 2849 - Warning: inserting implicit <font>
line 838 column 2849 - Warning: missing </font> before <hr>
line 939 column 8304 - Warning: inserting implicit <font>
line 828 column 137 - Warning: missing </div>
line 942 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 944 column 9 - Warning: missing <tr>
line 962 column 13 - Warning: missing <tr>
line 963 column 99 - Warning: unescaped & or unknown entity "&postid"
line 998 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 1000 column 9 - Warning: missing <tr>
line 1018 column 13 - Warning: missing <tr>
line 1019 column 99 - Warning: unescaped & or unknown entity "&postid"
line 1021 column 73 - Warning: <style> isn't allowed in <td> elements
line 1021 column 9 - Info: <td> previously mentioned
line 1021 column 137 - Warning: missing </div>
line 1026 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 1028 column 9 - Warning: missing <tr>
line 1046 column 13 - Warning: missing <tr>
line 1047 column 99 - Warning: unescaped & or unknown entity "&postid"
line 1049 column 267 - Warning: unescaped & or unknown entity "&GamerTag"
line 1052 column 17 - Warning: missing <tr>
line 1052 column 17 - Warning: discarding unexpected <table>
line 1055 column 35 - Warning: missing <tr>
line 1055 column 96 - Warning: unescaped & or unknown entity "&page"
line 1055 column 128 - Warning: unescaped & or unknown entity "&page"
line 1055 column 50 - Warning: missing </font> before </td>
line 1055 column 163 - Warning: missing </font> before </table>
line 1057 column 35 - Warning: missing <tr>
line 1057 column 50 - Warning: missing </font> before </td>
line 1058 column 37 - Warning: unescaped & or unknown entity "&id"
line 1057 column 232 - Warning: missing </font> before </table>
line 1059 column 17 - Warning: discarding unexpected </textarea>
line 1059 column 28 - Warning: discarding unexpected </form>
line 1059 column 35 - Warning: discarding unexpected </embed>
line 1059 column 43 - Warning: discarding unexpected </noembed>
line 1059 column 53 - Warning: discarding unexpected </noscript>
line 1059 column 64 - Warning: discarding unexpected </noembed>
line 1059 column 74 - Warning: discarding unexpected </embed>
line 1059 column 82 - Warning: discarding unexpected </table>
line 1059 column 90 - Warning: discarding unexpected </table>
line 1061 column 9 - Warning: missing </font> before <table>
line 1073 column 25 - Warning: discarding unexpected </font>
line 1082 column 58 - Warning: discarding unexpected </font>
line 1060 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 179 column 693 - Warning: <img> lacks "alt" attribute
line 279 column 7705 - Warning: <img> lacks "alt" attribute
line 279 column 7864 - Warning: <img> lacks "alt" attribute
line 287 column 22 - Warning: <img> lacks "alt" attribute
line 287 column 63 - Warning: <img> lacks "alt" attribute
line 287 column 111 - Warning: <img> lacks "alt" attribute
line 287 column 161 - Warning: <img> lacks "alt" attribute
line 298 column 15 - Warning: <img> lacks "alt" attribute
line 332 column 22 - Warning: <img> lacks "alt" attribute
line 332 column 63 - Warning: <img> lacks "alt" attribute
line 332 column 112 - Warning: <img> lacks "alt" attribute
line 332 column 162 - Warning: <img> lacks "alt" attribute
line 343 column 15 - Warning: <img> lacks "alt" attribute
line 350 column 693 - Warning: <img> lacks "alt" attribute
line 355 column 2427 - Warning: <img> lacks "alt" attribute
line 355 column 2586 - Warning: <img> lacks "alt" attribute
line 363 column 22 - Warning: <img> lacks "alt" attribute
line 363 column 63 - Warning: <img> lacks "alt" attribute
line 363 column 111 - Warning: <img> lacks "alt" attribute
line 363 column 161 - Warning: <img> lacks "alt" attribute
line 374 column 15 - Warning: <img> lacks "alt" attribute
line 405 column 22 - Warning: <img> lacks "alt" attribute
line 405 column 63 - Warning: <img> lacks "alt" attribute
line 405 column 112 - Warning: <img> lacks "alt" attribute
line 405 column 162 - Warning: <img> lacks "alt" attribute
line 416 column 15 - Warning: <img> lacks "alt" attribute
line 433 column 22 - Warning: <img> lacks "alt" attribute
line 433 column 63 - Warning: <img> lacks "alt" attribute
line 433 column 112 - Warning: <img> lacks "alt" attribute
line 433 column 162 - Warning: <img> lacks "alt" attribute
line 434 column 11 - Warning: <img> lacks "alt" attribute
line 444 column 15 - Warning: <img> lacks "alt" attribute
line 459 column 22 - Warning: <img> lacks "alt" attribute
line 459 column 63 - Warning: <img> lacks "alt" attribute
line 459 column 111 - Warning: <img> lacks "alt" attribute
line 459 column 161 - Warning: <img> lacks "alt" attribute
line 470 column 15 - Warning: <img> lacks "alt" attribute
line 497 column 22 - Warning: <img> lacks "alt" attribute
line 497 column 63 - Warning: <img> lacks "alt" attribute
line 497 column 112 - Warning: <img> lacks "alt" attribute
line 497 column 162 - Warning: <img> lacks "alt" attribute
line 508 column 15 - Warning: <img> lacks "alt" attribute
line 515 column 693 - Warning: <img> lacks "alt" attribute
line 529 column 2567 - Warning: <img> proprietary attribute value "absmiddle"
line 529 column 2567 - Warning: <img> lacks "alt" attribute
line 531 column 3118 - Warning: <img> lacks "alt" attribute
line 531 column 3277 - Warning: <img> lacks "alt" attribute
line 539 column 22 - Warning: <img> lacks "alt" attribute
line 539 column 63 - Warning: <img> lacks "alt" attribute
line 539 column 111 - Warning: <img> lacks "alt" attribute
line 539 column 161 - Warning: <img> lacks "alt" attribute
line 550 column 15 - Warning: <img> lacks "alt" attribute
line 584 column 22 - Warning: <img> lacks "alt" attribute
line 584 column 63 - Warning: <img> lacks "alt" attribute
line 584 column 112 - Warning: <img> lacks "alt" attribute
line 584 column 162 - Warning: <img> lacks "alt" attribute
line 595 column 15 - Warning: <img> lacks "alt" attribute
line 609 column 15 - Warning: <img> proprietary attribute value "absmiddle"
line 609 column 15 - Warning: <img> lacks "alt" attribute
line 609 column 58 - Warning: <img> proprietary attribute value "absmiddle"
line 609 column 58 - Warning: <img> lacks "alt" attribute
line 609 column 101 - Warning: <img> proprietary attribute value "absmiddle"
line 609 column 101 - Warning: <img> lacks "alt" attribute
line 609 column 144 - Warning: <img> proprietary attribute value "absmiddle"
line 609 column 144 - Warning: <img> lacks "alt" attribute
line 609 column 187 - Warning: <img> proprietary attribute value "absmiddle"
line 609 column 187 - Warning: <img> lacks "alt" attribute
line 610 column 22 - Warning: <img> lacks "alt" attribute
line 610 column 63 - Warning: <img> lacks "alt" attribute
line 610 column 112 - Warning: <img> lacks "alt" attribute
line 610 column 161 - Warning: <img> lacks "alt" attribute
line 611 column 11 - Warning: <img> lacks "alt" attribute
line 621 column 15 - Warning: <img> lacks "alt" attribute
line 628 column 163 - Warning: <table> attribute "height" has invalid value "350px"
line 635 column 960 - Warning: <img> lacks "alt" attribute
line 635 column 1058 - Warning: <img> lacks "alt" attribute
line 643 column 22 - Warning: <img> lacks "alt" attribute
line 643 column 63 - Warning: <img> lacks "alt" attribute
line 643 column 112 - Warning: <img> lacks "alt" attribute
line 643 column 162 - Warning: <img> lacks "alt" attribute
line 654 column 15 - Warning: <img> lacks "alt" attribute
line 671 column 22 - Warning: <img> lacks "alt" attribute
line 671 column 63 - Warning: <img> lacks "alt" attribute
line 671 column 111 - Warning: <img> lacks "alt" attribute
line 671 column 161 - Warning: <img> lacks "alt" attribute
line 682 column 15 - Warning: <img> lacks "alt" attribute
line 703 column 22 - Warning: <img> lacks "alt" attribute
line 703 column 63 - Warning: <img> lacks "alt" attribute
line 703 column 112 - Warning: <img> lacks "alt" attribute
line 703 column 162 - Warning: <img> lacks "alt" attribute
line 714 column 15 - Warning: <img> lacks "alt" attribute
line 721 column 693 - Warning: <img> lacks "alt" attribute
line 731 column 2370 - Warning: <img> proprietary attribute value "absmiddle"
line 731 column 2370 - Warning: <img> lacks "alt" attribute
line 739 column 2650 - Warning: <img> lacks "alt" attribute
line 739 column 2809 - Warning: <img> lacks "alt" attribute
line 747 column 22 - Warning: <img> lacks "alt" attribute
line 747 column 63 - Warning: <img> lacks "alt" attribute
line 747 column 111 - Warning: <img> lacks "alt" attribute
line 747 column 161 - Warning: <img> lacks "alt" attribute
line 758 column 15 - Warning: <img> lacks "alt" attribute
line 779 column 17 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 17 - Warning: <img> lacks "alt" attribute
line 779 column 60 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 60 - Warning: <img> lacks "alt" attribute
line 779 column 103 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 103 - Warning: <img> lacks "alt" attribute
line 779 column 146 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 146 - Warning: <img> lacks "alt" attribute
line 779 column 189 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 189 - Warning: <img> lacks "alt" attribute
line 779 column 232 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 232 - Warning: <img> lacks "alt" attribute
line 779 column 275 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 275 - Warning: <img> lacks "alt" attribute
line 779 column 318 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 318 - Warning: <img> lacks "alt" attribute
line 779 column 361 - Warning: <img> proprietary attribute value "absmiddle"
line 779 column 361 - Warning: <img> lacks "alt" attribute
line 780 column 23 - Warning: <img> lacks "alt" attribute
line 780 column 64 - Warning: <img> lacks "alt" attribute
line 780 column 113 - Warning: <img> lacks "alt" attribute
line 780 column 163 - Warning: <img> lacks "alt" attribute
line 781 column 11 - Warning: <img> lacks "alt" attribute
line 791 column 15 - Warning: <img> lacks "alt" attribute
line 798 column 1515 - Warning: <img> lacks "alt" attribute
line 798 column 1725 - Warning: <img> lacks "alt" attribute
line 798 column 1813 - Warning: <img> lacks "alt" attribute
line 798 column 2057 - Warning: <img> lacks "alt" attribute
line 802 column 2972 - Warning: <img> lacks "alt" attribute
line 802 column 3161 - Warning: <img> lacks "alt" attribute
line 810 column 22 - Warning: <img> lacks "alt" attribute
line 810 column 63 - Warning: <img> lacks "alt" attribute
line 810 column 112 - Warning: <img> lacks "alt" attribute
line 810 column 162 - Warning: <img> lacks "alt" attribute
line 821 column 15 - Warning: <img> lacks "alt" attribute
line 828 column 693 - Warning: <img> lacks "alt" attribute
line 939 column 8386 - Warning: <img> lacks "alt" attribute
line 939 column 8545 - Warning: <img> lacks "alt" attribute
line 947 column 22 - Warning: <img> lacks "alt" attribute
line 947 column 63 - Warning: <img> lacks "alt" attribute
line 947 column 111 - Warning: <img> lacks "alt" attribute
line 947 column 161 - Warning: <img> lacks "alt" attribute
line 958 column 15 - Warning: <img> lacks "alt" attribute
line 1003 column 22 - Warning: <img> lacks "alt" attribute
line 1003 column 63 - Warning: <img> lacks "alt" attribute
line 1003 column 112 - Warning: <img> lacks "alt" attribute
line 1003 column 162 - Warning: <img> lacks "alt" attribute
line 1014 column 15 - Warning: <img> lacks "alt" attribute
line 1021 column 693 - Warning: <img> lacks "alt" attribute
line 1023 column 2050 - Warning: <img> lacks "alt" attribute
line 1023 column 2209 - Warning: <img> lacks "alt" attribute
line 1031 column 22 - Warning: <img> lacks "alt" attribute
line 1031 column 63 - Warning: <img> lacks "alt" attribute
line 1031 column 112 - Warning: <img> lacks "alt" attribute
line 1031 column 162 - Warning: <img> lacks "alt" attribute
line 1032 column 11 - Warning: <img> lacks "alt" attribute
line 1042 column 15 - Warning: <img> lacks "alt" attribute
line 1049 column 291 - Warning: <img> lacks "alt" attribute
line 1058 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 1058 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 1058 column 245 - Warning: <img> proprietary attribute value "absmiddle"
line 1067 column 25 - Warning: <img> lacks "alt" attribute
line 1072 column 267 - Warning: <img> lacks "alt" attribute
line 194 column 2968 - Warning: trimming empty <font>
line 200 column 3467 - Warning: trimming empty <font>
line 247 column 5863 - Warning: trimming empty <font>
line 350 column 1511 - Warning: trimming empty <font>
line 515 column 1511 - Warning: trimming empty <font>
line 633 column 583 - Warning: trimming empty <p>
line 634 column 623 - Warning: trimming empty <p>
line 635 column 922 - Warning: trimming empty <p>
line 721 column 1511 - Warning: trimming empty <font>
line 838 column 2849 - Warning: trimming empty <font>
line 1052 column 17 - Warning: trimming empty <tr>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 179 column 157 - Warning: <table> proprietary attribute "height"
line 179 column 222 - Warning: <td> proprietary attribute "background"
line 179 column 318 - Warning: <td> proprietary attribute "background"
line 179 column 408 - Warning: <table> proprietary attribute "height"
line 179 column 488 - Warning: <td> proprietary attribute "background"
line 179 column 1443 - Warning: <td> proprietary attribute "background"
line 303 column 27 - Warning: <nobr> is not approved by W3C
line 348 column 27 - Warning: <nobr> is not approved by W3C
line 350 column 157 - Warning: <table> proprietary attribute "height"
line 350 column 222 - Warning: <td> proprietary attribute "background"
line 350 column 318 - Warning: <td> proprietary attribute "background"
line 350 column 408 - Warning: <table> proprietary attribute "height"
line 350 column 488 - Warning: <td> proprietary attribute "background"
line 350 column 1443 - Warning: <td> proprietary attribute "background"
line 379 column 27 - Warning: <nobr> is not approved by W3C
line 421 column 27 - Warning: <nobr> is not approved by W3C
line 449 column 27 - Warning: <nobr> is not approved by W3C
line 475 column 27 - Warning: <nobr> is not approved by W3C
line 513 column 27 - Warning: <nobr> is not approved by W3C
line 515 column 157 - Warning: <table> proprietary attribute "height"
line 515 column 222 - Warning: <td> proprietary attribute "background"
line 515 column 318 - Warning: <td> proprietary attribute "background"
line 515 column 408 - Warning: <table> proprietary attribute "height"
line 515 column 488 - Warning: <td> proprietary attribute "background"
line 515 column 1443 - Warning: <td> proprietary attribute "background"
line 555 column 27 - Warning: <nobr> is not approved by W3C
line 600 column 27 - Warning: <nobr> is not approved by W3C
line 626 column 27 - Warning: <nobr> is not approved by W3C
line 628 column 163 - Warning: <table> proprietary attribute "height"
line 659 column 27 - Warning: <nobr> is not approved by W3C
line 687 column 27 - Warning: <nobr> is not approved by W3C
line 719 column 27 - Warning: <nobr> is not approved by W3C
line 721 column 157 - Warning: <table> proprietary attribute "height"
line 721 column 222 - Warning: <td> proprietary attribute "background"
line 721 column 318 - Warning: <td> proprietary attribute "background"
line 721 column 408 - Warning: <table> proprietary attribute "height"
line 721 column 488 - Warning: <td> proprietary attribute "background"
line 721 column 1443 - Warning: <td> proprietary attribute "background"
line 763 column 27 - Warning: <nobr> is not approved by W3C
line 796 column 27 - Warning: <nobr> is not approved by W3C
line 798 column 1594 - Warning: <td> proprietary attribute "background"
line 798 column 1894 - Warning: <td> proprietary attribute "background"
line 798 column 2147 - Warning: <table> proprietary attribute "height"
line 802 column 3053 - Warning: <td> proprietary attribute "background"
line 826 column 27 - Warning: <nobr> is not approved by W3C
line 828 column 157 - Warning: <table> proprietary attribute "height"
line 828 column 222 - Warning: <td> proprietary attribute "background"
line 828 column 318 - Warning: <td> proprietary attribute "background"
line 828 column 408 - Warning: <table> proprietary attribute "height"
line 828 column 488 - Warning: <td> proprietary attribute "background"
line 828 column 1443 - Warning: <td> proprietary attribute "background"
line 963 column 27 - Warning: <nobr> is not approved by W3C
line 1019 column 27 - Warning: <nobr> is not approved by W3C
line 1021 column 157 - Warning: <table> proprietary attribute "height"
line 1021 column 222 - Warning: <td> proprietary attribute "background"
line 1021 column 318 - Warning: <td> proprietary attribute "background"
line 1021 column 408 - Warning: <table> proprietary attribute "height"
line 1021 column 488 - Warning: <td> proprietary attribute "background"
line 1021 column 1443 - Warning: <td> proprietary attribute "background"
line 1047 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 435 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