Thursday, April 21, 2016

SNES Harvest Moon Time Hack

Time moves way, way too fast in this game.  This hack needed to be made.

https://dl.dropboxusercontent.com/u/19968993/hm_longer_days_no_intro_1_0.ips

To be used with Harvest Moon (U).smc.  Not tested with other ROMs.

Details:

$82/803B AF 1D 1F 7F LDA $7F1F1D[$7F:1F1D]   A:0000 X:0220 Y:0002 P:envMxdiZC
$82/803F 1A          INC A                   A:0003 X:0220 Y:0002 P:envMxdizC
$82/8040 8F 1D 1F 7F STA $7F1F1D[$7F:1F1D]   A:0004 X:0220 Y:0002 P:envMxdizC
$82/8044 C9 0F       CMP #$0F                A:0004 X:0220 Y:0002 P:envMxdizC

This code increments the game "minutes" and compares them against 0x0F.  If it matches, the hour gets incremented.  This hack changes the 0x0F to 0x7F to effectively slow the progression of hours by a factor of 8.


$80/9CF7 8F 1C 1F 7F STA $7F1F1C[$7F:1F1C]   A:440D X:0220 Y:0002 P:envMxdizc

This block of code increments the hour directly when you transition between certain maps.  This has been replaced by no-ops.


Also, you know what else is annoying?  The amount of people it makes you talk to on a new game before you can even play.  Let's just make that whole thing go away.

$84/BF69 A7 72       LDA [$72]  [$7F:1F74]   A:EB0B X:0000 Y:0032 P:eNvmxdizc
$84/BF6B 25 7E       AND $7E    [$00:007E]   A:0000 X:0000 Y:0032 P:envmxdiZc
$84/BF6D D0 07       BNE $07    [$BF76]      A:0000 X:0000 Y:0032 P:envmxdiZc

Changing this BNE (0xD0) to an unconditional BRA (0x80) skips this check and you can just talk to the one dude to immediately go back to your ranch and start the game.  It even gives you the watering can and all the other crap you're supposed to get from talking to people.

No comments:

Post a Comment