diff --git a/src/test/kc/complex/lazynes/balloon.c b/src/test/kc/complex/lazynes/balloon.c index 901ac1f23..c45ef9b80 100644 --- a/src/test/kc/complex/lazynes/balloon.c +++ b/src/test/kc/complex/lazynes/balloon.c @@ -7,6 +7,7 @@ // Original Source VBCC alpha 2 http://www.ibaug.de/vbcc/vbcc6502_2.zip #pragma target(nes) +#pragma emulator("java -jar c:/c64/Nintaco/Nintaco.jar") #include "lazynes.h" int lnMain() { diff --git a/src/test/kc/complex/lazynes/lazynes.c b/src/test/kc/complex/lazynes/lazynes.c index ecc0acfbd..5ac8ad615 100644 --- a/src/test/kc/complex/lazynes/lazynes.c +++ b/src/test/kc/complex/lazynes/lazynes.c @@ -205,12 +205,11 @@ void lnListTransfer() { char addrLo = vram_update_list[idx++]; char* ppuAddr = (char*)(uword){ addrHi&0x3f, addrLo }; char size = vram_update_list[idx++]; - // Set vertical mode ibit in PPUCTRL - char ppuCtrl = PPU->PPUCTRL; - PPU->PPUCTRL = ppuCtrl|4; + // Set vertical mode bit in PPUCTRL + PPU->PPUCTRL = 0b10001100; ppuDataTransfer(ppuAddr, vram_update_list+idx, size); // restore PPUCTRL - PPU->PPUCTRL = ppuCtrl; + PPU->PPUCTRL = 0b10001000; idx += size; } else { // The write is single-byte diff --git a/src/test/kc/complex/lazynes/list.c b/src/test/kc/complex/lazynes/list.c index 8aef725a4..bb1c10299 100644 --- a/src/test/kc/complex/lazynes/list.c +++ b/src/test/kc/complex/lazynes/list.c @@ -9,31 +9,31 @@ #pragma emulator("java -jar c:/c64/Nintaco/Nintaco.jar") #include "lazynes.h" -// Data (in PRG ROM) #pragma data_seg(GameRam) -static ubyte list[64]; +ubyte list[64]; #pragma data_seg(Data) void lnMain() { - uword offset1 = lnNameTab0+64; - uword offset2 = lnNameTab0+96; - uword offset3 = lnNameTab0+128; - list[0]=(ubyte)(offset1>>8)|lfHor; // PPU address hi - list[1]=(ubyte)offset1; // PPU address lo - list[2]=3; // Size - list[3] = 'R'; // Data - list[4] = 'X'; // Data - list[5] = '0'; // Data - list[6]=(ubyte)(offset2>>8); // PPU address hi - list[7]=(ubyte)offset2; // PPU address lo - list[8]='X'; // Size - list[9]=(ubyte)(offset3>>8)|lfHor; // PPU address hi + // Set-up an update list in the lnList() format + uword offset1 = lnNameTab0+96+4; + uword offset2 = lnNameTab0+96+2; + uword offset3 = lnNameTab0+160+2; + list[0]=(ubyte)(offset1>>8)|lfHor; // PPU address hi - horizontal + list[1]=(ubyte)offset1; // PPU address lo + list[2]=3; // Size + list[3] = 'R'; // Data + list[4] = 'X'; // Data + list[5] = '0'; // Data + list[6]=(ubyte)(offset2>>8); // PPU address hi - single + list[7]=(ubyte)offset2; // PPU address lo + list[8]='X'; // Size + list[9]=(ubyte)(offset3>>8)|lfVer; // PPU address hi - vertical list[10]=(ubyte)offset3; // PPU address lo - list[11]=3; // Size - list[12] = 'R'; // Data - list[13] = 'X'; // Data - list[14] = '0'; // Data - list[15] = lfEnd; // End transfer + list[11]=3; // Size + list[12] = 'R'; // Data + list[13] = 'X'; // Data + list[14] = '0'; // Data + list[15] = lfEnd; // End transfer static const ubyte bgColors[]={45,33,2}; static const char text[]="HELLO LAZYNES!"; @@ -43,11 +43,12 @@ void lnMain() { lnPush(lnNameTab0+32,14,text); // draw text in 2nd line for (;;) { + // Update the list with dynamic values list[5] = ((list[5]+1)&7)+'0'; list[8] = ((list[8]+1)&7)+'0'; list[14] = ((list[14]+1)&7)+'0'; - lnList(list); - lnSync(0); // sync with vblank, activate SPR0HIT splitscreen + lnList(list); // Send the list + lnSync(0); // sync with vblank } }