The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Creative Discussions > Emulation & ROM Hacking > Research & Development
Register New Account FAQ/Rules Chat Blogs Mark Forums Read

Notices

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
New threads in this forum are to be approved by a moderator before they are displayed. The thread revival limit does not apply here.



Reply
Thread Tools
  #1  
Unread October 16th, 2010, 09:53 PM
diegoisawesome's Avatar
diegoisawesome
Working on Shining Opal, kinda
 
Join Date: Dec 2007
Location: Goldenrod City, Johto
Age: 16
Gender: Male
Nature: Quirky
We all know the Ruins of Alph puzzle made by Mastermind_X, right?
http://sfc.pokefans.net/lesson.php?id=21
Well, it was made for Fire Red, and when I wanted it in my Emerald hack, I tried to port it over. I changed the LASTRESULT address and tried it in-game.

As you can see, the result was less than satisfactory, and although it did work, it did have some glitches. As you can see here, the strange coloration is one part, and the other part is that after exiting it, pressing start would give you a weirdly formatted start menu, at the botom of the screen. Exiting it and trying again would bring up the normal Start menu, except exiting this one would remove all of the tiles on the top layer of the map.

So my question is this: How can Mastermind_X's brilliant puzzle be taken over to Emerald?
__________________


My other resources:
My Website
diegoisawesome's MEGA-HUGE XSE Scripting Tutorial
diegoisawesome's Miscellaneous Finds
Reply With Quote
  #2  
Unread October 18th, 2010, 10:02 AM
TheDarkShark
Metal Headed Hacker
 
Join Date: May 2010
Location: Germany
Gender: Male
Nature: Calm
Tutti did this for Eissturm, i think...
But he doesn't seem active here, I'll ask him if you want
Reply With Quote
  #3  
Unread October 18th, 2010, 02:17 PM
shiny quagsire's Avatar
shiny quagsire
I'm pixular!
 
Join Date: May 2009
Location: In a House, duh!
Age: 15
Gender: Male
Nature: Jolly
Could you post a picture of the pallet before you touch it and after for us? I'm not sure if it's just not changing the pallet or what the deal is.
__________________



Reply With Quote
  #4  
Unread October 18th, 2010, 09:31 PM
diegoisawesome's Avatar
diegoisawesome
Working on Shining Opal, kinda
 
Join Date: Dec 2007
Location: Goldenrod City, Johto
Age: 16
Gender: Male
Nature: Quirky
Quote:
Originally Posted by shiny quagsire View Post
Could you post a picture of the pallet before you touch it and after for us? I'm not sure if it's just not changing the pallet or what the deal is.
It's not just that, the start menu is glitched up afterwards too. I believe it's because the RAM areas it uses are used in Emerald already... and maybe some ASM incompatibilities too.
__________________


My other resources:
My Website
diegoisawesome's MEGA-HUGE XSE Scripting Tutorial
diegoisawesome's Miscellaneous Finds
Reply With Quote
  #5  
Unread October 19th, 2010, 06:33 AM
Darthatron's Avatar
Darthatron
巨大なトロール。
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 21
Gender: Male
Nature: Modest
Quote:
Originally Posted by diegoisawesome View Post
It's not just that, the start menu is glitched up afterwards too. I believe it's because the RAM areas it uses are used in Emerald already... and maybe some ASM incompatibilities too.
It would definitely be the RAM areas, but it wouldn't be ASM incompatibilities, because that makes no logical sense.
__________________
あなた は しきしゃ です
わたし は ばか です
Reply With Quote
  #6  
Unread October 19th, 2010, 10:38 PM
diegoisawesome's Avatar
diegoisawesome
Working on Shining Opal, kinda
 
Join Date: Dec 2007
Location: Goldenrod City, Johto
Age: 16
Gender: Male
Nature: Quirky
Quote:
Originally Posted by Darthatron View Post
It would definitely be the RAM areas, but it wouldn't be ASM incompatibilities, because that makes no logical sense.
Well, what I meant was that you might have had to branch to different ROM locations or push and pop some extra registers.
__________________


My other resources:
My Website
diegoisawesome's MEGA-HUGE XSE Scripting Tutorial
diegoisawesome's Miscellaneous Finds
Reply With Quote
  #7  
Unread January 31st, 2013, 06:08 AM
shiny quagsire's Avatar
shiny quagsire
I'm pixular!
 
Join Date: May 2009
Location: In a House, duh!
Age: 15
Gender: Male
Nature: Jolly
I found your little problem with the palette. In Fire Red, the palette is copied via DMA to 0x05000000, which means that manually writing to that location will have it automagically rewritten over by the DMA (I personally discovered this with some of my own ASM). However, there is a palette buffer (two actually, one is for fading) in the Pokemon Games where the DMA copies from. In Fire Red, this buffer is at 0x020371f8. However, in Emerald, it's 0x02037B14. so a simple pointer search should fix that. M_X may or may not have used this buffer, so if searching the FR pointer comes up with nothing, find the main palette memory (0x05000000) and the obj pallet memory, which is 0x200 more than the background palette and replace those accordingly (adding 0x200 to the offset for the OBJ palette)

As for the menu, it may have something to do with how he preserves the palettes and tiles. What he does is he copies a big portion (or all) of the OBJ memory and the tile memory, and stores them using these #defines in his main.h file:
Code:
#define lzData2         ((u16*)0x203C000)
#define lzData          ((u16*)0x203D000)
#define save1           ((u16*)0x203E000)
#define save2           ((u16*)0x203F000)
So perhaps repoint those RAM locations to fix the menu.
__________________



Reply With Quote
  #8  
Unread January 31st, 2013, 10:29 PM
diegoisawesome's Avatar
diegoisawesome
Working on Shining Opal, kinda
 
Join Date: Dec 2007
Location: Goldenrod City, Johto
Age: 16
Gender: Male
Nature: Quirky
Quote:
Originally Posted by shiny quagsire View Post
I found your little problem with the palette. In Fire Red, the palette is copied via DMA to 0x05000000, which means that manually writing to that location will have it automagically rewritten over by the DMA (I personally discovered this with some of my own ASM). However, there is a palette buffer (two actually, one is for fading) in the Pokemon Games where the DMA copies from. In Fire Red, this buffer is at 0x020371f8. However, in Emerald, it's 0x02037B14. so a simple pointer search should fix that. M_X may or may not have used this buffer, so if searching the FR pointer comes up with nothing, find the main palette memory (0x05000000) and the obj pallet memory, which is 0x200 more than the background palette and replace those accordingly (adding 0x200 to the offset for the OBJ palette)

As for the menu, it may have something to do with how he preserves the palettes and tiles. What he does is he copies a big portion (or all) of the OBJ memory and the tile memory, and stores them using these #defines in his main.h file:
Code:
#define lzData2         ((u16*)0x203C000)
#define lzData          ((u16*)0x203D000)
#define save1           ((u16*)0x203E000)
#define save2           ((u16*)0x203F000)
So perhaps repoint those RAM locations to fix the menu.
Well, to start with, this isn't the only problem. Being designed for a standalone ROM, it doesn't fade in and out nor play a jingle. Besides this, the routine needs to be rewritten to use the in-game methods of storing data, such as the LZ data and palette data. Basically, the source is amazing to finally have so these issues can be fixed.
__________________


My other resources:
My Website
diegoisawesome's MEGA-HUGE XSE Scripting Tutorial
diegoisawesome's Miscellaneous Finds
Reply With Quote
  #9  
Unread February 9th, 2013, 10:01 AM
SBird
Unhatched Egg
 
Join Date: Aug 2009
Gender: Male
I had this problem too, together with some other problems, the thing is that Mastermind_X used the direct palette RAM at 0x05000000, but as you know maybe Pokémon backstores the Palettes in the WRAM. The data is copied in the DMA3 line and you want to turn that off. I can only give you the adresses for the german ROMs and what you want to change, it might be similar to the english ones:

Firered(BPRD):

Disable: 0x02037AC0 = 0x80
Able: 0x02037AC0 = 0x40

Emerald(BPED):

Disable: 0x02037FDC = 0x80
Able: 0x02037FDC = 0x40

The Firered ones were researched by driver and published in his research note files.

You want to find the offset in the routine and change it.
As I tried that I had some problems with the OAM stuff. The sprites were all bugged and I wasnt able to end the code correctly, I think some layers and also the OAM was bugged, I wasn't able to solve that though.
Hope I could help and maybe I also find an answer to my problems

~SBird
Reply With Quote
  #10  
Unread March 9th, 2013, 11:50 AM
ElitePokes's Avatar
ElitePokes
Ghost Type Master
 
Join Date: Aug 2012
Location: Otherworld
Age: 19
Gender: Male
Nature: Naughty
I hope you find a way to make this puzzle for emerald to play it on crystaldust xD
__________________
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

Forum Jump


All times are UTC. The time now is 01:47 PM.


Style by Perdition Haze, artwork by Sa-Dui.
Like our Facebook Page Follow us on TwitterMessage Board Statistics | © 2002 - 2013 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2013 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 posts belong to the user.