Chameleon2 is an advanced sharing protocol developed by Butter-Team, the creators of the Newcs softcam/server.
This protocol lets you add users or peers to connect to other cards. Chameleon2 intelligently spiders cards in your network and decides for you if cards are shareable from your position. If you are too far away from a certain card, Chameleon2 will disallow access to it, effectively load-balancing traffic on the Chameleon2 network. Want to get closer to a certain card? Add users or peers with your desired card.
This effectively stops all “hop” lingo which runs havoc on other protocols. You know: I have this or that card on this many hops… The truth is, these “hop” settings in other protocols can be circumvented with certain “hopless” clients. The protocols these clients use have no or bad load-balancing, which sometimes results in real raids on popular cards.
You need Newcs server and mgcamd client to use chameleon2 protocol. Other emu’s will hopefully start supporting cham2 in the future.
Chameleon2 won’t send an ECM if the local LAN doesn’t have at least ONE ident available for all. You NEED a local card to share via cham2 protocol. Sorry, no leechers ![]()
Setup is done in newcs.xml. You add this section if it isn’t already there:
<chameleon2> <server> <port>1234</port> <enabled>yes</enabled> <realm>myShares</realm> </server> </chameleon2>
-
Port: Choose a port between 0-65535 (pref. above 1024) for incoming trafic
-
Enabled: no comment

-
Realm: In the future, cham2 will let you define “realms” or zones to share in.
Chameleon2 has “users” and “peers”. You and your contact decide who shall be a user and who shall be a peer. You only need one user and one peer to reshare in both directions. This is somewhat different from what you are used to in newcamd or cccam protocols.
This is your newcs.xml:
<chameleon2> <server> <port>1111</port> <enabled>yes</enabled> <realm>myShares</realm> </server> <peer> <hostname>some.box.com</hostname> <port>2222</port> <name>username</name> <password>password</password> <realm>myShares</realm> </peer> </chameleon2>
This is someone else’s newcs.xml:
<chameleon2> <server> <port>2222</port> <enabled>yes</enabled> <realm>myShares</realm> </server> <user> <name>username</name> <password>password</password> <realm>myShares</realm> </user> </chameleon2>
-
You are a user on some.box.com. Your peer gave you his ip-address, port and user data to login.
-
Your peer added you as a user by simply filling in your user data.
-
Yes, only one person has to define an ip-address and port for this to work in both directions

-
Both need to define the <server> section (as explained above) to make cham2 work.
-
Note that the <port> in your peer data corresponds to the peer’s <port> in his <server> settings.
< note>Only ONE user and ONE peer is necessary to reshare. </note>
Let’s assume you are now the peer adding a user:
<chameleon2> <server> <port>1111</port> <enabled>yes</enabled> <realm>myShares</realm> </server> <peer> <hostname>some.box.com</hostname> <port>2222</port> <name>username</name> <password>password</password> <realm>myShares</realm> </peer> <user> <name>username2</name> <password>password2</password> <realm>myShares</realm> </user> </chameleon2>
-
You have to define a <server><port> and set your router to forward this port to your box (if applicable)
And this is what your new user fills in:
<chameleon2> <server> <port>3333</port> <enabled>yes</enabled> <realm>myShares</realm> </server> <peer> <hostname>my.box.com</hostname> <port>1111</port> <name>username2</name> <password>password2</password> <realm>myShares</realm> </peer> </chameleon2>
I think by now you get how it works ![]()
Newcs detects most cards automatically, but there are exceptions. That’s why you should add a list of <virtualcards> in <chameleon2>.
<chameleon2> ... </server> <virtualcards> <!-- CAIDS *not* build-in, in the *standard* newcs-build list --> <vc><caid>0100</caid><provider>00000068</provider></vc> <!-- Cyfra + (13E) --> <vc><caid>0100</caid><provider>00003311</provider></vc> <!-- CSAT France (19.2E) --> <vc><caid>0100</caid><provider>00004106</provider></vc> <!-- Digital+ (19.2E) --> <vc><caid>0500</caid><provider>00032000</provider></vc> <!-- Sexview (13E) --> <vc><caid>0500</caid><provider>00021110</provider></vc> <!-- ART Int. (13E)) --> <vc><caid>0500</caid><provider>00023B00</provider></vc> <!-- Satisfactions/DontPanic (13E/9E) --> <vc><caid>0500</caid><provider>00FFF400</provider></vc> <!-- GC/TPS/ART/BiS/TNT/CSAT (13E/19E) --> <vc><caid>0500</caid><provider>00020810</provider></vc> <!-- BiS/XXL (19E/13E/5W/12W) --> <vc><caid>0500</caid><provider>00023100</provider></vc> <!-- NSAB (5E) --> <vc><caid>0500</caid><provider>00032820</provider></vc> <!-- CSAT France (19.2E) --> <vc><caid>0622</caid><provider>00000000</provider></vc> <!-- Canal+ NL/Euro1080 (19E/23E/7E) --> <vc><caid>1702</caid><provider>00000000</provider></vc> <!-- Premiere Nagra 3 (19.2E) --> <vc><caid>1801</caid><provider>00000000</provider></vc> <!-- Digital+ (19.2E/30W), Polsat (13E), Nagra CAID --> <vc><caid>0919</caid><provider>00000000</provider></vc> <!-- Sky Italy (13E)) --> <vc><caid>09C4</caid><provider>00000000</provider></vc> <!-- Premiere NDS (19.2E) --> </virtualcards>
You need a local card for cham2 to reshare over wan. Leeching is not allowed with this protocol (thank God
).
Go to newcs.xml and make sure these settings are correct for every cardreader:
<device> <name>Your Cardreader</name> <type>sci</type> <mhz>357</mhz> <node>/dev/sci0</node> <parity>odd</parity> <reset>normal</reset> <export>Yes</export> <enabled>Yes</enabled> <blocksa>No</blocksa> <blockua>No</blockua> <blockga>No</blockga> <crypto-special>No</crypto-special> <PTShandshake>No</PTShandshake> <carddetect>yes</carddetect> <newcamd_port>15050</newcamd_port> <autosid>Yes</autosid> <Seca-PPV>no</Seca-PPV> <sid> <allow></allow> <deny></deny> </sid> <priority>round</priority> </device>
-
export, enabled and carddetect should be set to yes for obvious reasons
-
You have to define a newcamd_port for your local card! If you share newcamd protocol over wan (no need really with cham2
) then you have to setup your router to forward this port to your box (if applicable) -
In the above example nds & irdeto specific settings have been removed (I have a Seca card: please ask elsewhere)
-
Other settings you see are recommended by butter-team. Don’t experiment if you don’t know what you’re doing!
Also setup a newcamd user for your local card:
<newcamdserver> <enabled>Yes</enabled> <name>newcs</name> <deskey>01 02 03 04 05 06 07 08 09 10 11 12 13 14</deskey> <user> <name>User1</name> <password>Pass1</password> <au>on</au> <sidoverride>on</sidoverride> <readers> <allow>Your Cardreader</allow> </readers> <spider>No</spider> <rate>0</rate> <cardlevel>1</cardlevel> </user> </newcamdserver>
-
rate allows you to throttle ECM requests. Set to “0” to disable. Cham2 will NOT work properly without this setting!
-
Set cardlevel to “1” to receive all the cards that are in the network. Same warning as above.
-
For newbies: some settings like deskey, user and password are better changed for security reasons.
-
Other settings are self-explanatory and/or fully explained in newcs-default.xml.
Setup the user in your mgcamd newcamd.list file:
CWS_KEEPALIVE = 300 CWS = 127.0.0.1 15050 User1 Pass1 01 02 03 04 05 06 07 08 09 10 11 12 13 14
-
127.0.0.1 is your local machine
-
15050 is your newcamd_port
-
The rest are your local user, pass and deskey