There was going to be a "Honey Grandma" (mitsu-baasan) who gave you Sweet Honey collected by her Butterfree. You could spread this from your Honey Pot onto Headbutt trees, and shaking them with Headbutt a day or two later would guarantee a Heracross.
All that's left of it in the final ROM is text for the NPC in data/text/unused_sweet_honey.asm.
The p20430.txt changelog introduces the Honey Pot feature.
- ・みつのつぼを使ってみつを木にぬると、
次の日、木を揺らした時に、100%ヘラクロスとエンカウント- Using a honey pot to soak honey into a tree,
Encounter with 100% Heracross the next day when you rock the tree
The p20805.txt changelog replaces it with Sweet Scent.
- ●あまいかおりのフィールド効果が入りました。
●あまいみつ関連の仕様&イベントが削除されました。- ● The field effect of Sweet Scent has been added.
● Sweet Honey related specifications & events have been deleted.
Some unidentified labels in pokecrystal have to do with Honey.
Disasm Name | Original Name | Disasm File | Original File | Details |
---|---|---|---|---|
ENGINE_0A |
EvBit_have_honey |
constants/engine_flags.asm | EVENT.DMG | |
add_special UnusedCheckUnusedTwoDayTimer |
PRG_HoneyCheck |
data/special_pointers.asm | EVENT.DMG | |
UnusedCheckUnusedTwoDayTimer |
HoneyCheck |
engine/events/specials.asm | EVENT.DMG | |
SetUnusedTwoDayTimer |
EvTimeInit_Honey |
engine/overworld/time.asm | TM_CHECK.DMG | |
CheckUnusedTwoDayTimer |
EvTimeCheck_Honey |
engine/overworld/time.asm | TM_CHECK.DMG | |
wUnusedTwoDayTimerOn |
EvHoneyWork |
wram.asm | EVENT.H | This one label was used for seven bytes; their meanings are commented above HoneyPot . |
ITEM_B3 |
179 |
constants/item_constants.asm | EVENT.H | "HONEY_POT " would be appropriate. |
EVENT_03B |
FE_TUBOGET_r36_01 |
constants/event_constants.asm | SCRIPT/SAVEFLAG.DEF | Commented ";蜜の壷をもらった ", "I got a Honey Pot" |
This backed-up data in ITEM_GUI.DAT has the Honey Pot item description:
ItemGuide179$: ;みつのつぼ
db a_,ma_,bou@,i_,spc@,mi_,tu_,wo_,spc@,ta_,me_,ru_,spc@,tu_,bo_
db cr@
db mi_,tu_,no_,spc@,ni_,o_,i_,ga_,spc@,si_,mi_,tu_,i_,te_,i_,ru_
db EOM
"A pot for storing SWEET HONEY. It has an ingrained honey scent."
This commented code in USEITEM.DMG (after UseRod
in engine/items/item_effects.asm) would have called the Honey Pot item effect.
;item_honey:
; extern HoneyPot
; BCALL G_BANK04,HoneyPot
; ret
This dummied-out code in ITEMBOX.DMG (before FindItemInBallScript
in engine/events/misc_scripts.asm) would have implemented the Honey Pot item effect. It also has a comment describing the meanings of the EvHoneyWork
bytes.
ifn 0
;=======================================================================;
;
; どうぐ:ミツのつぼ
;
;-----------------------------------------------------------------------;
;EvHoneyWork
; + 0 : フラグ [Flag]
; : 0:蜜を持っていない [0: do not have Honey]
; : 1:蜜を持っている [1: do have Honey]
; + 1 : カウンタ [Counter]
; : 0:時間切れ [Time out]
; : 1:塗った次の日 [Next day after spreading]
; : 2:塗ったその日 [The day of spreading]
; + 2 : チェック時間を保持する [Hold check time]
; + 3 : ゾーンナンバー [Zone number (aka "map group")]
; + 4 : マップナンバー [Map number]
; + 5 : X座標 [X coordinate]
; + 6 : Y座標 [Y coordinate]
;=======================================================================;
public EvHoneyWork
public HoneyPot
HoneyPot:
call HoneyPotUseCheck
and GET_MSG_MASK
ld (work_event),a
ret
HoneyPotUseCheck:
call get_hero_site_atr
push de
call ShakeTreeAttrCheck
pop de
jr nz,failed$
ld hl,EvHoneyWork+0
bit 0,(hl)
jr z,no_honey$
res 0,(hl)
inc hl
inc hl
inc hl
ld a,(zone_no)
ld (hli),a
ld a,(mapno)
ld (hli),a
ld (hl),d
inc hl
ld (hl),e
extern EvTimeInit_Honey
BCALL G_BANK04,EvTimeInit_Honey
ld hl,HoneyEvent
call ReserveNowBankEvent
; ld a,<nowbank
; ld hl,HoneyEvent
; call reserve_event
ld a,END_SEQ + SUCCESS_RESULT
ret
failed$:
ld a,END_SEQ + FAIL_MSG_RESULT
ret
no_honey$:
ld hl,NoHoneyEvent
call ReserveNowBankEvent
; ld a,nowbank
; ld hl,NoHoneyEvent
; call reserve_event
ld a,END_SEQ+SUCCESS_RESULT
ret
;-----------------------------------------------------
; スクリプト:ミツを塗るイベント
;-----------------------------------------------------
HoneyEvent:
db E_REWRITE_MAP
db E_ID_PROGRAM
dw PRG_pal_reset
db E_MSG
dw msg$
db E_SE
dw musfanfare
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
msg$:
db D_MSG
db myname@,ha_,spc@,mi__,tu__,wo_
db home@
db ki_,no_,mi_,ki_,ni_,spc@,nu_,ttu_,ta_,gyoe@
db EOMeom
;-----------------------------------------------------
; スクリプト:ミツがなかったとき
;-----------------------------------------------------
NoHoneyEvent:
db E_REWRITE_MAP
db E_ID_PROGRAM
dw PRG_pal_reset
db E_MSG
dw msg$
db E_SE
dw musboboo
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
msg$:
db D_MSG
db myname@,ha_
db home@
db mi__,tu__,wo_,spc@,ki_,ni_,spc@,nu_,ro_,u_,to_,si_,ta_,tenten2@
db normal@
db si_,ka_,si_,spc@,tu_,bo_,no_,spc@,na_,ka_,ha_
db home@
db ka_,ra_,ttu_,po_,spc@,da_,ttu_,ta_,gyoe@
db EOMeom
endif
This partly dummied-out code in ITEMBOX.DMG (starting at UseHeadbuttText
in engine/events/overworld.asm) would have made spread Sweet Honey affect Headbutt trees.
;-----------------------------------------------------------------------;
;
;-----------------------------------------------------------------------;
extern GetLimitedRandom
extern EvTimeCheck_Honey
extern rnd
;-----------------------------------------------------------------------;
;-----------------------------------------------------------------------;
ShakeTree_msg_001:
extern ShakeTree_msg_001_026_Itembox
db I_MSG2
dw ShakeTree_msg_001_026_Itembox
db I_MSG2BNK1 ;{mv_msgツール挿入 バンク#}
db EOM ;{mv_msgツール挿入}
ShakeTree_msg_002:
extern ShakeTree_msg_002_027_Itembox
db I_MSG2
dw ShakeTree_msg_002_027_Itembox
db I_MSG2BNK1 ;{mv_msgツール挿入 バンク#}
db EOM ;{mv_msgツール挿入}
;-----------------------------------------------------------------------;
; 木を揺らすイベント
;-----------------------------------------------------------------------;
ShakeEncountEvent:
db E_REWRITE_MAP
db E_ID_PROGRAM
dw PRG_pal_reset
ShakeEncountEventMain:
db E_PROGRAM
db nowbank
dw GetTheCapsuleName
db E_MSG
dw ShakeTree_msg_001
db E_REWRITE_MAP
db E_PROGRAM
db G_BANK23
dw TreeShakeEffect
db E_PROGRAM
db G_BANK2e
dw ShakeTreeEncCheck
db IF_ZERO_JUMP
dw NotEncount$
db MSG_MODE_END
db E_ENCOUNT_FIGHT ;990802 by tama
db E_GO_FIGHT
db E_AFTER_FIGHT
db E_END
NotEncount$:
db E_MSG
dw ShakeTree_msg_002
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
;-----------------------------------------------------------------------;
; 揺らせる木に話しかけたとき
;-----------------------------------------------------------------------;
public TalkToShakeTree
TalkToShakeTree:
ld d,029 ; ずつきのわざナンバー
call HidenWazaSearch
jr c,no_zutsuki$
ld a,<nowbank
ld hl,TreeShakeCallScript
call SetEventDirect
scf
ret
no_zutsuki$:
xor a
ret
ifn 0
; ずつきを持っていないときは反応しなくしたので
; このスクリプトは不要になった。
ld a,<nowbank
ld hl,TreeShakeCommentScript
call SetEventDirect
scf
ret
TreeShakeCommentScript:
db MSG_MODE_START
db E_PROGRAM
db nowbank
dw HoneyTreeCheck
db E_MSG
dw msg$
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
msg$:
db D_MSG
db yu_,ra_,se_,ba_,spc@,poke@,ga_
db home@
db de_,te_,ku_,ru_,spc@,ka_,mo_,tenten2@
db EOMeom
endif
;---------------------------------------------------;
; ずつきで木を揺らした時のイベントスクリプト
;---------------------------------------------------;
TreeShakeCallScript:
db MSG_MODE_START
ifn 0
db E_PROGRAM
db nowbank
dw HoneyTreeCheck
endif
db E_MSG
dw ask_msg$
db E_YESNO
db IF_N_ZERO_JUMP
dw ShakeEncountEventMain
db MSG_MODE_END
db E_END
ask_msg$:
extern ask_msg_028_Itembox
db I_MSG2
dw ask_msg_028_Itembox
db I_MSG2BNK1 ;{mv_msgツール挿入 バンク#}
db EOM ;{mv_msgツール挿入}
ifn 0
;---------------------------------------------------;
; ミツを塗っていた場合、それに応じてMSG表示
;---------------------------------------------------;
HoneyTreeCheck:
call HoneyPosCheck
ret nz
BCALL G_BANK04,EvTimeCheck_Honey
ld a,(EvHoneyWork + 1)
and a
ret z ; → 2日以上経過
ld hl,msg2$
cp 1 ; → 塗った翌日
jr z,put$
cp 2
ret nz
ld hl,msg1$ ; → 塗った当日
put$:
call push_win_msg
ret
msg1$:
db D_MSG
db ko_,ko_,ni_,ha_,spc@,ki_,yyo_,u_,spc@,mi__,tu__,wo_
db home@
db nu_,ttu_,ta_,zo_,gyoe@
db EOMwaiteom
msg2$:
db D_MSG
db ko_,no_,ki_,ni_,ha_,spc@,ki_,no_,u_,spc@,mi__,tu__,wo_
db home@
db nu_,ttu_,ta_,zo_,gyoe@
db EOMwaiteom
;---------------------------------------------------;
; Out : Zero Flg ON 自機の目の前がミツを塗った場所
;---------------------------------------------------;
HoneyPosCheck:
ld hl,EvHoneyWork + 3
ld a,(zone_no)
cp (hl)
ret nz
inc hl
ld a,(mapno)
cp (hl)
ret nz
call get_hero_site_atr
ld a,(EvHoneyWork + 5)
cp d
ret nz
ld a,(EvHoneyWork + 6)
cp e
ret
endif
This dummied-out code in ITEMBOX.DMG (before GetTreeMon
in engine/events/treemons.asm) would have made the Honey Pot affect the encounter tables of Headbutt trees. (NormalEncChk
is pokecrystal's GetTreeMon
.)
;---------------------------------------------------;
; ミツのチェック、エンカウント率のチェック、
; エンカウントポケモンのナンバー・レベルの取得
; Out : Carry ON エンカウントした
; : event_fight_no
; : mons_level
;---------------------------------------------------;
public ShakeEncRateCheck
ShakeEncRateCheck:
ifn 0
push hl
BCALL G_BANK03,HoneyPosCheck
pop hl
jr nz,NormalEncChk
push hl
BCALL G_BANK04,EvTimeCheck_Honey
pop hl
ld a,(EvHoneyWork + 1)
cp 1
jr z,NormalEncChk
jr PassTableSelEncMons
endif
NormalEncChk:
push hl
call CalcID_XY
pop hl
and a
jr z,hazure$
; jr z,no_encount
cp 1
jr z,hit$
; jr z,SelectEncMons
cp 2
jr z,big_hit$
; jr z,PassTableSelEncMons
ret
hazure$: ; 1/10
ld a,10
call GetLimitedRandom
and a
jr nz,no_encount
jr SelectEncMons
hit$: ; 5/10
ld a,10
call GetLimitedRandom
cp 5
jr nc,no_encount
jr SelectEncMons
big_hit$: ; 8/10
ld a,10
call GetLimitedRandom
cp 8
jr nc,no_encount
jr PassTableSelEncMons
This debug script in D_EVENT.DMG (after db 0 ; unused
in engine/events/mom_phone.asm) would have given the player a Honey Pot.
ifn 0
TestEvAddHoneyPot:
db MSG_MODE_START
db E_CHECK_ITEM
db 179
db IF_N_ZERO_JUMP
dw end$
db E_ADD_ITEM
db 179
db 1
db E_SE
dw musfanfare4
db E_MSG
dw msg$
db E_WAIT_COUNT
db 60
db E_AB_BTN_WAIT
db E_ADD_ITEM_MSG
end$:
db E_SET_SYS_FLAG
dw EvBit_have_honey
db MSG_MODE_END
db E_END
msg$:
db D_MSG
db mi__,tu__,no_,tu_,bo_,wo_,spc@,mo_,ra_,ttu_,ta_,gyoe@
db EOMeom
endif
And this debug script in D_EVENT.DMG would have had the Honey Grandma put Sweet Honey in the Honey Pot:
ifn 0
TestEvHoneyGran_mum:
db MSG_MODE_START
db E_MSG
dw msg_x_01
db E_AB_BTN_WAIT
db E_CHECK_ITEM
db 179 ; みつのつぼを持っている?
db IF_ZERO_JUMP
dw ev_x_06
db E_CHECK_SYS_FLAG
dw EvBit_have_honey ; みつがある?
db IF_N_ZERO_JUMP
dw ev_x_07
db E_ID_PROGRAM
dw PRG_HoneyCheck ; ミツの効果が持続している?
db IF_JUMP
db 1
dw ev_x_08
db IF_JUMP
db 2
dw ev_x_04
db E_MSG
dw msg_x_02
db E_SET_SYS_FLAG
dw EvBit_have_honey ; ミツをもらった!
db E_SE
dw musfanfare4
db E_MSG
dw msg_x_03
db E_WAIT_COUNT
db 60
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
ev_x_04:
db E_MSG
dw msg_x_04
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
ev_x_06:
db E_MSG
dw msg_x_06
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
ev_x_07:
db E_MSG
dw msg_x_07
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
ev_x_08:
db E_MSG
dw msg_x_08
db E_AB_BTN_WAIT
db MSG_MODE_END
db E_END
msg_x_01:
db D_MSG
db wa_,ta_,si_,ha_,spc@,mi__,tu__,ba_,a_,sa_,n_,gyoe@
db EOMeom
msg_x_02:
db D_MSG
db mi__,tu__,wo_,spc@,tu_,ka_,ttu_,te_,mi_,ta_,ne_,hate@
db home@
db me_,zu_,ra_,si_,i_,spc@,poke@,mi_,tu_,ka_,ttu_,ta_,hate@
db normal@
db ma_,ta_,spc@,wa_,ke_,te_,spc@,a_,ge_,yo_,u_,gyoe@
db EOMwaiteom
msg_x_03:
db D_MSG
db mi__,tu__,wo_,spc@,wa_,ke_,te_,mo_,ra_,ttu_,ta_,gyoe@
db EOMeom
msg_x_04:
db D_MSG
db mi__,tu__,wo_,spc@,tu_,ka_,ttu_,te_,spc@,mi_,ta_,ka_,i_,hate@
db home@
db a_,si_,ta_,ga_,spc@,ta_,no_,si_,mi_,da_,ne_,gyoe@
db EOMeom
msg_x_05:
msg_x_06:
db D_MSG
db tu_,bo_,wo_,spc@,mo_,ttu_,te_,na_,i_,ne_,tenten2@
db home@
db o_,to_,to_,i_,ki_,na_,gyoe@
db EOMeom
msg_x_07:
db D_MSG
db so_,no_,spc@,mi_,tu_,wo_,spc@,mi_,ti_,ba_,ta_,no_,spc@,ki_,ni_
db home@
db nu_,ttu_,te_,mi_,te_,go_,ra_,n_,gyoe@
db EOMeom
msg_x_08:
db D_MSG
db mi__,tu__,wo_,spc@,tu_,ka_,ttu_,ta_,ba_,si_,yyo_,ni_
db home@
db i_,ttu_,te_,mi_,ta_,ka_,i_,hate@
db EOMeom
endif
msg_x_01
: "わたしは ミツばあさん!" ("I'm the HONEY GRANDMA!")msg_x_02
: "ミツを 使ってみたね! 珍しいポケモン見つかった? また分けてあげよう!" ("You used my HONEY! Did you find any rare POKéMON? Have some more!")msg_x_03
: "" ("")msg_x_04
: "" ("")msg_x_06
: "" ("")msg_x_07
: "" ("")msg_x_08
: "" ("")