BullyWiiHacks
Welcome dear guest! Very Happy

To start posting and being part of the community, you simply need to register an account or log into an existing one.

Be sure to check out disposable e-mail services, in case you prefer using one for this site instead of your legit address: http://10minutemail.com/10MinuteMail/

If you do not wish to register at all, that's fine but there will be more advertisements. :/

You can see and download all content provided for regular members even without an account!

Your contributions will be greatly appreciated though, give it a shot and register today! thumbsup
BullyWiiHacks

Gaming, Modding & Programming

Important reminders:

- Click *HERE* for advanced forum search or check out the text field below on the front page for Google before posting
- NO support via private message (use the forum)
- Write meaningful topic titles
Site Translation
Search
 
 

Display results as :
 


Rechercher Advanced Search

October 2017
MonTueWedThuFriSatSun
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Calendar Calendar

Country Statistics
Free counters!
LaTeX Generator


You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

Reclaimer Shawn

avatar
Code Creator
Alright guys. I noticed on here that there aren't really any good tutorials for RAM Dump coding on here,and since people need to start out on the basics,I figured I'd post a good tutorial. First off,you need a couple of things:
1)HxD
2)RAM Dump For Your Specific Game and Region
3)A Good Grasp On The Common Systems of Code(Float,ASCII,Hexadecimal,Binary,and Decimal) <-Don't even think about coding if you don't know what the decimal system is...

4)A Basic Ability To Follow Instructions(And A Brain)
5)The Basic Codetypes for RAM Dumps(80 and 81)
First off,open your RAM Dump into HxD. Search for something you believe would be a good hack to make.
6)Gecko.NET
7)Modified Wii With Homebrew Channel
8)Ocarina Code Manager
9)Wii SD Card
10)Gecko OS(Wii) Modified Gecko OS(Gamecube)
11) Knowledge Of How To Make .GCT's and put them on your Wii
------------------------------------------------------------
NOTE: I forgot to place this in the post,but a default value is what becomes highlighted in Gecko.NET. It's what our value is originally before any modification.

First off,open your RAM Dump into HxD. Search for something you believe would be a good hack to make. Do a text search.
Uncheck Unicode Characters to be certain.

1)If you find something you believe that could make a good hack,continue moving on. If not,search again for other things or do multiple searches.

2)Go either to the beginning of the word after the one your searching for,or if that doesn't work,try other areas in between.

3)Right click the area on which the new word began. Copy the ending offset for that character.

4)Go To The Search Box Again. Switch it to a Hex Search and paste the offset found last. Now,do a search.

5)If this found something continue on,if not start from the beginning.

6)Right click the highlighted values,and press Select Block. Set the offset length to 8.

7)Assess the codetype we're dealing with. There will be two kinds of ones to deal with 81 and 80. We now proceed to figuring out which one it is. Some full offsets in HxD will either look like this (1XXXXXX or will have 6 or less hexadecimal characters.) For codes that have a 1 for the 7th value,we can declare the code as an 81 codetype. If not,we can fill 0's until we get to the two from values. Make one that 81 at the beginning and another that has 80 on the end. If it's a DVAR and looks like a command,we assume it's a 81 codetype.

8)Open Gecko.NET. It will give you an error,just ignore and continue. Now,go over to MemView and go to the liitle slider that says USB Gecko,switch it to Open Dump. Now,open that same dump you had open in HxD and open it. Now,near the top left hand corner,there will be a box with update beside of it. Paste your offset value into there. Press Update. If it was an existing offset,it would redirect you and show you a highlighted value.

9)Determine type of value being written. (81 Codetypes are DVAR values and 80 Codetypes are Base Game.) 80's normally use ASCII,but sometimes they'll trick you. 81's normally use Boolean,Float,Hexadecimal,and rarely use ASCII.
Let's say your value has actual typed characters in it. We automatically know it's an ASCII value. If it is a code that can be switched off and on,such as a DVAR value,it's Boolean. Boolean is declared true if the value is 01000000 and false if it's 00000000. It's basically a binary being declared off or on. These codes are obvious and easy to point out,but here comes the hard part. Deciding the difference between a Hexadecimal and a Float. Hexadecimals are just Normal numbers in Hex form. They use 16 base digits(0-9 and A-F)
(0=0 1=1 2=2 3=3 4=4 5=5 6=6 7=7 8=8 9=9 A=10 B=11 C=12 D=13 E=14 F=15)
Floats are values that are written in hexadecimal,but are converted to represent decimal values. You'll notice them if they look especially weird. Say 3F266666. I seen this on a DVAR Value that controlled bullet spread to a perk.  Now I know the bullet spread default value definitely doesn't equal 1059481190,which is 3F266666 in hexadecimal,so we assume it's a float. 3F266666=0.65 in Float,which makes since considering the perk decreased the amount of spread. A Hexadecimal is easier to notice. Say we have 60 seconds as a default value before a new round started. We find a value after updating that has 3C as a default and what you found had to do with time. 3C=60 in hex,so we assume the value is hexadecimal.

10)Change the beginning of the offset based on what you were dealing with. If your codetype was 81,change it to 05 and if it was 80,change it to 04. Say our offset in Gecko.NET was 8103845C,we'd say it's really 0503845C and for 8003845C we'd turn that into 0403845C.

11)Turn this into a code. Say we had 0503845C as an offset.
Here's what it would look like as a code:0503845C XXXXXXXX
The X's are what we write to the offset. Offsets are basically a location of a value in the RAM(Random Access Memory)

12) Now,we complete the code. We would now add a terminator on the end. The most commonly used terminator is E0000000 80008000,so we use this.

Here's what our code looks like now:
0503845C XXXXXXXX
E0000000 80008000

13)We now add the specific activator for our game. I don't know what game your using,so I'll just use this:
>>Add Activator<<
0503845C XXXXXXXX
E0000000 80008000

Some games have an online activator,while others don't. Please,find these activators for your game. I'll just use MWR's Activator as an example.

Here's my code now:
2817FE0A YYYYYYYY
0503845C XXXXXXXX
E0000000 80008000

14)Replace the Y's with the value that represents the control you'll be using. You may find button values here: http://www.geckocodes.org/index.php?arsenal=2

I wanted to use Home button,so I'll substitute the Y's for 00008000.

New Code=
2817FE0A 00008000
0503845C XXXXXXXX
E0000000 80008000

15)Now,depending on what type of value was being written,use your value types. You may find a good value converter here:
http://www.geckocodes.org/index.php?arsenal=3

My code value was float,and I want it to be 50%,so I'll set it to 3F000000.

Here's what my code is now:
Perk Spread Modifier For MWR:
2817FE0A 00008000
0503845C 3F000000
E0000000 80008000

16)Now,use Ocarina,turn your codes into a .GCT,and put it in the appropriate folder on your SD Card.

17)Now,use Gecko OS to use your codes in game.
18)Profit!

Before I conclude,I'll break down the code to show you what it does and what the purpose of it is.

Perk Spread Modifier For MWR:
Navigate To Control Values For Game->2817FE0A 00008000<-Execute Upon Button Press
Target Location Of Value->0503845C 3F000000<-Write Value To Offset
E0000000 80008000<-Terminate Code

Alright guys,before I go I hope this is a comprehensive guide that you all can understand. Anyways,If requested,I can make a video over this. Enjoy this tutorial guys!

Bully@WiiPlaza

avatar
 
 
Too long didn't read but nice post man!
It looks good.

Da n00bz can never have enough tutorials Wink


_________________

3 thx on 3/6/2014, 2:47 pm

Modder~kid@BWH

avatar
Mod & Writer
Thanks man this helps a lot   Surprised


_________________

Got BitCoin?:

AndrewHaxalot

avatar
Pretty good tutorial! I like how you think. Smile But why do you have to switch over to Gecko.NET? You know that you can make Dvar codes in HxD without also having to use Gecko.NET? Unless you were showing us how to do it in Gecko.NET. You should try making some non-Dvar codes without a USB Gecko. It's very possible to do, but really tedious and might become annoying very quickly. However, once you know how the RAM works for that game, you can do almost anything with it! Wink

What I usually do is watch YouTube videos of the game, so I can look more closely at different events in the game and I try to figure out what the default value might be. Also, events in a game that happens very close to each other (if you know what I mean) are not too far off from each other in the RAM, so pay very close attention to that! This also helps in finding the right address. Below is an example of what I mean.

http://imgur.com/ISREKsO

Notice that the 00000004 isn't too far off from the actual address that controls the text of "ELIMINATE ENEMY PLAYERS"? If you watched carefully in any match, you'll know that it takes exactly 4 seconds from the time that the message comes on screen until it starts to dissipate. There are about 5 different posible addresses that could be the right address that you want! So, what does this tell you? This obviously has to be the right address! Keep those tips in mind! Wink

Reclaimer Shawn

avatar
Code Creator
Yes,I do know this. I had did it this way because it makes looking at the default value much easier for the person hacking the RAM Dump. One of the crucial steps to this process is assessing the type of value we're dealing with. This makes it much easier on people.

Reclaimer Shawn

avatar
Code Creator
This is especially useful for Floats,since they do not act like normal integer hexes. Floats actually represent a decimal or fraction but in hexadecimal. Perks and even other objects such as airplane speed work like this too. For instance,3F266666=.65

Bully@WiiPlaza

avatar
 
 
Be creative, trying to find non-changing addresses is a good idea since who knows what can be found still. It's usually tedious and even more without a USB Gecko. People search random floats but there's more than that like you said Andrew. It doesn't necessarily say what it is, keep testing. Close to working addresses are often others. Wink


_________________

Sponsored content


View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum