Go Back   The PokéCommunity Forums > ROM Hacking > ROM Hacking Hub > Beginner’s Lounge
Reload this Page [ARCHIVE] Simple Questions (SEARCH BEFORE ASKING A QUESTION)

Notices
For all updates, view the main page.

Beginner’s Lounge Where all good (and bad) ideas start. This is the Beginner’s Lounge, where if you need a helping hand or want to develop your small ideas, you bring it here. We won't bite.



Closed Thread
 
Thread Tools
  #19151    
Old July 30th, 2011 (12:33 PM). Edited July 30th, 2011 by Cheesewig.
Cheesewig's Avatar
Cheesewig Cheesewig is offline
Hi!
 
Join Date: Jul 2011
Gender: Male
Nature: Relaxed
Posts: 54

I edited the sprite with RAM finally but when I enter a building the sprite changes to something I don't want.

It was normal: I changed into the Rival but I entered my house and I turned into Mom. I went into a pokémart and changed to a random guy.

What am I doing wrong?

Here's my script:

Spoiler:
#org 0x123100
playsound 0x1
writebyte 0xD1FF 0x3C
end

__________________
My name is Aochider I was called . Dr. PET was loved and esteemed by us all!

Relevant Advertising!

  #19152    
Old July 30th, 2011 (7:11 PM).
Cherrysa23 Cherrysa23 is offline
 
Join Date: Apr 2009
Gender:
Posts: 14

hi!

I've been searching for 1 hour, how to edit the intro with prof birch, and the starting map of pokemon ruby (which is the truck, and I don't find this map) and also, I don't find the script for the mother first speech...

if there is already a thread, please tell me, because Idon,t find it

  #19153    
Old July 30th, 2011 (7:33 PM).
PokemonPurple's Avatar
PokemonPurple PokemonPurple is offline
 
Join Date: Jul 2011
Posts: 31

Pokemon Emerald 1.0
XSE
Advance Map
---

How could I make the "tree" person event be able to be cut?

Thanks guys. <3

__________________
Pokemon Purple: 10% Done ||||||||||
Dream Team -
Click Here for Pokemon: Purple Website!
  #19154    
Old July 30th, 2011 (7:48 PM).
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Modest
Posts: 1,152

Quote originally posted by PokemonPurple:
Pokemon Emerald 1.0
XSE
Advance Map
---

How could I make the "tree" person event be able to be cut?

Thanks guys. <3

Find a tree from the original Emerald and copy the script offset onto your new tree.

__________________
あなた は しきしゃ です
わたし は ばか です
  #19155    
Old July 30th, 2011 (9:38 PM).
ZangoMango's Avatar
ZangoMango ZangoMango is offline
 
Join Date: Jul 2011
Gender: Male
Nature: Impish
Posts: 42

Hey guys, in FR/LG, is it possible to edit the ghost of Marowak battle in Pokemon Tower so that it's a different Pokemon? I tried my best to go into the script and change it, but it kept reverting back to Marowak.

Quote originally posted by Lyzo:
Alright, I don't know much about PokeScript, sorry about that. The hidesprite command is for XSE, but pokescript should have it as well, but it's probably named differently, or it's a #raw... But I wouldn't know...

You should switch over to XSE anyway, seeing as PokeScript is quite outdated and unsupported anyway. It's much like pokescript, but a bit different, and so much easier to use!

You can get it here and here is a quite extensive tutorial. In this tutorial it also shows you how to get the person event number

Cool, thanks man. XSE sounds good, I'll definitely switch over.

  #19156    
Old July 30th, 2011 (9:46 PM).
DrFuji's Avatar
DrFuji DrFuji is offline
Helfen, Wehren, Heilen
Crystal Tier
 
Join Date: Sep 2009
Location: Downia-upside
Age: 23
Gender: Male
Nature: Jolly
Posts: 1,322

Quote originally posted by ZangoMango:
Hey guys, in FR/LG, is it possible to edit the ghost of Marowak battle in Pokemon Tower so that it's a different Pokemon? I tried my best to go into the script and change it, but it kept reverting back to Marowak.

You can't change the Pokemon which you battle in a regular FR ROM. JPAN's Hacked ROM has a special that allows you to battle other ghost Pokemon so I'd suggest trying it out.

__________________
  #19157    
Old July 31st, 2011 (1:09 AM).
DuoRyan's Avatar
DuoRyan DuoRyan is offline
Hack'in as usual, it seem.
 
Join Date: Nov 2009
Location: Somewhere.
Age: 19
Gender: Male
Nature: Calm
Posts: 336

How do you make the press start in the titlescreen flash?

__________________
Pokemon Treasure.
Progress: Planning.
  #19158    
Old July 31st, 2011 (1:56 AM).
Cheesewig's Avatar
Cheesewig Cheesewig is offline
Hi!
 
Join Date: Jul 2011
Gender: Male
Nature: Relaxed
Posts: 54

Is there a way to create new maps in Pokemon Gold

__________________
My name is Aochider I was called . Dr. PET was loved and esteemed by us all!
  #19159    
Old July 31st, 2011 (2:32 AM).
Darthatron's Avatar
Darthatron Darthatron is offline
巨大なトロール。
Silver Tier
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 24
Gender: Male
Nature: Modest
Posts: 1,152

Quote originally posted by DuoRyan:
How do you make the press start in the titlescreen flash?

In Ruby/Sapphire/Emerald, part of the tileset is cleared and reloaded every X frames, so you need to use that part of the tileset for the "Press Start" words.* In FireRed/LeafGreen, the a certain palette is changed to all black and reloaded every few frames, so you have to set that part of the tilemap to use that palette.*

*All from memory, may be wrong.

__________________
あなた は しきしゃ です
わたし は ばか です
  #19160    
Old July 31st, 2011 (4:02 AM).
Cheesewig's Avatar
Cheesewig Cheesewig is offline
Hi!
 
Join Date: Jul 2011
Gender: Male
Nature: Relaxed
Posts: 54

Is there a support banner creator anwhere

__________________
My name is Aochider I was called . Dr. PET was loved and esteemed by us all!
  #19161    
Old July 31st, 2011 (10:01 AM).
phinamthi's Avatar
phinamthi phinamthi is offline
Steel Type Trainer
 
Join Date: Jul 2011
Location: South Jersey
Gender: Male
Nature: Modest
Posts: 52

-Firered
I was trying to import the hero sprite, but it gives me this message

Error during bitmap loading.
The palette of the bitmap you are goint to import is not a 16 color one

Yes that "goint" is actually there, so can anyone help?

  #19162    
Old July 31st, 2011 (11:10 AM).
Banjora Marxvile's Avatar
Banjora Marxvile Banjora Marxvile is offline
hOI!!!!!! i'm tEMMIE!!
 
Join Date: May 2008
Age: 22
Gender: Male
Nature: Lonely
Posts: 3,476

Quote originally posted by phinamthi:
-Firered
I was trying to import the hero sprite, but it gives me this message

Error during bitmap loading.
The palette of the bitmap you are goint to import is not a 16 color one

Yes that "goint" is actually there, so can anyone help?

You need to index the sprite you are inserting into 16 pallettes. I suggest using Irfanview for this, then Decrease Colour Depth to 16, unchecking the dithering option.

goint was perhaps meant to be going.

__________________


Temmie vibrates intensely.

awwAwa cute!! (pets u)

OMG!! humans TOO CUTE (dies)

can't blame a BARK for tryin'...

RATED TEM OUTTA TEM.

  #19163    
Old July 31st, 2011 (11:19 AM).
phinamthi's Avatar
phinamthi phinamthi is offline
Steel Type Trainer
 
Join Date: Jul 2011
Location: South Jersey
Gender: Male
Nature: Modest
Posts: 52

Thanks, I understand now

  #19164    
Old July 31st, 2011 (5:49 PM). Edited July 31st, 2011 by DavidJCobb.
DavidJCobb DavidJCobb is offline
RESIDENT RAAAAAAAAAAAAGEMASTER
 
Join Date: Jul 2010
Gender: Male
Nature: Lonely
Posts: 275

This question is most certainly out of place in a thread for "simple" questions, but the lack of any easily-findable ASM Questions thread leaves me with no recourse but to post here.

JPAN's FireRed Hacked Engine contains specials that copy and decrypt the data of a Pokemon to a specific offset. I am trying to make an ASM function that will take that decrypted data, and change the Pokemon's Personality Value without corrupting the Pokemon -- the result being that upon re-encryption, the Pokemon's personality value (and all linked data) is changed while leaving other data intact. Naturally, this requires that I rearrange all four of the data substructures within the Pokemon data; ergo, this is something for which only ASM is appropriate.

(The purpose of this? Simple: a Pokemon's gender and nature are both determined by the least-significant byte of the personality value. An Unown's letter is determined by bits found in each byte of the personality value. An ASM function that copies the contents of variables 0x8001 and 0x8002 over the personality value without corrupting the Pokemon allows one to set the letter of an Unown, and the gender and nature of any other Pokemon using scripting.)

I have attempted to compile my ASM code using the compiler (GNU Assembler, or GAS) provided by HackMew in their ASM tutorial. The compiler gives me only a flurry of errors. I do not know if these are bugs in the compiler (word-of-mouth says it's unreliable) or in my code.

The code, a commented alternate version -- comments broke the compiler, which is ridiculous in more ways than I can count -- and the compiler output, respectively:

Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func

main: push {r0-r7, lr} ldr r0, .VAR_8001 ldr r1, .DECRYPTED_POKEMON str r0, [r1, #0x0] ldr r0, .DECRYPTED_POKEMON ldrb r0, [r0, #0x0] mov r1, #24 swi #0x06 mov r0, r1 ldr r1, .PTR_SUBSTRUCT_G mov r2, #0x0C ldr r3, .Cobb_storage bl CopyDataChunk ldr r1, .PTR_SUBSTRUCT_A mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x0C bl CopyDataChunk ldr r1, .PTR_SUBSTRUCT_E mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x18 bl CopyDataChunk ldr r1, .PTR_SUBSTRUCT_M mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x24 bl CopyDataChunk b DoWriting

CopyDataChunk: ldr r4, [r1, #0x0] str r4, [r3, #0x0] add r1, #0x4 add r3, #0x4 sub r2, #0x4 cmp r2, #0x0 bne CopyDataChunk pop {pc}

WriteSlot: mov r4, #0xC mul r1, r4 sub r1, r4 mul r2, r4 sub r2, r4 mov r4, r1 ldr r3, .SUBSTRUCT_1 add r3, r1 mov r5, r3 ldr r1, .Cobb_storage add r1, r2 mov r2, #0xC bl CopyDataChunk pop {pc}

WriteG: mov r2, #0x1 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_G str r4, [r5, #0x0] pop {pc} WriteA: mov r2, #0x2 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_A str r4, [r5, #0x0] pop {pc} WriteE: mov r2, #0x3 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_E str r4, [r5, #0x0] pop {pc} WriteM: mov r2, #0x4 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_M str r4, [r5, #0x0] pop {pc}

DoWriting: cmp r0, #0x00 beq Write_GAEM cmp r0, #0x01 beq Write_GAME cmp r0, #0x02 beq Write_GEAM cmp r0, #0x03 beq Write_GEMA cmp r0, #0x04 beq Write_GMAE cmp r0, #0x05 beq Write_GMEA cmp r0, #0x06 cmp r0, #0x07 beq Write_AGEM cmp r0, #0x08 beq Write_AGME cmp r0, #0x09 beq Write_AEGM cmp r0, #0x0A beq Write_AEMG cmp r0, #0x0B beq Write_AMGE cmp r0, #0x0C beq Write_AMEG cmp r0, #0x0D beq Write_EGAM cmp r0, #0x0E beq Write_EGMA cmp r0, #0x0F beq Write_EAGM cmp r0, #0x10 beq Write_EAMG cmp r0, #0x11 beq Write_EMGA cmp r0, #0x12 beq Write_EMAG cmp r0, #0x13 beq Write_MGAE cmp r0, #0x14 beq Write_MGEA cmp r0, #0x15 beq Write_MAGE cmp r0, #0x16 beq Write_MAEG cmp r0, #0x17 beq Write_MEGA cmp r0, #0x18 beq Write_MEAG b End

Write_GAEM: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteM b End Write_GAME: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteE b End Write_GEAM: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteM b End Write_GEMA: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteA b End Write_GMAE: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteE b End Write_GMEA: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteA b End

Write_AGEM: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteM b End Write_AGME: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteE b End Write_AEGM: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteM b End Write_AEMG: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteG b End Write_AMGE: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteE b End Write_AMEG: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteG b End

Write_EGAM: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteM b End Write_EGMA: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteA b End Write_EAGM: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteM b End Write_EAMG: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteG b End Write_EMGA: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteA b End Write_EMAG: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteG b End

Write_MGAE: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteE b End Write_MGEA: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteA b End Write_MAGE: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteE b End Write_MAEG: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteG b End Write_MEGA: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteA b End Write_MEAG: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteG b End

End: pop {r0-r7, pc}

.align 2 .JPAN_storage: .word 0x0203f400 .Cobb_storage: .word 0x02030000 .DECRYPTED_POKEMON: .word 0x0203F400 .PTR_SUBSTRUCT_G: .word 0x0203F464 .PTR_SUBSTRUCT_A: .word 0x0203F468 .PTR_SUBSTRUCT_E: .word 0x0203F46C .PTR_SUBSTRUCT_M: .word 0x0203F470 .SUBSTRUCT_1: .word 0x0203F432 .SUBSTRUCT_2: .word 0x0203F43E .SUBSTRUCT_3: .word 0x0203F44A .SUBSTRUCT_4: .word 0x0203F458 .VAR_8001: .word 0x020270B6 + (0x8001 * 2) .VAR_8002: .word 0x020270B6 + (0x8002 * 2) .LASTRESULT: .word 0x020270B6 + (0x800D * 2)

Spoiler:
Code:
@ assembling directives for assembler thing
.text
.align 2 @ Code offset must be multiple of 2
.thumb   @ we are writing THUMB code
.thumb_func

@ we're using RAM from 02030000 - 02030030 @ if we apply a hack that uses that RAM, we @ must edit this ASM and re-insert it into @ the game.

@ start execution, with a defined label main: @ backup registers Push{r0-r7,lr}

@ script code

@ overwrite the personality value @ based on the values of 0x8001 @ and 0x8002. ldr r0, .VAR_8001 ldr r1, .DECRYPTED_POKEMON str r0, [r1, #0x0]

@ find new arrangement ldr r0, .DECRYPTED_POKEMON @ store least significant byte of personality value ldrb r0, [r0, #0x0] mov r1, #24 @ division, using a BIOS function swi #0x06 @ transfer result of r0 % r1 from r1 to r0 mov r0, r1

@ copy G data to an available place in RAM ldr r1, .PTR_SUBSTRUCT_G mov r2, #0x0C ldr r3, .Cobb_storage bl CopyDataChunk

ldr r1, .PTR_SUBSTRUCT_A mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x0C bl CopyDataChunk

ldr r1, .PTR_SUBSTRUCT_E mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x18 bl CopyDataChunk

ldr r1, .PTR_SUBSTRUCT_M mov r2, #0x0C ldr r3, .Cobb_storage add r3, #0x24 bl CopyDataChunk

b DoWriting

CopyDataChunk: @ IN r1 pointer: source data chunk (as number value) @ IN r2 length of source @ IN r3 pointer: target data chunk (as number value) @ r4 Throwaway variable, will be overwritten ldr r4, [r1, #0x0] str r4, [r3, #0x0] add r1, #0x4 add r3, #0x4 sub r2, #0x4 cmp r2, #0x0 bne CopyDataChunk pop {pc}

WriteSlot: @ REQ CopyDataChunk @ IN r1 data substructure slot to write to (1-4) @ IN r2 data substructure (1-4 = G,A,E,M) @ r3 Throwaway (parameter to subfunction) @ r4 Throwaway (here and subfunction) @ OUT r5 computed target address mov r4, #0xC mul r1, r4 sub r1, r4 mul r2, r4 sub r2, r4 mov r4, r1 ldr r3, .SUBSTRUCT_1 add r3, r1 mov r5, r3 ldr r1, .Cobb_storage add r1, r2 mov r2, #0xC bl CopyDataChunk pop {pc}

WriteG: @ REQ WriteSlot @ > CopyDataChunk @ IN r1 data substructure slot to write to (1-4) @ r2 Throwaway (parameter to subfunction) @ r3 Throwaway (parameter to subfunction) @ r4 Throwaway (here and subfunction) @ r5 address to write to one of JPAN's pointers mov r2, #0x1 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_G str r4, [r5, #0x0] pop {pc} WriteA: mov r2, #0x2 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_A str r4, [r5, #0x0] pop {pc} WriteE: mov r2, #0x3 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_E str r4, [r5, #0x0] pop {pc} WriteM: mov r2, #0x4 bl WriteSlot ldr r4, .PTR_SUBSTRUCT_M str r4, [r5, #0x0] pop {pc}

DoWriting: @ BRANCH CALLS GO HERE @ IN r0 New personality value modulo 24 @ r1 Throwaway (subfunction) @ r2 Throwaway (subfunction) @ r3 Throwaway (subfunction) @ r4 Throwaway (subfunction) @ r5 Throwaway (subfunction)

cmp r0, #0x00 beq Write_GAEM cmp r0, #0x01 beq Write_GAME cmp r0, #0x02 beq Write_GEAM cmp r0, #0x03 beq Write_GEMA cmp r0, #0x04 beq Write_GMAE cmp r0, #0x05 beq Write_GMEA cmp r0, #0x06

cmp r0, #0x07 beq Write_AGEM cmp r0, #0x08 beq Write_AGME cmp r0, #0x09 beq Write_AEGM cmp r0, #0x0A beq Write_AEMG cmp r0, #0x0B beq Write_AMGE cmp r0, #0x0C beq Write_AMEG

cmp r0, #0x0D beq Write_EGAM cmp r0, #0x0E beq Write_EGMA cmp r0, #0x0F beq Write_EAGM cmp r0, #0x10 beq Write_EAMG cmp r0, #0x11 beq Write_EMGA cmp r0, #0x12 beq Write_EMAG

cmp r0, #0x13 beq Write_MGAE cmp r0, #0x14 beq Write_MGEA cmp r0, #0x15 beq Write_MAGE cmp r0, #0x16 beq Write_MAEG cmp r0, #0x17 beq Write_MEGA cmp r0, #0x18 beq Write_MEAG

b End

Write_GAEM: @ G mov r1, #0x1 bl WriteG @ A mov r1, #0x2 bl WriteA @ E mov r1, #0x3 bl WriteE @ M mov r1, #0x4 bl WriteM b End Write_GAME: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteE b End Write_GEAM: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteM b End Write_GEMA: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteA b End Write_GMAE: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteE b End Write_GMEA: mov r1, #0x1 bl WriteG mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteA b End

Write_AGEM: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteM b End Write_AGME: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteE b End Write_AEGM: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteM b End Write_AEMG: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteG b End Write_AMGE: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteE b End Write_AMEG: mov r1, #0x1 bl WriteA mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteG b End

Write_EGAM: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteM b End Write_EGMA: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteA b End Write_EAGM: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteM b End Write_EAMG: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteM mov r1, #0x4 bl WriteG b End Write_EMGA: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteA b End Write_EMAG: mov r1, #0x1 bl WriteE mov r1, #0x2 bl WriteM mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteG b End

Write_MGAE: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteE b End Write_MGEA: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteG mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteA b End Write_MAGE: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteE b End Write_MAEG: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteA mov r1, #0x3 bl WriteE mov r1, #0x4 bl WriteG b End Write_MEGA: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteG mov r1, #0x4 bl WriteA b End Write_MEAG: mov r1, #0x1 bl WriteM mov r1, #0x2 bl WriteE mov r1, #0x3 bl WriteA mov r1, #0x4 bl WriteG b End

End: @ restore registers and return Pop{r0-r7,pc}

.align 2 .JPAN_storage: .word 0x0203f400 .Cobb_storage: .word 0x02030000 .DECRYPTED_POKEMON: .word 0x0203F400 .PTR_SUBSTRUCT_G: .word 0x0203F464 .PTR_SUBSTRUCT_A: .word 0x0203F468 .PTR_SUBSTRUCT_E: .word 0x0203F46C .PTR_SUBSTRUCT_M: .word 0x0203F470 .SUBSTRUCT_1: .word 0x0203F432 .SUBSTRUCT_2: .word 0x0203F43E .SUBSTRUCT_3: .word 0x0203F44A .SUBSTRUCT_4: .word 0x0203F458 .VAR_8001: .word 0x020270B6 + (0x8001 * 2) .VAR_8002: .word 0x020270B6 + (0x8002 * 2) .LASTRESULT: .word 0x020270B6 + (0x800D * 2)

Spoiler:
Code:
C:\Users\David\Desktop\Cobb Fam Desktop\Miscellaneous\rawrms\tules\THUMB ASM Com
piler>thumb pv_asm_ncom.asm pv_asm_ncom.bin
pv_asm_ncom.asm: Assembler messages:
pv_asm_ncom.asm:60: Warning: Failed to find real start of function: CopyDataChun
k

pv_asm_ncom.asm:65: Warning: Failed to find real start of function: WriteSlot

pv_asm_ncom.asm:71: Warning: Failed to find real start of function: WriteSlot

pv_asm_ncom.asm:77: Warning: Failed to find real start of function: WriteSlot

pv_asm_ncom.asm:83: Warning: Failed to find real start of function: WriteSlot

pv_asm_ncom.asm:143: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:145: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:147: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:149: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:153: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:155: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:157: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:159: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:163: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:165: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:167: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:169: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:173: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:175: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:177: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:179: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:183: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:185: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:187: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:189: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:193: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:195: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:197: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:199: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:204: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:206: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:208: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:210: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:214: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:216: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:218: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:220: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:224: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:226: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:228: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:230: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:234: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:236: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:238: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:240: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:244: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:246: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:248: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:250: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:254: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:256: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:258: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:260: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:265: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:267: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:269: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:271: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:275: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:277: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:279: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:281: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:285: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:287: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:289: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:291: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:295: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:297: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:299: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:301: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:305: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:307: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:309: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:311: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:315: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:317: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:319: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:321: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:326: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:328: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:330: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:332: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:336: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:338: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:340: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:342: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:346: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:348: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:350: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:352: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:356: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:358: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:360: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:362: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:366: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:368: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:370: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:372: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:376: Warning: Failed to find real start of function: WriteM

pv_asm_ncom.asm:378: Warning: Failed to find real start of function: WriteE

pv_asm_ncom.asm:380: Warning: Failed to find real start of function: WriteA

pv_asm_ncom.asm:382: Warning: Failed to find real start of function: WriteG

pv_asm_ncom.asm:108: Error: branch out of range pv_asm_ncom.asm:110: Error: branch out of range pv_asm_ncom.asm:112: Error: branch out of range pv_asm_ncom.asm:114: Error: branch out of range pv_asm_ncom.asm:116: Error: branch out of range pv_asm_ncom.asm:118: Error: branch out of range pv_asm_ncom.asm:120: Error: branch out of range pv_asm_ncom.asm:122: Error: branch out of range pv_asm_ncom.asm:124: Error: branch out of range pv_asm_ncom.asm:126: Error: branch out of range pv_asm_ncom.asm:128: Error: branch out of range pv_asm_ncom.asm:130: Error: branch out of range pv_asm_ncom.asm:132: Error: branch out of range pv_asm_ncom.asm:134: Error: branch out of range pv_asm_ncom.asm:136: Error: branch out of range pv_asm_ncom.asm:138: Error: branch out of range

C:\Users\David\Desktop\Cobb Fam Desktop\Miscellaneous\rawrms\tules\THUMB ASM Com piler>

P.S. I am aware that my ASM is horrendously inelegant. It's the first such code I have ever written. It's the best way I could find to do what I am attempting to do.

P.P.S. If you're wondering what the comments regarding JPAN's pointers are, in my ASM code... JPAN's special stores pointers to the Pokemon's data substructures. I do not know if the other custom specials rely on those pointers. In case they do, my ASM will, after reordering the data substructures, replace those pointers so that they point to the proper sections. This would prevent problems from arising should one use one of JPAN's other Pokemon-modifying specials after using my ASM, but before re-encrypting.

...

So, does anyone know what's wrong? D:

__________________
  #19165    
Old July 31st, 2011 (6:56 PM).
Cherrysa23 Cherrysa23 is offline
 
Join Date: Apr 2009
Gender:
Posts: 14

hi!
I wanted to make a hack of ruby which I will expand the pokemon bank.

before doing so, I just want to make sure no one did.... I look in the post and found nothing... can someone confirm me no one ever did it? I found nothing for it...

  #19166    
Old July 31st, 2011 (9:48 PM).
mystletainn mystletainn is offline
Master of the Elements
Crystal Tier
 
Join Date: Jun 2007
Location: New York
Age: 26
Gender: Male
Nature: Naughty
Posts: 7,802

You posted this in the Game Development section which is not for hack-related questions. So I've moved it to the ROM hacking forum and merged it with the Quick Questions thread!

__________________
The bloody blade
  #19167    
Old July 31st, 2011 (10:36 PM).
Gamer2020's Avatar
Gamer2020 Gamer2020 is offline
Accept no Imitations!
 
Join Date: Jun 2008
Location: Distant Land
Gender: Male
Nature: Bold
Posts: 846
Send a message via Skype™ to Gamer2020

Quote originally posted by Cherrysa23:
hi!
I wanted to make a hack of ruby which I will expand the pokemon bank.

before doing so, I just want to make sure no one did.... I look in the post and found nothing... can someone confirm me no one ever did it? I found nothing for it...

Someone did do it once but that person never released it. You won't find a ruby version with extra pokemon so you must do it yourself.

__________________

Pokemon Game Editor Download!
Accept no imitations!
  #19168    
Old August 1st, 2011 (12:16 PM).
EdensElite's Avatar
EdensElite EdensElite is offline
No0b, but getting there.
 
Join Date: Jun 2011
Location: UK
Gender: Male
Nature: Bold
Posts: 190

I've given up on my question now

Anyway, How do 'Steal' a Pokemon from a trainer? I assume it's just deleting the script that prevents you from stealing it?

__________________

ROM Hacking was getting frustrating for me. I've now stopped productions and writing the game from scratch in HTML 5.

That means it will be playable in the browser, and across multiple devices such as the iPod touch.
  #19169    
Old August 1st, 2011 (12:20 PM).
Kevin's Avatar
Kevin Kevin is offline
kevin del rey
Silver Tier
 
Join Date: Jul 2010
Location: Virginia
Age: 17
Gender: Male
Posts: 2,689

How do you make overworlds disappear when you enter a map automatically, like after another event.

Sort of like when Team Rocket takes over a place, and after you defeat the boss all the grunts in the maps disappear?

__________________
  #19170    
Old August 1st, 2011 (12:21 PM).
Lyzo's Avatar
Lyzo Lyzo is offline
On vacation
 
Join Date: Mar 2007
Location: The Netherlands
Age: 21
Gender: Male
Nature: Bold
Posts: 251
Send a message via Windows Live Messenger to Lyzo

Quote originally posted by EdensElite:
I've given up on my question now

Anyway, How do 'Steal' a Pokemon from a trainer? I assume it's just deleting the script that prevents you from stealing it?

I assume you mean in battle use a pokeball? You can't simply 'delete' that script, because it isn't a script. It was written into the battle system, and you'd have to use ASM to skip the check for a trainerbattle when you use a pokeball. It's not easy to accomplish, and you'd need knowledge of ASM. So if you REALLY want to, go for it

__________________


Thank you The Blueprint !!!
  #19171    
Old August 1st, 2011 (12:54 PM).
EdensElite's Avatar
EdensElite EdensElite is offline
No0b, but getting there.
 
Join Date: Jun 2011
Location: UK
Gender: Male
Nature: Bold
Posts: 190

Quote originally posted by Lyzo:
I assume you mean in battle use a pokeball? You can't simply 'delete' that script, because it isn't a script. It was written into the battle system, and you'd have to use ASM to skip the check for a trainerbattle when you use a pokeball. It's not easy to accomplish, and you'd need knowledge of ASM. So if you REALLY want to, go for it

Oh...A Patch wouldn't go amiss if anybody wants to upload one with that already done Yeah thats exactly what I mean btw sort of like a Pokemon Colisseum sort of thing.

__________________

ROM Hacking was getting frustrating for me. I've now stopped productions and writing the game from scratch in HTML 5.

That means it will be playable in the browser, and across multiple devices such as the iPod touch.
  #19172    
Old August 1st, 2011 (1:25 PM).
Lyzo's Avatar
Lyzo Lyzo is offline
On vacation
 
Join Date: Mar 2007
Location: The Netherlands
Age: 21
Gender: Male
Nature: Bold
Posts: 251
Send a message via Windows Live Messenger to Lyzo

Quote originally posted by EdensElite:
Oh...A Patch wouldn't go amiss if anybody wants to upload one with that already done Yeah thats exactly what I mean btw sort of like a Pokemon Colisseum sort of thing.

Right, it's probably been done before by someone, but I doubt they'd have uploaded a patch... :\ Bring it up in the Research&Developement forum, in the question thread. People there could probably help you

__________________


Thank you The Blueprint !!!
  #19173    
Old August 1st, 2011 (1:25 PM).
toeter toeter is offline
 
Join Date: Jul 2010
Gender: Male
Posts: 5

Hi, I would like to know if it is possible to link battle music to a specific trainer class in pokémon fire red. I'm not talking about inserting music from another rom. For example the LEADER trainer class is linked to battle 3(hex: 0128 advance map) and CHAMPION to battle 6(hex: 12B in advance map). How do I give someone like a tuber(or someone else) a specific trainer battle song, that is my question. I can't seem to find another way to play a specific song during battle.

Thanks anyway

  #19174    
Old August 1st, 2011 (1:34 PM).
Surigamaru Surigamaru is offline
 
 
Join Date: Oct 2010
Gender: Male
Nature: Calm
Posts: 85

Quote originally posted by Destiny Demon:
How do you make overworlds disappear when you enter a map automatically, like after another event.

Sort of like when Team Rocket takes over a place, and after you defeat the boss all the grunts in the maps disappear?

After defeating the boss, a flag will be set within the battle script; the script that lets you battle the boss. When a flag value is put in the person ID of an OW sprite, the OW disappears. If you notice the grunt's person IDs, you'll find a certain value (eg. in Celadon City, the person ID of the grunt's outside is 005F). Now, if you decompile the script of the boss in the rocket hideout, you'll find a command setflag 0x5F. After it is set and with the flag value in the person ID of the grunts, all grunts with that ID (5F) will disappear.

I hope this helps.

  #19175    
Old August 1st, 2011 (4:52 PM).
xionreaver xionreaver is offline
 
Join Date: Jun 2009
Posts: 2

I edited two maps for trial and error purposes(I'm new to this) and when I go from one map to the other, some of the tiles turn into seemingly random tiles. How would I fix this? I'm hacking Emerald.

Closed Thread
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 GMT -8. The time now is 7:19 PM.