Posts for Mantidactyle

Experienced Forum User
Joined: 4/2/2014
Posts: 32
My apologies for upping an old thread. The timer starts at the first input, correct? If so, waiting at the title screen for demo B to start and end might save a few frames. The B-TYPE will be pre-selected.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Congrats on perfect Tetra Masters rank! Really a shame they didn't take the time to double check the perfect rank text, still a funny glitch though :)
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
I've studied 1929-1945 quite a bit and am still delving into it (especially the second Sino-Japanese war at the moment).
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Fossil Ditto isn't implemented in these games alas. As a side note, Self-Destruct bench damage takes a VERY long time to complete, as you can imagine. From Aroymart: https://zippy.gfycat.com/MessyOddballHeterodontosaurus.gif
deuxhero wrote:
Is the RNG for coin flips even the same for TCG2?
http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Trading_Card_Game_2:ROM_map#PRNG
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
You can execute code from WRAM and ECHO in TCG 2 with Zapdos. I have no idea if this can be exploited since I didn't do more tests / didn't take the time to disassemble to see exactly what happens. https://www.youtube.com/watch?v=9B8Z_YoMkcQ Lv 40 Gengar (Power of Darkness) lets you do something similar to Zapdos if you reset after resolving its Pokémon Power on the last CPU's Pokémon. If you use a card that requires your opponent to do a choice after that, it sometimes lets you control BOTH players' turns (you and the CPU). https://www.pixenli.com/index.php?phppage=voir_galerie&id=1376752251032461000
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
They work fine here.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
This should still be considered glitchless imho, there's no actual glitch involved when using the time reset function.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
The only case I knew this was possible was walking through the customers in Celadon department store. If there's a way to go through the guard, how much time would that save from glitchless ?
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
What did you do exactly ? I might be able to help. Btw, you can change the experience formula to circumvent the Lv 1 issue: http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Stadium:ROM_map#Experience Alternatively, you can change the Growth rate group of each Pokémon in its base stats: http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Stadium:ROM_map#Pok.C3.A9mon_Base_data
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
I think 1) is the best option, once the Stadium GB emu is supported. And set up the save file for a warp to credits obviously rather than unlocking Mewtwo
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
grassini wrote:
ok,man,you said it already,is it even possible to hack pokemon stadium nowadays? i'd hardly figure that to be possible right now (3d models would be the first problem)
I've done some work on Pokémon Stadium 1 (a basic editor / randomizer is available here ), and I'm currently working on how to import modified 3d models back into the game. I'm not gonna lie, this is going to take a while. I haven't worked that much on Stadium 2, on the other hand.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Credits have been removed.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Welp, guessed so. About your question in the GCL thread, I'm pretty sure the issue is the green error message that pops up anytime you disconnect the Transfer Pack / the cartridge anywhere in Pokémon Stadium. The only way I know to circumvent this screen is to disconnect the cartridge / the Transfer Pack while saving the GB game at most frames in the GB emulator, which hangs the saving process, asks you to replug the cartridge so the save can be completed. I'm pretty sure it checks the cartridge header at that moment to prevent you from putting a non-Pokémon game, and the save checksum so you do not swap Pokémon cartridges during a save.
jlun2 wrote:
Does it check far too frequently to exploit, or are there some window to do so? Also can the check be spoofed?
iirc it's at least once per second, probably much more. It does this in every part of the game, even in battles (causing you to lose progress if Transfer Pack disconnection happens in the middle of a Cup).
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Pokémon Stadium should fail, the game checks regularly if the transfer pack + game inserted are connected / have been connected / have been disconnected. I'll try a setup tonight on French Stadium with 7EME ETAGE when I get back home.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
As long as the DVs are possible within the VC RNG, and random things such as Jynx's nickname, I'm pretty sure the Pokémon should pass any checks.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
It's rather easy to make the required setup to max Stat Exp and DVs with 8F, without TAS. https://www.youtube.com/watch?v=CgsSjsJogTw
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Looking forward to it
alt: Froggy25
Post subject: Re: [VBA-RR] Recovering TAS Data from Pokémon Crystal
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Joseph Collins wrote:
I know Super/Game Boy/Color emulation in Visual Boy Advance is a little iffy compared to a lot of other emulators, such as GBG and BizHawk (using Gambatte's cores), so I guess I'm not terribly surprised...
Saying VBA is a little iffy for DMG and GBC is more than an understatement. VBA is utter crap. VBA is so bad that it causes random softlocks / crashes in a few specific games (Dark Duel Stories for example, randomly softlocks after a duel due to a memory timing error, which also randomly causes card ID 0x00 Blue-Eyes White D. to drop from every opponent). It also loads the wrong opponent's data from time to time in a GBA game, Reshef of Destruction (confirmed by several people). (and the emulator you're thinking of is BGB, not GBG :P )
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Keep up the hard work, these commentaries are very much appreciated ! :)
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Don't forget the 0 Mistodon encounter on Iifa's root :P
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Just posting to say this was a very enjoyable TAS. Liked the commentaries, clear explanations.
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Good job!
alec kermit wrote:
it took a while to figure out how all of the RNG works but we have it completely understood now
It might be too late, but have you checked this ? This is a work in progress, but things like the PRNG are documented in it.
alec kermit wrote:
Psychic (192)
Under very few circumstances, Psychic animation is shortened by a few frames. I'm not sure what causes this, though.
alec kermit wrote:
We went with Tauros over Aerodactyl or Persian due to the fact that they both receive recoil damage from their main moves Take Down and Double-Edge, which would waste a little time each use.
In Pokémon Stadium, recoil is skipped when you KO a Pokémon with a recoil move. So no time is lost as long as you get the OHKO. Also, if for any reason you can't OHKO something / cannot use an OHKO move, could Metronome could come in handy to grab Fissure / Guillotine / Horn Drill ?
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Chanoyu wrote:
I see in the Monster List Yans can cast snort, which could be useful: more experience to Garnet after the battle, I think.
If you need extra exp on one character, suicide is faster than having a Yan snorting them. Nevertheless, here's the script; Yan use Snort as a counter 25% of the time. From Hades Workshop (edited the variable values to actual attacks and statuses):
Function Yan_Counter
    if ( #Matching(SV_FunctionEnemy[STATUS_CURRENT_B], MINI) ) {
        set SV_FunctionEnemy[56] =$ 1
        set SV_FunctionEnemy[MODEL_SIZE] =$ 4096
    } else {
        set SV_FunctionEnemy[56] =$ 1
        set SV_FunctionEnemy[MODEL_SIZE] =$ 8192
    }
    if ( ( GetAttackCommandId == SKILL ) && ( GetAttackId == WHAT'S THAT!? ) ) {
        return
    }
    // 25% Snort
    if ( !( GetRandom & 3 ) ) {
        if ( ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT_A], PETRIFY | VENOM | DEATH | STOP) ) <= 1 ) {
            return
        }
        set #( SV_Target = Matching(SV_PlayerTeam[STATUS_CURRENT_B], DOOM) )
        set #( SV_Target |= Matching(SV_PlayerTeam[STATUS_CURRENT_B], GRADUAL PETRIFY) )
        set #( SV_Target |= Matching(SV_PlayerTeam[STATUS_CURRENT_A], POISON) )
        set #( SV_Target |= Matching(SV_PlayerTeam[STATUS_CURRENT_A], VENOM) )
        set #( SV_Target |= ( ( Matching(SV_PlayerTeam[STATUS_CURRENT_A], REGEN) | Matching(SV_PlayerTeam[STATUS_AUTO_A], REGEN) ) & Matching(SV_PlayerTeam[STATUS_CURRENT_A], ZOMBIE) ) )
        if ( #SV_Target ) {
            return
        }
        set #( SV_Target = GetAttacker )
        Attack( SNORT )
        return
    }
    // 75% Aera or Float
    set #( SV_Target = GetAttacker )
    if ( #SV_Target ) {
        // If attaker has Float status, counter with Aera
        if ( #Matching(SV_Target[STATUS_CURRENT_A], FLOAT) ) {
            Attack( AERA )
        // Else, cast Float
        } else {
            Attack( FLOAT )
        }
    }
    return
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
ALAKTORN wrote:
That makes 3 PS games that use the default RNG… FFT, Tenchu, and BFM.
You can add FFIX to that list (used by Tetra Masters and other things)
alt: Froggy25
Experienced Forum User
Joined: 4/2/2014
Posts: 32
Pour le RNG, il y a en général une méthode propre et une méthode sale: • Méthode propre qui demande de connaître un peu d'assembleur: admettons qu'un jeu ait des coups critiques. On va d'abord chercher dans la RAM la valeur qui correspond aux dégâts infligés et on met un breakpoint en écriture dessus, on cherche également la stat d'attaque et on met un breakpoint en lecture dessus. La prochaine fois que l'on attaquera, le breakpoint en lecture se déclenchera, et on pourra regarder la formule de dégâts. Si l'attaque est un critique, on peut directement run jusqu'au breakpoint en écriture des dégâts, on tombera souvent sur un appel au PRNG un peu avant que les dégâts doublés ne soient écrits dans la RAM. Il n'y a plus qu'à regarder quelle valeur est lue plus réécrite dans la RAM. • Méthode sale, par brute force: le RNG de BOF3 est time-based apparement, il change tout le temps. Cherche juste une valeur qui change sans cesse lorsque tu es dans un écran fixe où rien ne se passe, de nombreuses fois jusqu'à ce que tu n'aies plus qu'une petite liste d'adresses RAM. Je te conseille d'apprendre le MIPS (au moins suffisament pour te dépatouiller avec), et d'utiliser un émulateur avec un bon debugger pour tes recherches (qui sera probablement différent de l'émulateur que tu utilises pour le TAS).
alt: Froggy25