Register - Login
Views: 85677016
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
09-23-17 12:24:41 PM

Jul - SM64 Hacking - Misc. RGB Editor - Edit Objects' Color! New poll - New thread - New reply
Next newer thread | Next older thread
cpuHacka101
Member
Level: 12


Posts: 21/25
EXP: 6155
For next: 1766

Since: 02-02-11
From: La Quinta, California

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 08-22-12 02:30:01 AM (last edited by cpuHacka101 at 08-22-12 11:45:50 PM) Link | Quote
Well, I've made my first program in C#. It allows you to edit the 0x03 commands without finding the address yourself.

Here's a video previewing V1.1:


Download V1.1

If you want any objects added that I missed, or have any questions, please let me know!
ShenoxVII

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


Posts: 84/111
EXP: 58948
For next: 8775

Since: 10-09-10


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 08-22-12 05:53:41 AM Link | Quote
Remember to give out the source, everything in the mario64 hacking community should be open source IMO.

Nice job.
cpuHacka101
Member
Level: 12


Posts: 22/25
EXP: 6155
For next: 1766

Since: 02-02-11
From: La Quinta, California

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 08-22-12 09:44:00 PM (last edited by cpuHacka101 at 08-22-12 11:47:11 PM) Link | Quote
Originally posted by ShenoxVII
Remember to give out the source, everything in the mario64 hacking community should be open source IMO.

Nice job.


The source is relatively simple, I spent most of my time with the layout.
I can offer some of the samples, such as:

The BinaryWriter -


private void button24_Click(object sender, EventArgs e)
{
//This is for the message dialog saying that it patched, even though it may have not
MessageBox.Show("The penguin got new feet!", "Patched!");
//This is where it actually writes bytes to the ROM.
BinaryWriter bw = new BinaryWriter(File.OpenWrite(ofd.FileName));
{

//This is where I tell the code to read from the textboxes, and use the text as a hexadecimal format.
//Feet address
bw.BaseStream.Position = 0x8fe62c;
//first textBox
bw.Write(int.Parse(textBox130.Text, System.Globalization.NumberStyles.HexNumber));
bw.BaseStream.Position = 0x8fe62d;
//Second textBox
bw.Write(int.Parse(textBox131.Text, System.Globalization.NumberStyles.HexNumber));
bw.BaseStream.Position = 0x8fe62e;
//Third textBox
bw.Write(int.Parse(textBox132.Text, System.Globalization.NumberStyles.HexNumber));
}




The textBoxes' Keypress -


private void textBox17_KeyPress(object sender, KeyPressEventArgs e)
{
//Only 1 byte per textbox. (2 integers.)
textBox17.MaxLength = 2;
char c = e.KeyChar;
//Here is a formula to only allow hexadecimal characters/integers
if (c != '\b' && !((c <= 0x66 && c >= 0x61) || (c <= 0x46 && c >= 0x41) || (c >= 0x30 && c <= 0x39) || (c == 0x2c)))
{
e.Handled = true;

}



If you know how to program in C#, this should be pretty easy, as long as you know how to locate 0x03 addresses.
Tamkis
Member
Level: 25


Posts: 21/146
EXP: 79307
For next: 10313

Since: 03-12-12


Since last post: 265 days
Last activity: 8 hours

Posted on 08-23-12 06:03:08 PM Link | Quote
(Ah, so 0x03 cmds create those RGB colors. I was wondering about what generates the colors of objects such as coins, switches, &c.) Nice job on the utility!



If you want any objects added that I missed, or have any questions, please let me know!



I do have a question, or rather, a suggestion. In the next release, why not add to the utility the ability to load 0x03 addresses from an external file, rather than hard code addresses and objects?


And I agree with ShenoxVII, about open sourcing the utility.
ShenoxVII

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


Posts: 87/111
EXP: 58948
For next: 8775

Since: 10-09-10


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 08-23-12 06:13:30 PM Link | Quote
Originally posted by cpuHacka101
Originally posted by ShenoxVII
Remember to give out the source, everything in the mario64 hacking community should be open source IMO.

Nice job.


The source is relatively simple, I spent most of my time with the layout.
I can offer some of the samples, such as:

The BinaryWriter -


private void button24_Click(object sender, EventArgs e)
{
//This is for the message dialog saying that it patched, even though it may have not
MessageBox.Show("The penguin got new feet!", "Patched!");
//This is where it actually writes bytes to the ROM.
BinaryWriter bw = new BinaryWriter(File.OpenWrite(ofd.FileName));
{

//This is where I tell the code to read from the textboxes, and use the text as a hexadecimal format.
//Feet address
bw.BaseStream.Position = 0x8fe62c;
//first textBox
bw.Write(int.Parse(textBox130.Text, System.Globalization.NumberStyles.HexNumber));
bw.BaseStream.Position = 0x8fe62d;
//Second textBox
bw.Write(int.Parse(textBox131.Text, System.Globalization.NumberStyles.HexNumber));
bw.BaseStream.Position = 0x8fe62e;
//Third textBox
bw.Write(int.Parse(textBox132.Text, System.Globalization.NumberStyles.HexNumber));
}




The textBoxes' Keypress -


private void textBox17_KeyPress(object sender, KeyPressEventArgs e)
{
//Only 1 byte per textbox. (2 integers.)
textBox17.MaxLength = 2;
char c = e.KeyChar;
//Here is a formula to only allow hexadecimal characters/integers
if (c != '\b' && !((c <= 0x66 && c >= 0x61) || (c <= 0x46 && c >= 0x41) || (c >= 0x30 && c <= 0x39) || (c == 0x2c)))
{
e.Handled = true;

}



If you know how to program in C#, this should be pretty easy, as long as you know how to locate 0x03 addresses.


C# is .NET lol, It's very simple along with VB.

Anyways thanks for the source, the gameshark patcher I made which was never finished may be a good project for you.
cpuHacka101
Member
Level: 12


Posts: 23/25
EXP: 6155
For next: 1766

Since: 02-02-11
From: La Quinta, California

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 08-24-12 05:28:21 PM (last edited by cpuHacka101 at 08-24-12 05:28:33 PM) Link | Quote
Originally posted by Tamkis
(Ah, so 0x03 cmds create those RGB colors. I was wondering about what generates the colors of objects such as coins, switches, &c.) Nice job on the utility!


I do have a question, or rather, a suggestion. In the next release, why not add to the utility the ability to load 0x03 addresses from an external file, rather than hard code addresses and objects?


And I agree with ShenoxVII, about open sourcing the utility.


I'm not sure what you mean.... Also, it doesn't JUST edit 0x03 commands, it also edits vertex colouring on the coins (In the normals, RR GG BB FF) and for the flames, it edits 0xFB in the display list, which is why I allowed RGBA.
Tamkis
Member
Level: 25


Posts: 22/146
EXP: 79307
For next: 10313

Since: 03-12-12


Since last post: 265 days
Last activity: 8 hours

Posted on 08-25-12 11:37:23 PM Link | Quote
Originally posted by cpuHacka101
Originally posted by Tamkis
(Ah, so 0x03 cmds create those RGB colors. I was wondering about what generates the colors of objects such as coins, switches, &c.) Nice job on the utility!


I do have a question, or rather, a suggestion. In the next release, why not add to the utility the ability to load 0x03 addresses from an external file, rather than hard code addresses and objects?


And I agree with ShenoxVII, about open sourcing the utility.


I'm not sure what you mean.... Also, it doesn't JUST edit 0x03 commands, it also edits vertex colouring on the coins (In the normals, RR GG BB FF) and for the flames, it edits 0xFB in the display list, which is why I allowed RGBA.


Well, I meant add the ability to allow users to load a preset .txt file with descriptions and addresses, for, say, a drop-down selection box, for selecting editable objects (for whatever commands your editor supports). That way you will not have to make a new release every time a new editable object is found in the ROM. Instead, all users would need to do is grab an updated preset file in order to edit newly added objects.

For example:

"Load defintion file: [BUTTON]

[DROP DOWN box for contents from Def file]
VV
| Penguin 0xAddress |
| Canon 0xAddress |
| Some new object |
| Other stuff |
|---------------------|

Color selector (for selection in Drop down)

[Red: VALUE]
[Green: VALUE]
[Blue: VALUE]"

[PATCH! Button]

Or better yet, add to the utility the ability to search the ROM for whatever commands your utility supports, for power users. Whichever you feel is better and easier to code. It's your program.



LamarreAAJM
Hello, this forum "Jul" are for girls only, not boys.
Level: 14


Posts: 7/39
EXP: 10364
For next: 2707

Since: 10-08-12
From: United States

Since last post: 4.0 years
Last activity: 4.0 years

Posted on 11-13-12 04:32:36 PM (last edited by LamarreAAJM at 11-13-12 04:34:21 PM) Link | Quote
We just need Toad's Tool and Super Mario 64 (U) [!].ext.z64 (an extended ROM) to use it. It is very easy, simple, and fun!
Cajetan
Member
Level: 20


Posts: 44/86
EXP: 37744
For next: 4695

Since: 08-06-11
From: Binary

Since last post: 2.0 years
Last activity: 333 days

Posted on 11-14-12 10:05:53 AM (last edited by Cajetan at 11-14-12 11:46:37 AM) Link | Quote
Originally posted by LamarreAAJM
We just need Toad's Tool and Super Mario 64 (U) [!].ext.z64 (an extended ROM) to use it. It is very easy, simple, and fun!


Toad's tool 64 can't change the color of an object, genius. It is able to change the "texture" of the objects... Like eyes of the penguin... But not the color itself.
LamarreAAJM
Hello, this forum "Jul" are for girls only, not boys.
Level: 14


Posts: 16/39
EXP: 10364
For next: 2707

Since: 10-08-12
From: United States

Since last post: 4.0 years
Last activity: 4.0 years

Posted on 11-18-12 10:24:20 AM Link | Quote
Cajetan, you can change objects' colors of coins, blocks, flames, etc. by downloading RGB Editor.
Makala2080
Hello, LamarreAAJM. Goodbye, LamarreAAJM.
Level: 10


Posts: 1/20
EXP: 3750
For next: 664

Since: 11-29-12


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 11-29-12 08:34:34 PM Link | Quote
All objects' colors are cool!
Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 182


Posts: 11790/12211
EXP: 82468017
For next: 436618

Since: 07-03-07
From: 52-2-88-7

Since last post: 2.0 years
Last activity: 2.0 years

Posted on 11-30-12 03:04:23 AM Link | Quote
I'm gonna delete any more nonsensical, meaningless one-line posts in here, since it seems that's what people do in here. So please, don't do that, because that is dumb.
Next newer thread | Next older thread
Jul - SM64 Hacking - Misc. RGB Editor - Edit Objects' Color! New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

28 database queries, 3 query cache hits.
Query execution time: 0.133869 seconds
Script execution time: 0.017994 seconds
Total render time: 0.151863 seconds