                 * * * * * * * * * * * * * * * * * * * * * * * * * * 
                 *                                                 *
                 *   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 português:
* 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
não estão no emu.

* Como funciona: 
- Ele usa um arquivo chamado "dynamic.ini" com algumas informações da ROM , como um dat, o FBA lê e interpreta essas 
informações para rodar a ROM . o arquivo "Dynamic.ini" precisa estar na pasta principal do fba, ou então não 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" --> Não é o ID do cartucho, é um ID específico 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" --> Informações extras da ROM, você pode colocar qualquer coisa aqui...

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

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

Modulo de encriptação 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 encriptação 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 não apresenta esse tipo de encriptção coloque: "NEOPROTECTIONXOR: N"

"SWAP: XX" --> Isso serve apenas para roms velhas...
Se os gráficos estão fora de ordem, e não são 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 não precisar de SWAP, coloque "SWAP: XX"

"SRAM: 0" --> Geralmente não é preciso, mase se precisar coloque: "SRAM: 1", se não precisar: "SRAM: 0"

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

"ENCRYPTIONSCHEME: B" --> Esse codigo é apenas para as C'ROMs encriptadas:
Coloque "A" se a proteção é a mesma usada no kof99 (Neo-CMC 42)
Coloque "B" se a proteção é a mesma usada no kof2000 (Neo-CMC 50)
Leia a part do "NEOPROTECTIONXOR" para pegar os Xor's values e informações
Se sua ROM não apresenta esse tipo de encriptção 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 não 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 não 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 não 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 não apresentar o neo-pcm2, coloque o valor como "0" no "PCM2"

"SPECIALINIT: kof2002" --> Isso serve para roms que apresentam proteções 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 não 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 estão errados

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

       