Harvest Moon SNES

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
Oziphantom
Posts: 1115
Joined: Tue Feb 07, 2017 2:03 am

Harvest Moon SNES

Post by Oziphantom » Fri Feb 26, 2021 2:42 am

So I started digging into the "Holy Grail" Tokimeki Memorial but found the tools lacking, so I've gone back to Harvest Moon which I have done a fair amount of digging in before to get my base line tools up and working before tackling TM. However going from TM to HM is a hell of a drop in code quality. At first I just blamed it on MACRO hell, but I'm starting to think that they just use a really bad compiler. Any body know an info on if they or other games by the dev have been reported as using some compiled language?

Oziphantom
Posts: 1115
Joined: Tue Feb 07, 2017 2:03 am

Re: Harvest Moon SNES

Post by Oziphantom » Fri Feb 26, 2021 5:03 am

for example

Code: Select all

                  ****************************************
                  *              SUBROUTINE              *
                  ****************************************
                  SUB_858bb0                     XREF[1] 8584d4(c)  
    858bb0 C2 30     REP    #$0x30                          A16  XY16 
    858bb2 48        PHA
    858bb3 A5 9F     LDA    <$offset DAT_7e009f            = ??
    858bb5 29 40     AND    #$0x40
           00
    858bb8 F0 14     BEQ    $LAB_858bce
    858bba 80 08     BRA    $LAB_858bc4
                  ****************************************
                  *              SUBROUTINE              *
                  ****************************************
                  SUB_858bbc                     XREF[1] 8584f5(c)  
    858bbc 48        PHA
    858bbd A5 9F     LDA    <$offset DAT_7e009f            = ??
    858bbf 29 80     AND    #$0x80
           00
    858bc2 F0 0A     BEQ    $LAB_858bce
                  LAB_858bc4                     XREF[1] 858bba(j)  
    858bc4 68        PLA
    858bc5 49 FF     EOR    #$0xffff
           FF
    858bc8 1A        INC
    858bc9 18        CLC
    858bca 69 F0     ADC    #$0xfff0
           FF
    858bcd 60        RTS
                  LAB_858bce                     XREF[2] 858bb8(j), 
                                                         858bc2(j)  
    858bce 68        PLA
    858bcf 60        RTS
beq'ing to a seperate code chunk that does a pla rts rather than

Code: Select all

BNE $LAB_858bc4
PLA
RTS
sounds to me, something following what "C" does to the letter rather than coder making logic in ASM.

Post Reply