From 184582a7bb300d1f5fa49f48c258f9816be9e4ab Mon Sep 17 00:00:00 2001 From: Eric Boez Date: Tue, 10 Nov 2020 09:41:43 +0100 Subject: [PATCH] Fix Sprites bugs with MSX1 Machines --- Working Folder/.DS_Store | Bin 0 -> 10244 bytes Working Folder/fusion-c/.DS_Store | Bin 0 -> 12292 bytes Working Folder/fusion-c/lib/fusion.lib | Bin 244668 -> 246878 bytes Working Folder/fusion-c/source/.DS_Store | Bin 0 -> 8196 bytes Working Folder/fusion-c/source/lib/fusion.lib | Bin 244668 -> 246878 bytes .../fusion-c/source/lib/setspritepattern.c | 7 +-- .../fusion-c/source/lib/spriteoff.c | 38 +++++++---- Working Folder/fusion-c/source/lib/spriteon.c | 37 +++++++---- Working Folder/fusion-c/source/lib/vram.s | 59 +++++++++++++++--- history.txt | 26 +++++++- 10 files changed, 130 insertions(+), 37 deletions(-) create mode 100644 Working Folder/.DS_Store create mode 100644 Working Folder/fusion-c/.DS_Store mode change 100755 => 100644 Working Folder/fusion-c/lib/fusion.lib create mode 100644 Working Folder/fusion-c/source/.DS_Store diff --git a/Working Folder/.DS_Store b/Working Folder/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d021b7baceb1a7be5324ee343f304c3cbcd7a40b GIT binary patch literal 10244 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 I<2K{p0Tcb&`v3p{ diff --git a/Working Folder/fusion-c/source/.DS_Store b/Working Folder/fusion-c/source/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2638b926ce5791d315b5889a4bdba1a6985d33cf GIT binary patch literal 8196 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 I<2K{p0Tcb&`v3p{ diff --git a/Working Folder/fusion-c/source/lib/setspritepattern.c b/Working Folder/fusion-c/source/lib/setspritepattern.c index 39b67e5..c354858 100755 --- a/Working Folder/fusion-c/source/lib/setspritepattern.c +++ b/Working Folder/fusion-c/source/lib/setspritepattern.c @@ -8,7 +8,7 @@ | |_| \__,_|___/_|\___/|_| |_| * | | | | The MSX C Library for SDCC | -| V1.2 - 08 2019 | +| V1.2 - 08 2019 Updated 11/9/2020 | | | | Eric Boez & Fernando Garcia | | | @@ -37,9 +37,6 @@ /* set sprite pattern */ /* --------------------------------------------------------- */ void SetSpritePattern( char pattern_no, char* p_pattern, char s_size ) { - DisableInterrupt(); - VpokeFirst( Peekw( PATBAS ) + (pattern_no << 3) ); - OutPorts( 0x98, p_pattern, s_size ); - EnableInterrupt(); + CopyRamToVram(p_pattern, Peekw( 0xF926 ) + (pattern_no << 3), s_size); } diff --git a/Working Folder/fusion-c/source/lib/spriteoff.c b/Working Folder/fusion-c/source/lib/spriteoff.c index d97a339..74d1c3f 100755 --- a/Working Folder/fusion-c/source/lib/spriteoff.c +++ b/Working Folder/fusion-c/source/lib/spriteoff.c @@ -17,19 +17,33 @@ | | \___________________________________________________________/ */ -/* sprite16 -| Activate Sprite data size 16x16 pixels -| 2006/11/25 t.hara -| 2018 Eric Boez +/* spriteOff +| 2018 Eric Boez Updated November 2020 */ -#include "../../header/msx_fusion.h" -#define RG08SAV 0xFFE7 - -void SpriteOff(void) +void SpriteOff(void) __naked { - unsigned char val; - val=Peek(RG08SAV) | 0b00000010; - VDPwriteNi(0x08,val); /// Write to VDP Register 8 - Poke(RG08SAV,val); + __asm + + RG1SAV = 0xF3E0 + DPPAGE = 0xFAF5 + ATRBAS = 0xF928 + RG25SAV = 0xFFFA + RG2SAV = 0xF3E1 + RG8SAV = 0xFFE7 + RG9SAV = 0xFFE8 + + push ix + ld a,(RG8SAV) + or #0b00000010 + ld (RG8SAV),a + ld b,a + ld c,#8 + ld ix,#0x0047 ; Write VDP Bios + ld iy, (0xFCC0) ; mainrom slotaddress + call 0x001c ; interslotcall + ei + pop ix + ret + __endasm; } diff --git a/Working Folder/fusion-c/source/lib/spriteon.c b/Working Folder/fusion-c/source/lib/spriteon.c index 2d01a90..872d1ea 100755 --- a/Working Folder/fusion-c/source/lib/spriteon.c +++ b/Working Folder/fusion-c/source/lib/spriteon.c @@ -17,19 +17,34 @@ | | \___________________________________________________________/ */ -/* sprite16 -| Activate Sprite data size 16x16 pixels -| 2006/11/25 t.hara -| 2018 Eric Boez +/* spriteOn +| 2018 Eric Boez Updated November 2020 */ -#include "../../header/msx_fusion.h" -#define RG08SAV 0xFFE7 -void SpriteOn(void) +void SpriteOn(void) __naked { - unsigned char val; - val=Peek(RG08SAV) & 0b11111101; - VDPwriteNi(0x08,val); /// Write to VDP Register 8 - Poke(RG08SAV,val); + __asm + RG1SAV = 0xF3E0 + DPPAGE = 0xFAF5 + ATRBAS = 0xF928 + RG25SAV = 0xFFFA + RG2SAV = 0xF3E1 + RG8SAV = 0xFFE7 + RG9SAV = 0xFFE8 + + push ix + ld a,(RG8SAV) + and #0b11111101 + ld (RG8SAV),a + ld b,a + ld c,#8 + ld ix,#0x0047 ; Write VDP Bios + ld iy, (0xFCC0) ; mainrom slotaddress + call 0x001c ; interslotcall + ei + pop ix + ret + __endasm; + } \ No newline at end of file diff --git a/Working Folder/fusion-c/source/lib/vram.s b/Working Folder/fusion-c/source/lib/vram.s index 33191f7..94dd570 100755 --- a/Working Folder/fusion-c/source/lib/vram.s +++ b/Working Folder/fusion-c/source/lib/vram.s @@ -7,7 +7,7 @@ ;| |_| \__,_|___/_|\___/|_| |_| * | ;| | ;| The MSX C Library for SDCC | -;| V1.1 - 05-2019 | +;| V1.1 - 05-2019 updated 11/09/20 | ;| | ;| Eric Boez & Fernando Garcia | ;| | @@ -33,6 +33,7 @@ EXBRSA = 0xFAF8 SCRMOD = 0xFCAF ACPAGE = 0xFAF6 MODE = 0xFAFC +ATRBAS = 0xF928 ;--------------------------- ; Return the VRAM Size of the MSX Computer 16/64/128 KB @@ -51,17 +52,15 @@ _GetVramSize:: ret ;--------------------------- - - ; MODULE LDIRVM ; ; LDIRVM moves block from memory to the VRAM. ; -; efinition : CopyRamToVram(void *SrcRamAddress, unsigned int DestVramAddress, unsigned int Length); +; Definition : CopyRamToVram(void *SrcRamAddress, unsigned int DestVramAddress, unsigned int Length); ; _CopyRamToVram:: push ix - + di ld ix,#0 add ix,sp ld E,4(ix) ; SRC RAM address @@ -89,6 +88,7 @@ ldirvm_1: jp nz,ldirvm_1 dec a jp nz,ldirvm_1 + ei pop ix ret @@ -102,7 +102,7 @@ ldirvm_1: _CopyVramToRam:: push ix - + di ld ix,#0 add ix,sp ld E,4(ix) ; SRC VRAM address @@ -130,6 +130,7 @@ ldirmv_1: jp nz,ldirmv_1 dec a jp nz,ldirmv_1 + ei pop ix ret @@ -201,7 +202,49 @@ set_high: setaddress_1: di out (c),l ; set the low address - ld a,h ; prepare to set the middle address + ld a,h ; prepare to set the middle address and #0b00111111 pop de - ret \ No newline at end of file + ret + +;---------------------------- +; MODULE PUTSPRITE +; +; PutSprite ( char sprite_no, char pattern_no, char x, char y, char ec_color ); +; +; + +_PutSprite:: + push ix + ld ix,#0 + add ix,sp + ld a,4(ix) ; sprite_no + rlca + rlca + ld hl,(ATRBAS) + ; add HL to A + add a,l + ld l,a + adc a,h + sub l + ld h,a + di + + call SETWRT + di + ld c,#0x98 + ld a, 7 (ix) ; y + out (c),a + + ld a, 6 (ix) ; x + out (c),a + + ld a, 5 (ix) ; pattern_no + out (c),a + + ld a, 8 (ix) ; ec_color + out (c),a + ei + pop ix + + ret diff --git a/history.txt b/history.txt index 143c0ee..9b9ee80 100755 --- a/history.txt +++ b/history.txt @@ -1,6 +1,30 @@ +—————————————————— 2020 - November —————————————————— +Fusion-C 1.2b +Fix Sprites Bug with MSX1 machines + +—————————————————— 2019 - October —————————————————— +Fusion-C 1.2a + + added function to library and to manual/book : + SetSC5ColorPalette + SC2BoxFill + SetVDPWrite + SetVDPRead + +- Fixed error or rewritten functions : + SC2Pset (New fast Pset routine for screen 2) + SC2Circle & SC2CircleFilled Definitions fixed + SetSpritePattern, MSX1 VDP fixed. + Faster routine + PutSprite, MSX1 VDP Fixed. + Faster routine + Vpoke & Vpeek, MSX1 VDP Fixed + + +Added Example : + sc5ColorBlink.c + —————————————————— 2019 - August 14 —————————————————— -FUSION-c 1.2 +FUSION-C 1.2 Changes : - added support of GFX9000/V990 and TCPIP for the Gr8NET. Both in beta version