Eletrônica
Recompilando estaticamente jogo de NES como binário nativo
Vi esta notícia no BR-Linux.
|
Fonte: Wikipédia. |
Uma das abordagens mais empregadas para rodar jogos antigos é a emulação, onde um programa interpreta o código de máquina cada instrução por vez, e o traduz para o sistema em que está sendo executado. No caso do NES (Nintendo Entertainment System) há, entre outros emuladores, FCE Ultra e Nestopia.
Porém o que Andrew Kelley fez é diferente: compilou um jogo (no caso, Super Mario Bros) para produzir um binário nativo pronto para rodar em Linux de 64 bits. O vídeo abaixo ilustra o processo:
Como é comum para os jogos de 8 bits, os programadores faziam otimizações agressivas no código dos jogos, onde era muito comum o reuso de partes de certas instruções para economizar preciosos bytes. Entretanto isso dificulta a compilação, pois um mesmo trecho do código pode, dependendo de como foi chamado, produzir diferentes resultados. Esta e outras dificuldades levaram Andrew a concluir que a sua abordagem não é muito prática para rodar jogos clássicos.
Apesar disso, pessoalmente, eu acho que é uma forma válida para apreciar os antigos jogos nos sistemas modernos. Seria muito interessante poder compilar alguns megagames do TK90X para o Linux.
loading...
-
Knight Lore Disassembly
Foi anunciado no fórum do World of Spectrum a primeira versão do disassembly comentado do jogo Knight Lore. A listagem publicada não é apenas a saída de um programa disassembler de Z80, mas tem vários comentários esclarecendo o código. Este...
-
Número Aleatório No Phantom Club
Como tenho feito costumeiramente nos últimos tempos, estava investigando o esquema de carregamento do jogo do TK90X Phantom Club para adaptá-lo ao disco Beta. O esquema de carregamento é o Speedlock 5, que possui um número grande de decodificadores....
-
Silkworm 128... ?
Emmerson Maurilio fizera uma wishlist de jogos para TKMEM-128 a serem adaptados e, entre estes, figurava Silkworm que teria comportamento diferente entre 48 e 128K. Resolvi tirar a prova. Carreguei o jogo no emulador Fuse, definindo no debugger um breakpoint...
-
Gotobasic48.asm
Existem certos programas que não são compatíveis com o modo 128 BASIC do ZX Spectrum 128, ou TK90X e a TKMEM-128 com a ROM 128 ativada. Um exemplo é o Lerm Code Compressor 1 que utilizo muito nas minhas adaptações para a interface de drive Beta....
-
Interface De Demo Do Tk90x
Visitando o site do Eduardo Luccas, encontrei um item interessante para download que seria a imagem (dump) da EPROM da interface de demonstração do TK90X. Pela descrição dada, seria uma interface conectada a TK90X em exposição em loja, que ficaria...
Eletrônica