Pinball (CD-i)
Pinball |
---|
Also known as: CD-I Pinball (title screen) This game has hidden development-related text. |
Pinball features four full tables made exclusively for Philips and the CD-i!
(Considering how expensive the console was, you might've been able to get a real machine for roughly the same price...)
Debugging Files
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Can this debug mode be reactivated in some way? |
Two unused files can be found on the disc, both of which contain code and strings meant for a debugging mode. This mode would've been controlled using a keyboard and a CD-i dev kit.
cdi_pinballd
The first, larger file is cdi_pinballd, a debug version of the used file cdi_pinball.
Its contents can be split into three chunks. The first one focuses on the pinball tables and their elements. Get ready to see the word 'bad' a lot.
Bad timer install on per_timer. PB_main.c Bad timer install on dim_timer. '%s' (line %d): Bad result of CV_hs_hndlr in main loop %s : Ball (%d %d) (%d %d) (%d, %d). flags: %x, stop: %d. Region %d - %d lines Line %d: %d %d b - print ball coords b - dump ball state c - cte editor d - dmspit g - go one step (step mode only) h - hsspit r - reset ball s - show hotspots with draw_hs S - toggle step mode x - increase x speed y - increase y speed Ball (%d %d) (%d %d) (%d, %d). flags: %x, stop: %d. Ball %d %d dx dy %d %d- line %d Ball %d %d dx dy %d %d POINTER state 0x%x NEW POINTER state 0x%x Bad result of CV_hs_hndlr in step mode Ball %d %d - line %d Latest intersect is %d, %d. display line %d. Dump it baby btn0_state: %d, btn1_state: %d DELAY : %d pin.rtf cdi_bumperanim Couldn't turn on video interrupts. PB_init.c Can't open rtf. Failed CV_play_bumper YOU BLEW IT. PB_intro.c warning overlay PB_psel.c Error creating warning setup overlay Error creating setup YOU BLEW IT. Failed to do pan_open! ... PB_gsel.c 's' (line %d): PB_gameload.c Bad hs create on root_hs Bad CV_hs_root on root_hs Retrying ball allocation %x %x requested id %d : additional id %d Creating new soundmap %d Unable to get soundmap descriptor Unable to create soundmap, numgrps %d. Highscore Drawmap Bad sm_out in PB_play_sm, id: %d. '%s' (line %d): PB_playfield.c Bad bumper hs delete Bad region delete for left flippers Bad region delete for right flippers Bad guide hs delete Bad chute hs delete Bad root_hs remove Cannot create flipper region %d PB_flipper.c Cannot get flipper %d reginfo '%s' (line %d): PB_bumper.c Bad bumper hs create Bad bumper hs add Bad magnet-bumper hs deactivate. Bad airplane-bumper hs deactivate. bad chute hs remove bad chute hs add Bad post-bumper hs activate. Bad post-bumper hs deactivate. Bad dogfight launcher-hs deactivate. bad chute hs create bad guide hs create bad guide hs add Bad up-guide deact. Bad cyber right floor hs deactivate. Bad cyber right floor hs activate. '%s' (line %d): PB_magnet.c Bad magnet-bumper hs activate. Bad magnet-bumper hs deactivate. '%s' (line %d): PB_cb.c Bad cyber hole hs create Bad cyber hole hs add Bad hole hs delete Cannot create cytop region 1 Cannot create cytop region 2 Cannot perform rg_diff Bad cytop rg_delete 2 Bad cytop rg_delete 1 Cannot perform viq_rinfo Cannot add cytop_hs Bad cytop hs remove Bad cytop hs rg_delete '%s' (line %d): PB_md.c MD left side HS create MD left side HS add MD right side HS create MD right side HS add MD death HS create MD death HS add MD right side HS remove MD left side HS remove MD death HS remove Death hs deactivate. MD left guide deactivate. MD right guide deactivate. Death hs activate. Bad md corner hs activate. Bad md corner hs deactivate. '%s' (line %d): PB_df.c Bad dogfight launcher-hs reactivate. Bad hs_activate on DF big airplane hotspot. Bad hs_deactivate on DF big airplane hotspot. '%s' (line %d): PB_sb.c Bad umbrella deactivate Bad boardwalk hs create Bad boardwalk hs add Bad sb_boardwalk HS remove Bad beachball deactivate Bad deactivate on Springbreak umbrella hs. Bad activate on Springbreak umbrella hs. Bad beachball activate Bad reset on umbrella Creating '%s'... PB_nvr.c File %s exists - reading... Error writing NVR data! Game %d high scores: %d: '%s' - %d Can't read high scores PB_hiscore.c Can't write high scores
The second chunk focuses on the game engine and it interacting with the CD-i.
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 VIDEO PCL ERROR !!!! AUDIO PCL ERROR !!!! DATA PCL ERROR !!!! Restarting clock PCL ERROR !!!! Stat = 0x%x errno = %d 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 CV_rp_stop: releasing play_loc[%d] rp_stop.c 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 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 ??? 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 CV_rp_asset_loc: Invalid channel number %d for rtr %d rp_assetloc.c CV_rp_asset_loc: Invalid index %d for type %d channel %d rtr %d CV_rp_asset_loc: Seek to sector %d 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 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_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 line_event 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 ct_lsearch.c cdi_cv_timer
The third and final chunk mainly consists of a complex CD-i graphics editor. It also has some second chunk-like strings near the end. (Also near the end are all of the error messages from the OS-9 operating system - these have been omitted for brevity's sake.)
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 pan_close.c pan_open.c CV_pan_open(): bad starting position (%d,%d) 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 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 c - Colored memory diagnostic f - Colored memory free list t - Colored memory free totals q - Quit ==> Address Size 0x%08x %d Plane A: Plane B: %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 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 SIGFLAG Allocation fails!!! CV_sigflag: No flag available for sig %d sigflag.c CV_sigflag: Invalid operator %d on sig %d strdup.c CV_dm_size: NULL drawmap supplied. dm_size.c
cdi_pinballd_data
The second, much smaller file is cdi_pinballd_data, a debug version of the used file cdi_pinball_data. The only major change between the two is the addition of several KBs of data near the end of the former file.
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