Register - Login
Views: 99798374
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 06:07:08 AM
Jul - Posts by cpuHacka101
Pages: 1 2
cpuHacka101
Member
Level: 13


Posts: 22/25
EXP: 8011
For next: 2256

Since: 02-02-11

From: La Quinta, California

Since last post: 9.4 years
Last activity: 7.8 years

Posted on 08-23-12 12:44:00 AM, in Misc. RGB Editor - Edit Objects' Color! (last edited by cpuHacka101 at 08-23-12 02:47:11 AM) Link
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.
cpuHacka101
Member
Level: 13


Posts: 23/25
EXP: 8011
For next: 2256

Since: 02-02-11

From: La Quinta, California

Since last post: 9.4 years
Last activity: 7.8 years

Posted on 08-24-12 08:28:21 PM, in Misc. RGB Editor - Edit Objects' Color! (last edited by cpuHacka101 at 08-24-12 08:28:33 PM) Link
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.
cpuHacka101
Member
Level: 13


Posts: 24/25
EXP: 8011
For next: 2256

Since: 02-02-11

From: La Quinta, California

Since last post: 9.4 years
Last activity: 7.8 years

Posted on 11-11-12 06:56:36 PM, in Multi-Room levels hacking (last edited by cpuHacka101 at 11-11-12 06:59:26 PM) Link
I'm guessing this is where I should post this... I got multiple areas to load, after importing a level with messiaen's obj importer. I can't explain everything I did, because I mainly copied parts of the old level script of Jolly Roger Bay. Although, I can give you my new level script. This was for a level imported over Jolly Roger Bay:


002ABCA0 / 15000000 [ 17 0C 00 04 03 0F 00 00 03 12 91 A0 ] - Yes, I repointed bank 0x04 and expanded it

002ABCAC / 1500000C [ 17 0C 00 03 00 AB 24 0C 00 AE 57 14 ]
002ABCB8 / 15000018 [ 17 0C 00 17 00 12 79 B0 00 12 A7 E0 ]
002ABCC4 / 15000024 [ 17 0C 00 16 00 21 8D A0 00 21 9E 00 ]
002ABCD0 / 15000030 [ 17 0C 00 13 03 0A 00 00 03 0C 00 00 ] - I expanded bank 0x13 for behaviors
002ABCDC / 1500003C [ 1D 04 00 00 ]
002ABCE0 / 15000040 [ 22 08 00 01 17 00 2D D4 ]
002ABCE8 / 15000048 [ 22 08 00 96 17 00 00 38 ]
002ABCF0 / 15000050 [ 22 08 00 95 17 00 01 BC ]
002ABCF8 / 15000058 [ 22 08 00 A8 17 00 00 00 ]
002ABD00 / 15000060 [ 22 08 00 A5 17 00 00 9C ]
002ABD08 / 15000068 [ 22 08 00 A6 17 00 01 24 ]
002ABD10 / 15000070 [ 22 08 00 A7 17 00 02 30 ]
002ABD18 / 15000078 [ 22 08 00 A3 17 00 01 68 ]
002ABD20 / 15000080 [ 22 08 00 74 16 00 01 3C ]
002ABD28 / 15000088 [ 22 08 00 7A 16 00 0E A0 ]
002ABD30 / 15000090 [ 22 08 00 79 16 00 0F 6C ]
002ABD38 / 15000098 [ 22 08 00 7C 16 00 0F B4 ]
002ABD40 / 150000A0 [ 21 08 40 A4 04 03 2A 18 ]
002ABD48 / 150000A8 [ 22 08 00 90 16 00 0B 2C ]
002ABD50 / 150000B0 [ 22 08 00 91 16 00 0B 8C ]
002ABD58 / 150000B8 [ 22 08 00 94 17 00 00 84 ]
002ABD60 / 150000C0 [ 22 08 00 A2 16 00 0C 8C ]
002ABD68 / 150000C8 [ 22 08 00 AA 17 00 00 1C ]
002ABD70 / 150000D0 [ 22 08 00 B9 16 00 0C 44 ]
002ABD78 / 150000D8 [ 22 08 00 BA 16 00 0B EC ]
002ABD80 / 150000E0 [ 22 08 00 8F 17 00 02 84 ]
002ABD88 / 150000E8 [ 21 08 40 9F 03 02 BC D0 ]
002ABD90 / 150000F0 [ 22 08 00 BB 16 00 00 A8 ]
002ABD98 / 150000F8 [ 22 08 00 9C 17 00 00 84 ]
002ABDA0 / 15000100 [ 21 08 40 A1 03 01 CB 00 ]
002ABDA8 / 15000108 [ 22 08 00 8E 16 00 00 00 ]
002ABDB0 / 15000110 [ 22 08 00 E0 16 00 00 20 ]
002ABDB8 / 15000118 [ 21 08 40 9E 03 02 C8 A0 ]
002ABDC0 / 15000120 [ 22 08 00 A0 16 00 0F 98 ]
002ABDC8 / 15000128 [ 22 08 00 75 16 00 01 A0 ]
002ABDD0 / 15000130 [ 22 08 00 76 16 00 02 00 ]
002ABDD8 / 15000138 [ 22 08 00 77 16 00 02 64 ]
002ABDE0 / 15000140 [ 22 08 00 85 16 00 0D A8 ]
002ABDE8 / 15000148 [ 22 08 00 86 16 00 0C F0 ]
002ABDF0 / 15000150 [ 22 08 00 87 16 00 0D 3C ]
002ABDF8 / 15000158 [ 22 08 00 88 16 00 0C A4 ]
002ABE00 / 15000160 [ 22 08 00 88 16 00 0C A4 ]
002ABE08 / 15000168 [ 22 08 00 C8 16 00 0A B0 ]
002ABE10 / 15000170 [ 22 08 00 CC 16 00 0A 84 ]
002ABE18 / 15000178 [ 22 08 00 CB 16 00 0B 10 ]
002ABE20 / 15000180 [ 22 08 00 D4 16 00 0E 84 ]
002ABE28 / 15000188 [ 22 08 00 D7 16 00 02 C4 ]
002ABE30 / 15000190 [ 22 08 00 D8 16 00 03 28 ]
002ABE38 / 15000198 [ 22 08 00 DB 16 00 0E 14 ]
002ABE40 / 150001A0 [ 22 08 00 CD 16 00 00 40 ]
002ABE48 / 150001A8 [ 22 08 00 8A 16 00 0E D4 ]
002ABE50 / 150001B0 [ 22 08 00 8B 16 00 0F 24 ]
002ABE58 / 150001B8 [ 1E 04 00 00 ]
002ABE5C / 150001BC [ 11 08 00 00 80 24 BD 5C ]
002ABE64 / 150001C4 [ 0A 04 00 00 ]
002ABE68 / 150001C8 [ 00 10 00 14 00 2A 61 20 00 2A 65 B0 14 00 01 18 ]
002ABE78 / 150001D8 [ 06 08 00 00 15 00 02 78 ]
002ABF18 / 15000278 [ 3C 04 01 03 ]
002ABF1C / 1500027C [ 0C 0C 02 00 00 00 00 04 15 00 03 F4 ]
002ABF28 / 15000288 [ 0C 0C 02 00 00 00 00 05 15 00 04 08 ]
002ABF34 / 15000294 [ 0C 0C 02 00 00 00 00 06 15 00 04 1C ]
002ABF40 / 150002A0 [ 0C 0C 02 00 00 00 00 07 15 00 04 30 ]
002ABF4C / 150002AC [ 0C 0C 02 00 00 00 00 08 15 00 04 44 ]
002ABF58 / 150002B8 [ 0C 0C 02 00 00 00 00 09 15 00 04 58 ]
002ABF64 / 150002C4 [ 0C 0C 02 00 00 00 00 0A 15 00 04 6C ]
002ABF70 / 150002D0 [ 0C 0C 02 00 00 00 00 0B 15 00 04 80 ]
002ABF7C / 150002DC [ 0C 0C 02 00 00 00 00 0C 15 00 04 94 ]
002AC134 / 15000494 [ 00 10 00 19 01 90 00 00 01 90 20 00 19 00 00 1C ]
0190001C / 1900001C [ 1B 04 00 00 ]
01900020 / 19000020 [ 17 0C 03 12 00 42 3B 20 00 42 46 D0 ]
0190002C / 1900002C [ 17 0C 01 07 00 F4 28 09 00 F5 3B B5 ]
01900038 / 19000038 [ 17 0C 00 0B 00 DA 27 85 00 DA 95 1D ]
01900044 / 19000044 [ 17 0C 01 0E 01 91 00 00 01 9F 57 88 ]
01900050 / 19000050 [ 1A 0C 00 09 00 CE 83 D1 00 CF 64 E5 ]
0190005C / 1900005C [ 17 0C 00 0A 00 B8 59 95 00 B9 A2 D5 ]
01900068 / 19000068 [ 17 0C 01 05 00 96 02 04 00 97 70 C4 ]
01900074 / 19000074 [ 17 0C 00 0C 03 05 00 00 03 0A 00 00 ] - I expanded bank 0x0C
01900080 / 19000080 [ 17 0C 01 06 00 9E 9F D4 00 A0 19 34 ]
0190008C / 1900008C [ 17 0C 00 0D 00 1D 7C 90 00 1D 83 10 ]
01900098 / 19000098 [ 17 0C 00 08 00 A8 18 1C 00 AA A4 0C ]
019000A4 / 190000A4 [ 17 0C 00 0F 00 20 08 D0 00 20 14 10 ]
019000B0 / 190000B0 [ 1D 04 00 00 ]
019000B4 / 190000B4 [ 25 0C 00 01 00 00 00 01 13 00 2E C0 ]
019000C0 / 190000C0 [ 06 08 00 00 15 00 06 60 ]
002AC300 / 15000660 [ 22 08 00 8C 0F 00 00 00 ]
002AC308 / 15000668 [ 22 08 00 C2 0F 00 00 28 ]
002AC310 / 15000670 [ 22 08 00 CF 0F 00 04 CC ]
002AC318 / 15000678 [ 22 08 00 CA 0F 00 04 E4 ]
002AC320 / 15000680 [ 22 08 00 81 0F 00 05 D0 ]
002AC328 / 15000688 [ 22 08 00 82 0F 00 06 10 ]
002AC330 / 15000690 [ 22 08 00 83 0F 00 0A 58 ]
002AC338 / 15000698 [ 22 08 00 89 0F 00 06 94 ]
002AC340 / 150006A0 [ 22 08 00 C0 0F 00 06 E4 ]
002AC348 / 150006A8 [ 21 08 40 84 08 02 5F 08 ]
002AC350 / 150006B0 [ 22 08 00 BE 0F 00 0A B0 ]
002AC358 / 150006B8 [ 22 08 00 D9 0F 00 0A 30 ]
002AC360 / 150006C0 [ 21 08 10 DA 08 02 4B B8 ]
002AC368 / 150006C8 [ 22 08 00 BC 0F 00 07 B8 ]
002AC370 / 150006D0 [ 22 08 00 C3 0F 00 08 F4 ]
002AC378 / 150006D8 [ 21 08 10 C9 08 00 48 E0 ]
002AC380 / 150006E0 [ 22 08 00 B4 0F 00 06 40 ]
002AC388 / 150006E8 [ 22 08 00 7F 0F 00 01 C0 ]
002AC390 / 150006F0 [ 22 08 00 80 0F 00 01 A8 ]
002AC398 / 150006F8 [ 22 08 00 78 0F 00 04 FC ]
002AC3A0 / 15000700 [ 22 08 00 DC 0F 00 05 18 ]
002AC3A8 / 15000708 [ 22 08 00 DF 0F 00 01 D8 ]
002AC3B0 / 15000710 [ 22 08 00 E1 0F 00 06 6C ]
002AC3B8 / 19000718 [ 07 04 00 00 ]
019000C8 / 190000C8 [ 06 08 00 00 15 00 08 A4 ]
002AC544 / 150008A4 [ 22 08 00 54 0C 00 01 BC ]
002AC54C / 150008AC [ 22 08 00 55 0C 00 02 90 ]
002AC554 / 150008B4 [ 22 08 00 56 0C 00 03 28 ]
002AC55C / 150008BC [ 22 08 00 57 0C 00 00 30 ]
002AC564 / 150008C4 [ 22 08 00 58 05 00 C7 78 ]
002AC56C / 150008CC [ 22 08 00 59 0C 00 00 00 ]
002AC574 / 190008D4 [ 07 04 00 00 ]
019000D0 / 190000D0 [ 06 08 00 00 15 00 09 58 ]
002AC5F8 / 15000958 [ 22 08 00 64 0D 00 03 58 ]
002AC600 / 15000960 [ 22 08 00 67 0D 00 04 80 ]
002AC608 / 15000968 [ 22 08 00 68 0D 00 02 14 ]
002AC610 / 15000970 [ 22 08 00 BF 0D 00 00 D0 ]
002AC618 / 15000978 [ 22 08 00 65 0D 00 05 D0 ]
002AC620 / 15000980 [ 22 08 00 66 0D 00 05 EC ]
002AC628 / 15000988 [ 22 08 00 6A 0D 00 00 00 ]
002AC630 / 15000990 [ 22 08 00 6B 0D 00 00 B8 ]
002AC638 / 19000998 [ 07 04 00 00 ]
019000D8 / 190000D8 [ 22 08 00 35 12 00 09 78 ] - Many Geo layouts, some that I loaded
019000E0 / 190000E0 [ 22 08 00 36 12 00 09 B0 ]
019000E8 / 190000E8 [ 22 08 00 37 12 00 09 E8 ]
019000F0 / 190000F0 [ 22 08 00 2F 12 00 0A 00 ]
019000F8 / 190000F8 [ 22 08 00 39 12 00 09 90 ]
01900100 / 19000100 [ 22 08 00 3A 12 00 09 C8 ]
01900108 / 19000108 [ 22 08 00 3B 12 00 09 30 ]
01900110 / 19000110 [ 22 08 00 3C 12 00 09 60 ]
01900118 / 19000118 [ 22 08 00 3D 12 00 09 00 ]
01900120 / 19000120 [ 22 08 00 3E 12 00 09 18 ]
01900128 / 19000128 [ 22 08 00 3F 12 00 09 48 ]
01900130 / 19000130 [ 22 08 00 16 16 00 03 88 ]
01900138 / 19000138 [ 22 08 00 17 16 00 0F E8 ]
01900140 / 19000140 [ 22 08 00 18 16 00 10 00 ]
01900148 / 19000148 [ 22 08 00 19 16 00 10 18 ]
01900150 / 19000150 [ 22 08 00 1F 16 00 05 F8 ]
01900158 / 19000158 [ 22 08 00 20 16 00 06 8C ]
01900160 / 19000160 [ 22 08 00 22 16 00 07 B4 ]
01900168 / 19000168 [ 22 08 00 23 16 00 08 68 ]
01900170 / 19000170 [ 22 08 00 24 16 00 09 1C ]
01900178 / 19000178 [ 22 08 00 25 16 00 09 D0 ]
01900180 / 19000180 [ 22 08 00 26 16 00 03 A8 ]
01900188 / 19000188 [ 22 08 00 27 0C 00 1F 70 ]
01900190 / 19000190 [ 22 08 00 28 0C 00 33 A0 ]
01900198 / 19000198 [ 22 08 00 29 0C 00 43 10 ]
019001A0 / 190001A0 [ 22 08 00 C1 0C 00 53 50 ]
019001A8 / 190001A8 [ 22 08 00 30 0C 00 70 50 ]
019001B0 / 190001B0 [ 22 08 00 2A 04 03 88 B0 ]
019001B8 / 190001B8 [ 22 08 00 2B 0C 00 94 C0 ]
019001C0 / 190001C0 [ 22 08 00 2C 0C 00 C7 B0 ]
019001C8 / 190001C8 [ 22 08 00 2D 0C 00 CE 50 ]
019001D0 / 190001D0 [ 22 08 00 2E 0C 00 D0 F0 ]
019001D8 / 190001D8 [ 22 08 00 38 0C 00 DC 10 ]
019001E0 / 190001E0 [ 10 08 00 00 00 00 00 00 ]
019001E8 / 190001E8 [ 10 08 00 00 00 00 00 00 ]
019001F0 / 190001F0 [ 10 08 00 00 00 00 00 00 ]
019001F8 / 190001F8 [ 10 08 00 00 00 00 00 00 ]
01900200 / 19000200 [ 10 08 00 00 00 00 00 00 ]
01900208 / 19000208 [ 10 08 00 00 00 00 00 00 ]
01900210 / 19000210 [ 10 08 00 00 00 00 00 00 ]
01900218 / 19000218 [ 10 08 00 00 00 00 00 00 ]
01900220 / 19000220 [ 10 08 00 00 00 00 00 00 ]
01900228 / 19000228 [ 10 08 00 00 00 00 00 00 ]
01900230 / 19000230 [ 10 08 00 00 00 00 00 00 ]
01900238 / 19000238 [ 10 08 00 00 00 00 00 00 ]
01900240 / 19000240 [ 10 08 00 00 00 00 00 00 ]
01900248 / 19000248 [ 10 08 00 00 00 00 00 00 ]
01900250 / 19000250 [ 10 08 00 00 00 00 00 00 ]
01900258 / 19000258 [ 10 08 00 00 00 00 00 00 ]
01900260 / 19000260 [ 10 08 00 00 00 00 00 00 ]
01900268 / 19000268 [ 1F 08 01 00 19 00 17 00 ] - Geo layout for first area, followed by 0x24 objects

[Here is where all of the 0x24 objects would be]

019010F8 / 190010F8 [ 26 08 0A 09 01 0A 00 00 ]
01901100 / 19001100 [ 26 08 0B 09 01 0C 00 00 ]
01901108 / 19001108 [ 26 08 0C 09 01 0B 00 00 ]
01901110 / 19001110 [ 26 08 0D 0C 01 0E 00 00 ]
01901118 / 19001118 [ 26 08 0E 0C 01 0D 00 00 ]
01901120 / 19001120 [ 26 08 F0 06 01 32 00 00 ]
01901128 / 19001128 [ 26 08 F1 06 01 64 00 00 ]
01901130 / 19001130 [ 26 08 00 0C 02 0A 00 00 ]
01901138 / 19001138 [ 26 08 01 09 01 0A 00 00 ]
01901140 / 19001140 [ 26 08 02 09 01 0A 00 00 ]
01901148 / 19001148 [ 26 08 03 09 01 0A 00 00 ]
01901150 / 19001150 [ 26 08 04 09 01 0A 00 00 ]
01901158 / 19001158 [ 26 08 05 09 01 0A 00 00 ]
01901160 / 19001160 [ 26 08 06 09 01 0A 00 00 ]
01901168 / 19001168 [ 2E 08 00 00 0E 01 31 C0 ] - Collision for first area
01901170 / 19001170 [ 10 08 00 00 00 00 00 00 ]
01901178 / 19001178 [ 36 08 00 03 00 05 00 00 ]
01901180 / 19001180 [ 31 04 00 03 ]
01901184 / 19001184 [ 20 04 00 00 ]
01901188 / 19001188 [ 1F 08 02 00 19 00 17 00 ] - Geo layout for second area (I just loaded the same for now) which is followed
by the area 2 objects I inserted

[More 0x24 objects should be here]

019014A8 / 190014A8 [ 26 08 0A 0C 01 0A 00 00 ]
019014B0 / 190014B0 [ 26 08 F0 06 01 35 00 00 ]
019014B8 / 190014B8 [ 26 08 F1 06 01 67 00 00 ]
019014C0 / 190014C0 [ 2E 08 00 00 0E 01 31 C0 ] - Collision for area 2 (Loaded the same)
019014C8 / 190014C8 [ 10 08 00 00 00 00 00 00 ]
019014D0 / 190014D0 [ 36 08 00 03 00 05 00 00 ]
019014D8 / 190014D8 [ 31 04 00 05 ]
019014DC / 190014DC [ 20 04 00 00 ]
019014E0 / 190014E0 [ 1E 04 00 00 ]
019014E4 / 190014E4 [ 11 08 00 00 80 24 BC D8 ]
019014EC / 190014EC [ 12 08 00 01 80 24 BC D8 ]
019014F4 / 190014F4 [ 1C 04 00 00 ]
019014F8 / 190014F8 [ 04 04 00 01 ]
019014FC / 190014FC [ 02 04 00 00 ]



Once I'm done designing area 2, I'll repoint the geo layout
cpuHacka101
Member
Level: 13


Posts: 25/25
EXP: 8011
For next: 2256

Since: 02-02-11

From: La Quinta, California

Since last post: 9.4 years
Last activity: 7.8 years

Posted on 12-09-12 10:14:40 PM, in Post your SM64 mods, patches and screenshots here! (NO ROM LINKS!) (last edited by cpuHacka101 at 12-09-12 10:14:51 PM) Link
<object width="550" height="385"><embed src="http://www.youtube.com/v/QSnWNz0hBRw?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="385"></embed></object>

Level with vertex colouring & transparency, expanded RAM banks, and area 2 loaded. Also the small boat uses an animated geo layout.
Pages: 1 2
Jul - Posts by cpuHacka101


Rusted Logic

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

21 database queries, 7 query cache hits.
Query execution time: 0.076310 seconds
Script execution time: 0.008827 seconds
Total render time: 0.085137 seconds