VDP timing analysis tool for MSX - forked (coming soon) https://bitopia.io

Pedro Gimeno 4ac0262980 Forgot to add the new cycle counts to the results screen layout 4 tahun lalu
test_asc2cld 7238711614 Minor reorganization in run-single-test.sh 4 tahun lalu
.gitattributes c8700db72c Add asc2cld.py (BASIC tokenizer) and test suite. 4 tahun lalu
.gitignore a26a8f425c Fix .gitignore 4 tahun lalu
LICENSE.md 754265982a Rename LICENSE.txt to LICENSE.md, and add it to USAGE.txt 4 tahun lalu
Makefile 946f72a380 In case of failure of loadertpl.py, remove the output file 4 tahun lalu
README.md 3a557cfa52 Update README with more current information 4 tahun lalu
RESULTS.txt 4ac0262980 Forgot to add the new cycle counts to the results screen layout 4 tahun lalu
USAGE.txt 61a29a9c97 Include asc2cld.py in the zip and in USAGE.txt 4 tahun lalu
asc2cas.py 867b4d7044 Rename bas2cas.py to asc2cas.py 4 tahun lalu
asc2cld.py e794e1f8be Quite some more keywords cause a switch to uint mode 4 tahun lalu
blank1.dsk.gz 274c18382c First commit, based on first public version 4 tahun lalu
blank2.dsk.gz 274c18382c First commit, based on first public version 4 tahun lalu
cld2cas.py b497f9335a Fix CAS file padding 4 tahun lalu
frametime.bss.asm 58b596792c Drop the Bit Array and change strategy 4 tahun lalu
frametime.code.asm d2899fc9ea Switch to autolocal labels 4 tahun lalu
im2setup.code.asm ef4d8794e7 Waste fewer bytes for im2 jump table 4 tahun lalu
im2setup.equ.asm f998f3f454 Change IM2 table back to low memory 4 tahun lalu
loadertpl.py 7b150e0ca9 Place all sprites on screen 4 tahun lalu
main.bss.asm 0fdef07ede Make AckTiming use next address as temporaries; extend ErrParams 4 tahun lalu
main.code.asm 69639621b6 Clear key buffer on return to BASIC 4 tahun lalu
raw2bin.py 274c18382c First commit, based on first public version 4 tahun lalu
raw2cas.py 274c18382c First commit, based on first public version 4 tahun lalu
syncvint.code.asm d2899fc9ea Switch to autolocal labels 4 tahun lalu
sysdefs.equ.asm 69639621b6 Clear key buffer on return to BASIC 4 tahun lalu
test-ack-timing.bss.asm bc643ccf19 Clean up BASIC now that it's binary; use more meaningful labels 4 tahun lalu
test-ack-timing.code.asm d2899fc9ea Switch to autolocal labels 4 tahun lalu
test-vram-timing.bss.asm 4e745657ac Add write loops for gaps of 19 to 24 cycles between writes 4 tahun lalu
test-vram-timing.code.asm 4e745657ac Add write loops for gaps of 19 to 24 cycles between writes 4 tahun lalu
vdptest.asm 1ecde09b87 Reorganize loader, check if there's enough free memory 4 tahun lalu

README.md

VDP Timing Test

This program is designed to test the intricacies and fine details of how the VDP interacts with the CPU, especially in areas of possible interest to emulator authors, and also to MSX/MSX2/MSX2+/TR coders that want to make the most out of the VDP to e.g. squeeze as many transfers as possible in the shortest time.

It's currently work in progress.

An important detail is that it's designed to run on MSX machines with synced CPU/VDP clocks, not separate. This makes things hard for a particular VDP, the Toshiba T6950, at least in PAL machines which need a 22.168 MHz crystal that is not compatible with the regular CPU timings, and therefore always includes separate crystals for CPU and VDP. That leaves several popular Sony machines basically untestable with any degree of reliability.

It's also designed to run on machines with Z80 at 3.579545 MHz and with one M1 wait state, i.e. normal models with no turbo and no R800 mode. It uses ports 98h/99h, it does not read the port number from the BIOS, therefore it will only work in machines that use these ports.

Requires at least 32K to run, and a BASIC ROM (no CBIOS).

See the Releases page for pre-built binaries. Read USAGE.txt for more information.

The license for this code is the Expat license. See the file LICENSE.md for details.