Register - Login
Views: 99398188
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 02:51:50 PM
Jul - Posts by ShenoxVII
Pages: 1 2 3 4 5 6
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 21/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-28-10 08:52:09 PM, in Visual Basic 2008, Hex mode help? Link
Originally posted by Rena
Well I haven't used VB in a while, but I remember that it does treat input as hex if you add &h in front of it. Sounds like he wants to add that in code so the user is only typing a hex number (without any prefix). Otherwise the input would be in Decimal which is a bit silly for such applications.


Hex$(CLng("&H" & TextBox2.Text) - &H245000)


I need to get &H245000 to the left of Hex$(CLng("&H" & TextBox2.Text) without the error of double "&H" for some reason. I'm starting to think it's impossible and visual basics is just a crappy programming language and Microsoft sucks at everything. I'm tired of this im about to totally delete the entire project files and just let someone else make it like frauber or VLtone who could do it in 2 seconds without any help or problems.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 22/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-30-10 10:11:30 PM, in SM64 Gameshark/Hex Stuff Link
Best luigi code to date.

Mario64 NTSC GS 3.0 and higher.

81271B9A 3F85
81270D28 1000
81265366 4040
81265380 4604
812653A8 1000
812653CE 4230
812653EE 4230
81252662 429A
812527B6 427A
812541A6 0003
812541AA 0003
812689C0 2400
812535C2 3F90
812535BE 3F71
81271B9A 3F99
81270D28 1000
8033B3BC 00F7
8107EC40 0087
8107EC42 0077
8107EC38 0045
8107EC3A 0000
8107EC20 2300
8107EC22 7700
8107EC28 2200
8107EC2A 7700
8131CC02 3F00
81252746 3F30
81252622 3F50
8125268A 3F60
8125268C 4481
8125268E 3000
8025AB17 000D
81252624 4481
81252626 5000
8126A394 2400
81252748 4481
8125274A 2000
8126E3BA 42B2
802C3AE3 00FF
8125267A 428E
8124F446 41E0
D133AFA0 E000
8133B17E 08A4
D133AFA0 E000
8133B17C 1080
D133AFA0 E000
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 23/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 12:40:39 AM, in Visual Basic 2008, Hex mode help? Link
Originally posted by Metal_Man88
These things with hex stuff and programming are serious computer science topics, Shenox. As I tried to warn you, you're probably in over your head. You're probably better off stopping if you don't understand data structures like arrays, queues, and stacks, and also if you don't understand hex, binary, octal and their relation to decimal... and also object oriented programming.

You're just going to tear your hair out trying to do it otherwise, as it isn't something you just magically type into a box and magically becomes reality. Believe you me, I could potentially make what you're talking about in C++, but it's an undertaking such that Iiiii'm not about to spend hours of my life on that yet, unless I was being paid or something.



I don't think of C++/C/C# and other programming langues as extreme computer science. I don't know what a Array, queues or stacks are. I understand hex and binary very well, not so much as octal sense I did not ever hear about till a while ago. And I don't really understand binary to decimal. Nor what object oriented programming is. I hate seeing people think that you need a fancy collage degree or a one on one teacher to teach you how to program with many langues. I learned everything I knew in past 4 years and with just the help of notes I found, I never really asked people for much help, but here I see I always get people attempting to help which is very nice. I started hacking N64 roms in 06 when I was 11 years old, at time I just did a hack with Renegrade64 and followed a tut on making gameshark codes step by step and I made one to replace the Goomba's behavior with Bob-ombs. Very basic stuff, I felt around with the stuff I was given and came up with more stuff. Then I started making hacks dealing with ROM and RAM data using hex editor and Nemu64. Just years and years of experience with rom hacking =3. I started making programs in 09 starting with VB, then I did my first hack of a N64 rom using C but when I tried to play it, It would go black screen all the time. So I never messed with C++/C that much till 2010 when I helped okaygo with Mupen64plus and my own hack of Pj64 1.4 to support kaillera.

I know there are people like VLtone or frauber or even you or many other people on these forums who could make this program without any problems or anything. That in my opinion is because yall know more about the programming langue. I could spend hours reading information about programming, but I rather figure it out my self with SOME help.



Also thanks for all the information.
Dim Value as Byte = Byte.Parse("&H" & TextBox2.text)

I'm going to see what I can do with that. This is the entire code I had before for both

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Val(Hex$(CLng("&H" & TextBox2.Text)) < &H245000) Then
TextBox4.Text = "Offset: 0x" + Hex$(CLng("&H" & TextBox2.Text) - &H245000) + Environment.NewLine + "Value: " + TextBox3.Text
MessageBox.Show("Finished!", "(Complete)")
End If

If Val(Hex$(CLng("&H" & TextBox2.Text)) > &H245000) Then

This is where I had problems at.

MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End If

End Sub
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 24/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 01:07:40 AM, in Visual Basic 2008, Hex mode help? Link
Originally posted by Sukasa
Dim Value as Byte = Byte.Parse("&H" & TextBox2.text)

That wasn't so hard. Also, before you go hating on VB and microsoft, you should probably consider that Clng() requires a numeric parameter and you're passing a string (which completely shouldn't work); then, you're subtracting 2379776 from that value before converting it back to a Hexadecimal string!

When Rena said that VB uses "&H" for input, it doesn't mean you still don't have to call the correct parse function.



Didn't work at all no matter how I tried to use it even with editing it.

Also I'm trying to do 245000 - ADDRESS (or TextBox2.text). not Address - 245000 , It's easy getting address - 245000 now I can't flip it. No matter what I do. I also don't understand DIm as, I thought you could dim any command as anything. I can't do it. Your code keep saying format wrong.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 25/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 01:25:52 AM, in Mario 64 Editing Marios Polygon? Link
What program did he use, how do did he use it, What do I need to know to do so, where are the notes for it if VLtone can give me some, Can I have very detailed notes, make them very simple.

No explaining how it works, this is trash question because it wont have a answer most likely, so if you found this using google, please look down and see if there is one.

Also, to anyone who knows, please tell me, I want to mess around with it =\

____________________
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 26/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 01:41:14 AM, in Mario 64 Editing Marios Polygon? Link
Originally posted by Kerli
...and I thought we already fixed that... =/


How do you get color names, and can you tell me these forums codes? Like code for video then URL and stuff because and were easy but ineed know how video. I tried [Video] [/video] but didnt work. Also how do you pm people. And is this a good place to ask these questions? Are there any limits here? Who is mod here? Isn't that kexon guy or w/e the owner of this website? What is a jul? Why is there a squid thingy on my screen. Is this the best sm64 hacking forums? Where are my cookies? Why do they keep deleting them selfs on this website?

ANSWER PLEASE
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 27/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 05:25:52 AM, in Visual Basic 2008, Hex mode help? Link
Originally posted by Sukasa
What's the value of TextBox2.Text?

Are you using the right variable type? Perhaps you need to change Byte to Int32 or Int64.


Dim Address as Int64 = -1

Dim ValidAddress as Boolean = Int64.TryParse("&H" & TextBox2.Text, Address)
If ValidAddress AndAlso Address >= 0 Then
If Address > &H245000 Then
MsgBox("That address cannot be patched!")
Else
'Do something Here
End If
Else
MsgBox("Enter a valid positive hexadecimal number without any pre- or post-fixing")
End If





TextBox2 is the Address to the Nintendo64 gameshark code. When you subtract The address from 245000 you get the offset in ROM hex data. Or if the address is smaller then 245000 you have to flip the math, which im trying to do. I'll test this out also. Doesn't work.


I have tried every way Possible. Here is the current entire source.


[Code] Public Class Form1


Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Val(Hex$(CLng("&H" & TextBox2.Text)) > &H245000) Then
TextBox4.Text = "Offset: 0x" + Hex$(CLng("&H" & TextBox2.Text) - &H245000) + Environment.NewLine + "Value: " + TextBox3.Text
MessageBox.Show("Finished!", "(Complete)")
End If


If Val(Hex$(CLng("&H" & TextBox2.Text)) < &H245000) Then

TextBox4.Text = "Error"
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
End If


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


Dim Address As Int64 = -1
Dim ValidAddress As Boolean = Int64.TryParse("&H" & TextBox2.Text, Address)



If TextBox1.Text = "81" Then
MessageBox.Show("This Gameshark code can be patched!", "(Correct)")
End If


If TextBox1.Text = "80" Then
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End If
If TextBox1.Text = "D1" Then
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End If
If TextBox1.Text = "D0" Then
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End If
If TextBox1.Text = "88" Then
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End If

If TextBox1.Text = "81" Then End
If ValidAddress < &H245000 Then

TextBox4.Text = "Error"
MessageBox.Show("This Gameshark code can NOT be patched!", "(Error)")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
End If

End Sub


End Class




Does that help any? It still isn't working. This isn't working either, I tried every way I could think of with your code. I need a way to make the Hex version of TextBox2.text be a shorter code so that I can - &H245000
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 28/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 10-31-10 08:53:25 AM, in Visual Basic 2008, Hex mode help? Link
Originally posted by Rena
K. Here's what you do. Put this aside and build some really simple, basic programs. Doesn't matter if they're really of any use. Don't copy anything. Read up how to do each task, write the code all yourself and understand what it all does and why.

You're not going to be able to write proper, working programs until you understand how they work, what every last word and symbol do, and why they're there.


I been doing many side programs. A screen recorder, advance desk top capture to bmp, png, jpg, and many others, I made a lot from my own codes I figured out too. Like the mario64 action modifier I self made.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 29/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 11-02-10 04:03:30 PM, in Nintendo64 Rom hacking dealing with C Link
Originally posted by Joe
Originally posted by ShenoxVII
I keep getting errors
What do the error messages say?



There is no error. I can compile it correctly, i think. But when I go to play in any N64 emulator it does not play rom. It goes black. Iv tried nemu64, Pj64, Pj64 1.7, and of course iv tried it with 8mb too. I also tried running it through chksum64 and still no fix. Idk why it doesn't work.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 30/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 11-15-10 10:51:28 PM, in N64 Sound Tool Link


I'm confused when I'm looking at this source. In resource.h




#define IDD_N64SOUNDLISTTOOL_DIALOG 102
#define IDR_MAINFRAME 128
#define IDR_MENUMAIN 129
#define IDD_DIALOGSPECIFYLOCATION 130
#define IDC_EXPORTCTLTBL 1000
#define IDC_INJECTPLACE 1001
#define IDC_BUTTONPLAYSND 1003
#define IDC_BUTTONTEST 1004
#define IDC_EDITCTL 1005
#define IDC_EDITCTL2 1006
#define IDC_EDITTBL 1006
#define IDC_BUTTON1 1058
#define IDC_BUTTONUP 1653
#define IDC_BUTTONDOWN 1654
#define IDC_COMBOSOUND 1668
#define IDC_EDITSAMPLINGRATE 1669
#define IDC_COMBOSOUNDBANK 1670
#define IDC_EDITVOL 1671
#define IDC_EDITPAN 1672
#define IDC_EDITPRIORITY 1673
#define IDC_EDITTREMTYPE 1674
#define IDC_EDITTREMRATE 1675
#define IDC_EDITTREMDEPTH 1676
#define IDC_EDITTREMDELAY 1677
#define IDC_EDITTVIBTYPE 1678
#define IDC_EDITVIBRATE 1679
#define IDC_EDITVIBDEPTH 1680
#define IDC_EDITVIBDELAY 1681
#define IDC_COMBOSOUND2 1682
#define IDC_EDITSAMPLEPAN 1683
#define IDC_EDITSAMPLEVOL 1684
#define IDC_EDITATTACKTIME 1685
#define IDC_EDITDECAYTIME 1686
#define IDC_EDITRELEASETIME 1687
#define IDC_EDITATTACKVOLUME 1688
#define IDC_EDITDECAYVOLUME 1689
#define IDC_EDITVELMIN 1690
#define IDC_EDITVELMAX 1691
#define IDC_EDITKEYMIN 1692
#define IDC_EDITKEYMAX 1693
#define IDC_EDITKEYBASE 1694
#define IDC_EDITDETUNE 1695
#define IDC_EDITLENGTH 1696
#define IDC_EDITBASE 1697
#define IDC_EDITLOOP 1698
#define IDC_EDITEND 1699
#define IDC_EDITCOUNT 1700
#define IDC_CHECKLOOPENABLED 1701
#define IDC_CHECKRAW 1703
#define IDC_STATICL1 1704
#define IDC_STATICL2 1705
#define IDC_STATICL3 1706
#define IDC_BUTTONRIP 1707
#define IDC_BUTTONRIP2 1707
#define IDC_STATICSFXBANKINST 1708
#define IDC_STATICSOUNDSCOMBO 1709
#define IDC_BUTTONADDSOUND 1710
#define IDC_BUTTONDELETESOUND 1711
#define IDC_STATICSOUNDBANK 1712
#define IDC_BUTTONDELETESOUND2 1713
#define IDC_BUTTONADDSOUND2 1714
#define IDC_BUTTONIMPORT16BITRAW 1715
#define IDC_BUTTONEXPORTRAW 1716
#define IDC_BUTTONIMPORTPREDICTORS 1717
#define IDC_BUTTONEXPORTRAW2 1718
#define IDC_BUTTONEXPORTPREDITORS 1718
#define IDC_BUTTONVADPCMIMPORT 1767
#define ID_FILE_OPENROM 32771
#define ID_FILE_QUIT 32772
#define ID_FILE_OPENROMEXPLICIT 32773



That is the part of source that is telling about the visual layout and what does what right? Because all the other files are getting me completely lost and this is only part of source that I understood a little bit.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 31/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 11-30-10 08:26:19 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Originally posted by MarioErmando
Hi, im have a texture error.....


Screenshot: http://img405.imageshack.us/img405/7599/sanstitrenfe.png



Download http://sites.google.com/site/messiaen64/level-importer/ObjExporter.rb?attredirects=0&d=1

That is the fixed version of the obj importer so it correctly uses textures. Make sure you make the textures the ones dumped from Rice video plugin or frauber's pack of them or Toad tools 64.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 32/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-17-10 11:19:39 AM, in Visual Basic 2008, Hex mode help? Link
Originally posted by messiaen
There are two main confusions here.

First, you should read again my notes on patching (some) Gameshark codes to the SM64 ROM, you are missing important stuff.

Second, what you really seem to want is just basic File I/O: open a file, seek to an adress, write and close, that is, stuff you can do in a "hex editor". So, your answer is simple, just serch google for "Binary File I/O" + the name of your programming language. There will be plenty of resources, probably with easy to modify code.

Also, (from my self-taught and inexperienced point of view) I think you can get away with modifying the file straight away without using a buffer, since you are doing a very simple patcher, not something that needs to keep the file opened for access (the only I reason I see to copy it to RAM). But of course, learning to use a buffer will be essential once you get to more complex tasks.




Helped, I'm just making minor edits to the program now, thanks.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 33/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-20-10 02:48:01 PM, in Super Mario 64 Gameshark code Patcher (STABLE RELEASE) (last edited by ShenoxVII at 04-02-11 05:10 PM) Link
http://www.mediafire.com/?v2fedn1va0ngksn



New Features

- Supports direct ROM Patching
- New layout
- Fixed "math"

Thanks to, messiaen, metal_man, and Sukasa for their help with the program and to messiaen again for his mario64 GS patching notes.


Here is the Visual Basics Code:


[CODE] Public Class MarioPatcher

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button2.Enabled = False
Button1.Enabled = False
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox4.Text = "Offset: 0x" + Hex$(CLng("&H" & TextBox2.Text) - &H245000) + Environment.NewLine + "Byte: " + TextBox5.Text + TextBox6.Text + Environment.NewLine + Environment.NewLine + "Ready to be patched!!!"
Label4.Text = Hex$(CLng("&H" & TextBox2.Text) - &H245000)
Button2.Enabled = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim patch As Byte() = {(CLng("&H" & TextBox5.text)), (CLng("&H" & Textbox6.text))}
Dim bw As New IO.BinaryWriter(IO.File.Open(OpenFileDialog1.FileName, IO.FileMode.Open, IO.FileAccess.ReadWrite))
bw.BaseStream.Seek(CLng("&H" & Label4.Text), IO.SeekOrigin.Begin)
bw.Write(patch)
bw.Close()
MsgBox("Gameshark code Patched!")
Button3.Enabled = True
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
OpenFileDialog1.FileName = ".z64"
OpenFileDialog1.Title = "Super Mario 64 Rom"
OpenFileDialog1.ShowDialog()
OpenFileDialog1.OpenFile()

Button1.Enabled = True
End Sub

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click

End Sub

Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click

End Sub
End Class [/CODE]




If anyone wants to update it. I don't think I will be working on this anymore.

____________________
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 35/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-20-10 11:41:10 PM, in [N64] Differences between N64, V64, Z64 and internal programming Link
Some stuff you will need to know.

Depending on the operating system to work, consider the byte order of numeric data types that use multiple bytes. There are two different formats, called "Little Endian and Big Endian."

"Little Endian" means that the least significant byte is stored in the lowest address of memory and the most significant byte in the highest.

Thus, a 4-byte Long Int
Byte2 Byte3 Byte1 Byte0

be stored in memory as follows:
Base Address +0 ===> Byte0
Base Address +1 ===> Byte1
Base Address +2 ===> Byte2
Base Address +3 ===> Byte3

Intel processors (used in most personal computers) and DEC Alpha RISC are "Little Endian."

In the format "Big Endian" the most significant byte is stored in the lowest address byte of memory and less weight in the highest address.
Int Long before, now would be stored as follows:

Base Address +0 ===> Byte3
Base Address +1 ===> Byte2
Base Address +2 ===> Byte1
Base Address +3 ===> Byte0

Most UNIX systems, the Internet protocol TCP, Motorola 680x0 processors (and, therefore, the Macintosh), Hewlett-Packard PA-RISC and Sun SuperSPARC are "Big Endian". The MIPS processor Silicon Graphics and IBM / Motorola PowerPC are able to understand both systems, so they are said to be "bi-endian."

What order is best?

Because of the historical rivalry between the PC and Mac, the question of the ordination of bytes has been widely discussed. Both systems have advantages and disadvantages that follow.

In the "Little Endian", the assembly instructions to choose 1, 2, 4 or a larger number of bytes from the same way: first reading the low byte, which is in the offset (offset) 0.

In addition, the 1:1 ratio between the offset and the number of byte math routines causes are easier to implement.

In the "Big Endian", by having the most significant byte first, you can check directly if the number is positive or negative only checking the first byte (remember that the sign is stored in the first bit) and without need to know the length of the number.
This form of representation matches the order in which the numbers are written, so the routines to convert between numbering systems are more efficient than if undertaken in "Little Endian."

To know the different formats
When running a program, you may need to get it tell the difference between the two formats and act accordingly when you are using.

If you want a program to run on multiple platforms to be taken into account if they use the same format, and if different tailor the program to it. Otherwise, if the binary files used the program does not work, taking the wrong values.

The TCP protocol uses the format "Big Endian", so that systems that use "Little Endian" to convert the data to create the TCP / IP.

The formats "Little Endian and Big Endian" can be applied in addition to the management of bytes, the management of bits.

In a byte, a system that uses "Little Endian" has the least significant bit in the first bit and bit more weight in the last bit. In a "Big Endian", the high order bit will be in the first bit and the lowest weight in the past.

When applied to the management of both bytes and bits, taking advantage of each, we find systems that use the format "Big Endian" for the bytes and the "Little Endian" for the management of internally bits each byte, or vice versa.

Change from one format to another
To change from one format to another, we can build a function to swap the bytes. The procedure is simple:
Original Format -> ABCD
Format Changed -> DCBA
Moreover, given the symmetry between them, serves the same function for spending "Little Endian" to "Big Endian" as "Big Endian" a "Little Endian."
void Swap (long int * a)
{
long int b0, b1, b2, b3;
b0 = (* a) &0x000000FF;
b1 = ((* a) & 0x0000FF00)>> 8;
b2 = ((* a) & 0x00FF0000)>> 16;
b3 = ((* a) & 0xFF000000)>> 24;
* A = (b0 <<24) | (b1 <<16) | (b2 <<8) | b3;
}

/ * More efficient version * /
void Intercambio2 (long int * a)
{
* A =(((* a) & 0x000000FF) <<24) | ((((* a) & 0x0000FF00)>> 8) <<16) | \
((((* A) & 0x00FF0000)>> 16) <<8) | (((* a) & 0xFF000000)>> 24);
}


N64 (Little Endian) simplemte this extention is to save the data with this sequence

If I want to keep this format n64: AA BB CC DD / / EE FF GG HH / / II JJ KK LL
What I do is this: AA BB CC DD / / EE FF GG HH / / II JJ KK LL

Not that easy because we do not understand yet another example
Original Format
Address / / Value
1000 ------ AA
------ 1001 BB
------ 1002 CC
DD ------ 1003

N64 Format
Address / / Value
1000 ------ DD
------ 1001 CC
------ 1002 BB
------ 1003 AA

And every change must be 4 by 4 just in case see the above screenshot which compare the 3 formats

V64 (Bytewapped): Like the other format is just save the information in this way

If I want to keep this format n64: AA BB CC DD / / EE FF GG HH / / II JJ KK LL
What I do is this: AA BB CC DD / / EE FF GG HH / / II JJ KK LL

Bone is changing the sequence of 2 values, another example xD

Original Format
Address / / Value
1000 ------ AA
------ 1001 BB
------ 1002 CC
DD ------ 1003

V64 Format
Address / / Value
1000 ------ BB
------ 1001 AA
DD ------ 1002
------ 1003 CC

Note that the values are exchanged 2 by 2 to analyze the image above to see the difference

Z64 (Big Endian) simplemte this extention is to save the data in its original form without changing the sequence or anything like that

If I want to keep this format n64: AA BB CC DD / / EE FF GG HH / / II JJ KK LL
What I do is this: AA BB CC DD / / EE FF GG HH / / II JJ KK LL

Nothing fancy, so this extension is the most recommended for hackroms and the like for easy editing, but in any case there hexadecimal editors automatically rearrange the alignment of bytes if you specify them and when I talk about alignment byte bytewapped I mean, Little and big endian


(Thanks to my friend henry for details]

Internal programming Roms

We continue with the explanation entendimo now that it's the extensions, now the question arises where the Roma language are scheduled? because the response is in MIPS Assembler because if they read a little history of the console, the console processor is a 64-bit MIPS

The creators of the emulators are familiar with the MIPS language and what they do is emulate a virtual console that recognizes that format, like microsoft windows EXE for use MASM Assembler, remember that not a single assembler language are many and each with a different syntax

To see such as the MIPS assembler will show you a picture, using the display command Nemu64 and the other with a program called ELF Mutilator



Well, this is a good bit of information to put on these forums, I hope it helps or informs someone someday.
Also for people who may still not understand how v64, z64, and n64 are different (Check image if you don't) it basically is the difference from n64, z64, and v64 are that the bytes are switched around. Say you have rom.z64 in the title for example in a hex editor the bytes will be correctly matched to resemble a ACII value of the rom's internal name. Let's say it's ROM EXAMPLE, okay so if we look at it if it's in .v64 format it would be like MEXAEOL PMR or something, then in n64 it will be a little bit closer like REM OMXALEP or something.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 36/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-20-10 11:44:04 PM, in Nintendo64 Rom hacking dealing with C Link
Originally posted by Hectamatatortron
Read through my doc.

Link

The examples aren't as robust as what you probably want, but they do work.

(Specifically, they work with the compiler and assembler I am using...the compiler and associated batch scripts are around

Hextator's Doc/Development/Compilers

there somewhere; however, I have not included the assembler...you will have to find mips-elf-as on your own I guess D:)

There are example C files for making GameShark codes in C in the

"Mischief Makers"
Hextator's Doc/Console Games/Mischief Makers

and

"Ocarina of Time"
Hextator's Doc/Console Games/Zelda Series/Ocarina of Time

folders.

There is also a completed project regarding applying GameShark codes to the ROM of

"Jet Force Gemini"

in this folder

Hextator's Doc/Console Games/Jet Force Gemini/Training

Though the hack itself is in need of debugging, the rest of the project is not.

HOWEVER note that the "GameShark" codes which are being applied are not actually GameShark codes. In that particular case, I hacked the ROM to have a trainer which executed codes SIMILAR to GameShark codes, the format of which I designed myself (and included documentation of therein).

The format I designed is more profound and thus better; if you are any good with C you should be able easily write C code which compiles to assembly which can be pasted into the cheat list assembly file (there known as "Cheat List - [Address].txt") after being wrapped with the appropriate code type specification and being formatted to not have extraneous stuff from the compiler (there is actually a Java program in my doc somewhere which is specifically designed to format the output of the MIPS compiler I use for this purpose located at

Hextator's Doc/Development/Apps/Reformatting/Text Reformatters/MIPS Parse

).

Following that it is a simple matter of assembling the cheat list and pasting the resulting binary at the appropriate address and, in the case of Jet Force Gemini, you could easily be reprogramming the game in C. Or if you want to edit existing functions you will have to be trickier, but you should be able to figure it out.



I see what the problem was, but a lot of the information might be useful later if I try anymore stuff with this. Also I'm not trying to patch a gameshark to the rom, you can do that another way thats very easy.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 37/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-23-10 04:50:00 AM, in Nintendo64 Rom hacking dealing with C Link
Originally posted by Hectamatatortron
GameShark sucks. I wanted real code types. The point was to guide you anyway.



I seen you somewhere before? From anti3d? or something like that.
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 38/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 12-30-10 01:54:19 AM, in Super Mario 64 Gameshark code Patcher (STABLE RELEASE) Link
Originally posted by VL-Tone

Yeah I was thinking about that too. Emulating the GS shouldn't be too hard, and I'm sure you would know how to insert the code into SM64's main event loop. A program similar to ShenoxVII's patcher would take one or multiple GS codes as an input, and would patch the ROM with the GS emulator and codes. What could be very nice too is to be able to set one or more custom button combinations that would act as triggers to specific GS codes entered by the user.

But let's remind everyone that ShenoxVII's patcher is already very useful by itself





Thank you, I been so side tracked that I almost forgot about working on this plus I never thought this program would help more then a few people out. But seeing you say that has inspired me to continue my research and continue expanding my project. At first the complexity of understanding how roms work was very confusing, it understand more and more by all the help.



Oh and can you explain this more.

"If the code type was "80", the procedure would be the same, except that you would write only the modified byte
(ie, for 802F8EC7 0020, write 0x20 at offset 0xB3EC7).

Other code ranges:

For codes between 800EB180 - 800F083C (behavior bank modifiers), just add 12EC80 to find the ROM address.
You don't have to recalculate the checksum for these codes."

How do you get 2F8EC7 to B3EC7 ? Also the second one, 12EC80 added to the address is for ram addresses?
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 39/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 01-02-11 05:03:16 AM, in Toad's Tool 0.6.0 (On hiatus for an indefinite amount of time) Link
A good tip for toad tools 64 0.6.0 would be so that when you import custom levels you can right click the blank object list and click "add object" or "delete" object so you can grey or red it out or in. This will help the people who dont know how to use the ALT and CTRL keys and i find my self personally just highlighting it click random stars holding alt and ctrl down hoping for the best. although I don't really mess with it that much
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 40/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 01-15-11 08:42:08 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking Link
Does anyone know how to translate assembly codes into gameshark codes?
ShenoxVII

(in all seriousness, you're a prick)
Level: 24


Posts: 41/111
EXP: 75923
For next: 2202

Since: 10-09-10


Since last post: 9.0 years
Last activity: 9.0 years

Posted on 01-27-11 09:44:00 PM, in WHAT IS MEAT Link
?
Pages: 1 2 3 4 5 6
Jul - Posts by ShenoxVII


Rusted Logic

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

31 database queries, 26 query cache hits.
Query execution time:  0.082717 seconds
Script execution time:  0.036447 seconds
Total render time:  0.119164 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 166 - Warning: unescaped & or unknown entity "&page"
line 149 column 200 - Warning: unescaped & or unknown entity "&page"
line 149 column 234 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 269 - 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 181 column 648 - Warning: unescaped & or unknown entity "&H"
line 181 column 671 - Warning: unescaped & or unknown entity "&H245000"
line 184 column 707 - Warning: unescaped & or unknown entity "&H245000"
line 184 column 742 - Warning: unescaped & or unknown entity "&H"
line 184 column 792 - Warning: unescaped & or unknown entity "&H"
line 179 column 74 - Warning: missing </div>
line 187 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 189 column 9 - Warning: missing <tr>
line 207 column 13 - Warning: missing <tr>
line 210 column 74 - Warning: missing </div>
line 263 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 265 column 9 - Warning: missing <tr>
line 283 column 13 - Warning: missing <tr>
line 298 column 2958 - Warning: unescaped & or unknown entity "&H"
line 304 column 3223 - Warning: unescaped & or unknown entity "&H"
line 304 column 3247 - Warning: unescaped & or unknown entity "&H245000"
line 305 column 3319 - Warning: unescaped & or unknown entity "&H"
line 305 column 3342 - Warning: unescaped & or unknown entity "&H245000"
line 309 column 3511 - Warning: unescaped & or unknown entity "&H"
line 309 column 3535 - Warning: unescaped & or unknown entity "&H245000"
line 286 column 74 - Warning: missing </div>
line 322 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 324 column 9 - Warning: missing <tr>
line 342 column 13 - Warning: missing <tr>
line 345 column 344 - Warning: unescaped & or unknown entity "&H"
line 349 column 718 - Warning: unescaped & or unknown entity "&H"
line 345 column 74 - Warning: missing </div>
line 357 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 359 column 9 - Warning: missing <tr>
line 377 column 13 - Warning: missing <tr>
line 380 column 141 - Warning: missing <tr>
line 387 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 389 column 9 - Warning: missing <tr>
line 407 column 13 - Warning: missing <tr>
line 410 column 74 - Warning: missing </div>
line 417 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 419 column 9 - Warning: missing <tr>
line 437 column 13 - Warning: missing <tr>
line 445 column 567 - Warning: unescaped & or unknown entity "&H"
line 447 column 662 - Warning: unescaped & or unknown entity "&H245000"
line 471 column 1679 - Warning: unescaped & or unknown entity "&H"
line 471 column 1703 - Warning: unescaped & or unknown entity "&H245000"
line 472 column 1775 - Warning: unescaped & or unknown entity "&H"
line 472 column 1798 - Warning: unescaped & or unknown entity "&H245000"
line 477 column 1971 - Warning: unescaped & or unknown entity "&H"
line 477 column 1998 - Warning: unescaped & or unknown entity "&H245000"
line 494 column 2539 - Warning: unescaped & or unknown entity "&H"
line 529 column 3790 - Warning: unescaped & or unknown entity "&H245000"
line 545 column 4382 - Warning: unescaped & or unknown entity "&H245000"
line 440 column 74 - Warning: missing </div>
line 548 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 550 column 9 - Warning: missing <tr>
line 568 column 13 - Warning: missing <tr>
line 571 column 74 - Warning: missing </div>
line 578 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 580 column 9 - Warning: missing <tr>
line 598 column 13 - Warning: missing <tr>
line 601 column 74 - Warning: missing </div>
line 607 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 609 column 9 - Warning: missing <tr>
line 627 column 13 - Warning: missing <tr>
line 630 column 74 - Warning: missing </div>
line 710 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 712 column 9 - Warning: missing <tr>
line 730 column 13 - Warning: missing <tr>
line 739 column 562 - Warning: unescaped & or unknown entity "&d"
line 739 column 653 - Warning: unescaped & or unknown entity "&d"
line 733 column 74 - Warning: missing </div>
line 744 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 746 column 9 - Warning: missing <tr>
line 764 column 13 - Warning: missing <tr>
line 767 column 74 - Warning: missing </div>
line 780 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 782 column 9 - Warning: missing <tr>
line 800 column 13 - Warning: missing <tr>
line 825 column 980 - Warning: unescaped & or unknown entity "&H"
line 825 column 1003 - Warning: unescaped & or unknown entity "&H245000"
line 826 column 1185 - Warning: unescaped & or unknown entity "&H"
line 826 column 1208 - Warning: unescaped & or unknown entity "&H245000"
line 831 column 1427 - Warning: unescaped & or unknown entity "&H"
line 831 column 1457 - Warning: unescaped & or unknown entity "&H"
line 833 column 1640 - Warning: unescaped & or unknown entity "&H"
line 859 column 2633 - Warning: discarding unexpected </td>
line 861 column 9 - Warning: discarding unexpected </div>
line 864 column 9 - Warning: missing <tr>
line 882 column 13 - Warning: missing <tr>
line 883 column 27 - Warning: missing </nobr> before </table>
line 944 column 3967 - Warning: unescaped & or unknown entity "&0x000000FF"
line 1030 column 9 - Warning: missing <tr>
line 1048 column 13 - Warning: missing <tr>
line 1049 column 27 - Warning: missing </nobr> before </table>
line 1102 column 9 - Warning: missing <tr>
line 1120 column 13 - Warning: missing <tr>
line 1121 column 27 - Warning: missing </nobr> before </table>
line 1131 column 9 - Warning: missing <tr>
line 1149 column 13 - Warning: missing <tr>
line 1150 column 27 - Warning: missing </nobr> before </table>
line 1180 column 9 - Warning: missing <tr>
line 1198 column 13 - Warning: missing <tr>
line 1199 column 27 - Warning: missing </nobr> before </table>
line 1206 column 9 - Warning: missing <tr>
line 1224 column 13 - Warning: missing <tr>
line 1225 column 27 - Warning: missing </nobr> before </table>
line 1232 column 9 - Warning: missing <tr>
line 1250 column 13 - Warning: missing <tr>
line 1251 column 27 - Warning: missing </nobr> before </table>
line 1259 column 35 - Warning: missing <tr>
line 1259 column 96 - Warning: unescaped & or unknown entity "&page"
line 1259 column 132 - Warning: unescaped & or unknown entity "&page"
line 1259 column 166 - Warning: unescaped & or unknown entity "&page"
line 1259 column 200 - Warning: unescaped & or unknown entity "&page"
line 1259 column 234 - Warning: unescaped & or unknown entity "&page"
line 1259 column 50 - Warning: missing </font> before </td>
line 1259 column 269 - Warning: missing </font> before </table>
line 1261 column 35 - Warning: missing <tr>
line 1261 column 50 - Warning: missing </font> before </td>
line 1261 column 136 - Warning: missing </font> before </table>
line 1263 column 17 - Warning: discarding unexpected </textarea>
line 1263 column 28 - Warning: discarding unexpected </form>
line 1263 column 35 - Warning: discarding unexpected </embed>
line 1263 column 43 - Warning: discarding unexpected </noembed>
line 1263 column 53 - Warning: discarding unexpected </noscript>
line 1263 column 64 - Warning: discarding unexpected </noembed>
line 1263 column 74 - Warning: discarding unexpected </embed>
line 1263 column 82 - Warning: discarding unexpected </table>
line 1263 column 90 - Warning: discarding unexpected </table>
line 1265 column 9 - Warning: missing </font> before <table>
line 1277 column 25 - Warning: discarding unexpected </font>
line 1286 column 58 - Warning: discarding unexpected </font>
line 1264 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 160 column 11 - 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 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 191 column 11 - Warning: <img> lacks "alt" attribute
line 192 column 22 - Warning: <img> lacks "alt" attribute
line 192 column 63 - Warning: <img> lacks "alt" attribute
line 192 column 112 - Warning: <img> lacks "alt" attribute
line 192 column 162 - Warning: <img> lacks "alt" attribute
line 193 column 11 - Warning: <img> lacks "alt" attribute
line 203 column 15 - Warning: <img> lacks "alt" attribute
line 267 column 11 - Warning: <img> lacks "alt" attribute
line 268 column 22 - Warning: <img> lacks "alt" attribute
line 268 column 63 - Warning: <img> lacks "alt" attribute
line 268 column 112 - Warning: <img> lacks "alt" attribute
line 268 column 162 - Warning: <img> lacks "alt" attribute
line 269 column 11 - Warning: <img> lacks "alt" attribute
line 279 column 15 - Warning: <img> lacks "alt" attribute
line 326 column 11 - Warning: <img> lacks "alt" attribute
line 327 column 22 - Warning: <img> lacks "alt" attribute
line 327 column 63 - Warning: <img> lacks "alt" attribute
line 327 column 112 - Warning: <img> lacks "alt" attribute
line 327 column 162 - Warning: <img> lacks "alt" attribute
line 328 column 11 - Warning: <img> lacks "alt" attribute
line 338 column 15 - Warning: <img> lacks "alt" attribute
line 361 column 11 - Warning: <img> lacks "alt" attribute
line 362 column 22 - Warning: <img> lacks "alt" attribute
line 362 column 63 - Warning: <img> lacks "alt" attribute
line 362 column 112 - Warning: <img> lacks "alt" attribute
line 362 column 162 - Warning: <img> lacks "alt" attribute
line 363 column 11 - Warning: <img> lacks "alt" attribute
line 373 column 15 - Warning: <img> lacks "alt" attribute
line 391 column 11 - Warning: <img> lacks "alt" attribute
line 392 column 22 - Warning: <img> lacks "alt" attribute
line 392 column 63 - Warning: <img> lacks "alt" attribute
line 392 column 112 - Warning: <img> lacks "alt" attribute
line 392 column 162 - Warning: <img> lacks "alt" attribute
line 393 column 11 - Warning: <img> lacks "alt" attribute
line 403 column 15 - Warning: <img> lacks "alt" attribute
line 412 column 495 - Warning: <img> attribute "src" lacks value
line 412 column 495 - Warning: <img> lacks "alt" attribute
line 412 column 526 - Warning: <a> attribute "href" lacks value
line 421 column 11 - Warning: <img> lacks "alt" attribute
line 422 column 22 - Warning: <img> lacks "alt" attribute
line 422 column 63 - Warning: <img> lacks "alt" attribute
line 422 column 112 - Warning: <img> lacks "alt" attribute
line 422 column 162 - Warning: <img> lacks "alt" attribute
line 423 column 11 - Warning: <img> lacks "alt" attribute
line 433 column 15 - Warning: <img> lacks "alt" attribute
line 552 column 11 - Warning: <img> lacks "alt" attribute
line 553 column 22 - Warning: <img> lacks "alt" attribute
line 553 column 63 - Warning: <img> lacks "alt" attribute
line 553 column 112 - Warning: <img> lacks "alt" attribute
line 553 column 162 - Warning: <img> lacks "alt" attribute
line 554 column 11 - Warning: <img> lacks "alt" attribute
line 564 column 15 - Warning: <img> lacks "alt" attribute
line 582 column 11 - Warning: <img> lacks "alt" attribute
line 583 column 22 - Warning: <img> lacks "alt" attribute
line 583 column 63 - Warning: <img> lacks "alt" attribute
line 583 column 112 - Warning: <img> lacks "alt" attribute
line 583 column 162 - Warning: <img> lacks "alt" attribute
line 584 column 11 - Warning: <img> lacks "alt" attribute
line 594 column 15 - Warning: <img> lacks "alt" attribute
line 611 column 11 - Warning: <img> lacks "alt" attribute
line 612 column 22 - Warning: <img> lacks "alt" attribute
line 612 column 63 - Warning: <img> lacks "alt" attribute
line 612 column 112 - Warning: <img> lacks "alt" attribute
line 612 column 162 - Warning: <img> lacks "alt" attribute
line 613 column 11 - Warning: <img> lacks "alt" attribute
line 623 column 15 - Warning: <img> lacks "alt" attribute
line 714 column 11 - Warning: <img> lacks "alt" attribute
line 715 column 22 - Warning: <img> lacks "alt" attribute
line 715 column 63 - Warning: <img> lacks "alt" attribute
line 715 column 112 - Warning: <img> lacks "alt" attribute
line 715 column 162 - Warning: <img> lacks "alt" attribute
line 716 column 11 - Warning: <img> lacks "alt" attribute
line 726 column 15 - Warning: <img> lacks "alt" attribute
line 748 column 11 - Warning: <img> lacks "alt" attribute
line 749 column 22 - Warning: <img> lacks "alt" attribute
line 749 column 63 - Warning: <img> lacks "alt" attribute
line 749 column 112 - Warning: <img> lacks "alt" attribute
line 749 column 162 - Warning: <img> lacks "alt" attribute
line 750 column 11 - Warning: <img> lacks "alt" attribute
line 760 column 15 - Warning: <img> lacks "alt" attribute
line 784 column 11 - Warning: <img> lacks "alt" attribute
line 785 column 22 - Warning: <img> lacks "alt" attribute
line 785 column 63 - Warning: <img> lacks "alt" attribute
line 785 column 112 - Warning: <img> lacks "alt" attribute
line 785 column 162 - Warning: <img> lacks "alt" attribute
line 786 column 11 - Warning: <img> lacks "alt" attribute
line 796 column 15 - Warning: <img> lacks "alt" attribute
line 805 column 181 - Warning: <img> lacks "alt" attribute
line 866 column 11 - Warning: <img> lacks "alt" attribute
line 867 column 22 - Warning: <img> lacks "alt" attribute
line 867 column 63 - Warning: <img> lacks "alt" attribute
line 867 column 112 - Warning: <img> lacks "alt" attribute
line 867 column 162 - Warning: <img> lacks "alt" attribute
line 868 column 11 - Warning: <img> lacks "alt" attribute
line 878 column 15 - Warning: <img> lacks "alt" attribute
line 1011 column 6242 - Warning: <img> lacks "alt" attribute
line 1021 column 7089 - Warning: <img> lacks "alt" attribute
line 1032 column 11 - Warning: <img> lacks "alt" attribute
line 1033 column 22 - Warning: <img> lacks "alt" attribute
line 1033 column 63 - Warning: <img> lacks "alt" attribute
line 1033 column 112 - Warning: <img> lacks "alt" attribute
line 1033 column 162 - Warning: <img> lacks "alt" attribute
line 1034 column 11 - Warning: <img> lacks "alt" attribute
line 1044 column 15 - Warning: <img> lacks "alt" attribute
line 1104 column 11 - Warning: <img> lacks "alt" attribute
line 1105 column 22 - Warning: <img> lacks "alt" attribute
line 1105 column 63 - Warning: <img> lacks "alt" attribute
line 1105 column 112 - Warning: <img> lacks "alt" attribute
line 1105 column 162 - Warning: <img> lacks "alt" attribute
line 1106 column 11 - Warning: <img> lacks "alt" attribute
line 1116 column 15 - Warning: <img> lacks "alt" attribute
line 1133 column 11 - Warning: <img> lacks "alt" attribute
line 1134 column 22 - Warning: <img> lacks "alt" attribute
line 1134 column 63 - Warning: <img> lacks "alt" attribute
line 1134 column 112 - Warning: <img> lacks "alt" attribute
line 1134 column 162 - Warning: <img> lacks "alt" attribute
line 1135 column 11 - Warning: <img> lacks "alt" attribute
line 1145 column 15 - Warning: <img> lacks "alt" attribute
line 1155 column 704 - Warning: <img> proprietary attribute value "absmiddle"
line 1155 column 704 - Warning: <img> lacks "alt" attribute
line 1182 column 11 - Warning: <img> lacks "alt" attribute
line 1183 column 22 - Warning: <img> lacks "alt" attribute
line 1183 column 63 - Warning: <img> lacks "alt" attribute
line 1183 column 112 - Warning: <img> lacks "alt" attribute
line 1183 column 162 - Warning: <img> lacks "alt" attribute
line 1184 column 11 - Warning: <img> lacks "alt" attribute
line 1194 column 15 - Warning: <img> lacks "alt" attribute
line 1208 column 11 - Warning: <img> lacks "alt" attribute
line 1209 column 22 - Warning: <img> lacks "alt" attribute
line 1209 column 63 - Warning: <img> lacks "alt" attribute
line 1209 column 112 - Warning: <img> lacks "alt" attribute
line 1209 column 162 - Warning: <img> lacks "alt" attribute
line 1210 column 11 - Warning: <img> lacks "alt" attribute
line 1220 column 15 - Warning: <img> lacks "alt" attribute
line 1234 column 11 - Warning: <img> lacks "alt" attribute
line 1235 column 22 - Warning: <img> lacks "alt" attribute
line 1235 column 63 - Warning: <img> lacks "alt" attribute
line 1235 column 112 - Warning: <img> lacks "alt" attribute
line 1235 column 162 - Warning: <img> lacks "alt" attribute
line 1236 column 11 - Warning: <img> lacks "alt" attribute
line 1246 column 15 - Warning: <img> lacks "alt" attribute
line 1271 column 25 - Warning: <img> lacks "alt" attribute
line 1276 column 267 - Warning: <img> lacks "alt" attribute
line 147 column 136 - Warning: trimming empty <font>
line 149 column 269 - Warning: trimming empty <font>
line 1259 column 269 - Warning: trimming empty <font>
line 1261 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 208 column 27 - Warning: <nobr> is not approved by W3C
line 284 column 27 - Warning: <nobr> is not approved by W3C
line 343 column 27 - Warning: <nobr> is not approved by W3C
line 378 column 27 - Warning: <nobr> is not approved by W3C
line 380 column 74 - Warning: <table> proprietary attribute "height"
line 380 column 141 - Warning: <td> proprietary attribute "background"
line 408 column 27 - Warning: <nobr> is not approved by W3C
line 438 column 27 - Warning: <nobr> is not approved by W3C
line 569 column 27 - Warning: <nobr> is not approved by W3C
line 599 column 27 - Warning: <nobr> is not approved by W3C
line 628 column 27 - Warning: <nobr> is not approved by W3C
line 731 column 27 - Warning: <nobr> is not approved by W3C
line 765 column 27 - Warning: <nobr> is not approved by W3C
line 801 column 27 - Warning: <nobr> is not approved by W3C
line 883 column 27 - Warning: <nobr> is not approved by W3C
line 1049 column 27 - Warning: <nobr> is not approved by W3C
line 1121 column 27 - Warning: <nobr> is not approved by W3C
line 1150 column 27 - Warning: <nobr> is not approved by W3C
line 1199 column 27 - Warning: <nobr> is not approved by W3C
line 1225 column 27 - Warning: <nobr> is not approved by W3C
line 1251 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 334 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