Register - Login
Views: 99348736
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-21-22 05:25:44 PM
Jul - Posts by shyguyhex
Pages: 1 2 3
shyguyhex

Level: 16


Posts: 21/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-20-14 08:14:44 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking (last edited by shyguyhex at 07-20-14 08:15:03 PM) Link
Originally posted by Luca91
Thank you shyguyhex, you have just resolved many of my questions regarding code executions

I'd also like to ask, if I manually patch those codes with an hex editor on the rom file, do you think that this will works ?

may I also ask if the hook code (812CB26C 0C10 etc) is called every frame ? I think yes, but I'd like to be sure


You could probably patch the gameshark code to a rom patched with a gameshark code interpreter (I haven't used a gs interpreter patch before though so I could be wrong)
Related thread: http://jul.rustedlogic.net/thread.php?id=16157

And the hook code is called every frame; I checked the code and the function starting at 802CB264 is called from Mario's behavior script, so it's constantly running

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 22/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-20-14 08:38:54 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link

812CB26C 0C10, I was thinking that this code just write 0C at 812CB26C and 10 at 812CB26D.


That wouldn't work :p, GS codes write to RAM addresses, not ROM addresses. RAM and ROM are two very different things so you would need a GS code interpreter. It would basically read the GS codes from a designated bank in the ROM and then write the values into RAM.

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 23/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-21-14 07:35:39 PM, in Help with Website Creation Link

I would like to code the website from scratch and am fairly confident in my abilities to learn the coding languages I need to make it.


Honestly, as a person who's done this, I wouldn't really recommend it to someone that hasn't web dev'd before. You would need to be really good at html, css, javascript, sql (or know how to flat-file), and language for preprocessing (PHP is what most people use), also you would probably need to know a bit about HTTP.


I envisioned a forum site with a chat client and subforums dealing with different types of mental disorders, along with a general forum sub site with various topics.


If you decide not to do it from scratch:
Free solution: get MyBB with MyShoutbox
Paid solution: get vBulletin with Inferno Shoutbox

Paid domains: http://www.domain.com/
Free domains and quick hosting/sql setup: http://www.com.nu/ (they kinda suck though, you can't get a top level domain and you have to do hacky things to remove the ads they put on your site)

More semi-decent free hosting: http://www.000webhost.com/

If I were to do good paid hosting, I'd probably go with http://www.hostgator.com/


1. Would you have any suggestions or cautions when looking for a server?
2. I am planning on learning HTML and CSS. Are there other types of code that I would need to gain familiarity with, or specific things to address with these two languages?
3. What is the process and what are the options for soliciting ads on a website?
4. What is the process like of ensuring site compatibility with mobile devices?



1. Don't use some cheap server that looks like it's hosted by an amateur, it's pretty much guaranteed to get hacked

2. If you are really doing it from scratch you should also learn Javascript, PHP, and SQL. Also good security can't be stressed enough. Learn to code defensively to block cross-site scripting, cross site request forgery, sql injection, and file inclusion/injection

3. I think if you use google adsense, it walks you through the whole process, and if you plan on installing a popular board like vBulletin or MyBB, people make plugins that make the process even easier

4. Popular forum software usually comes with mobile compatibility if you select that option. If you were to do it from scratch though, the key here is to make your website check the http parameter "User-agent" for the word "Mobile" and then switch the page's layout accordingly

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 24/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-26-14 06:44:22 AM, in Bowser64 - Advanced SM64 Memory Editor (last edited by shyguyhex at 07-28-14 02:56:04 AM) Link



(Click to view full size)
-
Download Bowser64 Alpha 7.26
Changelog
Todo/ideas list
Script language plans
-

Bowser64 is a Super Mario 64 RAM editor designed to work with any emulator. Right now it features a memory editor tailored for object editing, and two all purpose memory editor windows used for data analysis/comparison and pointer tracking. You'll notice from the screenshot above that all of the data is very colorful for easier readability. The red background colors indicate changing data, the green text represents differences between the two memory windows when comparison mode is turned on, the blue text represents pointers, and the various back colors in the object editor are for data-typing and better readability (which is unfinished).

I've also incorporated the "sg64" console that I posted in the ram tools thread which has the following commands:

segments  - show ram segments table

collision - show collision info
inj - inject hex data from cmd line
injf - inject hex file from /injf/
mwarp - make an injf file that moves Mario
clear - clear the console

(I ran an example of the 'injf' command in the screenshot above, where I inject a simple asm hack from the file seen in notepad++)

---------
To get started
Make sure SM64 is running in your emulator and then: File -> Open RAM...

^ You'll then see this window; click your emulator's process and then click "Open process". Bowser64 will then look for the emulator's virtual memory base so it can start hacking. A message box will pop up telling you the address of the virtual memory base it will use, click okay. You can then open the tools from the RAM menu.
--------
Many features still to come; be sure to check out the todo/ideas list for future plans !
I'm open to adding any ideas from the community so be sure to post them

This project is early alpha so you can expect some bugs, but if you do happen to find something that seems like a serious problem, you can let me know here.

(note: right now it takes a little while for it to find the vm base for pj64 and 1964 because that part's not optimized yet, it will find nemu's right away however)

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 25/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-28-14 02:39:46 AM, in Bowser64 - Advanced SM64 Memory Editor Link
Sorry for being a bit vague guys. I was in sort of a tired stupor when I made this thread. I've since added a description.

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 26/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 07-30-14 09:30:07 PM, in Bowser64 - Advanced SM64 Memory Editor (last edited by shyguyhex at 07-30-14 09:51:25 PM) Link




I just wanted to say that I got the base of the b64 script interpreter finished!

If anyone wants to test it out: http://bin.smwcentral.net/u/25323/script.exe

The interpreter can work as a standalone provided you feed your emulator's process id and virtual memory base into the command line arguments.


script.exe (mode) (script path) (pid) (vm base)



Example:

script.exe 0 "path/to/script.b64" 3344 10020000


(Mode 0 is ram and 1 is rom, but I haven't added rom patching functionality yet. 10020000 is the static vm base for nemu btw)

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 27/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 08-09-14 04:06:49 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Hello, got an asm related question.



I'm pretty sure this is the MIO0 decompression function. I noticed that it doesn't use a stack frame, it uses the registers abnormally, and it's surrounded by a few nops. Which makes me wonder, did Nintendo write this in straight asm for efficiency reasons?

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 28/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-06-14 02:38:51 AM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Questions regarding EEPROM

Tarek (Cajetan) and I are trying to mess around with EEPROM stuff. With Nemu's debugger, I had no trouble extending the file offset limit and disabling checksum protection.

rom+0x3436C = 0x10000003   // bypass eeprom checksum comparisons

rom+0xE3B04 = 0x29E10100 // extend the *u8 eeprom offset limit to 16kbits

With Nemu64, these changes work like a charm; I can make the game save whatever I want to EEPROM+0x7F0 for example.

But I believe Nemu64 makes all EEPROM files 0x800 bytes by default . In PJ64 when you try to start the rom with 16kbit eeprom selected, you're met with a black screen of death.

So we were wondering...
  • Is there an important eeprom size setting/protection somewhere in rom?
  • Would it be possible to replace/extend an eeprom chip on a real cartridge?
  • Why is project64 kill when using the 16kbit setting?


____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 29/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-08-14 03:21:43 AM, in RAM tools thread Link
Originally posted by CaptainSwag101
Does this program work with Project64 2.1? If so, can you call it silently from another program, for example, a Windows Forms program? I'm trying to make a modern version of Mario 64 Movie Maker that works with new versions of Windows and Project64, and this could be a good way to call the "camera freeze" and "camera unfreeze" events, etc.


I made a heavily improved version of the injector here http://jul.rustedlogic.net/thread.php?pid=435712#435712

It works with pj64; your frontend would just need to provide a script path, process id, and virtual console memory base address. Unfortunately, virtual console memory is allocated dynamically in pj64. If determining vcm base address of pj64 with your frontend isn't an option (I haven't figured out how to do it myself btw), it might be better to use this app with nemu (10020000) or 1964 (20000000), because both statically allocate their vcm.

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 30/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-21-14 03:21:02 PM, in Linking raw file with gcc? (last edited by shyguyhex at 09-21-14 03:51:51 PM) Link
So I have two tables of structs that I would like to add into my project at link time.

I made the object files using objcopy:

objcopy -I binary -O elf32-i386 -B i386 asm_functions.bin objects\asm_functions.bin.o

objcopy -I binary -O elf32-i386 -B i386 asm_operations.bin objects\asm_operations.bin.o


Then I linked them with gcc:

gcc -w res\b64.res objects\asm_functions.bin.o objects\asm_operations.bin.o b64si.c -o b64si.exe



These are the symbols I'm suppose to use, but gcc tells me that they are undefined when I try to use them:

_binary_asm_operations_bin_start

_binary_asm_functions_bin_start


extern const int _binary_asm_operations_bin_start[];

extern const int _binary_asm_functions_bin_start[];


I know that these are the right symbols because I checked the object files with a hex editor; I checked the final exe as well, and my table and the symbols were in there. So I'm confused as to why the symbols aren't defined. Any help would be appreciated.

(win7 32bit)

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 31/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-21-14 07:17:58 PM, in Linking raw file with gcc? Link
Managed to find a solution that works.


extern int testdata[] asm("_binary_asm_operations_bin_start")



____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 32/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-22-14 01:13:57 AM, in Linking raw file with gcc? (last edited by shyguyhex at 09-22-14 01:24:42 AM) Link
Thanks guys, that works. Now my code is less funky looking .

I find it rather confusing that all the examples I can find about binary linking have people using the leading underscores in their code though


http://balau82.wordpress.com/2012/02/19/linking-a-binary-blob-with-gcc/
http://bytbox.net/blog/2012/11/linking-raw-data.html

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 33/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 09-27-14 04:24:41 AM, in What's your OS(es)? Link
Been using (and loving) Win7 for years and years. If I get bored and wanna play or host Minecraft, I do it on linux mint because it seems to perform a bit better for whatever reason.

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 34/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-02-14 01:50:20 AM, in Alternate ROM Extender (last edited by shyguyhex at 10-05-14 09:46:43 PM) Link
(Updated Oct 5 2014)
I've created a new rom extender that should work fine with all of the N64 emulators, as well as real N64 consoles.

What it does:

+ Pads with the rom with 0x01's to 24MB.
+ Decompresses all MIO0 files (with proper alignment) to 0x800000, with 32KB gaps after each file.
+ Remaps all of the pointers to these files in the level scripts (and one asm pointer)
+ Clears old MIO0 data with 0x01's
+ Changes all 0x18 commands to 0x17 commands in the level scripts
+ Modifies the 0x1A command's asm routine to load raw files instead of MIO0 data
+ Replaces the segment 0x02 MIO0 loader with a raw file loader
+ Removes the main CRC check and replaces the CRC string with 0xFF's (optional)
+ Adds 'EXT2' to the image name
+ Resurrects these textures (to segment 0x02):

and puts pointers to them in the correct places in the character table.

What's different in this extender:

+ This extender decompresses all MIO0 files to 16 byte aligned addresses, meaning increased emulator support and support for real N64 consoles
+ With the edited 0x1A command and replaced segment 0x02 loader, none of the decompressed files need 'fake' MIO0 headers

+ This extender brings back 12 textures from the japanese rom (note that this shifts the other ram segments by 0x1800 bytes)


Download: SM64 AltExtender Beta 10-5.exe
Readme: SM64 Altextender Readme Info.txt
To use it, either drag your rom onto the exe or drag your rom into the exe's window and press enter.

Like VL-Tone's extender, this uses BGNG's mio0dec.exe, but I've linked it into AltExtender's exe to make it more portable. mio0dec.exe and and a directory "mio0_temp" are created temporarily while the rom is being decompressed.

____________________

shyguyhex

Level: 16


Posts: 35/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-03-14 10:44:28 PM, in Alternate ROM Extender Link
I figured messing with the bootcode might cause problems. I'll make the CRC nop optional in the next update.

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 36/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-05-14 09:47:13 PM, in Alternate ROM Extender Link
Update Oct 5

+ Changed the 0x00 padding to 0x01's to make freespace more obvious
+ The old mio0 files are now cleared with 0x01's
+ Added EEPROM size limit removal + EEPROM checksums removal
+ Made the main CRC removal optional
+ Changed the 0x1A command's DMA loader to a better function

____________________

Web R4300i Assembler
Guide to SM64 Behavior Scripts
GS Code Formatter for Nemu's silly Cheats.ini
shyguyhex

Level: 16


Posts: 37/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-09-14 01:41:09 AM, in Alternate ROM Extender Link
On PJ64, it should run alright in interpreter mode. I'm trying to find the reason for this right now.

____________________
skype
shyguyhex

Level: 16


Posts: 38/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-20-14 04:43:45 AM, in .b64 script interpreter Link
I've made a nice script interpreter utility for injecting blocks of data into ram and rom for any N64 game.
I plan for this to be a backend part of Bowser64 eventually.




Download: b64si 10-19b.zip
A simple batch frontend for Nemu ram injection and the example script from the image above are included in the download.


Command line params:
RAM injection:

b64si "script path" (ram mode - 0) (emulator process id as decimal) (emulator vc base as hex)

Ex: b64si "script.b64" 0 1234 10020000


ROM patch:

b64si "script path" (rom mode - 1) "path to rom"

Ex: b64si "script.b64" 1 "path/to/rom.z64"



Script syntax:

:(8 character ram address) // move ram pointer

!(8 character rom address) // move rom pointer


Data constructs:

hex {(hex pool)} // injects a pool of hex data

asm {(asm code)} // assembles mips asm code and injects
asc "text" // injects ascii
m64 "text" // injects sm64 encoded text
bin "file" // injects a file


(All data from the data constructs will get 32bit alignment, and will move the rom/ram pointers automatically when patching.)

Built in functions:

clr(num size) or clr(num size, num char) // clears an area with 0x00's or with a provided char


(clr does not move the ram/rom pointers automatically.)

Comments:

// line comment

# line comment
; line comment
/* block comment */


Currently supported ASM instructions:

J

JAL
BEQ
BNE
BLEZ
BGTZ
ADDI
ADDIU
SLTI
SLTIU
ANDI
ORI
LUI
LLO
LHI
TRAP
LB
LH
LW
LBU
LHU
SB
SH
SW
SLL
SRL
SRA
SLLV
SRLV
SRAV
JR
MFHI
MTHI
MFLO
MTLO
MULT
MULTU
DIV
DIVU
ADD
ADDU
SUB
SUBU
AND
OR
NOR
SLTU
SLT
ADD.S
ADD.D
SUB.S
SUB.D
LWC1
SWC1
MFC1
MTC1
BC1T
BC1F
BC1FL
BC1TL
C.EQ.S
C.EQ.D
C.LT.S
C.LT.D
MUL.S
MUL.D
DIV.S
DIV.D
NEG.S
NEG.D
LD
SD
LDC1
SDC1
XOR
XORI
BEQL
BNEL
SWR
SDL
SDR
DMULT
DMULTU
DDIV
DDIVU
DSLL32
DSRA32
DSRL32
SQRT.S
SQRT.D
MOV.S
MOV.D
CVT.D.S
CVT.D.W
CVT.S.D


Some additional info:
+ R0..R31 register naming can be used for asm
+ , and ) and ( in an asm block are seen as whitespace, so use them however you want
+ All data outputs are in byte-order ABCD (.z64) format!
+ the m64 string encoder doesn't support symbols yet, and it's a little bugged

____________________
shyguyhex

Level: 16


Posts: 39/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-24-14 10:48:56 PM, in Exploring Camera Data Link
Originally posted by CaptainSwag10

2. Even when I find a working pointer to the RAM address I need, when I close the emulator and re-open it, the pointer is no longer pointing to the correct address (I think this is because when I search for pointers, Cheat Engine never finds any static addresses, which are usually colored green and are listed above other addresses. However, I'm not sure what the reason or solution for this is).
3. In order to actually freeze the camera, you need to change the opcode that writes to the camera's position and rotation address, and then restore the original opcode in order to unfreeze the camera again, and I don't know how to modify the address of an opcode in RAM :'(


Sort of getting off the rails here but w/e

2 -> Project64 allocates it's virtual console memory dynamically, meaning the memory placement is basically random. You would have more luck with Nemu64 or 1964, as their memory placements are always the same.
3 -> I think Cheat Engine shows the address of each opcode on the left in the dis-assembly view, just make your trainer set the value at that address to 0x90 (which is NOP in x86, if I recall correctly).

I would recommend learning and editing the MIPS asm code instead of doing x86 asm edits to the emulator's recompiled code. Also you might benefit from learning the Windows API functions ReadProcessMemory and WriteProcessMemory, which let you edit the RAM of other programs any way you want.

____________________
shyguyhex

Level: 16


Posts: 40/45
EXP: 16615
For next: 3641

Since: 01-04-14


Since last post: 6.8 years
Last activity: 6.4 years

Posted on 10-24-14 10:52:25 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Originally posted by WaryLouka
Very simple question: Can I export Super Mario 64 Levels?
I searched online and there's no answer. There's also no search bar on the forum, or I'm blind.
The level importer currently doesn't have any export to .OBJ function.


You can, using Nemu64's video plugin. It can export levels to VRML files.



@bazinga

It sounds to me like some of the other files are missing from the extender.

____________________
Pages: 1 2 3
Jul - Posts by shyguyhex


Rusted Logic

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

28 database queries, 29 query cache hits.
Query execution time:  0.088362 seconds
Script execution time:  0.048890 seconds
Total render time:  0.137252 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 147 column 136 - 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 132 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 167 - 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 179 column 74 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 194 - Warning: missing </div>
line 193 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 195 column 9 - Warning: missing <tr>
line 213 column 13 - Warning: missing <tr>
line 216 column 74 - Warning: <style> isn't allowed in <td> elements
line 216 column 9 - Info: <td> previously mentioned
line 216 column 194 - Warning: missing </div>
line 223 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 225 column 9 - Warning: missing <tr>
line 243 column 13 - Warning: missing <tr>
line 246 column 74 - Warning: <style> isn't allowed in <td> elements
line 246 column 9 - Info: <td> previously mentioned
line 246 column 194 - Warning: missing </div>
line 280 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 282 column 9 - Warning: missing <tr>
line 300 column 13 - Warning: missing <tr>
line 303 column 74 - Warning: <style> isn't allowed in <td> elements
line 303 column 9 - Info: <td> previously mentioned
line 303 column 194 - Warning: missing </div>
line 340 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 342 column 9 - Warning: missing <tr>
line 360 column 13 - Warning: missing <tr>
line 363 column 74 - Warning: <style> isn't allowed in <td> elements
line 363 column 9 - Info: <td> previously mentioned
line 363 column 194 - Warning: missing </div>
line 368 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 370 column 9 - Warning: missing <tr>
line 388 column 13 - Warning: missing <tr>
line 391 column 74 - Warning: <style> isn't allowed in <td> elements
line 391 column 9 - Info: <td> previously mentioned
line 391 column 194 - Warning: missing </div>
line 410 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 412 column 9 - Warning: missing <tr>
line 430 column 13 - Warning: missing <tr>
line 433 column 74 - Warning: <style> isn't allowed in <td> elements
line 433 column 9 - Info: <td> previously mentioned
line 433 column 658 - Warning: missing </div>
line 433 column 608 - Warning: missing </div>
line 442 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 444 column 9 - Warning: missing <tr>
line 462 column 13 - Warning: missing <tr>
line 465 column 74 - Warning: <style> isn't allowed in <td> elements
line 465 column 9 - Info: <td> previously mentioned
line 465 column 658 - Warning: missing </div>
line 465 column 608 - Warning: missing </div>
line 482 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 484 column 9 - Warning: missing <tr>
line 502 column 13 - Warning: missing <tr>
line 505 column 74 - Warning: <style> isn't allowed in <td> elements
line 505 column 9 - Info: <td> previously mentioned
line 505 column 658 - Warning: missing </div>
line 505 column 608 - Warning: missing </div>
line 514 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 516 column 9 - Warning: missing <tr>
line 534 column 13 - Warning: missing <tr>
line 537 column 74 - Warning: <style> isn't allowed in <td> elements
line 537 column 9 - Info: <td> previously mentioned
line 537 column 658 - Warning: missing </div>
line 537 column 608 - Warning: missing </div>
line 558 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 560 column 9 - Warning: missing <tr>
line 578 column 13 - Warning: missing <tr>
line 581 column 74 - Warning: <style> isn't allowed in <td> elements
line 581 column 9 - Info: <td> previously mentioned
line 581 column 658 - Warning: missing </div>
line 581 column 608 - Warning: missing </div>
line 588 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 590 column 9 - Warning: missing <tr>
line 608 column 13 - Warning: missing <tr>
line 611 column 74 - Warning: <style> isn't allowed in <td> elements
line 611 column 9 - Info: <td> previously mentioned
line 611 column 658 - Warning: missing </div>
line 611 column 608 - Warning: missing </div>
line 622 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 624 column 9 - Warning: missing <tr>
line 642 column 13 - Warning: missing <tr>
line 645 column 74 - Warning: <style> isn't allowed in <td> elements
line 645 column 9 - Info: <td> previously mentioned
line 645 column 658 - Warning: missing </div>
line 645 column 608 - Warning: missing </div>
line 650 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 652 column 9 - Warning: missing <tr>
line 670 column 13 - Warning: missing <tr>
line 673 column 74 - Warning: <style> isn't allowed in <td> elements
line 673 column 9 - Info: <td> previously mentioned
line 673 column 658 - Warning: missing </div>
line 673 column 608 - Warning: missing </div>
line 706 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 708 column 9 - Warning: missing <tr>
line 726 column 13 - Warning: missing <tr>
line 729 column 74 - Warning: <style> isn't allowed in <td> elements
line 729 column 9 - Info: <td> previously mentioned
line 729 column 658 - Warning: missing </div>
line 729 column 608 - Warning: missing </div>
line 734 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 736 column 9 - Warning: missing <tr>
line 754 column 13 - Warning: missing <tr>
line 757 column 74 - Warning: <style> isn't allowed in <td> elements
line 757 column 9 - Info: <td> previously mentioned
line 757 column 658 - Warning: missing </div>
line 757 column 608 - Warning: missing </div>
line 768 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 770 column 9 - Warning: missing <tr>
line 788 column 13 - Warning: missing <tr>
line 791 column 74 - Warning: <style> isn't allowed in <td> elements
line 791 column 9 - Info: <td> previously mentioned
line 794 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 796 column 9 - Warning: missing <tr>
line 814 column 13 - Warning: missing <tr>
line 817 column 74 - Warning: <style> isn't allowed in <td> elements
line 817 column 9 - Info: <td> previously mentioned
line 962 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 964 column 9 - Warning: missing <tr>
line 982 column 13 - Warning: missing <tr>
line 985 column 74 - Warning: <style> isn't allowed in <td> elements
line 985 column 9 - Info: <td> previously mentioned
line 997 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 999 column 9 - Warning: missing <tr>
line 1017 column 13 - Warning: missing <tr>
line 1020 column 74 - Warning: <style> isn't allowed in <td> elements
line 1020 column 9 - Info: <td> previously mentioned
line 1033 column 17 - Warning: missing <tr>
line 1033 column 17 - Warning: discarding unexpected <table>
line 1036 column 35 - Warning: missing <tr>
line 1036 column 96 - Warning: unescaped & or unknown entity "&page"
line 1036 column 132 - Warning: unescaped & or unknown entity "&page"
line 1036 column 50 - Warning: missing </font> before </td>
line 1036 column 167 - Warning: missing </font> before </table>
line 1038 column 35 - Warning: missing <tr>
line 1038 column 50 - Warning: missing </font> before </td>
line 1038 column 136 - Warning: missing </font> before </table>
line 1040 column 17 - Warning: discarding unexpected </textarea>
line 1040 column 28 - Warning: discarding unexpected </form>
line 1040 column 35 - Warning: discarding unexpected </embed>
line 1040 column 43 - Warning: discarding unexpected </noembed>
line 1040 column 53 - Warning: discarding unexpected </noscript>
line 1040 column 64 - Warning: discarding unexpected </noembed>
line 1040 column 74 - Warning: discarding unexpected </embed>
line 1040 column 82 - Warning: discarding unexpected </table>
line 1040 column 90 - Warning: discarding unexpected </table>
line 1042 column 9 - Warning: missing </font> before <table>
line 1054 column 25 - Warning: discarding unexpected </font>
line 1063 column 58 - Warning: discarding unexpected </font>
line 1041 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 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 111 - Warning: <img> lacks "alt" attribute
line 161 column 161 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 179 column 499 - Warning: <img> proprietary attribute value "absmiddle"
line 179 column 499 - Warning: <img> lacks "alt" attribute
line 183 column 803 - Warning: <img> proprietary attribute value "absmiddle"
line 183 column 803 - Warning: <img> lacks "alt" attribute
line 198 column 22 - Warning: <img> lacks "alt" attribute
line 198 column 63 - Warning: <img> lacks "alt" attribute
line 198 column 111 - Warning: <img> lacks "alt" attribute
line 198 column 161 - Warning: <img> lacks "alt" attribute
line 199 column 11 - Warning: <img> lacks "alt" attribute
line 209 column 15 - Warning: <img> lacks "alt" attribute
line 228 column 22 - Warning: <img> lacks "alt" attribute
line 228 column 63 - Warning: <img> lacks "alt" attribute
line 228 column 111 - Warning: <img> lacks "alt" attribute
line 228 column 161 - Warning: <img> lacks "alt" attribute
line 229 column 11 - Warning: <img> lacks "alt" attribute
line 239 column 15 - Warning: <img> lacks "alt" attribute
line 285 column 22 - Warning: <img> lacks "alt" attribute
line 285 column 63 - Warning: <img> lacks "alt" attribute
line 285 column 111 - Warning: <img> lacks "alt" attribute
line 285 column 161 - Warning: <img> lacks "alt" attribute
line 286 column 11 - Warning: <img> lacks "alt" attribute
line 296 column 15 - Warning: <img> lacks "alt" attribute
line 304 column 345 - Warning: <img> lacks "alt" attribute
line 305 column 450 - Warning: <img> lacks "alt" attribute
line 327 column 2282 - Warning: <img> lacks "alt" attribute
line 331 column 2834 - Warning: <img> proprietary attribute value "absmiddle"
line 331 column 2834 - Warning: <img> lacks "alt" attribute
line 345 column 22 - Warning: <img> lacks "alt" attribute
line 345 column 63 - Warning: <img> lacks "alt" attribute
line 345 column 111 - Warning: <img> lacks "alt" attribute
line 345 column 161 - Warning: <img> lacks "alt" attribute
line 346 column 11 - Warning: <img> lacks "alt" attribute
line 356 column 15 - Warning: <img> lacks "alt" attribute
line 373 column 22 - Warning: <img> lacks "alt" attribute
line 373 column 63 - Warning: <img> lacks "alt" attribute
line 373 column 111 - Warning: <img> lacks "alt" attribute
line 373 column 161 - Warning: <img> lacks "alt" attribute
line 374 column 11 - Warning: <img> lacks "alt" attribute
line 384 column 15 - Warning: <img> lacks "alt" attribute
line 392 column 378 - Warning: <img> lacks "alt" attribute
line 395 column 553 - Warning: <img> proprietary attribute value "absmiddle"
line 395 column 553 - Warning: <img> lacks "alt" attribute
line 415 column 22 - Warning: <img> lacks "alt" attribute
line 415 column 63 - Warning: <img> lacks "alt" attribute
line 415 column 111 - Warning: <img> lacks "alt" attribute
line 415 column 161 - Warning: <img> lacks "alt" attribute
line 416 column 11 - Warning: <img> lacks "alt" attribute
line 426 column 15 - Warning: <img> lacks "alt" attribute
line 435 column 866 - Warning: <img> lacks "alt" attribute
line 447 column 22 - Warning: <img> lacks "alt" attribute
line 447 column 63 - Warning: <img> lacks "alt" attribute
line 447 column 111 - Warning: <img> lacks "alt" attribute
line 447 column 161 - Warning: <img> lacks "alt" attribute
line 448 column 11 - Warning: <img> lacks "alt" attribute
line 458 column 15 - Warning: <img> lacks "alt" attribute
line 471 column 1436 - Warning: <img> proprietary attribute value "absmiddle"
line 471 column 1436 - Warning: <img> lacks "alt" attribute
line 487 column 22 - Warning: <img> lacks "alt" attribute
line 487 column 63 - Warning: <img> lacks "alt" attribute
line 487 column 111 - Warning: <img> lacks "alt" attribute
line 487 column 161 - Warning: <img> lacks "alt" attribute
line 488 column 11 - Warning: <img> lacks "alt" attribute
line 498 column 15 - Warning: <img> lacks "alt" attribute
line 519 column 22 - Warning: <img> lacks "alt" attribute
line 519 column 63 - Warning: <img> lacks "alt" attribute
line 519 column 111 - Warning: <img> lacks "alt" attribute
line 519 column 161 - Warning: <img> lacks "alt" attribute
line 520 column 11 - Warning: <img> lacks "alt" attribute
line 530 column 15 - Warning: <img> lacks "alt" attribute
line 563 column 22 - Warning: <img> lacks "alt" attribute
line 563 column 63 - Warning: <img> lacks "alt" attribute
line 563 column 111 - Warning: <img> lacks "alt" attribute
line 563 column 161 - Warning: <img> lacks "alt" attribute
line 564 column 11 - Warning: <img> lacks "alt" attribute
line 574 column 15 - Warning: <img> lacks "alt" attribute
line 593 column 22 - Warning: <img> lacks "alt" attribute
line 593 column 63 - Warning: <img> lacks "alt" attribute
line 593 column 111 - Warning: <img> lacks "alt" attribute
line 593 column 161 - Warning: <img> lacks "alt" attribute
line 594 column 11 - Warning: <img> lacks "alt" attribute
line 604 column 15 - Warning: <img> lacks "alt" attribute
line 611 column 882 - Warning: <img> proprietary attribute value "absmiddle"
line 611 column 882 - Warning: <img> lacks "alt" attribute
line 613 column 1085 - Warning: <img> proprietary attribute value "absmiddle"
line 613 column 1085 - Warning: <img> lacks "alt" attribute
line 627 column 22 - Warning: <img> lacks "alt" attribute
line 627 column 63 - Warning: <img> lacks "alt" attribute
line 627 column 111 - Warning: <img> lacks "alt" attribute
line 627 column 161 - Warning: <img> lacks "alt" attribute
line 628 column 11 - Warning: <img> lacks "alt" attribute
line 638 column 15 - Warning: <img> lacks "alt" attribute
line 655 column 22 - Warning: <img> lacks "alt" attribute
line 655 column 63 - Warning: <img> lacks "alt" attribute
line 655 column 111 - Warning: <img> lacks "alt" attribute
line 655 column 161 - Warning: <img> lacks "alt" attribute
line 656 column 11 - Warning: <img> lacks "alt" attribute
line 666 column 15 - Warning: <img> lacks "alt" attribute
line 688 column 1725 - Warning: <img> lacks "alt" attribute
line 688 column 1780 - Warning: <img> lacks "alt" attribute
line 695 column 2237 - Warning: <img> lacks "alt" attribute
line 697 column 2449 - Warning: <img> lacks "alt" attribute
line 711 column 22 - Warning: <img> lacks "alt" attribute
line 711 column 63 - Warning: <img> lacks "alt" attribute
line 711 column 111 - Warning: <img> lacks "alt" attribute
line 711 column 161 - Warning: <img> lacks "alt" attribute
line 712 column 11 - Warning: <img> lacks "alt" attribute
line 722 column 15 - Warning: <img> lacks "alt" attribute
line 739 column 22 - Warning: <img> lacks "alt" attribute
line 739 column 63 - Warning: <img> lacks "alt" attribute
line 739 column 111 - Warning: <img> lacks "alt" attribute
line 739 column 161 - Warning: <img> lacks "alt" attribute
line 740 column 11 - Warning: <img> lacks "alt" attribute
line 750 column 15 - Warning: <img> lacks "alt" attribute
line 773 column 22 - Warning: <img> lacks "alt" attribute
line 773 column 63 - Warning: <img> lacks "alt" attribute
line 773 column 111 - Warning: <img> lacks "alt" attribute
line 773 column 161 - Warning: <img> lacks "alt" attribute
line 774 column 11 - Warning: <img> lacks "alt" attribute
line 784 column 15 - Warning: <img> lacks "alt" attribute
line 799 column 22 - Warning: <img> lacks "alt" attribute
line 799 column 63 - Warning: <img> lacks "alt" attribute
line 799 column 111 - Warning: <img> lacks "alt" attribute
line 799 column 161 - Warning: <img> lacks "alt" attribute
line 800 column 11 - Warning: <img> lacks "alt" attribute
line 810 column 15 - Warning: <img> lacks "alt" attribute
line 820 column 1345 - Warning: <img> lacks "alt" attribute
line 821 column 1429 - Warning: <img> lacks "alt" attribute
line 967 column 22 - Warning: <img> lacks "alt" attribute
line 967 column 63 - Warning: <img> lacks "alt" attribute
line 967 column 111 - Warning: <img> lacks "alt" attribute
line 967 column 161 - Warning: <img> lacks "alt" attribute
line 968 column 11 - Warning: <img> lacks "alt" attribute
line 978 column 15 - Warning: <img> lacks "alt" attribute
line 994 column 2717 - Warning: <img> proprietary attribute value "absmiddle"
line 994 column 2717 - Warning: <img> lacks "alt" attribute
line 1002 column 22 - Warning: <img> lacks "alt" attribute
line 1002 column 63 - Warning: <img> lacks "alt" attribute
line 1002 column 111 - Warning: <img> lacks "alt" attribute
line 1002 column 161 - Warning: <img> lacks "alt" attribute
line 1003 column 11 - Warning: <img> lacks "alt" attribute
line 1013 column 15 - Warning: <img> lacks "alt" attribute
line 1048 column 25 - Warning: <img> lacks "alt" attribute
line 1053 column 267 - Warning: <img> lacks "alt" attribute
line 147 column 136 - Warning: trimming empty <font>
line 149 column 167 - Warning: trimming empty <font>
line 1033 column 17 - Warning: trimming empty <tr>
line 1036 column 167 - Warning: trimming empty <font>
line 1038 column 136 - Warning: trimming empty <font>
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 214 column 27 - Warning: <nobr> is not approved by W3C
line 244 column 27 - Warning: <nobr> is not approved by W3C
line 301 column 27 - Warning: <nobr> is not approved by W3C
line 361 column 27 - Warning: <nobr> is not approved by W3C
line 389 column 27 - Warning: <nobr> is not approved by W3C
line 431 column 27 - Warning: <nobr> is not approved by W3C
line 463 column 27 - Warning: <nobr> is not approved by W3C
line 503 column 27 - Warning: <nobr> is not approved by W3C
line 535 column 27 - Warning: <nobr> is not approved by W3C
line 579 column 27 - Warning: <nobr> is not approved by W3C
line 609 column 27 - Warning: <nobr> is not approved by W3C
line 643 column 27 - Warning: <nobr> is not approved by W3C
line 671 column 27 - Warning: <nobr> is not approved by W3C
line 727 column 27 - Warning: <nobr> is not approved by W3C
line 755 column 27 - Warning: <nobr> is not approved by W3C
line 789 column 27 - Warning: <nobr> is not approved by W3C
line 815 column 27 - Warning: <nobr> is not approved by W3C
line 983 column 27 - Warning: <nobr> is not approved by W3C
line 1018 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 325 warnings and 0 errors!


The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md