Placa FORT II GAMES para arcades
USANDO MSX!!!
(Pagina em construção. Não podia deixar de compartilhar isso hoje com vocês, mas tem bem mais vindo ai, não perca por esperar!)
Demorou longos 20 anos...
Quando eu era bem pequeno, la pros meus 12, 13 anos, eu ajudava o dono do fliperama do bairro a consertar as maquinas dele. Nao apenas ia aprendendo como funcionava, como tambem aproveitava pra jogar de graça :o) Aprendi muita coisa e fiz muitas loucuras. Uma delas foi colocar um MSX (um expert 1.1 novinho!) rodando NEMESIS, ZANAC e outros. Era algo muito basico, mas jogava pra caramba! Seu Domingos (que Deus o tenha) ganhou muito dinheiro com essa ideia. E eu, muitas pecinhas :o)
Um dia ele compra uma placa da FORT II GAMES que diziam ter um jogo revolucionario chamado PESADELO. A placa era uma mixaria de placa do tamanho da palma da mao de um adulto, com um chipao (o yamaha do Expert Plus) e uma meia duzia de integrados a mais. O jogo, era Knightmare com o nome mudado para Pesadelo. E a placa nada mais era que um MSX. Tanto que eu trouxe o jogo em disquete pro Seu Domingos e ele vendeu a plaquinha. Eu devia ter 12, 13 anos, e nunca mais vi outra igual.
Varias vezes falei dessa placa na MSXBR-L e nunca ninguem viu, soube que existiu, etc. E eu continuei a procura-la, até que um dia...
Esta placa nada mais é que um MSX1 sem a PPI. Da esquerda pra direita podemos ver as VRAMs, TMS9128, AY38910, Z80, EPROM, 64K de RAM
Como funciona?
Essa placa tinha um BIOS mudado, e agrupava BIOS e jogo em apenas uma EPROM. Vou disponibilizar os arquivos aqui:
EPROM decodificada (a placa muda a posicao das linhas de endereços/dados)
BLUEMSX BETA com a emulação da placa ForteIIGames (C coloca ficha)
Mapa de memoria:
O mapa ainda é primario, mas pode-se entender que é um "slot" completo contendo:
0000h a 3FFFh: Bios alterada, provavelmente do Expert 1.0
4000h a FFFFh: O jogo. Eu sei que o jogo so ocuparia até BFFFh, mas tem alguma coisa depois disso que ainda ha que ser decodificada.
"Encriptação" da ROM
O mapa das mudanças dos barramentos de endereços e dados é o seguinte (Baixe >>>AQUI<<< o arquivo do CODEPROM):
CPU EPROM CPU EPROM D0 D1 A0 A10 D1 D2 A1 A0 D2 D4 A2 A1 D3 D0 A3 A2 D4 D7 A4 A3 D5 D6 A5 A4 D6 D5 A6 A5 D7 D3 A7 A6 A8 A7 A9 A12 A10 A15 A11 A14 A12 A13 A13 A8 A14 A9 A15 A11
O Danjovic deu uma força na rotina do credito, olha só:----- Original Message -----Sent: Wednesday, August 01, 2007 11:48 AMSubject: Detecção de ficha> Salve Alexandre,
>
> Dei uma estudada aqui nas rotinas e descobri coisas interessantes:
>
> A detecção de ficha é feita pela entrada de cassete! Foi uma solução
> bem inteligente pra não desperdiçar nenhuma linha do joystick!!
>
> A rotina de checagem de fichas fica na interrupção do teclado (INT 38).
>
> 0038 c3c01f jp 1fc0h
>
> A primeira coisa que a interrupção de teclado faz é checar o estado do
> contato do microswitch da ficha. Se estiver presente, ele contabiliza o
> crédito, mas depois de um delay, se o contato da ficha ainda estiver
> acionado, então ele considera que a ficha está presa.
>
> Há dois trechos que tomam decisões a partir do estado do contato que lê
> a ficha.
>
> 1fc0 f5 push af
> 1fc1 3e0e ld a,0eh ; Seleciona Registro 14 do VDP
> 1fc3 d3a0 out (0a0h),a
> 1fc5 dba2 in a,(0a2h) ; Lê registro 14
> 1fc7 e680 and 80h ; checa nível sinal do bit 7
> 1fc9 fe80 cp 80h ; (entrada de Cassete!)
> 1fcb 20ed jr nz,1fbah ; NZ=Ficha presente (no contato)
> 1fcd f1 pop af
> 1fce c33c0c jp 0c3ch ; Segue com processamento da int 38
>
>
> 2062 3e0e ld a,0eh ;
> 2064 d3a0 out (0a0h),a ; Seleciona registro 14 do VDP
> 2066 dba2 in a,(0a2h) ;
> 2068 e680 and 80h
> 206a fe80 cp 80h ; Checa estado do bit 7 (cassete input)
> 206c 200b jr nz,2079h ; Ficha no contato = NZ :)
>
>
> O segundo trecho chama a rotina em 2079h que limpa a tela e imprime a
> mensagem 'ficha presa'
>
> Experimenta, pra fazer a ROM funcionar, mudar o estado dos endereços
> abaixo de 20h (JR NZ) para 28h (JR Z)
>
> 1FCB
> 206C
>
> Sugere ao pessoal do BlueMSX pra poder criar um controle pra entrada de
> ficha :)
>
> Falows entao.
>
> []s
> Daniel
>