O jogo possui uma espécie de Seed (Semente) que gera valores aleatórios enquanto o Sonic está no Sonic.exe World e outra que rola quando Sonic está em seu mundo que funciona da seguinte forma: *a)* Quando Sonic está em seu mundo, existe um endereço de memória (0x0000ca96) que se manifesta de 0x0000 até 0x???? onde ???? é o resultado gerado pela Seed. Se 0x???? = valor da Seed, então, Sonic vai ao Sonic.exe World *b)* Quando Sonic está em Sonic.exe World, o endereço de memória da Seed (0x0000ca98) começa a se manifestar aleatoriamente sem padrão definido e SÓ para quando Sonic explode um monitor. O valor aleatório gerado será o tempo restante em que Sonic ficará "livre" antes de voltar ao Exe World novamente. O valor inicial é *0x02f0* que equivale a 12.45 segundos. Esse tempo é o que é gerado inicialmente ao entrar numa fase ou voltar dum checkpost. Porém, raramente, se conseguirá este valor de novo depois... Cheguei a ver isso enquanto trabalho pra lançar um set deste jogo no Retro Achievements e esses endereços serão necessários pra criação de alguns desafios. Embora esses endereços existam, no hardware original, talvez, esses endereços sejam de posições diferentes (como 0x0000ca95 ou 0x0000ca97, por exemplo, ao invés de 0x0000ca96 ou 0x0000ca98 pra estes casos) porque, no Retro Achievements, a indexação de endereçamento pra mapear a memória RAM do console começa em $00000000.
Cara, isso é muito legal! Curiosamente 12.45 segundos foi o MÁXIMO de tempo pacífico que eu consegui manipular neste vídeo antigo, destruindo o monitor em 265 frames consecutivas diferentes: ua-cam.com/video/RNf8lzgO84s/v-deo.html Realmente parece que não é possível obter um tempo maior que isso. É muito interessante saber como funciona a teoria por trás desses RNGs, seria mais interessante ainda saber a fórmula utilizada para gerar esses valores aleatórios, com base em quais variáveis por exemplo... mas acredito que isso seja bem mais difícil de descobrir por conta própria, talvez alguém que manje muito de assembly 68k e debugs no emulador consiga descobrir isso. Na prática: No processo de criação de um TAS, a grande maioria das coisas é feita ou descoberta usando uma quantidade gigante de testes, desejando minimizar o tempo completando as fases o mais rápido possível. No caso desse jogo, deseja-se maximizar o tempo pacífico ao manipular os RNGs (para poder vencer), e como um TAS legítimo apenas grava os botões apertados em cada frame do jogo e depois reproduz (sem cheats, sem modificar manualmente a memória), as manipulações são feitas testando inputs diferentes e vendo o que acontece. Na prática foi observar que sempre que um monitor era destruído na mesma frame, obtinha-se o mesmo tempo. Então o conjunto de testes é destruir o monitor em muitas frames diferentes pra ver qual dá o maior tempo (o curioso é que a cada frame o tempo muda muito aleatoriamente, provavelmente usaram alguma fórmula muito maluca para isso. Alguns RNGs são simples de manipular, outros são bem complexos. Abaixo estão os mais doidos que eu já vi: (Super Mario Bros Genesis, Boss 1) ua-cam.com/video/Gfs1hXJqeOo/v-deo.html Para manipular a posição em que a caixa aparece e depois cai, depende se você está no lado esquerdo ou direito da tela em determinada frame. Curiosamente esse foi meu primeiro TAS. (Mr. Cat's 16 Day Challenge, Boss) ua-cam.com/video/LnGES_kri2w/v-deo.html Quando o boss atirava misseis, perdia-se muito tempo. O objetivo era fazer ele não atirar mísseis, sim, isso era possível pois eu tinha visto em um longplay do Razor & Zenon / Amy Rose. Após um tempo percebi que não dava pra manipular durante o chefe, isso já era definido antes. Então alguma coisa tinha que acontecer ANTES do chefe para manipular o comportamento dele. Após um tempão investigando, descobri que dependia do exato momento em que o Sonic encostava na água após pular lá de cima. Após alguns testes consegui a manipulação. (Consegue perceber que isso não era nem um pouco óbvio? Tipo, olha a variável que o cara utilizou kkkkk) (Hellfire Saga, SHC2019, Boss do Mickey/princesa de fogo) ua-cam.com/video/4KDhtYDoBsQ/v-deo.html Quando a princesa de fogo aparecia, perdia-se muito tempo. O objetivo era fazer ela não aparecer, e isso era definido por um RNG. Após um tempão investigando, descobri que isso dependia se o Mickey pulava pra Esquerda ou Direita em determinados momentos, ele pulava em direção ao Sonic e sempre dava 3 pulos, depois a princesa podia aparecer ou não. Então na primeira rodada tive que testar 8 possibilidades: EEE, EED, EDE, EDD, DEE, DED, DDE, DDD. Após ficar com somente as combinações na qual a princesa não aparece, vamos para a rodada 2: Testar mais 8 possibilidades em cada um desses casos. Pegar só as que não aparece. Rodada 3: Mais 8 possibilidades... e foi assim até finalizar o boss.
Visit my new Sonic Channel:
ua-cam.com/channels/1y6aP67AlzvSBpE7Vd2E0w.html
9:51 the You are too slow!!! By sonic.exe appeard for a split second: did you see that?
EDIT: IT IS ACTUALLY A SPLIT FRAME LONG! (i think)
3:27 HAHAHA i'm not in the evil sonic's world!
É muito bom assistir isso e ver o quanto vc consegue quebrar o jogo gerando glitches kkkkkk
11:30 Sonic's waiting for the poll to come on time
14:35 to 14:39 to Sonic: Screw gravity and walls, I'm outta here!
O jogo possui uma espécie de Seed (Semente) que gera valores aleatórios enquanto o Sonic está no Sonic.exe World e outra que rola quando Sonic está em seu mundo que funciona da seguinte forma:
*a)* Quando Sonic está em seu mundo, existe um endereço de memória (0x0000ca96) que se manifesta de 0x0000 até 0x???? onde ???? é o resultado gerado pela Seed. Se 0x???? = valor da Seed, então, Sonic vai ao Sonic.exe World
*b)* Quando Sonic está em Sonic.exe World, o endereço de memória da Seed (0x0000ca98) começa a se manifestar aleatoriamente sem padrão definido e SÓ para quando Sonic explode um monitor. O valor aleatório gerado será o tempo restante em que Sonic ficará "livre" antes de voltar ao Exe World novamente.
O valor inicial é *0x02f0* que equivale a 12.45 segundos. Esse tempo é o que é gerado inicialmente ao entrar numa fase ou voltar dum checkpost. Porém, raramente, se conseguirá este valor de novo depois... Cheguei a ver isso enquanto trabalho pra lançar um set deste jogo no Retro Achievements e esses endereços serão necessários pra criação de alguns desafios.
Embora esses endereços existam, no hardware original, talvez, esses endereços sejam de posições diferentes (como 0x0000ca95 ou 0x0000ca97, por exemplo, ao invés de 0x0000ca96 ou 0x0000ca98 pra estes casos) porque, no Retro Achievements, a indexação de endereçamento pra mapear a memória RAM do console começa em $00000000.
Muito interessante, gostaria de ver uma hack nesse mesmo estilo pra Sonic 3&K porém mais aleatório a entrada/saída.
Cara, isso é muito legal!
Curiosamente 12.45 segundos foi o MÁXIMO de tempo pacífico que eu consegui manipular neste vídeo antigo, destruindo o monitor em 265 frames consecutivas diferentes: ua-cam.com/video/RNf8lzgO84s/v-deo.html
Realmente parece que não é possível obter um tempo maior que isso.
É muito interessante saber como funciona a teoria por trás desses RNGs, seria mais interessante ainda saber a fórmula utilizada para gerar esses valores aleatórios, com base em quais variáveis por exemplo... mas acredito que isso seja bem mais difícil de descobrir por conta própria, talvez alguém que manje muito de assembly 68k e debugs no emulador consiga descobrir isso.
Na prática: No processo de criação de um TAS, a grande maioria das coisas é feita ou descoberta usando uma quantidade gigante de testes, desejando minimizar o tempo completando as fases o mais rápido possível.
No caso desse jogo, deseja-se maximizar o tempo pacífico ao manipular os RNGs (para poder vencer), e como um TAS legítimo apenas grava os botões apertados em cada frame do jogo e depois reproduz (sem cheats, sem modificar manualmente a memória), as manipulações são feitas testando inputs diferentes e vendo o que acontece.
Na prática foi observar que sempre que um monitor era destruído na mesma frame, obtinha-se o mesmo tempo. Então o conjunto de testes é destruir o monitor em muitas frames diferentes pra ver qual dá o maior tempo (o curioso é que a cada frame o tempo muda muito aleatoriamente, provavelmente usaram alguma fórmula muito maluca para isso.
Alguns RNGs são simples de manipular, outros são bem complexos. Abaixo estão os mais doidos que eu já vi:
(Super Mario Bros Genesis, Boss 1)
ua-cam.com/video/Gfs1hXJqeOo/v-deo.html
Para manipular a posição em que a caixa aparece e depois cai, depende se você está no lado esquerdo ou direito da tela em determinada frame. Curiosamente esse foi meu primeiro TAS.
(Mr. Cat's 16 Day Challenge, Boss)
ua-cam.com/video/LnGES_kri2w/v-deo.html
Quando o boss atirava misseis, perdia-se muito tempo. O objetivo era fazer ele não atirar mísseis, sim, isso era possível pois eu tinha visto em um longplay do Razor & Zenon / Amy Rose.
Após um tempo percebi que não dava pra manipular durante o chefe, isso já era definido antes. Então alguma coisa tinha que acontecer ANTES do chefe para manipular o comportamento dele.
Após um tempão investigando, descobri que dependia do exato momento em que o Sonic encostava na água após pular lá de cima. Após alguns testes consegui a manipulação. (Consegue perceber que isso não era nem um pouco óbvio? Tipo, olha a variável que o cara utilizou kkkkk)
(Hellfire Saga, SHC2019, Boss do Mickey/princesa de fogo)
ua-cam.com/video/4KDhtYDoBsQ/v-deo.html
Quando a princesa de fogo aparecia, perdia-se muito tempo. O objetivo era fazer ela não aparecer, e isso era definido por um RNG. Após um tempão investigando, descobri que isso dependia se o Mickey pulava pra Esquerda ou Direita em determinados momentos, ele pulava em direção ao Sonic e sempre dava 3 pulos, depois a princesa podia aparecer ou não. Então na primeira rodada tive que testar 8 possibilidades: EEE, EED, EDE, EDD, DEE, DED, DDE, DDD.
Após ficar com somente as combinações na qual a princesa não aparece, vamos para a rodada 2: Testar mais 8 possibilidades em cada um desses casos. Pegar só as que não aparece. Rodada 3: Mais 8 possibilidades... e foi assim até finalizar o boss.
Creepypasta TAS
Você deve adorar fazer TAS desse jogo não é mesmo matheusbrancobs porque você está fazendo TAS de tudo quanto é tipo
kkkkkkk
Dude your such a hacker😂
👍
If sonic.exe is here then how did he not ki@@ robotnik?
Sonic.exe has turned him into EXE,can be seen in boss fights (dark Eggman in eggmobile)
@@something_abt_TUor most likely, that would be a shit gameplay mechanic if he could just kill bosses for the player
First!
👍🏻