The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.


Reply
 
Thread Tools
  #1    
Old October 6th, 2011, 01:09 PM
Spiky-Eared Pichu's Avatar
Spiky-Eared Pichu
NDS Hacker/Researcher
 
Join Date: Apr 2010
Location: Barcelona, Spain
Age: 19
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Spiky-Eared Pichu Send a message via Skype™ to Spiky-Eared Pichu
Annoyed by the fact Gen. IV interiors (houses, shops and other buildings) are in 2D? Want to change that permanently and without a cheat device? If you want to do that, then this is your tutorial!

What you need:
  • A Generation IV Pokémon game (Diamond, Pearl, Platinum, HeartGold* or Soulsilver*)
  • DSLazy or another DS ROM unpacker/packer.
  • An Hex Editor (I'll be using HexWorkshop).
*Pokémon HeartGold and SoulSilver are unsupported at the moment. They use the same system for the 2D maps as DPPt, but they are more protected. I'll update the thread when possible.

Preparations:

Open your ROM with DSLazy (or the software you use with ROMs) and unpack your game to a folder.

Instructions:

Open the folder where you extracted the ROM. It should have two folders, "Overlay" and "Data"/"Root", as well as many .bin files. We are going to use arm9.bin to edit the 2D maps. Here's how Pokémon Diamond looks when extracted:



Now open the file with your Hex Editor. You'll see lots of bytes. The data we want to edit starts at:
  • Pokémon Diamond and Pearl: 0xEEDC0 (or search for "70013B031200E803E803FFFF", it's the first coincidence)
  • Pokémon Platinum: 0xE6020 (or search for "910181031700E803E803FFFF", it's the first coincidence)
  • Pokémon HeartGold and SoulSilver: Unknown (not even sure if they are in arm9.bin)
This is how it appears in Diamond (cursor at the start of the section):



Now that you have the start of the section we want to edit, take a look at these bytes in this picture (Pokémon Diamond, shouldn't be difficult to find the same in Platinum):



The second byte of those grups (sometimes 00, sometimes 04) is what we have to edit (adjust the view of the program to see the bytes more clearly). Those bytes tell the game which type of camera to use in each map, and for some reason GameFreak decided to employ a 2D-like camera inside the buildings during Generation IV. The maps are all 3D!!!

So, to change the camera to the standard 3D angle used outdoors, you have to replace all the bytes that are "04" with "00". But be careful, change only that column or you'll screw up the game!!! Also, there are a lot of maps (the picture only shows the first ones), so you'll have to replace a lot of data.

When you're done (remember to stop when the section ends, you'll know because the bytes change to random things), save the file. Repack your ROM with the software you're using, and enjoy!


Here's a sample of the result (ignore Brendan, it's a picture from my hack), as well as a picture from Diamond showing an unmodified interior (thanks to Pokémon Wikia for it):




If you have any problems, please post here so I can help. Also, I'll try to have HeartGold and SoulSilver available as soon as possible.
__________________
"Hacking has no limits. Don't try anything, DO IT!"

Jump into DS hacking with SDSME!


Beta 2 available!!



Last edited by Spiky-Eared Pichu; October 17th, 2011 at 06:57 AM.
Reply With Quote
  #2    
Old October 7th, 2011, 02:33 PM
Pingouin_7
This account is now inactive
 
Join Date: Oct 2008
Age: 20
Gender: Male
Nature: Hardy
Amazing, I'll do that on a copy of Diamond, this'll make it more interesting to play.
Reply With Quote
  #3    
Old October 7th, 2011, 02:42 PM
Nintendork15
I'm gone. Bye.
 
Join Date: Feb 2009
Location: Undertaker. Co.
Age: 19
Gender: Male
Nature: Naughty
It shouldn't be to hard to find for Heart Gold/ Soul Silver right?
The Goldenrod underground uses 3-D so can't you see the hex code for that ... and do it to the rest ... |: (you can tell I don't hex much)
__________________
gone.
Reply With Quote
  #4    
Old October 7th, 2011, 03:11 PM
Pingouin_7
This account is now inactive
 
Join Date: Oct 2008
Age: 20
Gender: Male
Nature: Hardy
I'm wondering, though, we are supposed to stop as soon as it changes from 0004 to (I think it was 17C0), even though there are more 0004 after it?
Reply With Quote
  #5    
Old October 8th, 2011, 05:12 AM
Spiky-Eared Pichu's Avatar
Spiky-Eared Pichu
NDS Hacker/Researcher
 
Join Date: Apr 2010
Location: Barcelona, Spain
Age: 19
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Spiky-Eared Pichu Send a message via Skype™ to Spiky-Eared Pichu
@Nintendork15 It doesn't matter if the Goldenrod's Unerground is in 3D, because HGSS have data structured similarly to DPPt when it comes to define camera. Even BW still follow the pattern (a bit modified, though). The only problem I have is finding the file that stores that data in HGSS.

@Pingouin_7 If it changes to another value but it then changes again to 0004 and the rest of lines still follow a "pattern", go ahead and change more.
__________________
"Hacking has no limits. Don't try anything, DO IT!"

Jump into DS hacking with SDSME!


Beta 2 available!!


Reply With Quote
  #6    
Old October 8th, 2011, 11:58 AM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
That's interesting. I would have never thought it would be in the arm9.bin. I'll have to incorporate it into Aqua Sapphire.
__________________

Platinum Supporter Team Fail




"It is said that Charizard's fire burns hotter if it has experienced harsh battles."



Charizard

Reply With Quote
  #7    
Old October 8th, 2011, 02:53 PM
Pingouin_7
This account is now inactive
 
Join Date: Oct 2008
Age: 20
Gender: Male
Nature: Hardy
I changed the other values to 00 and it now works everywhere. Thanks!
Reply With Quote
  #8    
Old October 15th, 2011, 11:08 AM
Link_971's Avatar
Link_971
French Rom-Hacker
 
Join Date: Jul 2006
Location: France
Age: 21
Gender: Male
Nature: Relaxed
Send a message via Windows Live Messenger to Link_971
If you give your autorisation, i can implant this function in my tool.
__________________

Reply With Quote
  #9    
Old October 15th, 2011, 12:31 PM
Full Metal's Avatar
Full Metal
C(++) Developer.
Community Supporter
 
Join Date: Jan 2008
Location: In my mind.
Age: 18
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to Full Metal
This is a nice find and everything, but why does this work, and how did you figure it out? That could help us figure out / find the info for HG / SS, could it not?
__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #10    
Old October 15th, 2011, 12:35 PM
Spiky-Eared Pichu's Avatar
Spiky-Eared Pichu
NDS Hacker/Researcher
 
Join Date: Apr 2010
Location: Barcelona, Spain
Age: 19
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Spiky-Eared Pichu Send a message via Skype™ to Spiky-Eared Pichu
This works because ALL the maps in Gen. IV are 3D, there are no 2D maps. The same way there's a byte that tells the game which music to play in a map, there's one that sets the camera type.

If you want to help, it's better to start analyzing the RAM while playing. Comparing the bytes that change between maps and so, you'll end up finding how they are stored, so you can then look for them in the ROM. It's a bit hard to explain

@Link_971 Feel free to implement it. But please give me credit (although I think it's already there, as the translator).
__________________
"Hacking has no limits. Don't try anything, DO IT!"

Jump into DS hacking with SDSME!


Beta 2 available!!



Last edited by Spiky-Eared Pichu; October 16th, 2011 at 01:38 PM.
Reply With Quote
  #11    
Old October 17th, 2011, 04:47 AM
Link_971's Avatar
Link_971
French Rom-Hacker
 
Join Date: Jul 2006
Location: France
Age: 21
Gender: Male
Nature: Relaxed
Send a message via Windows Live Messenger to Link_971
Quote:
Originally Posted by Spiky-Eared Pichu View Post
@Link_971 Feel free to implement it. But please give me credit (although I think it's already there, as the translator).

Thanks

It works for me too.
I need to know, if we edit all 0000 by 0004 - or another value - , we can edit camera of exteriors Maps, too?

Also, i think other values exists (Oreburgh Gym use a 3D lowered for example).
If you find another camera angles, please tell me


(I need to know all possibilities before implanting a function).
__________________

Reply With Quote
  #12    
Old October 17th, 2011, 05:29 AM
Spiky-Eared Pichu's Avatar
Spiky-Eared Pichu
NDS Hacker/Researcher
 
Join Date: Apr 2010
Location: Barcelona, Spain
Age: 19
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Spiky-Eared Pichu Send a message via Skype™ to Spiky-Eared Pichu
Yes, you can manipulate the camera at any map by this method, you just need to know what to write there (and for now I only know these values).

But by taking a look at all the strings and identifying each map, it'll be really easy to discover the values.
__________________
"Hacking has no limits. Don't try anything, DO IT!"

Jump into DS hacking with SDSME!


Beta 2 available!!


Reply With Quote
  #13    
Old October 17th, 2011, 06:02 AM
axlefoley's Avatar
axlefoley
 
Join Date: Sep 2004
Age: 24
Gender:
Send a message via Windows Live Messenger to axlefoley
i dunno if it just a case of I don't remember what the original looks like but I don't see anything different could you post a before and after picture?
__________________



Click here to feed Herman a Rare Candy!
Click here to feed Horrace a Rare Candy!
Get your own at Pokeplushies!
Reply With Quote
  #14    
Old October 17th, 2011, 09:29 AM
Link_971's Avatar
Link_971
French Rom-Hacker
 
Join Date: Jul 2006
Location: France
Age: 21
Gender: Male
Nature: Relaxed
Send a message via Windows Live Messenger to Link_971
Quote:
Originally Posted by Spiky-Eared Pichu View Post
Yes, you can manipulate the camera at any map by this method, you just need to know what to write there (and for now I only know these values).

But by taking a look at all the strings and identifying each map, it'll be really easy to discover the values.


Ok
Yeah, so each value = one Map?

I don't really think that because they are not many values, or maybe values are regrouped for each town.


And... If the camera values are in arm9, i think other data of header are in arm9 too (Weather, Map music, block border). Maybe we can find interesting things!
__________________

Reply With Quote
  #15    
Old October 17th, 2011, 10:59 AM
Zark's Avatar
Zark
Beginning Trainer
 
Join Date: Mar 2008
Location: Spain
Gender:
Here are some file offsets arm9.bin flight zones, which are 4 bytes.
First two bytes are Coordinate X and the second two bytes are Coordinate Y:

0xF222C: Pueblo Hojaverde (Twinleaf Town)
0xF223C: Pueblo Arena (Sandgem Town)
0xF224C: Pueblo Aromaflor (Floaroma Town)
0xF225C: Pueblo Sosiego (Solaceon Town)
0xF226C: Pueblo Caelestis (Celestic Town)
0xF227C: Ciudad Jubileo (Jubilife City)
0xF228C: Ciudad Canal (Canalave City)
0xF229C: Ciudad Pirita (Oreburgh City)
0xF22AC: Ciudad Vetusta (Eterna City)
0xF22BC: Ciudad Corazón (Hearthome City)
0xF22CC: Ciudad Pradera (Pastoria City)
0xF22DC: Ciudad Rocavelo (Veilstone City)
0xF22EC: Ciudad Marina (Sunyshore City)
0xF22FC: Ciudad Puntaneva (Snowpoint City)
0xF230C: Liga Pokémon: Sur (Pokemon League: South)
0xF231C: Zona de combate (Fight Area)
0xF232C: Zona Sobrevivir (Survival Area)
0xF233C: Zona Descanso (Resort Area)
0xF234C: Parque Compi (Pal Park)
0xF235C: Liga Pokémon: Norte (Pokemon League: North)
__________________

Pokémon Light Black DS
Reply With Quote
  #16    
Old October 17th, 2011, 01:58 PM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
This can be of some help.

Quote:
6. Motion3D

Code:
Code:
94000130 FDFF0000
DA000000 02000002
B21C4D28 00000000
B0000004 00000000
D7000000 0000150E
DC000000 FFFFFFFE
94000130 FFF70000
DA000000 00112F56
D3000000 00000000
D7000000 02000002
D2000000 00000000
-For Pkmn D/P only


Simply type in your Poktéch calculator the number of your desired camera perspective and press L + Start to save the number in the memory. Then hold L while going into a house (or getting out of it) for using that number.

:: Camera perspectives

00 - Basic 3D
04 - Basic 2D
05 - 3D Like on Spear Pillar
08 - 3D Camera high placed, like on Stark Mountain
09 - 3D Better sight, like in the Eterna City arena
14 - 3D Little dwarfs in a world of giants, like in Hall of Origin
I remember using this code and having a lot of fun with it. I think it modifies the arm9 in the RAM on the fly.
__________________

Platinum Supporter Team Fail




"It is said that Charizard's fire burns hotter if it has experienced harsh battles."



Charizard

Reply With Quote
  #17    
Old October 18th, 2011, 08:00 AM
Spiky-Eared Pichu's Avatar
Spiky-Eared Pichu
NDS Hacker/Researcher
 
Join Date: Apr 2010
Location: Barcelona, Spain
Age: 19
Gender: Male
Nature: Calm
Send a message via Windows Live Messenger to Spiky-Eared Pichu Send a message via Skype™ to Spiky-Eared Pichu
@Team Fail Well, if the 00 and 04 values match what I teach in this tutorial, then this means the values from that cheat will probably work.
__________________
"Hacking has no limits. Don't try anything, DO IT!"

Jump into DS hacking with SDSME!


Beta 2 available!!


Reply With Quote
  #18    
Old October 18th, 2011, 01:25 PM
Zark's Avatar
Zark
Beginning Trainer
 
Join Date: Mar 2008
Location: Spain
Gender:
Here I show you pictures of how they would be changing the bytes from 00 to 0F:

00


01


02


03


04


05


06


07


08


09


0A


0B


0C


0D


0E


0F
__________________

Pokémon Light Black DS
Reply With Quote
  #19    
Old October 18th, 2011, 01:48 PM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
Quote:
Originally Posted by Zark View Post
stuff
What happens after 0F? Like 11, 15 or 1A?
__________________

Platinum Supporter Team Fail




"It is said that Charizard's fire burns hotter if it has experienced harsh battles."



Charizard

Reply With Quote
  #20    
Old October 18th, 2011, 02:07 PM
Zark's Avatar
Zark
Beginning Trainer
 
Join Date: Mar 2008
Location: Spain
Gender:
Quote:
Originally Posted by Team Fail View Post
What happens after 0F? Like 11, 15 or 1A?
They are not useful for 10 and up and coming out in black.
__________________

Pokémon Light Black DS
Reply With Quote
  #21    
Old October 18th, 2011, 02:48 PM
Link_971's Avatar
Link_971
French Rom-Hacker
 
Join Date: Jul 2006
Location: France
Age: 21
Gender: Male
Nature: Relaxed
Send a message via Windows Live Messenger to Link_971
So, we have all results, thanks!
And i will check soon for the flight zones too.
__________________

Reply With Quote
  #22    
Old October 18th, 2011, 02:51 PM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
Quote:
Originally Posted by Zark View Post
They are not useful for 10 and up and coming out in black.
I know there was one, that if you set it on the Poketch, it would show a distant skyline shot. It's completely unused, but it looked really cool. I'll try to get that value. I think it was 18 on the Poketch if memory serves correct. Another one I remember had the map so small it was just a colored pixel on the screen.

EDIT: It's 16. I'll get a pic later.
__________________

Platinum Supporter Team Fail




"It is said that Charizard's fire burns hotter if it has experienced harsh battles."



Charizard


Last edited by Team Fail; October 18th, 2011 at 03:06 PM.
Reply With Quote
  #23    
Old October 18th, 2011, 05:12 PM
HackDeoxys's Avatar
HackDeoxys
Community Supporter Tier 3
 
Join Date: May 2010
Nature: Lonely
Quote:
Originally Posted by Zark View Post
I think this one is the best. It's not completely birds-eye-view, unlike traditional Pokemon games, but its really cool. It'd be neat if there was a hack like that.
__________________
this is not a signature
Reply With Quote
  #24    
Old October 18th, 2011, 05:28 PM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
Quote:
Originally Posted by HackDeoxys View Post
I think this one is the best. It's not completely birds-eye-view, unlike traditional Pokemon games, but its really cool. It'd be neat if there was a hack like that.
There's actually a small glitch with that angle. Go to Solaceon Town and walk around there. You'll see sprites disappear and reappear when you leave/enter the town's area.

And attached is that special unused camera angle. I apologize for the blurriness- I took it on my DS Lite and used a crappy camera.
Attached Images
File Type: jpg HPIM1691.jpg‎ (325.8 KB, 56 views) (Save to Dropbox)
__________________

Platinum Supporter Team Fail




"It is said that Charizard's fire burns hotter if it has experienced harsh battles."



Charizard

Reply With Quote
  #25    
Old October 18th, 2011, 06:10 PM
Full Metal's Avatar
Full Metal
C(++) Developer.
Community Supporter
 
Join Date: Jan 2008
Location: In my mind.
Age: 18
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to Full Metal
You know what this smells like to me?
I would bet that there is an array / table of a structure containing x/y/z co-ordinates that are relative to the player for the camera. Perhaps somebody with a NDS debugger, and a ROM could set a break on read for one of these values and test? Then we could make our own. (:
__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 11:42 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.