Jump to content

xfr

Member
  • Content Count

    190
  • Joined

  • Last visited

Everything posted by xfr

  1. They're still in your shiny dragons box
  2. I made some updates to the VS. Player. I also looked at simulator implementations of some basic mechanisms (accuracy, speed resolution) and found that they are very far from being accurate (even the vsplayer code has wrong approximations and thus should not be used as reference at the moment). It appears that the research article on Smogon must be extended to cover such mechanisms extensively, similarly to what was already done for damage calculation. Without this effort I see little hope to have simulators sufficiently faithful to generate valid battle videos from logs (a process that is otherwise very straightforward and has been tested successfully for close to a year).
  3. Ok. Spot on. Ok. Ok. Ok. Ok. Ok. Ok. Ok. Ok. Ok. Ok. Ok (accuracy check bypassed in this situation). Ok. Ok (sun).
  4. I checked this video and it played exactly as predicted by the vsplayer with harvest triggering twice
  5. Actually a magic bounce problem. Looks like the fix doesn't solve everything and might add new problems Added Mental Herb
  6. You are, this is hacked. This is a feature, not a bug. Now that is something.
  7. Fixed by implementing Encore Fixed (incorrect target selection) Fixed (do not redirect to user if target is fainted ally)
  8. If that's the case, how did you import this Tyranitar by pkm file? Like it or not, this Pokémon is illegal.
  9. Fixed (G4 static PID events can have mismatched abilities) Fixed ok I tried to fix the issue by adding the base Hangul letters to the character table: U+314F HANGUL LETTER A (U+314F) ㅏ U+3150 HANGUL LETTER AE (U+3150) ㅐ U+3151 HANGUL LETTER YA (U+3151) ㅑ U+3153 HANGUL LETTER EO (U+3153) ㅓ U+3154 HANGUL LETTER E (U+3154) ㅔ U+3155 HANGUL LETTER YEO (U+3155) ㅕ U+3157 HANGUL LETTER O (U+3157) ㅗ U+315B HANGUL LETTER YO (U+315B) ㅛ U+315C HANGUL LETTER U (U+315C) ㅜ U+3160 HANGUL LETTER YU (U+3160) ㅠ U+3161 HANGUL LETTER EU (U+3161) ㅡ U+3163 HANGUL LETTER I (U+3163) ㅣ U+3131 HANGUL LETTER KIYEOK (U+3131) ㄱ U+3134 HANGUL LETTER NIEUN (U+3134) ㄴ U+3137 HANGUL LETTER TIKEUT (U+3137) ㄷ U+3139 HANGUL LETTER RIEUL (U+3139) ㄹ U+3145 HANGUL LETTER SIOS (U+3145) ㅅ U+3147 HANGUL LETTER IEUNG (U+3147) ㅇ U+3148 HANGUL LETTER CIEUC (U+3148) ㅈ U+3142 HANGUL LETTER PIEUP (U+3142) ㅂ U+3141 HANGUL LETTER MIEUM (U+3141) ㅁ U+314E HANGUL LETTER HIEUH (U+314E) ㅎ U+314C HANGUL LETTER THIEUTH (U+314C) ㅌ U+314B HANGUL LETTER KHIEUKH (U+314B) ㅋ U+314D HANGUL LETTER PHIEUPH (U+314D) ㅍ U+314A HANGUL LETTER CHIEUCH (U+314A) ㅊ There might be other problems with the Korean character map considering I have no idea how to use the letter based input system.
  10. Fixed due to the following mechanism: using protect on a Pokémon that does not get targeted by any move during the turn will not increase the protect counter for that Pokémon. As far as I know no one documented this behavior before nad it's not clear whether it is intended or not.
  11. Fixed by implementing King's Rock and freeze mechanics
  12. Fixed by implementing sleep talk (rand(3) to pick one of the other moves) Sand Veil actually lowers the accuracy threshold (user accuracy/target evasion) by 20%. Hence it should be considered as a 25% boost to evasion, not 20% as stated in game.
  13. Fixed by implementing Roost landing. Do not try to guess what is wrong based on the log, this is futile because of error propagation.
  14. Fixed by implementing Effect Spore. Relevant ASM: EffectSpore: seg006:021D9DD0 PUSH {R3-R6,LR} seg006:021D9DD2 SUB SP, SP, #0xC seg006:021D9DD4 MOVS R0, #4 seg006:021D9DD6 MOVS R5, R1 seg006:021D9DD8 MOVS R6, R2 seg006:021D9DDA BL ReadVolatileVariable seg006:021D9DDE CMP R6, R0 seg006:021D9DE0 BNE loc_21D9E18 seg006:021D9DE2 MOVS R0, #0x46 @ 'F' seg006:021D9DE4 BL ReadVolatileVariable seg006:021D9DE8 CMP R0, #0 seg006:021D9DEA BNE loc_21D9E18 seg006:021D9DEC MOVS R0, #0x1E seg006:021D9DEE BL BRand seg006:021D9DF2 CMP R0, #0x14 seg006:021D9DF4 BLS loc_21D9DFA seg006:021D9DF6 MOVS R4, #5 ; Poison seg006:021D9DF8 B loc_21D9E02 seg006:021D9DFA @ --------------------------------------------------------------------------- seg006:021D9DFA seg006:021D9DFA loc_21D9DFA: @ CODE XREF: EffectSpore+24j seg006:021D9DFA MOVS R4, #1 ; Para seg006:021D9DFC CMP R0, #0xA seg006:021D9DFE BHI loc_21D9E02 seg006:021D9E00 MOVS R4, #2 ; Sleep seg006:021D9E02 seg006:021D9E02 loc_21D9E02: @ CODE XREF: EffectSpore+28j seg006:021D9E02 @ EffectSpore+2Ej seg006:021D9E02 MOVS R0, R4 seg006:021D9E04 BL sub_21D7D38 ; If sleep precompute duration (rand(3)+2) seg006:021D9E08 MOVS R3, R0 seg006:021D9E0A MOVS R0, #0x1E seg006:021D9E0C STR R0, [sP] seg006:021D9E0E MOVS R0, R5 seg006:021D9E10 MOVS R1, R6 seg006:021D9E12 MOVS R2, R4 seg006:021D9E14 BL effectSporeRand seg006:021D9E18 seg006:021D9E18 loc_21D9E18: @ CODE XREF: EffectSpore+10j seg006:021D9E18 @ EffectSpore+1Aj seg006:021D9E18 ADD SP, SP, #0xC seg006:021D9E1A POP {R3-R6,PC} seg006:021D9E1A @ End of function EffectSpore seg006:021D9E1A seg006:021D9E1C seg006:021D9E1C @ =============== S U B R O U T I N E ======================================= seg006:021D9E1C seg006:021D9E1C seg006:021D9E1C sub_21D9E1C: seg006:021D9E1C MOVS R1, #1 seg006:021D9E1E STR R1, [R0] seg006:021D9E20 LDR R0, =0x21F0850 seg006:021D9E22 BX LR seg006:021D9E22 @ End of function sub_21D9E1C seg006:021D9E22 seg006:021D9E22 @ --------------------------------------------------------------------------- seg006:021D9E24 dword_21D9E24:.long 0x21F0850 @ DATA XREF: sub_21D9E1C+4r seg006:021D9E28 seg006:021D9E28 @ =============== S U B R O U T I N E ======================================= seg006:021D9E28 seg006:021D9E28 seg006:021D9E28 effectSporeRand: @ CODE XREF: sub_21D9CAC+1Ap seg006:021D9E28 @ sub_21D9CDC+1Ap ... seg006:021D9E28 seg006:021D9E28 varg_r0= -0x10 seg006:021D9E28 varg_r1= -0xC seg006:021D9E28 varg_r2= -8 seg006:021D9E28 varg_r3= -4 seg006:021D9E28 seg006:021D9E28 PUSH {R0-R3} seg006:021D9E2A PUSH {R3-R7,LR} seg006:021D9E2C MOVS R4, R0 seg006:021D9E2E MOVS R0, #4 seg006:021D9E30 MOVS R5, R1 seg006:021D9E32 MOVS R6, R2 seg006:021D9E34 MOVS R7, #4 seg006:021D9E36 BL ReadVolatileVariable seg006:021D9E3A CMP R5, R0 seg006:021D9E3C BNE loc_21D9E98 seg006:021D9E3E MOVS R0, #0x46 @ 'F' seg006:021D9E40 BL ReadVolatileVariable seg006:021D9E44 CMP R0, #0 seg006:021D9E46 BNE loc_21D9E98 seg006:021D9E48 MOVS R0, #0x12 seg006:021D9E4A BL ReadVolatileVariable seg006:021D9E4E LSLS R0, R0, #0x10 seg006:021D9E50 LSRS R0, R0, #0x10 seg006:021D9E52 MOVS R1, #0 seg006:021D9E54 BL GetMoveFlag ; contact flag seg006:021D9E58 CMP R0, #0 seg006:021D9E5A BEQ loc_21D9E98 seg006:021D9E5C ADD R1, SP, #0x28 seg006:021D9E5E LDRB R1, [R1] seg006:021D9E60 MOVS R0, R4 seg006:021D9E62 BL RandomEffect ; rand(100)<30 seg006:021D9E66 CMP R0, #0 seg006:021D9E68 BEQ loc_21D9E98 seg006:021D9E6A MOVS R0, R4 seg006:021D9E6C MOVS R1, #0xC seg006:021D9E6E MOVS R2, R5 seg006:021D9E70 BL sub_21C88C4 seg006:021D9E74 MOVS R5, R0 seg006:021D9E76 LDR R1, [R5] seg006:021D9E78 LSLS R0, R7, #0x15 seg006:021D9E7A ORRS R0, R1 seg006:021D9E7C STR R0, [R5] seg006:021D9E7E LDR R0, [sP,#0x24] seg006:021D9E80 STR R6, [R5,#4] seg006:021D9E82 STR R0, [R5,#8] seg006:021D9E84 MOVS R0, #0 seg006:021D9E86 STRB R0, [R5,#0xC] seg006:021D9E88 MOVS R0, #3 seg006:021D9E8A BL ReadVolatileVariable seg006:021D9E8E STRB R0, [R5,#0xF] seg006:021D9E90 MOVS R0, R4 seg006:021D9E92 MOVS R1, R5 seg006:021D9E94 BL sub_21C88E8 seg006:021D9E98 seg006:021D9E98 loc_21D9E98: @ CODE XREF: effectSporeRand+14j seg006:021D9E98 @ effectSporeRand+1Ej ... seg006:021D9E98 POP {R3-R7} seg006:021D9E9A POP {R3} seg006:021D9E9C ADD SP, SP, #0x10 seg006:021D9E9E BX R3 seg006:021D9E9E @ End of function effectSporeRand Note that effect spore has a slight biais towards sleep and against poison.
  15. Pokécheck VS. Player: http://vsplayer.pokecheck.org As some may know, the state of knowledge of the Battle Video system makes it possible to have a web based parser for battle videos. Battle videos only contain bpkm data and the players' choice of moves. The parser needs to integrally and faithfully emulate the Pokémon battle system to produce logs, with special attention required to stick the current BRNG value. Any frame off makes all subsequent result invalid. Because in its current state, the VS. Player only implements a fragment of the full battle system, this thread exists to report the most important missing features and bugs. Because each bug requires debugging of the affected videos, reports should follow the following rules: You are only allowed to report one bug or feature request at a time. Until it is actually fixed or implemented, any subsequent request you make will be ignored. You should report major issues on frequently used features before anything else. Reports are handled on a priority basis. You MUST include the battle video ID where the problem occurs, and the first turn for which the VS. Player is giving wrong results. Note that you must be a registered Pokécheck user to access the VS. Player. This is because this program has to make requests to the Nintendo servers. This is highly dangerous since it exposes the Pokécheck website to blacklisting by Nintendo. As such, strict global and per-user limits are set to limit the number of queries. Each requested video is cached on the server and only requested once. Q&A: Q: Is it possible to emulate the battle video server like the GTS? A: Yes. The protocol is encrypted but it doesn't check the signature of the server certificate, except for the Pokémon validation service (pkvldt) which is required to get a signature on any video uploaded to the official battle server Q: Is it possible to create battle videos from scratch? A: Yes, it has been possible for some months, see for instance Q: Is it possible to convert a battle log from a simulator like PO/PS to a battle video that I could send on Youtube or on the Nintendo video server? A: Yes, but it requires the simulator to faithfully emulate the battle system. Only the VS. Player can do that at the moment, even though some steps have been taken to make it possible (see for instance www.smogon.com/bw/articles/bw_complete_damage_formula)
×
×
  • Create New...