igs/igs011_video.cpp, igs/igs012.cpp: Make IGS011 and IGS012 as device, Update related drivers - #15233
Conversation
…e, Update related drivers igs/igs011.cpp: - Move IGS011 (including decryption, protection, and video), IGS012 into separated device - Fix relocate protection area function - Fix naming for per-game protection functions - Fix logging - Fix post load function - Add notes for dbc title screen - Fix typename values igs/pgmprot*.cpp: - Add include guard - Fix spacings - Fix save state support igs/pgmprot_igs025_igs012.cpp: - Add notes for IGS012, Add IGS012 placeholder igs/igs025.cpp: - Fix spacing, Suppress side effect for debugger reads
| TODO: | ||
| - transparent pixel is wrong in dbc title screen |
There was a problem hiding this comment.
There’s also a video output disable flag that currently isn’t emulated (causes the video output to be black, and I suspect it also allows the blitter to work faster because it won’t have to compete with the video output for access to layer RAM).
Blitter timings and busy flag are currently unemulated, too – we just pretend it works instantaneously, as none of the games depend on realistic performance. I suspect the blitter can only access layer RAM during horizontal and vertical blanking, or while video output is disabled.
|
I’m not sure all the graphics ROM decoding belongs in the IGS011 device. At least some of it is probably per-game logic. It’s more manageable like this anyway. |
|
Also see MT02151 which has a photo taken with an original game board. |
|
For bugs like those (where emulator developers will likely suspect it's an emulation bug), it's good to have a BTANB list so noone in the future will have to chase ghost bugs. |
It was already mentioned at the top of igs/igs011.cpp: - dbc: The title screen background palette is wrong since the fade
routine is called with incorrect argument values, but the PCB does the
same thing.@cam900 must have missed it. |
|
Actually, I’ll add the drgnwrld BTANBs to the list. |
igs/igs011.cpp:
igs/pgmprot*.cpp:
igs/pgmprot_igs025_igs012.cpp:
igs/igs025.cpp: