diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index bedbf69..5c44c33 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -144,11 +144,7 @@ StartMenu_CardPop: Func_c12e:: sla a ld hl, .PointerTable - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -721,10 +717,7 @@ GetNPCByDeck: ld c, MAX_NPC_DUELIST_DECKS push hl ld a, NPC_DUELIST_STRUCT_DECKS - add l - ld l, a - jr nc, .loop_decks - inc h + add_hl_a .loop_decks ld a, [hli] cp b @@ -780,11 +773,7 @@ GetLocationName: .got_island ld a, b sla a - add l - ld l, a - jr nc, .got_location - inc h -.got_location + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -821,11 +810,7 @@ GetReceivingCardLongName: cp16bc_long de jr z, .load_name ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found call LoadCardDataToBuffer1_FromCardID @@ -866,11 +851,7 @@ GetReceivingCardShortName: cp16bc_long de jr z, .load_short_name ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found call LoadCardDataToBuffer1_FromCardID @@ -913,11 +894,7 @@ GetReceivedCardText: cp16bc_long de jr z, .load_received_text ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found push hl @@ -1297,11 +1274,7 @@ Func_d3e9:: ld a, b rlca ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] add d ld d, a @@ -2252,11 +2225,7 @@ SetBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .bitmask - inc h -.bitmask + add_hl_a pop af and 7 inc a @@ -2286,11 +2255,7 @@ ClearBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .bitmask - inc h -.bitmask + add_hl_a pop af and 7 inc a @@ -2321,11 +2286,7 @@ CheckBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .bitmask - inc h -.bitmask + add_hl_a pop af and 7 inc a @@ -2352,11 +2313,7 @@ CheckTCGIslandMilestoneEvents: push hl sla a ld hl, .check_pointers - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2499,11 +2456,7 @@ CheckGRIslandMilestoneEvents: push hl sla a ld hl, .check_pointers - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2640,25 +2593,13 @@ RunOverworldScript:: ld hl, wScriptBufferIndex ld a, [hl] ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_offset - inc h -.got_offset + add_hl_a ld a, [hl] ld d, a ld hl, OverworldScriptTable - add l - ld l, a - jr nc, .next - inc h -.next + add_hl_a ld a, d - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2798,11 +2739,7 @@ OverworldScriptTable: IncreaseScriptPointer: ld c, a ld hl, wScriptPointer - add [hl] - ld [hli], a - jr nc, .next - inc [hl] -.next + add_at_hl_a ld a, c ld hl, wScriptBufferIndex add [hl] @@ -2852,11 +2789,7 @@ Get2ScriptArgs: pop bc dec a ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -2892,11 +2825,7 @@ Get1ScriptArg: jr nc, .fallback pop bc ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] or a ret @@ -3934,11 +3863,7 @@ ScriptCommand_PushVar: ld a, [wScriptStackOffset] dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptLoadedVar] ld [hl], a jp IncreaseScriptPointerBy1 @@ -3947,11 +3872,7 @@ ScriptCommand_PopVar: ld hl, wScriptStack ld a, [wScriptStackOffset] push af - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ld [wScriptLoadedVar], a pop af @@ -3997,11 +3918,7 @@ ScriptCommand_ScriptCall: dec a dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptPointer] ld [hli], a ld a, [wScriptPointer + 1] @@ -4020,11 +3937,7 @@ ScriptCommand_ScriptRet: inc a inc a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a dec hl ld a, [hld] ld [wScriptPointer + 1], a @@ -4123,11 +4036,7 @@ ScriptCommand_GiveBoosterPacks: ld a, [wBoosterPackCount] call Random ld hl, wBoosterPackList - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ld [de], a inc de @@ -4225,11 +4134,7 @@ ScriptCommand_ScriptCallfar: dec a dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptPointer] ld [hli], a ld a, [wScriptPointer + 1] @@ -4253,11 +4158,7 @@ ScriptCommand_ScriptRetfar: inc a inc a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a dec hl ld a, [hld] ld [wScriptBank], a @@ -5385,7 +5286,7 @@ Func_ef40: ret Func_ef97: -.asm_ef97 +.loop ld a, [wFilteredListPtr] ld l, a ld a, [wFilteredListPtr+1] @@ -5393,15 +5294,11 @@ Func_ef97: ld a, [wRemainingIntroCards] call Random sla a - add l - ld l, a - jr nc, .asm_efac - inc h -.asm_efac + add_hl_a inc hl ld a, [hld] and b - jr z, .asm_ef97 + jr z, .loop ld a, [hl] ret @@ -5478,11 +5375,7 @@ GetTCGChallengeCupPrizeCardID: call GetVarValue sla a ld hl, TCGChallengeCupPromoPrizes - add l - ld l, a - jr nc, .asm_f021 - inc h -.asm_f021 + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -5514,11 +5407,7 @@ GetGRChallengeCupPrizeCardID: call GetVarValue sla a ld hl, GRChallengeCupPromoPrizes - add l - ld l, a - jr nc, .asm_f047 - inc h -.asm_f047 + add_hl_a ld a, [hli] ld b, [hl] ld c, a diff --git a/src/engine/bank0c.asm b/src/engine/bank0c.asm index 3fca72f..988f2bb 100644 --- a/src/engine/bank0c.asm +++ b/src/engine/bank0c.asm @@ -255,11 +255,7 @@ Func_301c0: PlacePlayerInGRIslandLocation: sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -271,11 +267,7 @@ Func_30202: push af sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld d, a ld a, [hl] @@ -324,17 +316,9 @@ Func_30242: sla a sla a ; *4 ld hl, .LocationConnections - add l - ld l, a - jr nc, .got_pointer1 - inc h -.got_pointer1 + add_hl_a ld a, c - add l - ld l, a - jr nc, .got_pointer2 - inc h -.got_pointer2 + add_hl_a ld a, [hl] cp b jr z, .done @@ -433,11 +417,7 @@ PrintGRIslandLocationName: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, a ld a, [hli] @@ -466,11 +446,7 @@ PrintGRIslandLocationName: Func_3030a: sla a ; *2 ld hl, .PointerTable - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -512,11 +488,7 @@ Func_30343: sla a sla a ; *4 ld hl, Data_3056a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld [wd680], a ld a, [hli] @@ -529,11 +501,7 @@ Func_3035f: sla a sla a ; *4 ld hl, Data_3056a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, c ld [wOWScrollSpeed], a ld a, [hli] @@ -596,11 +564,7 @@ Func_303c7: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ; map inc hl ld d, [hl] ; x @@ -667,21 +631,13 @@ Func_30452: ld a, [wPlayerOWLocation] sla a ; *2 ld hl, GRIslandPlayerPaths - add l - ld l, a - jr nc, .got_pointer1 - inc h -.got_pointer1 + add_hl_a ld a, [hli] ld h, [hl] ld l, a ld a, [wCurOWLocation] sla a ; *2 - add l - ld l, a - jr nc, .got_pointer2 - inc h -.got_pointer2 + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -715,11 +671,7 @@ Func_30452: ld a, [wCurOWLocation] sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer3 - inc h -.got_pointer3 + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -732,11 +684,7 @@ Func_30452: ld a, e sla a ; *2 ld hl, .data - add l - ld l, a - jr nc, .got_pointer4 - inc h -.got_pointer4 + add_hl_a ld a, [hli] ld e, [hl] ld d, a diff --git a/src/engine/bank10.asm b/src/engine/bank10.asm index 684a7c4..2e8ab89 100644 --- a/src/engine/bank10.asm +++ b/src/engine/bank10.asm @@ -878,11 +878,7 @@ HandleTCGIslandInput: PlacePlayerInTCGIslandLocation: sla a ; *2 ld hl, TCGIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -893,11 +889,7 @@ PlacePlayerInTCGIslandLocation: UpdateTCGIslandCursorPosition: sla a ; *2 ld hl, TCGIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld d, a ld a, [hl] @@ -926,17 +918,9 @@ HandleTCGIslandDirectionalInput: sla a sla a ; *4 ld hl, .LocationConnections - add l - ld l, a - jr nc, .got_pointer_1 - inc h -.got_pointer_1 + add_hl_a ld a, c - add l - ld l, a - jr nc, .got_pointer_2 - inc h -.got_pointer_2 + add_hl_a ld a, [hl] cp b jr z, .done @@ -1035,11 +1019,7 @@ PrintTCGIslandLocationName: sla a sla a ; *4 ld hl, .LocationTitleTextItems - add l - ld l, a - jr nc, .ok - inc h -.ok + add_hl_a ld a, [hli] ld e, a ld a, [hli] @@ -1070,11 +1050,7 @@ Func_40682: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ; map inc hl ld d, [hl] ; x @@ -1108,21 +1084,13 @@ Func_406d1: ld a, [wPlayerOWLocation] sla a ; *2 ld hl, TCGIslandPlayerPaths - add l - ld l, a - jr nc, .got_pointer_1 - inc h -.got_pointer_1 + add_hl_a ld a, [hli] ld h, [hl] ld l, a ld a, [wCurOWLocation] sla a ; *2 - add l - ld l, a - jr nc, .got_pointer_2 - inc h -.got_pointer_2 + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -1152,11 +1120,7 @@ Func_406d1: ld a, [wCurOWLocation] sla a ld hl, TCGIslandLocationPositions - add l ; *2 - ld l, a - jr nc, .got_pointer_3 - inc h -.got_pointer_3 + add_hl_a ld a, [hli] ld e, [hl] ld d, a diff --git a/src/engine/bank11.asm b/src/engine/bank11.asm index 10be215..c7510e3 100644 --- a/src/engine/bank11.asm +++ b/src/engine/bank11.asm @@ -171,11 +171,7 @@ _ChooseTitleScreenCards: ld hl, wDuelTempList ld a, c sla a - add l - ld l, a - jr nc, .no_carry - inc h -.no_carry + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -387,19 +383,11 @@ Func_45379: call Random sla a sla a - add l - ld l, a - jr nc, .asm_45394 - inc h -.asm_45394 + add_hl_a push hl inc hl ld a, d - add l - ld l, a - jr nc, .asm_4539c - inc h -.asm_4539c + add_hl_a ld a, [hl] pop hl and b @@ -521,11 +509,7 @@ SetGrandMasterCupOpponents: ld a, NUM_GRANDMASTERCUP_OPPONENT_IDS call Random sla a - add l - ld l, a - jr nc, .compare - inc h -.compare + add_hl_a push hl inc hl ld a, [hl] @@ -819,11 +803,7 @@ GetGrandMasterCupPrizeCardID: farcall GetVarValue ld hl, GrandMasterCupPromoPrizes sla a - add l - ld l, a - jr nc, .asm_45689 - inc h -.asm_45689 + add_hl_a ld a, [hli] ld b, [hl] ld c, a diff --git a/src/engine/black_box.asm b/src/engine/black_box.asm index 4bea4ee..8f7995c 100644 --- a/src/engine/black_box.asm +++ b/src/engine/black_box.asm @@ -88,11 +88,7 @@ ProcessBlackBoxInputAndOutput_AllDupes: jr z, .whiffed_return_1 call Random sla a - add l - ld l, a - jr nc, .output_super_bonus_got_1_evo - inc h -.output_super_bonus_got_1_evo + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -127,11 +123,7 @@ ProcessBlackBoxInputAndOutput_AllDupes: jr z, .whiffed_return_1 call Random sla a - add l - ld l, a - jr nc, .output_super_bonus_got_1_star - inc h -.output_super_bonus_got_1_star + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -186,11 +178,7 @@ ProcessBlackBoxInputAndOutput_AllDupes: jr z, .whiffed_return_1 call Random sla a - add l - ld l, a - jr nc, .output_bonus_got_1_evo - inc h -.output_bonus_got_1_evo + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -221,11 +209,7 @@ ProcessBlackBoxInputAndOutput_AllDupes: jr z, .whiffed_return_1 call Random sla a - add l - ld l, a - jr nc, .output_bonus_no_evo_got_1_star - inc h -.output_bonus_no_evo_got_1_star + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -310,11 +294,7 @@ ProcessBlackBoxInputAndOutput_EvoLine: jr z, .return_all call Random sla a - add l - ld l, a - jr nc, .got_1_card - inc h -.got_1_card + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -649,11 +629,7 @@ ProcessBlackBoxInputAndOutput_Regular: call Random sla a ld hl, wDuelTempList - add l - ld l, a - jr nc, .append_circle - inc h -.append_circle + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -688,11 +664,7 @@ ProcessBlackBoxInputAndOutput_Regular: call Random sla a ld hl, wDuelTempList - add l - ld l, a - jr nc, .append_diamond - inc h -.append_diamond + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -727,11 +699,7 @@ ProcessBlackBoxInputAndOutput_Regular: call Random sla a ld hl, wDuelTempList - add l - ld l, a - jr nc, .append_star - inc h -.append_star + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -760,11 +728,7 @@ GetBlackBoxOutputBonusFlag: dec a dec a ld hl, .cutoffs - add l - ld l, a - jr nc, .call_random - inc h -.call_random + add_hl_a ld c, [hl] ld a, 100 call Random @@ -800,11 +764,7 @@ GetBlackBoxEvoLineOutputCountAndScore: sla a push af ld hl, .cutoffs - add l - ld l, a - jr nc, .call_random - inc h -.call_random + add_hl_a ld a, [hli] ld c, a ld b, [hl] @@ -818,11 +778,7 @@ GetBlackBoxEvoLineOutputCountAndScore: ; table2 pop af ld hl, .ValueTable2 - add l - ld l, a - jr nc, .get_from_table2 - inc h -.get_from_table2 + add_hl_a ld a, [hli] ld c, a ld a, [hl] @@ -831,11 +787,7 @@ GetBlackBoxEvoLineOutputCountAndScore: .table1 pop af ld hl, .ValueTable1 - add l - ld l, a - jr nc, .get_from_table1 - inc h -.get_from_table1 + add_hl_a ld a, [hli] ld c, a ld a, [hl] @@ -844,11 +796,7 @@ GetBlackBoxEvoLineOutputCountAndScore: .table0 pop af ld hl, .ValueTable0 - add l - ld l, a - jr nc, .get_from_table0 - inc h -.get_from_table0 + add_hl_a ld a, [hli] ld c, a ld a, [hl] @@ -891,11 +839,7 @@ GetBlackBoxOutputIndex: sla a sla a ld hl, .cutoffs - add l - ld l, a - jr nc, .rng_check - inc h -.rng_check + add_hl_a ld a, [hli] ; cutoff 0 ld c, a ld a, [hli] ; cutoff 1 diff --git a/src/engine/card_list_ops.asm b/src/engine/card_list_ops.asm index f2b7277..5bc01f2 100644 --- a/src/engine/card_list_ops.asm +++ b/src/engine/card_list_ops.asm @@ -127,11 +127,7 @@ SearchCardInListInHL: SearchCardInListInHL_Offset: push hl sla a - add l - ld l, a - jr nc, .search - inc h -.search + add_hl_a call SearchCardInListInHL pop hl ret @@ -183,11 +179,7 @@ ENDR ld hl, wTempBlackBoxInputBasic ld a, [wLoadedCard1Stage] sla a - add l - ld l, a - jr nc, .store_in_buffer - inc h -.store_in_buffer + add_hl_a ld a, [hli] ld c, a ld a, [hld] @@ -196,6 +188,7 @@ ENDR pop bc pop hl jp nz, .invalid ; the same stage already exists +; store in buffer ld a, e ld [bc], a inc bc @@ -390,11 +383,8 @@ ENDR cp TYPE_PKMN jr nc, .loop_cards ld de, wNumBlackBoxInputPkmnPerType - add e - ld e, a - jr nc, .incr_count - inc d -.incr_count + add_de_a +; incr count ld a, [de] inc a ld [de], a @@ -983,19 +973,11 @@ ShuffleCardsInHL: ld a, b call Random sla a - add l - ld l, a - jr nc, .no_carry1 - inc h -.no_carry1 + add_hl_a ld a, b call Random sla a - add e - ld e, a - jr nc, .no_carry2 - inc d -.no_carry2 + add_de_a ld b, [hl] ld a, [de] ld [hl], a diff --git a/src/home/unsorted.asm b/src/home/unsorted.asm index 523e969..81c3f06 100644 --- a/src/home/unsorted.asm +++ b/src/home/unsorted.asm @@ -364,11 +364,7 @@ Func_3254:: inc hl .asm_3283 ld a, $07 - add l - ld l, a - jr nc, .asm_328a - inc h -.asm_328a + add_hl_a jr Func_3254 Func_328c:: diff --git a/src/macros/code.asm b/src/macros/code.asm index 3d04fa8..c710377 100644 --- a/src/macros/code.asm +++ b/src/macros/code.asm @@ -105,3 +105,27 @@ ENDM MACRO? cpcoord cp16_lb \1, \2 ENDM + +MACRO? add_r16_r8 + add LOW(\1) + ld LOW(\1), \2 + jr nc, :+ + inc HIGH(\1) +: +ENDM + +MACRO? add_hl_a + add_r16_r8 hl, a +ENDM + +MACRO? add_de_a + add_r16_r8 de, a +ENDM + +MACRO? add_at_hl_a + add [hl] + ld [hli], a + jr nc, :+ + inc [hl] +: +ENDM