Omega Red + PS1 Emulator = Kojima Genius

Olá a todos os leitores!

Continuo o tema do emulador de software para o PlayStation 2 e o PlayStation Portable - Omega Red. Mais detalhes:


Eu escrevi esta publicação em conexão com a adição de um emulador de software para o PlayStation 1.
Bem-vindo à Kat.


Como o título indica, este artigo apresenta o resultado de minha pesquisa sobre a integração do emulador de PlayStation 1. Reloaded para PCSX. A idéia de adicionar suporte para emular a primeira linha de console de videogame PlayStation é lógica, mas quando tentei implementá-lo, houve um problema - a versão OpenSource tem cerca de 15 anos e deixou de ser suportada pela comunidade e A integração no projeto com as tecnologias DirectX11 e WPF apresentou um problema real. A versão do renderizador de vídeo é apresentada na forma de uma implementação de software e, após a criação da imagem final na memória do sistema, esse resultado é copiado na memória de vídeo do DirectX11. À primeira vista, essa solução não parece eficaz, mas permite que você use o código já depurado do renderizador de software e, para a primeira versão, é mais do que uma solução adequada.

Além disso, adicionei várias funções para compatibilidade com o PCSX-Reloaded:

  1. Vibração visual - o controlador de jogo "Dualshock" para os consoles da linha PlayStation possui a funcionalidade "feedback de retorno" para uma imersão mais profunda no processo do jogo. O emulador Omega Red suporta uma função semelhante para um controlador de jogo externo, mas o "retorno de retorno" para a tela de toque ainda está fora do domínio da ficção. No entanto, ao examinar o código PCSX-Reloaded, deparei-me com um ponteiro para uma função de retorno de chamada do emulador de controlador de jogo para o renderizador gráfico. A idéia de exibir "feedback retroativo" por meio da transformação visual da imagem é divertida, e decidi implementá-la em meu projeto.



  2. Cartão de memória compartilhado - o projeto Omega Red original cria um cartão de memória para o jogo com base no número de série exclusivo do disco do jogo, o que ajuda a impedir a substituição de um jogo da sessão de outro jogo. Essa técnica funciona para jogos PlayStation 2 que ocupam um DVD, mas no caso de jogos PlayStation 1, há um problema de transferir o salvamento de uma sessão de jogo em um disco para uma sessão em outro disco - os jogos no PlayStation 1 podem ocupar dois ou mais discos. Para resolver esse problema, adicionei um cartão de memória compartilhado.


Além dos requisitos de compatibilidade, adicionei várias melhorias gerais, entre elas:

  1. Seleção da taxa de bits do vídeo para gravação de vídeo da jogabilidade:


    Selecionando o tamanho do arquivo de gravação de vídeo de destino:


  2. Separação do BIOS e dos discos de jogos em grupos para PlayStation 1, PlayStation 2 e PlayStation Portable.


  3. Exiba o nome do BIOS atual e do disco do jogo no nome das seções correspondentes.



A demonstração dos jogos para as três plataformas pode ser vista na demonstração:


Atualmente, o programa está disponível em: Omega Red e é apresentado no GitHub: OmegaRed .

Source: https://habr.com/ru/post/pt476958/


All Articles