The PokéCommunity Forums
Mateo's Profile

Mateo Mateo is online now

Johto Region Champion

Visitor Messages

Showing Visitor Messages 91 to 105 of 982
  1. Fotomac
    November 6th, 2016 9:49 PM
    Fotomac
    Yes, I'm adding new animations as I can think of appropriate ones.
  2. Fotomac
    November 6th, 2016 9:30 PM
    Fotomac
    Indeed. But for now, my main focus should be on freeing up space in bank 1E. Which file(s) would be safe to move to a different bank?
  3. Fotomac
    November 6th, 2016 9:14 PM
    Fotomac
    Unfortunately, I added too many moves for Cygwin to willingly compile the files (bank 1E, with the animations files, being the problem bank this time), forcing me to call off the Week 6 release.
  4. Fotomac
    November 5th, 2016 8:58 PM
    Fotomac
    Wow, no wonder I missed it! Anyway, I just copied and pasted it and edited it as necessary.
  5. Fotomac
    November 5th, 2016 8:33 PM
    Fotomac
    Anyway, while you try to work on that... can you reteach me how to give Move Tutors individual opening lines of dialogue before asking if you want to teach your Pokémon the move said Move Tutor is offering, assuming you already did so and I somehow forgot?
  6. Fotomac
    November 5th, 2016 7:21 PM
    Fotomac
    Here's the section of "engine/battle/core.asm" I think is responsible.

    Quote:
    StatModifierUpEffect:
    ld hl, wPlayerMonStatMods
    ld de, wPlayerMoveEffect
    ld bc, wPlayerBattleStatus1
    ld a, [H_WHOSETURN]
    and a
    jr z, .statModifierUpEffect
    ld hl, wEnemyMonStatMods
    ld de, wEnemyMoveEffect
    .statModifierUpEffect
    ld a, [de]
    cp ATTACK_UP_SIDE_EFFECT
    jr c, .nonSideEffect1
    call BattleRandom
    cp $1a ; 26/256 chance for side effects
    jp nc, CantRaiseAnymore
    ld a, [de]
    sub ATTACK_UP_SIDE_EFFECT ; map each stat to 0-3
    jp .incrementStatMod
    .nonSideEffect1 ; non-side effects only
    ld a, [de]
    sub ATTACK_UP1_EFFECT
    cp EVASION_UP1_EFFECT + $3 - ATTACK_UP1_EFFECT ; covers all +1 effects
    jr c, .incrementStatMod
    sub ATTACK_UP2_EFFECT - ATTACK_UP1_EFFECT ; map +2 effects to equivalent +1 effect
    .incrementStatMod
    ld c, a
    ld b, $0
    add hl, bc
    ld b, [hl]
    inc b ; increment corresponding stat mod
    jp z, CantRaiseAnymore
    ld a, [de]
    cp ATTACK_UP1_EFFECT + $8 ; is it a +2 effect?
    jr c, .ok
    inc b ; if so, increment stat mod again
    ld a, $d
    cp b ; unless it's already +6
    jr nc, .ok
    ld b, a
    .ok
    ld [hl], b
    ld a, c
    cp $4
    jr nc, UpdateStatDone ; jump if mod affected is evasion/accuracy
    push hl
    ld hl, wBattleMonAttack + 1
    ld de, wPlayerMonUnmodifiedAttack
    ld a, [H_WHOSETURN]
    and a
    jr z, .pointToStats
    ld hl, wEnemyMonAttack + 1
    ld de, wEnemyMonUnmodifiedAttack
    .pointToStats
    push bc
    sla c
    ld b, $0
    add hl, bc ; hl = modified stat
    ld a, c
    add e
    ld e, a
    jr nc, .checkIf999
    inc d ; de = unmodified (original) stat
    .checkIf999
    pop bc
    ld a, [hld]
    sub 999 % $100 ; check if stat is already 999
    jr nz, .recalculateStat
    ld a, [hl]
    sbc 999 / $100
    jp z, RestoreOriginalStatModifier
    .recalculateStat ; recalculate affected stat
    ; paralysis and burn penalties, as well as badge boosts are ignored
    push hl
    push bc
    ld hl, StatModifierRatios
    dec b
    sla b
    ld c, b
    ld b, $0
    add hl, bc
    pop bc
    xor a
    ld [H_MULTIPLICAND], a
    ld a, [de]
    ld [H_MULTIPLICAND + 1], a
    inc de
    ld a, [de]
    ld [H_MULTIPLICAND + 2], a
    ld a, [hli]
    ld [H_MULTIPLIER], a
    call Multiply
    ld a, [hl]
    ld [H_DIVISOR], a
    ld b, $4
    call Divide
    pop hl
    ; cap at 999
    ld a, [H_PRODUCT + 3]
    sub 999 % $100
    ld a, [H_PRODUCT + 2]
    sbc 999 / $100
    jp c, UpdateStat
    ld a, 999 / $100
    ld [H_MULTIPLICAND + 1], a
    ld a, 999 % $100
    ld [H_MULTIPLICAND + 2], a

    UpdateStat:
    ld a, [H_PRODUCT + 2]
    ld [hli], a
    ld a, [H_PRODUCT + 3]
    ld [hl], a
    pop hl
    UpdateStatDone:
    ld b, c
    inc b
    call PrintStatText
    ld hl, wPlayerBattleStatus2
    ld de, wPlayerMoveNum
    ld bc, wPlayerMonMinimized
    ld a, [H_WHOSETURN]
    and a
    jr z, .asm_3f4e6
    ld hl, wEnemyBattleStatus2
    ld de, wEnemyMoveNum
    ld bc, wEnemyMonMinimized
    .asm_3f4e6
    ld a, [de]
    cp MINIMIZE
    jr nz, .asm_3f4f9
    ; if a substitute is up, slide off the substitute and show the mon pic before
    ; playing the minimize animation
    bit HasSubstituteUp, [hl]
    push af
    push bc
    ld hl, HideSubstituteShowMonAnim
    ld b, BANK(HideSubstituteShowMonAnim)
    push de
    call nz, Bankswitch
    pop de
    .asm_3f4f9
    call PlayCurrentMoveAnimation
    ld a, [de]
    cp MINIMIZE
    jr nz, .applyBadgeBoostsAndStatusPenalties
    pop bc
    ld a, $1
    ld [bc], a
    ld hl, ReshowSubstituteAnim
    ld b, BANK(ReshowSubstituteAnim)
    pop af
    call nz, Bankswitch
    .applyBadgeBoostsAndStatusPenalties
    ld a, [H_WHOSETURN]
    and a
    call z, ApplyBadgeStatBoosts ; whenever the player uses a stat-up move, badge boosts get reapplied again to every stat,
    ; even to those not affected by the stat-up move (will be boosted further)
    ld hl, MonsStatsRoseText
    call PrintText

    ; these shouldn't be here
    call QuarterSpeedDueToParalysis ; apply speed penalty to the player whose turn is not, if it's paralyzed
    jp HalveAttackDueToBurn ; apply attack penalty to the player whose turn is not, if it's burned

    RestoreOriginalStatModifier:
    pop hl
    dec [hl]

    MonsStatsRoseText:
    TX_FAR _MonsStatsRoseText
    TX_ASM
    ld hl, GreatlyRoseText
    ld a, [H_WHOSETURN]
    and a
    ld a, [wPlayerMoveEffect]
    jr z, .playerTurn
    ld a, [wEnemyMoveEffect]
    .playerTurn
    cp ATTACK_DOWN1_EFFECT
    ret nc
    ld hl, RoseText
    ret

    GreatlyRoseText:
    TX_DELAY
    TX_FAR _GreatlyRoseText
    ; fallthrough
    RoseText:
    TX_FAR _RoseText
    db "@"

    StatModifierDownEffect:
    ld hl, wEnemyMonStatMods
    ld de, wPlayerMoveEffect
    ld bc, wEnemyBattleStatus1
    ld a, [H_WHOSETURN]
    and a
    jr z, .statModifierDownEffect
    ld hl, wPlayerMonStatMods
    ld de, wEnemyMoveEffect
    ld bc, wPlayerBattleStatus1
    ld a, [wLinkState]
    cp LINK_STATE_BATTLING
    jr z, .statModifierDownEffect
    call BattleRandom
    cp $40 ; 1/4 chance to miss by in regular battle
    jp c, MoveMissed
    .statModifierDownEffect
    call CheckTargetSubstitute ; can't hit through substitute
    jp nz, MoveMissed
    ld a, [de]
    cp ATTACK_DOWN_SIDE_EFFECT
    jr c, .nonSideEffect
    call BattleRandom
    cp $55 ; 85/256 chance for side effects
    jp nc, CantLowerAnymore
    ld a, [de]
    sub ATTACK_DOWN_SIDE_EFFECT ; map each stat to 0-3
    jr .decrementStatMod
    .nonSideEffect ; non-side effects only
    push hl
    push de
    push bc
    call MoveHitTest ; apply accuracy tests
    pop bc
    pop de
    pop hl
    ld a, [wMoveMissed]
    and a
    jp nz, MoveMissed
    ld a, [bc]
    bit Invulnerable, a ; fly/dig
    jp nz, MoveMissed
    ld a, [de]
    sub ATTACK_DOWN1_EFFECT
    cp EVASION_DOWN1_EFFECT + $3 - ATTACK_DOWN1_EFFECT ; covers al -1 effects
    jr c, .decrementStatMod
    sub ATTACK_DOWN2_EFFECT - ATTACK_DOWN1_EFFECT ; map -2 effects to corresponding -1 effect
    .decrementStatMod
    ld c, a
    ld b, $0
    add hl, bc
    ld b, [hl]
    dec b ; dec corresponding stat mod
    jp z, CantLowerAnymore ; if stat mod is 1 (-6), can't lower anymore
    ld a, [de]
    cp ATTACK_DOWN2_EFFECT - $16 ; $24
    jr c, .ok
    cp EVASION_DOWN2_EFFECT + $5 ; $44
    jr nc, .ok
    dec b ; stat down 2 effects only (dec mod again)
    jr nz, .ok
    inc b ; increment mod to 1 (-6) if it would become 0 (-7)
    .ok
    ld [hl], b ; save modified mod
    ld a, c
    cp $4
    jr nc, UpdateLoweredStatDone ; jump for evasion/accuracy
    push hl
    push de
    ld hl, wEnemyMonAttack + 1
    ld de, wEnemyMonUnmodifiedAttack
    ld a, [H_WHOSETURN]
    and a
    jr z, .pointToStat
    ld hl, wBattleMonAttack + 1
    ld de, wPlayerMonUnmodifiedAttack
    .pointToStat
    push bc
    sla c
    ld b, $0
    add hl, bc ; hl = modified stat
    ld a, c
    add e
    ld e, a
    jr nc, .noCarry
    inc d ; de = unmodified stat
    .noCarry
    pop bc
    ld a, [hld]
    sub $1 ; can't lower stat below 1 (-6)
    jr nz, .recalculateStat
    ld a, [hl]
    and a
    jp z, CantLowerAnymore_Pop
    .recalculateStat
    ; recalculate affected stat
    ; paralysis and burn penalties, as well as badge boosts are ignored
    push hl
    push bc
    ld hl, StatModifierRatios
    dec b
    sla b
    ld c, b
    ld b, $0
    add hl, bc
    pop bc
    xor a
    ld [H_MULTIPLICAND], a
    ld a, [de]
    ld [H_MULTIPLICAND + 1], a
    inc de
    ld a, [de]
    ld [H_MULTIPLICAND + 2], a
    ld a, [hli]
    ld [H_MULTIPLIER], a
    call Multiply
    ld a, [hl]
    ld [H_DIVISOR], a
    ld b, $4
    call Divide
    pop hl
    ld a, [H_PRODUCT + 3]
    ld b, a
    ld a, [H_PRODUCT + 2]
    or b
    jp nz, UpdateLoweredStat
    ld [H_MULTIPLICAND + 1], a
    ld a, $1
    ld [H_MULTIPLICAND + 2], a

    UpdateLoweredStat:
    ld a, [H_PRODUCT + 2]
    ld [hli], a
    ld a, [H_PRODUCT + 3]
    ld [hl], a
    pop de
    pop hl
    UpdateLoweredStatDone:
    ld b, c
    inc b
    push de
    call PrintStatText
    pop de
    ld a, [de]
    cp $44
    jr nc, .ApplyBadgeBoostsAndStatusPenalties
    call PlayCurrentMoveAnimation2
    .ApplyBadgeBoostsAndStatusPenalties
    ld a, [H_WHOSETURN]
    and a
    call nz, ApplyBadgeStatBoosts ; whenever the player uses a stat-down move, badge boosts get reapplied again to every stat,
    ; even to those not affected by the stat-up move (will be boosted further)
    ld hl, MonsStatsFellText
    call PrintText

    ; These where probably added given that a stat-down move affecting speed or attack will override
    ; the stat penalties from paralysis and burn respectively.
    ; But they are always called regardless of the stat affected by the stat-down move.
    call QuarterSpeedDueToParalysis
    jp HalveAttackDueToBurn

    CantLowerAnymore_Pop:
    pop de
    pop hl
    inc [hl]

    CantLowerAnymore:
    ld a, [de]
    cp ATTACK_DOWN_SIDE_EFFECT
    ret nc
    ld b, c
    inc b
    call PrintStatText
    ld hl, WontFallAnymoreText
    jp PrintText

    CantRaiseAnymore:
    ld a, [de]
    cp ATTACK_UP_SIDE_EFFECT
    ret nc
    ld b, c
    inc b
    call PrintStatText
    ld hl, WontRiseAnymoreText
    jp PrintText

    MoveMissed:
    ld a, [de]
    cp $44
    ret nc
    jp ConditionalPrintButItFailed

    MonsStatsFellText:
    TX_FAR _MonsStatsFellText
    TX_ASM
    ld hl, FellText
    ld a, [H_WHOSETURN]
    and a
    ld a, [wPlayerMoveEffect]
    jr z, .playerTurn
    ld a, [wEnemyMoveEffect]
    .playerTurn
    ; check if the move's effect decreases a stat by 2
    cp BIDE_EFFECT
    ret c
    cp ATTACK_DOWN_SIDE_EFFECT
    ret nc
    ld hl, GreatlyFellText
    ret

    GreatlyFellText:
    TX_DELAY
    TX_FAR _GreatlyFellText
    ; fallthrough
    FellText:
    TX_FAR _FellText
    db "@"

    PrintStatText:
    ld hl, StatsTextStrings
    ld c, "@"
    .findStatName_outer
    dec b
    jr z, .foundStatName
    .findStatName_inner
    ld a, [hli]
    cp c
    jr z, .findStatName_outer
    jr .findStatName_inner
    .foundStatName
    ld de, wcf4b
    ld bc, $a
    jp CopyData

    StatsTextStrings:
    db "ATTACK@"
    db "DEFENSE@"
    db "SPEED@"
    db "SPECIAL@"
    db "ACCURACY@"
    db "EVADE@"

    StatModifierRatios:
    ; first byte is numerator, second byte is denominator
    db 25, 100 ; 0.25
    db 28, 100 ; 0.28
    db 33, 100 ; 0.33
    db 40, 100 ; 0.40
    db 50, 100 ; 0.50
    db 66, 100 ; 0.66
    db 1, 1 ; 1.00
    db 15, 10 ; 1.50
    db 2, 1 ; 2.00
    db 25, 10 ; 2.50
    db 3, 1 ; 3.00
    db 35, 10 ; 3.50
    db 4, 1 ; 4.00
    This is as it appears in the current compile I got for my hack. Looking at that section, can you see anything amiss?
  7. BettyNewbie
    November 5th, 2016 7:13 PM
    BettyNewbie
    Quote:
    At the time, Gen 1 was really the only base there was, since Gen 3 wasn't out yet and Gen 2 wasn't really explored yet :p The original version of Brown is probably one of the oldest Pokémon hacks out there, certainly one of (if not the) oldest hack to actually make a proper new region. But even though it's been updated a lot over the years, it could definitely benefit from the ++ treatment. Since it was actually the reason I found out about and got into hacking in the first place, I'm honored that Koolboyman agreed to let me make Brown++ eventually.

    As for Pokemon Orange, I remember that hack. It was... strange, to say the least. And yeah, battle sprites took a lot longer for us to figure out how to edit, since they were compressed while OW sprites were not. In fact, if I remember, Gen 2 and Gen 3 had their compression figured out years before Gen 1's compression format was figured out. So it wasn't just laziness that the battle sprites weren't changed in most of the old Gen 1 hacks -- we literally hadn't figured out how to change them yet. Even still, the hack was weird and lazy in a lot of other ways though. This one won't be getting the ++ treatment. Any Orange Islands hack I make on Red++ will completely ignore that hack entirely, haha.
    Yeah, I figured that's probably why Brown reused so many trainer sprites from vanilla RBY, despite all of the other things it changed. Hopefully, Koolboyman will agree to make new ones for Brown++.

    From what I remember, that Orange hack was REALLY glitchy and had a lot of terrible game design. For example, you started with Lapras (a late game Pokémon, BTW), yet there were wild Lapras right on the first route. And, Lapras has a low catch rate, along with the starters and Dratini (the first route's other catches), so good luck lobbing basic Poké Balls at them.

    Quote:
    Very true, Hoenn and later aren't really nostalgic for me either -- in my mind, they're still new. By the time Gen 3 came out, I didn't even buy the physical copies. I just downloaded roms so I could play them on the computer, because I was already too spoiled by being able to play on the larger screen with a speedup button anyway and going back to the actual handheld was annoying (and its practically painful now, it certainly would be if we hadn't made the switch to backlit screens).

    But yeah, I have Nostalgia on speed dial basically at this point, between Pokemon and old music and Netflix to watch Friends and whatnot. Haha.
    Yeah, it's tough to go back to handhelds after playing on emulators, that's for sure.

    Even if I can understand why it's so, I still don't like how Gen 2 nostalgia gets ignored and overshadowed by Gen 1. Lots of older fans prefer GSC to RBY and would love to see Johto referenced and acknowledged alongside Kanto. Even when HGSS came out, Gen 2 didn't seem to get a whole lot of nostalgic promotion. In fact, the remakes were quickly overshadowed by BW and Gen 5.

    Quote:
    I know a guy who swears that Digimon has always been the superior franchise, and the Pokemon has been a ripoff from the start. I'd really like to know what he's smoking to think that. But nowadays, yeah, it's blatantly ripping off the competition in an effort to try and remain relevant, since it doesn't realize the problem is that its trying to go into weird directions instead of sticking to what made it popular in the first place.
    Digimon has always been total crap, IMO. A cheap Pokémon knockoff for people who don't think Pokémon is "cool" or "badass" enough.

    Quote:
    And yeah, Dragon has always been an under-appreciated and under-represented type, especially when it came to the early gens. Gen 1 was the worst offender, what with having only 1 Dragon family and 1 Dragon move -- then programming in effectiveness data for it while rendering that pointless by making the only Dragon move do fixed damage anyway.
    I've read that Dragon may have been a late addition to Gen 1, possibly made specifically for the Dratini line (who otherwise seemed like Water types, based on their coloring, location, and movepool). Maybe, Dratini and Dragonair were originally going to be a two-stage Water type line, and Dragonite and the Dragon typing were added later on to make them stand out from the many other two-stage Water families in the game. At the very least, it helps to explain why Dragonite doesn't look much like its pre-evolutions.
  8. Fotomac
    November 5th, 2016 5:21 PM
    Fotomac
    Found another bug involving stats: this time, you can use Harden as often as you like and it won't fail once. From what I know, it's supposed to be used only up to six times in battle when Defense is at its initial stage. How is infinite use of stat-raising moves even possible?

    Come to think, I did try to make the stat-raising code a near-copy of the stat-lowering code to accomodate moves such as Metal Claw earlier. Could that have had something to do with it?
  9. Fotomac
    November 5th, 2016 12:44 PM
    Fotomac
    Oh, I'm thinking of finally getting off my butt and adding the Physical/Special Split for a future alpha, as early as Week 7. What files did you edit to make the Split?
  10. Fotomac
    November 5th, 2016 9:51 AM
    Fotomac
    Can you compare your hack to mine in regards to this stat quirk? (I suggest choosing Bulbasaur and battling a Pidgey, since that appears to be the quickest way and I'm currently doing all testing using Pokémon Green, with which I always choose Bulbasaur.)
  11. Fotomac
    November 5th, 2016 9:41 AM
    Fotomac
    I think I found it. Looking through the history on your "engine/battle/core.asm", I discovered I may have missed a few lines of code each. I've just now compiled with the new changes and will play to make sure it fixed it.

    Oh, another thing I noticed with the Attack stat. With some Pokémon (e.g. Pidgey and Weedle), the Attack stat will only go down five. With others, the Attack stat will go down the proper number of times (six). Any idea why?
  12. Fotomac
    November 5th, 2016 9:21 AM
    Fotomac
    OK, I'm experiencing a newly-discovered bug right now in regards to excessive stat lowering. When I use Growl once too many, the dialogue says the enemy's "GROWL won't fall anymore!" when in fact it should say the enemy's "ATTACK won't fall anymore!" Do you have any idea why? Is it related somehow to the wRAM? Or am I doing something else wrong?
  13. Fotomac
    November 2nd, 2016 8:55 PM
    Fotomac
    Oh, happy Cubs Day!
  14. Fotomac
    November 1st, 2016 9:32 PM
    Fotomac
    I'll add Miltank to the Kanto Pokédex, then. Course, I know exactly where I'll be placing the newer forms of the Kanto Pokémon (e.g. Pichu will take Pikachu's place as #25, and so on), but what about the rest of them, in relation to the original Kanto families?
  15. Fotomac
    November 1st, 2016 7:33 PM
    Fotomac
    Anyway, for the TCNS I'm thinking of expanding the Pokédex to a distinct form known as the Kanto Pokédex somewhere down the line. I know the evolved and pre-evolved forms of all Kanto Pokémon will feature, as will the Togepi line, the Pikablu line, the Houndour line, the Slugma line, and other lines exclusive to Kanto in Gen II/Gen IV. My reasoning behind this, obviously, is a sort of "take that" to the crap mechanics forced upon hapless FR/LG players which force them to obtain the National Dex, after beating the Elite Four, before they could get anything beyond the original 151. Any others that would be good additions? (Personally, I think I should include at least one Pokémon or Pokémon family that can learn Bide by levelling up, what with the TM overhaul I earlier mentioned.) For obvious reasons, I need to know so I can request the requisite backsprite and/or Blue-style art from whoever is able to do them (last I checked, the Blue-style Marill/Pikablu sprite is currently being worked on).

About Me

  • About Mateo
    Biography
    Hey guys, I'm Mateo. I was the co-founder of the Skeetendo Inc. Hacking Group (before it was a community, when it was just me and Pyro). I'm still a huge fan of Gen II, and so I still enjoy playing and hacking those games. I'm currently working on a "Johto Legacy" series that continues the story of G/S/C that consists of the "Pokémon Christmas" hack, and an upcoming prequel called "Pokémon Spirits and Legends" (that currently has no thread here).
    Interests
    Rom Hacking, Internetting, Cooking, The Sims 2, Music, Random things, Etc.
    Location
    Willow Creek, Sims 4
    Occupation
    Romhacker
    Nature
    Quiet
    Also Known As
    Luna
    Favorite Pokémon
    Lugia, Mewtwo, Zigzagoon, Eevee, Espeon, Umbreon, Suicune, Charmander
    Twitter
    RomhackerMateo
    Go Team
    Instinct
  • Signature
    mateo.





    "I'm gonna, uh, demonstrate the hot moves..." - Flannery

Statistics

Total Posts
Activity by Forum
Visitor Messages
Blog
General Information
  • Last Activity: 15 Minutes Ago 9:59 PM
  • Join Date: June 8th, 2005
  • Referrals: 13

Friends

Showing Friends 1 to 20 of 64

Emblems

Emblem Showcase - 1 Total
  Emblem
Tweet Tweet
Thanks for taking part in a twitter game!
Awarded: May 15th, 2016 1:07 PM

All times are GMT -8. The time now is 10:15 PM.