mirror of
https://github.com/MiSTer-devel/CDi_MiSTer.git
synced 2026-06-14 03:04:32 +00:00
- Decoupled SEQ event from GOP event. Now behaves like real VMPEG hardware - Fixes Lost Ride gameplay after vehicle charge intro - Fixes timing accuracy of temp ref and time code Measurable with mv_status()
236 lines
8.9 KiB
Markdown
236 lines
8.9 KiB
Markdown
# Notes
|
|
|
|
## Building mame for the CD-i
|
|
|
|
make SOURCES=src/mame/philips/cdi.cpp REGENIE=1 -j8
|
|
|
|
## Using mame
|
|
|
|
./mame cdimono1 -log -oslog
|
|
./mame cdimono1 -verbose -log -oslog -window &> log
|
|
|
|
## Swap 16 bit endianness
|
|
|
|
objcopy -I binary -O binary --reverse-bytes=2 picture.bin picture2.bin
|
|
|
|
## Transmit binary
|
|
|
|
scp 68ktest.rom root@mister:/media/fat/games/CD-i
|
|
|
|
## Ripping from CD to single CUE/BIN
|
|
|
|
In this case, a single bin
|
|
|
|
cdrdao read-cd --read-raw --datafile cdimage.bin cdimage.toc
|
|
|
|
then byte swap and generate cue
|
|
|
|
toc2cue -s -C cdimage2.bin cdimage.toc cdimage.cue
|
|
|
|
## Convert CUE/BIN to CHD
|
|
|
|
chdman createcd -i cdimage.cue -o cdimage.chd
|
|
|
|
## Convert CHD to single CUE/BIN
|
|
|
|
chdman extractcd -i cdimage.chd -o cdimage.cue
|
|
|
|
## Convert CHD to multi bin CUE/BIN
|
|
|
|
chdman extractcd -i cdimage.chd -sb -o cdimage.cue
|
|
|
|
## Simulation speed
|
|
|
|
Vcd:
|
|
--trace
|
|
Written video_00.png after 44.36s
|
|
-rw-rw-r-- 1 andre andre 2,5G 9. Sep 13:04 /tmp/waveform.vcd
|
|
|
|
Fst:
|
|
--trace-fst
|
|
Written video_00.png after 51.33
|
|
-rw-rw-r-- 1 andre andre 49M 9. Sep 13:02 /tmp/waveform.vcd
|
|
|
|
This means Fst is better as it is much smaller
|
|
|
|
|
|
## Auto save of NvRAM?
|
|
|
|
Seems to be not desired:
|
|
* SD Card wear out?
|
|
* Point of time to write is random?
|
|
* Unresponsive as it steals cycles from HPS IO?
|
|
|
|
https://github.com/MiSTer-devel/Main_MiSTer/issues/789
|
|
https://github.com/MiSTer-devel/Main_MiSTer/issues/760
|
|
|
|
|
|
## Boot speed and autoplay using playcdi.mod (by cdifan)
|
|
|
|
Tested using Zelda - Wand of Gamelon (with CPU turbo and seek time of 1 sector)
|
|
|
|
Normal bootup:
|
|
On frame 108, the system shell Philips logo becomes visible
|
|
On frame 109, the Play button is visible and B1 is pressed.
|
|
On frame 111, the Play button is highlighted blue
|
|
On frame 211, the first frame of the Philips logo animation is visible
|
|
|
|
With playcdi.mod:
|
|
On frame 149, the first frame of the Philips logo animation is visible
|
|
|
|
## Debug output of CD-i Emulator
|
|
|
|
CD-i Emulator version 0.5.3-beta8 for Windows (Limited edition)
|
|
Found 31 recent files
|
|
Found cdi200a.rom (Philips CD-i 200 F1 system ROM)
|
|
Found vmpega.rom (Philips VMPEG digital video cartridge ROM 4.1)
|
|
Building system: model=cdi200a dvcart=vmpeg...
|
|
Reading cdisys.bld...
|
|
Reading cdi200a.mdl...
|
|
Reading mono1.brd...
|
|
Installed planea memory at $0
|
|
Installed planeb memory at $200000
|
|
Using cdi200a.rom...
|
|
Installed sysrom memory at $400000
|
|
Found 73 modules in memory
|
|
Configured reset vector at $400000
|
|
Installed cdic device at $300000
|
|
Installed cdicram memory at $300000
|
|
Installed slave device at $310000
|
|
Installed null device at $318000
|
|
Installed nvr device at $320000
|
|
Installed nvram memory at $320000
|
|
Cannot load cdi200a.nvr into NVRAM
|
|
Installed vdsc device at $4fffe0
|
|
Installed 68070 device at $80000000
|
|
Installed lic device at $80001001
|
|
Installed pic device at $80002040
|
|
Installed dma device at $80004000
|
|
Installed i2c device at $80002000
|
|
Installed uart device at $80002010
|
|
Installed timer device at $80002020
|
|
Reading vmpeg.dvc...
|
|
Installed sysram memory at $d00000
|
|
Installed vcd device at $e01000
|
|
Installed fma device at $e03000
|
|
Installed fmv device at $e04000
|
|
Installed fmvprg1 device at $e04800
|
|
Installed fmvprg2 device at $e05000
|
|
Using vmpega.rom...
|
|
Installed dvcrom memory at $e40000
|
|
Found 30 modules in memory
|
|
Installed dvcram memory at $e80000
|
|
Mono-I detected, clearing time limit
|
|
Listening for terminal on uart (CD-i UART)...
|
|
BUS RESET
|
|
|
|
processor reset
|
|
dn: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
|
|
an: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00001500
|
|
pc: 004004B8 sr:2700 (--S--7 --------) usp:00004A72 ^ssp^
|
|
0x4004b8 >60000182 bra $40063c
|
|
Found known Philips CD-i 220 F2 system ROM
|
|
|
|
Resuming emulation...
|
|
@00400FE4 VIDEO ENABLE PLANE A
|
|
@00400FE4 VIDEO SETMODE 384x280 (384) 50Hz /2
|
|
@00400FE4 VIDEO START
|
|
@00400FEA VIDEO ENABLE PLANE B
|
|
|
|
et fun fmv
|
|
et dev fmv
|
|
et trp
|
|
|
|
@00E40A66(fmvconf) FMV PROG 0001
|
|
@00E40A66(fmvconf) WR.W 00E040DA <= 0001 .PROG
|
|
@00E40B42(fmvconf) FMV PROG 0004
|
|
@00E40B42(fmvconf) WR.W 00E040DA <= 0004 .PROG
|
|
@00E40698(fmvconf) FMV VOFF 001A
|
|
@00E40698(fmvconf) WR.W 00E0406C <= 001A .VOFF
|
|
@00E406A4(fmvconf) FMV HOFF 004A
|
|
@00E406A4(fmvconf) WR.W 00E0406E <= 004A .HOFF
|
|
@00E406B0(fmvconf) FMV VPIX 0118
|
|
@00E406B0(fmvconf) WR.W 00E04070 <= 0118 .VPIX
|
|
@00E406B8(fmvconf) FMV HPIX 0180
|
|
@00E406B8(fmvconf) WR.W 00E04072 <= 0180 .HPIX
|
|
|
|
|
|
|
|
|
|
00405ba0 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00003fb8 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405ba2 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00003fb8 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 511
|
|
00405ba4 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00003fb8 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 511
|
|
00405ba6 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00003fb8 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b18 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00003fb8 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b1a 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b1e 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b20 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b3e 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405b46 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405baa 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
00405bac 00003fb8 00000000 00000001 00000003 00000100 00000000 00002010 00e80000 00e80000 00eff36c 00efd398 000018fc 00003fa8 00efd34c 00001500 00efd314 0
|
|
|
|
|
|
dn: 00003FB8 00000000 00000001 00000003 00000100 00000000 00002010 00D00090
|
|
an: 00D00090 00DFF36C 00DFD398 000018FC 00003FA8 00DFD34C 00001500 00DFD314
|
|
pc: 00405B1E sr:2710 (--S--7 ---X----) usp:00D0008C ^ssp^
|
|
kernel:0x405B1E >B090 cmp.l (a0),d0
|
|
|
|
kernel:0x405B18 >2047 movea.l d7,a0 [7]
|
|
kernel:0x405B1A >202F0008 move.l 8(sp),d0 [22]
|
|
kernel:0x405B1E >B090 cmp.l (a0),d0 [15]
|
|
kernel:0x405B20 >661C bne $405b3e [17]
|
|
kernel:0x405B22 >7010 moveq #$10,d0 [7]
|
|
kernel:0x405B24 >D08C add.l a4,d0 [7]
|
|
kernel:0x405B26 >7200 moveq #0,d1 [7]
|
|
kernel:0x405B28 >9081 sub.l d1,d0 [7]
|
|
|
|
|
|
a0 cdiemu 00D00090 != a0 MAME 00e80000
|
|
|
|
objcopy -I binary -O binary --reverse-bytes=2 cdimono1/cdi200.rom cdimono1/cdi200_swap.rom
|
|
objcopy -I binary -O binary --reverse-bytes=2 cdimono1/vmpega_split.rom cdimono1/vmpega_split_swap.rom
|
|
|
|
bcompare cdimono1/cdi200_swap.rom 0/romdump0.bin
|
|
bcompare cdimono1/vmpega_split_swap.rom 0/romdump1.bin
|
|
|
|
|
|
cat log | grep 'FMV INT\|XFER' > log2
|
|
cat log | grep 'FMV INT\|XFER\|DVC Read e04062\|PIC2\|GOP' > log2
|
|
|
|
|
|
1 Machine Config
|
|
2 Hardware Settings
|
|
3 Hardware Config
|
|
4 Machine Setup
|
|
|
|
1 Disable VMPEG DVC No,Yes
|
|
2 Disable VMPEG No,Yes
|
|
3 Disable DVC No,Yes
|
|
4 Extension Slot 1MB, 1MB+VMPEG
|
|
5 Extension Slot Empty, DVC
|
|
6 Extension Slot Empty, VMPEG
|
|
7 Extension Slot Empty, DVC DVC DVC
|
|
|
|
1 Ports P1 Front + UART Back, P1 Back + P2 Front
|
|
2 Ports 1P + UART, 2P
|
|
|
|
1 Fast CD Seek No, Yes[U]
|
|
2 Disable CD Seek No, Yes[U]
|
|
|
|
1 CPU Turbo No, Yes[U]
|
|
2 Turbo CPU No, Yes[U]
|
|
|
|
1 Overclock input device No, Yes
|
|
(it is rather long. It could be shorter?)
|
|
|
|
|
|
Lost Ride:
|
|
|
|
Syscall @ ded9b2 8e I$SetStt 00000006 00000122 00000002 00000900 0000ab00 00001999 0000bca0 00000000 00df9340 00000000 00d0d1d8 00dffd90 00d0bc98 00d0bb26 00d08000 00dfd428 SetStt MA_Loop
|
|
Syscall @ deda82 8e I$SetStt 00000006 00000124 00000002 00000000 0000bd00 00000000 0000ffff 00000000 00df9340 00040e20 00d0d1d8 00dffd90 00d03b56 00d0bb26 00d08000 00dfd428 SetStt MA_Play
|
|
FMA Write Stream Number 1804 0000
|
|
FMA IER 180e 013d
|
|
FMA CMD 1800 0002
|
|
Syscall @ ded8c6 8e I$SetStt 00000006 00000120 00000002 00800080 f5020000 00000000 0000bca0 00000000 00df9340 00000000 00d0d1d8 00dffd90 00d0bc98 00d0bb26 00d08000 00dfd428 SetStt MA_Cntrl
|