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:

Mapa de memoria:

O mapa ainda é primario, mas pode-se entender que é um "slot" completo contendo:

"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 AM
Subject: 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
>