Repository navigation
Kit 6 (2026-10-11)
WCCF 2010-11 (Rev D) on a PC - kit 6. Community-made tools for your own copy of the game: a launcher,
stand-ins for the cabinet's hardware and an on-screen panel, so the game's server, the projector and a player
cabinet (seat 1) run on one Windows PC - or play online on a shared server. The game is not included. Download
WCCF-2010-11-kit-6.zip below.
Updating
Close the game, open SETUP.exe and pick the new kit under UPDATE (your club, keys and settings stay); it sets up
the game folder again, and the English if you use it. From a kit without that (Kit 5.4 and older): unzip the new kit
over the old folder, then SETUP.exe - it also removes the old .bat files and ENGLISH.exe.
You need
Windows 10/11 (64-bit) · your own copy of the game, Rev D, as a folder of files · DirectX June 2010 runtime (setup
tells you if it is missing). Python is inside the kit.
Play
PLAY.exe (two windows: the projector and seat 1; online only seat 1 - no projector on players' PCs). Quit by
closing the game's window. Online: SETTINGS > NEXT START: ONLINE, type the server's address, then RESTART
NOW (click it twice).
The zip's SHA-256: 2489cd1a753021aaf439c9708f46e4af631478acc854c1e68293e021906dc2ac
What's new
Changed
- Online: no PC gets the projector any more. The first player to join used to run it as a second window; now every
PC runs only its own cabinet. The seat desk always answersPROJECTOR 0(kit 5's PCs follow that too), and
PLAY.exe serversets the server'sWAIT_PROJECTOR=0- with 1 it would never start a round with no projector
connected. A projector box that joins by itself still works; it catches up at the next round.PLAY.exe local
keeps its own projector. - A start compares the game's copy of the hook (wccfk.dll, in the game and in seat1) with the kit's own and sets
the game up once if they differ - a newer kit unzipped over this one by hand no longer starts the old hook. - Hosting a server: the server program now gets the players' messages only whole. Over the internet a message can
arrive in pieces, and Sega's code for putting pieces back together is broken - the most likely cause of the server
crash that cuts every player ("WCCF CONTROL NOT FOUND", Error 3000). The kit's hook (wccfk.dll) now holds the
pieces and hands the server each message only once all of it is there; bytes that cannot be a message are skipped,
and nobody is disconnected for them. WCCF_WHOLEMSG=0 turns it off. The crash was not reproduced on purpose, so this
is the likely cause removed, not a proven fix; the keeper's restart stays the safety net. - Simpler folders. The kit's Python is in
code\(wasscripts\); every program, the panel included, is in
programs\(wasbin\andoverlay\); the panel's picture is inart\; the English tables are inlanguages\english\(one folder per language); the catalogue and card pictures SETUP
makes from your game are indata\cache\. Updating from an older kit and pressing set up moves your catalogue and
card pictures over (no waiting for them to be made again) and removes the old kit's leftover files and folders -
anything of yours in those folders stays. Insidecode\, the kit's Python is in plain folders with plain names:
cards\,hardware\,online\,server\,helpers\(_keys_seat1.pyis nowhardware\keyboard.py, and so on). - Updating from an older kit by unzipping it by hand (or saying no to "set up now?") is fine: the first PLAY sets
the game up for the new helper by itself, as SETUP would, instead of starting the old one Windows Defender deletes. - The kit's helper no longer gets deleted by antivirus. It used to sit beside the game pretending to be a Windows
file (winmm.dll), which is how some malware sneaks in - so Windows Defender flagged and deleted it, and the game
would not start. Now the helper has its own honest name (wccfk.dll) and SETUP simply points the game at it (a
tiny, exact change it can undo). Turning English on or off keeps it. Nothing else about your game is changed. - Fewer things that look suspicious to antivirus: the panel no longer writes screenshots of the game to disk
(wccfpanel_frame.bmp,wccfpanel_atlas.bmp), the scene helper no longer runstasklist, and SETUP now also
removes the two old files Windows Defender flagged (overlay\inject.exe,bin\logowin.exe) when you unzip a new
kit by hand.
Added
-
ITALIANO in SETUP.exe's GAME LANGUAGE (and
english.py on it): the game in Italian. Each line comes from this kit's
Italian (languages\italian\screen_text.tsv, 4,477 lines), else Sega's own Italian of the older European WCCF
(languages\italian\sega_rstring.tsv, 2,705 lines with the same Japanese), else the kit's English - never
Japanese. The game's font has no accented letters, so the Italian writes them with an apostrophe (perche',
citta'). Player and CPU team names are the English ones; money stays in dollars. The SETTINGS panel still offers
only ENGLISH and JAPANESE. -
Every crash of the game, the server or a match engine leaves two memory snapshots in
data\dumps(debugger.py):
a lean one (every thread's stack and the memory it points to - about 1 MB, 90 KB zipped) and a full one (also the
program's globals - 3.5 MB for the server, 36 MB for a cabinet), the newest 5 of each. The report printed at a
crash says where; the snapshot holds what is needed to find why. Tested:source\test_crash_dump.pycrashes a
program on purpose under the real launcher. -
The cabinet's link to the server is watched all the time (wccfpanel.dll):
data\logs\server_link.txtgets a dated
line when it comes up and when it drops - before, nothing recorded the player's side of an Error 3000. -
Online, a run that ended badly (a crash, or the server link lost) sends this PC's logs to that server's log inbox by
itself, with the newest lean snapshots and areport.txtsaying why - what SEND LOGS sends: never the club card,
names on the PC blanked (in a snapshot, with as many underscores, so it still opens). A server out of reach: kept
asdata\report.pendingand sent at the next join.auto_logs=0indata\panel.txtturns it off. Tested on a test
server: a killed seat (sent at once), a dropped server (kept, then sent at the next join).
Fixed
- A stop no longer loses the end of a cabinet's debug log (
data\logs\_dbg_client_seat1.txt): the launcher kept it
in memory and a stop ends the launcher at once - after an Error 3000 the file was empty. It is now written
whenever the game is not waiting on it, so SEND LOGS carries the cabinet's side too. - English: the players' full names (the card name, e.g. Mahamadou DIARRA) were still in katakana; they now use
Sega's own Latin spelling, accents dropped, like the short names. The second katakana full name stays: the game
looks player partnerships up by it (partnership.bin). - English: the last 22 Japanese lines a player can meet - the win/loss/draw marks on the manager's career record
(W, L, D), the weekdays Monday to Saturday, and 12 supporter-group words (Heroes, Stars, Samurai, Tigers, ...).
7,200 lines are now in English; only the debug menus stay Japanese. english.py checknames the screen lines still in Japanese, so a gap shows without a survey.- Not in this kit yet: the six team stats around the hexagon and OK / BACK redrawn in English (and Italian). The
redrawing works, but with the redrawn pictures in the game's archive the game gave every club card straight back
instead of reading it - so it is switched off, and those pictures stay Japanese. The code is kept for a fix
(WCCF_PICTURES=1turns it on to test one). - The game no longer refuses to start just because the card CATALOGUE has not been built. The catalogue is only the
panel's card browser; now the game starts and only the catalogue is empty (SETUP rebuilds it). - The card-overwrite switch (SW1) no longer has a key by default. On Sega's card-recovery screen SW1 means "write
the backup over your Club Card", and it used to be the8key - one stray press could roll your card back. SW1
and SW2 now have no key unless you set one in KEYS. - Closing the game during a manager transfer now warns you too. When your contract ends and the game is making your
new club, closing the window used to close with no warning and cost that new club a bad ending - the warning only
watched your old card. Now it (and the SETTINGS > RESTART NOW gate) watch both cards. - The game no longer fails to start because a log file is open. If something is holding a file in the logs folder
(an antivirus, or you viewing a log), the kit sets that folder aside and starts anyway, instead of failing every
time until the file is released. (source\test_rotate_logs.py.) - Online: your live match can no longer be hijacked. The match relay now treats a seat as belonging to the address
that holds it, so a stranger sending "I am seat n" from somewhere else is ignored while you are playing. Before,
anyone could redirect another player's match to themselves and drop them to a CPU game. (source\test_relay.py.) - Online: a brief network blip no longer loses your seat. The kit now reconnects to the server's seat desk and
re-claims the same seat; before, one missed reply ended the hold for good and the server freed your seat under
the running game. (source\test_seat_lease.py.) - Online: two PCs can no longer land on the same seat. If the server's seat desk was slow or gave an odd answer,
the kit used to start on seat 1 anyway - so a second PC could take seat 1 and one of them never got into the game.
Now it only plays "as before" when a server genuinely has no seat desk; otherwise it stops with a clear message
and offers local play. (source\test_take_seat.py.) - A long game is no longer force-closed. Before, any session was killed after 12 hours even in the middle of a
match, which costs your club card a bad ending. Now a run ends only when you close the game window. - Your club card can no longer be lost to a busy file. When the card cannot be saved to disk because something else
(an antivirus scan, a backup tool, a search indexer) is holding the file, the kit now keeps your newest card in
memory and tries again - the card on disk stays your last good one. Before, it would write the card straight over
the file as a last resort, which could leave a half-written, unusable card. - A damaged or wrong-size card file no longer locks you out. The game now still opens with a new blank card (so you
can use CLUB CARD), and your unreadable file is kept safe as a.badcopy so it can be recovered. Before, the game
would simply fail to start, with nothing on screen to say why.
(The card reader now has an automated test for both -source\test_icc_reader.py.)
Every change: CHANGELOG.md