Implementation of "Play CD-i disc" (also -playcdi)

CD-i Emulator is the first fully evolving windows compatible emulator project of the Philips CD-i system. Discuss the emulator, compatibility issues, seek help and support to get the program operating and post what you'd like to see in future revisions of the program. CD-i players ROM (BIOS) requests, begging and links will not be tolerated. Otherwise feel free to post your thoughts on this amazing new piece of software.
Post Reply
User avatar
cdifan
CD-i Emulator Author
Posts: 923
Joined: Fri Jun 24, 2005 6:19 am
Location: The Netherlands
Contact:

Implementation of "Play CD-i disc" (also -playcdi)

Post by cdifan » Sat Oct 01, 2005 2:53 pm

From the RELNOTES file included with the emulator:
On most players, you can use the option -playcdi or its GUI equivalent
"Play CD-i disc (skip CD-i player shell)" under the Options | Settings
menu choice to immediately start the CD-i application, skipping the
player shell.

This feature works by loading a small OS9 module that overrides the
standard player shell; the -playcdi option is just a shorthand for
"-set extra=playcdi" that will tell the system builder to read the file
"sys/playcdi.use" that specifies to load the "mod/playcdi.mod" module.
You can use the same technique to load your own memory modules too;
check out the playcdi.use and playcdi.mod files in the sys and mod
directories. The assembly source to playcdi.mod is included also.
A little more background: the startup process of the CD-i player ends with a process "sysgo" forking the player shell "play" and then acting on its exit status:
  • * 1 causes it to chain the "launcher" program to start the CD-i disc;
    * 2 causes it to chain the "launcher" program to start a floppy application;
    * 3 causes it to fork the OS-9 "shell" program
(case 2 and 3 only work on players that have a floppy drive or "shell" module, of course). This is all documented in the document "Technical Documentation for CDI 605T Users, System Software Release 1.3", chapter "5. Initial process sysgo" and works on any CD-i player ROM I've seen so far.

What playcdi does is replace the "play" module with one that just exits with status 1; this should start your CD-i title just like normally. The source of this module is included in the download, it's just two lines of code, really.

Now, what I suspect is happening with Frog Feast is that you're not initializing one or more player settings that the player shell will usually leave with a sane default. I have a list somewhere...

Have you tried running with the "RANDOMIZE" option of your CD-i 605 to see if this reproduces the problem? This option will randomize all the settings before starting your title, intended to catch such problems. If you find that your title crashes or does something weird in a particular run, turn on the "PREV" option and it will maintain the previous "random" settings until you've found the problem. This too is documented in the abovementioned document, chapter "12. CDI 605T tools menu".

The document is not rare among CD-i conoisseurs; would it be possible for someone to scan it? There's all kinds of technical information in there; here's the list of chapters:
1. Contents
2. Introduction
3. Configuration status descriptor
4. The download routine
5. Initial process sysgo
6. Load application and system
7. Technical characteristics of the player
8. Serial port specification (RS232)
9. Input devices
10. Floppy specification
11. Extension
12. CDI 605T tools menu
13. Application notes (reserved for additional info)

User avatar
cdifan
CD-i Emulator Author
Posts: 923
Joined: Fri Jun 24, 2005 6:19 am
Location: The Netherlands
Contact:

Post by cdifan » Sat Oct 01, 2005 3:04 pm

In case you wondered, chapter 4 of this document describes the download protocol used by CD-i Link to bootstrap itself into the CD-i player for uploading the ROMs.

I have documented the protocol and my extensions in the file stubdefs.d that comes with the CD-i Stub download; I've called my extended version the "stub procotol" and the part supported by most CD-i player ROMs the "download subset" (the CD-i Stub download includes 68000 assembly language sources for the CD-i Stub programs).

See the CD-i Link and CD-i Stub sections of my website for addition info and links.

Post Reply