Connect Four (CD-i)
Connect Four |
---|
Developer: Capitol Disc Interactive This game has hidden development-related text. |
A Hasbro classic, now in video game form!
Debugging File
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Can this debug mode be reactivated in some way? |
Present among the disc's files is cdi_cfd - a variant of the used file cdi_cf - which contains the code and strings for a debugging mode. It would've been controlled using a keyboard and a CD-i dev kit.
The file can be sorted into three distinct chunks. Chunk 1 deals with the Connect Four game itself, though there's not much here due to its simplicity.
TAKE BACK @ %d %d CF_board.c TAKE BACK PLAYER %d TYPE %d last_move %d cur_move = %d grid_counts O %d 1 %d Board Piece Bumper status %d CF_init.c cf_cur_player %d cf_cur_level %d cf_players[%d] = %d cf_player_colors[%d] = %d b - Board dump c - CTE m - Mem dump d - DMSPIT h - HSSPIT n - New board p - Print players s - SMSPIT t - Task dump x - COMP vs COMP Crop & Move CF_utils.c crop_and_move: CV_DM_CREATE fails! dm type %d DISC ERROR STAT 0x%x WINNING @ (%d %d) CF_player.c BLOCKING @ (%d %d) FOUND DOUBLE STACK GIVEAWAY %d @ (%d %d) WIN GIVEAWAY @ (%d %d) FOUND DOUBLE STACK GIVEAWAY FOR %d @ (%d %d) WIN BLOCKAGE @ (%d %d) FOUND A SPOT TO MAKE A FORCE MOVE (%d %d) FOUND A SPOT TO BLOCK A FORCE MOVE (%d %d) VALUE %d = %5d %5d %5d FINAL %5d %5d %5d ACK! I'M DOOMED! ACTUAL MOVE: %d VALUE %d DOUBLE STACK COL %d CF_slide_play: playing rec: %d vchan: %d achan: %d CF_slide.c SLIDE DONE Effect %d Buf %d Param %d ABORTING SLIDESHOW
Chunk 2 focuses on the game engine and interacting with the CD-i.
bumper 0 CV_cdibumper.c Error creating bumper 0 bumper 1 Error creating bumper 1 overlay Error creating overlay %d Failed CV_rp_play Uncompressing dyuv Illegal FX CV_mm_send failed for letter requeue (type = 0x%x) cp_flush.c CV_cp_move: Can't send SET_POS letter. cp_move.c CV_cp_move: Can't evaluate new hotspot position. CV_rp_play: Invalid path %d rp_play.c CV_rp_play: Unable to load map information CV_rp_play: INVALID AUDIO CHANNEL : %d CV_rp_play: Could not allocate play_loc structure CV_rp_play: lseek reports byte offset %d CV_rp_play: Invalid channel spec for rtfpath %d CV_rp_play: Start at sector %d CV_rp_play: Could not determine location CV_rp_play: task_id = %d CV_rp_play: ss_play fails rtfpath = %d stat = 0x%x sig = %d rec = %d chan = 0x%x achan = 0x%x CV_rp: map_loc: Invalid rtfpath %d PLAY_LOC: Record : %d Channel : %d First alarm : %d Trigger : %d Alloc Count Resp Video : %d %d %d Audio : %d %d %d Data : %d %d %d FX : %d %d Video : %d %d %d Audio : %d %d %d Data : %d %d %d FX : %d %d CV_rp_play: Could not allocate array of dmap pointers vd_count = vd_alloc = %d CV_rp_play: Could not allocate array of smap pointers CV_rp_play: Could not allocate array of data pointers Restarting clock ERROR Occurred during play !!!! Stat = 0x%x errno = %d CV_rp_play : play done video : %d/%d audio : %d/%d data : %d/%d CV_rp_play : pcb_handler: Funny stat : 0x%x cm_make_hotspot.c CV_fx_cursor_move: NULL params! CV_fx_cursor_move.c CV_fx_cursor_move: NULL param list! Can't allocate root hotspot resource! CV_hs_root.c hs_do_event: checking type: 0x%08x hs: 0x%08x hs_do_event: doing type: 0x%08x hs: 0x%08x ERROR disc_error.c FONT8X8 CV_sigsend: Unhandled signal received : %d signal.c CV_tasks: execute (0x%x) recursion (%d) task %d:0x%x Could not allocate task - task array full taskinst.c task_num %d init 0x%x exec 0x%x term 0x%x data 0x%x rp_attach_buffer: Reusing video buffer %d for %d rp_attachbuf.c rp_attach_buffer: Create video : x : %d y : %d size : %d Type 0x%x [%03d:%02d:%04d] CV_rp_play: WARNING dm_create fails !!!! rp_attach_buffer: Video %d already exists. BufSz = %d sectors rp_attach_buffer: Reusing audio buffer %d for %d rp_attach_buffer : Create audio : size : %d Type 0x%x CV_rp_play: CV_SM_CREATE fails rp_attach_buffer: audio %d already exists. BufSz = %d sectors rp_attach_buffer: Reusing data buffer %d for %d rp_attach_buffer: Create data : size : %d CV_rp_play: WARNING malloc fails CV_rp_play: malloc fails rp_attach_buffer: data %d already exists. BufSz = %d sectors at 0x%x rp_clock_start: alm_id = %d sig = %d rp_clock.c rp_clock_stop: cancel alm_id = %d sig = %d rp_clock: Waiting for buffer %d type %d rp_clock : fx_count = %d tid = %d rp_clock: Next alarm at %d sectors from now sig = %d CV_rp_free: Could not get channel pointer rp_free.c CV_rp_free: Invalid asset type %d CV_rp_free: Index %d out of bounds, type %d CV_rp_get_channel: Invalid path %d rp_getchan.c CV_rp_get_channel: Invalid rtrnum %d CV_rp_get_channel: Channel %d in rtr %d not found rp_load_info: Loading path %d rp_loadinfo.c rp_play_loc_alloc: OUT OF PLAY LOC STRUCTURES!!! rp_locs.c rp_play_loc_alloc: using loc [%d] rp_map_alloc: size = %d bytes rp_mapalloc.c rp_map_open: addr = 0x%x rp_mapopen.c rp_map_open: reusing 0x%x for map rp_map_open: Error allocating map memory map size: %d bytes, seeking past header CV_RP: Failed reading map file...retrying Looking for map at end of RTF... Can't seek to last sector of RTF! Can't read end mapfile! ...seeking back %d sectors Can't seek RTF?!? Can't read end map header! End map file successfully read! CV_RP: Failed reading end map file...retrying CV_RP: rp_mapopen, Giving up... CV_RP: Could not read header of map file rp_mapsize.c CV_RP: WARNING INVALID CONFIGURATION NUMBER IN MAP FILE rp_map_size for path %d is %d bytes CV_rp_open: Seek to 0 rp_open.c CV_rp_play : opening %s... CV_rp_play : Could not open '%s' Open succeeds .map CV_rp_play: Opening info file %s... CV_rp_play: Could not open info file %s rp_play_done: NULL play_loc rp_playdone.c rp_play_done : video : %d audio : %d data : %d done %d stat %d rp_play_done: invoking done func 0x%x CV_rp_task: releasing play_loc[%d] rp_play_done: Setting rp_play_loc to NULL CV_rp_stop: releasing play_loc[%d] rp_stop.c CV_rp_task: NULL play loc rp_task.c CV_rp_task: vd_resp=%d nmaps = %d CV_rp_task: ad_resp=%d nmaps = %d CV_rp_task: data_resp=%d nmaps = %d CV_rp_task: fx_resp=%d nmaps = %d CV_rp_task: invoking done func 0x%x CV_rp_task: releasing play_loc[%d] CV_rp_task: setting rp_play_loc to NULL CV_rp_unlink: Could not get channel pointer rp_unlink.c CV_rp_unlink: Invalid asset type %d CV_rp_unlink: Index %d out of bounds, type %d CV_malloc grabbing %d bytes from %x (%s:%d) CV_free: INVALID POINTER : 0x%x SYNC : 0x%x (%s:%d) CV_free releasing %d bytes at 0x%x (%s:%d) Can't ss_enable controls CV_root.c Load module %s:%d applinit.c CV_appl_init: Unable to load module: %s into plane %d Open file %s CV_appl_init: Unable to open file '%s' pal_bumper.map ntsc_bumper.map Open bumper map file %s playbumper.c Unable to open map file %s Unable to read bumper map information Allocated %d pcls at 0x%x first asset @ %d Loading bumper into plane %d Unable to load bumper %s cdi_bumpdata Unable to link to bumper data module Bumper fork failed!!! PCB error stat = 0x%x Error in PCL %d CFREE: _srtmem error %d 0x%x cfree.c CV_vd_open : csd_devname fails vd_open.c CV_vd_open : Could not open %s can't get name of monitor. vd_compat.c can't get monitor parameters. LI= can't determine the monitor type. 625 TV CV_cp_hndlr: letter not an event. Type = %d cp_hndlr.c Can't create mailbox. cp_install.c CP install failed. cdi_cv_cp cdi_cp_mail CV_cp_mail: Can't send letter for type %d. cp_mail.c CV_cp_qsize: Can't send Q_SIZE letter. cp_qsize.c CV_cp_setpos: Can't send SET_POS letter. cp_setpos.c CV_cp_setpos: Can't send SET_POS letter. cp_setlimits.c CV_cp_mail failed for query request. cp_status.c CV_mm_send failed for letter requeue (type = 0x%x) %s: Send_letter failed with type = 0x%x mm_send.c cdi_cv_timer hdm_save.c
Chunk 3 is mostly made up of a comprehensive CD-i graphics editor. It also has some more general, Chunk 2-esque strings near the end.
CV_dm_size: NULL drawmap supplied. dm_size.c CV_dm_show: Drawmap is NULL dm_show.c Must use plane B for RGB. CV_dm_show: bad image type 0x%x in dmap %d CV_dm_show: Drawmap line is bad CV_dm_show: Can't allocate clut buf. scr_open.c scr_close.c Couldn't load font module for bitmap display. textinit.c Quit New Control Table Dissassemble Enter Instruction Help Search for Instruction Insert NOPs into the LCT 1.02 CV control table editor V%s Starting line? Number of lines? 8 (normal) 4 (double) 8 (high) Half Full Black Blue Green Cyan Red Magenta Yellow White OFF CLUT8 CLUT7/RL7 CLUT7/RL7 (Dual) DYUV CLUT4/RL3 RGB555 QHY END IFCA IFCB Matte Flag Off Matte Flag On Matte Flag Off + IFCA Matte Flag On + IFCA Matte Flag Off + IFCB Matte Flag On + IFCB 1 2 A over B B over A x2 x4 x8 x16 Normal Runlength Mosaic Bit = 0 Bit = 1 CKey = FALSE CKey = TRUE MFlag 0 off MFlag 0 off & CKey FALSE MFlag 0 on MFlag 0 on & CKey TRUE MFlag 1 off MFlag 1 off & CKey FALSE MFlag 1 on MFlag 1 on & CKey TRUE off on Line? Column? clut number red value green value blue value matte register Enter opcode matte flag icf x position Enter brightness Enter color clut bank Not allowed! Enter mode Enter pixel repeat Enter Bits/pixel icf value Enter plane A ICM Enter plane B ICM Enter # mattes external video enable pixel hold pixel hold factor Enter plane order mixing: 0=OFF, 1=ON Enter plane A TCI Enter plane B TCI y start value u start value v start value Write failed, errno=%d! FCT 0 FCT 1 LCT 0 LCT 1 PAL LCT 0 PAL LCT 1 Decode which control table? 8bpN 8 bits/pixel, Normal resolution 4bpD 4 bits/pixel, Double resolution 8bpH 8 bits/pixel, High resolution Any color can be at 1/2 intensity ?? Illegal -- Off c4 Clut 4 or RunLength 3 c7 Clut 7 or RunLength 7 77 Clut 7/7 or RunLength 7/7 (dual clut) c8 Clut 8 dv r5 qy ??? Illegal value end Ignore all commands in higher registers icfa Change ICF value for plane A icfb Change ICF value for plane B MFoff Turn Matte Flag off MFon Turn Matte Flag on offIa Turn Matte Flag off and change ICF for plane A onIa Turn Matte Flag on and change ICF for plane A offIb Turn Matte Flag off and change ICF for plane B onIb Turn Matte Flag on and change ICF for plane B nml rl RunLength enabled mos Mosaic enabled Illegal mode b0 Transparency bit 0 B1 Transparency bit 1 cF Color Key FALSE cT Color Key True m0F Matte Flag 0 FALSE m0FcF Matte Flag 0 FALSE or Color Key FALSE m0T Matte Flag 0 TRUE m0TcT Matte Flag 0 TRUE or Color Key TRUE m1F Matte Flag 1 FALSE m1FcF Matte Flag 1 FALSE or Color Key FALSE m1T Matte Flag 1 TRUE m1TcT Matte Flag 1 TRUE or Color Key TRUE Never transparent Always transparent CLUT<clut number> <red> <green> <blue> <clut number> 0 - 63 <red>, <green>, <blue> 0 - 255 72 5.5 MR<register> <op> <matte flag> <icf> <x position> <register> 0 - 7 op <matte flag> 0 - 1 <icf> 0 - 63 <x position> 0 - 1023 83 5.10.3 BKCOL <color> color 91 5.13 CLTB <bank> <bank> 0 - 3 DLS <address> 57 4.5.2.2 DPRM <mode> <pixel repeat> <bits/pixel> mode <pixel repeat> 2, 4, 8, or 16 bits/pixel 59 4.6.1 ICF<plane> <value> <plane> A or B <value> 0 - 63 79 5.9 ICM <icm A> <icm B> <# mattes> <external video> <clut bank> icm A icm B <# mattes> 1 - 2 <external video> 0 - 1 <clut bank> 0 - 1 58 LINK LCT <address> 56, Note 1 4.5.1 MCOL<plane> <red> <green> <blue> <plane> A or B <red> 0 - 255 <green> 0 - 255 <blue> 0 - 255 76 5.7.2.2 PHLD<plane> <enable> <value> <plane> A/B <enable> on/off <value> 0 - 255 86 5.11.1.1 NOP 56 PO <value> <value> B over A or A over B 75 5.7.1 SIG video interrpt 74 5.6 TCOL<plane> <red> <green> <blue> TCI <mix> <tci a> <tci b> <mix> on/of(f) tci a>, <tci b 5.7.3 YUV<plane> <y> <u> <v> <y> 0 - 255 <u> 0 - 255 <v> 0 - 255 61 4.6.2 Starting row Starting column Number of rows Number of columns Any Clut Instruction Specific Clut Number Any Matte Instruction Specific Matte Register Look for: CLUT number Matte Register Start line? Step (-1 or +1) ? Instruction not found. At line %d , column %d : %s CLUT MR BKCOL CLTB DLS DPRM ICF ICM LCT MCOL PHLD NOP PO SIG TCOL TCI YUV Choose Instruction Type: Green Book Reference: Vol. I, V.%s, page V-%s <%s> is one of: %-5s %s Allowed on plane A or B (may be set independently on each) (different opcodes on each plane) plane A only CLUT%-2d %3d %3d %3d CLTB set bank %-5d DLS 0x%-13x ICF%c %-14d LINK LCT 0x%-8x MCOL%c %3d %3d %3d PHLD%c %-3s %3d on off %-19s NOP PO %-16s B ovr A A over B SIG video interrupt TCOL%c %3d %3d %3d YUV%c %3d %3d %3d ERROR in the CT?? Black 1/2 Blue 1/2 Green 1/2 Cyan 1/2 Red 1/2 Magenta 1/2 Yellow 1/2 White Blue Green Cyan Red Magenta Yellow White BKCOL %-13s Dumping FCT #%d, starting line=%d numlines=%d %03d %s Dumping LCT #%d, start line=%d numlines=%d %03d %s CV_dm_close: drawmap %d not found on resource list CV_dm_close: dm_close fails (%d) : vpath : %d dnum : %d CV_dm_create: dm_create fails plane %d width %d height $d length %d type : %d tag : %s CV_dm_create: Could not allocate resource node OFF UNKWN CL4 CL7 CL8 RL3 RL7 DYUV RGB QHY DMID Filename Line Tag Size Plane Type X Y %4d %-10.10s %4d %-25.25s %6d %c %-5.5s %4d %4d Used plane A: %6d Used plane B: %6d Used total : %6d RECT ERECT POLY CIRC CWDG ELPS EWDG RGN BFIL FFIL CMPLX CV_hs_spit: no current hotspot tree Address: 0x%x func=0x%x, data=0x%x Hotspot Tree: HS_EV_IN HS_EV_OUT HS_EV_MOVE HS_EV_UP0 HS_EV_UP1 HS_EV_DOWN0 HS_EV_DOWN1 HS_EV_DRAG0 HS_EV_DRAG1 HS_EV_UP HS_EV_DOWN HS_EV_DRAG addr:0x%x type:%s bounds:(%d,%d)-(%d,%d) %sACTIVE IN ??? Address Size Type Tag 0x%08x-%08x %8d %-8.8s %s UNKNOWN Plane A: Plane B: FREE MODULE DMAP DMAPDESC SMAP SMAPDESC DBLOCK LINE ADR PROC MEM DEV MEM PATH BUF MOD MEM %s (line %d): WARNING: %d: %s (line %d): ERROR: %d: CV_res_open: Invalid resource type %d resource.c cdi_res CV_res_init: Could not create data module %s CV_res_find: Invalid resource type %d CV_res_close: Invalid resource type %d CV_res_close: No current resource node for type %d CV_res_close: resource not found: restype : %d node %d CV_sm_close: soundmap %d not found on resource list CV_sm_close: sm_close fails : apath : %d snum : %d CV_sm_create: sm_creat fails type %d n %d ptr 0x%x tag : %s CV_sm_create: Could not allocate resource node D_BMONO D_BSTRO ??? D_CMONO D_CTRO D_AMONO D_ASTRO SMID Filename Line Tag Type Addr Size %4d %-15.15s %5d %-25.25s %s 0x%-8x %-7d Used plane A: %6d Used plane B: %6d Used total : %6d CV_ap_open : csd_devname fails ap_open.c CV_ap_open : Could not open %s cdi_file_data Could not create CV_file_open data module fileinit.c Found an open file. name = %s path %d opened = %d fileopen.c CV_file_open: could not open %s (%d) iff2fct_clut.c strdup.c
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To investigate
Games > Games by content > Games with hidden development-related text
Games > Games by developer > Games developed by Capitol Multimedia > Games developed by Capitol Disc Interactive
Games > Games by platform > CD-i games
Games > Games by publisher > Games published by Philips > Games published by Philips Media
Games > Games by release date > Games released in 1992