                 * * * * * * * * * * * * * * * * * * * * * * * * * * 
                 *                                                 *
                 *   Dynamic List for FBA/FB EvO                   *    
                 *   By 404_not_found, JiMMy_PaGe and Shoometsu    *
                 *                                                 * 
                 * * * * * * * * * * * * * * * * * * * * * * * * * *

 English:

* What is "Dynamic List" ? 
- Dynamic List is very much like a loader for fba, but only for Neo-Geo, that allows you to play games that aren't on the 
build

* How it works: 
- It uses a file called "dynamic.ini" with some ROM information, like a dat, FBA reads and interpret those informations
to load the ROM. The file "dynamic.ini" needs to be at main folder of fba, or it won't be loaded by the emu

* How to create "dynamic.ini":
- Use "Dynamic Creator Kit", you can get it here:

* About "dynamic.ini" (only for non-newbies xD :P )
- Lets take a look at kof2002 dynamic for example:

ID: 1
GAMENAME: The King Of Fighters 2002 - Challange To The Ultimate Battle
PARENT: kof2002 
ROMNAME: kof2002 
ROMINFO: 2 players max, uses board-ROMs from neogeo
RELEASEDBY: Eolith / Playmore Corporation (2002, Neo Geo hardware)
NEOPROTECTIONXOR: EC
SWAP: XX
SRAM: 0
SMAPROTECTION: 0
ENCRYPTIONSCHEME: B
ALTERNATETEXT: 0
TEXTROMSIZE: 0
PCM2: 4
SPECIALINIT: kof2002
265-p1.bin , 0x100000 , 0x9ede7323 , 1; 
265-p2.bin , 0x400000 , 0x327266b8 , 1; 
265-c1.bin , 0x800000 , 0x2b65a656 , 3;
265-c2.bin , 0x800000 , 0xadf18983 , 3;
265-c3.bin , 0x800000 , 0x875e9fd7 , 3;
265-c4.bin , 0x800000 , 0x2da13947 , 3;
265-c5.bin , 0x800000 , 0x61bd165d , 3;
265-c6.bin , 0x800000 , 0x3fdd1eb  , 3;
265-c7.bin , 0x800000 , 0x1a2749d8 , 3;
265-c8.bin , 0x800000 , 0xab0bb549 , 3;
265-m1d.bin , 0x20000 , 0x1c661a4b , 4; 
265-v1.bin , 0x800000 , 0x15e8f3f5 , 5; 
265-v2.bin , 0x800000 , 0xda41d6f9 , 5 
};

"ID: 1" --> It's not a cartridge ID, it's a ID especific for dynamic, each rom that you add on it, needs a different ID,
for example, if kof2002 is the first game on the list ID = 1, if kof2001 is the second game on the list ID = 2...

"GAMENAME: The King Of Fighters 2002 - Challange To The Ultimate Battle" --> Game name, you can put everything here..

"PARENT: kof2002" If the rom is a clone from some other set, put the parent here, if the rom is the parent, put the zip
name

"ROMNAME: kof2002" --> zip name of the rom

"ROMINFO: 2 players max, uses board-ROMs from neogeo" --> ROM information, you can put everything here...

"RELEASEDBY: Eolith / Playmore Corporation (2002, Neo Geo hardware)" --> Company that released the game,

"NEOPROTECTIONXOR: EC" This is the xor value for encrypted C'ROMs (neo-cmc 42/50) protection... just some games use 
encrypted c's:

kof99 encryption module (Neo-CMC 42), or "ENCRYPTIONSCHEME: A"

Game     |   Xor
kof99    |   00
s1945p   |   05
garou    |   06
ganryu   |   07
preisle2 |   9F
mslug3   |   AD 
zupapa   |   BD
bangbead |   F8
sengoku3 |   FE 
nitd     |   FF 

kof2000 encryption module (Neo-CMC 50), or "ENCRYPTIONSCHEME: B"

Game     |   Xor
kof2000  |   00
samsho5  |   0F
samsh5sp |   0D
kof2001  |   1E 
mslug5   |   19
pnyaa    |   2E
mslug4   |   31
rotd     |   3F
svcchaos |   57    (needs extra code)
matrim   |   6A 
kof2003  |   9D    (needs extra code)
kof2002  |   EC 
If your ROM dosent use any encryption, put "NEOPROTECTIONXOR: 0"

"SWAP: XX" --> This is just for some old roms...
If the graphics are messed up and the roms arent encrypted: "SWAP: C"
If there's a black screen or a warn screen with red letters: "SWAP: P"
If both: "SWAP: PC"
If the sound is messed up: "SWAP: V"
If your ROMs dosent need SWAP, put "SWAP: xx"

"SRAM: 0" --> Generally, not needed, but when needed put "SRAM: 1", if its not needed "SRAM: 0"

"SMAPROTECTION: 0" --> If your rom has a "xxx-sma.bin" bin file, put "SMAPROTECTION: 1", if it hasnt put "SMAPROTECTION: 0"

"ENCRYPTIONSCHEME: B" --> This is only for encrypted C'ROMs:
Put "A" if the encryption is the one used on kof99 (Neo-CMC 42)
Put "B" if the encryption is the one used on kof2000 (Neo-CMC 50)
Read the "NEOPROTECTIONXOR" part to get the Xor's values and infos
If your ROM dosent use any encryption, put "ENCRYPTIONSCHEME: N"

"ALTERNATETEXT: 0" Special code for 512kb (or more) s1, if it's 512kb put "ALTERNATETEXT: 1"
Here are some games that use it:
kof2000
ct2k3sp (256kb s1 size, but it also needs)
matrim
svcchaos
kof2003 (1mb s1 size, but it also needs)
If your ROM dosent need this code, put: "ALTERNATETEXT: 0"

"TEXTROMSIZE: 0" --> This is a special code to extract the s1 from the end of the C ROMs, use it only if the rom dosent
have a s1...
"TEXTROMSIZE: 0x020000" --> if the s1 data on the C ROMs is 128kb
"TEXTROMSIZE: 0x080000" --> if the s1 data on the C ROMs is 512kb
"TEXTROMSIZE: 0x100000" --> if the s1 data on the C ROMs is 1mb
If your ROM dosent need it, put: "TEXTROMSIZE: 0"

"PCM2: 4" Special code for games that uses neo-pcm2 encription on the sound ROMs (V-ROMs)
1 --> mslug4
2 --> rotd
3 --> pnyaa
4 --> kof2002
5 --> matrim
6 --> mslug5
7 --> svcchaos
8 --> samsho5
9 --> kof2003
0x0A --> samsh5sp
if The game dosent need it, just put "0" as the "PCM2" value

"SPECIALINIT: kof2002" --> This is for extra protections needed by some ROMs..
Avaliable inits:

kof2000
cthd2003    
svcchaos
svchaosa
svcsplus
svcplus
svcplusa
svcboot
kof2002
kof2002b
kf2k4spe
kf2k4spl
kof2003
kof2003b
kof2k4ex
kof2k3up
kof10th
kof10thu
kf10thep
kof98
kof99
fatfury2
garou
garouo
matrim
rotd
pnyaa
matrimbl
mslugx
mslug3
mslug4
mslug5
ms5plus
samsho5
samsh5bl
samsh5sp
neo_pvc_bank1
If your ROM dosent need it, put: "SPECIALINIT: NE"

* To do on Dynamic List:
- Fix Preview bug
- Fix ROM check, it doesn't warn you if the roms are right or not 

"Dynamic.txt" By JiMMy_PaGe
"Dynamic List" By 404_not_found. Code updated, and improoved by JiMMy_PaGe and Shoometsu



Em portugus:
* O que  o "Dynamic List" ? 
- O Dynamic List  parecido com um loader para fba, mas apenas para Neo-Geo, que permite a voc rodar os jogos que
no esto no emu.

* Como funciona: 
- Ele usa um arquivo chamado "dynamic.ini" com algumas informaes da ROM , como um dat, o FBA l e interpreta essas 
informaes para rodar a ROM . o arquivo "Dynamic.ini" precisa estar na pasta principal do fba, ou ento no vai ser lido
pelo emu.

* Como criar um "dynamic.ini":
- Use o "Dynamic Creator Kit", voc pode pegar aqui:

* Sobre o "dynamic.ini" (apenas para experts xD :P )
- Vamos usar o dynamic do kof2002 como exemplo:

ID: 1
GAMENAME: The King Of Fighters 2002 - Challange To The Ultimate Battle
PARENT: kof2002 
ROMNAME: kof2002 
ROMINFO: 2 players max, uses board-ROMs from neogeo
RELEASEDBY: Eolith / Playmore Corporation (2002, Neo Geo hardware)
NEOPROTECTIONXOR: EC
SWAP: XX
SRAM: 0
SMAPROTECTION: 0
ENCRYPTIONSCHEME: B
ALTERNATETEXT: 0
TEXTROMSIZE: 0
PCM2: 4
SPECIALINIT: kof2002
265-p1.bin , 0x100000 , 0x9ede7323 , 1; 
265-p2.bin , 0x400000 , 0x327266b8 , 1; 
265-c1.bin , 0x800000 , 0x2b65a656 , 3;
265-c2.bin , 0x800000 , 0xadf18983 , 3;
265-c3.bin , 0x800000 , 0x875e9fd7 , 3;
265-c4.bin , 0x800000 , 0x2da13947 , 3;
265-c5.bin , 0x800000 , 0x61bd165d , 3;
265-c6.bin , 0x800000 , 0x3fdd1eb  , 3;
265-c7.bin , 0x800000 , 0x1a2749d8 , 3;
265-c8.bin , 0x800000 , 0xab0bb549 , 3;
265-m1d.bin , 0x20000 , 0x1c661a4b , 4; 
265-v1.bin , 0x800000 , 0x15e8f3f5 , 5; 
265-v2.bin , 0x800000 , 0xda41d6f9 , 5 
};

"ID: 1" --> No  o ID do cartucho,  um ID especfico pro dynamic, cada rom que voc adiciona no dynamic, vai usar um ID diferente, por exemplo, se o kof2002  a primeira rom da lista ID = 1,  se o kof2001  o segundo ID = 2 e assim por diante...

"GAMENAME: The King Of Fighters 2002 - Challange To The Ultimate Battle" --> Nome do Jogo, voc pode colocar qualquer nome aqui..

"PARENT: kof2002" Se a ROM  um clone de um outro set, coloque o set parent (principal) aqui, se a rom  o parent (principal)
coloque o zip dela mesma

"ROMNAME: kof2002" --> nome do zip da ROM

"ROMINFO: 2 players max, uses board-ROMs from neogeo" --> Informaes extras da ROM, voc pode colocar qualquer coisa aqui...

"RELEASEDBY: Eolith / Playmore Corporation (2002, Neo Geo hardware)" --> Empresa que lanou o jogo, voc pode colocar qualquer coisa aqui...

"NEOPROTECTIONXOR: EC" Esse  o "Xor value" para as C's encriptadas (proteo Neo-CMC 42 / 50 )... apenas alguns jogos usam:

Modulo de encriptao do kof99 (Neo-CMC 42), ou "ENCRYPTIONSCHEME: A"

Jogo     |   Xor
kof99    |   00
s1945p   |   05
garou    |   06
ganryu   |   07
preisle2 |   9F
mslug3   |   AD 
zupapa   |   BD
bangbead |   F8
sengoku3 |   FE 
nitd     |   FF 

Modulo de encriptao do (Neo-CMC 50), ou "ENCRYPTIONSCHEME: B"

Jogo     |   Xor
kof2000  |   00
samsho5  |   0F
samsh5sp |   0D
kof2001  |   1E 
mslug5   |   19
pnyaa    |   2E
mslug4   |   31
rotd     |   3F
svcchaos |   57    (precisa de codigo extra)
matrim   |   6A 
kof2003  |   9D    (precisa de codigo extra)
kof2002  |   EC 

Se sua ROM no apresenta esse tipo de encripto coloque: "NEOPROTECTIONXOR: N"

"SWAP: XX" --> Isso serve apenas para roms velhas...
Se os grficos esto fora de ordem, e no so encriptados: "SWAP: C"
Se aparece uma tela preta, ou um tela escrito "Warning" em vemelho: "SWAP: P"
Se aparecer os dois: "SWAP: PC"
Se o som est estranho: "SWAP: V"
Se a ROM no precisar de SWAP, coloque "SWAP: XX"

"SRAM: 0" --> Geralmente no  preciso, mase se precisar coloque: "SRAM: 1", se no precisar: "SRAM: 0"

"SMAPROTECTION: 0" --> se sua ROM tem um arquivo parecido com: "xxx-sma.bin" bin file, coloque: "SMAPROTECTION: 1", se no
tiver coloque "SMAPROTECTION: 0"

"ENCRYPTIONSCHEME: B" --> Esse codigo  apenas para as C'ROMs encriptadas:
Coloque "A" se a proteo  a mesma usada no kof99 (Neo-CMC 42)
Coloque "B" se a proteo  a mesma usada no kof2000 (Neo-CMC 50)
Leia a part do "NEOPROTECTIONXOR" para pegar os Xor's values e informaes
Se sua ROM no apresenta esse tipo de encripto coloque: "ENCRYPTIONSCHEME: N"

"ALTERNATETEXT: 0" Codigo especial para s1's de 512kb (ou mais)
Alguns games que possuem s1 de 512kb:
kof2000
ct2k3sp (usa uma s1 de 256kb, mas tambem precisa do codigo)
matrim
svcchaos
kof2003 (usa uma s1 de 1mb, mas tambem precisa do codigo)
Se sua rom no apresenta s1 de 512kb (ou mais) coloque:  "ALTERNATETEXT: 0"

"TEXTROMSIZE: 0" --> Codigo para extrair a s1 do fim das C ROMs, use apenas se a ROM no tiver s1
"TEXTROMSIZE: 0x020000" --> se a s1 nas C ROMs  128kb
"TEXTROMSIZE: 0x080000" --> se a s1 nas C ROMs  512kb
"TEXTROMSIZE: 0x100000" --> se a s1 nas C ROMs  1mb
Se sua ROM no precisa desse codigo, coloque: "TEXTROMSIZE: 0"

"PCM2: 4" Codigo especial para os jogos que possuem v'roms encriptadas
1 --> mslug4
2 --> rotd
3 --> pnyaa
4 --> kof2002
5 --> matrim
6 --> mslug5
7 --> svcchaos
8 --> samsho5
9 --> kof2003
0xA --> samsh5sp
Se o jogo no apresentar o neo-pcm2, coloque o valor como "0" no "PCM2"

"SPECIALINIT: kof2002" --> Isso serve para roms que apresentam protees extras:
Inits suportados pelo FBA:

kof2000
cthd2003    
svcchaos
svchaosa
svcsplus
svcplus
svcplusa
svcboot
kof2002
kof2002b
kf2k4spe
kf2k4spl
kof2003
kof2003b
kof2k4ex
kof2k3up
kof10th
kof10thu
kf10thep
kof98
kof99
fatfury2
garou
garouo
matrim
rotd
pnyaa
matrimbl
mslugx
mslug3
mslug4
mslug5
ms5plus
samsho5
samsh5bl
samsh5sp
neo_pvc_bank1

Se sua ROM no precisa disso, coloque: "SPECIALINIT: NE"

* O que falta ser feito Dynamic List:
- Corrigir bug com o preview
- Corrigir checagem de ROMs, o dynamic roda a rom sem te avisar se o CRC e o tamanho esto errados

"Dynamic.txt" By JiMMy_PaGe
"Dynamic List" By 404_not_found. Codigo, e melhorado por JiMMy_PaGe e Shoometsu

       