ok, if in's and out's cannot be interleaved without setting port 0x99 in the middle
the two current scripts are sufficient for debugging.
ins and outs can be interleaved without setting port $99 in the middle
really?!
can I set port 0x99 for read and than do an out ?
or
set port 0x99 for write and do a in ? (and get the currect value naturally )
is the internal VRAM pointer incremented at any in or out indifferently?
does it hold for any VDP chip ?
I've never seen this documented! very nice!
read this, section 2 http://bifi.msxnet.org/msxnet/tech/tms9918a.txt
*edit* keep in mind that setting up $99 for read will do a VRAM read, so if you want that script to be perfect, add that too. (it's basically the same as setting up $99 for writing, then reading $98 and discarding the result)
I added an HALT before the INIR and this should have solved. As soon as I will be able to test the code on a real msx1 I will be able to say how it goes.Hmm, I just compared the two versions by eye, and the fix made the game noticeably slower. Instead of using halt, could you create a 'slowinir' routine?
Btw, the number of cycles between outs needs to be at least 29 in the display area on MSX1, not 26.Lotus F3 does consecutive writes with 28 cycles in between, and, not sure if I mentioned this before, it completely messes up on my MSX1s. (outi(18), nop(5), nop(5), outi(18), nop(5), nop(5), etc)
Btw, the number of cycles between outs needs to be at least 29 in the display area on MSX1, not 26.Lotus F3 does consecutive writes with 28 cycles in between, and, not sure if I mentioned this before, it completely messes up on my MSX1s. (outi(18), nop(5), nop(5), outi(18), nop(5), nop(5), etc)
26 T-States between are ok on a Sony HB 55P (with vdp clone)
in screen 2 with 32 sprites on screen arranged on a 4 row x 8columns.
(active area)
Maybe it depends on different factors then. Lotus F3 is still broken on my Sony HB10P, same VDP as your 55P I assume (Toshiba T6950).
Hap,
we fixed the speed problem: many halt were no more needed
thanks
Here is the latest version of the script: http://openmsx.svn.sourceforge.net/viewvc/openmsx/openmsx/trunk/share/scripts/vdp_access_test.tcl
Now also takes vblank into account and reads/writes to 0x98 and 0x99. It's still in development, but the link is pointing to the latest version at any time.