BullyWiiHacks
Welcome dear guest! Very Happy

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

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

You can probably see and download most content provided for regular members even without an account.

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

Join the forum, it's quick and easy

BullyWiiHacks
Welcome dear guest! Very Happy

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

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

You can probably see and download most 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
Would you like to react to this message? Create an account in a few clicks or log in to continue.
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
Latest topics
» Metal Gear Solid V The Phantom Pain X Flashpoint Batman Gameplay unedited [Seth@WiiPlaza]
Porting Wii Codes Empty9/23/2024, 12:48 pm by Seth@WiiPlaza

» USB Gecko problems with some games
Porting Wii Codes Empty8/18/2024, 10:41 am by Mac11ngAround

» Dropped Out of College to Pursue Web Dev and Life Pursuits in General
Porting Wii Codes Empty8/9/2024, 7:09 am by SnB@BWH

» Lego Stars Wars: The Complete Saga [RLGE64]
Porting Wii Codes Empty8/1/2024, 2:04 am by Whatever_1240

» ASM <> Gecko Code Converter
Porting Wii Codes Empty7/29/2024, 11:15 am by Mac11ngAround

» German With a Jackhammer
Porting Wii Codes Empty7/28/2024, 3:42 pm by SnB@BWH

» Wii RAM Hacking: Pointers and ASM
Porting Wii Codes Empty7/23/2024, 1:54 pm by Mac11ngAround

» IBM AIX Assembler Programming Reference - Useful For PPC ASM
Porting Wii Codes Empty7/21/2024, 5:00 pm by Mac11ngAround

» Note to Inactive New Members
Porting Wii Codes Empty7/14/2024, 4:50 am by Mac11ngAround

» JMaster Duel Bot: A Yu-Gi-Oh! Master Duel Bot and Trainer for Steam
Porting Wii Codes Empty7/13/2024, 11:18 am by Bully@WiiPlaza

Search
 
 

Display results as :
 


Rechercher Advanced Search

October 2024
MonTueWedThuFriSatSun
 123456
78910111213
14151617181920
21222324252627
28293031   

Calendar Calendar

Country Statistics
Free counters!

You are not connected. Please login or register

Porting Wii Codes

2 posters

Go down  Message [Page 1 of 1]

1Porting Wii Codes Empty Porting Wii Codes 10/7/2014, 4:31 pm

SnB@BWH

SnB@BWH
Admin & Writer

Tutorial version: 20141013

For this tutorial we'll be using SC7S52 and SC7E52 MEM80 dumps.

When code porting, the only memory required to port codes is MEM80. MEM90 is used for other, more complicated things, which require a USB Gecko or for pointer codes.

So, head on over to the link below and download the dumps.

http://adf.ly/shkBy

You will also need a program called HxD Hex Editor. A Hex editor is a program that allows you to view the Hexadecimal data of a file and make changes as need be. You won't want to make any changes to a RAM dump though, as it could cause errors and mistakes in your work.

If you don't already have HxD, you can download it from the link below. Extract it to a folder somewhere on your desktop for easy access.

http://adf.ly/shkDc

Once the RAM dumps are done downloading, extract them to a folder called "RAM Dumps" somewhere easy to access, like on your desktop, as mentioned before. Inside that folder, you could even get really organized and download a shit tonne of RAM dumps and have folders that are alphabetized for easy searching. This would be unnecessary though, as there is a search function inside Windows Explorer.

Once you've done all that, it's time to open up the RAM dumps. Remember, you only need to open up the MEM80 dumps. For this tutorial we will be porting a Multiplayer code, so only open up the following RAM dumps.

Note, that when you went to the link to download the RAM dumps, you only saw SC7D52, SC7P52 and SC7S52. PAL (P) and North America (E) both have the same RAM. So, there's no need to download both. As for the other regions, they don't have the same RAM. Only PAL and North America have the same RAM. Although, this only applies to Call of Duty games and a few others.

SC7S52_MP_DUMP80
SC7P52_MP_DUMP80

If you're wondering what the two characters between the underscores mean, refer to below this sentence.

MP = Multiplayer
ZM = Zombies
SP = Single Player

For easier access to opening the dumps next time. Right click the dump and select "Open with..." and find HxD. This will tell Windows that any file with the extension of .bin or .raw it's default application handler is HxD. Now, instead of searching for HxD, just find your RAM dump and double click it to open it in HxD. Saves all the hassle of selecting HxD each and every time.

Once you have the required dumps opened, we'll search for our address that we're going to port. The address is in red. Always for F2 codes, this is where the address will be. The 6 characters after the F2 is the address.

No Health Regeneration [Bully@Wiiplaza]
F251B73C 0283CD01
60000000 00000000

We're going to port this code from SC7E52 to SC7S52.

Now that you know where and what the address is for this code, I want you to copy it and head over to HxD. There, you will open up the Go To box by clicking on Search, then Go To. As you can see, almost every control in HxD has a hotkey assigned to it. This allows for sometimes quicker access to the control. The hotkey for Go To is Ctrl + G.

No matter how you got the Go To box to open, we will now search for the address in the SC7P52_MP_DUMP80 RAM dump. If you have the box opened, but are in the wrong RAM dump, you will have to exit the Go To box and select the tab with the SC7P52 RAM dump, as HxD doesn't allow you to do anything else, but use the Go To box when it is opened.

Now, you will search for the address. Leave the radio buttons as is and paste in the address and click OK or press Enter on your keyboard.

You will see a whole bunch of different numbers and letters. Those numbers and letters are called Hexadecimal or Hex for short. These are important, as you will be needing to study them carefully when porting.

The key here is to find similarities in the RAM dumps to make a match to the correct address.

To do this, you will need to copy some of that Hex and search for it in the other RAM dump. To do this, study it carefully and note the obvious stuff that you can copy, but will make HxD throw a "Can not find..." error. These are usually pointers. A pointer is an address that is listed inside the RAM dump itself. For example, if you're looking through a RAM dump and you come across something like 8124BC98, make sure you don't copy this, as this is a pointer. And since the RAM is different, there will be different pointers and you'll never end up finding the address you're looking for.

Another thing to look out for is garbled up similar to below.

12CD8F69 04A8B24C 982F34EF 8921FC4D

Why should you avoid this? The reason being is because it's too random, it's not unique enough, unlike below. Below is similar to what you should be using to search, if you can.

38600000 2C300001 66FF66FF 41200000

Now what happens if you try copying over 5,000 bytes of data? You're always going to get the error that HxD couldn't find what you were looking for. Perhaps if you copy too little, you will get too many matches. Our goal is to match the data from one RAM dump to another with as little matches as possible. If you know how to do this properly, almost every time, you should end up with only one match.

It's always a good idea to copy the address's value (address + 4 bytes, inclusive from beginning value) as well. Why? The address ALWAYS has the same value as other RAM dumps from the same game. Unless the RAM dump was taken in-game (it shouldn't be), it might have a different value, therefore, making your job a little harder. This is one of the reasons why we dump the RAM at the main menu; when RAM isn't changing the good values that we use to make our codes.

So, anyways copy what you think should be the right amount of bytes to try to match, as well as what bytes to match.

Switch over to the SC7S52 tab and press Ctrl + F or click Search and then Find. Paste into the Search For text box the bytes of data you copied from the SC7P52 RAM dump. Change the Datatype to Hex Values. If you are somewhere else in the RAM dump, change Search Direction to All. If you were following along with every step in this tutorial and not playing around with the RAM dump, you wouldn't have to change the Search Direction to All. But nonetheless, it is always best to search All.

Press Enter on your keyboard or OK on the control box. If it found something, press F3 to have it search through the RAM dump again. If it says it can't find what you were looking for, then this is good! Find the exact value of the address and copy it into the new code's address placeholder.

If it finds something, you need to go back and search for different bytes of data and do the search comparison all over again. Once you found it, congratulations! You ported a code!  Smile

If you think you have the right address, post the code below and you will get credits for it.

If you have any questions or suggestions for this tutorial, please let me know!

Notes:

----------------------------------------------------
Easy To Understand Tutorial With Pictures
----------------------------------------------------

Spoiler:



Last edited by shitnbitch@BWH on 10/12/2014, 5:13 pm; edited 2 times in total


_________________
Porting Wii Codes Simple10

Porting Wii Codes LSTjSyDDiscord: SnB_BWH

Click HERE to earn free bitcoin, litecoin, dogecoin, and dash!

Win Free Bitcoins every hour!

2Porting Wii Codes Empty Re: Porting Wii Codes 10/9/2014, 5:34 am

SnB@BWH

SnB@BWH
Admin & Writer

UPDATE - 20141009

Added a notes section.
Added some more info to a few things.
Fixed a couple of grammatical errors.


_________________
Porting Wii Codes Simple10

Porting Wii Codes LSTjSyDDiscord: SnB_BWH

Click HERE to earn free bitcoin, litecoin, dogecoin, and dash!

Win Free Bitcoins every hour!

3Porting Wii Codes Empty Re: Porting Wii Codes 10/12/2014, 1:40 am

Bully@WiiPlaza

Bully@WiiPlaza
 
 

I read everything. Not bad, but your writing style is quite confusing. If I didn't know how to do it I wouldn't be too sure how it needs to be done xD

Besides, I made a program which tries to port a code over. It does a good job most of the time but eventually returns wrong results. I'm not quite sure why that happens. Maybe I should look into this again. By hand I can do way better x.x

http://www.bullywiihacks.com/t3423-


_________________
Porting Wii Codes YBjg74I

4Porting Wii Codes Empty Re: Porting Wii Codes 10/12/2014, 1:57 am

SnB@BWH

SnB@BWH
Admin & Writer

Thanks and yeah, I've noticed that my writing style is... somewhat different than most people's, but I guess that's just how I like to explain things.  lol Later today, I'll keep this version and make a simple step-by-step tutorial. Thanks for the suggestion!

I noticed that when you port codes from CoD NTSC to PAL Deutsche, you only need to add +1 to the 7th char.

0484C984 XXXXXXXX

When porting codes from other games, I think it can change. Perhaps you can incorporate something to accommodate this in your program.


_________________
Porting Wii Codes Simple10

Porting Wii Codes LSTjSyDDiscord: SnB_BWH

Click HERE to earn free bitcoin, litecoin, dogecoin, and dash!

Win Free Bitcoins every hour!

5Porting Wii Codes Empty Re: Porting Wii Codes 10/12/2014, 4:23 am

Bully@WiiPlaza

Bully@WiiPlaza
 
 

shitnbitch@BWH wrote:When porting codes from other games, I think it can change. Perhaps you can incorporate something to accommodate this in your program.
Yeah, it's supposed to be universal. The program figures the offsets out by itself just like you would pick templates and check if they work and whatnot but it's more convenient. Twisted Evil

I re-coded it today with a graphical user interface. Take a look what it does to your tutorial example:

Porting Wii Codes Wii_co11


_________________
Porting Wii Codes YBjg74I

6Porting Wii Codes Empty Re: Porting Wii Codes 10/12/2014, 5:13 pm

SnB@BWH

SnB@BWH
Admin & Writer

Updated with an easy to understand tutorial with pictures.


_________________
Porting Wii Codes Simple10

Porting Wii Codes LSTjSyDDiscord: SnB_BWH

Click HERE to earn free bitcoin, litecoin, dogecoin, and dash!

Win Free Bitcoins every hour!

7Porting Wii Codes Empty Re: Porting Wii Codes 10/12/2014, 8:37 pm

Bully@WiiPlaza

Bully@WiiPlaza
 
 

Here's an example execution flow of my porting program for this BO multiplayer code from the P/ E version to S (for learning purposes):

No Mantling [Bully@Wiiplaza]
F2381624 022C0001
38000000 00000000
Spoiler:
Ported code:

No Mantling [Bully@Wiiplaza]
F237E5CC 022C0001
38000000 00000000

Note:
This is the debugger mode I coded into my application. It's disabled by default though, only I need it. By printing these out it slows down the program also.


_________________
Porting Wii Codes YBjg74I

Sponsored content



Back to top  Message [Page 1 of 1]

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