diff --git a/.travis.yml b/.travis.yml index bd38f51b89..ca18f64d69 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,12 +2,12 @@ language: c install: - |- path="$(pwd)"; cd; - wget https://github.com/rednex/rgbds/archive/v0.2.5.tar.gz -O rgbds.tar.gz && - tar xf rgbds.tar.gz && - cd rgbds-0.2.5 && - sudo make install && - cd - && - rm -rf rgbds && + wget https://github.com/rednex/rgbds/archive/v0.3.1.tar.gz -O rgbds.tar.gz && + tar xf rgbds.tar.gz && + cd rgbds-0.3.1 && + sudo make install && + cd - && + rm -rf rgbds && cd "$path" before_script: - |- diff --git a/Makefile b/Makefile index 12532d73f4..8e766b2836 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ pokered_opt = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON RED" pokeblue_opt = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON BLUE" %.gbc: $$(%_obj) - rgblink -n $*.sym -o $@ $^ + rgblink -n $*.sym -l linkerscript.link -o $@ $^ rgbfix $($*_opt) $@ %.png: ; diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 373136a8ec..4992b84a83 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -213,7 +213,7 @@ PlayAnimation: ld h,a ld de,.nextAnimationCommand push de - jp [hl] ; jump to special effect function + jp hl ; jump to special effect function .playSubanimation ld c,a and a,%00111111 @@ -457,7 +457,7 @@ PlayApplyingAttackAnimation: ld a,[hli] ld h,[hl] ld l,a - jp [hl] + jp hl AnimationTypePointerTable: dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect @@ -642,7 +642,7 @@ DoSpecialEffectByAnimationId: ld l,a ld de,.done push de - jp [hl] + jp hl .done pop bc pop de @@ -1080,7 +1080,7 @@ CallWithTurnFlipped: ld [H_WHOSETURN],a ld de,.returnAddress push de - jp [hl] + jp hl .returnAddress pop af ld [H_WHOSETURN],a diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index 9e02c56fca..985a1eb255 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -62,7 +62,7 @@ BattleTransition: ld a, [hli] ld h, [hl] ld l, a - jp [hl] + jp hl ; the three GetBattleTransitionID functions set the first ; three bits of c, which determines what transition animation diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 153a9048b8..4835e8cf98 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -3150,7 +3150,7 @@ ExecutePlayerMove: jp z, ExecutePlayerMoveDone call CheckPlayerStatusConditions jr nz, .playerHasNoSpecialCondition - jp [hl] + jp hl .playerHasNoSpecialCondition call GetCurrentMove ld hl, wPlayerBattleStatus1 @@ -5690,7 +5690,7 @@ ExecuteEnemyMove: ld [wDamageMultipliers], a call CheckEnemyStatusConditions jr nz, .enemyHasNoSpecialConditions - jp [hl] + jp hl .enemyHasNoSpecialConditions ld hl, wEnemyBattleStatus1 bit ChargingUp, [hl] ; is the enemy charging up for attack? @@ -7139,7 +7139,7 @@ _JumpMoveEffect: ld a, [hli] ld h, [hl] ld l, a - jp [hl] ; jump to special effect handler + jp hl ; jump to special effect handler MoveEffectPointerTable: dw SleepEffect ; unused effect diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index b175fcaf6c..d78079e899 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -51,7 +51,7 @@ AIEnemyTrainerChooseMoves: ld l, a ld de, .nextMoveChoiceModification ; set return address push de - jp [hl] ; execute modification function + jp hl ; execute modification function .loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero ld hl, wBuffer ; temp move selection array ld de, wEnemyMonMoves ; enemy moves @@ -366,7 +366,7 @@ TrainerAI: ld h,[hl] ld l,a call Random - jp [hl] + jp hl TrainerAIPointers: ; one entry per trainer class diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 474dbd1121..3e72daa96b 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -304,7 +304,7 @@ CallCurrentTradeCenterFunction: ld a, [hli] ld h, [hl] ld l, a - jp [hl] + jp hl TradeCenter_SelectMon: call ClearScreen diff --git a/engine/items/items.asm b/engine/items/items.asm index 057595df20..f334e3846f 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -13,7 +13,7 @@ UseItem_: ld a,[hli] ld h,[hl] ld l,a - jp [hl] + jp hl ItemUsePtrTable: dw ItemUseBall ; MASTER_BALL diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 251d7ae493..8c10266bc5 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -118,7 +118,7 @@ StartMenu_Pokemon: ld h,[hl] ld l,a ld a,[wObtainedBadges] ; badges obtained - jp [hl] + jp hl .outOfBattleMovePointers dw .cut dw .fly diff --git a/engine/menu/text_box.asm b/engine/menu/text_box.asm index 12067dd484..90c35d25fb 100644 --- a/engine/menu/text_box.asm +++ b/engine/menu/text_box.asm @@ -24,7 +24,7 @@ DisplayTextBoxID_: ld l,a ; hl = address of function ld de,.done push de - jp [hl] ; jump to the function + jp hl ; jump to the function .coordTableMatch call GetTextBoxIDCoords call GetAddressOfScreenCoords diff --git a/engine/overworld/player_state.asm b/engine/overworld/player_state.asm index 79f755b94d..b8d734f2f1 100644 --- a/engine/overworld/player_state.asm +++ b/engine/overworld/player_state.asm @@ -103,7 +103,7 @@ IsPlayerFacingEdgeOfMap: ld c, a ld de, .asm_c41e push de - jp [hl] + jp hl .asm_c41e pop bc pop de diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm index 712c53ed66..ea4747ce61 100755 --- a/engine/overworld/ssanne.asm +++ b/engine/overworld/ssanne.asm @@ -16,7 +16,7 @@ AnimateBoulderDust: ld bc, .returnAddress push bc ld c, 4 - jp [hl] + jp hl .returnAddress ld a, [rOBP1] xor %01100100 diff --git a/engine/palettes.asm b/engine/palettes.asm index 4785ade20a..6a79886032 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -17,7 +17,7 @@ _RunPaletteCommand: ld l, a ld de, SendSGBPackets push de - jp [hl] + jp hl SetPal_BattleBlack: ld hl, PalPacket_Black diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 2dfcffde65..3a46687f4c 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -451,7 +451,7 @@ SlotMachine_CheckForMatches: pop hl ld de, .flashScreenLoop push de - jp [hl] + jp hl .flashScreenLoop ld a, [rBGP] diff --git a/engine/trade.asm b/engine/trade.asm index c3913a7e53..8bc8e3bcaf 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -46,7 +46,7 @@ TradeAnimCommon: ld l, a ld de, .loop push de - jp [hl] ; call trade func, which will return to the top of the loop + jp hl ; call trade func, which will return to the top of the loop .done pop af ld [hSCX], a diff --git a/home.asm b/home.asm index 0a2d829daa..27c977cad0 100644 --- a/home.asm +++ b/home.asm @@ -2966,7 +2966,7 @@ Bankswitch:: ld [MBC1RomBank],a ld bc,.Return push bc - jp [hl] + jp hl .Return pop bc ld a,b @@ -4422,7 +4422,7 @@ CallFunctionInTable:: ld l, a ld de, .returnAddress push de - jp [hl] + jp hl .returnAddress pop bc pop de @@ -4605,7 +4605,7 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ld [H_LOADEDROMBANK], a ld de, .returnAddress push de - jp [hl] + jp hl .returnAddress xor a jr .done diff --git a/home/overworld.asm b/home/overworld.asm index ec8f192513..509b699bb7 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -1995,7 +1995,7 @@ RunMapScript:: ld l,a ld de,.return push de - jp [hl] ; jump to script + jp hl ; jump to script .return ret diff --git a/home/predef.asm b/home/predef.asm index 2fac9acaf0..9bb9be74f7 100644 --- a/home/predef.asm +++ b/home/predef.asm @@ -24,7 +24,7 @@ Predef:: ld de, .done push de - jp [hl] + jp hl .done pop af diff --git a/home/vcopy.asm b/home/vcopy.asm index 3fe19745c1..ad92e8fbc1 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -123,7 +123,7 @@ AutoBgMapTransfer:: ld a,[H_AUTOBGTRANSFERENABLED] and a ret z - ld hl,[sp + 0] + ld hl,sp + 0 ld a,h ld [H_SPTEMP],a ld a,l @@ -205,7 +205,7 @@ VBlankCopyBgMap:: ld a,[H_VBCOPYBGSRC] ; doubles as enabling byte and a ret z - ld hl,[sp + 0] + ld hl,sp + 0 ld a,h ld [H_SPTEMP],a ld a,l @@ -238,7 +238,7 @@ VBlankCopyDouble:: and a ret z - ld hl, [sp + 0] + ld hl, sp + 0 ld a, h ld [H_SPTEMP], a ld a, l @@ -290,7 +290,7 @@ VBlankCopyDouble:: ld a, h ld [H_VBCOPYDOUBLEDEST + 1], a - ld hl, [sp + 0] + ld hl, sp + 0 ld a, l ld [H_VBCOPYDOUBLESRC], a ld a, h @@ -316,7 +316,7 @@ VBlankCopy:: and a ret z - ld hl, [sp + 0] + ld hl, sp + 0 ld a, h ld [H_SPTEMP], a ld a, l @@ -360,7 +360,7 @@ VBlankCopy:: ld a, h ld [H_VBCOPYDEST + 1], a - ld hl, [sp + 0] + ld hl, sp + 0 ld a, l ld [H_VBCOPYSRC], a ld a, h diff --git a/linkerscript.link b/linkerscript.link new file mode 100644 index 0000000000..ad5ac79396 --- /dev/null +++ b/linkerscript.link @@ -0,0 +1,176 @@ +ROM0 + ORG $61 + "Home" + ORG $150 + "Main" + +ROMX $1 + "bank1" + +ROMX $2 + "Sound Effect Headers 1" ; AUDIO_1 + "Music Headers 1" + "Sound Effects 1" + "Audio Engine 1" + "Music 1" + +ROMX $3 + "bank3" + +ROMX $4 + "NPC Sprites 1" ; NPC_SPRITES_1 + "Graphics" ; GFX + "Battle (bank 4)" + +ROMX $5 + "NPC Sprites 2" ; NPC_SPRITES_2 + "Battle (bank 5)" + +ROMX $6 + "bank6" + +ROMX $7 + "bank7" + +ROMX $8 + "Sound Effect Headers 2" ; AUDIO_2 + "Music Headers 2" + "Sound Effects 2" + "Audio Engine 2" + "Music 2" + +ROMX $9 + "Pics 1" ; PICS_1 + "Battle (bank 9)" + +ROMX $A + "Pics 2" ; PICS_2 + "Battle (bank A)" + +ROMX $B + "Pics 3" ; PICS_3 + "Battle (bank B)" + +ROMX $C + "Pics 4" ; PICS_4 + "Battle (bank C)" + +ROMX $D + "Pics 5" ; PICS_5 + "Battle (bank D)" + +ROMX $E + "bankE" + +ROMX $F + "bankF" + +ROMX $10 + "bank10" + +ROMX $11 + "bank11" + +ROMX $12 + "bank12" + +ROMX $13 + "bank13" + +ROMX $14 + "bank14" + +ROMX $15 + "bank15" + +ROMX $16 + "bank16" + +ROMX $17 + "bank17" + +ROMX $18 + "bank18" + +ROMX $19 + "bank19" + +ROMX $1A + "bank1A" + +ROMX $1B + "bank1B" + +ROMX $1C + "bank1C" + +ROMX $1D + "bank1D" + +ROMX $1E + "bank1E" + +ROMX $1F + "Sound Effect Headers 3" ; AUDIO_3 + "Music Headers 3" + "Sound Effects 3" + "Audio Engine 3" + "Music 3" + +ROMX $20 + "Text 1" ; TEXT_1 + +ROMX $21 + "Text 2" ; TEXT_2 + +ROMX $22 + "Text 3" ; TEXT_3 + +ROMX $23 + "Text 4" ; TEXT_4 + +ROMX $24 + "Text 5" ; TEXT_5 + +ROMX $25 + "Text 6" ; TEXT_6 + +ROMX $26 + "Text 7" ; TEXT_7 + +ROMX $27 + "Text 8" ; TEXT_8 + +ROMX $28 + "Text 9" ; TEXT_9 + +ROMX $29 + "Text 10" ; TEXT_10 + +ROMX $2A + "Text 11" ; TEXT_11 + +ROMX $2B + "Pokedex Text" ; POKEDEX_TEXT + +ROMX $2C + "Move Names" ; MOVE_NAMES + +WRAM0 + "WRAM Bank 0" + +WRAMX 1 + "WRAM Bank 1" + +SRAM 0 + "Sprite Buffers" + +SRAM 1 + "Save Data" + +SRAM 2 + "Saved Boxes 1" + +SRAM 3 + "Saved Boxes 2" +