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!

TrollandToad.com
Reply
 
Thread Tools
  #1    
Old January 27th, 2010 (8:10 AM).
Giga Universe's Avatar
Giga Universe Giga Universe is offline
Working on a tool.
  • Crystal Tier
 
Join Date: Aug 2007
Location: South Africa
Age: 22
Gender: Male
Nature: Calm
Posts: 121
Here is a topic that I have been mildly interested in. The idea is to built a script that can be activated during the game play, that allows the player to provide a custom name for a reoccurring character. I built a script that uses a nickname Pokémon Script, and stores the name on one of the buffers. However, I encountered two problems. First, the string buffers 1-3 are commonly used, and therefore would overwrite your rivals names. Second, using the nickname Pokémon Script provides more than 7 characters for the name, and would be inconvenient in dialogue. So, maybe someone could build a mod on the nickname script to force it to store the text in the RAM, usable like a buffer, and force the nickname script to only allow 7 characters? Since I have no ASM experience (I understand basic concepts, but can't code), I cannot investigate this further...
__________________
Reply With Quote

Relevant Advertising!

  #2    
Old January 27th, 2010 (9:12 PM).
liuyanghejerry's Avatar
liuyanghejerry liuyanghejerry is offline
     
    Join Date: Jan 2008
    Location: China,Xi'an
    Nature: Calm
    Posts: 219
    I don't understand you well.
    But using writebytetooffset/loadbytefrompointer/bufferstring commands may help you.
    __________________
    Zel,thethethethe,LU-HO,Darthatron,HackMew,ZodiacDaGreat,Juan,score_under,JPAN,Tamah-chan,I really appreciate your kindness and your help!:D
    Reply With Quote
      #3    
    Old January 28th, 2010 (3:32 AM). Edited October 23rd, 2010 by HackMew.
    HackMew's Avatar
    HackMew HackMew is offline
    Mewtwo Strikes Back
    • Crystal Tier
     
    Join Date: Jun 2006
    Posts: 1,314
    Using buffers is definitely not a good idea, indeed. Also, since the naming special works for Pokémon only, it needs to be hacked to eventually implement a custom rival/etc. naming. Aside from that, having custom names requires some reserved memory area for them. I'm thinking of variables, as with 4 variables you have 8 bytes which means 7 letters + string terminator (0xFF). Then, to use the name you could use the bufferstring command pointing to the first chosen variable address. Even though I never tried using bufferstring with a RAM pointer, it should work fine theoretically.
    __________________
    Reply With Quote
      #4    
    Old January 28th, 2010 (11:13 AM).
    NarutoActor's Avatar
    NarutoActor NarutoActor is offline
    The rocks cry out to me
    • Silver Tier
     
    Join Date: Jan 2009
    Location: Brooklyn/Marlboro
    Age: 23
    Gender: Female
    Nature: Bashful
    Posts: 1,979
    hmm... here is an idea, when it comes to memory can't you just over-ride the old nick name with the new one?
    __________________
    ~There are those people who understand hex, F the rest
    Reply With Quote
      #5    
    Old January 29th, 2010 (8:33 AM). Edited January 29th, 2010 by Giga Universe.
    Giga Universe's Avatar
    Giga Universe Giga Universe is offline
    Working on a tool.
    • Crystal Tier
     
    Join Date: Aug 2007
    Location: South Africa
    Age: 22
    Gender: Male
    Nature: Calm
    Posts: 121
    Making progress. Using Hackmew's suggestion of using variables, which hold 2 characters each, I created a simple script, which uses setvars to set bytes to make up the word 'Giverse'.
    Code:
    #dynamic 0x800000
    
    #org @start
    setvar 0x8000 0xDDC1 'store the Gi
    setvar 0x8001 0xD9EA 'store the ve
    setvar 0x8002 0xE7E6 'store the rs
    setvar 0x8003 0xFFD9 'store the e and the stop (0xFF)
    bufferstring 0x1 0x020370B8 'buffer data located at 0x8000 - 0x8003
    message @1 0x6
    end
    
    #org @1
    = \v\h03
    So, you can buffer a RAM address, it works perfectly. All that needs to be done is make an ASM routine that stores the chosen name to a variable, and then limit the choice of characters to 7.


    EDIT:

    Modified the above script. It copies text stored in buffer 1 directly from the RAM into the variable storage space. It has a custom nickname screen. But it does not limit to 7 characters. Right now, it shows a Bulbsaur instead of a Overworld, and says: "What will Balbasuar's nickname be?"
    Code:
    #dynamic 0x800000
    
    #org @start
    givepokemon 0x1 0x1 0x1 0x0 0x0 0x0
    call 0x1A74EB
    copybyte 0x020370B8 0x0202428c
    copybyte 0x020370B9 0x0202428d
    copybyte 0x020370BA 0x0202428e
    copybyte 0x020370BB 0x0202428f
    copybyte 0x020370BC 0x02024290
    copybyte 0x020370BD 0x02024291
    copybyte 0x020370BE 0x02024292
    copybyte 0x020370BF 0x02024293
    writebytetooffset 0xFF 0x020370C0
    bufferstring 0x1 0x020370B8 'buffer data located at 0x8000 - 0x8003
    message @1 0x6
    special 0x0EF
    end
    
    #org @1
    = Hello, my name is \v\h03!
    __________________
    Reply With Quote
    Reply

    Quick Reply

    Join the conversation!

    Create an account to post a reply in this thread, participate in other discussions, and more!

    Create a PokéCommunity Account

    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 8:21 PM.