Register - Login
Views: 99378337
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 10:13:25 PM
Jul - SM64 Hacking (Archive) - SM64 Gameshark Code Patcher++ (v1.3) New poll - New thread - New reply
Next newer thread | Next older thread
Tamkis
Member
Level: 27


Posts: 32/148
EXP: 109435
For next: 6724

Since: 03-12-12


Since last post: 3.2 years
Last activity: 3.1 years

Posted on 04-24-13 04:57:07 AM (last edited by Tamkis at 08-26-15 03:13:53 AM) Link | Quote
SM64 Gameshark Code Patcher++ (v1.4)

Background:

A few years ago, Jul user ShenoxVII created an application which would patch gameshark codes into the SM64 Rom, simply called "SM64 Gameshark Code Patcher". In the thread, he posted the VisualBASIC source code for the application, and stated that he has basically abandoned application developement, waiting for "someone else to make [it] right."



Originally posted by Cajetan

--------------------------------------------------------------------------------
We need a SM64 GS Code patcher, which allows faster patching. It's really annoying having 300 lines GS code, and patching that one for one. A patcher, which could patch all lines at once, that would be great.
--------------------------------------------------------------------------------

ShenoxVII:

Well first off that's very simple lol, You just need to have a Listbox and have the codes listed so you can gather the information needed to patch the rom from each new line. And the method of this isn't even right, It's half right. I threw this project together for someone else to make right.

Good luck bruh




After a few PM's with ShenoxVII asking if I could continue onward with the project, fix the bugs, and add features, he said that I could. Hence this topic and program.


What is this?


This application is a continuation of ShenoxVII's original M64GSP work, completely rewritten, debugged, and with added features. As the name of the application implies, the application allows one to patch Gameshark codes into extended SM64 ROMs. As of v14, the codes that are patchable are codes of type 0x80, 0x81, 0xA0, 0xA1, 0xD0, 0xD1, 0xD2, and 0xD3, and codes whose memory addresses range from 0x800EB180-0x800F083C, and from 0x80246000-0x80333000. Using this application, hackers will be able to make permanent modifications of their SM64 hacks by utilizing the massive amount of SM64 Gameshark codes available on the web. Furthermore, beginners can avoid (more) the dark ages of plowing through the massive 4-8MB rom and dealing with R4300i dissasemblers (such as LemAsm) or hex editors in order to patch Gameshark codes. (However, I still recommend beginners to eventually learn R4300i or how to use a hex editor, since both are invaluable skills.)

As of v14, support has been added in order to patch a GSCI (Gameshark Code Interpreter) into the ROM. The GSCI allows one to patch GS codes into the ROM starting at ROM offset )$0BEA20, and can execute the aforementioned GS code types within any RAM address.

Changelog:

v1.4 07/04/2013:

@Created GSCI support (thanks Kaze!). Supports 234 GS codes
@Removed Tamkis.vb dependency
@Added (beta) ability to patch/undo GSCI
@Added 2 secret easter eggs
@Added more code types
#ROM mode
#0xA0
#0xA1
#GSCI Mode
#0x80
#0x81
#0xA0
#0xA1
#0xD0
#0xD1
#0xD2
#0xD3
@Added Hex/Float<>Dec converter toolbox
@Added more sfx
@Added toggle for sfx, colors, and patch mode
@Bug fixes

5. Credits

Kaze - For single-handedly creating the GSCI!
ShenoxVII - Original creator of this program!
Skelux, VL-Tone, Messiaen, YoshiElectron - For all of their research into SM64 hacking
Jul.rustedlogic

Media and download

M64GSP++ Download (v14, with v1.0 GSCI PPF patch)
Read the readme!

Videos:
M64GSP++
GSCI

Webpage
Cajetan
Member
Level: 22


Posts: 48/88
EXP: 51640
For next: 6710

Since: 08-06-11

From: Binary

Since last post: 345 days
Last activity: 345 days

Posted on 04-27-13 04:33:30 PM (last edited by Cajetan at 04-27-13 07:02:14 PM) Link | Quote
Very nice. I like how it turned out; It's overall looking good, the design and how you made it generally.

I hope you won't care, if I edit the source code for my own behavior. And I won't release the modified version by the way, so I hope you're ok with that.

EDIT:
As expected, the program only supports code range from 0x80246000 to about 0x80333000.
But following code, supports something else:



812CB26C 0C10
812CB26E 0000
812CB278 1000
812CB27A 0040
81400000 27BD
81400002 FFE8
81400004 AFBF
81400006 0014
81400008 AFBE
8140000A 0010
8140000C 03A0
8140000E F021
81400010 3C1C
81400012 8040
81400014 279C
81400016 0050
81400018 2404
8140001A 0064
8140001C 2405
8140001E 0096
81400020 3C02
81400022 8040
81400024 0C0B
81400026 59B0
81400028 2446
8140002A 0040
8140002C 03C0
8140002E E821
81400030 8FBF
81400032 0014
81400034 8FBE
81400036 0010
81400038 03E0
8140003A 0008
8140003C 27BD
8140003E 0018
81400040 5761
81400042 6B65
81400044 2075
81400046 702C
81400048 204D
8140004A 6172
8140004C 696F
8140004E 0000



Maybe is there a way to find out the ROM address for it?

Greetings,
Cajetan.

____________________
http://sites.google.com/site/cajetan64/home/coding-in-n64-with-c

- Click there to learn more about C coding and writing your own codes for Super Mario 64.
Joe
Common spammer
🍬
Level: 111


Posts: 2852/3392
EXP: 14488548
For next: 379812

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 2 hours

Posted on 04-27-13 08:21:31 PM Link | Quote
There is no ROM address for it. The RAM addresses from 0x80400000 to 0x807FFFFF are all in the expansion pak, which Super Mario 64 does not use.

____________________
ふにゃあ。
Cajetan
Member
Level: 22


Posts: 49/88
EXP: 51640
For next: 6710

Since: 08-06-11

From: Binary

Since last post: 345 days
Last activity: 345 days

Posted on 04-27-13 08:26:59 PM (last edited by Cajetan at 04-27-13 08:45:47 PM) Link | Quote
Originally posted by Joe
There is no ROM address for it. The RAM addresses from 0x80400000 to 0x807FFFFF are all in the expansion pak, which Super Mario 64 does not use.


Yes, the code works fine when using it on PJ64 GameShark cheats (without patching)
Isn't there any way to get the GameShark code patched into ROM?

____________________
http://sites.google.com/site/cajetan64/home/coding-in-n64-with-c

- Click there to learn more about C coding and writing your own codes for Super Mario 64.
Tamkis
Member
Level: 27


Posts: 35/148
EXP: 109435
For next: 6724

Since: 03-12-12


Since last post: 3.2 years
Last activity: 3.1 years

Posted on 04-28-13 04:10:44 PM Link | Quote


I hope you won't care, if I edit the source code for my own behavior. And I won't release the modified version by the way, so I hope you're ok with that.



Sure, you can modify the source .



EDIT:
As expected, the program only supports code range from 0x80246000 to about 0x80333000.



The program does not support the other range (0x800EB180-0x800F083C)? When testing the program, I was able to patch the code "Mario's Digestion Problems" (where coins come out of Mario)...

Mario's Digestion Problems:
800ED643 0074
810ED646 09A4
Tamkis
Member
Level: 27


Posts: 39/148
EXP: 109435
For next: 6724

Since: 03-12-12


Since last post: 3.2 years
Last activity: 3.1 years

Posted on 07-11-13 06:39:35 PM Link | Quote
M64GSP++ has now been updated to version 1.4! The new version supports more code types, as well as a GSCI (Gameshark Code Interpreter), which is essentially an emulated Gameshark device. See the OP.
Kaze
Member
Level: 18


Posts: 27/63
EXP: 29443
For next: 454

Since: 10-25-12


Since last post: 5.8 years
Last activity: 5.6 years

Posted on 07-16-13 08:31:10 AM (last edited by Kaze at 07-16-13 08:32:50 AM) Link | Quote
Originally posted by Tamkis
This application is a continuation of ShenoxVII's original M64GSP work, completely rewritten, debugged, and with added features. As the name of the application implies, the application allows one to patch Gameshark codes into extended SM64 ROMs. As of v14, the codes that are patchable are codes of type 0x80, 0x81, 0xA0, 0xA1, 0xD0, 0xD1, 0xD2, and 0xD3, and codes whose memory addresses range from 0x800EB180-0x800F083C, and from 0x80246000-0x80333000.


I think you've missunderstood me at one point;
if only these ranged are supported, it should be possible to patch it even to a normal SM64 rom;
i was talking about color codes and other modifications, that are in bank 03 or 04.

17 0C 00 04 00 82 3B 64 00 85 8E DC --Loads Mario's MIO0 data in segment 0x04. (18 0C 00 04 00 11 47 50 00 12 79 B0 in compressed ROM)
17 0C 00 03 00 AB 24 0C 00 AE 57 14 --Loads Shared MIO0 data in segment 0x03. (18 0C 00 03 00 20 14 10 00 21 8D A0 in compressed ROM)

VL tone changed these Instructions, because he needed space in the ROM or something like that.

also, you should be able to easily add these ranges:
17 0C 00 17 00 12 79 B0 00 12 A7 E0 --Loads Mario's Geometry Layout Data in segment 0x17.
17 0C 00 16 00 21 8D A0 00 21 9E 00 --Loads Shared Geometry Layout Data in segment 0x16.

bank offsets are:

0x8007EC20: bank 04
0x800B3FB0: bank 03
0x800E72D0: bank 17
0x800EA110: bank 16

edit: oh wait, i don't know, if i included Lakitu's deactivation into the GSCI.ppf. You may have to change it's behavior to
00 08 00 00
08 00 00 00
09 00 00 00
DamiHack
GO AWAY
Level: 12


Posts: 16/23
EXP: 6893
For next: 1028

Since: 08-14-11


Since last post: 8.7 years
Last activity: 65 days

Posted on 07-16-13 12:14:42 PM (last edited by Metal_Man88 at 07-20-13 12:28:12 AM) Link | Quote
You don't need to extend the ROM. The ROM needs to be extended to decompress it, but Gameshark codes work also on the original SM64's ROM.

Unwarranted advertising deleted -MM88
jambo
Random nobody
Level: 4


Posts: 2/2
EXP: 163
For next: 116

Since: 03-01-13


Since last post: 8.4 years
Last activity: 8.4 years

Posted on 11-26-13 10:39:24 PM Link | Quote
Is there any way to use this with other n64 roms? Or is there a program that exists to do that?
Tamkis
Member
Level: 27


Posts: 126/148
EXP: 109435
For next: 6724

Since: 03-12-12


Since last post: 3.2 years
Last activity: 3.1 years

Posted on 08-26-15 03:15:36 AM Link | Quote
Overcame previous moral/professional dilemna a few months ago of whether I should keep my ROM hacking utilities on my personal/professional portfolio website, and have decided to permanently keep this and other ROM hacking utilities, since it could only help in the job search. The DL links and video in the OP are now fixed and pointed to my newer website.

Enjoy!
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - SM64 Gameshark Code Patcher++ (v1.3) New poll - New thread - New reply


Rusted Logic

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

32 database queries, 4 query cache hits.
Query execution time:  0.081412 seconds
Script execution time:  0.016909 seconds
Total render time:  0.098321 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 285 - Warning: unescaped & or unknown entity "&page"
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 207 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 91 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 102 - Warning: unescaped & or unknown entity "&postid"
line 255 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 257 column 9 - Warning: missing <tr>
line 275 column 13 - Warning: missing <tr>
line 276 column 102 - Warning: unescaped & or unknown entity "&postid"
line 339 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 341 column 9 - Warning: missing <tr>
line 359 column 13 - Warning: missing <tr>
line 360 column 102 - Warning: unescaped & or unknown entity "&postid"
line 362 column 74 - Warning: <style> isn't allowed in <td> elements
line 362 column 9 - Info: <td> previously mentioned
line 365 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 367 column 9 - Warning: missing <tr>
line 385 column 13 - Warning: missing <tr>
line 386 column 102 - Warning: unescaped & or unknown entity "&postid"
line 396 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 398 column 9 - Warning: missing <tr>
line 416 column 13 - Warning: missing <tr>
line 417 column 102 - Warning: unescaped & or unknown entity "&postid"
line 437 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 439 column 9 - Warning: missing <tr>
line 457 column 13 - Warning: missing <tr>
line 458 column 102 - Warning: unescaped & or unknown entity "&postid"
line 463 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 465 column 9 - Warning: missing <tr>
line 483 column 13 - Warning: missing <tr>
line 484 column 102 - Warning: unescaped & or unknown entity "&postid"
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 535 column 102 - Warning: unescaped & or unknown entity "&postid"
line 542 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 544 column 9 - Warning: missing <tr>
line 562 column 13 - Warning: missing <tr>
line 563 column 102 - Warning: unescaped & or unknown entity "&postid"
line 568 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 570 column 9 - Warning: missing <tr>
line 588 column 13 - Warning: missing <tr>
line 589 column 102 - Warning: unescaped & or unknown entity "&postid"
line 597 column 17 - Warning: missing <tr>
line 597 column 17 - Warning: discarding unexpected <table>
line 600 column 35 - Warning: missing <tr>
line 600 column 50 - Warning: missing </font> before </td>
line 600 column 91 - Warning: missing </font> before </table>
line 602 column 35 - Warning: missing <tr>
line 602 column 50 - Warning: missing </font> before </td>
line 603 column 37 - Warning: unescaped & or unknown entity "&id"
line 602 column 207 - Warning: missing </font> before </table>
line 604 column 17 - Warning: discarding unexpected </textarea>
line 604 column 28 - Warning: discarding unexpected </form>
line 604 column 35 - Warning: discarding unexpected </embed>
line 604 column 43 - Warning: discarding unexpected </noembed>
line 604 column 53 - Warning: discarding unexpected </noscript>
line 604 column 64 - Warning: discarding unexpected </noembed>
line 604 column 74 - Warning: discarding unexpected </embed>
line 604 column 82 - Warning: discarding unexpected </table>
line 604 column 90 - Warning: discarding unexpected </table>
line 606 column 9 - Warning: missing </font> before <table>
line 618 column 25 - Warning: discarding unexpected </font>
line 627 column 57 - Warning: discarding unexpected </font>
line 605 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 232 column 3443 - Warning: <img> proprietary attribute value "absmiddle"
line 232 column 3443 - Warning: <img> lacks "alt" attribute
line 260 column 22 - Warning: <img> lacks "alt" attribute
line 260 column 63 - Warning: <img> lacks "alt" attribute
line 260 column 112 - Warning: <img> lacks "alt" attribute
line 260 column 162 - Warning: <img> lacks "alt" attribute
line 261 column 11 - Warning: <img> lacks "alt" attribute
line 271 column 15 - Warning: <img> lacks "alt" attribute
line 275 column 92 - Warning: <font> attribute "color" had invalid value "97ACEF" and has been replaced
line 344 column 23 - Warning: <img> lacks "alt" attribute
line 344 column 64 - Warning: <img> lacks "alt" attribute
line 344 column 113 - Warning: <img> lacks "alt" attribute
line 344 column 163 - Warning: <img> lacks "alt" attribute
line 345 column 11 - Warning: <img> lacks "alt" attribute
line 355 column 15 - Warning: <img> lacks "alt" attribute
line 370 column 22 - Warning: <img> lacks "alt" attribute
line 370 column 63 - Warning: <img> lacks "alt" attribute
line 370 column 112 - Warning: <img> lacks "alt" attribute
line 370 column 162 - Warning: <img> lacks "alt" attribute
line 371 column 11 - Warning: <img> lacks "alt" attribute
line 381 column 15 - Warning: <img> lacks "alt" attribute
line 385 column 92 - Warning: <font> attribute "color" had invalid value "97ACEF" and has been replaced
line 401 column 22 - Warning: <img> lacks "alt" attribute
line 401 column 63 - Warning: <img> lacks "alt" attribute
line 401 column 112 - Warning: <img> lacks "alt" attribute
line 401 column 162 - Warning: <img> lacks "alt" attribute
line 412 column 15 - Warning: <img> lacks "alt" attribute
line 423 column 309 - Warning: <img> proprietary attribute value "absmiddle"
line 423 column 309 - Warning: <img> lacks "alt" attribute
line 442 column 22 - Warning: <img> lacks "alt" attribute
line 442 column 63 - Warning: <img> lacks "alt" attribute
line 442 column 112 - Warning: <img> lacks "alt" attribute
line 442 column 162 - Warning: <img> lacks "alt" attribute
line 453 column 15 - Warning: <img> lacks "alt" attribute
line 468 column 22 - Warning: <img> lacks "alt" attribute
line 468 column 63 - Warning: <img> lacks "alt" attribute
line 468 column 112 - Warning: <img> lacks "alt" attribute
line 468 column 161 - Warning: <img> lacks "alt" attribute
line 479 column 15 - Warning: <img> lacks "alt" attribute
line 483 column 92 - Warning: <font> attribute "color" had invalid value "7C60B0" and has been replaced
line 519 column 22 - Warning: <img> lacks "alt" attribute
line 519 column 63 - Warning: <img> lacks "alt" attribute
line 519 column 112 - Warning: <img> lacks "alt" attribute
line 519 column 162 - Warning: <img> lacks "alt" attribute
line 520 column 11 - Warning: <img> lacks "alt" attribute
line 530 column 15 - Warning: <img> lacks "alt" attribute
line 534 column 89 - Warning: <font> attribute "color" had invalid value "ffffff" and has been replaced
line 547 column 21 - Warning: <img> lacks "alt" attribute
line 547 column 62 - Warning: <img> lacks "alt" attribute
line 547 column 111 - Warning: <img> lacks "alt" attribute
line 547 column 161 - Warning: <img> lacks "alt" attribute
line 558 column 15 - Warning: <img> lacks "alt" attribute
line 573 column 22 - Warning: <img> lacks "alt" attribute
line 573 column 63 - Warning: <img> lacks "alt" attribute
line 573 column 112 - Warning: <img> lacks "alt" attribute
line 573 column 162 - Warning: <img> lacks "alt" attribute
line 584 column 15 - Warning: <img> lacks "alt" attribute
line 603 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 603 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 603 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 612 column 25 - Warning: <img> lacks "alt" attribute
line 617 column 267 - Warning: <img> lacks "alt" attribute
line 149 column 50 - Warning: trimming empty <font>
line 597 column 17 - Warning: trimming empty <tr>
line 600 column 50 - 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 276 column 27 - Warning: <nobr> is not approved by W3C
line 360 column 27 - Warning: <nobr> is not approved by W3C
line 386 column 27 - Warning: <nobr> is not approved by W3C
line 417 column 27 - Warning: <nobr> is not approved by W3C
line 458 column 27 - Warning: <nobr> is not approved by W3C
line 484 column 27 - Warning: <nobr> is not approved by W3C
line 535 column 27 - Warning: <nobr> is not approved by W3C
line 563 column 27 - Warning: <nobr> is not approved by W3C
line 589 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 168 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