From 955b53047c6d2ddc223ed24191de98f4b4fee5e5 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 23 May 2014 15:25:16 -0700 Subject: More complete hardware constants. Rename joypad constants. --- constants/hardware_constants.asm | 132 ++++++++++++++++++++++++++++++++------- constants/misc_constants.asm | 9 +++ 2 files changed, 120 insertions(+), 21 deletions(-) mode change 100755 => 100644 constants/hardware_constants.asm create mode 100644 constants/misc_constants.asm (limited to 'constants') diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm old mode 100755 new mode 100644 index de9d2311..accab39d --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -1,21 +1,111 @@ -; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm -rJOYP EQU $FF00 -rDIV EQU $FF04 -rLCDC EQU $FF40 -rSCY EQU $FF42 -rSCX EQU $FF43 -rBGP EQU $FF47 -rOBP0 EQU $FF48 -rOBP1 EQU $FF49 -rWY EQU $FF4A -rWX EQU $FF4B -rIE EQU $FFFF - -BTN_A EQU %00000001 -BTN_B EQU %00000010 -BTN_SELECT EQU %00000100 -BTN_START EQU %00001000 -BTN_RIGHT EQU %00010000 -BTN_LEFT EQU %00100000 -BTN_UP EQU %01000000 -BTN_DOWN EQU %10000000 \ No newline at end of file +; From http://nocash.emubase.de/pandocs.htm. + +; MBC3 +MBC3SRamEnable EQU $0000 +MBC3RomBank EQU $2000 +MBC3SRamBank EQU $4000 +MBC3LatchClock EQU $6000 +MBC3RTC EQU $a000 + +SRAM_DISABLE EQU $00 +SRAM_ENABLE EQU $0a + +NUM_SRAM_BANKS EQU 4 + +RTC_S EQU $08 ; Seconds 0-59 (0-3Bh) +RTC_M EQU $09 ; Minutes 0-59 (0-3Bh) +RTC_H EQU $0a ; Hours 0-23 (0-17h) +RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh) +RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag + ; Bit 0 Most significant bit of Day Counter (Bit 8) + ; Bit 6 Halt (0=Active, 1=Stop Timer) + ; Bit 7 Day Counter Carry Bit (1=Counter Overflow) + +; interrupt flags +VBLANK EQU 0 +LCD_STAT EQU 1 +TIMER EQU 2 +SERIAL EQU 3 +JOYPAD EQU 4 + +; OAM attribute flags +OAM_PALETTE EQU %111 +OAM_TILE_BANK EQU 3 +OAM_OBP_NUM EQU 4 ; Non CGB Mode Only +OAM_X_FLIP EQU 5 +OAM_Y_FLIP EQU 6 +OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) + + +; Hardware registers +rJOYP EQU $ff00 ; Joypad (R/W) +rSB EQU $ff01 ; Serial transfer data (R/W) +rSC EQU $ff02 ; Serial Transfer Control (R/W) +rSC_ON EQU 7 +rSC_CGB EQU 1 +rSC_CLOCK EQU 0 +rDIV EQU $ff04 ; Divider Register (R/W) +rTIMA EQU $ff05 ; Timer counter (R/W) +rTMA EQU $ff06 ; Timer Modulo (R/W) +rTAC EQU $ff07 ; Timer Control (R/W) +rTAC_ON EQU 2 +rTAC_4096_HZ EQU 0 +rTAC_262144_HZ EQU 1 +rTAC_65536_HZ EQU 2 +rTAC_16384_HZ EQU 3 +rIF EQU $ff0f ; Interrupt Flag (R/W) +rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) +rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) +rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) +rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) +rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) +rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) +rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) +rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) +rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) +rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) +rNR31 EQU $ff1b ; Channel 3 Sound Length +rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) +rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) +rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) +rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) +rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) +rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) +rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W) +rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) +rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) +rNR52 EQU $ff26 ; Sound on/off +rLCDC EQU $ff40 ; LCD Control (R/W) +rSTAT EQU $ff41 ; LCDC Status (R/W) +rSCY EQU $ff42 ; Scroll Y (R/W) +rSCX EQU $ff43 ; Scroll X (R/W) +rLY EQU $ff44 ; LCDC Y-Coordinate (R) +rLYC EQU $ff45 ; LY Compare (R/W) +rDMA EQU $ff46 ; DMA Transfer and Start Address (W) +rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only +rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only +rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only +rWY EQU $ff4a ; Window Y Position (R/W) +rWX EQU $ff4b ; Window X Position minus 7 (R/W) +rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch +rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank +rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High +rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low +rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High +rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low +rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start +rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port +rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index +rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data +rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index +rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data +rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only +rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank +rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only +rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) +rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) +rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) +rIE EQU $ffff ; Interrupt Enable (R/W) + diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm new file mode 100644 index 00000000..0a22e7cc --- /dev/null +++ b/constants/misc_constants.asm @@ -0,0 +1,9 @@ +A_BUTTON EQU %00000001 +B_BUTTON EQU %00000010 +SELECT EQU %00000100 +START EQU %00001000 +D_RIGHT EQU %00010000 +D_LEFT EQU %00100000 +D_UP EQU %01000000 +D_DOWN EQU %10000000 + -- cgit v1.2.3 From 8f8281fe6ed02d8235ab9f92fa6ae93f50a3bf8e Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 23 May 2014 15:34:35 -0700 Subject: Comment some more bank 0 functions. --- constants/hardware_constants.asm | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'constants') diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index accab39d..8e926a11 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -1,5 +1,7 @@ ; From http://nocash.emubase.de/pandocs.htm. +GBC EQU $11 + ; MBC3 MBC3SRamEnable EQU $0000 MBC3RomBank EQU $2000 @@ -28,6 +30,8 @@ TIMER EQU 2 SERIAL EQU 3 JOYPAD EQU 4 +LY_VBLANK EQU 145 + ; OAM attribute flags OAM_PALETTE EQU %111 OAM_TILE_BANK EQU 3 @@ -76,6 +80,8 @@ rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) rNR52 EQU $ff26 ; Sound on/off rLCDC EQU $ff40 ; LCD Control (R/W) +rLCDC_ENABLE EQU 7 +rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE rSTAT EQU $ff41 ; LCDC Status (R/W) rSCY EQU $ff42 ; Scroll Y (R/W) rSCX EQU $ff43 ; Scroll X (R/W) -- cgit v1.2.3 From 40c17c906b2b3f65b3b04b1933b90238a7ac5566 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 26 May 2014 14:04:56 -0700 Subject: Remove most static wram addresses. Use labels instead. For unknown addresses, use "w
". Label overleads are still an issue. --- constants/wram_constants.asm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'constants') diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 51c5c604..e06ca2ce 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -1,10 +1,14 @@ SPRITEBUFFERSIZE EQU 7*7 * 8 ; 7 * 7 (tiles) * 8 (bytes per tile) +; Overload W_GRASSMONS +wd893 EQU $d893 ; W_GRASSMONS + 11 +wd896 EQU $d896 ; W_GRASSMONS + 14 + ; Overload enemy party data -W_WATERRATE EQU $d8a4 -W_WATERMONS EQU $d8a5 +W_WATERRATE EQU $d8a4 ; wEnemyMon1Species +W_WATERMONS EQU $d8a5 ; wEnemyMon1Species + 1 ; Overload enemy stat modifiers -wTradeMonNick EQU $cd1e +wTradeMonNick EQU $cd1e ; wPlayerMonAccuracyMod -- cgit v1.2.3 From fc123e360b147221b5b44d265cdf38feabe99bbe Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 6 Jun 2014 22:10:04 -0700 Subject: Space out monster constants to make gaps clearer. --- constants/pokemon_constants.asm | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'constants') diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index af74e8f4..2ed03338 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -28,6 +28,8 @@ STARYU EQU $1B BLASTOISE EQU $1C PINSIR EQU $1D TANGELA EQU $1E + + GROWLITHE EQU $21 ONIX EQU $22 FEAROW EQU $23 @@ -45,17 +47,26 @@ PARASECT EQU $2E PSYDUCK EQU $2F DROWZEE EQU $30 GOLEM EQU $31 + MAGMAR EQU $33 + ELECTABUZZ EQU $35 MAGNETON EQU $36 KOFFING EQU $37 + MANKEY EQU $39 SEEL EQU $3A DIGLETT EQU $3B TAUROS EQU $3C + + + FARFETCH_D EQU $40 VENONAT EQU $41 DRAGONITE EQU $42 + + + DODUO EQU $46 POLIWAG EQU $47 JYNX EQU $48 @@ -65,16 +76,23 @@ ZAPDOS EQU $4B DITTO EQU $4C MEOWTH EQU $4D KRABBY EQU $4E + + + VULPIX EQU $52 NINETALES EQU $53 PIKACHU EQU $54 RAICHU EQU $55 + + DRATINI EQU $58 DRAGONAIR EQU $59 KABUTO EQU $5A KABUTOPS EQU $5B HORSEA EQU $5C SEADRA EQU $5D + + SANDSHREW EQU $60 SANDSLASH EQU $61 OMANYTE EQU $62 @@ -94,29 +112,38 @@ POLIWRATH EQU $6F WEEDLE EQU $70 KAKUNA EQU $71 BEEDRILL EQU $72 + DODRIO EQU $74 PRIMEAPE EQU $75 DUGTRIO EQU $76 VENOMOTH EQU $77 DEWGONG EQU $78 + + CATERPIE EQU $7B METAPOD EQU $7C BUTTERFREE EQU $7D MACHAMP EQU $7E + GOLDUCK EQU $80 HYPNO EQU $81 GOLBAT EQU $82 MEWTWO EQU $83 SNORLAX EQU $84 MAGIKARP EQU $85 + + MUK EQU $88 + KINGLER EQU $8A CLOYSTER EQU $8B + ELECTRODE EQU $8D CLEFABLE EQU $8E WEEZING EQU $8F PERSIAN EQU $90 MAROWAK EQU $91 + HAUNTER EQU $93 ABRA EQU $94 ALAKAZAM EQU $95 @@ -126,8 +153,13 @@ STARMIE EQU $98 BULBASAUR EQU $99 VENUSAUR EQU $9A TENTACRUEL EQU $9B + GOLDEEN EQU $9D SEAKING EQU $9E + + + + PONYTA EQU $A3 RAPIDASH EQU $A4 RATTATA EQU $A5 @@ -137,12 +169,16 @@ NIDORINA EQU $A8 GEODUDE EQU $A9 PORYGON EQU $AA AERODACTYL EQU $AB + MAGNEMITE EQU $AD + + CHARMANDER EQU $B0 SQUIRTLE EQU $B1 CHARMELEON EQU $B2 WARTORTLE EQU $B3 CHARIZARD EQU $B4 + FOSSIL_KABUTOPS EQU $B6 FOSSIL_AERODACTYL EQU $B7 MON_GHOST EQU $B8 @@ -151,4 +187,4 @@ GLOOM EQU $BA VILEPLUME EQU $BB BELLSPROUT EQU $BC WEEPINBELL EQU $BD -VICTREEBEL EQU $BE \ No newline at end of file +VICTREEBEL EQU $BE -- cgit v1.2.3 From b83acb03e50c4314e082e642bdb429346892d040 Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Mon, 9 Jun 2014 16:58:02 -0400 Subject: Clean up white space --- constants/move_animation_constants.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'constants') diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index 71051541..018c094b 100644 --- a/constants/move_animation_constants.asm +++ b/constants/move_animation_constants.asm @@ -1,4 +1,4 @@ -; subanimations +; subanimations ; special effects, prefaced with "SE" for "Special Effect" -- cgit v1.2.3 From 9eefed45f7ff3b9ee6023fb0829528e34aa0729a Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Tue, 10 Jun 2014 17:06:30 -0400 Subject: Use MAX_LEVEL instead of 100/$64 --- constants/misc_constants.asm | 1 + 1 file changed, 1 insertion(+) (limited to 'constants') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 0a22e7cc..c1d00464 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -7,3 +7,4 @@ D_LEFT EQU %00100000 D_UP EQU %01000000 D_DOWN EQU %10000000 +MAX_LEVEL EQU 100 -- cgit v1.2.3 From 53ae0e93fad9f4c3eaef92f102b1eeb531e59d68 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 14 Jun 2014 04:12:40 -0700 Subject: Use monster struct macros in wram. Rename related labels for consistency. --- constants/misc_constants.asm | 4 ++++ constants/move_constants.asm | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'constants') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index c1d00464..9621b843 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -8,3 +8,7 @@ D_UP EQU %01000000 D_DOWN EQU %10000000 MAX_LEVEL EQU 100 +NUM_MOVES EQU 4 + +MONS_PER_BOX EQU 20 +NUM_BOXES EQU 12 diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 9fdb1ce7..816bd115 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -1,4 +1,4 @@ -NUM_MOVES EQU $A4 +NUM_ATTACKS EQU $A4 POUND EQU $01 KARATE_CHOP EQU $02 -- cgit v1.2.3 From 81bbab85ac7d7f4c2efe794a4b3cc1e51c0b2689 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 14 Jun 2014 14:24:35 -0700 Subject: Hall of Fame sram labels and related constants. --- constants/misc_constants.asm | 6 ++++++ constants/pokedex_constants.asm | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'constants') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 9621b843..29f15035 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -10,5 +10,11 @@ D_DOWN EQU %10000000 MAX_LEVEL EQU 100 NUM_MOVES EQU 4 +PARTY_LENGTH EQU 6 + MONS_PER_BOX EQU 20 NUM_BOXES EQU 12 + +HOF_MON EQU $10 +HOF_TEAM EQU PARTY_LENGTH * HOF_MON +NUM_HOF_TEAMS EQU 50 diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index c9ba6ae8..c8fa56e3 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -148,4 +148,6 @@ DEX_DRATINI EQU 147 DEX_DRAGONAIR EQU 148 DEX_DRAGONITE EQU 149 DEX_MEWTWO EQU 150 -DEX_MEW EQU 151 \ No newline at end of file +DEX_MEW EQU 151 + +NUM_POKEMON EQU 151 -- cgit v1.2.3