A Hasbro classic, now in video game form!
Debugging File#
|
|
This needs some investigation. |
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#
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
References#
- Matthews, Robin; Rigby, Paul. The PC Games Bible. Wilmslow: Sigma Press, 1992.↩︎
- CD-i : le PDG de Philips Multimédia Publishing France s'explique - Tilt, Number 105, September 1992↩︎
- CDi : C'EST DÉJÀ AUJORD'HUI - Joystick, Number 30, September 1992↩︎
- CD-I, c'est parti ! - Science et vie micro, Number 097, September 1992↩︎
- PW Speciale CD-I Philips - MC microcomputer, Number 119, June 1992↩︎
|
The Hasbro series | |
|---|---|
|
Family Game Night | |
|
PlayStation 2 |
|
|
Wii, Xbox 360 |
Hasbro Family Game Night • Hasbro Family Game Night 2 • Hasbro Family Game Night 3 • Family Game Night 4: The Game Show |
|
PlayStation 3 |
Hasbro Family Game Night • Hasbro Family Game Night 3 • Family Game Night 4: The Game Show |
|
Misc. | |
|
CD-i |
|
|
Windows |
Ultimate Yahtzee • Boggle CD-ROM • Sorry! • Classic Board Games • Battleship, Perfection, and Trouble |
|
Game Boy Advance |
|
|
Plug & Play |
|
|
See Also | |
|
Action Man • Battleship • Candy Land • Clue • Dungeons & Dragons • Game.com • G.I. Joe • Jinsei Game • Magic: The Gathering • Monopoly • My Little Pony • NERF • Peppa Pig • Risk • Scrabble • Tonka • Transformers • Trivial Pursuit |
|