Conversão de MSX para Master System

By segarules

Resident (37)

segarules's picture

23-09-2015, 22:04

Olá prezados,
Eu sou um grande fã do Sega Master System. Depois de descobrir uma série de jogos diferentes que eu não conhecia para SMS, me deparei com alguns ports de MSX. Alguns feitos pela Zemina, como Nemesis e outros. Também vi Knightmare II: maze of galious que foi um port. Pois bem, baseado nesses ports que eu vi, comecei a pensar sobre outros ports de MSX para SMS e a viabilidade de conversão. Pessoal, que ferramentas existem para programação ou conversão? Vocês sabem de alguém que já tenha feito essa tarefa?
Aproveito o ensejo para indicar uma ferramenta de edição. O jogo Alex Kidd miracle world tem um editor para vocês construírem estágios como quiserem. Eis o link:
http://www.smspower.org/forums/14382-KiddEdAlexKiddInMiracle...

Obrigado pela atenção.

Login or register to post comments

By nitrofurano

Champion (288)

nitrofurano's picture

27-10-2016, 21:33

Partilho da mesma curiosidade! Smile (há centenas de jogos de msx1 que tenho muita curiosidade de jogar no master-system... só de imaginar... Alpharoid, Tensai Rabbian Daifunsen, Skooter, Indian No Bouken... Wink - imagino que deva existir coisa como 5 centenas de jogos a ser convertidos? Wink )

Para começar, acho que o mais importante é conhecer minimamente bem cada máquina - as diferenças entre msx1 e sg1000-mark1 (retrocompatibilidade do master-system) , das que me lembro agora, são as seguintes:
- para som, msx1 usa ay-3-8910 e sg1000-mark1 usa sn76489 - sn76489 não usa envelopes e tem menos oitavas disponíveis (as frequências mais graves), e em algumas conversões nota-se bem a diferença
- as portas i/o são diferentes
- msx1 tem rotinas de bios (entre 0x0000 e 0x3FFF) e o sg1000-mark1 não tem bios nenhuma, razão pela qual alguns jogos convertidos tem mais 16kb que os originais do msx1 - (master-system vem com qualquer coisa parecida com bios, mas acho que só serve para verificar checksums (a documentação no site smspower explica com detalhes), ou incluir algum jogo como Alex Kidd ) - (a minha humilde experiência nisto foi em dois jogos que desenvolvi para a competição MSXDev-Karoshi, com os jogos Libreway e CMJN, que desenvolvi no Boriel’s ZX-Basic Compiler, simultaneamente para msx1, sg1000-mark1 (com uma versão compatível com master-system, com os bytes de checksum), e colecovision )
- msx1 vem com no mínimo 8kb de ram, enquanto sg1000-mark1 vem com 1kb ou 2kb (entre sg1000-mark1 e colecovision, consolas muito parecidas uma com a outra, não me lembro qual vinha com 1kb e qual vinha com 2kb ) - master system (e sg1000-mark3) vem com 16kb de ram - e o local da ram não é o mesmo (até acho que é a maior diferença entre sg1000-mark1 e colecovision)
- os bits usados pelos joypads podem ser diferentes, e são geridos de forma diferente - sg1000-mark1 é directamente por i/o, e no msx1 é pela porta do ay-3-8910, por um ou dois dos registros (se não me engano), e isto para não falarmos que muitos jogos de msx1 usam o teclado também e em simultâneo
- não me lembro se há mais diferenças...

recentemente tenho tentado analisar diferenças entre as roms originais e as convertidas - Road Fighter por exemplo - com um editor de hexadecimais dá para reparar que a versão para sg1000 começa com 0x41 0x42 em 0x4000 (bem estranho, já que não há necessidade nenhuma de estarem lá no sg1000) tal como começa em 0x0000 no msx1 (as .rom de msx1 começam usualmente em 0x4000), e analisando superficialmente, a generalidade parece coincidir bastante, mas entretanto o md5sum (ou sha1sum) de ambas versões em 16kb não coincidem, o que dá a entender que as diferenças são mínimas (o suficiente para o conteúdo da rom rodar na outra máquina), e se foi disassemblado e assemblado o código não foi muito mexido

não tenho muita experiência em descompilar e compilar assembly, mas tenho ouvido maravilhas do Fudeba Disassembler para descompilar e do Pasmo para compilar (não faço ideia do que os Coreanos e Taiwaneses usavam nos anos 80 - não me surpreenderia se eles fizeram tudo à mão, byte a byte - por exemplo, só como referência, acho Steve Wozniak programou toda a bios do Apple-I e Apple-II com lápis e papel, byte a byte, é por isto que não me surpreenderia)

imagino que esta informação possa ser útil - se eu estiver enganado em alguma coisa, ou se faltar alguma coisa importante, por favor corrijam e complementem! Wink