diff options
-rw-r--r-- | INSTALL.md | 12 | ||||
-rw-r--r-- | battle/magikarp_length.asm | 205 | ||||
-rw-r--r-- | engine/credits.asm | 25 | ||||
-rw-r--r-- | gfx/misc/pokegear.2bpp.lz | bin | 739 -> 740 bytes | |||
-rw-r--r-- | gfx/pics/dewgong/frames.asm | 3 | ||||
-rw-r--r-- | gfx/pics/lugia/frames.asm | 3 | ||||
-rw-r--r-- | gfx/pics/mew/frames.asm | 7 | ||||
-rw-r--r-- | gfx/pics/snorlax/frames.asm | 13 | ||||
-rw-r--r-- | gfx/pics/starmie/frames.asm | 11 | ||||
-rw-r--r-- | main.asm | 953 |
10 files changed, 1014 insertions, 218 deletions
diff --git a/INSTALL.md b/INSTALL.md index 950099457..53cd30580 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -37,7 +37,6 @@ this will not be required. Dependencies: sudo apt-get install make gcc bison git python python-setuptools - sudo easy_install pip The assembler used is [**rgbds**](https://github.com/bentley/rgbds). @@ -53,9 +52,10 @@ Set up the repository. cd pokecrystal git submodule init git submodule update - sudo pip install -r extras/requirements.txt + easy_install pypng + make pngs -- Copy your Pokémon Crystal rom to the directory. Name it **baserom.gbc**. +- Copy your Pokémon Crystal rom into `pokecrystal/`. Name it **baserom.gbc**. To build **pokecrystal.gbc**: @@ -101,10 +101,10 @@ Then set up the repository. In the **Cygwin terminal**: cd pokecrystal git submodule init git submodule update - easy_install pip - pip install -r extras/requirements.txt + easy_install pypng + make pngs -- Copy your Pokémon Crystal rom to the directory. Name it **baserom.gbc**. +- Copy your Pokémon Crystal rom into `C:\cygwin\home\<username>\pokecrystal`. Name it **baserom.gbc**. To build: diff --git a/battle/magikarp_length.asm b/battle/magikarp_length.asm index 7b2d5e386..b4e20c288 100644 --- a/battle/magikarp_length.asm +++ b/battle/magikarp_length.asm @@ -1,27 +1,24 @@ CalcMagikarpLength: ; fbbfc -; Return Magikarp's length (in mm) in MagikarpLength (big endian) +; Return Magikarp's length (in mm) at MagikarpLength (big endian). ; ; input: ; de: EnemyMonDVs ; bc: PlayerID -; This function is needlessly convoluted, and poorly commented. -; Reading is discouraged. +; This function is poorly commented. ; In short, it generates a value between 190 and 1786 using ; a Magikarp's DVs and its trainer ID. This value is further -; scrutinized in GetEnemyMon to make longer Magikarp even rarer. +; filtered in LoadEnemyMon to make longer Magikarp even rarer. -; This is done by calculating the value using operands from -; a conversion lookup table. +; The value is generated from a lookup table. +; The index is determined by the dv xored with the player's trainer id. -; Our index is calculated by xoring DVs with the trainer ID: +; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id) -; bc = rrc(rrc(dvs)) xor rrc(id) - -; if bc < $a: MagikarpLength = c + 190 -; if bc >= $ff00: MagikarpLength = c + 1370 -; else: MagikarpLength = z*100 + (bc-x)/y +; if bc < 10: [MagikarpLength] = c + 190 +; if bc >= $ff00: [MagikarpLength] = c + 1370 +; else: [MagikarpLength] = z * 100 + (bc - x) / y ; X, Y, and Z depend on the value of b as follows: @@ -38,12 +35,10 @@ CalcMagikarpLength: ; fbbfc ; if b = 252-253: x = 65210, y = 5, z = 13 ; if b = 254: x = 65410, y = 2, z = 14 -; These values represent arbitrary conversion points. + ; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id) -; b = rrcrrc(atkdefdv) xor rrc(id[0]) - -; id + ; id ld h, b ld l, c ld a, [hli] @@ -51,123 +46,125 @@ CalcMagikarpLength: ; fbbfc ld c, [hl] rrc b rrc c - -; dvs + + ; dv ld a, [de] inc de rrca rrca xor b ld b, a - -; c = rrcrrc(spdspcdv) xor rrc(id[1]) - + ld a, [de] rrca rrca xor c ld c, a - -; if bc < $000a: + + ; if bc < 10: + ; de = bc + 190 + ; break + ld a, b and a - jr nz, .loadtable + jr nz, .no ld a, c - cp a, $a - jr nc, .loadtable - -; de = hl = bc + $be - ld hl, $be + cp 10 + jr nc, .no + + ld hl, 190 add hl, bc ld d, h ld e, l - jr .endtable - -.loadtable - ld hl, .MagikarpLengthTable - ld a, $02 + jr .done + +.no + + ld hl, .Lengths + ld a, 2 ld [$d265], a - -.readtable + +.read ld a, [hli] ld e, a ld a, [hli] ld d, a - call .BLessThanD - jr nc, .advancetable - -; c = bc / [hl] + call .BCLessThanDE + jr nc, .next + + ; c = (bc - de) / [hl] call .BCMinusDE ld a, b - ld [$ffb3], a + ld [hDividend + 0], a ld a, c - ld [$ffb4], a + ld [hDividend + 1], a ld a, [hl] - ld [$ffb7], a - ld b, $02 + ld [hDivisor], a + ld b, 2 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld c, a - -; de = c + 100 * (2 + number of rows down the table) + + ; de = c + 100 * (2 + i) xor a - ld [$ffb4], a - ld [$ffb5], a - ld a, $64 - ld [$ffb6], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, 100 + ld [hMultiplicand + 2], a ld a, [$d265] - ld [$ffb7], a + ld [hMultiplier], a call Multiply - ld b, $00 - ld a, [$ffb6] + ld b, 0 + ld a, [hProduct + 3] add c ld e, a - ld a, [$ffb5] + ld a, [hProduct + 2] adc b ld d, a - jr .endtable - -.advancetable + jr .done + +.next inc hl ; align to next triplet ld a, [$d265] inc a ld [$d265], a - cp a, $10 - jr c, .readtable - + cp 16 + jr c, .read + call .BCMinusDE - ld hl, $0640 + ld hl, 1600 add hl, bc ld d, h ld e, l - -.endtable + +.done + ; hl = de * 10 ld h, d ld l, e add hl, hl add hl, hl add hl, de - add hl, hl ; hl = de * 10 - - ld de, $ff02 - ld a, $ff -.loop + add hl, hl + + ; hl = hl / 254 + ld de, -254 + ld a, -1 +.div_254 inc a - add hl, de ; - 254 - jr c, .loop - - ld d, $00 - -; mod $0c -.modloop - cp a, $0c - jr c, .done - sub a, $0c + add hl, de + jr c, .div_254 + + ; d, e = hl / 12, hl % 12 + ld d, 0 +.mod_12 + cp 12 + jr c, .ok + sub 12 inc d - jr .modloop - -.done + jr .mod_12 +.ok ld e, a + ld hl, MagikarpLength ld [hl], d inc hl @@ -175,22 +172,19 @@ CalcMagikarpLength: ; fbbfc ret ; fbc9a -.BLessThanD ; fbc9a -; return carry if b < d +.BCLessThanDE: ; fbc9a +; Intention: Return bc < de. +; Reality: Return b < d. ld a, b cp d ret c - ret nc -; fbc9e - -.CLessThanE ; fbc9e -; unused + ret nc ; whoops ld a, c cp e ret ; fbca1 -.BCMinusDE ; fbca1 +.BCMinusDE: ; fbca1 ; bc -= de ld a, c sub e @@ -201,20 +195,21 @@ CalcMagikarpLength: ; fbbfc ret ; fbca8 -.MagikarpLengthTable ; fbca8 +.Lengths: ; fbca8 ; ????, divisor - dwb $006e, $01 - dwb $0136, $02 - dwb $02c6, $04 - dwb $0a96, $14 - dwb $1e1e, $32 - dwb $452e, $64 - dwb $7fc6, $96 - dwb $ba5e, $96 - dwb $e16e, $64 - dwb $f4f6, $32 - dwb $fcc6, $14 - dwb $feba, $05 - dwb $ff82, $02 -; fbccf + dwb 110, 1 + dwb 310, 2 + dwb 710, 4 + dwb 2710, 20 + dwb 7710, 50 + dwb 17710, 100 + dwb 32710, 150 + dwb 47710, 150 + dwb 57710, 100 + dwb 62710, 50 + dwb 64710, 20 + dwb 65210, 5 + dwb 65410, 2 + dwb 65510, 1 ; not used +; fbcd2 diff --git a/engine/credits.asm b/engine/credits.asm index c29cbb265..959e073c9 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -1239,9 +1239,9 @@ CreditsStrings: .TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@" .YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@" .TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@" -.Planning: db " SPECIAL PRODUCTION", $4e - db " PLANNING", $4e ; "きかくかいはつぶ@" - db " & DEVELOPMENT DEPT.@" +.Planning: db " SPECIAL PRODUCTION" + next " PLANNING" ; "きかくかいはつぶ@" + next " & DEVELOPMENT DEPT.@" .KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@" .HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@" .HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@" @@ -1266,9 +1266,9 @@ CreditsStrings: .TerukiMurakawa: db " TERUKI MURAKAWA@" .KazuyoshiOsawa: db " KAZUYOSHI OSAWA@" .KimikoNakamichi: db " KIMIKO NAKAMICHI@" -.Staff: db " #MON", $4e ; "ポケットモンスター", $4e - db " CRYSTAL VERSION", $4e ; " クりスタル バージョン", $4e - db " STAFF@" ; " スタッフ@" +.Staff: db " #MON" ; "ポケットモンスター" + next " CRYSTAL VERSION" ; " クりスタル バージョン" + next " STAFF@" ; " スタッフ@" .Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@" .CoDirector: db " CO-DIRECTOR@" ; "ディレクター@" .Programmers: db " PROGRAMMERS@" ; "プログラム@" @@ -1300,10 +1300,11 @@ CreditsStrings: .PaadTesting: db " PAAD TESTING@" .Copyright: -; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o -db $60,$61,$62,$63,$64,$65,$66, $67, $68, $69, $6a, $6b, $6c, $4e -; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c . -db $60,$61,$62,$63,$64,$65,$66, $6d, $6e, $6f, $70, $71, $72, $7a, $7b, $7c, $4e -; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c . -db $60,$61,$62,$63,$64,$65,$66, $73, $74, $75, $76, $77, $78, $79, $7a, $7b, $7c, "@" + ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o + db $60,$61,$62,$63,$64,$65,$66, $67, $68, $69, $6a, $6b, $6c + ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c . + next $60,$61,$62,$63,$64,$65,$66, $6d, $6e, $6f, $70, $71, $72, $7a, $7b, $7c + ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c . + next $60,$61,$62,$63,$64,$65,$66, $73, $74, $75, $76, $77, $78, $79, $7a, $7b, $7c + db "@" diff --git a/gfx/misc/pokegear.2bpp.lz b/gfx/misc/pokegear.2bpp.lz Binary files differindex 9db046141..df312a51b 100644 --- a/gfx/misc/pokegear.2bpp.lz +++ b/gfx/misc/pokegear.2bpp.lz diff --git a/gfx/pics/dewgong/frames.asm b/gfx/pics/dewgong/frames.asm index 38ca6a78c..d492373a4 100644 --- a/gfx/pics/dewgong/frames.asm +++ b/gfx/pics/dewgong/frames.asm @@ -35,6 +35,5 @@ db $49, $4a, $4b, $4c .frame9 db $08 ; bitmask - db $4d ; unused - + db $4d ; 0xd5422 diff --git a/gfx/pics/lugia/frames.asm b/gfx/pics/lugia/frames.asm index a13767189..b108f313d 100644 --- a/gfx/pics/lugia/frames.asm +++ b/gfx/pics/lugia/frames.asm @@ -39,6 +39,5 @@ db $5e, $59, $4f, $50, $54, $55 .frame9 db $08 ; bitmask - db $5e, $59 ; unused - + db $5e, $59 ; 0xd98c4 diff --git a/gfx/pics/mew/frames.asm b/gfx/pics/mew/frames.asm index 712e7dd40..6df894813 100644 --- a/gfx/pics/mew/frames.asm +++ b/gfx/pics/mew/frames.asm @@ -2,8 +2,7 @@ dw .frame2 dw .frame3 dw .frame4 -.frame5 - db $3e, $62 + dw .frame5 .frame1 db $00 ; bitmask db $19, $1a, $1b @@ -17,5 +16,7 @@ .frame4 db $03 ; bitmask db $31, $1d - db $04, $1b ; unused +.frame5 + db $04 ; bitmask + db $1b ; 0xd6240 diff --git a/gfx/pics/snorlax/frames.asm b/gfx/pics/snorlax/frames.asm index 004a1a4c1..1b0ee150f 100644 --- a/gfx/pics/snorlax/frames.asm +++ b/gfx/pics/snorlax/frames.asm @@ -1,8 +1,8 @@ dw .frame1 dw .frame2 dw .frame3 -.frame4 - db $ce, $5f, $d0, $5f + dw .frame4 + dw .frame5 .frame1 db $00 ; bitmask db $31, $32, $33, $34, $35, $36, $37, $38, $39, $3a, $3b, $3c @@ -12,5 +12,10 @@ .frame3 db $01 ; bitmask db $49, $4a - db $02, $4b, $02, $4b ; unused -; 0xd5fce +.frame4 + db $02 ; bitmask + db $4b +.frame5 + db $02 ; bitmask + db $4b +; 0xd5fd2 diff --git a/gfx/pics/starmie/frames.asm b/gfx/pics/starmie/frames.asm index a040d7310..9e0dc596d 100644 --- a/gfx/pics/starmie/frames.asm +++ b/gfx/pics/starmie/frames.asm @@ -1,8 +1,8 @@ dw .frame1 dw .frame2 dw .frame3 -.frame4 - db $f4, $5a, $f5, $5a + dw .frame4 + dw .frame5 .frame1 db $00 ; bitmask db $24, $25, $26, $27, $00, $28, $29, $2a, $2b, $2c, $2d, $2e @@ -13,5 +13,8 @@ .frame3 db $02 ; bitmask db $37 - db $03, $03 ; unused -; 0xd5af4 +.frame4 + db $03 ; bitmask +.frame5 + db $03 ; bitmask +; 0xd5af6 @@ -97858,7 +97858,11 @@ Functione546d: ; e546d (39:546d) ; e5496 (39:5496) Unknown_e5496: ; e5496 -INCBIN "baserom.gbc",$e5496,$e549e - $e5496 + dw Unknown_e799d + dw Unknown_e79dd + dw Unknown_e7a1d + dw Unknown_e79dd +; e549e Functione549e: ; e549e (39:549e) ld a, $1 @@ -98090,7 +98094,12 @@ IntroUnownBackGFX: ; e785d INCBIN "gfx/intro/unown_back.2bpp.lz" ; e799d -INCBIN "baserom.gbc", $e799d, $e7a5d - $e799d +Unknown_e799d: ; e799d +INCBIN "baserom.gbc", $e799d, $e79dd - $e799d +Unknown_e79dd: ; e79dd +INCBIN "baserom.gbc", $e79dd, $e7a1d - $e79dd +Unknown_e7a1d: ; e7a1d +INCBIN "baserom.gbc", $e7a1d, $e7a5d - $e7a1d GFX_e7a5d: ; e7a5d INCBIN "baserom.gbc", $e7a5d, $e7a6d - $e7a5d @@ -98186,25 +98195,26 @@ INCBIN "baserom.gbc", $fb434, $fb449 - $fb434 Functionfb449:: ; fb449 ld de, Font ld hl, VTiles1 - ld bc, Function3e80 + lb bc, BANK(Font), $400 / 8 ld a, [rLCDC] bit 7, a jp z, Copy1bpp + ld de, Font ld hl, VTiles1 - ld bc, $3e20 + lb bc, BANK(Font), $100 / 8 call Functionddc - ld de, $4300 - ld hl, $8a00 - ld bc, $3e20 + ld de, Font + $100 + ld hl, VTiles1 + $200 + lb bc, BANK(Font), $100 / 8 call Functionddc - ld de, $4400 - ld hl, $8c00 - ld bc, $3e20 + ld de, Font + $200 + ld hl, VTiles1 + $400 + lb bc, BANK(Font), $100 / 8 call Functionddc - ld de, $4500 - ld hl, $8e00 - ld bc, $3e20 + ld de, Font + $300 + ld hl, VTiles1 + $600 + lb bc, BANK(Font), $100 / 8 call Functionddc ret ; fb48a @@ -99203,26 +99213,28 @@ Functionfbbdb: ; fbbdb call PrintNum ld [hl], $6f inc hl - ld [hl], $50 + ld [hl], "@" ret ; fbbfc INCLUDE "battle/magikarp_length.asm" -INCBIN "baserom.gbc",$fbccf,$fbcd2 - $fbccf - Functionfbcd2: ; fbcd2 ld a, [$dfe8] ld [Buffer1], a ld a, [$dfe9] ld [Buffer2], a call Functionfbbdb - ld hl, $7ce8 + ld hl, UnknownText_0xfbce8 call PrintText ret ; fbce8 -INCBIN "baserom.gbc",$fbce8,$fbced - $fbce8 +UnknownText_0xfbce8: ; 0xfbce8 + ; "CURRENT RECORD" + text_jump UnknownText_0x1c123a + db "@" +; 0xfbced INCLUDE "battle/hidden_power.asm" @@ -100457,7 +100469,26 @@ Function100063: ; 100063 ret ; 100082 -INCBIN "baserom.gbc",$100082,$1000a4 - $100082 +Function100082: ; 100082 + xor a + ld hl, OverworldMap + ld bc, 1300 + call ByteFill + di + call DoubleSpeed + xor a + ld [rIF], a + ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL + ld [rIE], a + xor a + ld [$ffde], a + ld [hLCDStatCustom], a + ld a, $1 + ld [$ffc9], a + ld [$ffe9], a + ei + ret +; 0x1000a4 Function1000a4: ; 1000a4 di @@ -100706,12 +100737,12 @@ Function100232: ; 100232 ; 10024d String10024d: ; 10024d - db "つうしんを キャンセル しました@" + db "つうしんを キャンセル しました@" ; 10025e String10025e: ; 10025e - db "おともだちと えらんだ へやが", $4e - db "ちがうようです@" + db "おともだちと えらんだ へやが" + next "ちがうようです@" ; 100276 Function100276: ; 100276 @@ -100810,7 +100841,10 @@ Function100320: ; 100320 ret ; 100327 -INCBIN "baserom.gbc",$100327,$10032e - $100327 +Function100327: ; 100327 + callba Function10402d + ret +; 100327 Function10032e: ; 10032e @@ -100839,8 +100873,6 @@ Function100337: ; 100337 ret ; 10034d - - Function10034d: ; 10034d ld a, [$c821] bit 1, a @@ -100884,7 +100916,7 @@ Function10034d: ; 10034d Function100382: ; 100382 ld a, [$cd27] - ld hl, $444e + ld hl, Jumptable_10044e rst JumpTable ret ; 10038a @@ -100912,8 +100944,14 @@ Function10039c: ; 10039c ret ; 1003ab -INCBIN "baserom.gbc",$1003ab,$1003ba - $1003ab - +Function1003ab: ; 1003ab + ld hl, $d000 + ld de, $cc60 + ld bc, $0054 + ld a, $3 + call FarCopyWRAM + ret +; 1003ba Function1003ba: ; 1003ba ld hl, $ccb4 @@ -101041,8 +101079,6 @@ Jumptable_10044e: ; 10044e (40:444e) dw Function1004f4 dw Function1004a4 - - Function10046a: ; 10046a ld hl, BGMapPalBuffer inc [hl] @@ -101168,8 +101204,192 @@ Function100504: ; 100504 ret ; 100513 -INCBIN "baserom.gbc",$100513,$10062d - $100513 +Function100513: ; 100513 + call Function3f7c + call Function1c89 + call Function1c10 + ld hl, $cfa5 + set 7, [hl] + ret +; 100522 + +Function100522: ; 100522 + ld a, [$cd28] + ld hl, Jumptable_10052a + rst JumpTable + ret +; 10052a + +Jumptable_10052a: ; 10052a + dw Function100534 + dw Function100545 + dw Function100545 + dw Function100545 + dw Function10054d +; 100534 + +Function100534: ; 100534 + call Function100513 + call Function1ad2 + call Function321c + ld a, [$cd28] + inc a + ld [$cd28], a + ret +; 100545 + +Function100545: ; 100545 + ld a, [$cd28] + inc a + ld [$cd28], a + ret +; 10054d + +Function10054d: ; 10054d + callba Function241ba + ld a, c + ld hl, $cfa8 + and [hl] + ret z + call Function1ff8 + bit 0, a + jr nz, .asm_100565 + bit 1, a + jr nz, .asm_10056f + ret + +.asm_100565 + ld a, [$cd28] + set 7, a + ld [$cd28], a + and a + ret +.asm_10056f + ld a, [$cd28] + set 7, a + ld [$cd28], a + scf + ret +; 100579 + +Function100579: ; 100579 + ld a, [$cd26] + ld hl, Jumptable_100581 + rst JumpTable + ret +; 100581 + +Jumptable_100581: ; 100581 + dw Function100585 + dw Function100597 +; 100585 + +Function100585: ; 100585 + ld hl, MenuDataHeader_1005b2 + call LoadMenuDataHeader + ld a, $0 + ld [$cd28], a + ld a, [$cd26] + inc a + ld [$cd26], a + +Function100597: ; 100597 + call Function100522 + ld a, [$cd28] + bit 7, a + ret z + jr nc, .asm_1005a6 + xor a + ld [$cfa9], a + +.asm_1005a6 + call Function1c07 + ld a, [$cd26] + set 7, a + ld [$cd26], a + ret +; 1005b2 + +MenuDataHeader_1005b2: ; 1005b2 + db $40 ; flags + db 6, 14 + db 10, 19 + dw MenuData2_1005ba + db 1 ; default option + +MenuData2_1005ba: + db $c0 ; flags + db 2 + db "はい@" + db "いいえ@" +; 1005c3 + +Function1005c3: ; 1005c3 + ld a, [$cd26] + ld hl, Jumptable_1005cb + rst JumpTable + ret +; 1005cb + +Jumptable_1005cb: ; 1005cb + dw Function1005cf + dw Function1005e1 +; 1005cf + +Function1005cf: ; 1005cf + ld hl, MenuDataHeader_1005fc + call LoadMenuDataHeader + ld a, $0 + ld [$cd28], a + ld a, [$cd26] + inc a + ld [$cd26], a + +Function1005e1: ; 1005e1 + call Function100522 + ld a, [$cd28] + bit 7, a + ret z + jr nc, .asm_1005f0 + xor a + ld [$cfa9], a +.asm_1005f0 + call Function1c07 + ld a, [$cd26] + set 7, a + ld [$cd26], a + ret +; 1005fc + +MenuDataHeader_1005fc: ; 1005fc + db $40 ; flags + db 6, 14 + db 10, 19 + dw MenuData2_100604 + db 1 ; default option + +MenuData2_100604: ; 100604 + db $c0 ; flags + db 2 + db "かける@" + db "まつ@" +; 10060d + +Function10060d: ; 10060d + ld hl, $c56b + ld b, $1 + ld c, $b + call Function3eea + ld de, String_100621 + ld hl, $c580 + call PlaceString + ret +; 100621 + +String_100621: ; 100621 + db "つうしんたいきちゅう!@" +; 10062d Function10062d: ; 10062d push bc @@ -101196,8 +101416,8 @@ Function100641: ; 100641 ret ; 10064c -INCBIN "baserom.gbc",$10064c,$10064e - $10064c - +Function10064c: ; 10064c + ld c, 1 Function10064e: ; 10064e ld hl, $cd46 @@ -101223,7 +101443,17 @@ Function10064e: ; 10064e ret ; 100665 -INCBIN "baserom.gbc",$100665,$100675 - $100665 +Function100665: ; 100665 + call UpdateTime + ld hl, $cd36 + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ld a, [hSeconds] + ld [hl], a + ret +; 100675 Function100675: ; 100675 ld hl, $cd2a @@ -101245,9 +101475,10 @@ Function100681: ; 100681 push hl call Function1006d3 pop hl - .asm_100694 ld de, $cd32 + +Function100697: ; 100697 ld a, [de] and a jr nz, .asm_1006bb @@ -101348,7 +101579,80 @@ Function10070d: ; 10070d ret ; 100720 -INCBIN "baserom.gbc",$100720,$10079c - $100720 +Function100720: ; 100720 + xor a + ld [$cd6a], a + call UpdateTime + ld a, [hHours] + ld [$cd72], a + ld a, [hMinutes] + ld [$cd73], a + ld a, [hSeconds] + ld [$cd74], a + ld a, $4 + ld hl, $a800 + call GetSRAMBank + ld a, [hli] + ld [$cd6c], a + ld a, [hli] + ld [$cd6d], a + ld a, [hli] + ld [$cd6e], a + call CloseSRAM + ld a, [$cd6d] + ld [$cd6b], a + ret +; 100754 + +Function100754: ; 100754 + call UpdateTime + ld a, [hHours] + ld [$cd72], a + ld a, [hMinutes] + ld [$cd73], a + ld a, [hSeconds] + ld [$cd74], a + ld a, [$cd6d] + ld [$cd6b], a + ld hl, $cd2a + res 6, [hl] + ret +; 100772 + +Function100772: ; 100772 + push de + ld hl, $cd6c + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr nz, .asm_10078c + inc hl + inc de + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr nz, .asm_10078c + inc hl + inc de + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr z, .asm_10079a + +.asm_10078c + pop hl + ld a, [hli] + ld [$cd6c], a + ld a, [hli] + ld [$cd6d], a + ld a, [hli] + ld [$cd6e], a + ret + +.asm_10079a + pop de + ret +; 10079c Function10079c: ; 10079c @@ -101457,7 +101761,46 @@ Function100826: ; 100826 ret ; 100846 -INCBIN "baserom.gbc",$100846,$1008a6 - $100846 +Function100846: ; 100846 + ld hl, $cd2a + bit 5, [hl] + jr nz, .asm_10087c + ld a, [$cd6e] + ld c, a + ld a, $0 + sub c + jr nc, .asm_100858 + add $3c + +.asm_100858 + ld [$d088], a + ld a, [$cd6d] + ld c, a + ld a, $a + sbc c + ld [$d087], a + xor a + ld [StringBuffer2], a + ld de, $488e + ld hl, $c5b9 + call PlaceString + ld de, StringBuffer2 + ld hl, $c5e4 + call Function100697 + ret + +.asm_10087c + ld de, $488e + ld hl, $c5b9 + call PlaceString + ld h, b + ld l, c + ld de, $489f + call PlaceString + ret +; 10088e + +INCBIN "baserom.gbc", $10088e, $1008a6 - $10088e Function1008a6: ; 1008a6 ld a, $4 @@ -116073,8 +116416,8 @@ Function17f220: ; 17f220 add hl, de ld a, [hl] ld e, a - ld d, $0 - ld hl, $726e + ld d, 0 + ld hl, .Genders add hl, de add hl, de ld a, [hli] @@ -116094,7 +116437,9 @@ Function17f220: ; 17f220 ret ; 17f26e -INCBIN "baserom.gbc",$17f26e,$17f27b - $17f26e +.Genders: dw .Boy, .Girl +.Boy: db "Boy@" +.Girl: db "Girl@" Function17f27b: ; 17f27b pop hl @@ -116717,7 +117062,7 @@ Function17f5e4: ; 17f5e4 ld c, $10 call Function3eea hlcoord 3, 2 - ld de, $76dc + ld de, String_17f6dc call PlaceString call Function17ff3c jr nc, .asm_17f632 @@ -116735,7 +117080,7 @@ Function17f5e4: ; 17f5e4 jr nc, .asm_17f679 ld e, a ld d, $0 - ld hl, $7706 + ld hl, Table_17f706 add hl, de add hl, de ld a, [$c301] @@ -116792,8 +117137,8 @@ Function17f5e4: ; 17f5e4 .asm_17f684 sub $d0 ld e, a - ld d, $0 - ld hl, $7699 + ld d, 0 + ld hl, Table_17f699 add hl, de add hl, de ld a, [hli] @@ -116805,7 +117150,26 @@ Function17f5e4: ; 17f5e4 ret ; 17f699 -INCBIN "baserom.gbc",$17f699,$17f6b7 - $17f699 +Table_17f699: ; 17f699 + dw String_17fedf + dw String_17fdd9 + dw String_17fdd9 + dw String_17fe03 + dw String_17fd84 + dw String_17fe63 + dw String_17fdb2 + dw String_17fe4b + dw String_17fe03 + dw String_17fe03 + dw String_17fe03 +; 17f6af + +Palette_17f6af: ; 17f6af + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 +; 17f6b7 Function17f6b7: ; 17f6b7 ld a, [$c300] @@ -116833,7 +117197,389 @@ Function17f6d8: ; 17f6d8 ret ; 17f6dc -INCBIN "baserom.gbc",$17f6dc,$17ff23 - $17f6dc +String_17f6dc: ; 17f6dc + db "つうしんエラー ー@" +; 17f6e8 + +String_17f6e8: ; 17f6e8 + db "みていぎ", $25, "エラーです" + next "プログラム", $1f + next "かくにん してください" + db "@" +; 17f706 + +Table_17f706: + dw Unknown_17f74e + dw Unknown_17f753 + dw Unknown_17f758 + dw Unknown_17f75d + dw Unknown_17f762 + dw Unknown_17f767 + dw Unknown_17f778 + dw Unknown_17f77d + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f787 + dw Unknown_17f78c + dw Unknown_17f791 + dw Unknown_17f796 + dw Unknown_17f79b + dw Unknown_17f7a0 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7ea + dw Unknown_17f7ff + dw Unknown_17f844 + +Unknown_17f74e: db 1 + dbbw $0, $0, String_17f891 + +Unknown_17f753: db 1 + dbbw $0, $0, String_17f8d1 + +Unknown_17f758: db 1 + dbbw $0, $0, String_17f913 + +Unknown_17f75d: db 1 + dbbw $0, $0, String_17f8d1 + +Unknown_17f762: db 1 + dbbw $0, $0, String_17fa71 + +Unknown_17f767: db 4 + dbbw $0, $0, String_17f946 + dbbw $1, $0, String_17f946 + dbbw $2, $0, String_17f946 + dbbw $3, $0, String_17f946 + +Unknown_17f778: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f77d: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f782: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f787: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f78c: db 1 + dbbw $0, $0, String_17f9d0 + +Unknown_17f791: db 1 + dbbw $0, $0, String_17fa14 + +Unknown_17f796: db 1 + dbbw $0, $0, String_17fcbf + +Unknown_17f79b: db 1 + dbbw $0, $0, String_17fa71 + +Unknown_17f7a0: db 1 + dbbw $0, $0, String_17fbfe + +Unknown_17f7a5: db 17 + dbbw $0, $0, String_17f98e + dbbw $21, $2, String_17fcbf + dbbw $21, $4, String_17fcbf + dbbw $50, $4, String_17faf9 + dbbw $51, $4, String_17fcbf + dbbw $52, $4, String_17fcbf + dbbw $0, $5, String_17f98e + dbbw $1, $5, String_17f98e + dbbw $2, $5, String_17f98e + dbbw $3, $5, String_17f98e + dbbw $4, $5, String_17f98e + dbbw $50, $5, String_17faf9 + dbbw $51, $5, String_17faf9 + dbbw $52, $5, String_17fcbf + dbbw $53, $5, String_17faf9 + dbbw $54, $5, String_17fcbf + dbbw $ff, $ff, String_17fcbf + +Unknown_17f7ea: db 5 + dbbw $0, $0, String_17f98e + dbbw $2, $0, String_17fb2a + dbbw $3, $0, String_17fb6e + dbbw $4, $0, String_17f98e + dbbw $ff, $ff, String_17fcbf + +Unknown_17f7ff: db 17 + dbbw $0, $0, String_17f98e + dbbw $1, $3, String_17f98e + dbbw $2, $3, String_17f98e + dbbw $0, $4, String_17f98e + dbbw $1, $4, String_17f98e + dbbw $3, $4, String_17fbb6 + dbbw $4, $4, String_17fbb6 + dbbw $5, $4, String_17f98e + dbbw $6, $4, String_17f98e + dbbw $7, $4, String_17f98e + dbbw $8, $4, String_17fbfe + dbbw $0, $5, String_17fa49 + dbbw $1, $5, String_17f98e + dbbw $2, $5, String_17fa49 + dbbw $3, $5, String_17fab0 + dbbw $4, $5, String_17fa49 + dbbw $ff, $ff, String_17fa49 + +Unknown_17f844: db 19 + dbbw $1, $1, String_17fc3e + dbbw $2, $1, String_17fc88 + dbbw $3, $1, String_17fcff + dbbw $4, $1, String_17fd84 + dbbw $5, $1, String_17fd84 + dbbw $6, $1, String_17fd47 + dbbw $1, $2, String_17fb6e + dbbw $2, $2, String_17f98e + dbbw $3, $2, String_17fd84 + dbbw $4, $2, String_17f98e + dbbw $5, $2, String_17fa49 + dbbw $6, $2, String_17fd84 + dbbw $99, $2, String_17fc88 + dbbw $1, $3, String_17fa49 + dbbw $1, $4, String_17fa49 + dbbw $2, $4, String_17fa49 + dbbw $3, $4, String_17fa49 + dbbw $4, $4, String_17fa49 + dbbw $ff, $ff, String_17fa49 + +String_17f891: ; 17f891 + db "モバイルアダプタが ただしく" + next "さしこまれていません" + next "とりあつかいせつめいしょを" + next "ごらんのうえ しっかりと" + next "さしこんで ください" + db "@" + +String_17f8d1: ; 17f8d1 + db "でんわが うまく かけられないか" + next "でんわかいせんが こんでいるので" + next "つうしん できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17f913: ; 17f913 + db "でんわかいせんが こんでいるため" + next "でんわが かけられません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17f946: ; 17f946 + db "モバイルアダプタの エラーです" + next "しばらく まって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17f98e: ; 17f98e + db "つうしんエラーです" + next "しばらく まって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17f9d0: ; 17f9d0 + db "ログインパスワードか" + next "ログイン アイディーに" + next "まちがいがあります" + next "パスワードを かくにんして" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fa14: ; 17fa14 + db "でんわが きれました" + next "とりあつかいせつめいしょを" + next "ごらんのうえ" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fa49: ; 17fa49 + db "モバイルセンターの" + next "つうしんエラーです" + next "しばらくまって" + next "かけなおして ください" + db "@" + +String_17fa71: ; 17fa71 + db "モバイルアダプタに" + next "とうろくされた じょうほうが" + next "ただしく ありません" + next "モバイルトレーナーで" + next "しょきとうろくを してください" + db "@" + +String_17fab0: ; 17fab0 + db "モバイルセンターが" + next "こんでいて つながりません" + next "しばらくまって" + next "かけなおして ください" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17faf9: ; 17faf9 + db "あてさき メールアドレスに" + next "まちがいがあります" + next "ただしい メールアドレスを" + next "いれなおしてください" + db "@" + +String_17fb2a: ; 17fb2a + db "メールアドレスに" + next "まちがいが あります" + next "とりあつかいせつめいしょを" + next "ごらんのうえ" + next "モバイルトレーナーで" + next "しょきとうろくを してください" + db "@" + +String_17fb6e: ; 17fb6e + db "ログインパスワードに" + next "まちがいが あるか" + next "モバイルセンターの エラーです" + next "パスワードを かくにんして" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fbb6: ; 17fbb6 + db "データの よみこみが できません" + next "しばらくまって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17fbfe: ; 17fbfe + db "じかんぎれです" + next "でんわが きれました" + next "でんわを かけなおしてください" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fc3e: ; 17fc3e + db "ごりよう りょうきんの " + next "おしはらいが おくれたばあいには" + next "ごりようが できなくなります" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fc88: ; 17fc88 + db "おきゃくさまの ごつごうにより" + next "ごりようできません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fcbf: ; 17fcbf + db "でんわかいせんが こんでいるか" + next "モバイルセンターの エラーで" + next "つうしんが できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fcff: ; 17fcff + db "ごりよう りょうきんが" + next "じょうげんを こえているため" + next "こんげつは ごりようできません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fd47: ; 17fd47 + db "げんざい モバイルセンターの" + next "てんけんを しているので" + next "つうしんが できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fd84: ; 17fd84 + db "データの よみこみが できません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + + +String_17fdb2: ; 17fdb2 + db "3ぷん いじょう なにも" + next "にゅうりょく しなかったので" + next "でんわが きれました" + db "@" + +String_17fdd9: ; 17fdd9 + db "つうしんが うまく" + next "できませんでした" + next "もういちど はじめから" + next "やりなおしてください" + db "@" + +String_17fe03: ; 17fe03 + db "データの よみこみが できません" + next "しばらくまって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17fe4b: ; 17fe4b + db "まちじかんが ながいので" + next "でんわが きれました" + db "@" + +String_17fe63: ; 17fe63 + db "あいての モバイルアダプタと" + next "タイプが ちがいます" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fe9a: ; 17fe9a ; unreferenced + db "ポケモンニュースが" + next "あたらしくなっているので" + next "レポートを おくれません" + next "あたらしい ポケモンニュースの" + next "よみこみを さきに してください" + db "@" + +String_17fedf: ; 17fedf + db "つうしんの じょうきょうが" + next "よくないか かけるあいてが" + next "まちがっています" + next "もういちど かくにんをして" + next "でんわを かけなおして ください" + db "@" +; 17ff23 Function17ff23: ; 17ff23 ld a, [hJoyPressed] @@ -116856,7 +117602,7 @@ Function17ff3c: ; 17ff3c cp $d0 ret c hlcoord 10, 2 - ld de, $7f68 + ld de, String_17ff68 call PlaceString ld a, [$c300] push af @@ -116873,7 +117619,9 @@ Function17ff3c: ; 17ff3c ret ; 17ff68 -INCBIN "baserom.gbc",$17ff68,$17ff6c - $17ff68 +String_17ff68: ; 17ff68 + db "101@" +; 17ff6c @@ -117278,11 +118026,12 @@ String1dc559: ; 1dc559 db $73, "№.@" String1dc55d: ; 1dc55d - db "ATTACK", $4e - db "DEFENSE", $4e - db "SPCL.ATK", $4e - db "SPCL.DEF", $4e - db "SPEED@" + db "ATTACK" + next "DEFENSE" + next "SPCL.ATK" + next "SPCL.DEF" + next "SPEED" + db "@" String1dc584: ; 1dc584 db "------------@" @@ -117298,7 +118047,21 @@ INCBIN "gfx/mobile/lv.1bpp" INCLUDE "tilesets/data_7.asm" -INCBIN "baserom.gbc",$1dd6a9,$1dd6bb - $1dd6a9 +Function1dd6a9: ; 1dd6a9 + ld a, b + ld b, c + ld c, a + push bc + push de + ld hl, [sp+$2] + ld d, h + ld e, l + pop hl + ld bc, $8205 + call PrintNum + pop bc + ret +; 1dd6bb Function1dd6bb: ; 1dd6bb (77:56bb) ld a, b @@ -117335,17 +118098,19 @@ Function1dd6bb: ; 1dd6bb (77:56bb) ld bc, $8102 call PrintNum pop bc - ld de, $56fc + ld de, String_1dd6fc pop af jr c, .asm_1dd6f7 - ld de, $56ff + ld de, String_1dd6ff .asm_1dd6f7 inc hl call PlaceString ret ; 1dd6fc (77:56fc) -INCBIN "baserom.gbc",$1dd6fc,$1dd702 - $1dd6fc +String_1dd6fc: db "AM@" +String_1dd6ff: db "PM@" +; 1dd702 Function1dd702: ; 1dd702 call Function1dd709 @@ -117358,23 +118123,23 @@ Function1dd709: ; 1dd709 call ClearTileMap call ClearSprites call DisableLCD - ld hl, $5805 + ld hl, LZ_1dd805 ld de, VTiles2 call Decompress - ld hl, $5c4b + ld hl, Tilemap_1ddc4b ld de, TileMap ld bc, $0168 call CopyBytes - ld de, $5760 + ld de, String_1dd760 hlcoord 2, 5 call PlaceString - ld de, $5767 + ld de, String_1dd767 hlcoord 15, 5 call PlaceString ld de, PlayerName hlcoord 9, 5 call PlaceString - ld de, $5768 + ld de, String_1dd768 hlcoord 2, 8 call PlaceString call EnableLCD @@ -117386,21 +118151,34 @@ Function1dd709: ; 1dd709 ret ; 1dd760 -INCBIN "baserom.gbc",$1dd760,$1dd7ae - $1dd760 +String_1dd760: + db "PLAYER@" + +String_1dd767: + db "@" + +String_1dd768: + db "This certifies" + next "that you have" + next "completed the" + next "new #DEX." + next "Congratulations!" + db "@" +; 1dd7ae Function1dd7ae: ; 1dd7ae ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill - ld hl, $5db3 + ld hl, Tilemap_1dddb3 ld de, TileMap ld bc, $0168 call CopyBytes - ld de, $57fa + ld de, String_1dd7fa hlcoord 8, 0 call PlaceString - ld de, $57f0 + ld de, String_1dd7f0 hlcoord 3, 15 call PlaceString hlcoord 12, 15 @@ -117415,36 +118193,48 @@ Function1dd7ae: ; 1dd7ae ret ; 1dd7f0 -INCBIN "baserom.gbc",$1dd7f0,$1ddf1c - $1dd7f0 +String_1dd7f0: db "PLAY TIME@" +String_1dd7fa: db "GAME FREAK@" +; 1dd805 + +LZ_1dd805: ; 1dd805 +INCBIN "baserom.gbc", $1dd805, $1ddc4b - $1dd805 +Tilemap_1ddc4b: ; 1ddc4b +INCBIN "baserom.gbc", $1ddc4b, $1dddb3 - $1ddc4b + +Tilemap_1dddb3: ; 1dddb3 +INCBIN "baserom.gbc", $1dddb3, $1ddf1c - $1dddb3 Function1ddf1c: ; 1ddf1c - ld hl, $5f33 + ld hl, LZ_1ddf33 ld de, $9310 call Decompress ret ; 1ddf26 - Function1ddf26: ; 1ddf26 (77:5f26) - ld hl, $5f33 + ld hl, LZ_1ddf33 ld de, $9310 - ld bc, $773a + lb bc, BANK(LZ_1ddf33), $3a call Functione73 ret ; 1ddf33 (77:5f33) +LZ_1ddf33: ; 1ddf33 INCBIN "baserom.gbc",$1ddf33,$1de0d7 - $1ddf33 - +; 1de0d7 Function1de0d7: ; 1de0d7 - ld hl, $60e1 + ld hl, LZ_1de0e1 ld de, $a000 call Decompress ret ; 1de0e1 +LZ_1de0e1: ; 1de0e1 INCBIN "baserom.gbc",$1de0e1,$1de171 - $1de0e1 +; 1de171 Function1de171: ; 1de171 (77:6171) ld a, $32 @@ -117524,16 +118314,21 @@ Function1de1d1: ; 1de1d1 (77:61d1) call Function1de27f ld [hl], $68 hlcoord 0, 12 - ld bc, $50b + lb bc, 5, 11 call ClearBox - ld de, $623c + ld de, String_1de23c hlcoord 0, 12 call PlaceString ret ; 1de23c (77:623c) -INCBIN "baserom.gbc",$1de23c,$1de247 - $1de23c - +String_1de23c: ; 1de23c +; At a glance, this is less coherent in the Japanese charset. + db "ESULTS" + db $4e + db $4e + db "D!@" +; 1de247 Function1de247: ; 1de247 ld a, [hBGMapAddress] @@ -117660,9 +118455,7 @@ Function1de2c5: ; 1de2c5 PokegearGFX: ; 1de2e4 INCBIN "gfx/misc/pokegear.2bpp.lz" -; 1de5c7 - -INCBIN "baserom.gbc",$1de5c7,$1de5c8 - $1de5c7 +; 1de5c8 Function1de5c8: ; 1de5c8 ld c, $0 |