Artigo Win3mu - Emulador de programas Windows 16-bit (Lançado)

Arucard1983

Power Member
Uma companhia unipessoal de software (Top Ten Software) que normalmente cria pequenos programas na área do áudio, decidiu embarcar num projecto maluco :002: que era suportar a execução de jogos para o Windows 3.1 nos sistemas Windows de 64-bit de forma muito similar ao Wine (implementação da API) e ao DosBox (emulação da CPU).

E desta forma (Setembro de 2016), nasceu o Win3mu...

http://www.win3mu.com/

Segundo o autor do programa, tratou-se de um projecto pessoal, que pretende manter a nível interno durante mais algum tempo, embora já tenha aberto um canal para futuros beta-testers a partir deste site, o que aliás até o CodeWweavers (a companhia que faz versões comerciais do Wine para Linux e Mac OS X) o fez quando anunciou a versão Android (demorou foi quase um ano até aparecer os primeiros Previews públicos :joker:).

Pelo trabalho já publicado pelo próprio programador do projecto Win3mu, é um programa escrito em C# e utiliza a plataforma .NET (O que torna muito ligado ao Windows 7/10, dificultando a portabilidade para outros sistemas, se bem que no Linux de 64-bits, o suporte do Windows de 16-bit funciona pelo Wine...), e é um executável nativo de 64-bits.

O emulador quando carrega um executável de 16-bits do Windows 1.x/2.x/3.x, inicia três módulos:
1. Um emulador do Intel 80286/80386 que processa o executável, instrução a instrução.
2. Um wrapper contendo a implementação das diferentes API do Windows de 16-bit, para as equivalentes de 32-bit/64-bit (Win32 API), usando técnicas de trunking.
3. Uma biblioteca que permite a ponte entre os ficheiros e discos do Windows de 64-bit (host), e o ambiente emulado para a execução do jogo de 16-bit
Se no primeiro módulo temos similhanças com o DosBox, no segundo temos essencialmente uma réplica do Wine, para usando a API nativa do Windows de 64-bit como base.
Todos os jogos de 16-bit no Win3mu correm numa janela como se fosse uma aplicação normal para o Windows, daí o terceiro módulo.

Em termos um pouco mais detalhados, o Win3mu implementou parte da API de 16-bit mais optimizada para os jogos, deixando o resto que teria pouca ou nenhuma relevância.
No Windows 3.1, os programas num modo mais geral comunicam com o sistema operativo Windows usando o triunvirato GDI, USER e KERNEL, e ainda a interrupção do DOS Int 21h, que teve que implementar para que o main event loop do programa de 16-bit pudesse finalizar. (Não usou o DosBox, apenas implementou as flags da CPU emulada para simular a interrupção acima referida.)

Outras bibliotecas como o mmsystem.dll e eventualmente o wing.dll poderão ser implementadas como wrappers, de modo a correr jogos para o Windows 3.1 com maior interesse, estilo o Dark Seed II... :004:

Embora o programa ainda não esteja oficialmente fora, verifica-se que sem sombra de dúvidas que o Win3mu será precisamente o que a GoG.com necessita...

- A companhia Great Old Games pretende desde 2014 lançar jogos que foram exclusivamente lançados para o Windows de 16-bit, que exceptuando os ports para versões de 32-bit, ou com versões para DOS (já rematadas com o DosBox), sem depender de buracos legais com o uso do Windows 3.1 em VM ou no DosBox por si só...
- Para o GoG.com, o Win3mu satisfaz os seus requisitos porque simplesmente:
Não necessita de instalar o Windows 3.1, nem usar máquinas virtuais. :D
Problemas com drivers de som e vídeo, juntamente com o sistema operativo, que não pode ser legalmente vendido para fins comerciais, devido aos copyrights da Microsoft, são evitados. :D
É um programa autónomo e auto-suficiente, do qual basta agregar o emulador com jogo, juntar as configurações relativas à unidade C: virtual, meter num pacote, e vender na loja. :D
E o Win3mu permite que o programa de 16-bit actue como um programa do Windows actual, sem artefactos ou outras minuências que ocorreriam na execução dos mesmos no DosBox com o Windows 3.1, ou com o VirtualBox a correr o Windows 3.1, o que para um jogador que compra os jogos no GoG.com torna-se muito apelativo, e para a companhia Great Old Games uma vantagem em termos de recursos e suporte técnico. :001:
Até ao momento, o Win3mu já funciona com a esmagadora maioria dos jogos shareware que eram vendidos em CD-ROM às dúzias, mas para jogos mais complexos ainda não existem testes fidignos. :004:
 
Demorou até bastante tempo, mas acabou por ser lançado o Win3mu.
Após quase dois anos (!), o emulador foi lançado como Open-Source, e como tal podem clonar o repositório a partir deste endereço:

https://bitbucket.org/toptensoftware/win3mu

E pode exigir a compilação prévia do emulador x86 do mesmo autor do Win3mu:

https://bitbucket.org/toptensoftware/sharp86/

O emulador foi escrito em C# e requer o .NET 4.6.1 para este funcionar.

Para quem não queira perder tempo a compilar o programa, existe um pacote pronto a instalar, a partir deste endereço:

https://github.com/Mwyann/win3mu/releases
 
No entretanto saiu outro emulador com o mesmo fim, mas muito mais poderoso: WineVDM :002:

Que combina um emulador do MS-DOS baseado na emulação do Intel 80386 do MAME criado no Japão :n1qshok:, com uma versão modificada do Wine (aproveitando apenas as componentes de 16-bit).

Assim o MS-DOS Player combinado com o Wine deu origem ao WineVDM.

O código-fonte, e binários podem ser obtidos pela página...

https://github.com/otya128/winevdm

No entanto parte dos remarks do código estão em japonês, ora em inglês, e o manual idem...
Especialmente a componente da emulação do MS-DOS... :winknu:
http://takeda-toshiya.my.coocan.jp/msdos/index.html

Ao contrário do Win3mu que só funciona bem com os jogos shareware, o WineVDM consegue correr jogos de 16-bit mais complexos, ou até as edições do Microsoft Office para o Windows 3.1
 
Back
Topo