Senior Project Development Log

2001/5/5
Worked on PCM sound generation. Fixed some bugs in it.

2001/4/29
Major clean up to the FIO CD interface code.

2001/4/27
Worked on a SCSI status/error message reporting routine. Browsed through SCSI spec. Using a different SCSI command, I got the CD-DA playing to work. Read about some of the other interface commands (pause, unpause, stop, close tray, open tray) and implemented them.

2001/4/17
Connected the SCD_CDD module to the FIO CD interface functions.

2001/4/9
Worked on SCSI interface box a bit more. Implemented MCI interface as a work around for my SCSI problems. Can now play CD-DA, stop, pause, unpause, load tray, and open tray.

2001/4/4
Fixed the warping problem in rotate/scale graphics. Fixed a misconception of mine about the "fullscreen" graphics memory region. Added access messages for it to the EMV.

2001/3/28
Finished implementing rotate/scale graphics and fixed some visual glitches in it.

2001/3/22
Did some reverse engineering on the BIOS music playback code and finally fixed the bug. Implemented the rotate/scale graphics. It is very buggy though.

2001/3/17
Finally found some free time to do some serious compatiblity testing. I've discovered that I need to now implement font graphics, and rotate/scale graphics to get any further. I've also discovered a reoccuring glitch in the simulated CDDA playback that needs fixing.

2001/3/7
Read through part of the SCSI book, and began writing a user-interactive SCSI command interface. Implemented internal battery RAM. Fixed a CDC bug. Lots of games are now showing signs of life.

2001/3/1
Did some serious game testing today. Only 1 shows signs of life. It is called "Lunar the Silver Star."

2001/2/21
Did a bunch of reverse engineering to attempt to discover why my CDC code is not allowing the BIOS to progress beyond its current wall. Implemented what I think are the "correct" states of the CDC status bits. The BIOS can now get to the point of saying "press start." Pressing start will take me to a license/boot-up screen. No games seem to be showing signs of life.

2001/2/16
Implemented everything I have learned. Fixed some bugs.

2001/2/11
Figured out the CPU read and DMA transfer methods for the CDC.

2001/2/8
Implemented and debugged the time-sensitive elements of the PCM register set. Found a bug in my timer3 code.

2001/2/4
Read about the PCM sound chip. I need to get this simulated soon as it will hold me up if I don't.

2001/2/2
Implemented what I know about CDC.

2001/1/28
Experimenting with SCSI. Can now get short sector reads to work.

2001/1/23
Figured out most of the CDC.

2001/1/18
Examined CDCx BIOS functions. Got a PDF for the CDC chip but it isn't helpful.

2001/1/15
Figured out a few more subcommands for READTOC command, and implemented them.

2001/1/11
Implemented everything I've learned so far.

2001/1/10
Figure out some more CDD return status.

2001/1/7
Figured out some CDD return status info.

2001/1/5
Figured out more CDD commands.

2001/1/4
Searched for code in BIOS that calls the user-callable BIOS functions and left markers. Learned some more CDD basic commands.

2001/1/2
Examined DRVINIT routine. Learned more about CDD. Implemented some of what I learned.

2000/12/28
Found hardware origin of abstime, reltime, and current track. Learned some basic stuff about the CDD.

2000/12/22
Examined CDBSTAT function, tracked down origins of the status data.

2000/12/20
Began commenting the disassembly of the user-callable functions in the BIOS and marked their entry points.

2000/12/2
Added default CD-ROM drive selection to GUI and .INI.

2000/11/30
Learned how to use DLLs. Added ASPI framework.

2000/11/29
Downloaded some source code to a playstation simulator to look at the CD-ROM code. I have reason to believe that the CD-ROM drives are both made by Sony and made about the same time.

2000/11/27
Played around with emulator a little bit. Didn't really accomplish anything. Did some more reverse engineering work.

2000/11/23
Added register viewer for SCD SYS regs. Did some more reverse engineering to learn basics of SCD CDD and SCD CDC. Added basic framework for SCD CDC and SCD CDD. Implemented basic command and response framework for SCD CDD.

2000/11/16
Implemented 2M mode word RAM access in SCD M68 MMU and GEN M68 MMU. Did some more reverse engineering. Implemented read/write routines for remaining SCD registers in SCD M68 MMU. Implemented interrupt 4, and interrupt 1. Added SCD STMP viewer.

2000/11/9
Did some reverse engineering. Added basic read/write support for some SCD system regs to SCD M68 MMU. Implemented SCD comm cmd, and SCD comm sts in MMUs. Added SCD comm cmd and SCD comm sts access messages to MMUs and EMV.

2000/11/5
Did some reverse engineering.

2000/11/2
Connected up SCD M68 emu internally. Added framework for SCD system regs access to SCD M68 MMU. SCD BIOS screen now displays.

2000/10/31
Added SCD register access messages for GEN M68 MMU and SCD M68 MMU to EMV. Added basic read/write support for SCD system regs to GEN M68 MMU. Reconditioned GEN M68 PC fixup routines for use with CD-mode memory map.

2000/10/26
Added framework for SCD registers to GEN M68 MMU. Implemented SCD M68 MMU framework. Also did some reverse engineering.

2000/10/12
Partially implemented SCD M68 CPU; it is not internally connected yet. Disassemled BIOS into a txt file to edit and reverse engineer with, and then did a bunch of reverse engineering with it.