Auction House Editing

If it has bytes, we can change it. Talk about anything relating to hacking and emulation here.

Moderators: General Moderator, Game Moderator

Auction House Editing

Postby Gogo13 » Mon Jan 03, 2011 10:09 am

Has anyone edited the auction house?
I'm trying to make ZephyrCape cost more (in the WoR Auction House).
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm

Re: Auction House Editing

Postby Lenophis » Mon Jan 03, 2011 3:03 pm

Gogo13 wrote:Has anyone edited the auction house?

Probably.

I'm trying to make ZephyrCape cost more (in the WoR Auction House).

Best bet is to open up the event dump, find all of the strings involving the cape, and edit the event to your heart's content.
Image
Lenophis
Veteran
Veteran
 
Posts: 588
Joined: Sat Mar 26, 2005 5:52 am
Location: Duluth, MN

Re: Auction House Editing

Postby Gogo13 » Tue Jan 04, 2011 2:00 am

Dang I thought I watched all your vids, and I missed the best one! That's beautiful what you did there.

Couldn't find what the "Event dump" is /fail I'll search the forums more later
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm

Re: Auction House Editing

Postby Lenophis » Wed Jan 05, 2011 7:30 pm

Search here.
Image
Lenophis
Veteran
Veteran
 
Posts: 588
Joined: Sat Mar 26, 2005 5:52 am
Location: Duluth, MN

Re: Auction House Editing

Postby Gogo13 » Thu Jan 06, 2011 12:28 pm

Very nice, thanks again.
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm

Re: Auction House Editing

Postby Gogo13 » Sun Feb 27, 2011 10:34 pm

Lenophis, please ignore this post. One man shouldn't answer so many questions.

So I'm trying to figure out how the auction house knows you don't have enough gold. Anyone know this already? Just throwing this question out there, because of all things that are cool in games, auction houses are one of them. The code is pretty large, so here's what I was focusing on.


Code: Select all
CB/5301: C0    If ($1E80($176) [$1EAE, bit 6] is clear), branch to $CB5AF1
CB/5307: FE    Return

CB/5308: 4B    Display dialogue message $0ABC, wait for button press
               
                   Not enough money…
CB/530B: C0    If ($1E80($176) [$1EAE, bit 6] is clear), branch to $CB5C1D
CB/5311: FE    Return

CB/5312: C1    If ($1E80($06B) [$1E8D, bit 3] is clear) or ($1E80($16C) [$1EAD, bit 4] is set), branch to $CB5460


Code: Select all
CB/5C10: 4B    Display dialogue message $0A4E, wait for button press
               Well, how 'bout it?
CB/5C13: 4B    Display dialogue message $0A5B, wait for button press
               ^ Buy it for 10000 GP.
               ^ I'll pass…
CB/5C16: B6    Indexed branch based on prior dialogue selection [$CB5C57, $CB5C1D]
CB/5C1D: B5    Pause for 15 * 6 (90) units



Code: Select all
CB/5C64: 85    Take 10000 GP from party
CB/5C67: C0    If ($1E80($1BE) [$1EB7, bit 6] is set), branch to $CB5308
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm

Re: Auction House Editing

Postby Novalia Spirit » Mon Feb 28, 2011 12:28 am

Event bit $1BE (RAM address $1EB7, bit 6) is set when gold subtraction produces a negative value and the party's money is thereby left untouched; the bit is otherwise clear. A conditional branch involving the aforementioned bit is basically what determines how the event will proceed.
User avatar
Novalia Spirit
Regular User
Regular User
 
Posts: 268
Joined: Tue Aug 30, 2005 5:30 am
Location: Quebec

Re: Auction House Editing

Postby Gogo13 » Mon Feb 28, 2011 1:16 am

Woohoo, thanks Novalia! Couldn't have done it without you.
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm

Re: Auction House Editing

Postby Gogo13 » Sat Mar 02, 2013 10:06 pm

Code: Select all
Here is what I got to work. I replaced the 1/1200th Airship code with the Hero Ring code and then changed the references to match where the new code needed to point to my changes.  This is just a paste from my excel sheet, and it's not pasting very well here, but you can import it and delimit the text with defined separations and everything excepy the long notes should be organized. (This will also be in an excel tab in my new release).

New Location     Old Location (Some parentheses indicate Changes)                                                                              Notes, and hex codes entered

CB/570C         CB/55B0: BD    Pseudo-randomly jump to $CB570C ($CB58FA) 50% of the time                                 jump to airship (Golem, WoR version) code.   Code entered was BD FA 58 01
         CB/55B4: C0    If ($1E80($255) [$1ECA, bit 5] is set), branch to $CB570C ( $CB58FA)                                 (EA'd) If Hero Ring was bought, jump to airship (Golem, WoR version) code 100% of the time
         CB/55BA: 14    Begin action queue for character $14 (NPC $14), 2 bytes long (Wait until complete)                                 
         CB/55BC: CD        Turn vehicle/entity right                                 
         CB/55BD: FF        End queue                                 
         CB/55BE: 4B    Display dialogue message $0AA7, wait for button press                                 
                        Okay!                                  
                        Here's our next item!                                 
         CB/55C1: 1C    Begin action queue for character $1C (NPC $1C), 4 bytes long (Wait until complete)                                 
         CB/55C3: C2        Set vehicle/entity's event speed to normal                                 
         CB/55C4: 81        Move vehicle/entity right 1 tile                                 
         CB/55C5: 82        Move vehicle/entity down 1 tile                                 
         CB/55C6: FF        End queue                                 
         CB/55C7: 92    Pause for 30 units                                 
         CB/55C8: B2    Call subroutine $CB4EB1                                 
         CB/55CC: B5    Pause for 15 * 6 (90) units                                 
         CB/55CE: 4B    Display dialogue message $0A44, wait for button press                                 
                        Here's a splendid chest.                                 
                        Inside is…                                 
         CB/55D1: B2    Call subroutine $CB4EBA                                 
CB/5731         CB/55D5: 4B    Display dialogue message $0A49 ($0C18), wait for button press                                 
                                                         
                        A “Debilitator”!                                 
                                                         
                        Do I hear 100,000 GP?!                                 
         CB/55D8: 94    Pause for 60 units                                 
         CB/55D9: 15    Begin action queue for character $15 (NPC $15), 5 bytes long                                  
         CB/55DB: CD        Turn vehicle/entity right                                 
         CB/55DC: E0        Pause for 4 * 3 (12) frames                                 
         CB/55DE: CC        Turn vehicle/entity up                                 
         CB/55DF: FF        End queue                                 
000B573C         CB/55E0: 4B    Display dialogue message $0A73 ($0C19), wait for button press                                 
                                                         
                        100,000 GP!                                 
         CB/55E3: 94    Pause for 60 units                                 
         CB/55E4: 12    Begin action queue for character $12 (NPC $12), 5 bytes long                                  
         CB/55E6: CD        Turn vehicle/entity right                                 
         CB/55E7: E0        Pause for 4 * 3 (12) frames                                 
         CB/55E9: CC        Turn vehicle/entity up                                 
         CB/55EA: FF        End queue                                 
000B5747         CB/55EB: 4B    Display dialogue message $0A74 ($0C1A), wait for button press                                 
                                                         
                       200,000 GP!                                 
         CB/55EE: 94    Pause for 60 units                                 
         CB/55EF: 11    Begin action queue for character $11 (NPC $11), 5 bytes long                                  
         CB/55F1: CD        Turn vehicle/entity right                                 
         CB/55F2: E0        Pause for 4 * 3 (12) frames                                 
         CB/55F4: CC        Turn vehicle/entity up                                 
         CB/55F5: FF        End queue                                 
000B5752         CB/55F6: 4B    Display dialogue message $0A75 ($0C13), wait for button press                                 
                                                         
                        300,000 GP!                                 
         CB/55F9: 92    Pause for 30 units                                 
         CB/55FA: 14    Begin action queue for character $14 (NPC $14), 14 bytes long (Wait until complete)                                 
         CB/55FC: CD        Turn vehicle/entity right                                 
         CB/55FD: E0        Pause for 4 * 2 (8) frames                                 
         CB/55FF: CF        Turn vehicle/entity left                                 
         CB/5600: E0        Pause for 4 * 2 (8) frames                                 
         CB/5602: CD        Turn vehicle/entity right                                 
         CB/5603: E0        Pause for 4 * 2 (8) frames                                 
         CB/5605: CF        Turn vehicle/entity left                                 
         CB/5606: E0        Pause for 4 * 2 (8) frames                                 
         CB/5608: CE        Turn vehicle/entity down                                 
         CB/5609: FF        End queue                                 
         CB/560A: 4B    Display dialogue message $0A4E, wait for button press                                 
                        Well, how 'bout it?                                 
000B5769         CB/560D: 4B    Display dialogue message $0A5B ($0C1B), wait for button press                                 
                        ^ Buy it for 500,000 GP.                                 
                        ^ I'll pass…                                 
000B576C         CB/5610: B6    Indexed branch based on prior dialogue selection [$CB5617, $CB5623] (CB/5773, CB/577F)                                 1st Branch buy or pass (B6 73 57 01 7F 57 01
000B5773         CB/5617: 92    Pause for 30 units                                 Buy Code starts
         CB/5618: 31    Begin action queue for character $31 (Party Character 0), 2 bytes long (Wait until complete)                                 
         CB/561A: 1B        Do vehicle/entity graphical action $1B                                  
         CB/561B: FF        End queue                                 
000B5778         CB/561C: 4B    Display dialogue message $0A63 ($0C1C), wait for button press                                 
                                                         
                        500,000 GP!                                 
         CB/561F: 31    Begin action queue for character $31 (Party Character 0), 2 bytes long (Wait until complete)                                 
         CB/5621: CC        Turn vehicle/entity up                                 
         CB/5622: FF        End queue                                 
000B577F         CB/5623: 14    Begin action queue for character $14 (NPC $14), 2 bytes long (Wait until complete)                                 Pass code starts
         CB/5625: CD        Turn vehicle/entity right                                 
         CB/5626: FF        End queue                                 
         CB/5627: 94    Pause for 60 units                                 
         CB/5628: 14    Begin action queue for character $14 (NPC $14), 2 bytes long (Wait until complete)                                 
         CB/562A: CE        Turn vehicle/entity down                                 
         CB/562B: FF        End queue                                 
         CB/562C: 10    Begin action queue for character $10 (NPC $10), 5 bytes long                                  
         CB/562E: CD        Turn vehicle/entity right                                 
         CB/562F: E0        Pause for 4 * 3 (12) frames                                 
         CB/5631: CC        Turn vehicle/entity up                                 
         CB/5632: FF        End queue                                 
000B578F         CB/5633: 4B    Display dialogue message $0A67 ($0C1D), wait for button press                                 
                                                         
                        1,000,000 GP!                                 
         CB/5636: 92    Pause for 30 units                                 
         CB/5637: 16    Begin action queue for character $16 (NPC $16), 5 bytes long                                  
         CB/5639: CD        Turn vehicle/entity right                                 
         CB/563A: E0        Pause for 4 * 3 (12) frames                                 
         CB/563C: CC        Turn vehicle/entity up                                 
         CB/563D: FF        End queue                                 
000B579A         CB/563E: 4B    Display dialogue message $0A64 ($0C1E), wait for button press                                 
                                                         
                        2,250,000 GP!                                 
         CB/5641: 92    Pause for 30 units                                 
         CB/5642: 13    Begin action queue for character $13 (NPC $13), 5 bytes long                                  
         CB/5644: CD        Turn vehicle/entity right                                 
         CB/5645: E0        Pause for 4 * 3 (12) frames                                 
         CB/5647: CC        Turn vehicle/entity up                                 
         CB/5648: FF        End queue                                 
000B57A5         CB/5649: 4B    Display dialogue message $0A65 ($0C1F), wait for button press                                 
                                                         
                        5,000,000 GP!                                 
         CB/564C: 94    Pause for 60 units                                 
         CB/564D: 14    Begin action queue for character $14 (NPC $14), 14 bytes long (Wait until complete)                                 
         CB/564F: CD        Turn vehicle/entity right                                 
         CB/5650: E0        Pause for 4 * 2 (8) frames                                 
         CB/5652: CF        Turn vehicle/entity left                                 
         CB/5653: E0        Pause for 4 * 2 (8) frames                                 
         CB/5655: CD        Turn vehicle/entity right                                 
         CB/5656: E0        Pause for 4 * 2 (8) frames                                 
         CB/5658: CF        Turn vehicle/entity left                                 
         CB/5659: E0        Pause for 4 * 2 (8) frames                                 
         CB/565B: CE        Turn vehicle/entity down                                 
         CB/565C: FF        End queue                                 
         CB/565D: 4B    Display dialogue message $0A4E, wait for button press                                 
                        Well, how 'bout it?                                 
000B57BC         CB/5660: 4B    Display dialogue message $0A5C ($0C20), wait for button press                                 4B 20 0C
                        ^ Buy it for 9,900,900 GP.                                 
                        ^ I'll pass…                                 
000B57BF         CB/5663: B6    Indexed branch based on prior dialogue selection [$CB56B4, $CB566A] (CB/5810, CB/57C6)                                 2nd Buy or Pass branch (B6 10 58 01 C6 57 01
000B57C6         CB/566A: B5    Pause for 15 * 6 (90) units                                 Pass Code starts here
         CB/566C: 14    Begin action queue for character $14 (NPC $14), 4 bytes long (Wait until complete)                                 
         CB/566E: C3        Set vehicle/entity's event speed to fast                                 
         CB/566F: 83        Move vehicle/entity left 1 tile                                 
         CB/5670: CE        Turn vehicle/entity down                                 
         CB/5671: FF        End queue                                 
         CB/5672: 4B    Display dialogue message $0AB7, wait for button press                                 
                        Sold, to this lucky person.                                 
                        Take it away, please!                                 
         CB/5675: F4    Play sound effect 225                                 
         CB/5677: 13    Begin action queue for character $13 (NPC $13), 13 bytes long (Wait until complete)                                 
         CB/5679: C3        Set vehicle/entity's event speed to fast                                 
         CB/567A: C8        Set object layering priority to 1 (low nibble 1)                                 
         CB/567C: DC        Make vehicle/entity jump (low)                                 
         CB/567D: E0        Pause for 4 * 4 (16) frames                                 
         CB/567F: DC        Make vehicle/entity jump (low)                                 
         CB/5680: E0        Pause for 4 * 4 (16) frames                                 
         CB/5682: DC        Make vehicle/entity jump (low)                                 
         CB/5683: E0        Pause for 4 * 4 (16) frames                                 
         CB/5685: FF        End queue                                 
         CB/5686: 13    Begin action queue for character $13 (NPC $13), 4 bytes long (Wait until complete)                                 
         CB/5688: 80        Move vehicle/entity up 1 tile                                 
         CB/5689: 8D        Move vehicle/entity right 4 tiles                                 
         CB/568A: CC        Turn vehicle/entity up                                 
         CB/568B: FF        End queue                                 
         CB/568C: F4    Play sound effect 141                                 
         CB/568E: B2    Call subroutine $CB4EC3                                 
         CB/5692: 92    Pause for 30 units                                 
         CB/5693: 14    Begin action queue for character $14 (NPC $14), 3 bytes long                                  
         CB/5695: 81        Move vehicle/entity right 1 tile                                 
         CB/5696: CE        Turn vehicle/entity down                                 
         CB/5697: FF        End queue                                 
         CB/5698: 1C    Begin action queue for character $1C (NPC $1C), 4 bytes long                                  
         CB/569A: 80        Move vehicle/entity up 1 tile                                 
         CB/569B: 83        Move vehicle/entity left 1 tile                                 
         CB/569C: CE        Turn vehicle/entity down                                 
         CB/569D: FF        End queue                                 
         CB/569E: 13    Begin action queue for character $13 (NPC $13), 4 bytes long (Wait until complete)                                 
         CB/56A0: 85        Move vehicle/entity right 2 tiles                                 
         CB/56A1: 96        Move vehicle/entity down 6 tiles                                 
         CB/56A2: D1        Make vehicle/entity disappear                                 
         CB/56A3: FF        End queue                                 
         CB/56A4: F4    Play sound effect 255                                 
         CB/56A6: 4B    Display dialogue message $0AB9, wait for button press                                 
                        Well, that's all for today!                                 
                        Come back again real soon!                                 
         CB/56A9: 31    Begin action queue for character $31 (Party Character 0), 3 bytes long (Wait until complete)                                 
         CB/56AB: C2        Set vehicle/entity's event speed to normal                                 
         CB/56AC: 80        Move vehicle/entity up 1 tile                                 
         CB/56AD: FF        End queue                                 
         CB/56AE: C0    If ($1E80($176) [$1EAE, bit 6] is clear), branch to $CA5EB3 (simply returns)                                 
000B5810         CB/56B4: 92    Pause for 30 units                                 Buy Code starts here
         CB/56B5: 31    Begin action queue for character $31 (Party Character 0), 2 bytes long (Wait until complete)                                 
         CB/56B7: 1B        Do vehicle/entity graphical action $1B                                  
         CB/56B8: FF        End queue                                 
000B5815         CB/56B9: 4B    Display dialogue message $0A68 ($0C21), wait for button press                                 
                                                         
                        9,900,900 GP!                                 
         CB/56BC: 31    Begin action queue for character $31 (Party Character 0), 2 bytes long (Wait until complete)                                 
         CB/56BE: CC        Turn vehicle/entity up                                 
         CB/56BF: FF        End queue                                 
000B581C         CB/56C0: 85    Take 50000 (65535, now 9,900,900) GP from party                                 Take gold
         CB/56C3: C0    If ($1E80($1BE) [$1EB7, bit 6] is set), branch to $CB52E0 ($CB5880)                                 If 1EB7 bit 6 is set (not enough gold) then branch to not enough gold message at CB/52E0 (CB/5880)
000B5825         CB/56C9: 14    Begin action queue for character $14 (NPC $14), 4 bytes long (Wait until complete)                                 
         CB/56CB: C3        Set vehicle/entity's event speed to fast                                 
         CB/56CC: 81        Move vehicle/entity right 1 tile                                 
         CB/56CD: CE        Turn vehicle/entity down                                 
         CB/56CE: FF        End queue                                 
         CB/56CF: 4B    Display dialogue message $0AB7, wait for button press                                 
                        Sold, to this lucky person.                                 
                        Take it away, please!                                 
         CB/56D2: F4    Play sound effect 225                                 
         CB/56D4: 31    Begin action queue for character $31 (Party Character 0), 11 bytes long (Wait until complete)                                 
         CB/56D6: C3        Set vehicle/entity's event speed to fast                                 
         CB/56D7: DC        Make vehicle/entity jump (low)                                 
         CB/56D8: E0        Pause for 4 * 4 (16) frames                                 
         CB/56DA: DC        Make vehicle/entity jump (low)                                 
         CB/56DB: E0        Pause for 4 * 4 (16) frames                                 
         CB/56DD: DC        Make vehicle/entity jump (low)                                 
         CB/56DE: E0        Pause for 4 * 4 (16) frames                                 
         CB/56E0: FF        End queue                                 
         CB/56E1: 14    Begin action queue for character $14 (NPC $14), 3 bytes long                                  
         CB/56E3: 83        Move vehicle/entity left 1 tile                                 
         CB/56E4: CE        Turn vehicle/entity down                                 
         CB/56E5: FF        End queue                                 
         CB/56E6: 1C    Begin action queue for character $1C (NPC $1C), 4 bytes long                                  
         CB/56E8: 80        Move vehicle/entity up 1 tile                                 
         CB/56E9: 83        Move vehicle/entity left 1 tile                                 
         CB/56EA: CE        Turn vehicle/entity down                                 
         CB/56EB: FF        End queue                                 
         CB/56EC: 30    Begin action queue for character $30 (Camera), 3 bytes long                                  
         CB/56EE: C2        Set vehicle/entity's event speed to normal                                 
         CB/56EF: 85        Move vehicle/entity right 2 tiles                                 
         CB/56F0: FF        End queue                                 
         CB/56F1: 31    Begin action queue for character $31 (Party Character 0), 4 bytes long (Wait until complete)                                 
         CB/56F3: 80        Move vehicle/entity up 1 tile                                 
         CB/56F4: 85        Move vehicle/entity right 2 tiles                                 
         CB/56F5: CC        Turn vehicle/entity up                                 
         CB/56F6: FF        End queue                                 
         CB/56F7: 35    Pause execution until action queue for object $30 (Camera) is complete                                 
         CB/56F9: F4    Play sound effect 141                                 
         CB/56FB: B2    Call subroutine $CB4EC3                                 
00B585B         CB/56FF: 80    Add item $C9 (<C9>Hero Ring   ) ($A7 (<A7>Debilitator   )) to inventory                                 Add Item A7 debilitator
         CB/5701: 4B    Display dialogue message $0C22, wait for button press                                 4B 22 0C
                                                         
                            Bought a “Debilitator”!                                 
         CB/5704: F4    Play sound effect 255                                 
         CB/5706: 4B    Display dialogue message $0AB9, wait for button press                                 
                        Well, that's all for today!                                 
                        Come back again real soon!                                 
000B5865         CB/5709: D4    Set event bit $1E80($255) [$1ECA, bit 5] (MUST CHANGE TO FE)                                 (FE, then EA'd after) Set 1ECA bit 5 to make hero ring not buyable again, see bit check at beginning of this section
000B5867         CB/570B: FE    Return (EA'd)                                 
                                          
                                          
                                          
         New Money Check                                 
000B5880         CB/52D6: 4B    Display dialogue message $0ABC, wait for button press                        If the 1EB7 bit 6 (not enough gold) is set when trying to buy Wall Ring, you're jumped here. Note: the bit seems to automatically set itself based on your GP         
                                                4B BC 0A         
                            Not enough money…                                 
000B5883         CB/52D9: C0    If ($1E80($176) [$1EAE, bit 6] is clear), branch to $CB4F73 ($CB57C6)                        This bit seems always to be clear, so branch to code for passing up the purchase of Wall Ring. Code is C0 76 01 73 4F 01 (C0 76 01 C6 57 01)         
000B588A         CB/52DF: FE    Return                                 
                                          
                                          
                                          
                                          
                                          
                                          
000B58F9         EA'd the end of the airship code                                 




[size=100]Drakkhen's Extra Gold Buying Code Implemented[/size]
This code was implemented to make my item cost 9,900,900 GP whenever I tell the game to take 655535 GP (Code FF FF).  I'm not sure if this only works with event code (rather than item shop buying), as it's a specific code to tell the game to take $$$ during specific game events (in this case, the auction house purchase of a debilitator).

Hex Address        Code and Theoretical Address                                                 
0000AD89   C0/AD89: 4C XX YY      JMP $New Function               (4C 70 DE was entered)      
      ...                     
                           
      New Function -- Place somewhere in bank C0                     
                           
                I entered all this code starting at 0000DE70
0000DE70   C0/DE70   C0/YYXX: A5 EB         LDA $EB                     
      C0/####: 1A            INC                     
      C0/####: F0 06         BEQ $####                     
      C0/####: AD 60 18      LDA $1860                     
      C0/####: 4C 8C AD      JMP $AD8C                     
      C0/####: AD 60 18      LDA $1860                     
      C0/####: 38            SEC                     
      C0/####: E9 64 13      SBC #$1364                     
      C0/####: 85 2A         STA $2A                     With this in place, trying to take 65535 GP should take 9900900 GP instead.
      C0/####: 7B            TDC                     
      C0/####: E2 20         SEP #$20                     
      C0/####: AD 62 18      LDA $1862                     
      C0/####: E9 97         SBC #$97                     
      C0/####: 85 2C         STA $2C                     
      C0/####: C9 40         CMP #$40                     
      C0/####: 90 03         BCC $????                     
      C0/####: 4C 9F AD      JMP $AD9F                     
0000DE97      C0/####: 4C A9 AD      JMP $ADA9                     
Ends at C0/DE97
User avatar
Gogo13
Regular User
Regular User
 
Posts: 163
Joined: Sun Nov 14, 2010 10:42 pm


Return to ROM Hacking and Emulation

Who is online

Users browsing this forum: No registered users and 1 guest

cron