Quatro controles independentes já comandam quatro lutadores ao mesmo tempo em protótipos locais de Marvel vs. Capcom e Marvel Super Heroes vs. Street Fighter para CPS-2. MVC1 aproveita seu Variable Cross original. MSH vs. SF ganha um modo novo: os parceiros entram, continuam na luta e recebem seus próprios comandos.
Uma pessoa pode se mover enquanto o parceiro ataca. Os dois podem iniciar seus próprios Hypers. Se a outra equipe também ativar o modo, a partida vira uma luta contínua de dois contra dois. Os vídeos reproduzem quatro sequências de controles; ainda não documentam uma sessão ao vivo com quatro pessoas.
Esta edição em português apresenta os resultados, controles e limites do projeto. A pesquisa completa em inglês preserva listagens, hashes e comparações técnicas de cada versão.
Os dois jogos continuam sendo protótipos. Publicar este artigo não transforma testes parciais em uma versão pronta. Ainda faltam testes mais amplos de personagens, comandos breves, transições, controles físicos e rollback para quatro jogadores. Não há download público do patch de quatro jogadores.
O fundo de meteoros de MVC1 ainda não foi integrado a MSH vs. SF. MSH já tem luta temporizada e barras TIME próprias, mas os vídeos mantêm os fundos existentes. As novas capturas de msh-exact-time-11 já mostram a moldura azul e as máscaras originais de TIME de MVC1, com todas as suas cores. Os vídeos anteriores mantêm seus rótulos de versão e seus limites.
MSH vs. SF: os quatro continuam lutando
Ryu e Ken enfrentam Spider-Man e Captain America. Os quatro painéis mostram as entradas físicas e a palavra de controle recebida por cada lutador. Botões diferentes acesos ao mesmo tempo indicam jogadores distintos dando comandos.
Na gravação completa, os quatro ficam ativos durante 997 callbacks amostrados. Com os mesmos comandos, a versão anterior, que só alterava a propriedade dos controles, mantinha os quatro juntos por apenas 17 callbacks e não ativava um modo contínuo.
A versão posterior msh-combined-08 reúne controles, seleção, modo temporizado e HUD. Em um teste delimitado, as 264 amostras de entradas chegaram ao jogador correto, incluindo as 24 combinações de jogador e botão de ataque. Foram observados seis Hypers alternados de Ryu e Ken com o medidor armazenado em zero durante o modo.
MVC1: Variable Cross com quatro jogadores
Zangief e Ryu enfrentam Spider-Man e Captain America. Comandos normais passam por um emulador local de diagnóstico, sem escrita direta no estado do jogo nem carregamento de estado salvo no início.
As duas barras TIME aparecem acima dos medidores de níveis; o fundo de meteoros é o original de MVC1. Não é uma reconstrução animada. O protótipo posterior de MVC1 ocupa 418 bytes e tem provas adicionais de seleção, controles, temporização e salvamento/restauração. Não atribuímos essas melhorias ao vídeo antigo.
Uma equipe não é um controle
A equipe ainda determina adversários, projéteis, medidor, trocas e colisões. O novo dono do controle é independente dessa equipe. Quando muda o personagem ativo, o parceiro continua pertencendo ao mesmo jogador.
O MVC1 de arcade permite que os dois parceiros ajam durante Variable Cross, mas originalmente compartilham os comandos. A troca de controle histórica usada no Kaillera entregava o controle ao dono do personagem ativo. O Cross Fever do Dreamcast permite donos independentes, inclusive os dois parceiros agindo juntos. São três comportamentos diferentes.
O executável do Dreamcast usa quatro registros de controles e seleciona a entrada de cada lutador. Seu código SH-4 é estudado para traduzir o comportamento para 68000; não pode ser colado diretamente no programa CPS-2. Os arquivos Phoenix ajudam com o programa descriptografado, não acrescentam portas de controle.
Controles nativos e fiação
As equipes são P1/P3 contra P2/P4. Cada pessoa tem direções e seis botões. MK/HK reutilizam linhas de Start/Coin; por isso, o projeto exige jogo livre e uma fiação própria.
| Pessoa | Direções + LP/MP/HP/LK | MK | HK |
|---|---|---|---|
| P1 | IN0, byte baixo | Start1 | Coin1 |
| P2 | IN0, byte alto | Start2 | Coin2 |
| P3 | IN1, byte baixo | Start3 | Coin3 |
| P4 | IN1, byte alto | Start4 | Coin4 |
Os registros são IN0 $804000, IN1 $804010 e IN2 $804020. As linhas de serviço e EEPROM são preservadas. Fora da luta, um novo acionamento de HP+HK permite entrar; é preciso soltar os botões antes de jogar. Durante a luta, as prioridades dos comandos e das trocas são mantidas. A compatibilidade com um gabinete físico exige outra validação.
O temporizador e as transições difíceis
MSH mantém seu ataque de equipe QCF + HP+HK. O modo contínuo usa QCB + HP+HK e consome o medidor disponível seguindo as regras investigadas de MVC1. Nos testes, o contador percorreu 576, 575…0; outra ativação com dois níveis e fração 92 produziu 430 unidades. São unidades de simulação, não segundos decimais.

Captura real de combined-06: rótulos TIME e barras desenhados pelo próprio jogo, sem sobreposição. A verificação do HUD foi repetida em combined-08.

combined-06, ativações em momentos diferentes: resta apenas o contador direito. O relógio da rodada e os medidores normais são preservados.
combined-08 corrige dois problemas concretos: HP+HK mantidos até o fim do modo podiam vazar quando o personagem voltava após uma troca; soltar os botões no banco podia deixar uma trava pendente e engolir a próxima pressão. Também evita a pausa inicial dos Hypers da própria equipe durante o modo, seguindo o comportamento verificado em MVC1 e Dreamcast.
Um teste de salvamento/restauração reproduziu os 300 callbacks seguintes, entradas, temporizadores e checksum dos 64 KiB de RAM. Isso não demonstra rollback de rede. Foi verificado um caso de KO do personagem ativo e comparados 7.600 registros de uma sequência; a matriz completa de derrotas e personagens continua aberta. Uma comparação histórica de QCF apresentou 73 diferenças de campos em 70 callbacks: não se afirma identidade quadro a quadro com o jogo original.
Uma correção concreta de comandos
O perfil local do emulador filtrava algumas mudanças rápidas de direção: P3/P4 em MVC1 e os quatro controles em MSH podiam passar de Esquerda → Direita ou Cima → Baixo e produzir uma entrada neutra. O perfil corrigido preserva essas mudanças entre amostras consecutivas e neutraliza somente direções opostas pressionadas ao mesmo tempo.
Os controles ordenados entre controle e porta passam de 59/77 para 77/77 em MVC1 e de 43/77 para 77/77 em MSH. Durante Duo simultâneo em MVC1, as 156 palavras solicitadas chegam à porta, contra 118 antes. Foram verificados 2.461 ciclos completos de leitura e 1.337 entregas de entradas e histórico aos lutadores, sem divergências. A ROM não mudou para essa correção; os registros fixam o emulador e as ROMs usados.
Isso ainda não prova a preservação de todo toque breve. Das 156 solicitações, 154 são lidas e concluídas no mesmo callback, uma termina no seguinte e um toque de P2 não tem leitura física pelo lutador. Não foi adicionada uma fila de entradas. Os problemas específicos de Wolverine/Strider, o rollback do Fightcade e os controles físicos continuam sendo testes separados.
O TIME azul original já aparece em MSH
msh-exact-time-11 incorpora as 11 peças da moldura e as 16 máscaras de esvaziamento originais de MVC1. Preserva suas cores e usa dois contadores independentes. A comparação dos 32 MiB de gráficos confirma que somente essas 27 peças reservadas foram alteradas; a memória gráfica não foi ampliada.

Captura real no callback 5500 de staggered11-latched. O desenho é feito pelo jogo, sem anotação sobre o vídeo.

Callback 6200: o modo da esquerda terminou. As duas barras desaparecem até o callback 6400.
As 22.900 comparações de pixels opacos em 14 capturas coincidem exatamente. O observador acompanha os bancos físicos de objetos e sua captura em VBlank, sem presumir que o contador atual corresponde à imagem exibida. Os registros desta versão fixam os hashes e os limites. Na expiração observada, as duas linhas de paleta são restauradas; se houver conflito de paleta ou faltar espaço na lista de objetos, o HUD opcional é omitido.
A sequência fixa anterior continua sem conseguir um KO na versão 11: os lutadores do lado direito chegam ao mínimo de 12 e 80 de vida. Essa execução, ko11, permanece como cobertura que falhou. O desenho adicional muda a relação entre callbacks e simulação; não se presumiu que a sequência anterior manteria seu resultado. As capturas de 06/08 e o vídeo de 03 mantêm seus rótulos.
Outra sequência de controles normais alcança um KO do personagem ativo na mesma ROM de build11, sem modificá-la. Spider-Man cai com os dois modos ativos e 131 unidades em cada temporizador. Captain America assume como personagem ativo do lado direito no callback seguinte. P4 o move para a direita e inicia um novo soco fraco: chegam as oito amostras de movimento e as quatro de soco solicitadas. Só termina o modo da equipe de Spider-Man; o temporizador esquerdo continua.
Os registros do KO e da recuperação em build11 comparam a execução original com uma reprodução fixa: coincidem os 7.600 registros de callbacks, exceto o rótulo que identifica o método de controle. Os objetos TIME passam de duas barras para uma e depois para nenhuma ao expirar o último temporizador; as duas linhas de paleta recuperam os valores salvos. Cada execução passa 5.808 verificações de desenho e 6.908 de envio de objetos. Foram executadas sem janela nem capturas novas, usando o perfil histórico de observação; não ampliam o resultado do novo filtro de direções.
Isso verifica um caso de KO e recuperação do controle do sobrevivente. Continuam pendentes rodadas completas, revanches, KOs simultâneos, a matriz de personagens, os escritores de paleta, as referências gráficas calculadas e os limites de objetos e pixels. Não demonstra o comportamento em gabinetes nem em rede.
Por que os meteoros ainda faltam
O fundo de MVC1 utiliza 866 peças de 32×32. Dividi-las e reutilizar padrões de 16×16 permite uma proposta sem perdas, mas exige 2.404 padrões novos. Espaços aparentemente vazios não estão necessariamente livres: alguns formam partes transparentes dos cenários existentes.
Depois de proteger as referências observadas numa execução normal de MSH, restam 2.381 espaços, 23 a menos do que o necessário. Com o corpus completo dos mapas recuperados, restam 1.695. A primeira distribuição é rejeitada porque alteraria cenários. Nenhum gráfico foi escrito para essa proposta. É necessária outra distribuição segura, além de resolver mapas, paletas, prioridades e restauração ao terminar o modo.
O que falta antes do lançamento
Uma pressão de um único callback pode acontecer entre duas atualizações de um lutador; esse tipo de entrada já se perdeu em MVC1. É preciso resolver isso com provas do mecanismo real de amostragem, sem confundir callbacks de vídeo com quadros de simulação. Também faltam personagens e formas, agarrões, projéteis, cruzamentos, transformações, expiração durante supers, KO duplo, revanches e orçamento de CPU/objetos.
O harness agora verifica as linhas físicas, a origem das leituras e a amostragem de cada personagem. Um perfil novo expõe os controles nativos dos dois jogos e passa 43 casos de interruptores por jogo. Os builds fixam hashes, bytes originais, reservas e fontes para permitir reprodução.
O patch DHC é outro projeto: adiciona cancels e trocas, não quatro donos independentes. Publicar este relatório permite mostrar o progresso sem anunciar compatibilidade com gabinetes, Fightcade online ou uma versão final que ainda não existe.