Hi I have a few questions for the v9990 experts if they could help. As some people know I'm coding the engine for the v9990 version of quigs... you might have seen the Micromachine's demo Edo and I are doing.
Currently this uses a purely software strip draw for the scroll. I use P1 Mode and have metatile system made up of 4x4 patterns, each takeing 32 bytes for the pattern data & another 16 bytes all stored in VRAM at #60000, so I get effectively 1200 metatiles in the 64 from #60000.
At the moment I'm copying the 32bytes of a metatile pattern data into CPU ram and then copying it onto one of the pattern name tables.... which obviously takes a lot of time. So I was thinking to use BMXL... Copying the 32 linear bytes (rather than copying pixels but pattern numbers) stored at a position in #60000-6ffff directly into a position on the pattern name table as a rectangle of 8 bytes wide (4 patterns) and 4 high. This is doing a corrupt screen without breaking openmsx, so maybe its my code, or openmsx or msx doesnt work with BMXL???? Its is just copying bytes after all.
Any v9990 coders better than I who can help???? Plz
.Quig_g9k_Command_BMXL: ld a,#32 ld bc,CG9K_REG_SELECT out (c),a ld hl,Quig_g9k_CommandBmxlList ;call vdpwait ld bc,CG9K_REG_DATA ;Do 21 Times inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi inc b:outi:inc b:outi:inc b:outi:inc b:outi:inc b:outi ret .Quig_g9k_CommandBmxlList: .Quig_BMXL_32:db #e0 ;SA bits 0-7 .Quig_BMXL_33:db 0 ;SA NA .Quig_BMXL_34:db #1 ;SA bits 8-15 .Quig_BMXL_35:db #6 ;SA bits 16-18 .Quig_BMXL_36:db 0 ;DX bits 0-7 .Quig_BMXL_37:db 0 ;DX bits 8-10 .Quig_BMXL_38:db #80 ;DY bits 0-7 .Quig_BMXL_39:db #f ;DY bits 8-11 .Quig_BMXL_40:db #8 ;NX bits 0-7 .Quig_BMXL_41:db #0 ;NX bits 8-10 .Quig_BMXL_42:db #4 ;NY bits 0-7 .Quig_BMXL_43:db #0 ;NY bits 8-11 .Quig_BMXL_44:db 12 ;DIVX DIVY .Quig_BMXL_45:db 12 ;Logical Operation .Quig_BMXL_46:db 0 ;Write Mask bits 0-7 .Quig_BMXL_47:db 255 ;Write Mask bits 8-15 .Quig_BMXL_48:db 0 ; .Quig_BMXL_49:db 0 ; .Quig_BMXL_50:db 0 ; .Quig_BMXL_51:db 0 ; .Quig_BMXL_52:db g9k_OPCODE_BMXL ;BMXL Command