Enabling the blue chest without having to save the blacksmith's partner

View previous topic View next topic Go down

Enabling the blue chest without having to save the blacksmith's partner

Post by SePH on Tue 2 Jun 2015 - 20:40

^Pretty much what the topic says.

In the original game you have to rescue the frog blacksmith in the dark world in order to enable the blue chest to be seen.

Is there any way to change the quest flag to mark the blacksmith partner as saved already?

In case that can help here's MoN disassembly on that:

Code:
    ; *$30A59-$30A78 JUMP LOCATION
    SpritePrep_ThiefChest:
    {
        ; Purple Treasure chest initializer
        
        ; If Link already has the chest following him no reason to spawn another
        LDA $7EF3CC : CMP.b #$0C : BEQ .self_terminate
        
        ; If chest has been opened already just kill next time it spawns.
        LDA $7EF3C9 : AND.b #$10 : BNE .self_terminate
        
        ; Chest hasn't been opened but Smithy also hasn't been saved...
        ; In other words, saving the smithy partner allows us to start on this
        ; side quest in the first place.
        LDA $7EF3C9 : AND.b #$20 : BEQ .self_terminate
        
        INC $0BA0, X
        
        RTS
    
    parallel pool SpritePrep_Dwarf:
    
    .self_terminate
    
        STZ $0DD0, X
        
        RTS
    }

SePH
    
    

Since : 2012-06-19

Back to top Go down

Re: Enabling the blue chest without having to save the blacksmith's partner

Post by Conn on Wed 3 Jun 2015 - 7:01

Check Mon's srm.log:
Code:
Progress Indicator 3 (bitwise)
$3C9: 0: If set, means the bum gave you his bottle already.
      1: If set, means that the salesman in the village sold you a bottle already
      2:
      3: Flute Boy (DW) has been arborated
      4: Thief's Chest has been opened by the middle aged guy
      5: After you save the Smithy's partner, this bit gets set.
      6:
      7: Means Smithies have your sword. Once they give it back it's no longer set. (so nonpermanent)
these are bit flags:
bit 7: 80
bit 6: 40
bit 5: 20
bit 4: 10
bit 3: 8
bit 2: 4
bit 1: 2
bit 0: 1
If you set all 8 bits (1111 1111) and calculate all together in hex you get the max value FF for a byte.
Bit 4 is set:
7ef3c9-10: Thief's Chest has been opened by the middle aged guy
bit 5 is set:
7ef3c9-20: After you save the Smithy's partner, this bit gets set.

So when I cheat with 7ef3c9-20 with a savestate where I already opened the chest, the chest respawns.

For Conker I suggest you use the srm modifier, which currently is (please check, I can be wrong):

Code:

lorom
org $0cdc5a ; jsr to main code
jsr $ffb1

org $0cffb1 ; main code

LDA #$0013              
STA $7003C7,x
LDA #$0000
STA $700359,x
LDA #$0707
STA $700370,x
LDY #$0000
RTS

Modify it to
Code:

lorom
org $0cdc5a ; jsr to main code
jsr $ffb1

org $0cffb1 ; main code

LDA #$0013              
STA $7003C7,x
LDA #$0000
STA $700359,x
LDA #$0707
STA $700370,x
LDA #$0020
STA $7003c9,x
LDY #$0000
RTS

You see that we only add
LDA #$0020
STA $7003c9,x

before LDY #$0000

this stores the value 20 to 7003c9,x which is the srm mirror of ram 7ef3c9, such bit 5 will be set - this means we already saved the smith's partner but didn't open the chest yet (this case would be 30, bit 4 and 5 set).
We also set 7ef3ca to 00 since it is a 2 byte read, but this is 00 anyways since we are in light world in conker.
I hope I didn't overextend the answer and confuse you. In short adding to your srm modifier

LDA #$0020
STA $7003c9,x

before LDY #$0000
will do the job Wink
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Enabling the blue chest without having to save the blacksmith's partner

Post by SePH on Thu 4 Jun 2015 - 9:44

Alright thanks!

Been wondering for a while how the blue chest worked, so now I'll be able to add it in some place and hide the thief who unlocks it in another universe ;-)

SePH
    
    

Since : 2012-06-19

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum