ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
698 stars 199 forks source link

Errors with Krikzz's Mega-CD Verificator #408

Open ekeeke opened 2 years ago

ekeeke commented 2 years ago

When being run in Genesis Plus GX, Krikzz's Mega-CD Verificator Test ROM reports several errors:

image

This test ROM has been reported (by Krikzz) to run without errors on CDX/Multimega hardware.

ekeeke commented 2 years ago

Following tests have been fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/58accf068963e3dbf2d94a49256d334c3548e571: COLOR CALC : TEST 0x05 REG X002: TEST 0x29 REG 8030: TEST 0x02

image

ekeeke commented 2 years ago

REG 2006 TEST 0x02 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/ee5b917c328186fc4680cca97a51339c8570b6e1 and https://github.com/ekeeke/Genesis-Plus-GX/commit/7fe8d95ca179485e53b94d45f315125e6f131f0d

image

DevsArchive commented 2 years ago

Just a heads up: I had a friend run the verificator on his European Model 1 MCD, and it reported this:

I do know that only NTSC seems to have been tested on krikzz's end, so the timing stuff probably is no surprise, but the CDC register thing is kind of interesting. Notably, it doesn't report back the same behavior with the supposed "RS" flag that the verificator's source code mentions. Originally, I had a PR that addressed this along with a couple other things, but this kinda complicates this a bit, in my opinion.

ekeeke commented 2 years ago

Yes, this test was confirmed as not working on most Sega CD / Mega CD models by Blastem author (see http://gendev.spritesmind.net/forum/viewtopic.php?f=5&t=3166&start=25) so I suspect it only works on the specific CDC model (LC8913) used in CDX/Multimega and X-Eye/Wondermega M2. If you look at the (very limited) LC8913 datasheet, it seems there are some additional configuration (double/quad speed playback, configurable CD input stream format,...) that are not mentionned in the other chips of same family (LC89510 and LC89515) used in Model 1 / Model 2 hardware so it is quite possible this particular chip model extends the number of available registers and use 5 bits for Address Register.

DevsArchive commented 2 years ago

Ah, I didn't see that thread before, completely flew under my radar somehow. Glad to know.

ekeeke commented 10 months ago

REG X002 test 0x03 and WORD RAM test 0x20 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/6cc8bbc2776dfbe62411fc1e8fbc5807c8e3558d (intially fixing issue #482)

image

ekeeke commented 10 months ago

REG X002 test 0x2B fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/6669d259480bd686b388a313c50e6d43733f2e4e

image

ekeeke commented 10 months ago

CDC INIT test 0x04 and CDC DMA3 test 0x02 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/b330eb85cfd5b8afea6c2609438151a60e399334

image

ekeeke commented 10 months ago

all CDC REGS tests fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/fcb66202025662a35bda6772d1dac2105e3f0b96

Note: Wondermega M2, X'Eye, CDX or Multi-Mega BIOS is needed for these tests to run OK (with real hardware, these tests only pass on these models, cf comments above)

image

ekeeke commented 10 months ago

CDC FLAGS test 0x22 and CDC DMA3 tests 0x04 & 0x13 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/52b4f78b821c9e14a2957c4d6765e7876f733823

image

ekeeke commented 10 months ago

CDC REGS tests and REG 2006 tests 0x02, 0x03 & 0x05 (when run as CD BOOT ROM) fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/02c9dac337f986aefeb521577a8b134dd35c94eb and https://github.com/ekeeke/Genesis-Plus-GX/commit/d4ca576c073cfa0ac347bc25b3986201f1667608

image

ekeeke commented 8 months ago

CDC DMA3 tests 0x20 and 0x21 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/16589b558fd0ff16e39c4a1811209f1f345d0126

image

ekeeke commented 8 months ago

CDC DMA3 tests 0x42 to 0x55 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/da8e4e547affcbd295d2e3028735b3283ec2c462

image

ekeeke commented 8 months ago

CDC DMA3 test 0x56 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/2c1a2d0defb7e9c4aaf0df6beb6b8615db9c0cfe

image

ekeeke commented 8 months ago

CDC DMA3 tests 0x60 to 0x63 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/64d3e08e7defb585509bebb92bd2c359f74585f5

image

ekeeke commented 8 months ago

CDC FLAGS tests 0x26 and 0x27 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/90c9c730f08610055833e2a5bebefd49183f41c2 CDC FLAGS test 0x30 infinite loop fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/79bd0e7582c26b6bbc1eaf3b56e7bb47c854e69a (also makes VAR TESTS 0x02 and REG 8030 test 0x07 returning more realistic measured timing values)

image

ekeeke commented 8 months ago

CDC FLAGS test 0x30 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/904613f51c7988f326663251efb409d0ceb41a84 CDC FLAGS test 0x40 infinite loop fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/e8a6086c894016b6730b95bdc83587072e7cd467

image

ekeeke commented 7 months ago

VAR TESTS 0x02 and CDC FLAGS tests 0x40/0x41 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/47761b9b8fd35eabd7b3ff3dc5ab0f54f1d95133

image

ekeeke commented 7 months ago

CDC FLAGS test 0x42 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/f09c97336ed5b917c1018d295cae5b1c86c91cda

image

ekeeke commented 7 months ago

CDC FLAGS test 0x46 fixed by https://github.com/ekeeke/Genesis-Plus-GX/commit/49a289df89fdff127485289a52ed3e0d7e22824a

image