diff options
author | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-09-04 13:46:35 -0400 |
---|---|---|
committer | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-09-04 13:46:35 -0400 |
commit | bf35bf265bba4f650a9fcebdcb1a7ccb64fde4f7 (patch) | |
tree | dd1c92352b2ccd9ae491a35d9c64a9977a3d3352 | |
parent | b7ed43bd568045f265fc96abee480ff8bb8e2177 (diff) |
engine/mon_party_sprites.asm and INSTALL.md
-rw-r--r-- | INSTALL.md | 29 | ||||
-rwxr-xr-x | constants/sprite_constants.asm | 2 | ||||
-rwxr-xr-x | data/mon_party_sprites.asm | 15 | ||||
-rwxr-xr-x | engine/mon_party_sprites.asm | 66 | ||||
-rwxr-xr-x | yellow/main.asm | 8 |
5 files changed, 76 insertions, 44 deletions
@@ -8,18 +8,12 @@ sudo make install cd .. - git clone --recursive git://github.com/iimarckus/pokered.git - cd pokered - -To build **pokered.gbc** and **pokeblue.gbc**: + git clone --recursive git://github.com/dannye/pokeyellow.git + cd pokeyellow +To build **pokeyellow.gbc**: make -To build them individually: - - make red - make blue - # Mac @@ -33,8 +27,12 @@ In the shell, run: sudo make install cd .. - git clone --recursive git://github.com/iimarckus/pokered.git - cd pokered + git clone --recursive git://github.com/dannye/pokeyellow.git + cd pokeyellow + +Copy the ROM "Pokemon Yellow (U) [C][!].gbc" to the same directory as the disassembly under the name "baserom.gbc". + +Then run (in the shell): make @@ -48,10 +46,15 @@ In the installer, select the following packages: `make` `git` `gettext` `python` Then get the most recent version of [**rgbds**](https://github.com/bentley/rgbds/releases/). Put `rgbasm.exe`, `rgblink.exe` and `rgbfix.exe` in `C:\cygwin\usr\local\bin`. + In the **Cygwin terminal**: easy_install pypng - git clone --recursive git://github.com/iimarckus/pokered.git - cd pokered + git clone --recursive git://github.com/dannye/pokeyellow.git + cd pokeyellow + +Copy the ROM "Pokemon Yellow (U) [C][!].gbc" to the same directory as the disassembly under the name "baserom.gbc". + +Then run (in the Cygwin terminal): make diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 77224bc1..68fb8488 100755 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -11,7 +11,7 @@ const_value = 0 const SPRITE_GRASS ; $7 const SPRITE_SNAKE ; $8 const SPRITE_QUADRUPED ; $9 - + const SPRITE_PIKACHU ; $A ; overworld sprites const_value = 1 diff --git a/data/mon_party_sprites.asm b/data/mon_party_sprites.asm index 7e434dce..dde8cdb4 100755 --- a/data/mon_party_sprites.asm +++ b/data/mon_party_sprites.asm @@ -1,4 +1,15 @@ -MonPartyData: ; 7190d (1c:590d) +MonPartyData: ; 719ba (1c:59ba) +; MON = 0 +; BALL_M = 1 +; HELIX = 2 +; FAIRY = 3 +; BIRD_M = 4 +; WATER = 5 +; BUG = 6 +; GRASS = 7 +; SNAKE = 8 +; QUADRUPED = 9 +; PIKACHU = A dn SPRITE_GRASS, SPRITE_GRASS ;Bulbasaur/Ivysaur dn SPRITE_GRASS, SPRITE_MON ;Venusaur/Charmander dn SPRITE_MON, SPRITE_MON ;Charmeleon/Charizard @@ -11,7 +22,7 @@ MonPartyData: ; 7190d (1c:590d) dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Rattata/Raticate dn SPRITE_BIRD_M, SPRITE_BIRD_M ;Spearow/Fearow dn SPRITE_SNAKE, SPRITE_SNAKE ;Ekans/Arbok - dn SPRITE_FAIRY, SPRITE_FAIRY ;Pikachu/Raichu + dn SPRITE_PIKACHU, SPRITE_PIKACHU ;Pikachu/Raichu dn SPRITE_MON, SPRITE_MON ;Sandshrew/Sandslash dn SPRITE_MON, SPRITE_MON ;NidoranF/Nidorina dn SPRITE_MON, SPRITE_MON ;Nidoqueen/NidoranM diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index 185151cb..09d1cb4c 100755 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -1,4 +1,4 @@ -AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7) +AnimatePartyMon_ForceSpeed1: ; 71784 (1c:5784) xor a ld [wCurrentMenuItem], a ld b, a @@ -9,7 +9,7 @@ AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7) ; 0: green ; 1: yellow ; 2: red -AnimatePartyMon: ; 716ff (1c:56ff) +AnimatePartyMon: ; 7178c (1c:578c) ld hl, wPartyMenuHPBarColors ld a, [wCurrentMenuItem] ld c, a @@ -17,7 +17,7 @@ AnimatePartyMon: ; 716ff (1c:56ff) add hl, bc ld a, [hl] -GetAnimationSpeed: ; 7170a (1c:570a) +GetAnimationSpeed: ; 71797 (1c:5797) ld c, a ld hl, PartyMonSpeeds add hl, bc @@ -85,15 +85,15 @@ GetAnimationSpeed: ; 7170a (1c:570a) ; The members of the PartyMonSpeeds array specify the number of V-blanks ; that each frame lasts for green HP, yellow HP, and red HP in order. ; On the naming screen, the yellow HP speed is always used. -PartyMonSpeeds: ; 71769 (1c:5769) +PartyMonSpeeds: ; 717f6 (1c:57f6) db 5, 16, 32 -LoadMonPartySpriteGfx: ; 7176c (1c:576c) +LoadMonPartySpriteGfx: ; 717f9 (1c:57f9) ; Load mon party sprite tile patterns into VRAM during V-blank. ld hl, MonPartySpritePointers - ld a, $1c + ld a, $1e -LoadAnimSpriteGfx: ; 71771 (1c:5771) +LoadAnimSpriteGfx: ; 717fe (1c:57fe) ; Load animated sprite tile patterns into VRAM during V-blank. hl is the address ; of an array of structures that contain arguments for CopyVideoData and a is ; the number of structures in the array. @@ -125,14 +125,14 @@ LoadAnimSpriteGfx: ; 71771 (1c:5771) jr nz, .loop ret -LoadMonPartySpriteGfxWithLCDDisabled: ; 71791 (1c:5791) +LoadMonPartySpriteGfxWithLCDDisabled: ; 7181e (1c:581e) ; Load mon party sprite tile patterns into VRAM immediately by disabling the ; LCD. call DisableLCD ld hl, MonPartySpritePointers - ld a, $1c + ld a, $1e ld bc, $0 -.asm_7179c +.loop push af push bc push hl @@ -151,7 +151,7 @@ LoadMonPartySpriteGfxWithLCDDisabled: ; 71791 (1c:5791) inc hl ld d, [hl] pop hl - call FarCopyData2 + call FarCopyData pop hl pop bc ld a, $6 @@ -159,10 +159,10 @@ LoadMonPartySpriteGfxWithLCDDisabled: ; 71791 (1c:5791) ld c, a pop af dec a - jr nz, .asm_7179c + jr nz, .loop jp EnableLCD -MonPartySpritePointers: ; 717c0 (1c:57c0) +MonPartySpritePointers: ; 7184d (1c:584d) dw SlowbroSprite + $c0 db $40 / $10 ; 40 bytes db BANK(SlowbroSprite) @@ -227,7 +227,12 @@ MonPartySpritePointers: ; 717c0 (1c:57c0) db $10 / $10 ; $10 bytes db BANK(MonPartySprites) dw vSprites + $260 - + + dw PikachuSprite + db $40 / $10 ; $40 bytes + db BANK(PikachuSprite) + dw vSprites + $280 + dw MonPartySprites + $100 db $40 / $10 ; $40 bytes db BANK(MonPartySprites) @@ -298,17 +303,24 @@ MonPartySpritePointers: ; 717c0 (1c:57c0) db BANK(MonPartySprites) dw vSprites + $660 + dw PikachuSprite + $C0 + db $40 / $10 ; $40 bytes + db BANK(PikachuSprite) + dw vSprites + $680 + dw MonPartySprites + $140 db $40 / $10 ; $40 bytes db BANK(MonPartySprites) dw vSprites + $780 -WriteMonPartySpriteOAMByPartyIndex: ; 71868 (1c:5868) +WriteMonPartySpriteOAMByPartyIndex: ; 71901 (1c:5901) ; Write OAM blocks for the party mon in [hPartyMonIndex]. push hl push de push bc ld a, [hPartyMonIndex] + cp $ff + jr z, .asm_7191f ld hl, wPartySpecies ld e, a ld d, 0 @@ -322,7 +334,17 @@ WriteMonPartySpriteOAMByPartyIndex: ; 71868 (1c:5868) pop hl ret -WriteMonPartySpriteOAMBySpecies: ; 71882 (1c:5882) +.asm_7191f + ld hl, wOAMBuffer + ld de, wMonPartySpritesSavedOAM + ld bc, $60 + call CopyData + pop bc + pop de + pop hl + ret + +WriteMonPartySpriteOAMBySpecies: ; 7192f (1c:592f) ; Write OAM blocks for the party sprite of the species in ; [wMonPartySpriteSpecies]. xor a @@ -332,7 +354,7 @@ WriteMonPartySpriteOAMBySpecies: ; 71882 (1c:5882) ld [wOAMBaseTile], a jr WriteMonPartySpriteOAM -UnusedPartyMonSpriteFunction: ; 71890 (1c:5890) +UnusedPartyMonSpriteFunction: ; 7193d (1c:593d) ; This function is unused and doesn't appear to do anything useful. It looks ; like it may have been intended to load the tile patterns and OAM data for ; the mon party sprite associated with the species in [wcf91]. @@ -343,14 +365,14 @@ UnusedPartyMonSpriteFunction: ; 71890 (1c:5890) ld hl, vSprites call .LoadTilePatterns pop af - add $54 + add $5A ld hl, vSprites + $40 call .LoadTilePatterns xor a ld [wMonPartySpriteSpecies], a jr WriteMonPartySpriteOAMBySpecies -.LoadTilePatterns ; 718ac (1c:58ac) +.LoadTilePatterns ; 71959 (1c:5959) push hl add a ld c, a @@ -370,7 +392,7 @@ UnusedPartyMonSpriteFunction: ; 71890 (1c:5890) pop hl jp CopyVideoData -WriteMonPartySpriteOAM: ; 718c3 (1c:58c3) +WriteMonPartySpriteOAM: ; 71970 (1c:5970) ; Write the OAM blocks for the first animation frame into the OAM buffer and ; make a copy at wMonPartySpritesSavedOAM. push af @@ -396,7 +418,7 @@ WriteMonPartySpriteOAM: ; 718c3 (1c:58c3) ld bc, $60 jp CopyData -GetPartyMonSpriteID: ; 718e9 (1c:58e9) +GetPartyMonSpriteID: ; 71996 (1c:5996) ld [wd11e], a predef IndexToPokedex ld a, [wd11e] @@ -419,5 +441,5 @@ GetPartyMonSpriteID: ; 718e9 (1c:58e9) INCLUDE "data/mon_party_sprites.asm" -MonPartySprites: ; 71959 (1c:5959) +MonPartySprites: ; 71a06 (1c:5a06) INCBIN "gfx/mon_ow_sprites.2bpp" diff --git a/yellow/main.asm b/yellow/main.asm index 3b8a2a85..5795df45 100755 --- a/yellow/main.asm +++ b/yellow/main.asm @@ -1096,12 +1096,8 @@ INCLUDE "engine/overworld/player_animations.asm" INCLUDE "engine/battle/ghost_marowak_anim.asm" INCLUDE "engine/battle/battle_transitions.asm" INCLUDE "engine/town_map.asm" -AnimatePartyMon_ForceSpeed1:: ; 71784 (1c:5784) - dr $71784,$7178c -AnimatePartyMon:: ; 7178c (1c:578c) - dr $7178c,$717fe -LoadAnimSpriteGfx: ; 717fe (1c:57fe) - dr $717fe,$71eb3 +INCLUDE "engine/mon_party_sprites.asm" + dr $71b86,$71eb3 INCLUDE "engine/palettes.asm" ;PokemonYellowGraphics: INCBIN "gfx/pokemon_yellow.t6.2bpp" |