NEO-PVC: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
m (Fixed link to MAME source code)
(Functions (from MAME's source))
 
Line 1: Line 1:
[[File:brd_pvc.jpg|thumb|NEO-PVC chip. Picture courtesy of [[http://www.mvs-scans.com MVS-Scans]].]]
{{ChipInfo
|picture=brd_pvc.jpg
|pkg=QFP144
|manu=fujitsu
|date=2003 ?
|used_on={{PCB|Cartridges}} {{PCB|MV1FZS}}...
}}


QFP144 chip connected to the [[P ROM]]s in [[ROM-Only boards|ROM-only]] arcade boards and late cartridges [[SNK vs. Capcom - SVC Chaos]], [[Metal Slug 5]] and [[The King of Fighters 2003]]. Used for bankswitching and security.
Chip used for bankswitching and security. Connected to the [[P ROM]]s in [[ROM-Only boards|ROM-only]] boards and late cartridges: [[SNK vs. Capcom - SVC Chaos]], [[Metal Slug 5]] and [[The King of Fighters 2003]].  


Has 8KiB of integrated RAM organized as 4096 16bit words.
Has 8KiB of embedded RAM organized as 4096 16bit words (maybe just 4080 words ?).


From [[https://github.com/mamedev/mame/blob/master/src/devices/bus/neogeo/prot_pvc.cpp#L83 MAME's source]]:
From [[https://github.com/mamedev/mame/blob/master/src/devices/bus/neogeo/prot_pvc.cpp#L83 MAME's source]]:


Accesses are made in the $2FE000~$2FFFFF range:
Accesses are done in the [[68k memory map|$2FE000~$2FFFFF range]].
 
=Bankswitching=
 
The data mapped to $200000~$2FDFFF comes from ROM address {$2FFFF2, $2FFFF0 MSB} + $100000.
 
''Example'': if $0131 is written to $2FFFF2, and $2A00 is written to $2FFFF0, the data mapped starts at $11312A.
 
=Protection: color=
 
The chip provides two functions to pack and unpack colors. This is merely to make the games depend on the hardware to work correctly.
 
* Pack: Write ---GGGGg---BBBBb to $2FFFE8, and -------D---RRRRr to $2FFFEA, get the regular [[palettes|palette]] word from $2FFFEC (DrgbRRRRGGGGBBBB).
* Unpack: Write a palette word to $2FFFE0, get R/G/B values from $2FFFE2 (000GGGGg000BBBBb) and $2FFFE4 (0000000D000RRRRr).
 
=Protection: scrambling=
 
The P ROMs data is scrambled. Unscrambling is done on the fly by this chip. Each game has a different algorithm/table.


<pre>
COMBINE_DATA(&state->m_pvc_cartridge_ram[offset] );
if (offset == 0xff0)
pvc_prot1(space->machine());
else if(offset >= 0xff4 && offset <= 0xff5)
pvc_prot2(space->machine());
else if(offset >= 0xff8)
pvc_write_bankswitch(space);
</pre>
[[Category:Chips]]
[[Category:Chips]]

Latest revision as of 21:20, 23 June 2018

Package QFP144
Manufacturer
First use 2003 ?
Used on Cartridges MV1FZS...

Chip used for bankswitching and security. Connected to the P ROMs in ROM-only boards and late cartridges: SNK vs. Capcom - SVC Chaos, Metal Slug 5 and The King of Fighters 2003.

Has 8KiB of embedded RAM organized as 4096 16bit words (maybe just 4080 words ?).

From [MAME's source]:

Accesses are done in the $2FE000~$2FFFFF range.

Bankswitching

The data mapped to $200000~$2FDFFF comes from ROM address {$2FFFF2, $2FFFF0 MSB} + $100000.

Example: if $0131 is written to $2FFFF2, and $2A00 is written to $2FFFF0, the data mapped starts at $11312A.

Protection: color

The chip provides two functions to pack and unpack colors. This is merely to make the games depend on the hardware to work correctly.

  • Pack: Write ---GGGGg---BBBBb to $2FFFE8, and -------D---RRRRr to $2FFFEA, get the regular palette word from $2FFFEC (DrgbRRRRGGGGBBBB).
  • Unpack: Write a palette word to $2FFFE0, get R/G/B values from $2FFFE2 (000GGGGg000BBBBb) and $2FFFE4 (0000000D000RRRRr).

Protection: scrambling

The P ROMs data is scrambled. Unscrambling is done on the fly by this chip. Each game has a different algorithm/table.