MSX AcidTests for openMSX

by sd_snatcher on 24-04-2011, 00:25
Topic: Development
Languages:

The MSX-AcidTests are virtual machines sd_snatcher created to help him with the ungrateful task of testing software he develops/patches. Everyone who develops MSX software has faced this situation: after the release, someone reports a bug with some obscure machine or hardware combination that someone has (and you don't, of course).

The AcidTests were created following the Web AcidTests philosophy, which is "As with acid tests for gold which produce a quick and obvious assessment of the quality of a piece of metal, the web acid tests were designed to produce a clear indication of a browser's compliance to web standards.". Akin to that, the MSX-AcidTests will produce a clear indication of the tested software compliance to the MSX standard, and like with the WebAcidTests, non-compliant software will fail in a number of ways.

For now, two main machines have been created, others will follow later. These machines were grouped according to aspect and to a certain focus, to make debugging easier:

  • Acid1Test-slots: Slot layout test (also known as usual hardware in unusual slot disposition). This machine stress-tests the slot access. Incorrect assumptions about memory/resources layout will fail to run on it. Software must also handle extended slots correctly to run.
  • Acid2Test-hardware: Illegal direct hardware access (also known as unusual hardware in usual slot disposition). Aimed to make software fail when it tries to perform illegal direct I/O. Note that legal VDP direct I/O will not fail.

sd_snatcher decided to share the MSX-AcidTests with the MSX community, so: make the best out of it!

Relevant link: MSX AcidTests

Comments (11)

By pitpan

Prophet (3135)

pitpan's picture

24-04-2011, 11:22

Interesting project. Very useful for diehard developers: if you made incorrect assumptions, then it's likely that it'll eventually fail sometime, somewhere. This "compatibility benchmark" could help to reduce this.

By yzi

Champion (444)

yzi's picture

24-04-2011, 18:37

Great idea! It's hard to make any program that doesn't break on someone's obscure configuration. Usually we just settle with getting graphics to work on a couple of MSX1 and MSX2 machines. There are also differences that usually don't break anything, but should be taken into account, like floppy drive speed. The SVI-738 Xpress has a particularly slow drive, and it also has VDP2, even though it's not really an MSX2 machine.

By Edwin

Paragon (1182)

Edwin's picture

25-04-2011, 14:22

The first test is good, although I don't see the weirdest cases mentioned. Like one of the MSX1 machines having page 3 in the ROM slot where it mirrors ram. Also the turbo R in z80 mode with an external mapper has something where it puts the lower two pages in a different slot from the upper two pages.

The second test is hopelessly restrictive and I would never use it. I'm not going to support non standard ports for hardware that doesn't actually exist. I'm in it for fun, not to honour some book from the dark ages.

Some of the other proposed tests vary from useful to completely artificial. Why on earth would you test for a faster v9958 blitter when it doesn't exist. I sometimes use the fact that a command takes an amount of time in other to skip a check for something. I'm not going add code to that to support something that doesn't exist.

By sd_snatcher

Prophet (3436)

sd_snatcher's picture

25-04-2011, 14:51

@Edwin

No problem, those ate testing tools, not a certification program. Smile

Use the ones you feel that will help you on your development, and the ones that you feel challenged to excell at.

The RAM mirroring is a good idea, I'll implement that. Just as a curiosity, Which machines do you know to have this behavior?

Do you have a suggestion on how to replicate the mentioned turbo-r behavior on AcidTest1?

By Edwin

Paragon (1182)

Edwin's picture

25-04-2011, 16:25

The Sony_HB-10P appears to do it.

By Edwin

Paragon (1182)

Edwin's picture

25-04-2011, 16:29

And for turbor do "openmsx -machine -ext ram1mb -diska [some msx dos disk]" and hold "1" to force it into DOS1. You'll get slot 3.2 in page 1 and slot 3.0 in page 2&3.

By sd_snatcher

Prophet (3436)

sd_snatcher's picture

26-04-2011, 03:42

Why on earth would you test for a faster v9958 blitter when it doesn't exist.

In fact, the good news is that it does exist! Big smile

On an updated OCM, press SHIFT+F11 to enable/disable the turbo-blitter, which is 500% faster than the original. As you know, pressing only F11 enables/disables the Z80 turbo. Enabling both at the same time results in a wonderful speed! Thanks KdL for that! No more sluggish scroll on Xak-1! Big smile

By max_iwamoto

Hero (513)

max_iwamoto's picture

04-08-2014, 02:24

I just tried to run Acid1 test and it has 2 special ACID roms missing from it... Where do I find them?

By The_Engineer

Master (172)

The_Engineer's picture

04-08-2014, 19:07

I had the same issue. I pasted the SHA1SUM of the CIEL Expert ROMs into the Acid machines xml file.
Thanks to Manuel you can find the ROMs in the interesting zipfile on msxarchive.

Afterwards the acid tests worked like a charm.

And before you think that none of the MSX software titles run on the crazy Acid 2 machine... just insert the Metal Gear 2 ROM and be amazed.

By max_iwamoto

Hero (513)

max_iwamoto's picture

04-08-2014, 22:16

@ The_Engineer: Thanks for advice. I replaced ROMs, bit still don't know which one to use as DISK ROM. It starts now, but blank screen Crying And it is true, you can replace SHA1, but then you may not have exact config that required for testing. I would like to know where the right files are located. So, I give up for now.

By sd_snatcher

Prophet (3436)

sd_snatcher's picture

04-08-2014, 23:40

Check your e-mail. Smile