Page 1 of 11 12345 ... LastLast
Results 1 to 15 of 154

Thread: Beta: the Pokécheck VS. Player (battle video parser)

  1. #1

    Exclamation Beta: the Pokécheck VS. Player (battle video parser)

    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:

    1. 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.
    2. You should report major issues on frequently used features before anything else. Reports are handled on a priority basis.
    3. 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 http://youtu.be/Bx1e9LwUIvk

    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 http://www.smogon.com/bw/articles/bw...damage_formula)
    Last edited by Bond697; Jan 18th, 2013 at 05:04 PM.
    Pokécheck - A GTS to let you deposit and receive pokemon, view their stats, import and export to .pkm and more - gen 4 and 5 supported
    Pokémon Black/White animated sprites, now with back sprites, alternate/female forms and all shiny versions thereof.

  2. #2

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    There is an error in this Logfile I just read: http://vsplayer.pokecheck.org/?bid=937056110440 from turn 3/4 on.
    In round 3, Politoed fainted, but Roger did not send out a replacement. Instead the logfile always says that Politoed "was trying" to do a move. In round 6, Roger replaces "Politoed" with Electrivire.
    Judging from the logfile (I didn't watch the original video), I guess he sent out Vaporeon for the fainted Politoed. The log misses that, so every further action gets messed up and "Politoad was trying" to... until Vaporeon gets switched out.

  3. #3

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Quote Originally Posted by Localhorst View Post
    There is an error in this Logfile I just read: http://vsplayer.pokecheck.org/?bid=937056110440 from turn 3/4 on.
    In round 3, Politoed fainted, but Roger did not send out a replacement. Instead the logfile always says that Politoed "was trying" to do a move. In round 6, Roger replaces "Politoed" with Electrivire.
    Judging from the logfile (I didn't watch the original video), I guess he sent out Vaporeon for the fainted Politoed. The log misses that, so every further action gets messed up and "Politoad was trying" to... until Vaporeon gets switched out.
    from the .dbv file, the battle instructions:

    Code:
    92 TURN 1
    02 11 1C 00 00 E1 38 00 00 
    22 E1 2C 00 00 A1 76 00 00 
    
    12 SWITCH ON TURN 1
    01 00 00 00 00 
    21 83 01 00 00
    
    92 TURN 2
    02 31 1C 00 00 E1 39 00 00 
    22 01 DB 00 00 13 01 00 00 
    
    12 SWITCH ON TURN 2
    01 00 00 00 00 
    21 13 01 00 00 
    
    92 TURN 3
    02 31 1C 00 00 11 65 00 00 
    22 01 DB 00 00 01 DE 00 00 
    
    12 SWITCH ON TURN 3
    01 00 00 00 00 
    21 03 04 00 00 
    
    92 TURN 4
    02 11 1C 00 00 E1 38 00 00 
    22 81 24 00 00 00 00 00 00 
    
    92 TURN 5
    02 11 1D 00 00 91 86 00 00 
    22 E1 5F 00 00 00 00 00 00 
    
    92 TURN 6
    02 11 1D 00 00 11 65 00 00 
    22 21 B4 00 00 00 00 00 00 
    
    12 SWITCH ON TURN 6
    01 03 01 00 00 - Player0 switches Politoed out.
    21 03 04 00 00
    As you can see there's no switch on turn 3 for player0, so Politoed must not have been KO'd on turn 3.

    My guess is a misplaced RNG call, probably with the Stone Edge crit not happening.

  4. #4

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    the link Localhorst posted is mine a pokecheck private battle organized via pm between me and genetics im just watching the video now on my ds so il check to see what happened and il keep you posted as it could be an error

    edit: Genetics Landorus's Critical hit Stone Edge attack left my Politoed with 14 hp left then i ko'd it by using a rain boosted STAB hydro pump (politoed was still in battle till it got ko'd in turn 7) the video is still on the the Battle Video section where RM and GTS is to watch if needed

  5. #5

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Posting this on behalf of Coolbiz of Smogon.

    Crits from a multi-hit move on the last turn of this battle aren't being taken into account in the visible log - http://vsplayer.pokecheck.org/?bid=859978881187

    What the video looks like - http://www.youtube.com/watch?v=izC6dAW6f8I

    Edit: There may be other issues with this replay as well. I think. Compare the Vs. Player output with the video.

  6. #6

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Quote Originally Posted by Localhorst View Post
    There is an error in this Logfile I just read: http://vsplayer.pokecheck.org/?bid=937056110440 from turn 3/4 on.
    In round 3, Politoed fainted, but Roger did not send out a replacement. Instead the logfile always says that Politoed "was trying" to do a move. In round 6, Roger replaces "Politoed" with Electrivire.
    Judging from the logfile (I didn't watch the original video), I guess he sent out Vaporeon for the fainted Politoed. The log misses that, so every further action gets messed up and "Politoad was trying" to... until Vaporeon gets switched out.
    Fixed (weather bug)
    Pokécheck - A GTS to let you deposit and receive pokemon, view their stats, import and export to .pkm and more - gen 4 and 5 supported
    Pokémon Black/White animated sprites, now with back sprites, alternate/female forms and all shiny versions thereof.

  7. #7

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Quote Originally Posted by Hozu View Post
    Posting this on behalf of Coolbiz of Smogon.
    Crits from a multi-hit move on the last turn of this battle aren't being taken into account in the visible log - http://vsplayer.pokecheck.org/?bid=859978881187
    What the video looks like - http://www.youtube.com/watch?v=izC6dAW6f8I
    Edit: There may be other issues with this replay as well. I think. Compare the Vs. Player output with the video.
    Fixed by implementing Effect Spore. Relevant ASM:
    Code:
    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.
    Pokécheck - A GTS to let you deposit and receive pokemon, view their stats, import and export to .pkm and more - gen 4 and 5 supported
    Pokémon Black/White animated sprites, now with back sprites, alternate/female forms and all shiny versions thereof.

  8. #8

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Asral from pokecheck has said

    Quoted from Astral as he has no account here:

    Astral and for the winner of the battle, winner next to the trainer who won would be great, i just look at stats, and movesets, and placing the BRNG seed is strange for me Jun 12, 08:40pm
    Sorry if this is not allowed

  9. #9

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Reporting a bug with Leech Seed: http://vsplayer.pokecheck.org/?bid=72-95417-60253

    Trick Room is active. Ferrothorn used Leech Seed on Zapdos, but Zapdos's Heat Wave KOed my Ferrothorn. Even so, Vs. Player still reports my Ferrothorn going from 0 HP to 21 HP (and Zapdos losing that HP).

    Later in the battle, Scrafty is reported as gaining two Moxie Attack boosts from KOing only one Pokémon.

  10. #10

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Here is something that seems to be similar to the bug we had earlier with that Politoed, but I guess it is different. http://vsplayer.pokecheck.org/?bid=259278393390
    From round 8 on, you'll see what I mean. Seems like Zapdos survived the rock slide and gets replaced with Scizor in round 10 (under the condition the moves aren't screwed up), but I can be wrong.

  11. #11

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Quote Originally Posted by Localhorst View Post
    Here is something that seems to be similar to the bug we had earlier with that Politoed, but I guess it is different. http://vsplayer.pokecheck.org/?bid=259278393390
    From round 8 on, you'll see what I mean. Seems like Zapdos survived the rock slide and gets replaced with Scizor in round 10 (under the condition the moves aren't screwed up), but I can be wrong.
    Fixed by implementing Roost landing.
    Do not try to guess what is wrong based on the log, this is futile because of error propagation.
    Pokécheck - A GTS to let you deposit and receive pokemon, view their stats, import and export to .pkm and more - gen 4 and 5 supported
    Pokémon Black/White animated sprites, now with back sprites, alternate/female forms and all shiny versions thereof.

  12. #12

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    http://vsplayer.pokecheck.org/?bid=156121389038
    Not sure quite what happened so here is kinda a play by play of things that didn't happen correctly until it was too desynced to matter I think. Hopes this helps.

    Code:
    Turn 1, burn damage error, Conkledurr consistently at 26 less hp until turn 11 where he dies in both Log and in game.
    
    Turn 7, Helping hand gets blocked by substitute, which didn't happen, Sawsbuck dies in both.
    
    Turn 10 Thunderus Discharge incorrectly misses Volcarona in log
    
    Turn 11 Conkledurr survives the Air slash from Sigilyph in game, and Sig survives the drain punch.  Log mistakenly says he takes life orb damage.  The Rock Slide misses Volcarona in game.
    
    Turn 12 Torment incorrectly triggers is on Volcarona, in the log. Heat Wave does break Thunderus Substitute.  Sigilyph dies this round. Log incorrectly states that Volcarona gets paralyzed this round.  Clams Life Orb damage again this round on Sigilyph, which didn't occur.
    
    Turn 13 Conkledurr does in game to a mach punch inducing a burn.  Morning Sun Does go off this round ingame.  Foe Conkledurr finally dies this round to discharge.  Discharge does not crit Volcarona in game
    
    From turn 14 onward its very desynced and not likely worth mentioning.

  13. #13

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    There's a problem with one of my videos here - http://vsplayer.pokecheck.org/?bid=764624368039

    What actually happened - http://www.youtube.com/watch?v=IAUnI8H2vF0

  14. #14

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    I have a similar problem to GBZero in this battle between Cybertron and BlueCookies:
    http://vsplayer.pokecheck.org/?bid=259278330190

    It states that Togekiss took burn damage on Turn 1 when it didn't, causing it to faint on Turn 3 in the log instead of Turn 5 like in the video. However, the log still states that Togekiss tried to use the moves that it actually took in the battle. This also means that Garchomp wasn't put to sleep by Sleep Talk Psycho Shift in the log, causing further desyncs until it stated that Cybertron won 1-0 with Volcarona (when BC really won 2-0 with Cresselia and Garchomp).

  15. #15

    Re: Beta: the Pokécheck VS. Player (battle video parser)

    Quote Originally Posted by Magicsgame View Post
    I have a similar problem to GBZero in this battle between Cybertron and BlueCookies:
    http://vsplayer.pokecheck.org/?bid=259278330190

    It states that Togekiss took burn damage on Turn 1 when it didn't, causing it to faint on Turn 3 in the log instead of Turn 5 like in the video. However, the log still states that Togekiss tried to use the moves that it actually took in the battle. This also means that Garchomp wasn't put to sleep by Sleep Talk Psycho Shift in the log, causing further desyncs until it stated that Cybertron won 1-0 with Volcarona (when BC really won 2-0 with Cresselia and Garchomp).
    flame orb inflicts a burn after the burn 10% damage check happens, that's why

    that error is also present in GBZero's video -- other errors in his video are flame body trying to burn an already statused Conkeldurr and heat wave trying to status a mon whose substitute faded from the attack

Page 1 of 11 12345 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •