diff --git a/Atari/display_static.asm b/Atari/display_static.asm index 3b92e4d..d723358 100644 --- a/Atari/display_static.asm +++ b/Atari/display_static.asm @@ -9,7 +9,8 @@ OptionsScreen dta d"Welcome to Scorch v. " build ; 4 bytes from scorch.asm (fancy method) :) - dta d" (un)2000-2025" + dta d" (un)2000-" + year ; 4 bytes from scorch.asm .IF TARGET = 800 dta d" Please select option with " diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 6b9d8cf..162d219 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -76,12 +76,19 @@ mva #0 OptionsY OptionsMainLoop - + bit TeamGame + bvc NoTeamMoreRounds + lda OptionsTable+4 ; In Team game only 10 or 20 rounds available + and #%00000001 + sta OptionsTable+4 +NoTeamMoreRounds jsr OptionsInversion jsr GetKey bit escFlag spl:rts + and #$3f ;CTRL and SHIFT ellimination + cmp #@kbcode._down ; $f ;cursor down bne OptionsNoDown ldx OptionsY @@ -103,6 +110,9 @@ OptionsNoUp cmp #@kbcode._left ; $6 ;cursor left bne OptionsNoLeft ldx OptionsY + bne NoPlayersOptL + jsr SelectNextGradient.TeamOff +NoPlayersOptL dec OptionsTable,X lda OptionsTable,X bpl OptionsMainLoop @@ -112,8 +122,10 @@ OptionsNoUp OptionsNoLeft cmp #@kbcode._right ; $7 ;cursor right bne OptionsNoRight - ldx OptionsY + bne NoPlayersOptR + jsr SelectNextGradient.TeamOff +NoPlayersOptR inc OptionsTable,X lda OptionsTable,X cmp #5 ; number of columns in options @@ -131,6 +143,12 @@ EndOfOptions rts ; options selected OptionsNoReturn + .IF TARGET = 800 + cmp #@kbcode._G ; $61 ; G + bne OptionsNoG + jsr SelectNextGradient.NextGradient +OptionsNoG + .ENDIF cmp #@kbcode._tab ; Tab key bne OptionsNoTab TabPressed @@ -140,8 +158,24 @@ OptionsNoTab .endp .proc SelectNextGradient - lda OptionsY ; if "Wind" option selected - cmp #$03 + lda OptionsY + bne NoTeamGame + lda OptionsTable ; OptionsY=0 + cmp #$02 ; 4 players + beq TeamCorrect + cmp #$04 ; 6 players + beq TeamCorrect +TeamOff + lda #0 + beq NoTeam +TeamCorrect + lda TeamGame + eor #$74 ; 't' character +NoTeam + sta TeamGame + rts +NoTeamGame + cmp #$03 ; if "Wind" option selected bne NotWind lda WindChangeInRound ; wind change after each turn (not round only) flag eor #$1f ; '?' character @@ -168,7 +202,8 @@ NoMountains eor #$5d ; cursor down character sta BlackHole rts -NoBlackHole +NoBlackHole +NextGradient ldy GradientNr iny cpy #$03 @@ -197,6 +232,8 @@ NoGradientLoop sta OptionsHere+128 lda FastSoilDown sta OptionsHere+88 + lda TeamGame + sta OptionsHere+8 YPos = temp2 XPos = temp2+1 @@ -318,6 +355,9 @@ AfterManualPurchase GoToActivation mva #$ff LastWeapon + ldx TankNr + jsr SetTeamsOrPlayerHeaders + ; we are clearing list of the weapons jsr ClearLists ; fast lists clear @@ -335,6 +375,10 @@ GoToActivation ldx tankNr lda TankStatusColoursTable,x + bit TeamGame + bvc NoTeamColors + lda TankStatusColoursTableT,x +NoTeamColors sta COLOR2 ; there is a tank (player) number in tanknr @@ -404,6 +448,7 @@ ChoosingItemForPurchase jsr PutLitteChar ; Places pointer at the right position jsr getkey + and #$3f ;CTRL and SHIFT ellimination bit escFlag bpl @+ mva #0 escFlag @@ -1075,16 +1120,20 @@ loop sta (temp2),y mva #0 TankNr sta COLBAKS ; set color of background -@ tax - lda TankStatusColoursTable,x - sta COLOR2 ; set color of player name line - jsr EnterPlayerName - bit escFlag - spl:rts - jsr CheckTankCheat - inc TankNr - lda TankNr - cmp NumberOfPlayers +@ tax + lda TankStatusColoursTable,x + bit TeamGame + bvc NoTeamColors + lda TankStatusColoursTableT,x +NoTeamColors + sta COLOR2 ; set color of player name line + jsr EnterPlayerName + bit escFlag + spl:rts + jsr CheckTankCheat + inc TankNr + lda TankNr + cmp NumberOfPlayers bne @- rts .endp @@ -1145,6 +1194,7 @@ CheckKeys sta NameScreen2+15 ; display tank shape number jsr CursorDisplay jsr getkey + and #$3f ;CTRL and SHIFT ellimination bit escFlag spl:rts @@ -1588,6 +1638,10 @@ displayloop1 SetDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen ; make text and color lines for each tank ldx NumberOfPlayers ;we start from the highest (best) tank + bit TeamGame + bvc NoTeamsResults + ldx #MaxPlayers+2 ; set pointer to teams results +NoTeamsResults dex ;and it is the last one stx ResultOfTankNr ;in TankSequence table ldy #0 ;witch line we are coloring @@ -1645,8 +1699,10 @@ NextChar adw temp #19 displayposition jsr displaydec5 mva #0 displayposition ; overwrite first digit - ; put AI symbol or joystick ldx TankNr + bit TeamGame + bvs TeamsNoJoy + ; put AI symbol or joystick only if no Teams ldy SkillTable,x bne ThisIsAI ldy JoyNumber,x @@ -1663,6 +1719,7 @@ NotAItank tya ldy #38 sta (temp),y +TeamsNoJoy ; put earned money on the screen lda EarnedMoneyL,x sta decimal @@ -1676,7 +1733,11 @@ NotAItank ply iny dec ResultOfTankNr - jpl FinalResultOfTheNextPlayer + lda ResultOfTankNr + bmi MakeBlackLines + cmp #MaxPlayers-1 ; check for last team + beq MakeBlackLines + jmp FinalResultOfTheNextPlayer MakeBlackLines cpy #$06 beq AllLinesReady @@ -1839,6 +1900,7 @@ EndOfCredits ;------------------------------------------------- .proc PutTankNameOnScreen ;------------------------------------------------- + jsr SetTeamsOrPlayerHeaders ; puts name of the tank on the screen ldy #$00 ; lda TankNr @@ -2047,6 +2109,10 @@ AngleDisplay .proc RoundOverSprites ; fill sprites with bytes ldy numberOfPlayers + bit TeamGame + bvc NoTeamSprites + ldy #2 ; 2 teams +NoTeamSprites dey lda gameOverSpritesTop,y sta temp @@ -2081,6 +2147,32 @@ AngleDisplay rts .endp ;------------------------------------------------- +.proc SetTeamsOrPlayerHeaders + ; TankNr in X register + mwa #Player_Header temp + ldy #$05 ; 6 characters + bit TeamGame + bvc no_teams + mwa #Team_Header temp +no_teams + lda (temp),y + sta statusBuffer,y + sta purchaseTextBuffer,y + dey + bpl no_teams + bit TeamGame + bvc no_teams2 + txa + ror + bcc A_Team +B_Team + inc statusBuffer + inc purchaseTextBuffer +A_Team +no_teams2 + rts +.endp +;------------------------------------------------- .proc DisplayWeaponName ; nr of weapon in A, address to put in weaponPointer @weapon_index = TextNumberOff @@ -2134,5 +2226,83 @@ zeroth_talk ldy #0 rts .endp + +;------------------------------------------------- +.proc _calc_packed_display +; Find Nth packed string inside a [len][packed-bytes] stream. +; +; in: +; TextNumberOff = index (0..) +; LineAddress4x4 = base address of the packed stream (points to first len byte) +; out: +; LineAddress4x4 = address of selected record (points to its len byte) +; trashes: A, X, Y, temp, temp2 +; +; Record size in bytes = 1 + ceil(len*5/8) +; where `len` is the 1-byte character count (max 63). +;------------------------------------------------- +@idx = temp+1 + lda TextNumberOff + sta @idx + beq done + +next_record + ldy #0 + lda (LineAddress4x4),y + sta temp ; len (low byte) + + ; advance past len byte + inw LineAddress4x4 + + ; temp2 = len*5 + 7 + lda temp + sta temp2 + lda #0 + sta temp2+1 + + ; temp2 = len*4 + asl temp2 + rol temp2+1 + asl temp2 + rol temp2+1 + ; temp2 = len*5 + clc + lda temp2 + adc temp + sta temp2 + lda temp2+1 + adc #0 + sta temp2+1 + ; +7 for ceil + clc + lda temp2 + adc #7 + sta temp2 + bcc @+ + inc temp2+1 +@ + ; >>3 (divide by 8) + lsr temp2+1 + ror temp2 + lsr temp2+1 + ror temp2 + lsr temp2+1 + ror temp2 + + ; LineAddress4x4 += temp2 + clc + lda LineAddress4x4 + adc temp2 + sta LineAddress4x4 + lda LineAddress4x4+1 + adc temp2+1 + sta LineAddress4x4+1 + + dec @idx + bne next_record + +done + rts +.endp .endif \ No newline at end of file diff --git a/C64/textproc.asm b/C64/textproc.asm index 7621f96..2942b04 100644 --- a/C64/textproc.asm +++ b/C64/textproc.asm @@ -376,6 +376,84 @@ DisplayAngle zeroth_talk rts .endp + +;------------------------------------------------- +.proc _calc_packed_display +; Find Nth packed string inside a [len][packed-bytes] stream. +; +; in: +; TextNumberOff = index (0..) +; LineAddress4x4 = base address of the packed stream (points to first len byte) +; out: +; LineAddress4x4 = address of selected record (points to its len byte) +; trashes: A, X, Y, temp, temp2 +; +; Record size in bytes = 1 + ceil(len*5/8) +; where `len` is the 1-byte character count (max 63). +;------------------------------------------------- +@idx = temp+1 + lda TextNumberOff + sta @idx + beq done + +next_record + ldy #0 + lda (LineAddress4x4),y + sta temp ; len (low byte) + + ; advance past len byte + inw LineAddress4x4 + + ; temp2 = len*5 + 7 + lda temp + sta temp2 + lda #0 + sta temp2+1 + + ; temp2 = len*4 + asl temp2 + rol temp2+1 + asl temp2 + rol temp2+1 + ; temp2 = len*5 + clc + lda temp2 + adc temp + sta temp2 + lda temp2+1 + adc #0 + sta temp2+1 + ; +7 for ceil + clc + lda temp2 + adc #7 + sta temp2 + bcc @+ + inc temp2+1 +@ + ; >>3 (divide by 8) + lsr temp2+1 + ror temp2 + lsr temp2+1 + ror temp2 + lsr temp2+1 + ror temp2 + + ; LineAddress4x4 += temp2 + clc + lda LineAddress4x4 + adc temp2 + sta LineAddress4x4 + lda LineAddress4x4+1 + adc temp2+1 + sta LineAddress4x4+1 + + dec @idx + bne next_record + +done + rts +.endp ;------------------------------------------------- diff --git a/Manuals/MANUAL_EN.bin b/Manuals/MANUAL_EN.bin index b75a473..fdbd2b0 100644 Binary files a/Manuals/MANUAL_EN.bin and b/Manuals/MANUAL_EN.bin differ diff --git a/Manuals/MANUAL_EN.md b/Manuals/MANUAL_EN.md index ca930bf..70ca52b 100644 --- a/Manuals/MANUAL_EN.md +++ b/Manuals/MANUAL_EN.md @@ -39,7 +39,9 @@ On the first screen, you can configure gameplay options: Select options with cursor keys or a joystick. -The **TAB**, **SELECT**, long press of first joystick button or second joystick button (supported Joy 2B+ standard or compatible), and on the Atari 5200 console, the **5** controller key changes the color of the mountains (3 versions to choose from). +The **G**, **TAB**, **SELECT**, long press of first joystick button or second joystick button (supported Joy 2B+ standard or compatible), and on the Atari 5200 console, the **5** controller key changes the color of the mountains (3 versions to choose from). + +If the cursor indicates the the number of players and 4 or 6 players are selected, pressing **TAB** activates team play. This is indicated by the letter **t** next to the word **Players**. Team play is limited to 4 or 6 players and a maximum of 20 rounds. Players with odd numbers are assigned to A-Team, and players with even numbers are assigned to B-Team. If the cursor indicates the wind strength selection option **Wind**, pressing **TAB** changes the way the wind strength is drawn from "every round" to "every turn" and vice versa. Drawing every turn is indicated by the **?** sign next to the word **Wind**. @@ -86,7 +88,7 @@ This makes it possible to activate shields and others before the round starts. ![Main game screen.](images/StatusLine.png) The status line shows which player is currently allowed to take a shot and a set of other information: -* **Player** - player's name, +* **Player** - player's name. In the case of a team game, the word **Player** is replaced with the name of the team. * active joystick number or difficulty level of computer-controlled player (1-**Moron** - 8-**Unknown**), @@ -111,19 +113,19 @@ The keyboard controls cursor keys or joystick: left/right - change the angle of | A800 | Function | |--------------|--------------------| -| **SPACE**/**FIRE** | shoot (see ↓)| -| **TAB**/**SELECT** | weapon change (↓)| -| **I** | inventory (↓)| -| **A**/**OPTION** | defensives (↓)| +| **SPACE**/**FIRE** | shoot (see ¡)| +| **TAB**/**SELECT** | weapon change (¡)| +| **I** | inventory (¡)| +| **A**/**OPTION** | defensives (¡)| | **M** | music on/off | | **S** | sound on/off | -| **START** | turbo mode (↓)| -| **O** | game over (↓)| -| **START**+**OPTION** | immediate quit (↓)| -| **G** | color scheme (↓)| -| **ESC** | return (↓)| -| **Y** | confirm (↓)| -| **CTRL**+**HELP** | visual debug (↓)| +| **START** | turbo mode (¡)| +| **O** | game over (¡)| +| **START**+**OPTION** | immediate quit (¡)| +| **G** | color scheme (¡)| +| **ESC** | return (¡)| +| **Y** | confirm (¡)| +| **CTRL**+**HELP** | visual debug (¡)| * **shoot** or joystick button pressed briefly - firing a shot. @@ -222,27 +224,27 @@ And here are the values of maximum energy loss for individual weapons. If a weap | Funky Bomb | 168 88 (*5) | | MIRV | 136 (*5) | | Death's Head | 240 (*5) | -| Napalm | 40 (see ↓) | -| Hot Napalm | 80 (↓) | +| Napalm | 40 (see ¡) | +| Hot Napalm | 80 (¡) | | Baby Roller | 88 | | Roller | 168 | | Heavy Roller | 240 | -| Riot Charge | 0 (↓) | -| Riot Blast | 0 (↓) | -| Riot Bomb | 0 (↓) | -| Heavy Riot Bomb | 0 (↓) | -| Digger | 0 (↓) | -| Heavy Digger | 0 (↓) | -| Sandhog | 0 (↓) | -| Heavy Sandhog | 0 (↓) | -| Dirt Clod | 0 (↓) | -| Dirt Ball | 0 (↓) | -| Ton of Dirt | 0 (↓) | -| Liquid Dirt | 0 (↓) | -| Dirt Charge | 0 (↓) | -| Propaganda | 0 (↓) | -| Stomp | 0 (↓) | -| Laser | 100 (↓) | +| Riot Charge | 0 (¡) | +| Riot Blast | 0 (¡) | +| Riot Bomb | 0 (¡) | +| Heavy Riot Bomb | 0 (¡) | +| Digger | 0 (¡) | +| Heavy Digger | 0 (¡) | +| Sandhog | 0 (¡) | +| Heavy Sandhog | 0 (¡) | +| Dirt Clod | 0 (¡) | +| Dirt Ball | 0 (¡) | +| Ton of Dirt | 0 (¡) | +| Liquid Dirt | 0 (¡) | +| Dirt Charge | 0 (¡) | +| Propaganda | 0 (¡) | +| Stomp | 0 (¡) | +| Laser | 100 (¡) | Remarks: * **Napalm** - this weapon is different and the distance from the center is not determined, simply any tank in the range of the flames loses 40 units of energy. @@ -348,6 +350,8 @@ The game has 8 difficulty levels of computer-controlled opponents. Or 7 differen * **Unknown** - Before firing each shot, he randomly chooses a course of action from **Poolshark** to **Cyborg** and applies his tactics. However, the tactics of weapon purchases are always identical to **Tosser**. +**Poolshark**, **Tosser**, **Chooser**, **Spoiler**, and **Cyborg** never target a member of their own team during team play, even if it puts them at risk. + ### AI goes shopping. Buying a weapon (offensive or defensive) works as follows: First, one of the weapons is drawn (among all possible offensive or defensive weapons). Then a check is performed to see if the drawn weapon is on the list of weapons possible for purchase by the tank. If not, no weapon is bought in this trial, and if so, its price is checked. If the tank has that much money, the weapon is bought, otherwise, the trial ends without making a purchase. diff --git a/Manuals/MANUAL_PL_A800.bin b/Manuals/MANUAL_PL_A800.bin index 13c30f8..6d694ab 100644 Binary files a/Manuals/MANUAL_PL_A800.bin and b/Manuals/MANUAL_PL_A800.bin differ diff --git a/Manuals/MANUAL_PL_A800.md b/Manuals/MANUAL_PL_A800.md index 89aaeef..7745bf0 100644 --- a/Manuals/MANUAL_PL_A800.md +++ b/Manuals/MANUAL_PL_A800.md @@ -1,216 +1,218 @@ # Podstawowa instrukcja: -Grać można przy użyciu klawiatury (wszystkie funkcjonalnoÅ›ci) lub joysticka w dowolnym porcie (wszystkie funkcjonalnoÅ›ci niezbÄ™dne w rozgrywce). +Graæ mo¿na przy u¿yciu klawiatury (wszystkie funkcjonalnoœci) lub joysticka w dowolnym porcie (wszystkie funkcjonalnoœci niezbêdne w rozgrywce). -## 1. Wybór opcji gry. +## 1. Wybór opcji gry. ![Ekran wyboru opcji gry.](images/MainMenu.png) -Na pierwszym ekranie możemy skonfigurować opcje rozgrywki: +Na pierwszym ekranie mo¿emy skonfigurowaæ opcje rozgrywki: * **Players** - liczba graczy (2 - 6) obejmuje tak ludzi, jak graczy sterowanych przez komputer -* **Cash** - poczÄ…tkowÄ… ilość gotówki każdego z graczy (8k to wybrana przez nas wartość optymalna, lecz przy krótkich rozgrywkach warto wybrać wiÄ™kszÄ… wartość) +* **Cash** - pocz¹tkow¹ iloœæ gotówki ka¿dego z graczy (8k to wybrana przez nas wartoœæ optymalna, lecz przy krótkich rozgrywkach warto wybraæ wiêksz¹ wartoœæ) -* **Gravity** - siÅ‚a grtawitacji +* **Gravity** - si³a grtawitacji -* **Wind** - maksymalna siÅ‚a wiatru w skali Beauforta (wiatr jest losowany na poczÄ…tku każdej z rund lub w czasie rundy pomiÄ™dzy turami, tu możemy wybrać jak silny może być): - * 1B - maksymalna siÅ‚a wiatru: 5 - * 3B - maksymalna siÅ‚a wiatru: 20 - * 5B - maksymalna siÅ‚a wiatru: 40 - * 7B - maksymalna siÅ‚a wiatru: 70 - * 9B - maksymalna siÅ‚a wiatru: 99 +* **Wind** - maksymalna si³a wiatru w skali Beauforta (wiatr jest losowany na pocz¹tku ka¿dej z rund lub w czasie rundy pomiêdzy turami, tu mo¿emy wybraæ jak silny mo¿e byæ): + * 1B - maksymalna si³a wiatru: 5 + * 3B - maksymalna si³a wiatru: 20 + * 5B - maksymalna si³a wiatru: 40 + * 7B - maksymalna si³a wiatru: 70 + * 9B - maksymalna si³a wiatru: 99 * **Rounds** - liczba rozgrywanych rund -* **Missiles** - szybkość lotu pocisków (nie ma wpÅ‚ywu na tor lotu - zmienia jedynie widocznÄ… prÄ™dkość rysowania - nie zmienia nic w samej rozgrywce) +* **Missiles** - szybkoœæ lotu pocisków (nie ma wp³ywu na tor lotu - zmienia jedynie widoczn¹ prêdkoœæ rysowania - nie zmienia nic w samej rozgrywce) -* **Seppuku** - czÄ™stotliwość samobójstw :) - jeÅ›li przez ileÅ› tur gra nie odnotowaÅ‚a trafieÅ„ (czoÅ‚gi ciÄ…gle strzelajÄ… niecelnie) jeden z takich pudÅ‚ujÄ…cych czoÅ‚gów popeÅ‚nia samobójstwo - tu okreÅ›lamy jak dÅ‚ugo mogÄ… "strzelać w próżniÄ™" :) - jeÅ›li grajÄ… tylko ludzie, optymalne ustawienie to "norm", a w przypadku graczy sterowanych przez komputer... wedle uznania. +* **Seppuku** - czêstotliwoœæ samobójstw :) - jeœli przez ileœ tur gra nie odnotowa³a trafieñ (czo³gi ci¹gle strzelaj¹ niecelnie) jeden z takich pud³uj¹cych czo³gów pope³nia samobójstwo - tu okreœlamy jak d³ugo mog¹ "strzelaæ w pró¿niê" :) - jeœli graj¹ tylko ludzie, optymalne ustawienie to "norm", a w przypadku graczy sterowanych przez komputer... wedle uznania. -* **Mountain** - wysokość (i pofaÅ‚dowanie) gór od prawie pÅ‚askich (NL - Królestwo Niderlandów), do strzelistych i wysokich (NP - Federalna Demokratyczna Republika Nepalu) +* **Mountain** - wysokoœæ (i pofa³dowanie) gór od prawie p³askich (NL - Królestwo Niderlandów), do strzelistych i wysokich (NP - Federalna Demokratyczna Republika Nepalu) -* **Walls** - sposób dziaÅ‚ania Å›cian (krawÄ™dzi ekranu): - * **none** - pociski, które wyleciaÅ‚y poza ekran nie wracajÄ… (czarny kolor ramki ekranu) - * **wrap** - ekran "zawija siÄ™" i pociski, które wyleciaÅ‚y w prawo pojawiajÄ… siÄ™ z lewej strony i odwrotnie (fioletowy kolor ramki ekranu) - * **bump** - prawa i lewa Å›ciana odbijajÄ… pociski, które chcÄ… przez nie przelecieć (granatowy kolor ramki ekranu) - * **boxy** - tak jak bump, tyle że "sufit" także odbija pociski (zielony kolor ramki ekranu) - * **rand** - na poczÄ…tku każdej rundy losowany jest jeden z 4 powyższych sposobów dziaÅ‚ania Å›cian +* **Walls** - sposób dzia³ania œcian (krawêdzi ekranu): + * **none** - pociski, które wylecia³y poza ekran nie wracaj¹ (czarny kolor ramki ekranu) + * **wrap** - ekran "zawija siê" i pociski, które wylecia³y w prawo pojawiaj¹ siê z lewej strony i odwrotnie (fioletowy kolor ramki ekranu) + * **bump** - prawa i lewa œciana odbijaj¹ pociski, które chc¹ przez nie przelecieæ (granatowy kolor ramki ekranu) + * **boxy** - tak jak bump, tyle ¿e "sufit" tak¿e odbija pociski (zielony kolor ramki ekranu) + * **rand** - na pocz¹tku ka¿dej rundy losowany jest jeden z 4 powy¿szych sposobów dzia³ania œcian - W trakcie rozgrywki aktualny sposób dziaÅ‚ania Å›cian reprezentowany jest przez kolor ramki ekranu: none - czarny, wrap - fioletowy, bump - granatowy, boxy - zielony. + W trakcie rozgrywki aktualny sposób dzia³ania œcian reprezentowany jest przez kolor ramki ekranu: none - czarny, wrap - fioletowy, bump - granatowy, boxy - zielony. -Wybór opcji klawiszami kursora lub joystickiem. +Wybór opcji klawiszami kursora lub joystickiem. -Klawisz **TAB**, **SELECT**, dÅ‚uższe przytrzymanie pierwszego przycisku joysticka lub drugi przycisk joysticka (wspierany standard Joy 2B+ lub zgodny) zmieniajÄ… kolor gór (3 wersje do wyboru). +Klawisze **G**, **TAB**, **SELECT**, d³u¿sze przytrzymanie pierwszego przycisku joysticka lub drugi przycisk joysticka (wspierany standard Joy 2B+ lub zgodny) zmieniaj¹ kolor gór (3 wersje do wyboru). -JeÅ›li kursor wskazuje opcjÄ™ wyboru siÅ‚y wiatru **Wind**, wciÅ›niÄ™cie **TAB** zmienia sposób losowania siÅ‚y wiatru z "co rundÄ™" na "co turÄ™" i odwrotnie. Losowanie co turÄ™ jest sygnalizowane znakiem "?" przy sÅ‚owie **Wind**. +Jeœli kursor wskazuje opcjê wyboru iloœci graczy i wybranych jest 4 lub 6 graczy, wciœniêcie **TAB** w³¹cza rozgrywkê dru¿ynow¹. Jest to sygnalizowane liter¹ **t** przy s³owie **Players**. Rozgrywka dru¿ynowa jest ograniczona do 4 lub 6 graczy i maksimum 20 rund. Gracze o numerach nieparzystych s¹ przydzielani do Dru¿yny A, a gracze o numerach parzystych do Dru¿yny B. -JeÅ›li kursor wskazuje opcjÄ™ wyboru siÅ‚y ciążenia **Gravity**, **TAB** zmienia procedurÄ™ opadania ziemi na mniej efektownÄ…, ale szybszÄ… i odwrotnie. Wybranie szybkiego opadania ziemi sygnalizowane jest literÄ… "f" przy sÅ‚owie **Gravity**. +Jeœli kursor wskazuje opcjê wyboru si³y wiatru **Wind**, wciœniêcie **TAB** zmienia sposób losowania si³y wiatru z "co rundê" na "co turê" i odwrotnie. Losowanie co turê jest sygnalizowane znakiem "?" przy s³owie **Wind**. -JeÅ›li kursor wskazuje opcjÄ™ wyboru wysokoÅ›ci gór **Mountain**, **TAB** przełącza opcjÄ™ zmiennej co rundÄ™ wysokoÅ›ci gór. Losowanie co rundÄ™ jest sygnalizowane znakiem "?" przy sÅ‚owie **Mountain**. +Jeœli kursor wskazuje opcjê wyboru si³y ci¹¿enia **Gravity**, **TAB** zmienia procedurê opadania ziemi na mniej efektown¹, ale szybsz¹ i odwrotnie. Wybranie szybkiego opadania ziemi sygnalizowane jest liter¹ "f" przy s³owie **Gravity**. -Klawisz **RETURN** lub przycisk joysticka przechodzi do nastÄ™pnego ekranu. +Jeœli kursor wskazuje opcjê wyboru wysokoœci gór **Mountain**, **TAB** prze³¹cza opcjê zmiennej co rundê wysokoœci gór. Losowanie co rundê jest sygnalizowane znakiem "?" przy s³owie **Mountain**. + +Klawisz **RETURN** lub przycisk joysticka przechodzi do nastêpnego ekranu. -## 2. Gracze i poziom przeciwników. -![Ekran wyboru graczy i poziomu trudnoÅ›ci.](images/DiffMenu.png) -Wprowadzanie nazw graczy i wybór poziomu graczy sterowanych przez komputer. +## 2. Gracze i poziom przeciwników. +![Ekran wyboru graczy i poziomu trudnoœci.](images/DiffMenu.png) +Wprowadzanie nazw graczy i wybór poziomu graczy sterowanych przez komputer. -Drugi ekran powtarza siÄ™ dla każdego z graczy, można na nim klawiszami kursora lub joystickiem wybrać czy danym czoÅ‚giem bÄ™dzie kierowaÅ‚ czÅ‚owiek (opcja HUMAN), czy też komputer (pozostaÅ‚e opcje). +Drugi ekran powtarza siê dla ka¿dego z graczy, mo¿na na nim klawiszami kursora lub joystickiem wybraæ czy danym czo³giem bêdzie kierowa³ cz³owiek (opcja HUMAN), czy te¿ komputer (pozosta³e opcje). -Klawisz **TAB**, **SELECT** lub drugi przycisk joysticka pozwalajÄ… wybrać z którego portu joysticka bÄ™dzie korzystaÅ‚ gracz. +Klawisz **TAB**, **SELECT** lub drugi przycisk joysticka pozwalaj¹ wybraæ z którego portu joysticka bêdzie korzysta³ gracz. -Klawisz **INVERSE** lub **OPTION** umożliwiajÄ… wybór jednego z 3 dostÄ™pnych ksztaÅ‚tów czoÅ‚gów. +Klawisz **INVERSE** lub **OPTION** umo¿liwiaj¹ wybór jednego z 3 dostêpnych kszta³tów czo³gów. -JednoczeÅ›nie z klawiatury można wprowadzić nazwÄ™ wybranego gracza. +Jednoczeœnie z klawiatury mo¿na wprowadziæ nazwê wybranego gracza. -Po naciÅ›niÄ™ciu klawisza **RETURN** lub krótkim naciÅ›niÄ™ciu przycisku joysticka ekran przechodzi na nastÄ™pnego gracza aż zostanÄ… wybrane poziomy trudnoÅ›ci dla wszystkich. +Po naciœniêciu klawisza **RETURN** lub krótkim naciœniêciu przycisku joysticka ekran przechodzi na nastêpnego gracza a¿ zostan¹ wybrane poziomy trudnoœci dla wszystkich. -NazwÄ™ gracza można wprowadzać także przy pomocy joysticka. Po wciÅ›niÄ™ciu i przytrzymaniu przycisku ponad 1s. za pomocÄ… ruchów góra/dół można zmienić wprowadzanÄ… literÄ™, a lewo/prawo jej pozycjÄ™ w nazwie. Puszczenie przycisku koÅ„czy wprowadzanie nazwy i wraca do wyboru poziomu. +Nazwê gracza mo¿na wprowadzaæ tak¿e przy pomocy joysticka. Po wciœniêciu i przytrzymaniu przycisku ponad 1s. za pomoc¹ ruchów góra/dó³ mo¿na zmieniæ wprowadzan¹ literê, a lewo/prawo jej pozycjê w nazwie. Puszczenie przycisku koñczy wprowadzanie nazwy i wraca do wyboru poziomu. -JeÅ›li nazwa nie zostanie wpisana, to zostanie uzupeÅ‚niona nazwÄ… domyÅ›lnÄ…. +Jeœli nazwa nie zostanie wpisana, to zostanie uzupe³niona nazw¹ domyœln¹. -## 3. Ekran zakupów (przed każdÄ… rundÄ…). -![Ekran zakupów broni ofensywnych.](images/PurOffensive.png) -![Ekran zakupów broni defensywnych.](images/PurDefensive.png) -Na tym ekranie można dokonywać zakupów broni ofensywnych i defensywnych. Widoczne sÄ… tylko te bronie, na które gracza stać wraz z informacjÄ… o cenie i iloÅ›ci jednostek danej broni, którÄ… za tÄ™ cenÄ™ otrzymamy. Informacje na ekranie nie wymagajÄ… chyba wiÄ™cej opisu. Po listach poruszamy siÄ™ klawiszami kursora (góra i dół) lub joystickiem, klawisz **TAB** lub strzaÅ‚ka w lewo, czy też ruch joystickiem w lewo lub drugi przycisk joysticka zmieniajÄ… ekran na bronie defensywne lub ofensywne, klawisz **SPACJA** , strzaÅ‚ka w prawo, dÅ‚uższe przytrzymanie przycisku joysticka, a także joystick w prawo realizujÄ… zakup wskazanej broni. +## 3. Ekran zakupów (przed ka¿d¹ rund¹). +![Ekran zakupów broni ofensywnych.](images/PurOffensive.png) +![Ekran zakupów broni defensywnych.](images/PurDefensive.png) +Na tym ekranie mo¿na dokonywaæ zakupów broni ofensywnych i defensywnych. Widoczne s¹ tylko te bronie, na które gracza staæ wraz z informacj¹ o cenie i iloœci jednostek danej broni, któr¹ za tê cenê otrzymamy. Informacje na ekranie nie wymagaj¹ chyba wiêcej opisu. Po listach poruszamy siê klawiszami kursora (góra i dó³) lub joystickiem, klawisz **TAB** lub strza³ka w lewo, czy te¿ ruch joystickiem w lewo lub drugi przycisk joysticka zmieniaj¹ ekran na bronie defensywne lub ofensywne, klawisz **SPACJA** , strza³ka w prawo, d³u¿sze przytrzymanie przycisku joysticka, a tak¿e joystick w prawo realizuj¹ zakup wskazanej broni. Klawisz **RETURN** lub przycisk joysticka przechodzi do ekranu aktywacji broni defensywnych. ![Ekran aktywacji broni defensywnych.](images/ActDefensive.png) -Na ekranie tym można aktywować zakupione wczeÅ›niej bronie defensywne czy też ofensywne. ObsÅ‚ugiwany jest identycznie jak ekran zakupów, jednak **SPACJA** lub strzaÅ‚ka w prawo, a także joystick w prawo realizujÄ… aktywacje wskazanej broni. Umożliwia to aktywowanie osÅ‚on jeszcze przed rozpoczÄ™ciem rundy. +Na ekranie tym mo¿na aktywowaæ zakupione wczeœniej bronie defensywne czy te¿ ofensywne. Obs³ugiwany jest identycznie jak ekran zakupów, jednak **SPACJA** lub strza³ka w prawo, a tak¿e joystick w prawo realizuj¹ aktywacje wskazanej broni. Umo¿liwia to aktywowanie os³on jeszcze przed rozpoczêciem rundy. -Klawisz **RETURN** lub przycisk joysticka przechodzi do ekranu zakupów nastÄ™pnego gracza. -(oczywiÅ›cie dla graczy komputerowych ten ekran siÄ™ nie pojawia) +Klawisz **RETURN** lub przycisk joysticka przechodzi do ekranu zakupów nastêpnego gracza. +(oczywiœcie dla graczy komputerowych ten ekran siê nie pojawia) -## 4. Główny ekran gry. -![Główny ekran gry.](images/StatusLine.png) -W linii statusowej widoczna jest informacja o tym, który z graczy aktualnie może oddać strzaÅ‚ oraz zestaw innych informacji: +## 4. G³ówny ekran gry. +![G³ówny ekran gry.](images/StatusLine.png) +W linii statusowej widoczna jest informacja o tym, który z graczy aktualnie mo¿e oddaæ strza³ oraz zestaw innych informacji: -* **Player** - nazwa czoÅ‚gu gracza +* **Player** - nazwa czo³gu gracza. W przypadku gry dru¿ynowej s³owo **Player** zastêpowane jest nazw¹ dru¿yny. * numer aktywnego joysticka lub poziom gracza sterowanego przez komputer (1-**Moron** - 8-**Unknown**), -* wybrana aktualnie broÅ„ ofensywna (symbol - ilość - nazwa), +* wybrana aktualnie broñ ofensywna (symbol - iloœæ - nazwa), -* **Energy** - pozostaÅ‚a ilość punktów energii gracza i jeÅ›li ma on aktywnÄ… broÅ„ defensywnÄ… posiadajÄ…cÄ… swój zasób energii - w nawiasie ten zasób +* **Energy** - pozosta³a iloœæ punktów energii gracza i jeœli ma on aktywn¹ broñ defensywn¹ posiadaj¹c¹ swój zasób energii - w nawiasie ten zasób -* **Angle** - ustawiony przez gracza kÄ…t nachylenia lufy i kierunek jej nachylenia +* **Angle** - ustawiony przez gracza k¹t nachylenia lufy i kierunek jej nachylenia -* **Force** - ustawiona przez gracza siÅ‚a strzaÅ‚u (maksymalna siÅ‚a strzaÅ‚u jest ograniczana przez energiÄ™ gracza - nie może przekroczyć energii * 10 . Oznacza to, że majÄ…c małą ilość energii możemy oddać sÅ‚absze strzaÅ‚y +* **Force** - ustawiona przez gracza si³a strza³u (maksymalna si³a strza³u jest ograniczana przez energiê gracza - nie mo¿e przekroczyæ energii * 10 . Oznacza to, ¿e maj¹c ma³¹ iloœæ energii mo¿emy oddaæ s³absze strza³y * **Round** - numer aktualnej rundy rozgrywki -* **Wind** - prÄ™dkość i kierunek wiatru +* **Wind** - prêdkoœæ i kierunek wiatru -* symbol "komputera" jeÅ›li aktywna jest **Auto Defense** +* symbol "komputera" jeœli aktywna jest **Auto Defense** -* w nawiasie nazwa aktywnej broni defensywnej - jeÅ›li jest jakaÅ› aktywowana przez gracza +* w nawiasie nazwa aktywnej broni defensywnej - jeœli jest jakaœ aktywowana przez gracza -Tutaj klawiszologia jest prosta, klawisze kursora lub joystick: lewo/prawo - zmiana kÄ…ta nachylenia lufy, góra/dół - zmiana ustawienia siÅ‚y strzaÅ‚u. +Tutaj klawiszologia jest prosta, klawisze kursora lub joystick: lewo/prawo - zmiana k¹ta nachylenia lufy, góra/dó³ - zmiana ustawienia si³y strza³u. | A800 | funkcja | |--------------|------------------| -| **SPACJA**/**FIRE** | strzaÅ‚ (zob. ↓)| -| **TAB**/**SELECT** | zmiana broni (↓)| -| **I** | inwentarz (↓)| -| **A**/**OPTION** | defensywa (↓)| -| **M** | wÅ‚/wyÅ‚ muzyki | -| **S** | wÅ‚/wyÅ‚ dźwiÄ™ków | -| **START** | tryb turbo (↓)| -| **O** | koniec gry (↓)| -| **START**+**OPTION** | bezw. koniec (↓)| -| **G** | inne kolory (↓)| -| **ESC** | powrót (↓)| -| **Y** | zatwierdzam (↓)| -| **CTRL**+**HELP** | visual debug (↓)| +| **SPACJA**/**FIRE** | strza³ (zob. ¡)| +| **TAB**/**SELECT** | zmiana broni (¡)| +| **I** | inwentarz (¡)| +| **A**/**OPTION** | defensywa (¡)| +| **M** | w³/wy³ muzyki | +| **S** | w³/wy³ dŸwiêków | +| **START** | tryb turbo (¡)| +| **O** | koniec gry (¡)| +| **START**+**OPTION** | bezw. koniec (¡)| +| **G** | inne kolory (¡)| +| **ESC** | powrót (¡)| +| **Y** | zatwierdzam (¡)| +| **CTRL**+**HELP** | visual debug (¡)| -* **strzaÅ‚**, przycisk joysticka naciÅ›niÄ™te krótko - oddanie strzaÅ‚u +* **strza³**, przycisk joysticka naciœniête krótko - oddanie strza³u -* **zmiana broni**, drugi przycisk joysticka - wybór broni ofensywnej (ta opcja nie jest dostÄ™pna bezpoÅ›rednio standardowym joystickiem - trzeba wybrać Inventory). +* **zmiana broni**, drugi przycisk joysticka - wybór broni ofensywnej (ta opcja nie jest dostêpna bezpoœrednio standardowym joystickiem - trzeba wybraæ Inventory). -* **inwentarz**, dÅ‚uższe przytrzymanie przycisku joysticka - przejÅ›cie do Inventory (aktywacji broni). Inventory to ekran (a w zasadzie dwa) bliźniaczo podobny do ekranu zakupów. Zasady poruszania siÄ™ sÄ… identyczne - z tym, że tu nie kupujemy broni, ale wybieramy jednÄ… z ofensywnych, którÄ… bÄ™dziemy strzelać lub aktywujemy broÅ„ defensywnÄ…. +* **inwentarz**, d³u¿sze przytrzymanie przycisku joysticka - przejœcie do Inventory (aktywacji broni). Inventory to ekran (a w zasadzie dwa) bliŸniaczo podobny do ekranu zakupów. Zasady poruszania siê s¹ identyczne - z tym, ¿e tu nie kupujemy broni, ale wybieramy jedn¹ z ofensywnych, któr¹ bêdziemy strzelaæ lub aktywujemy broñ defensywn¹. -* **defensywa** - bezpoÅ›rednie przejÅ›cie na ekran Inventory aktywacji broni defensywnych. +* **defensywa** - bezpoœrednie przejœcie na ekran Inventory aktywacji broni defensywnych. -* **tryb turbo** - przyspiesza/pomija niektóre animacje w grze +* **tryb turbo** - przyspiesza/pomija niektóre animacje w grze -* **koniec gry** - wymuszenie zakoÅ„czenia gry (Game Over). W podsumowaniu wyników nie jest brana pod uwagÄ™ przerwana wÅ‚aÅ›nie runda rozgrywki, a wyłącznie rundy zakoÅ„czone wczeÅ›niej. Odpowiada to wciÅ›niÄ™ciu klawisza **ESC** z tÄ… różnicÄ…, że wyÅ›wietlane jest podsumowanie oraz creditsy. +* **koniec gry** - wymuszenie zakoñczenia gry (Game Over). W podsumowaniu wyników nie jest brana pod uwagê przerwana w³aœnie runda rozgrywki, a wy³¹cznie rundy zakoñczone wczeœniej. Odpowiada to wciœniêciu klawisza **ESC** z t¹ ró¿nic¹, ¿e wyœwietlane jest podsumowanie oraz creditsy. -* **bezw. koniec** - natychmiastowe wymuszenie zakoÅ„czenia gry (Game Over), tak jak **O**, ale bez potwierdzenia. +* **bezw. koniec** - natychmiastowe wymuszenie zakoñczenia gry (Game Over), tak jak **O**, ale bez potwierdzenia. -* **inne kolory** - zmienia wariant kolorystyczny gór (3 wersje do wyboru) +* **inne kolory** - zmienia wariant kolorystyczny gór (3 wersje do wyboru) -* **powrót** - w czasie caÅ‚ej gry w dowolnym momencie (chyba że akurat gra komputer, wtedy czasem trzeba chwilÄ™ poczekać) można nacisnąć klawisz **ESC**, który umożliwia przerwanie gry i powrót na poczÄ…tek (oczywiÅ›cie jest zabezpieczenie przed przypadkowym naciÅ›niÄ™ciem). +* **powrót** - w czasie ca³ej gry w dowolnym momencie (chyba ¿e akurat gra komputer, wtedy czasem trzeba chwilê poczekaæ) mo¿na nacisn¹æ klawisz **ESC**, który umo¿liwia przerwanie gry i powrót na pocz¹tek (oczywiœcie jest zabezpieczenie przed przypadkowym naciœniêciem). -* **zatwierdzam** - w przypadku pytania o przerwanie lub zakoÅ„czenie gry - potwierdzenie decyzji +* **zatwierdzam** - w przypadku pytania o przerwanie lub zakoñczenie gry - potwierdzenie decyzji -* **visual debug** - przełącza tryb "visual debug". Wizualizuje mierzone odlegÅ‚oÅ›ci, celowanie lasera oraz technikÄ™ celowania komputera. Pozostawia baÅ‚agan na ekranie, co nie zmienia rozgrywki, tylko jÄ… nieco utrudnia. +* **visual debug** - prze³¹cza tryb "visual debug". Wizualizuje mierzone odleg³oœci, celowanie lasera oraz technikê celowania komputera. Pozostawia ba³agan na ekranie, co nie zmienia rozgrywki, tylko j¹ nieco utrudnia. ## 5. Zasady gry - bronie ofensywne. -Duże punkty otrzymane przez gracza to liczba czoÅ‚gów, które zginęły wczeÅ›niej niż on. JeÅ›li któryÅ› z innych czoÅ‚gów skapitulowaÅ‚ wczeÅ›niej (**White Flag**) nie jest doliczany do tych, które zginęły, i nie daje punktów. +Du¿e punkty otrzymane przez gracza to liczba czo³gów, które zginê³y wczeœniej ni¿ on. Jeœli któryœ z innych czo³gów skapitulowa³ wczeœniej (**White Flag**) nie jest doliczany do tych, które zginê³y, i nie daje punktów. -Tylko te punkty decydujÄ… o kolejnoÅ›ci w podsumowaniu. +Tylko te punkty decyduj¹ o kolejnoœci w podsumowaniu. -### Energia czoÅ‚gów. -* Na poczÄ…tku każdej rundy każdy czoÅ‚g ma 99 jednostek energii. +### Energia czo³gów. +* Na pocz¹tku ka¿dej rundy ka¿dy czo³g ma 99 jednostek energii. -* Energii czoÅ‚gom ubywa na 3 sposoby: - * jedna jednostka po oddaniu każdego strzaÅ‚u - * w czasie spadania (jeden piksel w dół -2 jednostki) - * w chwili trafienia w czoÅ‚g lub obok niego jakiegoÅ› pocisku - i tu ilość odejmowanej energii zależy od odlegÅ‚oÅ›ci od centrum eksplozji i typu/siÅ‚y rażenia pocisku. +* Energii czo³gom ubywa na 3 sposoby: + * jedna jednostka po oddaniu ka¿dego strza³u + * w czasie spadania (jeden piksel w dó³ -2 jednostki) + * w chwili trafienia w czo³g lub obok niego jakiegoœ pocisku - i tu iloœæ odejmowanej energii zale¿y od odleg³oœci od centrum eksplozji i typu/si³y ra¿enia pocisku. ### Energia i kasa -Jak dziaÅ‚a odejmowanie energii i zarabianie kasy: -Po każdej rundzie wyliczana jest ilość zdobytych/straconych pieniÄ™dzy, robione jest to na podstawie dwóch zmiennych gromadzonych przez każdy z czoÅ‚gów w trakcie rundy. Te zmienne to: +Jak dzia³a odejmowanie energii i zarabianie kasy: +Po ka¿dej rundzie wyliczana jest iloœæ zdobytych/straconych pieniêdzy, robione jest to na podstawie dwóch zmiennych gromadzonych przez ka¿dy z czo³gów w trakcie rundy. Te zmienne to: -**gain** - energia "przechwycona" od trafionych czoÅ‚gów (także jeÅ›li trafimy w samego siebie :) i tu haczyk, jeÅ›li pozostaÅ‚o nam bardzo maÅ‚o energii opÅ‚acalne może być trafienie w siebie mocnÄ… broniÄ…! +**gain** - energia "przechwycona" od trafionych czo³gów (tak¿e jeœli trafimy w samego siebie :) i tu haczyk, jeœli pozosta³o nam bardzo ma³o energii op³acalne mo¿e byæ trafienie w siebie mocn¹ broni¹! -**lose** - energia stracona w wyniku eksplozji/upadku (i tu ważne - liczona jest caÅ‚kowita utrata energii nawet jeÅ›li czoÅ‚g ma w chwili trafienia mniej). +**lose** - energia stracona w wyniku eksplozji/upadku (i tu wa¿ne - liczona jest ca³kowita utrata energii nawet jeœli czo³g ma w chwili trafienia mniej). -Dodatkowo czoÅ‚g, który wygraÅ‚ rundÄ™, ma parametr gain (przechwyconej od trafionych czoÅ‚gów energii) zwiÄ™kszany o pozostałą mu na koniec rundy energiÄ™ (bo nie zginÄ…Å‚ i powinien jÄ… mieć - choć bywa też inaczej :) ) +Dodatkowo czo³g, który wygra³ rundê, ma parametr gain (przechwyconej od trafionych czo³gów energii) zwiêkszany o pozosta³¹ mu na koniec rundy energiê (bo nie zgin¹³ i powinien j¹ mieæ - choæ bywa te¿ inaczej :) ) Konkretnie: -### Po każdej rundzie: +### Po ka¿dej rundzie: **money = money + (20 * (gain+energy))** **money = money - (10 * lose)** -**jeÅ›li money < 0 to money = 0** +**jeœli money < 0 to money = 0** -(na starcie każdej rundy **gain** i **lose** majÄ… wartość 0) +(na starcie ka¿dej rundy **gain** i **lose** maj¹ wartoœæ 0) -W czasie rundy, jeÅ›li w wyniku strzaÅ‚u oddanego przez czoÅ‚g inny czoÅ‚g zostanie trafiony, czoÅ‚g oddajÄ…cy strzaÅ‚ "dostaje energiÄ™" zabranÄ… czoÅ‚gowi trafionemu. +W czasie rundy, jeœli w wyniku strza³u oddanego przez czo³g inny czo³g zostanie trafiony, czo³g oddaj¹cy strza³ "dostaje energiê" zabran¹ czo³gowi trafionemu. -### czoÅ‚g oddajÄ…cy strzaÅ‚: +### czo³g oddaj¹cy strza³: **gain = gain + EnergyDecrease** -### czoÅ‚g trafiony: +### czo³g trafiony: **lose = lose + EnergyDecrease** gdzie **EnergyDecrease** to utrata energii w wyniku trafienia. -OczywiÅ›cie jednoczeÅ›nie trafiony czoÅ‚g traci ilość energii zapisanÄ… w **EnergyDecrease**, z tym że tutaj strata nie może przekroczyć posiadanej energii. +Oczywiœcie jednoczeœnie trafiony czo³g traci iloœæ energii zapisan¹ w **EnergyDecrease**, z tym ¿e tutaj strata nie mo¿e przekroczyæ posiadanej energii. -## Jak dziaÅ‚a trafienie. +## Jak dzia³a trafienie. -Każda broÅ„, która skutkuje eksplozjÄ…, ma swój promieÅ„ rażenia. +Ka¿da broñ, która skutkuje eksplozj¹, ma swój promieñ ra¿enia. -Po eksplozji każdy czoÅ‚g w jej zasiÄ™gu traci energiÄ™. +Po eksplozji ka¿dy czo³g w jej zasiêgu traci energiê. -DziaÅ‚a to tak, że jeÅ›li trafienie jest dokÅ‚adnie w centralny punkt czoÅ‚gu, **EnergyDecrease** otrzymuje maksymalnÄ… wartość dla danej broni, a z każdym pikselem odlegÅ‚oÅ›ci od centrum czoÅ‚gu wartość ta jest zmniejszana o 8. +Dzia³a to tak, ¿e jeœli trafienie jest dok³adnie w centralny punkt czo³gu, **EnergyDecrease** otrzymuje maksymaln¹ wartoœæ dla danej broni, a z ka¿dym pikselem odleg³oœci od centrum czo³gu wartoœæ ta jest zmniejszana o 8. -PrzykÅ‚adowo: jeÅ›li strzaÅ‚ oddany za pomocÄ… broni **Baby Missile** trafi idealnie w centrum czoÅ‚gu, to straci on dokÅ‚adnie 88 jednostek energii (plus to, co straci spadajÄ…c po eksplozji). -W przypadku trafienia tÄ… samÄ… broniÄ… w odlegÅ‚oÅ›ci 10-ciu pikseli od centrum czoÅ‚gu strata ta bÄ™dzie wynosiÅ‚a już tyko 8 jednostek. +Przyk³adowo: jeœli strza³ oddany za pomoc¹ broni **Baby Missile** trafi idealnie w centrum czo³gu, to straci on dok³adnie 88 jednostek energii (plus to, co straci spadaj¹c po eksplozji). +W przypadku trafienia t¹ sam¹ broni¹ w odleg³oœci 10-ciu pikseli od centrum czo³gu strata ta bêdzie wynosi³a ju¿ tyko 8 jednostek. -A oto wartoÅ›ci maksymalnego ubytku energii dla poszczególnych broni. JeÅ›li broÅ„ eksploduje kilka razy, każda z eksplozji jest obliczana niezależnie (dodatkowe wartoÅ›ci w tabeli): +A oto wartoœci maksymalnego ubytku energii dla poszczególnych broni. Jeœli broñ eksploduje kilka razy, ka¿da z eksplozji jest obliczana niezale¿nie (dodatkowe wartoœci w tabeli): -| BroÅ„ ofensywna | Max ubytku | +| Broñ ofensywna | Max ubytku | |-----------------|--------------| | Baby Missile | 88 | | Missile | 136 | @@ -220,140 +222,142 @@ A oto wartoÅ›ci maksymalnego ubytku energii dla poszczególnych broni. JeÅ›li br | Funky Bomb | 168 88 (*5) | | MIRV | 136 (*5) | | Death's Head | 240 (*5) | -| Napalm | 40 (zob. ↓)| -| Hot Napalm | 80 (↓)| +| Napalm | 40 (zob. ¡)| +| Hot Napalm | 80 (¡)| | Baby Roller | 88 | | Roller | 168 | | Heavy Roller | 240 | -| Riot Charge | 0 (↓)| -| Riot Blast | 0 (↓)| -| Riot Bomb | 0 (↓)| -| Heavy Riot Bomb | 0 (↓)| -| Digger | 0 (↓)| -| Heavy Digger | 0 (↓)| -| Sandhog | 0 (↓)| -| Heavy Sandhog | 0 (↓)| -| Dirt Clod | 0 (↓)| -| Dirt Ball | 0 (↓)| -| Ton of Dirt | 0 (↓)| -| Liquid Dirt | 0 (↓)| -| Dirt Charge | 0 (↓)| -| Propaganda | 0 (↓)| -| Stomp | 0 (↓)| -| Laser | 100 (↓)| +| Riot Charge | 0 (¡)| +| Riot Blast | 0 (¡)| +| Riot Bomb | 0 (¡)| +| Heavy Riot Bomb | 0 (¡)| +| Digger | 0 (¡)| +| Heavy Digger | 0 (¡)| +| Sandhog | 0 (¡)| +| Heavy Sandhog | 0 (¡)| +| Dirt Clod | 0 (¡)| +| Dirt Ball | 0 (¡)| +| Ton of Dirt | 0 (¡)| +| Liquid Dirt | 0 (¡)| +| Dirt Charge | 0 (¡)| +| Propaganda | 0 (¡)| +| Stomp | 0 (¡)| +| Laser | 100 (¡)| Uwagi: -* **Napalm** - ta broÅ„ jest inna i nie jest wyznaczana odlegÅ‚ość od centrum, po prostu każdy czoÅ‚g znajdujÄ…cy siÄ™ w zasiÄ™gu pÅ‚omieni traci 40 jednostek energii. +* **Napalm** - ta broñ jest inna i nie jest wyznaczana odleg³oœæ od centrum, po prostu ka¿dy czo³g znajduj¹cy siê w zasiêgu p³omieni traci 40 jednostek energii. * **Hot Napalm** - zasada taka jak w Napalm, 80 jednostek. -* **Riot Charge** - nie jest odejmowana energia, ale usuwana jest część gruntu w górÄ™ od punktu trafienia w promieniu 31 pikseli. +* **Riot Charge** - nie jest odejmowana energia, ale usuwana jest czêœæ gruntu w górê od punktu trafienia w promieniu 31 pikseli. -* **Riot Blast** - jak w Riot Charge, tyle że w promieniu 61 pikseli. +* **Riot Blast** - jak w Riot Charge, tyle ¿e w promieniu 61 pikseli. -* **Riot Bomb** - nie jest odejmowana energia, ale niszczony jest grunt w promieniu 17 pikseli od punktu trafienia - tak jak w wypadku **Missile**. BroÅ„ przydatna do odkopywania siÄ™ po zasypaniu, bÄ…dź podkopywania przeciwnika. +* **Riot Bomb** - nie jest odejmowana energia, ale niszczony jest grunt w promieniu 17 pikseli od punktu trafienia - tak jak w wypadku **Missile**. Broñ przydatna do odkopywania siê po zasypaniu, b¹dŸ podkopywania przeciwnika. -* **Heavy Riot Bomb** - jak w Riot Bomb, ale promieÅ„ eksplozji to 29 pikseli od punktu trafienia - tak jak w wypadku **Nuke**. +* **Heavy Riot Bomb** - jak w Riot Bomb, ale promieñ eksplozji to 29 pikseli od punktu trafienia - tak jak w wypadku **Nuke**. -* **Digger** - nie jest odejmowana energia, ale podkopywana jest część gruntu promieniu 60 pikseli od punktu trafienia. +* **Digger** - nie jest odejmowana energia, ale podkopywana jest czêœæ gruntu promieniu 60 pikseli od punktu trafienia. -* **Heavy Digger** - jak wyżej - wiÄ™kszy podkop. +* **Heavy Digger** - jak wy¿ej - wiêkszy podkop. -* **Sandhog** - jak wyżej - inny sposób podkopywania. +* **Sandhog** - jak wy¿ej - inny sposób podkopywania. -* **Heavy Sandhog** - jak wyżej - najwiÄ™kszy podkop. +* **Heavy Sandhog** - jak wy¿ej - najwiêkszy podkop. -* **Dirt Clod** - nie jest odejmowana energia, ale tworzona jest kula gruntu o promieniu 12 pikseli od punktu trafienia. BroÅ„ przydatna do zakopywania przeciwnika. +* **Dirt Clod** - nie jest odejmowana energia, ale tworzona jest kula gruntu o promieniu 12 pikseli od punktu trafienia. Broñ przydatna do zakopywania przeciwnika. -* **Dirt Ball** - jak wyżej, ale promieÅ„ kuli to 22 piksele. +* **Dirt Ball** - jak wy¿ej, ale promieñ kuli to 22 piksele. -* **Ton of Dirt** - jak wyżej, ale promieÅ„ kuli to 31 pikseli. +* **Ton of Dirt** - jak wy¿ej, ale promieñ kuli to 31 pikseli. -* **Liquid Dirt** - zalewa grunt w punkcie trafienia pÅ‚ynnÄ… glebÄ…, wypeÅ‚niajÄ…c zagłębienia. +* **Liquid Dirt** - zalewa grunt w punkcie trafienia p³ynn¹ gleb¹, wype³niaj¹c zag³êbienia. -* **Dirt Charge** - nie jest odejmowana energia, ale usypywany jest dodatkowy grunt w górÄ™ od punktu trafienia w promieniu 61 pikseli. BroÅ„ przydatna do zakopywania przeciwnika. +* **Dirt Charge** - nie jest odejmowana energia, ale usypywany jest dodatkowy grunt w górê od punktu trafienia w promieniu 61 pikseli. Broñ przydatna do zakopywania przeciwnika. * **Propaganda** - nie jest odejmowana energia, miejsce trafienia zostaje zasypane propagandowymi tekstami. -* **Stomp** - nie jest odejmowana energia, ale wszystkie czoÅ‚gi w promieniu zależnym od siÅ‚y strzaÅ‚u zostajÄ… odepchniÄ™te, a po odepchniÄ™ciu mogÄ… spaść lub zostać zasypane. Przy maksymalnej sile 990 jednostek promieÅ„ dziaÅ‚ania to okoÅ‚o 60 pikseli. +* **Stomp** - nie jest odejmowana energia, ale wszystkie czo³gi w promieniu zale¿nym od si³y strza³u zostaj¹ odepchniête, a po odepchniêciu mog¹ spaœæ lub zostaæ zasypane. Przy maksymalnej sile 990 jednostek promieñ dzia³ania to oko³o 60 pikseli. -* **Laser** - tu także jest inaczej - równo 100 tylko w przypadku bezpoÅ›redniego trafienia po prostu odejmujemy 100 jednostek energii - czyli czoÅ‚g zawsze ginie. +* **Laser** - tu tak¿e jest inaczej - równo 100 tylko w przypadku bezpoœredniego trafienia po prostu odejmujemy 100 jednostek energii - czyli czo³g zawsze ginie. ## 6. A teraz bronie defensywne: -* **White Flag** - powoduje poddanie gracza (może czasem przydać siÄ™ w sytuacji beznadziejnej). ZaletÄ… jest to, że poddajÄ…c siÄ™ nie dajemy dużego punktu przeciwnikom i nie powodujemy, że któryÅ› zyska na tym, że nas zgÅ‚adzi, ograniczamy też stratÄ™ swojej energii, czyli także kasy. I tu także ważna uwaga - to jedyna broÅ„ defensywna, którÄ… można dezaktywować. Wystarczy ponownie wejść do inventory i jeszcze raz wybrać jej aktywacjÄ™. +* **White Flag** - powoduje poddanie gracza (mo¿e czasem przydaæ siê w sytuacji beznadziejnej). Zalet¹ jest to, ¿e poddaj¹c siê nie dajemy du¿ego punktu przeciwnikom i nie powodujemy, ¿e któryœ zyska na tym, ¿e nas zg³adzi, ograniczamy te¿ stratê swojej energii, czyli tak¿e kasy. I tu tak¿e wa¿na uwaga - to jedyna broñ defensywna, któr¹ mo¿na dezaktywowaæ. Wystarczy ponownie wejœæ do inventory i jeszcze raz wybraæ jej aktywacjê. -* **Battery** - w momencie aktywacji doÅ‚adowuje energiÄ™ czoÅ‚gu do peÅ‚na (99 jednostek). Jest to jedna z trzech broni defensywnych, która nie dezaktywuje innych broni defensywnych w przypadku jej użycia. +* **Battery** - w momencie aktywacji do³adowuje energiê czo³gu do pe³na (99 jednostek). Jest to jedna z trzech broni defensywnych, która nie dezaktywuje innych broni defensywnych w przypadku jej u¿ycia. -* **Hovercraft** - broÅ„ umożliwiajÄ…ca przemieszczanie siÄ™ czoÅ‚gu. Posiada wÅ‚asny zasób paliwa, a dodatkowo może być aktywowana wielokrotnie w czasie tej samej tury, a po jej użyciu możemy w tej samej turze aktywować innÄ… broÅ„ defensywnÄ… i oddać strzaÅ‚. W wyniku jej użycia czoÅ‚g uniesie siÄ™ ponad góry i za pomocÄ… klawiszy kursora lub joysticka: lewo/prawo możemy przemieÅ›cić czoÅ‚g na nowÄ… pozycjÄ™, a **SPACJA** lub przycisk joysticka powodujÄ… wylÄ…dowanie czoÅ‚gu w nowym miejscu. Latać można do chwili skoÅ„czenia siÄ™ "paliwa" (prezentowanego na pasku statusu tak jak energia broni defensywnej), a gdy paliwo siÄ™ skoÅ„czy, czoÅ‚g opadnie samodzielnie. Nie da siÄ™ lÄ…dować na innych czoÅ‚gach. +* **Hovercraft** - broñ umo¿liwiaj¹ca przemieszczanie siê czo³gu. Posiada w³asny zasób paliwa, a dodatkowo mo¿e byæ aktywowana wielokrotnie w czasie tej samej tury, a po jej u¿yciu mo¿emy w tej samej turze aktywowaæ inn¹ broñ defensywn¹ i oddaæ strza³. W wyniku jej u¿ycia czo³g uniesie siê ponad góry i za pomoc¹ klawiszy kursora lub joysticka: lewo/prawo mo¿emy przemieœciæ czo³g na now¹ pozycjê, a **SPACJA** lub przycisk joysticka powoduj¹ wyl¹dowanie czo³gu w nowym miejscu. Lataæ mo¿na do chwili skoñczenia siê "paliwa" (prezentowanego na pasku statusu tak jak energia broni defensywnej), a gdy paliwo siê skoñczy, czo³g opadnie samodzielnie. Nie da siê l¹dowaæ na innych czo³gach. -* **Parachute** - nie chroni przed ubytkiem energii z powodu sÄ…siedniej eksplozji, powoduje że nie ubywa energii w czasie JEDNEGO spadania. Po takim upadku dezaktywuje siÄ™ i trzeba aktywować nowy spadochron. +* **Parachute** - nie chroni przed ubytkiem energii z powodu s¹siedniej eksplozji, powoduje ¿e nie ubywa energii w czasie JEDNEGO spadania. Po takim upadku dezaktywuje siê i trzeba aktywowaæ nowy spadochron. -* **Strong Parachute** - spadochron z wÅ‚asnÄ… energiÄ… (na starcie 99 jednostek), dziaÅ‚a tak samo jak Parachute (nie chroni przed eksplozjami), ma za to swój wÅ‚asny zasób energii, przy spadaniu w pierwszej kolejnoÅ›ci zmniejszana jest energia tego spadochronu (1 jednostka na jeden piksel opadania - inaczej niż czoÅ‚g!) i jeÅ›li dojdzie ona do 0, to spadochron dezaktywuje siÄ™ i dalej zmniejszana jest energia czoÅ‚gu (tutaj już standardowo - 2 jednostki na jeden piksel). +* **Strong Parachute** - spadochron z w³asn¹ energi¹ (na starcie 99 jednostek), dzia³a tak samo jak Parachute (nie chroni przed eksplozjami), ma za to swój w³asny zasób energii, przy spadaniu w pierwszej kolejnoœci zmniejszana jest energia tego spadochronu (1 jednostka na jeden piksel opadania - inaczej ni¿ czo³g!) i jeœli dojdzie ona do 0, to spadochron dezaktywuje siê i dalej zmniejszana jest energia czo³gu (tutaj ju¿ standardowo - 2 jednostki na jeden piksel). -* **Shield** - najprostsza osÅ‚ona, dziaÅ‚a dokÅ‚adnie przeciwnie niż Parachute, nie chroni przed ubytkiem energii w czasie spadania, chroni za to przed ubytkiem energii spowodowanym JEDNÄ„ sÄ…siedniÄ… eksplozjÄ…. Chroni jednorazowo, bez znaczenia jak silna jest eksplozja (czy jest to tylko "draÅ›niÄ™cie", czy też bezpoÅ›rednie trafienie atomówkÄ…) i od razu po niej dezaktywuje siÄ™. +* **Shield** - najprostsza os³ona, dzia³a dok³adnie przeciwnie ni¿ Parachute, nie chroni przed ubytkiem energii w czasie spadania, chroni za to przed ubytkiem energii spowodowanym JEDN¥ s¹siedni¹ eksplozj¹. Chroni jednorazowo, bez znaczenia jak silna jest eksplozja (czy jest to tylko "draœniêcie", czy te¿ bezpoœrednie trafienie atomówk¹) i od razu po niej dezaktywuje siê. -* **Heavy Shield** - osÅ‚ona z wÅ‚asnÄ… energiÄ… (na starcie 99 jednostek), dziaÅ‚a tak samo jak Shield (nie chroni przed upadkiem) z tym wyjÄ…tkiem, że ma wÅ‚asny zasób energii. Przy eksplozji w pierwszej kolejnoÅ›ci zmniejszana jest energia tej osÅ‚ony i jeÅ›li dojdzie ona do 0, to osÅ‚ona dezaktywuje siÄ™ i dalej zmniejszana jest energia czoÅ‚gu. W zwiÄ…zku z takim dziaÅ‚aniem, czoÅ‚g z tym typem osÅ‚ony można "zabić" podkopujÄ…c go, bo spadanie zmniejsza energiÄ™ czoÅ‚gu a nie osÅ‚ony. +* **Heavy Shield** - os³ona z w³asn¹ energi¹ (na starcie 99 jednostek), dzia³a tak samo jak Shield (nie chroni przed upadkiem) z tym wyj¹tkiem, ¿e ma w³asny zasób energii. Przy eksplozji w pierwszej kolejnoœci zmniejszana jest energia tej os³ony i jeœli dojdzie ona do 0, to os³ona dezaktywuje siê i dalej zmniejszana jest energia czo³gu. W zwi¹zku z takim dzia³aniem, czo³g z tym typem os³ony mo¿na "zabiæ" podkopuj¹c go, bo spadanie zmniejsza energiê czo³gu a nie os³ony. -* **Force Shield** - najmocniejsza osÅ‚ona - dziaÅ‚a tak jak Heavy Shield, tyle że połączona z Parachute. Co ważne, w jej przypadku upadek nie zabiera energii osÅ‚onie ani czoÅ‚gowi. ZabierajÄ… jÄ… tylko trafienia. +* **Force Shield** - najmocniejsza os³ona - dzia³a tak jak Heavy Shield, tyle ¿e po³¹czona z Parachute. Co wa¿ne, w jej przypadku upadek nie zabiera energii os³onie ani czo³gowi. Zabieraj¹ j¹ tylko trafienia. -* **Bouncy Castle** - broÅ„ agresywna :) DziaÅ‚a nastÄ™pujÄ…co: w przypadku bezpoÅ›redniego trafienia w czoÅ‚g (i osÅ‚onÄ™) powoduje "odbicie" pocisku w przeciwnym kierunku z takÄ… samÄ… siłą, z jakÄ… byÅ‚ wystrzelony. W przypadku braku wiatru i różnicy poziomów broÅ„ trafia wtedy w czoÅ‚g, który jÄ… wystrzeliÅ‚. Po takim odbiciu dezaktywuje siÄ™. W zwiÄ…zku z tym, że broÅ„ ta reaguje w ten sposób tylko na precyzyjne trafienia, jest także osÅ‚onÄ… odpowiadajÄ…cÄ… dziaÅ‚aniu Heavy Shield i ma na starcie 99 jednostek. +* **Bouncy Castle** - broñ agresywna :) Dzia³a nastêpuj¹co: w przypadku bezpoœredniego trafienia w czo³g (i os³onê) powoduje "odbicie" pocisku w przeciwnym kierunku z tak¹ sam¹ si³¹, z jak¹ by³ wystrzelony. W przypadku braku wiatru i ró¿nicy poziomów broñ trafia wtedy w czo³g, który j¹ wystrzeli³. Po takim odbiciu dezaktywuje siê. W zwi¹zku z tym, ¿e broñ ta reaguje w ten sposób tylko na precyzyjne trafienia, jest tak¿e os³on¹ odpowiadaj¹c¹ dzia³aniu Heavy Shield i ma na starcie 99 jednostek. -* **Mag Deflector** - druga broÅ„ agresywna :) W przypadku bezpoÅ›redniego trafienia w czoÅ‚g (i osÅ‚onÄ™) powoduje przesuniÄ™cie punktu trafienia losowo w lewo lub prawÄ… stronÄ™ chronionego czoÅ‚gu, ale niezbyt daleko, wiÄ™c można dostać "odÅ‚amkiem" przy silniejszej broni. Tak jak w przypadku Bouncy Castle jest także osÅ‚onÄ… odpowiadajÄ…cÄ… dziaÅ‚aniu Heavy Shield i ma na starcie 99 jednostek. +* **Mag Deflector** - druga broñ agresywna :) W przypadku bezpoœredniego trafienia w czo³g (i os³onê) powoduje przesuniêcie punktu trafienia losowo w lewo lub praw¹ stronê chronionego czo³gu, ale niezbyt daleko, wiêc mo¿na dostaæ "od³amkiem" przy silniejszej broni. Tak jak w przypadku Bouncy Castle jest tak¿e os³on¹ odpowiadaj¹c¹ dzia³aniu Heavy Shield i ma na starcie 99 jednostek. -* **Nuclear Winter** - nic nie dodaje, nic nie zabiera :) - w zasadzie to broÅ„ nie tyle defensywna, co obosieczna. Zasypuje teren opadem "radioaktywnym", który jest zwyczajnÄ… glebÄ…. JeÅ›li nie mamy pod rÄ™kÄ… żadnej broni odkopujÄ…cej teren i do tego osÅ‚ony (najlepiej jednorazowej), to po takim "opadzie" bÄ™dzie trzeba strzelić do siebie - bo bÄ™dÄ…c pod ziemiÄ… inaczej siÄ™ nie da. Ewentualnie pozostaje zawsze White Flag. +* **Nuclear Winter** - nic nie dodaje, nic nie zabiera :) - w zasadzie to broñ nie tyle defensywna, co obosieczna. Zasypuje teren opadem "radioaktywnym", który jest zwyczajn¹ gleb¹. Jeœli nie mamy pod rêk¹ ¿adnej broni odkopuj¹cej teren i do tego os³ony (najlepiej jednorazowej), to po takim "opadzie" bêdzie trzeba strzeliæ do siebie - bo bêd¹c pod ziemi¹ inaczej siê nie da. Ewentualnie pozostaje zawsze White Flag. -* **Long Schlong** - broÅ„ specjalna :) - kosztuje dużo, nie bardzo w czymkolwiek pomaga (poza ewentualnym odkopaniem siÄ™ - tylko przy niewielkim przysypaniu - ale fajnie siÄ™ nazywa i wyglÄ…da :) - Można jÄ… aktywować niezależnie od innych broni defensywnych i pozostaje aktywna do koÅ„ca rundy (nie da siÄ™ jej dezaktywować). BroÅ„ ta dziaÅ‚a deprymujÄ…co na przeciwników sterowanych przez komputer na poziomie **Poolshark** i wyższych. +* **Long Schlong** - broñ specjalna :) - kosztuje du¿o, nie bardzo w czymkolwiek pomaga (poza ewentualnym odkopaniem siê - tylko przy niewielkim przysypaniu - ale fajnie siê nazywa i wygl¹da :) - Mo¿na j¹ aktywowaæ niezale¿nie od innych broni defensywnych i pozostaje aktywna do koñca rundy (nie da siê jej dezaktywowaæ). Broñ ta dzia³a deprymuj¹co na przeciwników sterowanych przez komputer na poziomie **Poolshark** i wy¿szych. -* **Lazy Boy** - nie jest to wÅ‚aÅ›ciwie broÅ„ defensywna. Jest to wspomaganie celowania. Po jej aktywacji czoÅ‚g stara siÄ™ wycelować w najbliższego przeciwnika i automatycznie ustawia siłę strzaÅ‚u oraz kÄ…t. W przypadku posiadania zbyt maÅ‚ej iloÅ›ci energii może czasem wycelować źle (do celowania stosuje metodÄ™ takÄ… jak **Cyborg**). Tak jak **Battery** nie dezaktywuje innych broni defensywnych w przypadku jej użycia. Uwaga! Nie ma sensu aktywacja tej broni przed rundÄ…, celowanie nie odbÄ™dzie siÄ™, bo nie ma jeszcze do czego celować. +* **Lazy Boy** - nie jest to w³aœciwie broñ defensywna. Jest to wspomaganie celowania. Po jej aktywacji czo³g stara siê wycelowaæ w najbli¿szego przeciwnika i automatycznie ustawia si³ê strza³u oraz k¹t. W przypadku posiadania zbyt ma³ej iloœci energii mo¿e czasem wycelowaæ Ÿle (do celowania stosuje metodê tak¹ jak **Cyborg**). Tak jak **Battery** nie dezaktywuje innych broni defensywnych w przypadku jej u¿ycia. Uwaga! Nie ma sensu aktywacja tej broni przed rund¹, celowanie nie odbêdzie siê, bo nie ma jeszcze do czego celowaæ. -* **Lazy Darwin** - dziaÅ‚a tak jak **Lazy Boy**, ale celuje w najsÅ‚abszego przeciwnika. W tej broni po automatycznym celowaniu pozostaje aktywne "celowanie wizualne" można wiÄ™c łątwo zmienić cel i samodzielnie wybrać innego przeciwnika widzÄ…c czy w niego trafimy. +* **Lazy Darwin** - dzia³a tak jak **Lazy Boy**, ale celuje w najs³abszego przeciwnika. W tej broni po automatycznym celowaniu pozostaje aktywne "celowanie wizualne" mo¿na wiêc ³¹two zmieniæ cel i samodzielnie wybraæ innego przeciwnika widz¹c czy w niego trafimy. -* **Auto Defense** - włącza tryb automatycznej aktywacji broni defensywnych. Po jej aktywowaniu czoÅ‚g automatycznie aktywuje najmocniejszÄ… posiadanÄ… osÅ‚onÄ™ (zużywajÄ…c jÄ… oczywiÅ›cie) w każdej chwili, kiedy nie ma żadnej osÅ‚ony (także pomiÄ™dzy strzaÅ‚ami innych graczy). JednoczeÅ›nie jeżeli poziom energii czoÅ‚gu spadnie poniżej 30 jednostek, automatycznie aktywuje **Battery** jeżeli jÄ… posiada. Ta broÅ„ pozostaje aktywna do koÅ„ca rundy i jest sygnalizowana symbolem "komputera" przed nazwÄ… aktywnej broni defensywnej w linii statusowej. Jest to druga broÅ„ defensywna, która nie dezaktywuje innych broni defensywnych w przypadku jej użycia. +* **Auto Defense** - w³¹cza tryb automatycznej aktywacji broni defensywnych. Po jej aktywowaniu czo³g automatycznie aktywuje najmocniejsz¹ posiadan¹ os³onê (zu¿ywaj¹c j¹ oczywiœcie) w ka¿dej chwili, kiedy nie ma ¿adnej os³ony (tak¿e pomiêdzy strza³ami innych graczy). Jednoczeœnie je¿eli poziom energii czo³gu spadnie poni¿ej 30 jednostek, automatycznie aktywuje **Battery** je¿eli j¹ posiada. Ta broñ pozostaje aktywna do koñca rundy i jest sygnalizowana symbolem "komputera" przed nazw¹ aktywnej broni defensywnej w linii statusowej. Jest to druga broñ defensywna, która nie dezaktywuje innych broni defensywnych w przypadku jej u¿ycia. -* **Spy Hard** - Pomoc dla zapominalskich :) Po aktywacji pokazuje kolejno podglÄ…d informacji o kolejnych przeciwnikach. Lewo/Prawo - zmienia "szpiegowany" czoÅ‚g. Fire/Space/Return/Esc - koÅ„czy "szpiegowanie". Jest to ostatnia broÅ„ defensywna, która nie dezaktywuje innych broni defensywnych w przypadku jej użycia. +* **Spy Hard** - Pomoc dla zapominalskich :) Po aktywacji pokazuje kolejno podgl¹d informacji o kolejnych przeciwnikach. Lewo/Prawo - zmienia "szpiegowany" czo³g. Fire/Space/Return/Esc - koñczy "szpiegowanie". Jest to ostatnia broñ defensywna, która nie dezaktywuje innych broni defensywnych w przypadku jej u¿ycia. -W zwiÄ…zku z odmiennym dziaÅ‚aniem broni **MIRV**, bronie defensywne **Bouncy Castle** i **Mag Deflector** wykorzystujÄ… tylko funkcjÄ™ osÅ‚ony przy trafieniu tÄ… broniÄ…. Dodatkowo gÅ‚owice **MIRV** w czasie opadania nie odbijajÄ… siÄ™ i nie przelatujÄ… przez Å›ciany boczne! +W zwi¹zku z odmiennym dzia³aniem broni **MIRV**, bronie defensywne **Bouncy Castle** i **Mag Deflector** wykorzystuj¹ tylko funkcjê os³ony przy trafieniu t¹ broni¹. Dodatkowo g³owice **MIRV** w czasie opadania nie odbijaj¹ siê i nie przelatuj¹ przez œciany boczne! -Å»adna z osÅ‚on nie chroni przed **Napalm**. **Bouncy Castle** czy **Mag Deflector**, przy bezpoÅ›rednim trafieniu odbije je lub przeniesie obok, ale wystarczy trafić bardzo blisko czoÅ‚gu i nie zadziaÅ‚a jego osÅ‚ona. +¯adna z os³on nie chroni przed **Napalm**. **Bouncy Castle** czy **Mag Deflector**, przy bezpoœrednim trafieniu odbije je lub przeniesie obok, ale wystarczy trafiæ bardzo blisko czo³gu i nie zadzia³a jego os³ona. -Bronie **White Flag**, **Hovercraft** i **Nuclear Winter** po aktywacji wymagajÄ… uruchomienia, jest to realizowanie przez "oddanie strzaÅ‚u" po aktywacji tej broni. OczywiÅ›cie strzaÅ‚ broniÄ… ofensywnÄ… nie jest wtedy oddawany, a jedynie uruchamiana jest wybrana broÅ„ defensywna. +Bronie **White Flag**, **Hovercraft** i **Nuclear Winter** po aktywacji wymagaj¹ uruchomienia, jest to realizowanie przez "oddanie strza³u" po aktywacji tej broni. Oczywiœcie strza³ broni¹ ofensywn¹ nie jest wtedy oddawany, a jedynie uruchamiana jest wybrana broñ defensywna. -Można mieć aktywnÄ… tylko jednÄ… broÅ„ defensywnÄ… w danej chwili (za wyjÄ…tkiem **Long Schlong** oczywiÅ›cie :) ). Zawsze przed oddaniem strzaÅ‚u możemy zmienić decyzjÄ™ i aktywować innÄ… broÅ„ defensywnÄ… czy też dezaktywować **White Flag**. +Mo¿na mieæ aktywn¹ tylko jedn¹ broñ defensywn¹ w danej chwili (za wyj¹tkiem **Long Schlong** oczywiœcie :) ). Zawsze przed oddaniem strza³u mo¿emy zmieniæ decyzjê i aktywowaæ inn¹ broñ defensywn¹ czy te¿ dezaktywowaæ **White Flag**. -OczywiÅ›cie aktywacja broni w momencie, kiedy mamy już aktywowanÄ… jakÄ…Å› innÄ…, powoduje utratÄ™ tej poprzedniej (nie ma zwrotów :) ). +Oczywiœcie aktywacja broni w momencie, kiedy mamy ju¿ aktywowan¹ jak¹œ inn¹, powoduje utratê tej poprzedniej (nie ma zwrotów :) ). ## 7. Bronie 'inne' :) : -* **Best F...g Gifts** - tej 'broni' nie używa siÄ™ w rozgrywce. Jej zakup powoduje wylosowanie jednej z broni ofensywnych lub (rzadziej) defensywnych i dodanie jej do arsenaÅ‚u gracza. Jest to loteria, w której można stracić (jeÅ›li wylosuje siÄ™ broÅ„ taÅ„sza niż cena **Best F...g Gifts**), ale też zyskać. JeÅ›li wylosuje siÄ™ broÅ„ dużo droższa, możemy otrzymać do dyspozycji broÅ„, na którÄ… nie byÅ‚o nas stać! Istnieje niewielkie prawdopodobieÅ„stwo wylosowania przez **Best F...g Gifts** samej siebie :). Można wtedy spróbować użyć jej w walce. +* **Best F...g Gifts** - tej 'broni' nie u¿ywa siê w rozgrywce. Jej zakup powoduje wylosowanie jednej z broni ofensywnych lub (rzadziej) defensywnych i dodanie jej do arsena³u gracza. Jest to loteria, w której mo¿na straciæ (jeœli wylosuje siê broñ tañsza ni¿ cena **Best F...g Gifts**), ale te¿ zyskaæ. Jeœli wylosuje siê broñ du¿o dro¿sza, mo¿emy otrzymaæ do dyspozycji broñ, na któr¹ nie by³o nas staæ! Istnieje niewielkie prawdopodobieñstwo wylosowania przez **Best F...g Gifts** samej siebie :). Mo¿na wtedy spróbowaæ u¿yæ jej w walce. -## 8. SiÅ‚a przeciwników AI: +## 8. Si³a przeciwników AI: -Gra posiada 8 poziomów trudnoÅ›ci przeciwników sterowanych przez komputer. A wÅ‚aÅ›ciwie 7 różnych i jeden "niespodziankÄ™". Każdy z nich ma swój sposób kupowania broni defensywnych i ofensywnych oraz innÄ… metodÄ™ wyboru celu i samego celowania oraz wyboru broni. UÅ‚ożone sÄ… one na liÅ›cie wedÅ‚ug wzrastajÄ…cych "umiejÄ™tnoÅ›ci": +Gra posiada 8 poziomów trudnoœci przeciwników sterowanych przez komputer. A w³aœciwie 7 ró¿nych i jeden "niespodziankê". Ka¿dy z nich ma swój sposób kupowania broni defensywnych i ofensywnych oraz inn¹ metodê wyboru celu i samego celowania oraz wyboru broni. U³o¿one s¹ one na liœcie wed³ug wzrastaj¹cych "umiejêtnoœci": -* **Moron** - najgÅ‚upszy z przeciwników (co nie znaczy, że najbezpieczniejszy). Strzela caÅ‚kowicie przypadkowo używajÄ…c wyłącznie jednej broni - **Baby Missile**. Nie kupuje nic, nie umie stosować broni defensywnych. +* **Moron** - najg³upszy z przeciwników (co nie znaczy, ¿e najbezpieczniejszy). Strzela ca³kowicie przypadkowo u¿ywaj¹c wy³¹cznie jednej broni - **Baby Missile**. Nie kupuje nic, nie umie stosowaæ broni defensywnych. -* **Shooter** - Ten przeciwnik nie strzela na oÅ›lep. Wybiera sobie jeden kierunek. Na podstawie wÅ‚asnej pozycji - strzela w stronÄ™, z której jest wiÄ™cej przestrzeni zakÅ‚adajÄ…c, że to tam sÄ… inne czoÅ‚gi. Ostrzeliwanie zaczyna od wysokiego kÄ…ta i strzaÅ‚ po strzale zmienia ten kÄ…t na coraz niższy starajÄ…c siÄ™ ostrzelać caÅ‚y obszar po wybranej stronie. StrzaÅ‚ oddaje zawsze najlepszÄ… posiadanÄ… broniÄ… (najwyższÄ… na liÅ›cie posiadanych broni - czyli niekoniecznie najlepszÄ…). Nie używa broni defensywnych mimo, że je kupuje! Na poczÄ…tku rundy podejmuje 1 próbÄ™ zakupu broni defensywnych (tylko z zakresu **Battery** - **Strong Parachute**) i 4 ofensywnych (z zakresu **Missile** - **Heavy Roller**). +* **Shooter** - Ten przeciwnik nie strzela na oœlep. Wybiera sobie jeden kierunek. Na podstawie w³asnej pozycji - strzela w stronê, z której jest wiêcej przestrzeni zak³adaj¹c, ¿e to tam s¹ inne czo³gi. Ostrzeliwanie zaczyna od wysokiego k¹ta i strza³ po strzale zmienia ten k¹t na coraz ni¿szy staraj¹c siê ostrzelaæ ca³y obszar po wybranej stronie. Strza³ oddaje zawsze najlepsz¹ posiadan¹ broni¹ (najwy¿sz¹ na liœcie posiadanych broni - czyli niekoniecznie najlepsz¹). Nie u¿ywa broni defensywnych mimo, ¿e je kupuje! Na pocz¹tku rundy podejmuje 1 próbê zakupu broni defensywnych (tylko z zakresu **Battery** - **Strong Parachute**) i 4 ofensywnych (z zakresu **Missile** - **Heavy Roller**). -* **Poolshark** - AtakujÄ…c wyznacza sobie za cel najbliższy czoÅ‚g, nastÄ™pnie dobiera kÄ…t strzaÅ‚u, a jego siłę stara siÄ™ dobrać losujÄ…c jÄ… z wybranego przedziaÅ‚u. StrzaÅ‚ oddaje zawsze najlepszÄ… posiadanÄ… broniÄ…. Używa broni defensywnych. Z prawdopodobieÅ„stwem 1:3 aktywuje przed oddaniem strzaÅ‚u najlepszÄ… posiadanÄ… broÅ„ defensywnÄ… (najwyższÄ… na liÅ›cie posiadanych broni - czyli niekoniecznie najlepszÄ…). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiÅ›cie jeÅ›li wczeÅ›niej jÄ… kupiÅ‚), a jeżeli energia spadnie poniżej 5 i nie ma **Battery**, poddaje siÄ™ - **White Flag**. Na poczÄ…tku rundy podejmuje 1 próbÄ™ zakupu broni defensywnych i 6 ofensywnych. +* **Poolshark** - Atakuj¹c wyznacza sobie za cel najbli¿szy czo³g, nastêpnie dobiera k¹t strza³u, a jego si³ê stara siê dobraæ losuj¹c j¹ z wybranego przedzia³u. Strza³ oddaje zawsze najlepsz¹ posiadan¹ broni¹. U¿ywa broni defensywnych. Z prawdopodobieñstwem 1:3 aktywuje przed oddaniem strza³u najlepsz¹ posiadan¹ broñ defensywn¹ (najwy¿sz¹ na liœcie posiadanych broni - czyli niekoniecznie najlepsz¹). Je¿eli poziom jego energii spadnie poni¿ej 30 jednostek - u¿ywa **Battery** (oczywiœcie jeœli wczeœniej j¹ kupi³), a je¿eli energia spadnie poni¿ej 5 i nie ma **Battery**, poddaje siê - **White Flag**. Na pocz¹tku rundy podejmuje 1 próbê zakupu broni defensywnych i 6 ofensywnych. -* **Tosser** - AtakujÄ…c dziaÅ‚a dokÅ‚adnie tak jak **Poolshark**, jednak może posiadać "lepszy" zasób broni dziÄ™ki innej taktyce zakupów. Zawsze przed strzaÅ‚em aktywuje najlepszÄ… posiadanÄ… broÅ„ defensywnÄ…. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na poczÄ…tku rundy ocenia ile ma pieniÄ™dzy i w zależnoÅ›ci od tego podejmuje (pieniÄ…dze/5100) prób zakupu broni defensywnych, a nastÄ™pnie jeszcze raz sprawdza ile pieniÄ™dzy mu zostaÅ‚o i podejmuje (pieniÄ…dze/1250) prób zakupu broni ofensywnych. +* **Tosser** - Atakuj¹c dzia³a dok³adnie tak jak **Poolshark**, jednak mo¿e posiadaæ "lepszy" zasób broni dziêki innej taktyce zakupów. Zawsze przed strza³em aktywuje najlepsz¹ posiadan¹ broñ defensywn¹. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na pocz¹tku rundy ocenia ile ma pieniêdzy i w zale¿noœci od tego podejmuje (pieni¹dze/5100) prób zakupu broni defensywnych, a nastêpnie jeszcze raz sprawdza ile pieniêdzy mu zosta³o i podejmuje (pieni¹dze/1250) prób zakupu broni ofensywnych. -* **Chooser** - Obiera sobie za cel najsÅ‚abszego przeciwnika (o najmniejszym zasobie energii) i celuje bardzo dokÅ‚adnie, jednak przed samym strzaÅ‚em energia strzaÅ‚u modyfikowana jest o parametr szczęścia :) , czyli mimo precyzyjnego wycelowania nie zawsze trafia. StrzaÅ‚ oddaje najlepszÄ… posiadanÄ… broniÄ… - chyba że cel jest blisko, wtedy zmienia broÅ„ na **Baby Missile**, by unikać trafienia samego siebie. Zawsze przed strzaÅ‚em aktywuje najlepszÄ… posiadanÄ… broÅ„ defensywnÄ… i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Zakupów dokonuje tak samo jak **Tosser**. +* **Chooser** - Obiera sobie za cel najs³abszego przeciwnika (o najmniejszym zasobie energii) i celuje bardzo dok³adnie, jednak przed samym strza³em energia strza³u modyfikowana jest o parametr szczêœcia :) , czyli mimo precyzyjnego wycelowania nie zawsze trafia. Strza³ oddaje najlepsz¹ posiadan¹ broni¹ - chyba ¿e cel jest blisko, wtedy zmienia broñ na **Baby Missile**, by unikaæ trafienia samego siebie. Zawsze przed strza³em aktywuje najlepsz¹ posiadan¹ broñ defensywn¹ i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Zakupów dokonuje tak samo jak **Tosser**. -* **Spoiler** - Strzela dokÅ‚adnie tak jak **Chooser**, tyle że ma wiÄ™cej szczęścia :), co oznacza, że nawet jeÅ›li nie trafi w wybrany cel, to może być to strzaÅ‚ precyzyjniejszy niż **Chooser**. JeÅ›li nie jest w stanie trafić w obrany cel, stara siÄ™ wybrać inny, w który może precyzyjnie trafić. Broni defensywnych używa dokÅ‚adnie tak jak **Chooser**. Na poczÄ…tku rundy ocenia ile ma pieniÄ™dzy i w zależnoÅ›ci od tego podejmuje (pieniÄ…dze/5100) prób zakupu broni defensywnych, a nastÄ™pnie jeszcze raz sprawdza ile pieniÄ™dzy mu zostaÅ‚o i podejmuje (pieniÄ…dze/320) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobiÄ… mu przypadkiem krzywdy. +* **Spoiler** - Strzela dok³adnie tak jak **Chooser**, tyle ¿e ma wiêcej szczêœcia :), co oznacza, ¿e nawet jeœli nie trafi w wybrany cel, to mo¿e byæ to strza³ precyzyjniejszy ni¿ **Chooser**. Jeœli nie jest w stanie trafiæ w obrany cel, stara siê wybraæ inny, w który mo¿e precyzyjnie trafiæ. Broni defensywnych u¿ywa dok³adnie tak jak **Chooser**. Na pocz¹tku rundy ocenia ile ma pieniêdzy i w zale¿noœci od tego podejmuje (pieni¹dze/5100) prób zakupu broni defensywnych, a nastêpnie jeszcze raz sprawdza ile pieniêdzy mu zosta³o i podejmuje (pieni¹dze/320) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobi¹ mu przypadkiem krzywdy. -* **Cyborg** - Obiera sobie za cel najsÅ‚abszego przeciwnika (o najmniejszym zasobie energii), lecz preferuje przeciwników sterowanych przez czÅ‚owieka. JeÅ›li nie jest w stanie trafić w obrany cel, stara siÄ™ wybrać inny, w który może precyzyjnie trafić. Celuje bardzo dokÅ‚adnie i w zdecydowanej wiÄ™kszoÅ›ci przypadków trafia za pierwszym strzaÅ‚em. StrzaÅ‚ oddaje najlepszÄ… posiadanÄ… broniÄ… - chyba że cel jest blisko, wtedy zmienia broÅ„ na **Baby Missile**, by unikać trafienia samego siebie. Broni defensywnych używa dokÅ‚adnie tak jak **Chooser**, ale jeÅ›li ma wiÄ™cej niź 2 sztuki **Battery**, stosuje je jeÅ›li energia zmniejszy siÄ™ poniższej 60 jednostek. Zakupy robi dokÅ‚adnie tak jak **Spoiler** +* **Cyborg** - Obiera sobie za cel najs³abszego przeciwnika (o najmniejszym zasobie energii), lecz preferuje przeciwników sterowanych przez cz³owieka. Jeœli nie jest w stanie trafiæ w obrany cel, stara siê wybraæ inny, w który mo¿e precyzyjnie trafiæ. Celuje bardzo dok³adnie i w zdecydowanej wiêkszoœci przypadków trafia za pierwszym strza³em. Strza³ oddaje najlepsz¹ posiadan¹ broni¹ - chyba ¿e cel jest blisko, wtedy zmienia broñ na **Baby Missile**, by unikaæ trafienia samego siebie. Broni defensywnych u¿ywa dok³adnie tak jak **Chooser**, ale jeœli ma wiêcej niŸ 2 sztuki **Battery**, stosuje je jeœli energia zmniejszy siê poni¿szej 60 jednostek. Zakupy robi dok³adnie tak jak **Spoiler** -* **Unknown** - Przed oddaniem każdego strzaÅ‚u losowo wybiera sposób dziaÅ‚ania od **Poolsharka** do **Cyborga** i stosuje jego taktykÄ™. Taktyka zakupów broni jest jednak zawsze identyczna jak **Tosser** +* **Unknown** - Przed oddaniem ka¿dego strza³u losowo wybiera sposób dzia³ania od **Poolsharka** do **Cyborga** i stosuje jego taktykê. Taktyka zakupów broni jest jednak zawsze identyczna jak **Tosser** + +**Poolshark**, **Tosser**, **Chooser**, **Spoiler** i **Cyborg** w czasie gry dru¿ynowej nigdy nie celuj¹ w cz³onka w³asnej dru¿yny, nawet jeœli grozi to im samym. ### AI idzie na zakupy -Próba zakupu broni (ofensywnej lub defensywnej) wyglÄ…da nastÄ™pujÄ…co: -Na poczÄ…tku losowana jest jedna z broni (wÅ›ród wszystkich możliwych ofensywnych lub defensywnych). NastÄ™pnie wykonywane jest sprawdzenie, czy wylosowana broÅ„ jest na liÅ›cie broni możliwych do zakupu przez czoÅ‚g. JeÅ›li nie, to w tej próbie żadna broÅ„ nie jest kupowana, a jeÅ›li tak, to sprawdzana jest jej cena. JeÅ›li czoÅ‚g ma tyle pieniÄ™dzy, broÅ„ jest kupowana, w przeciwnym wypadku próba koÅ„czy siÄ™ bez dokonania zakupu. +Próba zakupu broni (ofensywnej lub defensywnej) wygl¹da nastêpuj¹co: +Na pocz¹tku losowana jest jedna z broni (wœród wszystkich mo¿liwych ofensywnych lub defensywnych). Nastêpnie wykonywane jest sprawdzenie, czy wylosowana broñ jest na liœcie broni mo¿liwych do zakupu przez czo³g. Jeœli nie, to w tej próbie ¿adna broñ nie jest kupowana, a jeœli tak, to sprawdzana jest jej cena. Jeœli czo³g ma tyle pieniêdzy, broñ jest kupowana, w przeciwnym wypadku próba koñczy siê bez dokonania zakupu. Tabela broni kupowanych przez **Shooter**, **Poolshark**, **Tosser** i **Chooser** @@ -386,22 +390,22 @@ Tabela broni kupowanych przez **Spoiler** i **Cyborg** ## 9. Porady spod lady: -PamiÄ™taj o broniach defensywnych. **Auto Defense**, **Shield** i **Lazy Darwin** odpowiednio użyte pomogÄ… wygrać z Cyborgiem nawet przy pomocy **Baby Missile**. +Pamiêtaj o broniach defensywnych. **Auto Defense**, **Shield** i **Lazy Darwin** odpowiednio u¿yte pomog¹ wygraæ z Cyborgiem nawet przy pomocy **Baby Missile**. -Droższe nie znaczy lepsze. ZwykÅ‚a osÅ‚ona typu **Shield** jest czasem skuteczniejsza od droższych osÅ‚on. +Dro¿sze nie znaczy lepsze. Zwyk³a os³ona typu **Shield** jest czasem skuteczniejsza od dro¿szych os³on. -**Napalmy** przenikajÄ… przez osÅ‚ony a także przez glebÄ™. Mimo że palÄ… siÄ™ powyżej niszczÄ… zasypane czoÅ‚gi. +**Napalmy** przenikaj¹ przez os³ony a tak¿e przez glebê. Mimo ¿e pal¹ siê powy¿ej niszcz¹ zasypane czo³gi. -**Lazy Darwin** wspomaga także celowanie broniÄ… typu **Laser**. +**Lazy Darwin** wspomaga tak¿e celowanie broni¹ typu **Laser**. -RoboczoÅ‚gi nie umiejÄ… siÄ™ odkopywać. Zakopane ginÄ… od wÅ‚asnych strzałów. +Roboczo³gi nie umiej¹ siê odkopywaæ. Zakopane gin¹ od w³asnych strza³ów. -W sytuacji beznadziejnej smobójstwo może być lepsze od **White Flag**. JeÅ›li trafisz w siebie silnÄ… broniÄ… zarobisz wiÄ™cej pieniÄ™dzy niż stracisz (sprawdź sposób obliczania zysków i strat). +W sytuacji beznadziejnej smobójstwo mo¿e byæ lepsze od **White Flag**. Jeœli trafisz w siebie siln¹ broni¹ zarobisz wiêcej pieniêdzy ni¿ stracisz (sprawdŸ sposób obliczania zysków i strat). -**Long Schlong** potrafi znaczÄ…co onieÅ›mielić przeciwników. BÄ…dź alfa-czoÅ‚giem i porzuć wszelkie lÄ™ki. +**Long Schlong** potrafi znacz¹co onieœmieliæ przeciwników. B¹dŸ alfa-czo³giem i porzuæ wszelkie lêki. -RoboczoÅ‚gi nie majÄ… **Autodefense**, wiÄ™c defensywy aktywujÄ… tylko bezpoÅ›rednio przed swoim strzaÅ‚em. Zmasowany atak kilku graczy na jednego roboczoÅ‚ga gwarantuje sukces. +Roboczo³gi nie maj¹ **Autodefense**, wiêc defensywy aktywuj¹ tylko bezpoœrednio przed swoim strza³em. Zmasowany atak kilku graczy na jednego roboczo³ga gwarantuje sukces. -W ostatecznoÅ›ci możesz zostać Terminatorem (model standardowy, nie T-1000 :) ) +W ostatecznoœci mo¿esz zostaæ Terminatorem (model standardowy, nie T-1000 :) ) -PoÅ‚amania luf życzÄ… autorzy. +Po³amania luf ¿ycz¹ autorzy. diff --git a/Manuals/manual.asm b/Manuals/manual.asm index 456e85a..24e533e 100644 --- a/Manuals/manual.asm +++ b/Manuals/manual.asm @@ -3,7 +3,7 @@ icl '../Atari/lib/cartloader_vectors.inc' .IFNDEF LANG - .def LANG = "PL" + .def LANG = "EN" .ENDIF screen_height = 26 diff --git a/Manuals/manual_en.xex b/Manuals/manual_en.xex index 29d7210..adffcc7 100644 Binary files a/Manuals/manual_en.xex and b/Manuals/manual_en.xex differ diff --git a/Manuals/manual_pl.xex b/Manuals/manual_pl.xex index 6428ffa..77d5a2d 100644 Binary files a/Manuals/manual_pl.xex and b/Manuals/manual_pl.xex differ diff --git a/ai.asm b/ai.asm index 9da48d8..535280f 100644 --- a/ai.asm +++ b/ai.asm @@ -437,9 +437,12 @@ loop01 beq skipThisPlayer lda eXistenZ,y beq skipThisPlayer - lda BarrelLength,y - cmp #LongBarrel ; if target has Long Schlong do not aim - beq skipThisPlayer + ; moved to CheckTeamMember for optimization + ;lda BarrelLength,y + ;cmp #LongBarrel ; if target has Long Schlong do not aim + ;beq skipThisPlayer + jsr CheckTeamMember + bcc skipThisPlayer ; if the same Team lda skilltable,y beq ItIsHuman lda PreferHumansFlag @@ -499,10 +502,12 @@ loop01 beq skipThisPlayer lda eXistenZ,y beq skipThisPlayer - lda BarrelLength,y - cmp #LongBarrel ; if target has Long Schlong do not aim - beq skipThisPlayer - + ; moved to CheckTeamMember for optimization + ;lda BarrelLength,y + ;cmp #LongBarrel ; if target has Long Schlong do not aim + ;beq skipThisPlayer + jsr CheckTeamMember + bcc skipThisPlayer ; if the same Team lda LowResDistances,x cmp LowResDistances,y bcs EnemyOnTheLeft @@ -819,9 +824,12 @@ SetNextTarget beq skipThisPlayer lda eXistenZ,y beq skipThisPlayer - lda BarrelLength,y - cmp #LongBarrel ; if target has Long Schlong do not aim - beq skipThisPlayer + ; moved to CheckTeamMember for optimization + ;lda BarrelLength,y + ;cmp #LongBarrel ; if target has Long Schlong do not aim + ;beq skipThisPlayer + jsr CheckTeamMember + bcc skipThisPlayer ; if the same Team ; check target direction mva #0 tempor2 ; check target direction lda LowResDistances,x @@ -843,6 +851,25 @@ TankHit rts .endp +;---------------------------------------------- +.proc CheckTeamMember +; Target tank number in Y +; result in C bit ; 0 - the same Team ; 1 - another Team + ; optimization + lda #LongBarrel-1 + cmp BarrelLength,y ; if target has Long Schlong do not aim + bcc SchlongIsLong + ; end of optimization + sec ; if there is no team play, then as a member of another team + bit TeamGame ; if teams game + bvc no_teams + tya + eor TankNr + ror ; check lower bits of tank numbers (team) +no_teams +SchlongIsLong + rts +.endp ;---------------------------------------------- .proc PurchaseAI ; ; A - skill of the TankNr, TankNr in X diff --git a/artwork/CartMenu/menu.asm b/artwork/CartMenu/menu.asm index 153e63b..1e166df 100644 --- a/artwork/CartMenu/menu.asm +++ b/artwork/CartMenu/menu.asm @@ -11,11 +11,11 @@ ; start addr of loader ; cart banks numbers -LoaderBank = 0 -ScorchBank = 1 -MenuENBank = 10 -MenuPLBank = 15 -TetryxBank = 20 +LoaderBank = 0 ; offset $00000 (and $FE000) +ScorchBank = 1 ; offset $02000 +MenuENBank = 12 ; offset $18000 +MenuPLBank = 17 ; offset $22000 +TetryxBank = 22 ; offset $2c000 org $2000 WeaponFont diff --git a/artwork/CartMenu/menu.xex b/artwork/CartMenu/menu.xex index fab2fdb..2d40cd3 100644 Binary files a/artwork/CartMenu/menu.xex and b/artwork/CartMenu/menu.xex differ diff --git a/artwork/pack_talk5.py b/artwork/pack_talk5.py new file mode 100644 index 0000000..ef2c115 --- /dev/null +++ b/artwork/pack_talk5.py @@ -0,0 +1,224 @@ +#!/usr/bin/env python3 +"""Pack Scorch talk texts into 5-bit stream. + +Reads artwork/talk.asm and generates artwork/talk_packed.asm. + +Design goals: +- Keep the original artwork/talk.asm as editable source of strings. +- Generate a MADS-friendly .asm include with: + - .proc talk (namespace-compatible) + - talk5_alphabet (32 chars) + - talk5_data: records of [len][packed bytes...] + - constants (NumberOfOffensiveTexts, etc.) copied verbatim + - hoverFull/hoverEmpty blocks copied verbatim (uncompressed) + +Bit packing: +- 5-bit codes are packed LSB-first. +- For each string record: + - 1 byte length (0..63) + - packed bytes little-endian (first char in bits 0..4) + +The decoder in 6502 should read 5-bit codes from the low bits. +""" + +from __future__ import annotations + +import argparse +import re +from pathlib import Path +from typing import Iterable, List, Tuple + + +# 32-symbol alphabet. +# Note: We intentionally omit 'X' to make room for punctuation. +# Order must match the decoder table. +ALPHABET = " ABCDEFGHIJKLMNOPQRSTUVWYZ'!,-.?" # length must be 32 + + +_DTA_STR_RE = re.compile(r"^\s*dta\s+d\"(.*?)\"\^\s*(?:;.*)?$") + + +def _iter_lines(path: Path) -> List[str]: + return path.read_text(encoding="utf-8", errors="replace").splitlines() + + +def _find_section(lines: List[str], start_pat: re.Pattern[str], end_pat: re.Pattern[str]) -> Tuple[int, int]: + start_idx = None + for i, line in enumerate(lines): + if start_pat.search(line): + start_idx = i + break + if start_idx is None: + raise ValueError(f"Start pattern not found: {start_pat.pattern}") + + for j in range(start_idx + 1, len(lines)): + if end_pat.search(lines[j]): + return start_idx, j + raise ValueError(f"End pattern not found: {end_pat.pattern}") + + +def extract_talk_strings(lines: List[str]) -> List[str]: + # Only pack strings inside `.proc talk` up to the `LEND` marker. + proc_start, _ = _find_section(lines, re.compile(r"^\s*\.proc\s+talk\b"), re.compile(r"^\s*\.endp\b")) + + lend_idx = None + for i in range(proc_start, len(lines)): + if re.match(r"^\s*LEND\b", lines[i]): + lend_idx = i + break + if lend_idx is None: + raise ValueError("LEND marker not found inside .proc talk") + + strings: List[str] = [] + for line in lines[proc_start:lend_idx]: + m = _DTA_STR_RE.match(line) + if m: + strings.append(m.group(1)) + + if not strings: + raise ValueError("No talk strings found to pack") + + return strings + + +def extract_constants_block(lines: List[str]) -> List[str]: + # Copy constant definitions from after LEND up to `.endp` (inclusive of constants, exclusive of .endp). + proc_start, proc_end = _find_section(lines, re.compile(r"^\s*\.proc\s+talk\b"), re.compile(r"^\s*\.endp\b")) + + lend_idx = None + for i in range(proc_start, proc_end + 1): + if re.match(r"^\s*LEND\b", lines[i]): + lend_idx = i + break + if lend_idx is None: + raise ValueError("LEND marker not found inside .proc talk") + + # Keep from LEND line through the line before `.endp`. + return lines[lend_idx:proc_end] + + +def extract_tail_after_talk_proc(lines: List[str]) -> List[str]: + # Copy everything after `.endp` for talk proc. This includes hoverFull/hoverEmpty. + _, proc_end = _find_section(lines, re.compile(r"^\s*\.proc\s+talk\b"), re.compile(r"^\s*\.endp\b")) + return lines[proc_end + 1 :] + + +def validate_alphabet() -> None: + if len(ALPHABET) != 32: + raise ValueError(f"ALPHABET must be 32 chars, got {len(ALPHABET)}") + if len(set(ALPHABET)) != len(ALPHABET): + raise ValueError("ALPHABET has duplicate characters") + + +def pack_string_5bit(s: str, mapping: dict[str, int]) -> bytes: + if len(s) > 63: + raise ValueError(f"String too long ({len(s)}): {s!r}") + + out = bytearray() + out.append(len(s) & 0xFF) + + bitbuf = 0 + bitcount = 0 + + for ch in s: + try: + code = mapping[ch] + except KeyError as e: + raise ValueError(f"Character {ch!r} not in alphabet") from e + + bitbuf |= (code & 0x1F) << bitcount + bitcount += 5 + + while bitcount >= 8: + out.append(bitbuf & 0xFF) + bitbuf >>= 8 + bitcount -= 8 + + if bitcount: + out.append(bitbuf & 0xFF) + + return bytes(out) + + +def format_dta_bytes(data: bytes, indent: str = " ", per_line: int = 16) -> List[str]: + lines: List[str] = [] + for i in range(0, len(data), per_line): + chunk = data[i : i + per_line] + nums = ",".join(f"${b:02x}" for b in chunk) + lines.append(f"{indent}dta b({nums})") + return lines + + +def generate_output( + source_path: Path, + strings: List[str], + constants_block: List[str], + tail_lines: List[str], +) -> str: + mapping = {ch: i for i, ch in enumerate(ALPHABET)} + + packed_records: List[bytes] = [pack_string_5bit(s, mapping) for s in strings] + + out_lines: List[str] = [] + out_lines.append("; AUTO-GENERATED FILE - DO NOT EDIT") + out_lines.append(f"; Generated by {source_path.name} -> pack_talk5.py") + out_lines.append("; Source: artwork/talk.asm") + out_lines.append("") + + out_lines.append(".proc talk") + out_lines.append("; 5-bit packed talk strings (len + packed bytes)") + out_lines.append(f"talk5_alphabet dta d\"{ALPHABET}\"") + out_lines.append("talk5_data") + + for rec in packed_records: + out_lines.extend(format_dta_bytes(rec)) + + out_lines.append(";") + out_lines.append("; Constants copied from source") + out_lines.extend(constants_block) + out_lines.append(".endp") + + if tail_lines: + out_lines.append("") + out_lines.append("; Tail copied from source (uncompressed)") + out_lines.extend(tail_lines) + + out_lines.append("") + return "\n".join(out_lines) + + +def main(argv: List[str] | None = None) -> int: + parser = argparse.ArgumentParser(description="Pack artwork/talk.asm into a 5-bit blob for MADS.") + parser.add_argument( + "--src", + default="artwork/talk.asm", + help="Path to source talk.asm (default: artwork/talk.asm)", + ) + parser.add_argument( + "--out", + default="artwork/talk_packed.asm", + help="Path to output .asm include (default: artwork/talk_packed.asm)", + ) + + args = parser.parse_args(argv) + + validate_alphabet() + + src_path = Path(args.src) + out_path = Path(args.out) + + lines = _iter_lines(src_path) + strings = extract_talk_strings(lines) + constants_block = extract_constants_block(lines) + tail_lines = extract_tail_after_talk_proc(lines) + + content = generate_output(src_path, strings, constants_block, tail_lines) + + out_path.write_text(content, encoding="utf-8") + print(f"Wrote {out_path} ({len(content.encode('utf-8'))} bytes text)") + print(f"Packed {len(strings)} strings") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/artwork/splash_v1/splash.asm b/artwork/splash_v1/splash.asm index 7fcc300..05c0f50 100644 --- a/artwork/splash_v1/splash.asm +++ b/artwork/splash_v1/splash.asm @@ -56,9 +56,10 @@ pmg1 .ds $0300 main1 lda SplashTypeFlag - beq old_splash - rts -old_splash + cmp #200 ; (0 - 100 ; first splash , 101 - 200 ; second splash , 201 - 255 ; KAZ) + bcs this_splashK ; KAZ splash + rts ; next splash +this_splashK jsr init_song ; ; copy system font to $a000 diff --git a/artwork/splash_v2/splash.asm b/artwork/splash_v2/splash.asm index d1facc6..713ef4a 100644 --- a/artwork/splash_v2/splash.asm +++ b/artwork/splash_v2/splash.asm @@ -70,11 +70,11 @@ mother main .IF CART_VERSION lda random - and #%11100000 ; Old splash probability 1/8 sta SplashTypeFlag - bne new_splash - rts ; KAZ splash :) -new_splash + cmp #100 ; (0 - 100 ; first splash , 101 - 200 ; second splash , 201 - 255 ; KAZ) + bcc this_splash ; first splash + rts ; next splash +this_splash .ENDIF /* mva #00 ManualLangFlag ; no manual page @@ -105,9 +105,6 @@ new_splash LOOP lda vcount ;synchronization for the first screen (picture) line cmp #$02 - ;sta colpf0 - ;sta colpm0 - ;sta colbak bne LOOP mva #%00111110 dmactl ;set new screen width @@ -186,10 +183,6 @@ s0 lda #$03 lda skctl ; ANY KEY and #$04 bne skp -/* lda kbcode - cmp #$25 ; "M" key - bne stop - mva #01 ManualLangFlag ; english manual page */ stop mva #$00 pmcntl ;PMG disabled tax sta:rne hposp0,x+ @@ -212,38 +205,6 @@ stop mva #$00 pmcntl ;PMG disabled mva #$40 nmien ;only NMI interrupts, DLI disabled cli ;IRQ enabled -/* lda ManualLangFlag - beq waitkey2release - - ; and now display manual language selection screen - mva lngDL dlptrs+1 - mva #%00111110 dmactls ;set new screen width - - ; wait for key -waitkey2 - lda skctl ; ANY KEY - and #$04 - bne waitkey2 - lda kbcode - cmp #$2A ; "E" key - bne notEng - mva #01 ManualLangFlag ; english manual page - bne endsplash -notEng - cmp #$0A ; "P" key - bne waitkey2 - mva #02 ManualLangFlag ; polish manual page -endsplash - ;no glitching please (issue #67) - lda #0 - sta $D400 ;dmactl - sta $022F ;dmactls -waitkey2release - lda skctl ; ANY KEY - and #$04 - beq waitkey2release - */ rts ;return to ... DOS skp @@ -271,23 +232,6 @@ byt3 brk org $8000 ; fixed address of music routine and data icl "lzss_player.asm" ; player (and data) for splash music -;--- - -/* lngDL - .byte $70,$70,$70,$70,$70 - .byte $47 - .word LngTitle - .byte $70,$70 - .byte $42 - .word LngList - .byte $50,$02 - .byte $41 - .word lngDL -LngTitle - dta d" select language "* -LngList - dta d" E - English Manual " - dta d" P - Polska instrukcja " */ ;--- .MACRO ANTIC_PROGRAM diff --git a/artwork/splash_v3/no_name.h b/artwork/splash_v3/no_name.h new file mode 100644 index 0000000..0b73801 --- /dev/null +++ b/artwork/splash_v3/no_name.h @@ -0,0 +1,153 @@ + +.enum @@dmactl + blank = %00 + narrow = %01 + standard= %10 + wide = %11 + missiles= %100 + players = %1000 + lineX1 = %10000 + lineX2 = %00000 + dma = %100000 +.ende + +scr48 = @@dmactl(wide|dma|players|missiles|lineX1) ;screen 48b +scr40 = @@dmactl(standard|dma|players|missiles|lineX1) ;screen 40b +scr32 = @@dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b + +.enum @@pmcntl + missiles= %1 + players = %10 + trigs = %100 +.ende + +.enum @@gtictl + prior0 = %0 + prior1 = %1 + prior2 = %10 + prior4 = %100 + prior8 = %1000 + ply5 = %10000 ; Fifth Player Enable + mlc = %100000 ; Multiple Color Player Enable + mode9 = %01000000 + mode10 = %10000000 + mode11 = %11000000 +.ende + +* --------------------------------------------------------------------------------------------- +* --- GTIA +* --------------------------------------------------------------------------------------------- +hposp0 = $D000 ; pozioma pozycja gracza 0 (Z) +hposp1 = $D001 ; pozioma pozycja gracza 1 (Z) +hposp2 = $D002 ; pozioma pozycja gracza 2 (Z) +hposp3 = $D003 ; pozioma pozycja gracza 3 (Z) +hposm0 = $D004 ; pozioma pozycja pocisku 0 (Z) +hposm1 = $D005 ; pozioma pozycja pocisku 1 (Z) +hposm2 = $D006 ; pozioma pozycja pocisku 2 (Z) +hposm3 = $D007 ; pozioma pozycja pocisku 3 (Z) +sizep0 = $D008 ; poziomy rozmiar gracza 0 (Z) +sizep1 = $D009 ; poziomy rozmiar gracza 1 (Z) +sizep2 = $D00A ; poziomy rozmiar gracza 2 (Z) +sizep3 = $D00B ; poziomy rozmiar gracza 3 (Z) +sizem = $D00C ; poziomy rozmiar pocisków (Z) +grafp0 = $D00D ; rejestr grafiki gracza 0 (Z) +grafp1 = $D00E ; rejestr grafiki gracza 1 (Z) +grafp2 = $D00F ; rejestr grafiki gracza 2 (Z) +grafp3 = $D010 ; rejestr grafiki gracza 3 (Z) +grafm = $D011 ; rejestr grafiki pocisków (Z) +colpm0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z) +colpm1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z) +colpm2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z) +colpm3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z) +colpf0 = $D016 ; rejestr koloru pola gry 0 (Z) +colpf1 = $D017 ; rejestr koloru pola gry 1 (Z) +colpf2 = $D018 ; rejestr koloru pola gry 2 (Z) +colpf3 = $D019 ; rejestr koloru pola gry 3 (Z) +colbak = $D01A ; rejestr koloru t³a (Z) + +color0 = colpf0 +color1 = colpf1 +color2 = colpf2 +color3 = colpf3 + +kolm0pf = $D000 ; kolizja pocisku 0 z polem gry (O) +kolm1pf = $D001 ; kolizja pocisku 1 z polem gry (O) +kolm2pf = $D002 ; kolizja pocisku 2 z polem gry (O) +kolm3pf = $D003 ; kolizja pocisku 3 z polem gry (O) +kolp0pf = $D004 ; kolizja gracza 0 z polem gry (O) +kolp1pf = $D005 ; kolizja gracza 1 z polem gry (O) +kolp2pf = $D006 ; kolizja gracza 2 z polem gry (O) +kolp3pf = $D007 ; kolizja gracza 3 z polem gry (O) +kolm0p = $D008 ; kolizja pocisku 0 z graczem (O) +kolm1p = $D009 ; kolizja pocisku 1 z graczem (O) +kolm2p = $D00A ; kolizja pocisku 2 z graczem (O) +kolm3p = $D00B ; kolizja pocisku 3 z graczem (O) +kolp0p = $D00C ; kolizja gracza 0 z innym graczem (O) +kolp1p = $D00D ; kolizja gracza 1 z innym graczem (O) +kolp2p = $D00E ; kolizja gracza 2 z innym graczem (O) +kolp3p = $D00F ; kolizja gracza 3 z innym graczem (O) +trig0 = $D010 ; stan przycisku joysticka 0 (O) +trig1 = $D011 ; stan przycisku joysticka 1 (O) +trig3 = $D013 ; znacznik do³¹czenia cartridge-a (O) +pal = $D014 ; znacznik systemu TV (O) + +gtictl = $D01B ; rejestr kontroli uk³adu GTIA +gtiactl = gtictl + +vdelay = $D01C ; licznik opóŸnienia pionowego P/MG +pmcntl = $D01D ; rejestr kontroli graczy i pocisków +hitclr = $D01E ; rejestr kasowania rejestrów kolizji +consol = $D01F ; rejestr stanu klawiszy konsoli + +* --------------------------------------------------------------------------------------------- +* --- POKEY +* --------------------------------------------------------------------------------------------- + +irqens = $0010 ; rejestr-cieñ IRQEN +irqstat = $0011 ; rejestr-cieñ IRQST + +audf1 = $d200 ; czêstotliwoœæ pracy generatora 1 (Z) +audc1 = $d201 ; rejestr kontroli dŸwiêku generatora 1 (Z) +audf2 = $d202 ; czêstotliwoœæ pracy generatora 2 (Z) +audc2 = $d203 ; rejestr kontroli dŸwiêku generatora 2 (Z) +audf3 = $d204 ; czêstotliwoœæ pracy generatora 3 (Z) +audc3 = $d205 ; rejestr kontroli dŸwiêku generatora 3 (Z) +audf4 = $d206 ; czêstotliwoœæ pracy generatora 4 (Z) +audc4 = $d207 ; rejestr kontroli dŸwiêku generatora 4 (Z) + +audctl = $D208 ; rejestr kontroli generatorów dŸwiêku (Z) +stimer = $D209 ; rejestr zerowania liczników (Z) +kbcode = $D209 ; kod ostatnio naciœniêtego klawisza (O) +skstres = $D20A ; rejestr statusu z³¹cza szeregowego (Z) +random = $D20A ; rejestr liczby losowej (O) +serout = $D20D ; szeregowy rejestr wyjœciowy (Z) +serin = $D20D ; szeregowy rejestr wejœciowy (O) +irqen = $D20E ; zezwolenie przerwañ IRQ (Z) +irqst = $D20E ; status przerwañ IRQ (O) +skctl = $D20F ; rejestr kontroli z³¹cza szeregowego (Z) +skstat = $D20F ; rejestr statusu z³¹cza szeregowego (O) + +* --------------------------------------------------------------------------------------------- +* --- PIA +* --------------------------------------------------------------------------------------------- +porta = $D300 ; port A uk³adu PIA +portb = $D301 ; port B uk³adu PIA +pactl = $D302 ; rejestr kontroli portu A +pbctl = $D303 ; rejestr kontroli portu B + +* --------------------------------------------------------------------------------------------- +* --- ANTIC +* --------------------------------------------------------------------------------------------- +dmactl = $D400 ; rejestr kontroli dostêpu do pamiêci +chrctl = $D401 ; rejestr kontroli wyœwietlania znaków +dlptr = $D402 ; adres programu ANTIC-a +hscrol = $D404 ; znacznik poziomego przesuwu obrazu +vscrol = $D405 ; znacznik pionowego przesuwu obrazu +pmbase = $D407 ; adres pamiêci graczy i pocisków +chbase = $D409 ; adres zestawu znaków +wsync = $D40A ; znacznik oczekiwania na synchronizacjê poziom¹ +vcount = $D40B ; licznik linii obrazu +lpenh = $D40C ; poziome po³o¿enie pióra œwietlengo +lpenv = $D40D ; pionowe po³o¿enie pióra œwietlnego +nmien = $D40E ; rejestr zezwoleñ na przerwania NMI +nmist = $D40F ; rejestr statusu przerwañ NMI \ No newline at end of file diff --git a/artwork/splash_v3/output.png b/artwork/splash_v3/output.png new file mode 100644 index 0000000..bb6055a Binary files /dev/null and b/artwork/splash_v3/output.png differ diff --git a/artwork/splash_v3/output.png.mic b/artwork/splash_v3/output.png.mic new file mode 100644 index 0000000..5f6c474 Binary files /dev/null and b/artwork/splash_v3/output.png.mic differ diff --git a/artwork/splash_v3/output.png.opt b/artwork/splash_v3/output.png.opt new file mode 100644 index 0000000..96d6cbb --- /dev/null +++ b/artwork/splash_v3/output.png.opt @@ -0,0 +1,4494 @@ +; ---------------------------------- +; RastaConverter by Ilmenit v.Beta20 +; InputName: /home/pirx/Downloads/15ca6570-9bf5-4f06-9ea2-4e756e13ab1e.jpeg +; CmdLine: /input=/home/pirx/Downloads/15ca6570-9bf5-4f06-9ea2-4e756e13ab1e.jpeg /threads=20 +; Evaluations: 38901028754 +; Score: 3.0053 +; ---------------------------------- +; Proper offset + nop + nop + nop + nop + cmp byt2; +line0 + nop + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1 + nop + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta colpf2 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2 + nop + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3 + nop + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty colpf1 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4 + nop + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5 + sta COLBAK + nop + sta colpf0 + ldx #$3A ; 58 (spr=10) + stx HPOSP0 + lda #$00 ; 0 (spr=-48) + nop + nop + nop + ldy #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6 + lda #$10 ; 16 (spr=-32) + sty COLBAK + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + nop + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line8 + nop + sty COLPM3 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + nop + nop + sta COLBAK + sta colpf0 + sta colpf0 + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf0 + nop + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + nop + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + nop + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC + sta COLBAK + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineD + nop + lda #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$FF ; 255 (spr=207) + sty colpf2 + nop + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineE + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineF + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line10 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line11 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line12 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line13 + lda #$00 ; 0 (spr=-48) + sta colpf0 + nop + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$F0 ; 240 (spr=192) + sty colpf2 + sta COLBAK + nop + nop + nop + sta COLBAK + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line14 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line15 + lda #$00 ; 0 (spr=-48) + sta colpf0 + nop + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$F0 ; 240 (spr=192) + sty colpf2 + sta COLBAK + nop + nop + nop + sta COLBAK + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line16 + lda #$00 ; 0 (spr=-48) + sta colpf0 + nop + ldx #$00 ; 0 (spr=-48) + nop + stx colpf1 + ldy #$D0 ; 208 (spr=160) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line17 + nop + lda #$E2 ; 226 (spr=178) + nop + stx colpf0 + sta COLBAK + sta COLPM0 + lda #$00 ; 0 (spr=-48) + sta COLBAK + sta colpf0 + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line18 + lda #$07 ; 7 (spr=-41) + sta colpf0 + nop + stx colpf0 + sta COLBAK + sta COLPM0 + lda #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + sty COLPM3 + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line19 + nop + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldx #$0E ; 14 (spr=-34) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + stx COLPM3 + lda #$03 ; 3 (spr=-45) + ldx #$00 ; 0 (spr=-48) + sta colpf0 + nop + stx HPOSP2 + sta COLBAK + nop + stx COLPM2 + sta HPOSP2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line1A + nop + stx colpf1 + ldx #$0E ; 14 (spr=-34) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + sta colpf0 + nop + sta COLBAK + nop + sta HPOSP2 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1B + nop + nop + nop + stx colpf1 + lda #$00 ; 0 (spr=-48) + sta COLBAK + sta HPOSP2 + ldy #$0C ; 12 (spr=-36) + nop + sty colpf2 + sty HPOSP2 + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1C + nop + lda #$07 ; 7 (spr=-41) + sta COLPM3 + nop + lda #$04 ; 4 (spr=-44) + stx colpf1 + sty HPOSP2 + sta colpf0 + nop + nop + lda #$0A ; 10 (spr=-38) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1D + sta COLBAK + sta colpf0 + stx colpf1 + ldx #$0E ; 14 (spr=-34) + nop + stx COLPM2 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + sta COLBAK + nop + stx colpf1 + ldy #$00 ; 0 (spr=-48) + stx COLPM2 + nop + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line1E + nop + sta COLPM0 + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$0C ; 12 (spr=-36) + nop + sta colpf0 + lda #$04 ; 4 (spr=-44) + sty colpf2 + sty colpf2 + sta COLPM0 + lda #$02 ; 2 (spr=-46) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1F + nop + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$02 ; 2 (spr=-46) + sta colpf0 + stx colpf1 + nop + sty colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line20 + nop + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$02 ; 2 (spr=-46) + sta colpf0 + stx colpf1 + lda #$04 ; 4 (spr=-44) + sty colpf2 + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line21 + stx colpf1 + sta COLPM0 + nop + sty colpf2 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + stx HPOSP1 + nop + sta COLBAK + stx colpf1 + ldy #$0A ; 10 (spr=-38) + sty colpf2 + nop + ldy #$00 ; 0 (spr=-48) + lda #$08 ; 8 (spr=-40) + sty HPOSP1 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line22 + nop + ldy #$00 ; 0 (spr=-48) + sty HPOSP1 + nop + nop + lda #$04 ; 4 (spr=-44) + ldx #$0D ; 13 (spr=-35) + stx COLPM3 + sta COLBAK + sta COLBAK + nop + nop + lda #$03 ; 3 (spr=-45) + nop + sta colpf2 + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line23 + stx colpf1 + stx HPOSP2 + stx HPOSP1 + nop + lda #$01 ; 1 (spr=-47) + sta HPOSP2 + nop + nop + nop + ldy #$0B ; 11 (spr=-37) + ldx #$0E ; 14 (spr=-34) + nop + lda #$02 ; 2 (spr=-46) + sty colpf2 + ldy #$07 ; 7 (spr=-41) + sta colpf2 + sta colpf2 + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line24 + sta colpf2 + lda #$00 ; 0 (spr=-48) + stx colpf1 + sty colpf1 + sta colpf0 + sty colpf2 + lda #$02 ; 2 (spr=-46) + nop + ldy #$0B ; 11 (spr=-37) + stx colpf1 + sty colpf2 + ldy #$00 ; 0 (spr=-48) + sta colpf2 + lda #$00 ; 0 (spr=-48) + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line25 + sta colpf0 + nop + lda #$02 ; 2 (spr=-46) + stx colpf1 + sta COLPM2 + sty colpf2 + nop + lda #$02 ; 2 (spr=-46) + ldy #$08 ; 8 (spr=-40) + sty COLBAK + sty colpf2 + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line26 + sty colpf2 + nop + stx colpf2 + ldy #$06 ; 6 (spr=-42) + nop + sty colpf2 + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + ldy #$C0 ; 192 (spr=144) + sty HPOSP2 + sty HPOSP1 + sta COLBAK + ldx #$19 ; 25 (spr=-23) + nop + nop + stx HPOSP2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line27 + stx HPOSP2 + nop + nop + nop + lda #$03 ; 3 (spr=-45) + sta COLBAK + nop + sta COLPM0 + nop + nop + ldy #$08 ; 8 (spr=-40) + lda #$04 ; 4 (spr=-44) + sty colpf2 + nop + nop + sta COLBAK + nop + ldy #$00 ; 0 (spr=-48) + sty colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line28 + ldx #$61 ; 97 (spr=49) + ldy #$0A ; 10 (spr=-38) + sty colpf2 + sta COLPM1 + sty colpf2 + sta HPOSP1 + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line29 + stx HPOSP2 + nop + sta COLPM1 + nop + ldx #$0E ; 14 (spr=-34) + ldy #$0D ; 13 (spr=-35) + sty colpf2 + ldy #$0A ; 10 (spr=-38) + sta COLPM0 + sty colpf2 + sty colpf1 + ldy #$08 ; 8 (spr=-40) + sty HPOSP2 + sty colpf2 + stx colpf1 + ldy #$02 ; 2 (spr=-46) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2A + nop + sty COLPM2 + ldy #$9A ; 154 (spr=106) + lda #$07 ; 7 (spr=-41) + sty HPOSP2 + ldy #$02 ; 2 (spr=-46) + sty colpf1 + sta colpf1 + stx colpf1 + stx COLPM1 + sty COLPM2 + sty COLPM0 + sty COLBAK + nop + ldx #$0E ; 14 (spr=-34) + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2B + ldy #$0C ; 12 (spr=-36) + sta COLPM1 + nop + stx COLPM2 + nop + stx HPOSP1 + sty colpf2 + sta HPOSP2 + sta colpf1 + lda #$02 ; 2 (spr=-46) + sta COLPM3 + stx HPOSP2 + ldy #$00 ; 0 (spr=-48) + sty COLPM1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2C + sty COLBAK + nop + nop + ldy #$04 ; 4 (spr=-44) + stx COLPM0 + sty COLBAK + sty COLPM3 + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + nop + sta COLPM0 + nop + stx colpf1 + nop + sty colpf2 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line2D + nop + lda #$02 ; 2 (spr=-46) + ldy #$88 ; 136 (spr=88) + sty HPOSP1 + nop + sta COLBAK + sty HPOSP2 + nop + sta COLPM1 + sty HPOSP2 + sty COLPM0 + nop + ldy #$9E ; 158 (spr=110) + stx colpf1 + sty colpf2 + nop + ldy #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2E + sty COLPM3 + ldy #$80 ; 128 (spr=80) + nop + sty colpf1 + nop + ldy #$04 ; 4 (spr=-44) + lda #$07 ; 7 (spr=-41) + sty colpf2 + stx colpf1 + nop + ldy #$0C ; 12 (spr=-36) + nop + sta COLPM1 + sty COLBAK + sta colpf1 + sta COLBAK + nop + lda #$FF ; 255 (spr=207) + nop ; filler + cmp byt2; on zero page so 3 cycles +line2F + ldy #$94 ; 148 (spr=100) + sta COLPM2 + nop + sty colpf1 + lda #$8A ; 138 (spr=90) + sta colpf2 + ldy #$09 ; 9 (spr=-39) + stx colpf1 + sty colpf2 + nop + nop + ldy #$86 ; 134 (spr=86) + sty COLPM0 + ldy #$04 ; 4 (spr=-44) + sty colpf1 + stx colpf1 + ldy #$8A ; 138 (spr=90) + lda #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line30 + sta COLPM1 + stx COLPM1 + nop + sty colpf2 + lda #$09 ; 9 (spr=-39) + nop + sta colpf2 + nop + ldx #$0C ; 12 (spr=-36) + stx colpf2 + ldx #$02 ; 2 (spr=-46) + nop + sta colpf2 + ldy #$8A ; 138 (spr=90) + stx colpf2 + nop + nop + nop + ldx #$04 ; 4 (spr=-44) + nop ; filler + cmp byt2; on zero page so 3 cycles +line31 + sty colpf2 + stx COLPM1 + nop + nop + nop + nop + nop + sta colpf2 + ldy #$8A ; 138 (spr=90) + sta COLPM1 + sty COLPM2 + nop + ldx #$02 ; 2 (spr=-46) + lda #$0C ; 12 (spr=-36) + sta colpf2 + lda #$04 ; 4 (spr=-44) + nop + sty colpf2 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line32 + sta COLPM1 + stx COLPM1 + nop + sty COLPM2 + nop + nop + sta colpf2 + nop + ldx #$0C ; 12 (spr=-36) + stx colpf2 + nop + nop + nop + nop + nop + sty colpf2 + nop + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line33 + lda #$26 ; 38 (spr=-10) + nop + sta COLPM2 + nop + ldx #$04 ; 4 (spr=-44) + ldy #$02 ; 2 (spr=-46) + nop + nop + sty colpf2 + lda #$0B ; 11 (spr=-37) + sta colpf2 + nop + stx colpf2 + lda #$87 ; 135 (spr=87) + stx COLPM0 + sty colpf2 + sta colpf2 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line34 + stx COLPM1 + nop + ldx #$21 ; 33 (spr=-15) + ldy #$25 ; 37 (spr=-11) + lda #$0D ; 13 (spr=-35) + stx COLPM1 + nop + nop + sta colpf2 + lda #$2F ; 47 (spr=-1) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf2 + sty COLPM1 + nop + nop + ldx #$90 ; 144 (spr=96) + stx COLPM3 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line35 + nop + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + lda #$0A ; 10 (spr=-38) + ldx #$29 ; 41 (spr=-7) + ldy #$9A ; 154 (spr=106) + sty colpf2 + sta colpf2 + nop + stx colpf1 + nop + lda #$02 ; 2 (spr=-46) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + nop + lda #$06 ; 6 (spr=-42) + nop + nop + sty colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line36 + sty colpf0 + nop + sta colpf0 + lda #$8F ; 143 (spr=95) + stx colpf1 + ldx #$0F ; 15 (spr=-33) + sta colpf0 + lda #$2B ; 43 (spr=-5) + sta colpf0 + sty COLPM3 + nop + lda #$06 ; 6 (spr=-42) + sta colpf2 + ldy #$00 ; 0 (spr=-48) + nop + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line37 + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$94 ; 148 (spr=100) + sty colpf0 + stx colpf1 + sta colpf0 + ldx #$2A ; 42 (spr=-6) + stx colpf1 + lda #$07 ; 7 (spr=-41) + nop + sta colpf1 + nop + nop + ldx #$02 ; 2 (spr=-46) + lda #$06 ; 6 (spr=-42) + ldy #$8A ; 138 (spr=90) + stx COLPM1 + sty COLPM3 + nop ; filler + cmp byt2; on zero page so 3 cycles +line38 + stx COLBAK + ldx #$29 ; 41 (spr=-7) + nop + sta COLBAK + nop + nop + lda #$87 ; 135 (spr=87) + ldy #$0E ; 14 (spr=-34) + sta colpf1 + nop + stx colpf1 + nop + nop + sty colpf1 + nop + ldy #$06 ; 6 (spr=-42) + sty colpf1 + ldx #$00 ; 0 (spr=-48) + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line39 + stx COLBAK + lda #$08 ; 8 (spr=-40) + nop + nop + nop + ldx #$29 ; 41 (spr=-7) + sta COLBAK + lda #$87 ; 135 (spr=87) + sta colpf1 + stx colpf1 + ldy #$04 ; 4 (spr=-44) + nop + sty colpf1 + ldy #$06 ; 6 (spr=-42) + sty colpf1 + nop + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3A + nop + nop + nop + nop + lda #$07 ; 7 (spr=-41) + nop + sta COLBAK + ldy #$84 ; 132 (spr=84) + lda #$24 ; 36 (spr=-12) + sty colpf1 + sta colpf1 + nop + nop + nop + ldy #$50 ; 80 (spr=32) + sty HPOSP1 + ldx #$86 ; 134 (spr=86) + stx COLPM1 + nop + lda #$08 ; 8 (spr=-40) + ldy #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +line3B + sty colpf1 + nop + sta COLPM3 + ldx #$0A ; 10 (spr=-38) + lda #$03 ; 3 (spr=-45) + nop + nop + ldy #$30 ; 48 (spr=0) + sta colpf1 + sta colpf1 + sty colpf0 + sta colpf0 + stx colpf1 + nop + ldx #$0A ; 10 (spr=-38) + nop + stx COLBAK + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line3C + sta COLPM2 + ldx #$06 ; 6 (spr=-42) + lda #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$00 ; 0 (spr=-48) + stx COLPM0 + stx COLPM3 + stx colpf0 + sta colpf1 + nop + sty COLPM1 + nop + sty COLBAK + lda #$04 ; 4 (spr=-44) + ldx #$08 ; 8 (spr=-40) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3D + ldy #$0A ; 10 (spr=-38) + nop + stx COLPM0 + sta HPOSP2 + sty colpf2 + ldx #$82 ; 130 (spr=82) + stx COLPM3 + ldx #$08 ; 8 (spr=-40) + lda #$04 ; 4 (spr=-44) + stx colpf1 + nop + sta colpf0 + nop + nop + lda #$00 ; 0 (spr=-48) + nop + nop + sta COLPM3 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line3E + nop + nop + ldx #$07 ; 7 (spr=-41) + ldy #$03 ; 3 (spr=-45) + stx colpf1 + nop + sty COLPM3 + nop + lda #$00 ; 0 (spr=-48) + sty COLPM3 + ldy #$0A ; 10 (spr=-38) + sta COLPM3 + sta COLBAK + lda #$0E ; 14 (spr=-34) + sta colpf1 + stx colpf2 + sty colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3F + sty colpf1 + sta colpf2 + sty colpf2 + stx colpf2 + nop + nop + lda #$03 ; 3 (spr=-45) + sta COLPM3 + sta colpf2 + lda #$0C ; 12 (spr=-36) + ldy #$07 ; 7 (spr=-41) + sty COLPM2 + sta colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line40 + lda #$00 ; 0 (spr=-48) + sta colpf2 + sta COLBAK + stx colpf2 + sty colpf2 + ldx #$09 ; 9 (spr=-39) + nop + sty HPOSP2 + stx colpf2 + nop + sty colpf2 + lda #$0E ; 14 (spr=-34) + sta colpf2 + nop + nop + nop + stx colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line41 + lda #$D0 ; 208 (spr=160) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sty colpf2 + sta colpf0 + lda #$0F ; 15 (spr=-33) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line42 + lda #$0F ; 15 (spr=-33) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sta colpf0 + sty colpf2 + lda #$D0 ; 208 (spr=160) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line43 + lda #$D0 ; 208 (spr=160) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + lda #$01 ; 1 (spr=-47) + sty colpf2 + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sta colpf2 + sty colpf2 + lda #$0F ; 15 (spr=-33) + sta colpf2 + stx COLPM2 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line44 + lda #$00 ; 0 (spr=-48) + sty colpf2 + sta COLBAK + lda #$1B ; 27 (spr=-21) + nop + sta HPOSP2 + nop + stx colpf2 + lda #$0E ; 14 (spr=-34) + sty colpf2 + sta colpf2 + sty colpf2 + sta colpf2 + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line45 + nop + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldy #$06 ; 6 (spr=-42) + sta COLPM1 + sty colpf2 + nop + stx colpf2 + nop + nop + lda #$0E ; 14 (spr=-34) + sta colpf2 + stx colpf2 + sta colpf1 + ldx #$0A ; 10 (spr=-38) + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line46 + nop + stx colpf1 + nop + sty colpf2 + nop + nop + nop + lda #$09 ; 9 (spr=-39) + nop + ldx #$0E ; 14 (spr=-34) + sta colpf2 + lda #$1E ; 30 (spr=-18) + stx colpf2 + sty colpf2 + sta colpf2 + nop + sty colpf2 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line47 + lda #$00 ; 0 (spr=-48) + sty COLBAK + sta COLBAK + ldy #$0E ; 14 (spr=-34) + nop + ldx #$02 ; 2 (spr=-46) + nop + nop + stx COLPM1 + ldx #$09 ; 9 (spr=-39) + stx colpf2 + sty colpf2 + ldy #$26 ; 38 (spr=-10) + sty colpf2 + nop + sty COLPM3 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line48 + nop + ldy #$06 ; 6 (spr=-42) + nop + lda #$55 ; 85 (spr=37) + sty colpf2 + nop + sta COLPM2 + nop + nop + ldy #$02 ; 2 (spr=-46) + nop + ldx #$2B ; 43 (spr=-5) + sty colpf0 + lda #$26 ; 38 (spr=-10) + sta colpf0 + stx colpf1 + nop + ldx #$0B ; 11 (spr=-37) + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line49 + lda #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf1 + nop + nop + nop + lda #$39 ; 57 (spr=9) + ldx #$0A ; 10 (spr=-38) + nop + nop + nop + sta HPOSP0 + lda #$28 ; 40 (spr=-8) + stx colpf1 + nop + sta colpf0 + lda #$05 ; 5 (spr=-43) + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4A + sta COLPM2 + ldx #$0A ; 10 (spr=-38) + sta colpf0 + nop + lda #$02 ; 2 (spr=-46) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + sta COLPM2 + nop + sta colpf0 + nop + lda #$28 ; 40 (spr=-8) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sta colpf1 + stx colpf1 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line4B + nop + lda #$04 ; 4 (spr=-44) + sta colpf0 + nop + ldx #$0A ; 10 (spr=-38) + nop + lda #$29 ; 41 (spr=-7) + sty colpf2 + stx colpf1 + sta HPOSP2 + ldx #$0A ; 10 (spr=-38) + sty HPOSP2 + sta COLPM2 + sta colpf1 + lda #$03 ; 3 (spr=-45) + sta colpf1 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line4C + stx colpf1 + ldy #$56 ; 86 (spr=38) + nop + sty HPOSP1 + nop + sty HPOSP2 + sty HPOSP0 + nop + nop + nop + nop + nop + nop + ldx #$26 ; 38 (spr=-10) + nop + stx colpf1 + ldx #$35 ; 53 (spr=5) + nop + stx HPOSP0 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line4D + ldx #$22 ; 34 (spr=-14) + stx colpf1 + ldy #$0A ; 10 (spr=-38) + ldx #$07 ; 7 (spr=-41) + nop + stx colpf2 + sty colpf2 + stx colpf1 + ldy #$55 ; 85 (spr=37) + sty colpf1 + stx colpf1 + nop + ldx #$2A ; 42 (spr=-6) + stx colpf1 + nop + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4E + nop + ldx #$06 ; 6 (spr=-42) + nop + stx colpf1 + ldx #$2E ; 46 (spr=-2) + nop + lda #$06 ; 6 (spr=-42) + stx colpf1 + sta colpf1 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4F + nop + nop + nop + nop + nop + ldx #$2D ; 45 (spr=-3) + nop + lda #$06 ; 6 (spr=-42) + stx colpf1 + sta colpf1 + nop + ldy #$00 ; 0 (spr=-48) + nop + nop + nop + nop + ldx #$08 ; 8 (spr=-40) + stx colpf1 + nop + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line50 + nop + nop + nop + ldx #$2A ; 42 (spr=-6) + stx colpf1 + ldx #$07 ; 7 (spr=-41) + sty COLPM2 + nop + stx colpf1 + ldx #$02 ; 2 (spr=-46) + stx COLPM1 + nop + sty COLPM1 + ldy #$06 ; 6 (spr=-42) + stx colpf1 + nop + sty colpf1 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line51 + ldy #$08 ; 8 (spr=-40) + nop + lda #$06 ; 6 (spr=-42) + sty COLPM1 + nop + nop + ldx #$2A ; 42 (spr=-6) + stx colpf1 + sta colpf1 + ldx #$07 ; 7 (spr=-41) + sty colpf1 + nop + stx colpf1 + ldx #$D0 ; 208 (spr=160) + nop + stx COLPM2 + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line52 + stx COLBAK + nop + ldx #$06 ; 6 (spr=-42) + ldy #$0B ; 11 (spr=-37) + nop + sty colpf2 + nop + lda #$00 ; 0 (spr=-48) + stx COLPM0 + sta colpf0 + ldx #$26 ; 38 (spr=-10) + nop + ldy #$08 ; 8 (spr=-40) + nop + stx colpf1 + sty COLBAK + ldx #$06 ; 6 (spr=-42) + stx COLPM2 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line53 + nop + nop + lda #$04 ; 4 (spr=-44) + ldx #$0A ; 10 (spr=-38) + stx colpf1 + sta colpf2 + lda #$08 ; 8 (spr=-40) + nop + nop + sta COLBAK + nop + sta COLBAK + nop + lda #$27 ; 39 (spr=-9) + sta COLBAK + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line54 + nop + lda #$0A ; 10 (spr=-38) + nop + ldy #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$E0 ; 224 (spr=176) + nop + lda #$2A ; 42 (spr=-6) + stx colpf1 + sty colpf1 + nop + nop + nop + ldy #$04 ; 4 (spr=-44) + nop + sta colpf2 + sty colpf2 + nop + nop + ldx #$2A ; 42 (spr=-6) + ldy #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line55 + nop + lda #$04 ; 4 (spr=-44) + sta colpf0 + nop + sty colpf2 + sty colpf2 + sty colpf2 + nop + lda #$08 ; 8 (spr=-40) + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf0 + stx colpf0 + sta colpf0 + nop + nop + ldy #$0A ; 10 (spr=-38) + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line56 + nop + lda #$05 ; 5 (spr=-43) + sta colpf0 + nop + lda #$3A ; 58 (spr=10) + sty colpf2 + sty colpf2 + sta HPOSP1 + nop + nop + ldy #$0A ; 10 (spr=-38) + lda #$08 ; 8 (spr=-40) + sty colpf2 + stx colpf0 + nop + sta colpf0 + ldy #$0A ; 10 (spr=-38) + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line57 + nop + nop + lda #$04 ; 4 (spr=-44) + sta colpf0 + sty colpf2 + sty colpf2 + sty colpf2 + nop + lda #$02 ; 2 (spr=-46) + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf0 + stx colpf0 + sta colpf0 + nop + ldy #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line58 + sty colpf0 + sta colpf0 + nop + sty colpf2 + sty colpf2 + sty colpf2 + lda #$06 ; 6 (spr=-42) + nop + sta colpf0 + nop + nop + ldy #$08 ; 8 (spr=-40) + stx colpf0 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + sty colpf0 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line59 + sta COLPM1 + lda #$08 ; 8 (spr=-40) + nop + nop + ldy #$D0 ; 208 (spr=160) + stx COLPM1 + sty colpf1 + sta colpf1 + sty COLPM1 + nop + stx colpf1 + lda #$29 ; 41 (spr=-7) + ldy #$26 ; 38 (spr=-10) + nop + sta COLBAK + sty COLBAK + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line5A + nop + lda #$12 ; 18 (spr=-30) + nop + nop + ldx #$08 ; 8 (spr=-40) + sta colpf1 + nop + nop + nop + stx colpf1 + ldx #$00 ; 0 (spr=-48) + ldy #$28 ; 40 (spr=-8) + nop + nop + stx colpf1 + sty colpf1 + stx COLBAK + ldx #$08 ; 8 (spr=-40) + stx colpf1 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line5B + sty COLPM3 + nop + nop + ldx #$24 ; 36 (spr=-12) + nop + nop + nop + stx colpf1 + nop + ldx #$26 ; 38 (spr=-10) + stx colpf1 + nop + nop + nop + ldx #$01 ; 1 (spr=-47) + nop + stx COLPM0 + stx COLPM3 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5C + ldy #$26 ; 38 (spr=-10) + lda #$0A ; 10 (spr=-38) + ldx #$06 ; 6 (spr=-42) + sta colpf1 + nop + stx colpf2 + nop + sty colpf2 + lda #$01 ; 1 (spr=-47) + sta COLBAK + stx colpf0 + lda #$06 ; 6 (spr=-42) + ldx #$28 ; 40 (spr=-8) + stx colpf0 + nop + sta colpf0 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5D + nop + lda #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf1 + nop + nop + stx colpf1 + lda #$06 ; 6 (spr=-42) + nop + nop + ldx #$04 ; 4 (spr=-44) + sta colpf1 + lda #$28 ; 40 (spr=-8) + sta colpf1 + stx colpf2 + lda #$09 ; 9 (spr=-39) + sta colpf1 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line5E + sta COLPM2 + sta colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$07 ; 7 (spr=-41) + sty colpf2 + lda #$28 ; 40 (spr=-8) + sta COLBAK + nop + ldx #$26 ; 38 (spr=-10) + nop + nop + stx colpf1 + lda #$04 ; 4 (spr=-44) + sta colpf1 + nop + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5F + nop + nop + nop + ldx #$04 ; 4 (spr=-44) + nop + stx colpf1 + lda #$28 ; 40 (spr=-8) + ldy #$02 ; 2 (spr=-46) + sty COLPM2 + sta COLBAK + nop + ldx #$0A ; 10 (spr=-38) + lda #$26 ; 38 (spr=-10) + stx COLPM1 + sta colpf1 + sty COLPM1 + sty colpf1 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line60 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + nop + nop + ldy #$2A ; 42 (spr=-6) + nop + nop + lda #$09 ; 9 (spr=-39) + nop + sta COLPM2 + nop + nop + lda #$09 ; 9 (spr=-39) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + sty colpf2 + sta colpf1 + nop + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line61 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + nop + ldy #$06 ; 6 (spr=-42) + sty colpf2 + lda #$84 ; 132 (spr=84) + sta HPOSP2 + nop + nop + nop + lda #$09 ; 9 (spr=-39) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + nop + sta colpf1 + sta COLPM2 + ldy #$02 ; 2 (spr=-46) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line62 + nop + sty colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta COLBAK + lda #$28 ; 40 (spr=-8) + sty colpf2 + sta COLBAK + ldx #$2A ; 42 (spr=-6) + nop + nop + stx colpf1 + nop + lda #$08 ; 8 (spr=-40) + sta COLBAK + nop + nop + lda #$09 ; 9 (spr=-39) + nop ; filler + cmp byt2; on zero page so 3 cycles +line63 + sta COLBAK + nop + ldx #$04 ; 4 (spr=-44) + sta colpf2 + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2B ; 43 (spr=-5) + sta COLBAK + nop + nop + stx colpf1 + sty colpf2 + lda #$09 ; 9 (spr=-39) + sta COLBAK + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line64 + sta COLBAK + sty colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2B ; 43 (spr=-5) + sta COLBAK + nop + nop + nop + stx colpf1 + lda #$09 ; 9 (spr=-39) + sta colpf1 + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line65 + sty colpf2 + sty colpf2 + nop + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta COLBAK + lda #$28 ; 40 (spr=-8) + nop + sta COLBAK + ldx #$2A ; 42 (spr=-6) + nop + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta colpf0 + nop + sta colpf0 + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line66 + sta COLBAK + sty colpf2 + ldx #$04 ; 4 (spr=-44) + ldy #$06 ; 6 (spr=-42) + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2A ; 42 (spr=-6) + sta COLBAK + nop + lda #$08 ; 8 (spr=-40) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta colpf1 + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line67 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + sty colpf1 + nop + stx colpf1 + nop + nop + ldx #$2A ; 42 (spr=-6) + nop + nop + sty colpf2 + nop + lda #$08 ; 8 (spr=-40) + stx colpf1 + ldx #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + stx colpf0 + sta COLBAK + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line68 + lda #$2A ; 42 (spr=-6) + sta HPOSP2 + nop + nop + ldx #$04 ; 4 (spr=-44) + stx colpf1 + nop + sty colpf2 + nop + sty HPOSP2 + lda #$28 ; 40 (spr=-8) + ldy #$09 ; 9 (spr=-39) + ldx #$5E ; 94 (spr=46) + sta COLBAK + stx COLPM2 + sty COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line69 + lda #$07 ; 7 (spr=-41) + sta COLBAK + stx HPOSP2 + ldx #$27 ; 39 (spr=-9) + nop + sta COLPM2 + nop + sty colpf2 + sty HPOSP2 + ldy #$28 ; 40 (spr=-8) + nop + sty colpf2 + sty COLPM2 + ldy #$02 ; 2 (spr=-46) + stx HPOSP2 + stx COLPM1 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line6A + nop + ldx #$F1 ; 241 (spr=193) + lda #$0A ; 10 (spr=-38) + stx colpf2 + sta colpf0 + nop + sty colpf2 + ldx #$09 ; 9 (spr=-39) + stx colpf2 + nop + nop + ldx #$28 ; 40 (spr=-8) + stx colpf2 + ldx #$27 ; 39 (spr=-9) + stx colpf1 + nop + ldx #$32 ; 50 (spr=2) + stx colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6B + nop + lda #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + stx colpf1 + sta colpf0 + nop + sty colpf2 + ldx #$08 ; 8 (spr=-40) + stx colpf2 + lda #$07 ; 7 (spr=-41) + nop + nop + ldx #$28 ; 40 (spr=-8) + stx colpf2 + sta COLPM2 + nop + nop + nop + ldx #$28 ; 40 (spr=-8) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6C + lda #$0A ; 10 (spr=-38) + nop + sta colpf0 + stx HPOSP2 + stx HPOSP2 + sty colpf2 + nop + nop + ldx #$28 ; 40 (spr=-8) + stx colpf2 + nop + sty HPOSP2 + nop + ldx #$9A ; 154 (spr=106) + stx colpf2 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + ldx #$35 ; 53 (spr=5) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6D + lda #$09 ; 9 (spr=-39) + nop + sta COLPM2 + stx HPOSP2 + stx HPOSP2 + sty colpf2 + nop + nop + ldx #$28 ; 40 (spr=-8) + stx colpf2 + lda #$E0 ; 224 (spr=176) + nop + ldx #$9A ; 154 (spr=106) + sta COLPM2 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line6E + nop + ldx #$29 ; 41 (spr=-7) + lda #$0A ; 10 (spr=-38) + sta colpf0 + lda #$02 ; 2 (spr=-46) + nop + ldy #$90 ; 144 (spr=96) + sta colpf2 + sty colpf2 + nop + lda #$09 ; 9 (spr=-39) + sta colpf2 + nop + stx colpf2 + nop + nop + nop + nop + nop + ldx #$E0 ; 224 (spr=176) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6F + sta COLPM2 + ldy #$89 ; 137 (spr=89) + stx colpf0 + sta COLPM2 + nop + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$28 ; 40 (spr=-8) + sta colpf0 + sta COLPM2 + nop + stx COLBAK + lda #$0A ; 10 (spr=-38) + nop + sta colpf0 + lda #$28 ; 40 (spr=-8) + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line70 + nop + lda #$07 ; 7 (spr=-41) + nop + sta COLBAK + ldy #$8A ; 138 (spr=90) + ldx #$0A ; 10 (spr=-38) + lda #$80 ; 128 (spr=80) + sta colpf0 + sty colpf2 + stx colpf2 + ldy #$86 ; 134 (spr=86) + nop + lda #$28 ; 40 (spr=-8) + sta colpf1 + sty COLPM3 + nop + nop + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line71 + nop + nop + nop + ldy #$04 ; 4 (spr=-44) + lda #$8A ; 138 (spr=90) + sty colpf2 + ldx #$28 ; 40 (spr=-8) + sta colpf1 + nop + lda #$0A ; 10 (spr=-38) + sta colpf1 + stx colpf0 + nop + nop + nop + nop + lda #$0A ; 10 (spr=-38) + sta COLBAK + nop + lda #$06 ; 6 (spr=-42) + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line72 + ldy #$92 ; 146 (spr=98) + nop + nop + sty colpf1 + ldy #$2A ; 42 (spr=-6) + nop + ldx #$8A ; 138 (spr=90) + stx colpf0 + nop + sta colpf0 + sty colpf1 + ldx #$28 ; 40 (spr=-8) + ldy #$0A ; 10 (spr=-38) + lda #$06 ; 6 (spr=-42) + stx colpf0 + sty colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line73 + nop + ldy #$92 ; 146 (spr=98) + nop + sty colpf1 + nop + nop + ldx #$8A ; 138 (spr=90) + stx colpf0 + nop + sta colpf0 + ldy #$08 ; 8 (spr=-40) + sty colpf1 + ldx #$28 ; 40 (spr=-8) + stx colpf1 + nop + sty colpf1 + nop + ldx #$26 ; 38 (spr=-10) + stx colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line74 + ldy #$92 ; 146 (spr=98) + nop + nop + sty colpf1 + nop + nop + ldy #$07 ; 7 (spr=-41) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + lda #$2B ; 43 (spr=-5) + sta colpf0 + ldx #$28 ; 40 (spr=-8) + stx colpf1 + nop + ldx #$24 ; 36 (spr=-12) + nop + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line75 + nop + ldy #$92 ; 146 (spr=98) + nop + sty colpf1 + ldy #$07 ; 7 (spr=-41) + nop + lda #$2B ; 43 (spr=-5) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + sta colpf0 + nop + ldx #$26 ; 38 (spr=-10) + stx colpf1 + nop + ldx #$14 ; 20 (spr=-28) + nop + stx colpf1 + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line76 + stx colpf1 + stx colpf1 + ldy #$E0 ; 224 (spr=176) + sty colpf1 + nop + ldx #$8A ; 138 (spr=90) + stx colpf1 + nop + ldx #$07 ; 7 (spr=-41) + nop + stx colpf1 + ldy #$82 ; 130 (spr=82) + ldx #$28 ; 40 (spr=-8) + stx colpf1 + nop + ldx #$F0 ; 240 (spr=192) + stx colpf0 + nop + ldx #$8A ; 138 (spr=90) + nop ; filler + cmp byt2; on zero page so 3 cycles +line77 + stx colpf1 + nop + sty colpf1 + nop + ldy #$06 ; 6 (spr=-42) + lda #$2B ; 43 (spr=-5) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + ldy #$07 ; 7 (spr=-41) + sta colpf0 + ldx #$1E ; 30 (spr=-18) + stx colpf1 + nop + nop + nop + ldx #$92 ; 146 (spr=98) + stx colpf1 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line78 + nop + nop + sty colpf0 + ldy #$01 ; 1 (spr=-47) + nop + ldx #$8A ; 138 (spr=90) + nop + stx colpf0 + nop + nop + lda #$2B ; 43 (spr=-5) + sta colpf0 + nop + ldx #$2C ; 44 (spr=-4) + stx colpf1 + nop + ldx #$92 ; 146 (spr=98) + stx colpf1 + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line79 + lda #$31 ; 49 (spr=1) + sta colpf0 + nop + nop + nop + nop + nop + ldx #$8A ; 138 (spr=90) + stx colpf0 + ldx #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + sta colpf0 + stx colpf1 + ldx #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$8A ; 138 (spr=90) + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7A + lda #$87 ; 135 (spr=87) + sty COLPM3 + sta colpf0 + lda #$2A ; 42 (spr=-6) + ldy #$25 ; 37 (spr=-11) + sty colpf1 + stx colpf1 + ldx #$28 ; 40 (spr=-8) + ldy #$8A ; 138 (spr=90) + sta COLBAK + stx colpf1 + sty colpf2 + sta HPOSP2 + ldx #$0A ; 10 (spr=-38) + stx colpf1 + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7B + lda #$24 ; 36 (spr=-12) + ldx #$04 ; 4 (spr=-44) + ldy #$0A ; 10 (spr=-38) + nop + sty COLPM2 + sta colpf1 + nop + stx colpf1 + ldx #$06 ; 6 (spr=-42) + sty colpf1 + stx colpf1 + ldx #$2F ; 47 (spr=-1) + nop + stx colpf1 + sty colpf1 + nop + nop + ldx #$E1 ; 225 (spr=177) + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line7C + stx colpf1 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + nop + nop + ldx #$28 ; 40 (spr=-8) + lda #$2A ; 42 (spr=-6) + sty colpf1 + sta COLBAK + stx colpf1 + nop + lda #$1E ; 30 (spr=-18) + sta colpf1 + sty colpf1 + nop + nop + ldx #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7D + stx colpf1 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + nop + nop + ldx #$28 ; 40 (spr=-8) + lda #$2A ; 42 (spr=-6) + sty colpf1 + sta COLBAK + stx colpf1 + nop + lda #$1E ; 30 (spr=-18) + sta colpf1 + sty colpf1 + nop + nop + ldx #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7E + stx colpf1 + nop + ldx #$05 ; 5 (spr=-43) + stx COLBAK + lda #$2B ; 43 (spr=-5) + sta COLBAK + lda #$29 ; 41 (spr=-7) + stx colpf1 + sty colpf1 + nop + nop + nop + nop + sta colpf1 + nop + nop + ldy #$2A ; 42 (spr=-6) + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line7F + lda #$26 ; 38 (spr=-10) + sta colpf1 + nop + stx COLBAK + sty COLBAK + ldy #$0A ; 10 (spr=-38) + stx colpf1 + ldx #$28 ; 40 (spr=-8) + sty colpf1 + nop + stx colpf1 + nop + lda #$4C ; 76 (spr=28) + nop + sta HPOSP1 + sta HPOSP3 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line80 + stx COLPM2 + lda #$06 ; 6 (spr=-42) + ldx #$27 ; 39 (spr=-9) + sty COLPM2 + stx colpf1 + ldx #$28 ; 40 (spr=-8) + sty colpf1 + sta colpf0 + stx colpf2 + ldy #$8A ; 138 (spr=90) + lda #$E0 ; 224 (spr=176) + ldx #$86 ; 134 (spr=86) + sta colpf0 + stx COLPM1 + nop + lda #$26 ; 38 (spr=-10) + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line81 + stx colpf2 + sta colpf2 + ldx #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sty colpf1 + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + sta colpf2 + lda #$36 ; 54 (spr=6) + nop + ldy #$8A ; 138 (spr=90) + sta colpf0 + ldx #$27 ; 39 (spr=-9) + lda #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line82 + stx colpf0 + sta colpf0 + ldx #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sty colpf1 + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + nop + sta colpf2 + lda #$1A ; 26 (spr=-22) + sta colpf2 + nop + lda #$26 ; 38 (spr=-10) + nop + ldy #$8A ; 138 (spr=90) + nop ; filler + cmp byt2; on zero page so 3 cycles +line83 + stx colpf1 + sta colpf0 + sty colpf1 + lda #$0A ; 10 (spr=-38) + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + sta colpf2 + ldy #$8A ; 138 (spr=90) + nop + nop + nop + lda #$F0 ; 240 (spr=192) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line84 + stx colpf1 + sta colpf0 + sty colpf1 + lda #$0A ; 10 (spr=-38) + ldy #$05 ; 5 (spr=-43) + nop + sty colpf2 + sta colpf0 + stx colpf1 + nop + lda #$26 ; 38 (spr=-10) + sta colpf1 + stx colpf0 + nop + nop + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line85 + lda #$26 ; 38 (spr=-10) + sta colpf0 + ldx #$8A ; 138 (spr=90) + stx colpf1 + nop + nop + lda #$0A ; 10 (spr=-38) + ldx #$2B ; 43 (spr=-5) + sta COLBAK + stx colpf1 + ldy #$86 ; 134 (spr=86) + nop + nop + nop + lda #$28 ; 40 (spr=-8) + sta COLBAK + ldx #$8A ; 138 (spr=90) + nop + stx COLPM1 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line86 + nop + ldx #$12 ; 18 (spr=-30) + stx colpf1 + lda #$D0 ; 208 (spr=160) + sta COLBAK + nop + ldx #$2B ; 43 (spr=-5) + sty colpf1 + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta COLBAK + lda #$28 ; 40 (spr=-8) + nop + sta colpf2 + nop + nop + nop + ldy #$04 ; 4 (spr=-44) + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line87 + ldx #$86 ; 134 (spr=86) + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta COLBAK + nop + nop + ldy #$90 ; 144 (spr=96) + ldx #$2B ; 43 (spr=-5) + sty colpf1 + stx colpf1 + ldy #$04 ; 4 (spr=-44) + lda #$28 ; 40 (spr=-8) + nop + sta colpf2 + nop + sta COLBAK + sty colpf2 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line88 + ldx #$86 ; 134 (spr=86) + nop + stx colpf1 + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldy #$D0 ; 208 (spr=160) + nop + ldx #$2B ; 43 (spr=-5) + sty colpf1 + lda #$88 ; 136 (spr=88) + stx colpf1 + sta COLPM1 + lda #$28 ; 40 (spr=-8) + sta colpf2 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line89 + nop + nop + nop + lda #$91 ; 145 (spr=97) + nop + nop + sta colpf2 + nop + lda #$2C ; 44 (spr=-4) + ldy #$0A ; 10 (spr=-38) + nop + sty colpf2 + ldy #$29 ; 41 (spr=-7) + nop + sty COLBAK + ldx #$84 ; 132 (spr=84) + stx COLPM1 + sta colpf2 + ldy #$04 ; 4 (spr=-44) + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8A + nop + nop + sty colpf2 + lda #$F1 ; 241 (spr=193) + nop + sta COLBAK + nop + nop + ldy #$0A ; 10 (spr=-38) + nop + sty COLBAK + nop + ldx #$29 ; 41 (spr=-7) + ldy #$2C ; 44 (spr=-4) + stx colpf2 + sty COLBAK + nop + lda #$E1 ; 225 (spr=177) + nop + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8B + sta colpf0 + lda #$0A ; 10 (spr=-38) + ldy #$04 ; 4 (spr=-44) + sty colpf2 + nop + nop + sta COLBAK + nop + nop + ldx #$2A ; 42 (spr=-6) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$27 ; 39 (spr=-9) + sta COLBAK + lda #$F2 ; 242 (spr=194) + ldy #$F4 ; 244 (spr=196) + nop + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8C + ldx #$06 ; 6 (spr=-42) + ldy #$04 ; 4 (spr=-44) + stx colpf2 + nop + sta colpf0 + ldx #$2A ; 42 (spr=-6) + sty colpf2 + nop + lda #$0A ; 10 (spr=-38) + sta COLBAK + lda #$26 ; 38 (spr=-10) + nop + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sta COLBAK + sty colpf2 + nop + ldx #$04 ; 4 (spr=-44) + lda #$03 ; 3 (spr=-45) + nop ; filler + cmp byt2; on zero page so 3 cycles +line8D + sta COLBAK + stx colpf2 + nop + sta COLPM1 + lda #$25 ; 37 (spr=-11) + sta colpf0 + ldx #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + sta COLBAK + lda #$27 ; 39 (spr=-9) + nop + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sta colpf2 + sty colpf2 + nop + lda #$12 ; 18 (spr=-30) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line8E + sta colpf0 + nop + nop + ldy #$04 ; 4 (spr=-44) + sty colpf2 + nop + ldy #$24 ; 36 (spr=-12) + nop + ldx #$2A ; 42 (spr=-6) + sty colpf0 + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$27 ; 39 (spr=-9) + sta COLBAK + nop + nop + lda #$25 ; 37 (spr=-11) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +line8F + ldy #$04 ; 4 (spr=-44) + nop + lda #$E0 ; 224 (spr=176) + sta colpf0 + lda #$25 ; 37 (spr=-11) + nop + sta COLPM1 + sty colpf2 + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldx #$2A ; 42 (spr=-6) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + lda #$26 ; 38 (spr=-10) + sta colpf2 + sty colpf2 + ldx #$04 ; 4 (spr=-44) + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line90 + sta colpf0 + nop + ldy #$E1 ; 225 (spr=177) + stx colpf1 + sty colpf2 + nop + nop + nop + ldx #$29 ; 41 (spr=-7) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + nop + ldy #$2B ; 43 (spr=-5) + sty colpf2 + stx COLBAK + ldy #$2C ; 44 (spr=-4) + sty colpf2 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line91 + nop + nop + ldy #$E0 ; 224 (spr=176) + nop + nop + ldx #$0B ; 11 (spr=-37) + nop + sty colpf2 + ldy #$06 ; 6 (spr=-42) + nop + stx COLBAK + sty colpf2 + ldy #$2B ; 43 (spr=-5) + ldx #$06 ; 6 (spr=-42) + sty colpf1 + nop + ldy #$2C ; 44 (spr=-4) + sty colpf2 + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line92 + nop + lda #$3C ; 60 (spr=12) + ldy #$E0 ; 224 (spr=176) + stx colpf1 + sty colpf2 + ldy #$05 ; 5 (spr=-43) + ldx #$28 ; 40 (spr=-8) + sta HPOSP1 + lda #$F1 ; 241 (spr=193) + sty colpf2 + ldy #$2B ; 43 (spr=-5) + sty colpf2 + nop + ldy #$2C ; 44 (spr=-4) + stx COLBAK + sty COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line93 + nop + ldy #$04 ; 4 (spr=-44) + sta colpf2 + nop + lda #$0E ; 14 (spr=-34) + nop + nop + sta COLBAK + ldx #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + sta COLBAK + sty colpf2 + ldy #$0E ; 14 (spr=-34) + stx colpf1 + ldx #$2C ; 44 (spr=-4) + stx COLBAK + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line94 + ldx #$E2 ; 226 (spr=178) + stx COLPM1 + ldx #$06 ; 6 (spr=-42) + stx colpf1 + sta COLBAK + sty colpf1 + nop + nop + ldy #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + lda #$00 ; 0 (spr=-48) + ldx #$27 ; 39 (spr=-9) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line95 + ldy #$0E ; 14 (spr=-34) + lda #$04 ; 4 (spr=-44) + stx colpf2 + sta colpf0 + nop + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldx #$06 ; 6 (spr=-42) + sty colpf2 + stx colpf2 + lda #$27 ; 39 (spr=-9) + nop + nop + sta colpf0 + ldx #$2C ; 44 (spr=-4) + stx colpf2 + sty colpf1 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line96 + lda #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + lda #$0B ; 11 (spr=-37) + sta COLBAK + lda #$2A ; 42 (spr=-6) + stx colpf1 + sta colpf0 + lda #$26 ; 38 (spr=-10) + ldx #$2C ; 44 (spr=-4) + sta COLBAK + stx colpf2 + ldx #$D0 ; 208 (spr=160) + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line97 + sta colpf0 + sty colpf2 + stx colpf1 + lda #$0B ; 11 (spr=-37) + nop + sta colpf2 + ldx #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + sty colpf1 + stx colpf1 + sta colpf0 + lda #$28 ; 40 (spr=-8) + sta colpf2 + ldx #$24 ; 36 (spr=-12) + nop + lda #$04 ; 4 (spr=-44) + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +line98 + sta colpf0 + sty colpf2 + ldy #$06 ; 6 (spr=-42) + stx colpf1 + lda #$0B ; 11 (spr=-37) + sta colpf2 + sty colpf1 + lda #$2A ; 42 (spr=-6) + ldx #$2C ; 44 (spr=-4) + nop + sta colpf0 + stx colpf1 + sta colpf2 + nop + nop + lda #$04 ; 4 (spr=-44) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +line99 + sty colpf2 + ldx #$0D ; 13 (spr=-35) + sta colpf0 + stx colpf1 + ldx #$2C ; 44 (spr=-4) + lda #$0A ; 10 (spr=-38) + sta COLBAK + nop + lda #$29 ; 41 (spr=-7) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + sta colpf2 + stx colpf0 + nop + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line9A + lda #$04 ; 4 (spr=-44) + sta colpf0 + nop + lda #$24 ; 36 (spr=-12) + sta colpf1 + ldx #$2C ; 44 (spr=-4) + lda #$0E ; 14 (spr=-34) + sta colpf1 + nop + stx colpf1 + ldy #$2A ; 42 (spr=-6) + sty colpf0 + nop + lda #$26 ; 38 (spr=-10) + nop + sta colpf0 + sta colpf0 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line9B + lda #$04 ; 4 (spr=-44) + nop + sta colpf0 + lda #$24 ; 36 (spr=-12) + nop + sta colpf1 + lda #$0E ; 14 (spr=-34) + sta colpf1 + nop + stx colpf1 + ldy #$29 ; 41 (spr=-7) + sty colpf0 + nop + ldy #$2A ; 42 (spr=-6) + sty colpf0 + nop + sta HPOSP2 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9C + sta colpf1 + sta colpf0 + ldy #$2A ; 42 (spr=-6) + lda #$04 ; 4 (spr=-44) + sta colpf1 + lda #$02 ; 2 (spr=-46) + stx HPOSP1 + sta colpf0 + sty colpf0 + nop + stx colpf1 + nop + lda #$24 ; 36 (spr=-12) + sta HPOSP2 + ldy #$04 ; 4 (spr=-44) + stx colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9D + stx HPOSP2 + nop + sta colpf0 + lda #$06 ; 6 (spr=-42) + sty COLPM1 + ldy #$04 ; 4 (spr=-44) + sty colpf0 + ldy #$2A ; 42 (spr=-6) + ldx #$18 ; 24 (spr=-24) + stx colpf0 + sty colpf2 + nop + nop + sta COLPM1 + nop + ldx #$02 ; 2 (spr=-46) + nop + lda #$24 ; 36 (spr=-12) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9E + sta colpf1 + lda #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$0A ; 10 (spr=-38) + nop + lda #$34 ; 52 (spr=4) + nop + sty colpf1 + stx colpf1 + nop + ldx #$2C ; 44 (spr=-4) + stx colpf1 + sty colpf2 + nop + nop + nop + sta COLPM1 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line9F + nop + lda #$05 ; 5 (spr=-43) + sta colpf0 + ldx #$06 ; 6 (spr=-42) + nop + stx colpf1 + nop + ldy #$2A ; 42 (spr=-6) + lda #$1C ; 28 (spr=-20) + ldx #$2C ; 44 (spr=-4) + sty colpf2 + stx colpf1 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + lda #$07 ; 7 (spr=-41) + sta colpf2 + lda #$E3 ; 227 (spr=179) + sta colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA0 + stx colpf1 + nop + nop + nop + nop + lda #$90 ; 144 (spr=96) + ldx #$2C ; 44 (spr=-4) + sta colpf0 + ldy #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + lda #$E2 ; 226 (spr=178) + sta COLPM1 + ldx #$04 ; 4 (spr=-44) + nop + lda #$06 ; 6 (spr=-42) + sta colpf0 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA1 + sta colpf1 + nop + nop + stx colpf0 + ldx #$D0 ; 208 (spr=160) + nop + lda #$06 ; 6 (spr=-42) + sta COLPM1 + stx colpf1 + ldx #$29 ; 41 (spr=-7) + stx HPOSP2 + ldx #$2C ; 44 (spr=-4) + stx COLBAK + nop + nop + nop + nop + ldy #$08 ; 8 (spr=-40) + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA2 + ldx #$2A ; 42 (spr=-6) + stx HPOSP2 + nop + sty colpf2 + nop + ldy #$06 ; 6 (spr=-42) + sty colpf2 + nop + stx colpf2 + stx HPOSP1 + ldx #$2A ; 42 (spr=-6) + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA3 + stx HPOSP2 + nop + lda #$00 ; 0 (spr=-48) + ldy #$02 ; 2 (spr=-46) + stx HPOSP1 + sta colpf2 + sty colpf2 + ldx #$2B ; 43 (spr=-5) + stx colpf2 + ldy #$08 ; 8 (spr=-40) + ldx #$2C ; 44 (spr=-4) + nop + nop + sty colpf1 + stx HPOSP1 + nop + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA4 + nop + nop + nop + nop + lda #$34 ; 52 (spr=4) + nop + ldy #$E0 ; 224 (spr=176) + ldx #$91 ; 145 (spr=97) + sta colpf1 + stx colpf1 + sty colpf1 + lda #$06 ; 6 (spr=-42) + ldy #$2A ; 42 (spr=-6) + stx colpf1 + nop + sty COLPM0 + nop + nop + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA5 + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + ldx #$2A ; 42 (spr=-6) + sta COLPM1 + ldy #$12 ; 18 (spr=-30) + sty colpf2 + nop + stx colpf2 + nop + nop + nop + nop + nop + stx COLPM0 + nop + nop + ldx #$F3 ; 243 (spr=195) + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA6 + nop + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + sta COLPM0 + ldy #$02 ; 2 (spr=-46) + sty colpf2 + ldx #$2A ; 42 (spr=-6) + stx colpf2 + ldx #$0A ; 10 (spr=-38) + nop + nop + nop + stx HPOSP0 + nop + ldy #$3B ; 59 (spr=11) + sta COLPM0 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA7 + sty HPOSP1 + nop + lda #$0B ; 11 (spr=-37) + sta COLPM0 + nop + lda #$E0 ; 224 (spr=176) + ldx #$24 ; 36 (spr=-12) + nop + sta colpf1 + lda #$30 ; 48 (spr=0) + sta HPOSP1 + nop + stx HPOSP0 + stx colpf1 + nop + nop + nop + lda #$E0 ; 224 (spr=176) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA8 + nop + nop + nop + ldy #$2C ; 44 (spr=-4) + nop + lda #$02 ; 2 (spr=-46) + sta colpf2 + ldx #$04 ; 4 (spr=-44) + stx HPOSP1 + lda #$2A ; 42 (spr=-6) + sta colpf0 + stx HPOSP1 + lda #$28 ; 40 (spr=-8) + sty colpf2 + sta COLBAK + nop + lda #$06 ; 6 (spr=-42) + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA9 + stx colpf2 + sta colpf0 + nop + ldy #$02 ; 2 (spr=-46) + stx COLPM1 + ldx #$2C ; 44 (spr=-4) + lda #$2B ; 43 (spr=-5) + sty colpf1 + sta COLBAK + stx colpf2 + ldy #$3A ; 58 (spr=10) + lda #$E0 ; 224 (spr=176) + sty HPOSP0 + sta colpf1 + nop + nop + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAA + lda #$05 ; 5 (spr=-43) + sta colpf0 + ldx #$06 ; 6 (spr=-42) + stx colpf2 + ldx #$92 ; 146 (spr=98) + lda #$51 ; 81 (spr=33) + sta HPOSP3 + stx colpf2 + nop + nop + ldx #$2D ; 45 (spr=-3) + stx colpf0 + nop + nop + nop + nop + lda #$06 ; 6 (spr=-42) + sta colpf0 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAB + lda #$05 ; 5 (spr=-43) + nop + sta COLPM3 + nop + ldx #$24 ; 36 (spr=-12) + stx colpf2 + ldx #$92 ; 146 (spr=98) + nop + stx colpf2 + nop + lda #$06 ; 6 (spr=-42) + nop + ldx #$2D ; 45 (spr=-3) + stx colpf0 + ldy #$0A ; 10 (spr=-38) + sty colpf2 + nop + sta colpf0 + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAC + nop + nop + nop + ldx #$34 ; 52 (spr=4) + sty COLPM2 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + nop + ldy #$2E ; 46 (spr=-2) + stx colpf0 + nop + sty colpf2 + ldx #$2D ; 45 (spr=-3) + stx colpf0 + nop + ldy #$34 ; 52 (spr=4) + lda #$06 ; 6 (spr=-42) + nop + sta colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAD + sta colpf0 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + sta colpf0 + sty colpf2 + sty colpf2 + stx colpf2 + lda #$2A ; 42 (spr=-6) + sta COLBAK + ldx #$2C ; 44 (spr=-4) + stx HPOSP2 + stx colpf2 + nop + ldy #$F2 ; 242 (spr=194) + stx colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAE + ldx #$28 ; 40 (spr=-8) + sty HPOSP1 + ldy #$25 ; 37 (spr=-11) + stx colpf2 + lda #$06 ; 6 (spr=-42) + sty colpf2 + sta colpf0 + stx colpf2 + sty HPOSP1 + ldy #$F2 ; 242 (spr=194) + sta colpf0 + sty colpf2 + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAF + nop + stx COLPM1 + sty HPOSP1 + nop + sty colpf2 + lda #$17 ; 23 (spr=-25) + nop + stx colpf2 + ldx #$48 ; 72 (spr=24) + stx HPOSP3 + sta colpf2 + ldy #$2A ; 42 (spr=-6) + nop + sty HPOSP1 + ldy #$2A ; 42 (spr=-6) + ldx #$28 ; 40 (spr=-8) + nop + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB0 + nop + sty HPOSP2 + sty colpf2 + ldy #$24 ; 36 (spr=-12) + sty colpf2 + lda #$07 ; 7 (spr=-41) + nop + stx colpf0 + nop + ldx #$48 ; 72 (spr=24) + stx COLPM1 + sta colpf2 + nop + stx HPOSP1 + nop + nop + nop + nop + ldy #$F2 ; 242 (spr=194) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB1 + nop + nop + nop + ldx #$94 ; 148 (spr=100) + stx COLPM1 + nop + nop + ldx #$15 ; 21 (spr=-27) + lda #$2F ; 47 (spr=-1) + stx colpf2 + sta colpf0 + nop + nop + sty colpf0 + ldx #$0E ; 14 (spr=-34) + lda #$06 ; 6 (spr=-42) + nop + sta colpf2 + ldy #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB2 + lda #$06 ; 6 (spr=-42) + sta COLPM3 + sty colpf2 + lda #$29 ; 41 (spr=-7) + nop + sta colpf2 + nop + lda #$2C ; 44 (spr=-4) + stx colpf0 + sta colpf2 + nop + nop + ldx #$28 ; 40 (spr=-8) + nop + nop + nop + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB3 + stx colpf2 + ldy #$0E ; 14 (spr=-34) + nop + lda #$06 ; 6 (spr=-42) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sty COLBAK + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + nop + sta colpf2 + sta COLBAK + stx colpf1 + nop + nop + ldx #$29 ; 41 (spr=-7) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB4 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2E ; 46 (spr=-2) + sta colpf1 + nop + nop + sta COLBAK + stx colpf1 + nop + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB5 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + nop + stx colpf1 + nop + nop + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB6 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + nop + sta COLBAK + stx colpf1 + nop + nop + nop + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB7 + stx HPOSP1 + ldy #$1E ; 30 (spr=-18) + lda #$06 ; 6 (spr=-42) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sty COLPM2 + sta colpf0 + nop + sty colpf1 + stx colpf1 + nop + ldy #$0B ; 11 (spr=-37) + ldx #$37 ; 55 (spr=7) + sty COLPM1 + stx HPOSP1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB8 + nop + nop + lda #$28 ; 40 (spr=-8) + nop + sty COLPM2 + ldx #$09 ; 9 (spr=-39) + stx COLPM1 + stx HPOSP0 + ldx #$2E ; 46 (spr=-2) + stx colpf1 + sta colpf1 + sty COLPM1 + stx HPOSP1 + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB9 + nop + ldx #$37 ; 55 (spr=7) + lda #$28 ; 40 (spr=-8) + sty COLPM1 + sty COLPM2 + stx HPOSP0 + nop + ldx #$2E ; 46 (spr=-2) + stx colpf1 + ldx #$1E ; 30 (spr=-18) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBA + sta colpf1 + nop + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + sta HPOSP2 + stx colpf2 + lda #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + sty colpf2 + nop + sta colpf0 + ldx #$2A ; 42 (spr=-6) + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBB + ldy #$1E ; 30 (spr=-18) + lda #$0E ; 14 (spr=-34) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sta HPOSP3 + stx colpf1 + sty HPOSP3 + sty colpf0 + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBC + sty colpf2 + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta HPOSP3 + stx colpf1 + lda #$2A ; 42 (spr=-6) + ldx #$2A ; 42 (spr=-6) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBD + nop + ldy #$1E ; 30 (spr=-18) + lda #$0E ; 14 (spr=-34) + sta colpf0 + nop + lda #$2A ; 42 (spr=-6) + sta HPOSP3 + stx colpf1 + sty colpf2 + nop + ldx #$1D ; 29 (spr=-19) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBE + nop + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$1A ; 26 (spr=-22) + sty colpf2 + sta colpf2 + sty colpf2 + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBF + nop + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$1A ; 26 (spr=-22) + sty colpf2 + sta colpf2 + sty colpf2 + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC0 + nop + ldx #$0E ; 14 (spr=-34) + lda #$2A ; 42 (spr=-6) + stx colpf0 + nop + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC1 + sta HPOSP2 + lda #$2A ; 42 (spr=-6) + sta colpf2 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + ldx #$2E ; 46 (spr=-2) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC2 + sta colpf0 + ldy #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$2E ; 46 (spr=-2) + lda #$FE ; 254 (spr=206) + sta COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC3 + lda #$2A ; 42 (spr=-6) + sta colpf1 + sty colpf2 + stx colpf1 + nop + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$2B ; 43 (spr=-5) + nop + sta COLBAK + lda #$0E ; 14 (spr=-34) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC4 + ldy #$1A ; 26 (spr=-22) + sty COLPM2 + sta HPOSP0 + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC5 + ldy #$2C ; 44 (spr=-4) + sta HPOSP0 + sty colpf2 + ldx #$0E ; 14 (spr=-34) + lda #$1E ; 30 (spr=-18) + nop + sta COLBAK + lda #$2C ; 44 (spr=-4) + nop + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC6 + ldy #$2C ; 44 (spr=-4) + sta HPOSP0 + stx colpf1 + sty colpf2 + lda #$1E ; 30 (spr=-18) + sta COLBAK + nop + nop + stx HPOSP3 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC7 + stx HPOSP3 + lda #$2A ; 42 (spr=-6) + sta HPOSP0 + lda #$1C ; 28 (spr=-20) + ldy #$2E ; 46 (spr=-2) + sta COLBAK + stx colpf1 + sty COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +; ---------------------------------- diff --git a/artwork/splash_v3/output.png.opt.h b/artwork/splash_v3/output.png.opt.h new file mode 100644 index 0000000..0766280 --- /dev/null +++ b/artwork/splash_v3/output.png.opt.h @@ -0,0 +1,2 @@ +; Set proper picture height +PIC_HEIGHT = 200 diff --git a/artwork/splash_v3/output.png.opt.ini b/artwork/splash_v3/output.png.opt.ini new file mode 100644 index 0000000..be36785 --- /dev/null +++ b/artwork/splash_v3/output.png.opt.ini @@ -0,0 +1,36 @@ +; ---------------------------------- +; RastaConverter by Ilmenit version Beta20 +; ---------------------------------- + +; Initial values + lda #$DB + sta colpf0 + lda #$61 + sta colpf1 + lda #$D8 + sta colpf2 + lda #$00 + sta COLBAK + lda #$BF + sta COLPM0 + lda #$02 + sta COLPM1 + lda #$C1 + sta COLPM2 + lda #$8E + sta COLPM3 + lda #$2E + sta HPOSP0 + lda #$AC + sta HPOSP1 + lda #$89 + sta HPOSP2 + lda #$4D + sta HPOSP3 + lda #$0 + tax + tay + +; Set proper count of wsyncs + + :2 sta wsync diff --git a/artwork/splash_v3/output.png.optstate b/artwork/splash_v3/output.png.optstate new file mode 100644 index 0000000..2626810 --- /dev/null +++ b/artwork/splash_v3/output.png.optstate @@ -0,0 +1,9 @@ +lahc +38901028754 +37666014057 +1 +0 +39880660 +1 +5653965 +5653965 diff --git a/artwork/splash_v3/output.png.pmg b/artwork/splash_v3/output.png.pmg new file mode 100644 index 0000000..06eb30e --- /dev/null +++ b/artwork/splash_v3/output.png.pmg @@ -0,0 +1,73 @@ +; ---------------------------------- +; RastaConverter by Ilmenit v.Beta20 +; ---------------------------------- +missiles + .ds $100 +player0 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF + .he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 + .he 00 00 00 00 00 02 02 00 04 80 80 80 80 80 80 80 + .he 80 80 80 08 18 10 08 18 18 18 18 38 20 68 24 61 + .he 60 64 E3 E0 E3 28 09 09 24 25 05 25 24 07 07 44 + .he 04 06 46 06 06 23 23 02 22 22 02 22 62 44 48 48 + .he 48 48 48 48 00 01 00 03 00 03 06 00 07 00 00 00 + .he 1E 60 21 3E 3F 3F 1F 3F 1E 1E 1E 1E 1E 1E 0E 0E + .he 4E 4E 6E 6E 66 66 66 76 76 76 76 7E 7A 7B 7B 7F + .he 7F 7F 7D 7D 7F 7F 7E 7E 7F 7F 7F 7F FF FF DF DF + .he DF DF DF 5F 5F 1F 1F 1F 1F 0F 0F 07 07 00 7C 00 + .he 1C 1E 80 C0 C0 C0 E0 F0 F8 F8 F8 FC FC FC FE FE + .he FE FF FF FF FE FE F8 F8 F0 F0 C0 C0 00 00 40 60 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +player1 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 20 01 62 02 00 00 00 00 00 00 00 00 80 80 + .he 00 00 00 00 00 00 00 00 00 00 80 80 C0 40 00 00 + .he 01 01 02 0C 0C 03 03 0B 01 11 09 01 19 01 02 16 + .he 36 36 06 06 11 08 18 38 10 08 0C 48 0C 0C 09 00 + .he 00 0D 0F 0F 0E 0E 0E 09 0C 08 17 1E 03 07 07 06 + .he 07 6E 80 80 80 80 80 80 C0 C0 C0 C0 C0 C0 E0 E0 + .he E0 60 60 60 70 70 30 30 00 70 70 78 78 38 0F 0F + .he 0E 1C 08 08 00 07 06 60 21 21 1E 01 00 40 C0 C0 + .he C0 C0 40 C0 C0 0C 78 0C 08 0C 3E 1F 1F 1F 00 F8 + .he 1F 00 00 00 00 00 00 00 00 00 02 02 00 00 00 00 + .he 01 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +player2 + .he 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF + .he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .he FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 01 + .he 01 02 01 00 00 00 00 00 00 00 00 00 00 80 C0 C0 + .he C0 C0 C0 C0 46 00 00 00 00 00 00 00 00 04 04 00 + .he 00 00 03 00 00 C0 40 80 20 10 30 37 33 33 16 3F + .he 17 17 16 1F 1F 1F 10 60 69 0B 13 16 17 12 11 10 + .he 10 1F 08 08 10 80 20 80 80 80 80 80 80 80 80 80 + .he 80 80 80 70 70 70 70 70 70 70 70 70 70 70 70 70 + .he 70 70 70 70 60 30 70 70 70 70 70 70 60 60 40 00 + .he 00 00 00 00 00 00 00 40 40 40 60 60 70 70 70 78 + .he 00 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 + .he 70 00 00 00 00 00 00 00 00 00 00 00 05 05 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +player3 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F FF + .he FF F8 00 00 00 00 00 40 40 40 40 40 00 00 80 00 + .he 00 00 80 00 80 00 80 80 80 80 80 80 81 83 0E 86 + .he 06 0E 0E E0 90 0E 0C 00 09 05 00 08 00 08 08 00 + .he 20 20 30 30 30 20 20 30 30 70 70 60 70 70 70 78 + .he 50 50 18 10 30 38 38 00 00 18 00 38 00 00 00 30 + .he 18 2E 23 07 3C 20 20 2E 20 78 40 40 60 70 70 60 + .he 60 60 00 00 00 00 00 20 20 00 00 00 00 00 20 20 + .he 21 20 37 30 38 38 38 18 08 08 20 20 38 3D 3D 3C + .he 3C 3C 3C 3C 3C 3C 3C 3D 3C 3C 3C 2C 3C EC EC EC + .he 6C 7C D8 6E 4F 4F 4E 6E 0B 03 7C 3C 3C 3C 1C 1C + .he 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/artwork/splash_v3/output.png.rp b/artwork/splash_v3/output.png.rp new file mode 100644 index 0000000..d78dbd0 --- /dev/null +++ b/artwork/splash_v3/output.png.rp @@ -0,0 +1,4494 @@ +; ---------------------------------- +; RastaConverter by Ilmenit v.Beta20 +; InputName: /home/pirx/Downloads/15ca6570-9bf5-4f06-9ea2-4e756e13ab1e.jpeg +; CmdLine: /input=/home/pirx/Downloads/15ca6570-9bf5-4f06-9ea2-4e756e13ab1e.jpeg /threads=20 +; Evaluations: 38901028754 +; Score: 3.0053 +; ---------------------------------- +; Proper offset + nop + nop + nop + nop + cmp byt2; +line0 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta colpf2 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$01 ; 1 (spr=-47) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + sty HPOSP0 + lda #$00 ; 0 (spr=-48) + sta COLPM0 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + sty colpf1 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + stx colpf1 + sta colpf0 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5 + sta COLBAK + ldy #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$3A ; 58 (spr=10) + stx HPOSP0 + lda #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6 + lda #$10 ; 16 (spr=-32) + sty COLBAK + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line8 + ldx #$00 ; 0 (spr=-48) + sty COLPM3 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + sta colpf0 + sta colpf0 + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf0 + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC + sta COLBAK + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineD + lda #$01 ; 1 (spr=-47) + lda #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$FF ; 255 (spr=207) + sty colpf2 + ldx #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineE + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineF + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line10 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line11 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line12 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line13 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$F0 ; 240 (spr=192) + sty colpf2 + sta COLBAK + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line14 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + nop + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldy #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line15 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$F0 ; 240 (spr=192) + sty colpf2 + sta COLBAK + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line16 + lda #$00 ; 0 (spr=-48) + sta colpf0 + ldy #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + ldy #$10 ; 16 (spr=-32) + stx colpf1 + ldy #$D0 ; 208 (spr=160) + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line17 + lda #$07 ; 7 (spr=-41) + lda #$E2 ; 226 (spr=178) + ldy #$00 ; 0 (spr=-48) + stx colpf0 + sta COLBAK + sta COLPM0 + lda #$00 ; 0 (spr=-48) + sta COLBAK + sta colpf0 + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line18 + lda #$07 ; 7 (spr=-41) + sta colpf0 + ldy #$00 ; 0 (spr=-48) + stx colpf0 + sta COLBAK + sta COLPM0 + lda #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sta COLBAK + sty COLPM3 + lda #$E2 ; 226 (spr=178) + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line19 + lda #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + stx colpf1 + ldx #$0E ; 14 (spr=-34) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + stx COLPM3 + lda #$03 ; 3 (spr=-45) + ldx #$00 ; 0 (spr=-48) + sta colpf0 + ldy #$10 ; 16 (spr=-32) + stx HPOSP2 + sta COLBAK + ldy #$00 ; 0 (spr=-48) + stx COLPM2 + sta HPOSP2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line1A + lda #$00 ; 0 (spr=-48) + stx colpf1 + ldx #$0E ; 14 (spr=-34) + stx colpf1 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + sta colpf0 + ldy #$00 ; 0 (spr=-48) + sta COLBAK + ldy #$00 ; 0 (spr=-48) + sta HPOSP2 + stx COLPM2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1B + lda #$07 ; 7 (spr=-41) + ldy #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + stx colpf1 + lda #$00 ; 0 (spr=-48) + sta COLBAK + sta HPOSP2 + ldy #$0C ; 12 (spr=-36) + nop + sty colpf2 + sty HPOSP2 + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1C + lda #$12 ; 18 (spr=-30) + lda #$07 ; 7 (spr=-41) + sta COLPM3 + nop + lda #$04 ; 4 (spr=-44) + stx colpf1 + sty HPOSP2 + sta colpf0 + lda #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + lda #$0A ; 10 (spr=-38) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1D + sta COLBAK + sta colpf0 + stx colpf1 + ldx #$0E ; 14 (spr=-34) + ldy #$00 ; 0 (spr=-48) + stx COLPM2 + ldy #$00 ; 0 (spr=-48) + sty colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + sta COLBAK + nop + stx colpf1 + ldy #$00 ; 0 (spr=-48) + stx COLPM2 + lda #$04 ; 4 (spr=-44) + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line1E + nop + sta COLPM0 + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$0C ; 12 (spr=-36) + nop + sta colpf0 + lda #$04 ; 4 (spr=-44) + sty colpf2 + sty colpf2 + sta COLPM0 + lda #$02 ; 2 (spr=-46) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line1F + nop + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$02 ; 2 (spr=-46) + sta colpf0 + stx colpf1 + lda #$04 ; 4 (spr=-44) + sty colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line20 + nop + lda #$07 ; 7 (spr=-41) + sta HPOSP1 + lda #$02 ; 2 (spr=-46) + sta colpf0 + stx colpf1 + lda #$04 ; 4 (spr=-44) + sty colpf2 + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line21 + stx colpf1 + sta COLPM0 + lda #$00 ; 0 (spr=-48) + sty colpf2 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + stx HPOSP1 + ldy #$06 ; 6 (spr=-42) + sta COLBAK + stx colpf1 + ldy #$0A ; 10 (spr=-38) + sty colpf2 + nop + ldy #$00 ; 0 (spr=-48) + lda #$08 ; 8 (spr=-40) + sty HPOSP1 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line22 + lda #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sty HPOSP1 + ldx #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + lda #$04 ; 4 (spr=-44) + ldx #$0D ; 13 (spr=-35) + stx COLPM3 + sta COLBAK + sta COLBAK + ldy #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + lda #$03 ; 3 (spr=-45) + ldy #$00 ; 0 (spr=-48) + sta colpf2 + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line23 + stx colpf1 + stx HPOSP2 + stx HPOSP1 + ldx #$00 ; 0 (spr=-48) + lda #$01 ; 1 (spr=-47) + sta HPOSP2 + ldx #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldy #$0B ; 11 (spr=-37) + ldx #$0E ; 14 (spr=-34) + lda #$00 ; 0 (spr=-48) + lda #$02 ; 2 (spr=-46) + sty colpf2 + ldy #$07 ; 7 (spr=-41) + sta colpf2 + sta colpf2 + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line24 + sta colpf2 + lda #$00 ; 0 (spr=-48) + stx colpf1 + sty colpf1 + sta colpf0 + sty colpf2 + lda #$02 ; 2 (spr=-46) + ldy #$86 ; 134 (spr=86) + ldy #$0B ; 11 (spr=-37) + stx colpf1 + sty colpf2 + ldy #$00 ; 0 (spr=-48) + sta colpf2 + lda #$00 ; 0 (spr=-48) + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line25 + sta colpf0 + lda #$00 ; 0 (spr=-48) + lda #$02 ; 2 (spr=-46) + stx colpf1 + sta COLPM2 + sty colpf2 + ldy #$99 ; 153 (spr=105) + lda #$02 ; 2 (spr=-46) + ldy #$08 ; 8 (spr=-40) + sty COLBAK + sty colpf2 + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line26 + sty colpf2 + nop + stx colpf2 + ldy #$06 ; 6 (spr=-42) + nop + sty colpf2 + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + ldy #$C0 ; 192 (spr=144) + sty HPOSP2 + sty HPOSP1 + sta COLBAK + ldx #$19 ; 25 (spr=-23) + lda #$00 ; 0 (spr=-48) + ldy #$08 ; 8 (spr=-40) + stx HPOSP2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line27 + stx HPOSP2 + ldy #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + lda #$03 ; 3 (spr=-45) + sta COLBAK + ldy #$00 ; 0 (spr=-48) + sta COLPM0 + ldx #$0E ; 14 (spr=-34) + ldx #$00 ; 0 (spr=-48) + ldy #$08 ; 8 (spr=-40) + lda #$04 ; 4 (spr=-44) + sty colpf2 + nop + ldy #$00 ; 0 (spr=-48) + sta COLBAK + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + sty colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line28 + ldx #$61 ; 97 (spr=49) + ldy #$0A ; 10 (spr=-38) + sty colpf2 + sta COLPM1 + sty colpf2 + sta HPOSP1 + ldy #$0E ; 14 (spr=-34) + ldy #$08 ; 8 (spr=-40) + sty colpf2 + ldy #$0D ; 13 (spr=-35) + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line29 + stx HPOSP2 + ldx #$01 ; 1 (spr=-47) + sta COLPM1 + ldy #$00 ; 0 (spr=-48) + ldx #$0E ; 14 (spr=-34) + ldy #$0D ; 13 (spr=-35) + sty colpf2 + ldy #$0A ; 10 (spr=-38) + sta COLPM0 + sty colpf2 + sty colpf1 + ldy #$08 ; 8 (spr=-40) + sty HPOSP2 + sty colpf2 + stx colpf1 + ldy #$02 ; 2 (spr=-46) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2A + nop + sty COLPM2 + ldy #$9A ; 154 (spr=106) + lda #$07 ; 7 (spr=-41) + sty HPOSP2 + ldy #$02 ; 2 (spr=-46) + sty colpf1 + sta colpf1 + stx colpf1 + stx COLPM1 + sty COLPM2 + sty COLPM0 + sty COLBAK + ldy #$10 ; 16 (spr=-32) + ldx #$0E ; 14 (spr=-34) + ldy #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2B + ldy #$0C ; 12 (spr=-36) + sta COLPM1 + nop + stx COLPM2 + nop + stx HPOSP1 + sty colpf2 + sta HPOSP2 + sta colpf1 + lda #$02 ; 2 (spr=-46) + sta COLPM3 + stx HPOSP2 + ldy #$00 ; 0 (spr=-48) + sty COLPM1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2C + sty COLBAK + nop + ldy #$00 ; 0 (spr=-48) + ldy #$04 ; 4 (spr=-44) + stx COLPM0 + sty COLBAK + sty COLPM3 + nop + ldy #$08 ; 8 (spr=-40) + sty colpf2 + nop + nop + sta COLPM0 + lda #$00 ; 0 (spr=-48) + stx colpf1 + lda #$00 ; 0 (spr=-48) + sty colpf2 + ldy #$0C ; 12 (spr=-36) + nop ; filler + cmp byt2; on zero page so 3 cycles +line2D + ldy #$00 ; 0 (spr=-48) + lda #$02 ; 2 (spr=-46) + ldy #$88 ; 136 (spr=88) + sty HPOSP1 + nop + sta COLBAK + sty HPOSP2 + nop + sta COLPM1 + sty HPOSP2 + sty COLPM0 + ldy #$9C ; 156 (spr=108) + ldy #$9E ; 158 (spr=110) + stx colpf1 + sty colpf2 + lda #$FF ; 255 (spr=207) + ldy #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line2E + sty COLPM3 + ldy #$80 ; 128 (spr=80) + lda #$FF ; 255 (spr=207) + sty colpf1 + lda #$00 ; 0 (spr=-48) + ldy #$04 ; 4 (spr=-44) + lda #$07 ; 7 (spr=-41) + sty colpf2 + stx colpf1 + nop + ldy #$0C ; 12 (spr=-36) + nop + sta COLPM1 + sty COLBAK + sta colpf1 + sta COLBAK + lda #$00 ; 0 (spr=-48) + lda #$FF ; 255 (spr=207) + nop ; filler + cmp byt2; on zero page so 3 cycles +line2F + ldy #$94 ; 148 (spr=100) + sta COLPM2 + nop + sty colpf1 + lda #$8A ; 138 (spr=90) + sta colpf2 + ldy #$09 ; 9 (spr=-39) + stx colpf1 + sty colpf2 + nop + lda #$00 ; 0 (spr=-48) + ldy #$86 ; 134 (spr=86) + sty COLPM0 + ldy #$04 ; 4 (spr=-44) + sty colpf1 + stx colpf1 + ldy #$8A ; 138 (spr=90) + lda #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line30 + sta COLPM1 + stx COLPM1 + ldx #$00 ; 0 (spr=-48) + sty colpf2 + lda #$09 ; 9 (spr=-39) + ldy #$FF ; 255 (spr=207) + sta colpf2 + nop + ldx #$0C ; 12 (spr=-36) + stx colpf2 + ldx #$02 ; 2 (spr=-46) + nop + sta colpf2 + ldy #$8A ; 138 (spr=90) + stx colpf2 + nop + nop + nop + ldx #$04 ; 4 (spr=-44) + nop ; filler + cmp byt2; on zero page so 3 cycles +line31 + sty colpf2 + stx COLPM1 + ldx #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldy #$FF ; 255 (spr=207) + nop + sta colpf2 + ldy #$8A ; 138 (spr=90) + sta COLPM1 + sty COLPM2 + nop + ldx #$02 ; 2 (spr=-46) + lda #$0C ; 12 (spr=-36) + sta colpf2 + lda #$04 ; 4 (spr=-44) + nop + sty colpf2 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line32 + sta COLPM1 + stx COLPM1 + nop + sty COLPM2 + nop + nop + sta colpf2 + ldx #$00 ; 0 (spr=-48) + ldx #$0C ; 12 (spr=-36) + stx colpf2 + ldx #$00 ; 0 (spr=-48) + lda #$10 ; 16 (spr=-32) + nop + lda #$00 ; 0 (spr=-48) + nop + sty colpf2 + ldx #$00 ; 0 (spr=-48) + nop + nop + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line33 + lda #$26 ; 38 (spr=-10) + ldy #$06 ; 6 (spr=-42) + sta COLPM2 + ldy #$00 ; 0 (spr=-48) + ldx #$04 ; 4 (spr=-44) + ldy #$02 ; 2 (spr=-46) + nop + lda #$00 ; 0 (spr=-48) + sty colpf2 + lda #$0B ; 11 (spr=-37) + sta colpf2 + nop + stx colpf2 + lda #$87 ; 135 (spr=87) + stx COLPM0 + sty colpf2 + sta colpf2 + lda #$2E ; 46 (spr=-2) + ldy #$94 ; 148 (spr=100) + nop ; filler + cmp byt2; on zero page so 3 cycles +line34 + stx COLPM1 + lda #$00 ; 0 (spr=-48) + ldx #$21 ; 33 (spr=-15) + ldy #$25 ; 37 (spr=-11) + lda #$0D ; 13 (spr=-35) + stx COLPM1 + nop + ldx #$00 ; 0 (spr=-48) + sta colpf2 + lda #$2F ; 47 (spr=-1) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf2 + sty COLPM1 + nop + ldy #$FF ; 255 (spr=207) + ldx #$90 ; 144 (spr=96) + stx COLPM3 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line35 + ldy #$57 ; 87 (spr=39) + ldx #$04 ; 4 (spr=-44) + lda #$00 ; 0 (spr=-48) + stx COLBAK + lda #$0A ; 10 (spr=-38) + ldx #$29 ; 41 (spr=-7) + ldy #$9A ; 154 (spr=106) + sty colpf2 + sta colpf2 + lda #$06 ; 6 (spr=-42) + stx colpf1 + ldx #$16 ; 22 (spr=-26) + lda #$02 ; 2 (spr=-46) + sta COLBAK + ldx #$00 ; 0 (spr=-48) + nop + lda #$06 ; 6 (spr=-42) + nop + nop + sty colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line36 + sty colpf0 + nop + sta colpf0 + lda #$8F ; 143 (spr=95) + stx colpf1 + ldx #$0F ; 15 (spr=-33) + sta colpf0 + lda #$2B ; 43 (spr=-5) + sta colpf0 + sty COLPM3 + lda #$FF ; 255 (spr=207) + lda #$06 ; 6 (spr=-42) + sta colpf2 + ldy #$00 ; 0 (spr=-48) + nop + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line37 + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$94 ; 148 (spr=100) + sty colpf0 + stx colpf1 + sta colpf0 + ldx #$2A ; 42 (spr=-6) + stx colpf1 + lda #$07 ; 7 (spr=-41) + ldx #$00 ; 0 (spr=-48) + sta colpf1 + lda #$00 ; 0 (spr=-48) + lda #$07 ; 7 (spr=-41) + ldx #$02 ; 2 (spr=-46) + lda #$06 ; 6 (spr=-42) + ldy #$8A ; 138 (spr=90) + stx COLPM1 + sty COLPM3 + nop ; filler + cmp byt2; on zero page so 3 cycles +line38 + stx COLBAK + ldx #$29 ; 41 (spr=-7) + ldy #$A0 ; 160 (spr=112) + sta COLBAK + nop + ldy #$00 ; 0 (spr=-48) + lda #$87 ; 135 (spr=87) + ldy #$0E ; 14 (spr=-34) + sta colpf1 + lda #$00 ; 0 (spr=-48) + stx colpf1 + lda #$FF ; 255 (spr=207) + nop + sty colpf1 + ldy #$23 ; 35 (spr=-13) + ldy #$06 ; 6 (spr=-42) + sty colpf1 + ldx #$00 ; 0 (spr=-48) + lda #$02 ; 2 (spr=-46) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line39 + stx COLBAK + lda #$08 ; 8 (spr=-40) + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldx #$10 ; 16 (spr=-32) + ldx #$29 ; 41 (spr=-7) + sta COLBAK + lda #$87 ; 135 (spr=87) + sta colpf1 + stx colpf1 + ldy #$04 ; 4 (spr=-44) + lda #$00 ; 0 (spr=-48) + sty colpf1 + ldy #$06 ; 6 (spr=-42) + sty colpf1 + ldx #$00 ; 0 (spr=-48) + nop + lda #$27 ; 39 (spr=-9) + ldy #$F0 ; 240 (spr=192) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3A + ldy #$01 ; 1 (spr=-47) + ldy #$10 ; 16 (spr=-32) + nop + ldy #$EF ; 239 (spr=191) + lda #$07 ; 7 (spr=-41) + nop + sta COLBAK + ldy #$84 ; 132 (spr=84) + lda #$24 ; 36 (spr=-12) + sty colpf1 + sta colpf1 + lda #$0A ; 10 (spr=-38) + lda #$75 ; 117 (spr=69) + ldx #$04 ; 4 (spr=-44) + ldy #$50 ; 80 (spr=32) + sty HPOSP1 + ldx #$86 ; 134 (spr=86) + stx COLPM1 + ldy #$00 ; 0 (spr=-48) + lda #$08 ; 8 (spr=-40) + ldy #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +line3B + sty colpf1 + ldy #$0A ; 10 (spr=-38) + sta COLPM3 + ldx #$0A ; 10 (spr=-38) + lda #$03 ; 3 (spr=-45) + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + ldy #$30 ; 48 (spr=0) + sta colpf1 + sta colpf1 + sty colpf0 + sta colpf0 + stx colpf1 + ldy #$07 ; 7 (spr=-41) + ldx #$0A ; 10 (spr=-38) + nop + stx COLBAK + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line3C + sta COLPM2 + ldx #$06 ; 6 (spr=-42) + lda #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$00 ; 0 (spr=-48) + stx COLPM0 + stx COLPM3 + stx colpf0 + sta colpf1 + nop + sty COLPM1 + nop + sty COLBAK + lda #$04 ; 4 (spr=-44) + ldx #$08 ; 8 (spr=-40) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3D + ldy #$0A ; 10 (spr=-38) + nop + stx COLPM0 + sta HPOSP2 + sty colpf2 + ldx #$82 ; 130 (spr=82) + stx COLPM3 + ldx #$08 ; 8 (spr=-40) + lda #$04 ; 4 (spr=-44) + stx colpf1 + nop + sta colpf0 + lda #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + ldx #$20 ; 32 (spr=-16) + ldy #$00 ; 0 (spr=-48) + sta COLPM3 + lda #$04 ; 4 (spr=-44) + nop ; filler + cmp byt2; on zero page so 3 cycles +line3E + nop + nop + ldx #$07 ; 7 (spr=-41) + ldy #$03 ; 3 (spr=-45) + stx colpf1 + nop + sty COLPM3 + nop + lda #$00 ; 0 (spr=-48) + sty COLPM3 + ldy #$0A ; 10 (spr=-38) + sta COLPM3 + sta COLBAK + lda #$0E ; 14 (spr=-34) + sta colpf1 + stx colpf2 + sty colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line3F + sty colpf1 + sta colpf2 + sty colpf2 + stx colpf2 + ldy #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + lda #$03 ; 3 (spr=-45) + sta COLPM3 + sta colpf2 + lda #$0C ; 12 (spr=-36) + ldy #$07 ; 7 (spr=-41) + sty COLPM2 + sta colpf2 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line40 + lda #$00 ; 0 (spr=-48) + sta colpf2 + sta COLBAK + stx colpf2 + sty colpf2 + ldx #$09 ; 9 (spr=-39) + lda #$00 ; 0 (spr=-48) + sty HPOSP2 + stx colpf2 + lda #$08 ; 8 (spr=-40) + sty colpf2 + lda #$0E ; 14 (spr=-34) + sta colpf2 + lda #$06 ; 6 (spr=-42) + lda #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + stx colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line41 + lda #$D0 ; 208 (spr=160) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sty colpf2 + sta colpf0 + lda #$0F ; 15 (spr=-33) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line42 + lda #$0F ; 15 (spr=-33) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + sty colpf2 + lda #$00 ; 0 (spr=-48) + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sta colpf0 + sty colpf2 + lda #$D0 ; 208 (spr=160) + sta colpf2 + lda #$04 ; 4 (spr=-44) + sta colpf0 + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line43 + lda #$D0 ; 208 (spr=160) + sta colpf2 + ldy #$07 ; 7 (spr=-41) + stx COLBAK + lda #$01 ; 1 (spr=-47) + sty colpf2 + sta COLBAK + lda #$03 ; 3 (spr=-45) + stx colpf2 + sta colpf2 + sty colpf2 + lda #$0F ; 15 (spr=-33) + sta colpf2 + stx COLPM2 + lda #$04 ; 4 (spr=-44) + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line44 + lda #$00 ; 0 (spr=-48) + sty colpf2 + sta COLBAK + lda #$1B ; 27 (spr=-21) + nop + sta HPOSP2 + lda #$00 ; 0 (spr=-48) + stx colpf2 + lda #$0E ; 14 (spr=-34) + sty colpf2 + sta colpf2 + sty colpf2 + sta colpf2 + nop + ldy #$07 ; 7 (spr=-41) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line45 + lda #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + sta COLBAK + ldy #$06 ; 6 (spr=-42) + sta COLPM1 + sty colpf2 + lda #$04 ; 4 (spr=-44) + stx colpf2 + lda #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + lda #$0E ; 14 (spr=-34) + sta colpf2 + stx colpf2 + sta colpf1 + ldx #$0A ; 10 (spr=-38) + nop + nop + lda #$17 ; 23 (spr=-25) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line46 + lda #$02 ; 2 (spr=-46) + stx colpf1 + ldx #$B8 ; 184 (spr=136) + sty colpf2 + ldx #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + lda #$0A ; 10 (spr=-38) + lda #$09 ; 9 (spr=-39) + ldx #$14 ; 20 (spr=-28) + ldx #$0E ; 14 (spr=-34) + sta colpf2 + lda #$1E ; 30 (spr=-18) + stx colpf2 + sty colpf2 + sta colpf2 + lda #$00 ; 0 (spr=-48) + sty colpf2 + nop + lda #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line47 + lda #$00 ; 0 (spr=-48) + sty COLBAK + sta COLBAK + ldy #$0E ; 14 (spr=-34) + lda #$0A ; 10 (spr=-38) + ldx #$02 ; 2 (spr=-46) + nop + lda #$0A ; 10 (spr=-38) + stx COLPM1 + ldx #$09 ; 9 (spr=-39) + stx colpf2 + sty colpf2 + ldy #$26 ; 38 (spr=-10) + sty colpf2 + nop + sty COLPM3 + lda #$00 ; 0 (spr=-48) + lda #$06 ; 6 (spr=-42) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line48 + ldy #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + nop + lda #$55 ; 85 (spr=37) + sty colpf2 + ldy #$0A ; 10 (spr=-38) + sta COLPM2 + lda #$00 ; 0 (spr=-48) + lda #$06 ; 6 (spr=-42) + ldy #$02 ; 2 (spr=-46) + lda #$29 ; 41 (spr=-7) + ldx #$2B ; 43 (spr=-5) + sty colpf0 + lda #$26 ; 38 (spr=-10) + sta colpf0 + stx colpf1 + nop + ldx #$0B ; 11 (spr=-37) + ldy #$06 ; 6 (spr=-42) + nop + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line49 + lda #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf1 + nop + lda #$00 ; 0 (spr=-48) + lda #$0A ; 10 (spr=-38) + lda #$39 ; 57 (spr=9) + ldx #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + ldy #$0A ; 10 (spr=-38) + nop + sta HPOSP0 + lda #$28 ; 40 (spr=-8) + stx colpf1 + ldx #$84 ; 132 (spr=84) + sta colpf0 + lda #$05 ; 5 (spr=-43) + nop + ldy #$06 ; 6 (spr=-42) + ldx #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4A + sta COLPM2 + ldx #$0A ; 10 (spr=-38) + sta colpf0 + nop + lda #$02 ; 2 (spr=-46) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + sta COLPM2 + nop + sta colpf0 + lda #$28 ; 40 (spr=-8) + lda #$28 ; 40 (spr=-8) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sta colpf1 + stx colpf1 + lda #$28 ; 40 (spr=-8) + lda #$05 ; 5 (spr=-43) + nop ; filler + cmp byt2; on zero page so 3 cycles +line4B + lda #$05 ; 5 (spr=-43) + lda #$04 ; 4 (spr=-44) + sta colpf0 + lda #$00 ; 0 (spr=-48) + ldx #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + lda #$29 ; 41 (spr=-7) + sty colpf2 + stx colpf1 + sta HPOSP2 + ldx #$0A ; 10 (spr=-38) + sty HPOSP2 + sta COLPM2 + sta colpf1 + lda #$03 ; 3 (spr=-45) + sta colpf1 + lda #$04 ; 4 (spr=-44) + ldy #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line4C + stx colpf1 + ldy #$56 ; 86 (spr=38) + ldx #$0A ; 10 (spr=-38) + sty HPOSP1 + ldx #$0A ; 10 (spr=-38) + sty HPOSP2 + sty HPOSP0 + lda #$09 ; 9 (spr=-39) + ldy #$26 ; 38 (spr=-10) + nop + lda #$44 ; 68 (spr=20) + nop + ldx #$00 ; 0 (spr=-48) + ldx #$26 ; 38 (spr=-10) + lda #$F0 ; 240 (spr=192) + stx colpf1 + ldx #$35 ; 53 (spr=5) + ldy #$0A ; 10 (spr=-38) + stx HPOSP0 + lda #$88 ; 136 (spr=88) + nop ; filler + cmp byt2; on zero page so 3 cycles +line4D + ldx #$22 ; 34 (spr=-14) + stx colpf1 + ldy #$0A ; 10 (spr=-38) + ldx #$07 ; 7 (spr=-41) + nop + stx colpf2 + sty colpf2 + stx colpf1 + ldy #$55 ; 85 (spr=37) + sty colpf1 + stx colpf1 + ldx #$0A ; 10 (spr=-38) + ldx #$2A ; 42 (spr=-6) + stx colpf1 + ldx #$00 ; 0 (spr=-48) + ldy #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + ldx #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4E + ldx #$0A ; 10 (spr=-38) + ldx #$06 ; 6 (spr=-42) + lda #$00 ; 0 (spr=-48) + stx colpf1 + ldx #$2E ; 46 (spr=-2) + nop + lda #$06 ; 6 (spr=-42) + stx colpf1 + sta colpf1 + ldx #$17 ; 23 (spr=-25) + nop + ldx #$00 ; 0 (spr=-48) + ldy #$FA ; 250 (spr=202) + ldy #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + nop + nop + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line4F + nop + ldx #$0A ; 10 (spr=-38) + lda #$00 ; 0 (spr=-48) + ldx #$0A ; 10 (spr=-38) + nop + ldx #$2D ; 45 (spr=-3) + ldy #$04 ; 4 (spr=-44) + lda #$06 ; 6 (spr=-42) + stx colpf1 + sta colpf1 + ldx #$F7 ; 247 (spr=199) + ldy #$00 ; 0 (spr=-48) + lda #$0A ; 10 (spr=-38) + lda #$FA ; 250 (spr=202) + ldx #$0A ; 10 (spr=-38) + ldx #$16 ; 22 (spr=-26) + ldx #$08 ; 8 (spr=-40) + stx colpf1 + lda #$06 ; 6 (spr=-42) + nop + nop + ldx #$02 ; 2 (spr=-46) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line50 + ldx #$04 ; 4 (spr=-44) + lda #$0A ; 10 (spr=-38) + ldx #$0A ; 10 (spr=-38) + ldx #$2A ; 42 (spr=-6) + stx colpf1 + ldx #$07 ; 7 (spr=-41) + sty COLPM2 + nop + stx colpf1 + ldx #$02 ; 2 (spr=-46) + stx COLPM1 + lda #$04 ; 4 (spr=-44) + sty COLPM1 + ldy #$06 ; 6 (spr=-42) + stx colpf1 + ldx #$0A ; 10 (spr=-38) + sty colpf1 + lda #$0A ; 10 (spr=-38) + lda #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +line51 + ldy #$08 ; 8 (spr=-40) + ldx #$04 ; 4 (spr=-44) + lda #$06 ; 6 (spr=-42) + sty COLPM1 + ldx #$04 ; 4 (spr=-44) + ldx #$06 ; 6 (spr=-42) + ldx #$2A ; 42 (spr=-6) + stx colpf1 + sta colpf1 + ldx #$07 ; 7 (spr=-41) + sty colpf1 + nop + stx colpf1 + ldx #$D0 ; 208 (spr=160) + nop + stx COLPM2 + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line52 + stx COLBAK + nop + ldx #$06 ; 6 (spr=-42) + ldy #$0B ; 11 (spr=-37) + lda #$00 ; 0 (spr=-48) + sty colpf2 + lda #$0A ; 10 (spr=-38) + lda #$00 ; 0 (spr=-48) + stx COLPM0 + sta colpf0 + ldx #$26 ; 38 (spr=-10) + ldy #$0B ; 11 (spr=-37) + ldy #$08 ; 8 (spr=-40) + lda #$0A ; 10 (spr=-38) + stx colpf1 + sty COLBAK + ldx #$06 ; 6 (spr=-42) + stx COLPM2 + ldy #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +line53 + nop + ldy #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + ldx #$0A ; 10 (spr=-38) + stx colpf1 + sta colpf2 + lda #$08 ; 8 (spr=-40) + ldx #$0A ; 10 (spr=-38) + nop + sta COLBAK + ldx #$04 ; 4 (spr=-44) + sta COLBAK + ldy #$0A ; 10 (spr=-38) + lda #$27 ; 39 (spr=-9) + sta COLBAK + lda #$22 ; 34 (spr=-14) + ldy #$06 ; 6 (spr=-42) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line54 + lda #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + ldy #$11 ; 17 (spr=-31) + ldy #$00 ; 0 (spr=-48) + sta colpf0 + ldx #$E0 ; 224 (spr=176) + nop + lda #$2A ; 42 (spr=-6) + stx colpf1 + sty colpf1 + ldy #$0A ; 10 (spr=-38) + nop + ldy #$0A ; 10 (spr=-38) + ldy #$04 ; 4 (spr=-44) + nop + sta colpf2 + sty colpf2 + ldy #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + ldx #$2A ; 42 (spr=-6) + ldy #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line55 + nop + lda #$04 ; 4 (spr=-44) + sta colpf0 + lda #$04 ; 4 (spr=-44) + sty colpf2 + sty colpf2 + sty colpf2 + nop + lda #$08 ; 8 (spr=-40) + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf0 + stx colpf0 + sta colpf0 + lda #$01 ; 1 (spr=-47) + ldy #$0B ; 11 (spr=-37) + ldy #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line56 + lda #$0A ; 10 (spr=-38) + lda #$05 ; 5 (spr=-43) + sta colpf0 + lda #$14 ; 20 (spr=-28) + lda #$3A ; 58 (spr=10) + sty colpf2 + sty colpf2 + sta HPOSP1 + ldy #$04 ; 4 (spr=-44) + lda #$0A ; 10 (spr=-38) + ldy #$0A ; 10 (spr=-38) + lda #$08 ; 8 (spr=-40) + sty colpf2 + stx colpf0 + nop + sta colpf0 + ldy #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line57 + nop + lda #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + sta colpf0 + sty colpf2 + sty colpf2 + sty colpf2 + nop + lda #$02 ; 2 (spr=-46) + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf0 + stx colpf0 + sta colpf0 + lda #$01 ; 1 (spr=-47) + ldy #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line58 + sty colpf0 + sta colpf0 + nop + sty colpf2 + sty colpf2 + sty colpf2 + lda #$06 ; 6 (spr=-42) + nop + sta colpf0 + lda #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + ldy #$08 ; 8 (spr=-40) + stx colpf0 + lda #$04 ; 4 (spr=-44) + ldx #$00 ; 0 (spr=-48) + sty colpf0 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line59 + sta COLPM1 + lda #$08 ; 8 (spr=-40) + nop + nop + ldy #$D0 ; 208 (spr=160) + stx COLPM1 + sty colpf1 + sta colpf1 + sty COLPM1 + ldy #$0A ; 10 (spr=-38) + stx colpf1 + lda #$29 ; 41 (spr=-7) + ldy #$26 ; 38 (spr=-10) + ldx #$25 ; 37 (spr=-11) + sta COLBAK + sty COLBAK + nop + lda #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +line5A + nop + lda #$12 ; 18 (spr=-30) + ldy #$E7 ; 231 (spr=183) + ldx #$00 ; 0 (spr=-48) + ldx #$08 ; 8 (spr=-40) + sta colpf1 + ldy #$0A ; 10 (spr=-38) + ldy #$0A ; 10 (spr=-38) + nop + stx colpf1 + ldx #$00 ; 0 (spr=-48) + ldy #$28 ; 40 (spr=-8) + lda #$06 ; 6 (spr=-42) + nop + stx colpf1 + sty colpf1 + stx COLBAK + ldx #$08 ; 8 (spr=-40) + stx colpf1 + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line5B + sty COLPM3 + ldy #$01 ; 1 (spr=-47) + ldy #$04 ; 4 (spr=-44) + ldx #$24 ; 36 (spr=-12) + ldy #$0A ; 10 (spr=-38) + ldy #$26 ; 38 (spr=-10) + lda #$0A ; 10 (spr=-38) + stx colpf1 + ldx #$00 ; 0 (spr=-48) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + ldx #$1A ; 26 (spr=-22) + lda #$08 ; 8 (spr=-40) + ldx #$26 ; 38 (spr=-10) + ldx #$01 ; 1 (spr=-47) + ldy #$0A ; 10 (spr=-38) + stx COLPM0 + stx COLPM3 + nop + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5C + ldy #$26 ; 38 (spr=-10) + lda #$0A ; 10 (spr=-38) + ldx #$06 ; 6 (spr=-42) + sta colpf1 + nop + stx colpf2 + nop + sty colpf2 + lda #$01 ; 1 (spr=-47) + sta COLBAK + stx colpf0 + lda #$06 ; 6 (spr=-42) + ldx #$28 ; 40 (spr=-8) + stx colpf0 + nop + sta colpf0 + ldx #$02 ; 2 (spr=-46) + ldx #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5D + lda #$04 ; 4 (spr=-44) + lda #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf1 + lda #$00 ; 0 (spr=-48) + ldy #$16 ; 22 (spr=-26) + stx colpf1 + lda #$06 ; 6 (spr=-42) + nop + nop + ldx #$04 ; 4 (spr=-44) + sta colpf1 + lda #$28 ; 40 (spr=-8) + sta colpf1 + stx colpf2 + lda #$09 ; 9 (spr=-39) + sta colpf1 + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line5E + sta COLPM2 + sta colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$07 ; 7 (spr=-41) + sty colpf2 + lda #$28 ; 40 (spr=-8) + sta COLBAK + lda #$0B ; 11 (spr=-37) + ldx #$26 ; 38 (spr=-10) + lda #$0A ; 10 (spr=-38) + nop + stx colpf1 + lda #$04 ; 4 (spr=-44) + sta colpf1 + lda #$09 ; 9 (spr=-39) + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line5F + ldx #$0A ; 10 (spr=-38) + ldx #$28 ; 40 (spr=-8) + ldy #$06 ; 6 (spr=-42) + ldx #$04 ; 4 (spr=-44) + nop + stx colpf1 + lda #$28 ; 40 (spr=-8) + ldy #$02 ; 2 (spr=-46) + sty COLPM2 + sta COLBAK + lda #$0A ; 10 (spr=-38) + ldx #$0A ; 10 (spr=-38) + lda #$26 ; 38 (spr=-10) + stx COLPM1 + sta colpf1 + sty COLPM1 + sty colpf1 + lda #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line60 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$0A ; 10 (spr=-38) + ldx #$0A ; 10 (spr=-38) + ldy #$2A ; 42 (spr=-6) + ldx #$28 ; 40 (spr=-8) + lda #$74 ; 116 (spr=68) + lda #$09 ; 9 (spr=-39) + ldx #$2B ; 43 (spr=-5) + sta COLPM2 + lda #$04 ; 4 (spr=-44) + lda #$19 ; 25 (spr=-23) + lda #$09 ; 9 (spr=-39) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + sty colpf2 + sta colpf1 + ldx #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line61 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldx #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + lda #$84 ; 132 (spr=84) + sta HPOSP2 + lda #$0A ; 10 (spr=-38) + ldx #$2B ; 43 (spr=-5) + lda #$0A ; 10 (spr=-38) + lda #$09 ; 9 (spr=-39) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + ldx #$28 ; 40 (spr=-8) + sta colpf1 + sta COLPM2 + ldy #$02 ; 2 (spr=-46) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line62 + nop + sty colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta COLBAK + lda #$28 ; 40 (spr=-8) + sty colpf2 + sta COLBAK + ldx #$2A ; 42 (spr=-6) + nop + lda #$0A ; 10 (spr=-38) + stx colpf1 + ldx #$0A ; 10 (spr=-38) + lda #$08 ; 8 (spr=-40) + sta COLBAK + ldx #$0A ; 10 (spr=-38) + lda #$09 ; 9 (spr=-39) + lda #$09 ; 9 (spr=-39) + nop ; filler + cmp byt2; on zero page so 3 cycles +line63 + sta COLBAK + ldx #$00 ; 0 (spr=-48) + ldx #$04 ; 4 (spr=-44) + sta colpf2 + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2B ; 43 (spr=-5) + sta COLBAK + nop + lda #$0A ; 10 (spr=-38) + stx colpf1 + sty colpf2 + lda #$09 ; 9 (spr=-39) + sta COLBAK + ldx #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line64 + sta COLBAK + sty colpf2 + ldx #$04 ; 4 (spr=-44) + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2B ; 43 (spr=-5) + sta COLBAK + nop + nop + lda #$0A ; 10 (spr=-38) + stx colpf1 + lda #$09 ; 9 (spr=-39) + sta colpf1 + ldx #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line65 + sty colpf2 + sty colpf2 + ldy #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta COLBAK + lda #$28 ; 40 (spr=-8) + nop + sta COLBAK + ldx #$2A ; 42 (spr=-6) + nop + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta colpf0 + ldx #$0A ; 10 (spr=-38) + sta colpf0 + lda #$08 ; 8 (spr=-40) + nop ; filler + cmp byt2; on zero page so 3 cycles +line66 + sta COLBAK + sty colpf2 + ldx #$04 ; 4 (spr=-44) + ldy #$06 ; 6 (spr=-42) + stx colpf1 + sty colpf2 + lda #$28 ; 40 (spr=-8) + nop + ldx #$2A ; 42 (spr=-6) + sta COLBAK + nop + lda #$08 ; 8 (spr=-40) + stx colpf1 + ldy #$06 ; 6 (spr=-42) + sta colpf1 + lda #$0A ; 10 (spr=-38) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line67 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + sty colpf1 + lda #$0A ; 10 (spr=-38) + stx colpf1 + nop + ldx #$00 ; 0 (spr=-48) + ldx #$2A ; 42 (spr=-6) + lda #$28 ; 40 (spr=-8) + nop + sty colpf2 + ldy #$0A ; 10 (spr=-38) + lda #$08 ; 8 (spr=-40) + stx colpf1 + ldx #$0A ; 10 (spr=-38) + ldy #$06 ; 6 (spr=-42) + stx colpf0 + sta COLBAK + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line68 + lda #$2A ; 42 (spr=-6) + sta HPOSP2 + lda #$0A ; 10 (spr=-38) + nop + ldx #$04 ; 4 (spr=-44) + stx colpf1 + nop + sty colpf2 + lda #$0A ; 10 (spr=-38) + sty HPOSP2 + lda #$28 ; 40 (spr=-8) + ldy #$09 ; 9 (spr=-39) + ldx #$5E ; 94 (spr=46) + sta COLBAK + stx COLPM2 + sty COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line69 + lda #$07 ; 7 (spr=-41) + sta COLBAK + stx HPOSP2 + ldx #$27 ; 39 (spr=-9) + nop + sta COLPM2 + nop + sty colpf2 + sty HPOSP2 + ldy #$28 ; 40 (spr=-8) + nop + sty colpf2 + sty COLPM2 + ldy #$02 ; 2 (spr=-46) + stx HPOSP2 + stx COLPM1 + lda #$29 ; 41 (spr=-7) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6A + ldx #$28 ; 40 (spr=-8) + ldx #$F1 ; 241 (spr=193) + lda #$0A ; 10 (spr=-38) + stx colpf2 + sta colpf0 + lda #$02 ; 2 (spr=-46) + sty colpf2 + ldx #$09 ; 9 (spr=-39) + stx colpf2 + ldx #$0A ; 10 (spr=-38) + lda #$0B ; 11 (spr=-37) + ldx #$28 ; 40 (spr=-8) + stx colpf2 + ldx #$27 ; 39 (spr=-9) + stx colpf1 + lda #$07 ; 7 (spr=-41) + ldx #$32 ; 50 (spr=2) + stx colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6B + ldx #$32 ; 50 (spr=2) + lda #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + stx colpf1 + sta colpf0 + ldx #$F2 ; 242 (spr=194) + sty colpf2 + ldx #$08 ; 8 (spr=-40) + stx colpf2 + lda #$07 ; 7 (spr=-41) + ldx #$00 ; 0 (spr=-48) + nop + ldx #$28 ; 40 (spr=-8) + stx colpf2 + sta COLPM2 + ldx #$28 ; 40 (spr=-8) + lda #$FB ; 251 (spr=203) + ldx #$35 ; 53 (spr=5) + ldx #$28 ; 40 (spr=-8) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line6C + lda #$0A ; 10 (spr=-38) + nop + sta colpf0 + stx HPOSP2 + stx HPOSP2 + sty colpf2 + nop + ldx #$01 ; 1 (spr=-47) + ldx #$28 ; 40 (spr=-8) + stx colpf2 + lda #$F0 ; 240 (spr=192) + sty HPOSP2 + ldx #$0A ; 10 (spr=-38) + ldx #$9A ; 154 (spr=106) + stx colpf2 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + ldx #$35 ; 53 (spr=5) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6D + lda #$09 ; 9 (spr=-39) + nop + sta COLPM2 + stx HPOSP2 + stx HPOSP2 + sty colpf2 + nop + ldx #$01 ; 1 (spr=-47) + ldx #$28 ; 40 (spr=-8) + stx colpf2 + lda #$E0 ; 224 (spr=176) + ldx #$0A ; 10 (spr=-38) + ldx #$9A ; 154 (spr=106) + sta COLPM2 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6E + nop + ldx #$29 ; 41 (spr=-7) + lda #$0A ; 10 (spr=-38) + sta colpf0 + lda #$02 ; 2 (spr=-46) + nop + ldy #$90 ; 144 (spr=96) + sta colpf2 + sty colpf2 + nop + lda #$09 ; 9 (spr=-39) + sta colpf2 + lda #$0A ; 10 (spr=-38) + stx colpf2 + ldy #$0A ; 10 (spr=-38) + ldx #$06 ; 6 (spr=-42) + ldx #$0A ; 10 (spr=-38) + lda #$00 ; 0 (spr=-48) + nop + ldx #$E0 ; 224 (spr=176) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +line6F + sta COLPM2 + ldy #$89 ; 137 (spr=89) + stx colpf0 + sta COLPM2 + ldx #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$28 ; 40 (spr=-8) + sta colpf0 + sta COLPM2 + lda #$0A ; 10 (spr=-38) + stx COLBAK + lda #$0A ; 10 (spr=-38) + ldy #$0A ; 10 (spr=-38) + sta colpf0 + lda #$28 ; 40 (spr=-8) + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line70 + ldx #$28 ; 40 (spr=-8) + lda #$07 ; 7 (spr=-41) + ldx #$86 ; 134 (spr=86) + sta COLBAK + ldy #$8A ; 138 (spr=90) + ldx #$0A ; 10 (spr=-38) + lda #$80 ; 128 (spr=80) + sta colpf0 + sty colpf2 + stx colpf2 + ldy #$86 ; 134 (spr=86) + lda #$3A ; 58 (spr=10) + lda #$28 ; 40 (spr=-8) + sta colpf1 + sty COLPM3 + ldx #$8C ; 140 (spr=92) + ldy #$0A ; 10 (spr=-38) + ldx #$00 ; 0 (spr=-48) + nop + ldx #$28 ; 40 (spr=-8) + nop ; filler + cmp byt2; on zero page so 3 cycles +line71 + nop + ldy #$06 ; 6 (spr=-42) + nop + ldy #$04 ; 4 (spr=-44) + lda #$8A ; 138 (spr=90) + sty colpf2 + ldx #$28 ; 40 (spr=-8) + sta colpf1 + lda #$1A ; 26 (spr=-22) + lda #$0A ; 10 (spr=-38) + sta colpf1 + stx colpf0 + lda #$0A ; 10 (spr=-38) + ldx #$0A ; 10 (spr=-38) + lda #$0A ; 10 (spr=-38) + ldy #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldx #$24 ; 36 (spr=-12) + lda #$06 ; 6 (spr=-42) + ldy #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line72 + ldy #$92 ; 146 (spr=98) + ldx #$00 ; 0 (spr=-48) + ldx #$8E ; 142 (spr=94) + sty colpf1 + ldy #$2A ; 42 (spr=-6) + ldx #$8A ; 138 (spr=90) + ldx #$8A ; 138 (spr=90) + stx colpf0 + nop + sta colpf0 + sty colpf1 + ldx #$28 ; 40 (spr=-8) + ldy #$0A ; 10 (spr=-38) + lda #$06 ; 6 (spr=-42) + stx colpf0 + sty colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line73 + ldy #$00 ; 0 (spr=-48) + ldy #$92 ; 146 (spr=98) + ldx #$00 ; 0 (spr=-48) + sty colpf1 + ldx #$8A ; 138 (spr=90) + nop + ldx #$8A ; 138 (spr=90) + stx colpf0 + nop + sta colpf0 + ldy #$08 ; 8 (spr=-40) + sty colpf1 + ldx #$28 ; 40 (spr=-8) + stx colpf1 + lda #$0A ; 10 (spr=-38) + sty colpf1 + nop + ldx #$26 ; 38 (spr=-10) + stx colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line74 + ldy #$92 ; 146 (spr=98) + nop + ldx #$2A ; 42 (spr=-6) + sty colpf1 + ldy #$00 ; 0 (spr=-48) + ldy #$FA ; 250 (spr=202) + ldy #$07 ; 7 (spr=-41) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + lda #$2B ; 43 (spr=-5) + sta colpf0 + ldx #$28 ; 40 (spr=-8) + stx colpf1 + lda #$25 ; 37 (spr=-11) + ldx #$24 ; 36 (spr=-12) + nop + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line75 + ldy #$09 ; 9 (spr=-39) + ldy #$92 ; 146 (spr=98) + nop + sty colpf1 + ldy #$07 ; 7 (spr=-41) + nop + lda #$2B ; 43 (spr=-5) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + sta colpf0 + ldx #$2A ; 42 (spr=-6) + ldx #$26 ; 38 (spr=-10) + stx colpf1 + lda #$3A ; 58 (spr=10) + ldx #$14 ; 20 (spr=-28) + ldy #$0A ; 10 (spr=-38) + stx colpf1 + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line76 + stx colpf1 + stx colpf1 + ldy #$E0 ; 224 (spr=176) + sty colpf1 + lda #$0A ; 10 (spr=-38) + ldx #$8A ; 138 (spr=90) + stx colpf1 + lda #$F6 ; 246 (spr=198) + ldx #$07 ; 7 (spr=-41) + nop + stx colpf1 + ldy #$82 ; 130 (spr=82) + ldx #$28 ; 40 (spr=-8) + stx colpf1 + lda #$10 ; 16 (spr=-32) + ldx #$F0 ; 240 (spr=192) + stx colpf0 + nop + ldx #$8A ; 138 (spr=90) + nop ; filler + cmp byt2; on zero page so 3 cycles +line77 + stx colpf1 + nop + sty colpf1 + ldy #$1A ; 26 (spr=-22) + ldy #$06 ; 6 (spr=-42) + lda #$2B ; 43 (spr=-5) + ldx #$8A ; 138 (spr=90) + stx colpf0 + sty colpf1 + ldy #$07 ; 7 (spr=-41) + sta colpf0 + ldx #$1E ; 30 (spr=-18) + stx colpf1 + ldx #$06 ; 6 (spr=-42) + lda #$15 ; 21 (spr=-27) + nop + ldx #$92 ; 146 (spr=98) + stx colpf1 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line78 + nop + lda #$00 ; 0 (spr=-48) + sty colpf0 + ldy #$01 ; 1 (spr=-47) + ldx #$2A ; 42 (spr=-6) + ldx #$8A ; 138 (spr=90) + lda #$75 ; 117 (spr=69) + stx colpf0 + lda #$16 ; 22 (spr=-26) + nop + lda #$2B ; 43 (spr=-5) + sta colpf0 + lda #$0A ; 10 (spr=-38) + ldx #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + ldx #$92 ; 146 (spr=98) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + ldx #$1B ; 27 (spr=-21) + nop ; filler + cmp byt2; on zero page so 3 cycles +line79 + lda #$31 ; 49 (spr=1) + sta colpf0 + ldx #$29 ; 41 (spr=-7) + lda #$1B ; 27 (spr=-21) + ldx #$F4 ; 244 (spr=196) + ldx #$1A ; 26 (spr=-22) + lda #$86 ; 134 (spr=86) + ldx #$8A ; 138 (spr=90) + stx colpf0 + ldx #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + sta colpf0 + stx colpf1 + ldx #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$8A ; 138 (spr=90) + nop + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7A + lda #$87 ; 135 (spr=87) + sty COLPM3 + sta colpf0 + lda #$2A ; 42 (spr=-6) + ldy #$25 ; 37 (spr=-11) + sty colpf1 + stx colpf1 + ldx #$28 ; 40 (spr=-8) + ldy #$8A ; 138 (spr=90) + sta COLBAK + stx colpf1 + sty colpf2 + sta HPOSP2 + ldx #$0A ; 10 (spr=-38) + stx colpf1 + lda #$1E ; 30 (spr=-18) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7B + lda #$24 ; 36 (spr=-12) + ldx #$04 ; 4 (spr=-44) + ldy #$0A ; 10 (spr=-38) + nop + sty COLPM2 + sta colpf1 + lda #$00 ; 0 (spr=-48) + stx colpf1 + ldx #$06 ; 6 (spr=-42) + sty colpf1 + stx colpf1 + ldx #$2F ; 47 (spr=-1) + nop + stx colpf1 + sty colpf1 + lda #$2A ; 42 (spr=-6) + ldx #$2A ; 42 (spr=-6) + ldx #$E1 ; 225 (spr=177) + lda #$1E ; 30 (spr=-18) + nop ; filler + cmp byt2; on zero page so 3 cycles +line7C + stx colpf1 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + lda #$04 ; 4 (spr=-44) + lda #$29 ; 41 (spr=-7) + ldx #$28 ; 40 (spr=-8) + lda #$2A ; 42 (spr=-6) + sty colpf1 + sta COLBAK + stx colpf1 + nop + lda #$1E ; 30 (spr=-18) + sta colpf1 + sty colpf1 + lda #$2A ; 42 (spr=-6) + lda #$F5 ; 245 (spr=197) + ldx #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7D + stx colpf1 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + lda #$04 ; 4 (spr=-44) + lda #$29 ; 41 (spr=-7) + ldx #$28 ; 40 (spr=-8) + lda #$2A ; 42 (spr=-6) + sty colpf1 + sta COLBAK + stx colpf1 + nop + lda #$1E ; 30 (spr=-18) + sta colpf1 + sty colpf1 + lda #$2A ; 42 (spr=-6) + lda #$F5 ; 245 (spr=197) + ldx #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line7E + stx colpf1 + ldx #$F0 ; 240 (spr=192) + ldx #$05 ; 5 (spr=-43) + stx COLBAK + lda #$2B ; 43 (spr=-5) + sta COLBAK + lda #$29 ; 41 (spr=-7) + stx colpf1 + sty colpf1 + ldy #$06 ; 6 (spr=-42) + nop + nop + nop + sta colpf1 + nop + lda #$06 ; 6 (spr=-42) + ldy #$2A ; 42 (spr=-6) + lda #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + lda #$2A ; 42 (spr=-6) + nop ; filler + cmp byt2; on zero page so 3 cycles +line7F + lda #$26 ; 38 (spr=-10) + sta colpf1 + nop + stx COLBAK + sty COLBAK + ldy #$0A ; 10 (spr=-38) + stx colpf1 + ldx #$28 ; 40 (spr=-8) + sty colpf1 + lda #$0C ; 12 (spr=-36) + stx colpf1 + nop + lda #$4C ; 76 (spr=28) + nop + sta HPOSP1 + sta HPOSP3 + lda #$00 ; 0 (spr=-48) + lda #$2B ; 43 (spr=-5) + nop ; filler + cmp byt2; on zero page so 3 cycles +line80 + stx COLPM2 + lda #$06 ; 6 (spr=-42) + ldx #$27 ; 39 (spr=-9) + sty COLPM2 + stx colpf1 + ldx #$28 ; 40 (spr=-8) + sty colpf1 + sta colpf0 + stx colpf2 + ldy #$8A ; 138 (spr=90) + lda #$E0 ; 224 (spr=176) + ldx #$86 ; 134 (spr=86) + sta colpf0 + stx COLPM1 + lda #$D2 ; 210 (spr=162) + lda #$26 ; 38 (spr=-10) + nop + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +line81 + stx colpf2 + sta colpf2 + ldx #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sty colpf1 + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + sta colpf2 + lda #$36 ; 54 (spr=6) + nop + ldy #$8A ; 138 (spr=90) + sta colpf0 + ldx #$27 ; 39 (spr=-9) + lda #$E0 ; 224 (spr=176) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line82 + stx colpf0 + sta colpf0 + ldx #$28 ; 40 (spr=-8) + lda #$0A ; 10 (spr=-38) + sty colpf1 + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + ldy #$28 ; 40 (spr=-8) + sta colpf2 + lda #$1A ; 26 (spr=-22) + sta colpf2 + ldy #$8A ; 138 (spr=90) + lda #$26 ; 38 (spr=-10) + ldy #$8A ; 138 (spr=90) + ldy #$8A ; 138 (spr=90) + nop ; filler + cmp byt2; on zero page so 3 cycles +line83 + stx colpf1 + sta colpf0 + sty colpf1 + lda #$0A ; 10 (spr=-38) + ldy #$05 ; 5 (spr=-43) + sty colpf2 + sta colpf0 + stx colpf1 + lda #$26 ; 38 (spr=-10) + sta colpf2 + ldy #$8A ; 138 (spr=90) + lda #$2A ; 42 (spr=-6) + lda #$92 ; 146 (spr=98) + lda #$2A ; 42 (spr=-6) + lda #$F0 ; 240 (spr=192) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line84 + stx colpf1 + sta colpf0 + sty colpf1 + lda #$0A ; 10 (spr=-38) + ldy #$05 ; 5 (spr=-43) + nop + sty colpf2 + sta colpf0 + stx colpf1 + lda #$00 ; 0 (spr=-48) + lda #$26 ; 38 (spr=-10) + sta colpf1 + stx colpf0 + lda #$28 ; 40 (spr=-8) + ldx #$98 ; 152 (spr=104) + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line85 + lda #$26 ; 38 (spr=-10) + sta colpf0 + ldx #$8A ; 138 (spr=90) + stx colpf1 + lda #$26 ; 38 (spr=-10) + ldx #$98 ; 152 (spr=104) + lda #$0A ; 10 (spr=-38) + ldx #$2B ; 43 (spr=-5) + sta COLBAK + stx colpf1 + ldy #$86 ; 134 (spr=86) + nop + lda #$2A ; 42 (spr=-6) + ldx #$2A ; 42 (spr=-6) + lda #$28 ; 40 (spr=-8) + sta COLBAK + ldx #$8A ; 138 (spr=90) + lda #$90 ; 144 (spr=96) + stx COLPM1 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line86 + ldx #$20 ; 32 (spr=-16) + ldx #$12 ; 18 (spr=-30) + stx colpf1 + lda #$D0 ; 208 (spr=160) + sta COLBAK + ldx #$2A ; 42 (spr=-6) + ldx #$2B ; 43 (spr=-5) + sty colpf1 + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta COLBAK + lda #$28 ; 40 (spr=-8) + ldx #$04 ; 4 (spr=-44) + sta colpf2 + nop + ldx #$26 ; 38 (spr=-10) + lda #$28 ; 40 (spr=-8) + ldy #$04 ; 4 (spr=-44) + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line87 + ldx #$86 ; 134 (spr=86) + lda #$0A ; 10 (spr=-38) + stx colpf1 + sta COLBAK + nop + ldx #$2A ; 42 (spr=-6) + ldy #$90 ; 144 (spr=96) + ldx #$2B ; 43 (spr=-5) + sty colpf1 + stx colpf1 + ldy #$04 ; 4 (spr=-44) + lda #$28 ; 40 (spr=-8) + ldx #$04 ; 4 (spr=-44) + sta colpf2 + nop + sta COLBAK + sty colpf2 + lda #$00 ; 0 (spr=-48) + ldx #$28 ; 40 (spr=-8) + nop ; filler + cmp byt2; on zero page so 3 cycles +line88 + ldx #$86 ; 134 (spr=86) + ldy #$26 ; 38 (spr=-10) + stx colpf1 + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldy #$D0 ; 208 (spr=160) + nop + ldx #$2B ; 43 (spr=-5) + sty colpf1 + lda #$88 ; 136 (spr=88) + stx colpf1 + sta COLPM1 + lda #$28 ; 40 (spr=-8) + sta colpf2 + ldx #$04 ; 4 (spr=-44) + nop + stx COLBAK + nop + ldy #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line89 + ldx #$00 ; 0 (spr=-48) + ldy #$26 ; 38 (spr=-10) + nop + lda #$91 ; 145 (spr=97) + ldy #$00 ; 0 (spr=-48) + ldx #$FF ; 255 (spr=207) + sta colpf2 + ldx #$0A ; 10 (spr=-38) + lda #$2C ; 44 (spr=-4) + ldy #$0A ; 10 (spr=-38) + ldx #$00 ; 0 (spr=-48) + sty colpf2 + ldy #$29 ; 41 (spr=-7) + nop + sty COLBAK + ldx #$84 ; 132 (spr=84) + stx COLPM1 + sta colpf2 + ldy #$04 ; 4 (spr=-44) + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8A + ldx #$0A ; 10 (spr=-38) + nop + sty colpf2 + lda #$F1 ; 241 (spr=193) + nop + sta COLBAK + lda #$AF ; 175 (spr=127) + ldy #$04 ; 4 (spr=-44) + ldy #$0A ; 10 (spr=-38) + ldx #$02 ; 2 (spr=-46) + sty COLBAK + lda #$09 ; 9 (spr=-39) + ldx #$29 ; 41 (spr=-7) + ldy #$2C ; 44 (spr=-4) + stx colpf2 + sty COLBAK + ldy #$1A ; 26 (spr=-22) + lda #$E1 ; 225 (spr=177) + nop + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8B + sta colpf0 + lda #$0A ; 10 (spr=-38) + ldy #$04 ; 4 (spr=-44) + sty colpf2 + ldx #$38 ; 56 (spr=8) + nop + sta COLBAK + ldy #$26 ; 38 (spr=-10) + lda #$FA ; 250 (spr=202) + ldx #$2A ; 42 (spr=-6) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$27 ; 39 (spr=-9) + sta COLBAK + lda #$F2 ; 242 (spr=194) + ldy #$F4 ; 244 (spr=196) + ldx #$28 ; 40 (spr=-8) + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line8C + ldx #$06 ; 6 (spr=-42) + ldy #$04 ; 4 (spr=-44) + stx colpf2 + ldx #$0A ; 10 (spr=-38) + sta colpf0 + ldx #$2A ; 42 (spr=-6) + sty colpf2 + nop + lda #$0A ; 10 (spr=-38) + sta COLBAK + lda #$26 ; 38 (spr=-10) + ldy #$0A ; 10 (spr=-38) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sta COLBAK + sty colpf2 + lda #$0A ; 10 (spr=-38) + ldx #$04 ; 4 (spr=-44) + lda #$03 ; 3 (spr=-45) + nop ; filler + cmp byt2; on zero page so 3 cycles +line8D + sta COLBAK + stx colpf2 + ldx #$0A ; 10 (spr=-38) + sta COLPM1 + lda #$25 ; 37 (spr=-11) + sta colpf0 + ldx #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + sta COLBAK + lda #$27 ; 39 (spr=-9) + ldy #$0A ; 10 (spr=-38) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sta colpf2 + sty colpf2 + ldy #$2C ; 44 (spr=-4) + lda #$12 ; 18 (spr=-30) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line8E + sta colpf0 + lda #$00 ; 0 (spr=-48) + lda #$00 ; 0 (spr=-48) + ldy #$04 ; 4 (spr=-44) + sty colpf2 + ldx #$04 ; 4 (spr=-44) + ldy #$24 ; 36 (spr=-12) + ldx #$28 ; 40 (spr=-8) + ldx #$2A ; 42 (spr=-6) + sty colpf0 + stx colpf0 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$27 ; 39 (spr=-9) + sta COLBAK + lda #$11 ; 17 (spr=-31) + nop + lda #$25 ; 37 (spr=-11) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +line8F + ldy #$04 ; 4 (spr=-44) + lda #$2C ; 44 (spr=-4) + lda #$E0 ; 224 (spr=176) + sta colpf0 + lda #$25 ; 37 (spr=-11) + nop + sta COLPM1 + sty colpf2 + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldx #$2A ; 42 (spr=-6) + stx colpf0 + ldy #$2C ; 44 (spr=-4) + lda #$26 ; 38 (spr=-10) + sta colpf2 + sty colpf2 + ldx #$04 ; 4 (spr=-44) + ldy #$2C ; 44 (spr=-4) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line90 + sta colpf0 + lda #$27 ; 39 (spr=-9) + ldy #$E1 ; 225 (spr=177) + stx colpf1 + sty colpf2 + ldy #$04 ; 4 (spr=-44) + ldx #$0A ; 10 (spr=-38) + nop + ldx #$29 ; 41 (spr=-7) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + lda #$10 ; 16 (spr=-32) + ldy #$2B ; 43 (spr=-5) + sty colpf2 + stx COLBAK + ldy #$2C ; 44 (spr=-4) + sty colpf2 + ldx #$0A ; 10 (spr=-38) + ldy #$FF ; 255 (spr=207) + nop ; filler + cmp byt2; on zero page so 3 cycles +line91 + lda #$06 ; 6 (spr=-42) + lda #$27 ; 39 (spr=-9) + ldy #$E0 ; 224 (spr=176) + lda #$06 ; 6 (spr=-42) + ldx #$0A ; 10 (spr=-38) + ldx #$0B ; 11 (spr=-37) + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldy #$06 ; 6 (spr=-42) + lda #$00 ; 0 (spr=-48) + stx COLBAK + sty colpf2 + ldy #$2B ; 43 (spr=-5) + ldx #$06 ; 6 (spr=-42) + sty colpf1 + lda #$30 ; 48 (spr=0) + ldy #$2C ; 44 (spr=-4) + sty colpf2 + ldy #$29 ; 41 (spr=-7) + ldy #$00 ; 0 (spr=-48) + ldy #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line92 + ldy #$29 ; 41 (spr=-7) + lda #$3C ; 60 (spr=12) + ldy #$E0 ; 224 (spr=176) + stx colpf1 + sty colpf2 + ldy #$05 ; 5 (spr=-43) + ldx #$28 ; 40 (spr=-8) + sta HPOSP1 + lda #$F1 ; 241 (spr=193) + sty colpf2 + ldy #$2B ; 43 (spr=-5) + sty colpf2 + ldy #$00 ; 0 (spr=-48) + ldy #$2C ; 44 (spr=-4) + stx COLBAK + sty COLBAK + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line93 + ldy #$F0 ; 240 (spr=192) + ldy #$04 ; 4 (spr=-44) + sta colpf2 + lda #$0A ; 10 (spr=-38) + lda #$0E ; 14 (spr=-34) + ldx #$00 ; 0 (spr=-48) + ldx #$00 ; 0 (spr=-48) + sta COLBAK + ldx #$2A ; 42 (spr=-6) + lda #$0A ; 10 (spr=-38) + sta COLBAK + sty colpf2 + ldy #$0E ; 14 (spr=-34) + stx colpf1 + ldx #$2C ; 44 (spr=-4) + stx COLBAK + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line94 + ldx #$E2 ; 226 (spr=178) + stx COLPM1 + ldx #$06 ; 6 (spr=-42) + stx colpf1 + sta COLBAK + sty colpf1 + ldy #$00 ; 0 (spr=-48) + nop + ldy #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + lda #$00 ; 0 (spr=-48) + ldx #$27 ; 39 (spr=-9) + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line95 + ldy #$0E ; 14 (spr=-34) + lda #$04 ; 4 (spr=-44) + stx colpf2 + sta colpf0 + nop + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldx #$06 ; 6 (spr=-42) + sty colpf2 + stx colpf2 + lda #$27 ; 39 (spr=-9) + ldx #$00 ; 0 (spr=-48) + nop + sta colpf0 + ldx #$2C ; 44 (spr=-4) + stx colpf2 + sty colpf1 + lda #$00 ; 0 (spr=-48) + nop ; filler + cmp byt2; on zero page so 3 cycles +line96 + lda #$04 ; 4 (spr=-44) + sta colpf0 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + lda #$0B ; 11 (spr=-37) + sta COLBAK + lda #$2A ; 42 (spr=-6) + stx colpf1 + sta colpf0 + lda #$26 ; 38 (spr=-10) + ldx #$2C ; 44 (spr=-4) + sta COLBAK + stx colpf2 + ldx #$D0 ; 208 (spr=160) + lda #$04 ; 4 (spr=-44) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line97 + sta colpf0 + sty colpf2 + stx colpf1 + lda #$0B ; 11 (spr=-37) + ldx #$00 ; 0 (spr=-48) + sta colpf2 + ldx #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + sty colpf1 + stx colpf1 + sta colpf0 + lda #$28 ; 40 (spr=-8) + sta colpf2 + ldx #$24 ; 36 (spr=-12) + lda #$1A ; 26 (spr=-22) + lda #$04 ; 4 (spr=-44) + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +line98 + sta colpf0 + sty colpf2 + ldy #$06 ; 6 (spr=-42) + stx colpf1 + lda #$0B ; 11 (spr=-37) + sta colpf2 + sty colpf1 + lda #$2A ; 42 (spr=-6) + ldx #$2C ; 44 (spr=-4) + nop + sta colpf0 + stx colpf1 + sta colpf2 + ldx #$2A ; 42 (spr=-6) + lda #$04 ; 4 (spr=-44) + lda #$04 ; 4 (spr=-44) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +line99 + sty colpf2 + ldx #$0D ; 13 (spr=-35) + sta colpf0 + stx colpf1 + ldx #$2C ; 44 (spr=-4) + lda #$0A ; 10 (spr=-38) + sta COLBAK + ldy #$02 ; 2 (spr=-46) + lda #$29 ; 41 (spr=-7) + stx colpf1 + ldx #$2A ; 42 (spr=-6) + sta colpf2 + stx colpf0 + ldy #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$06 ; 6 (spr=-42) + sty colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +line9A + lda #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$04 ; 4 (spr=-44) + lda #$24 ; 36 (spr=-12) + sta colpf1 + ldx #$2C ; 44 (spr=-4) + lda #$0E ; 14 (spr=-34) + sta colpf1 + ldy #$03 ; 3 (spr=-45) + stx colpf1 + ldy #$2A ; 42 (spr=-6) + sty colpf0 + ldy #$04 ; 4 (spr=-44) + lda #$26 ; 38 (spr=-10) + ldy #$03 ; 3 (spr=-45) + sta colpf0 + sta colpf0 + ldy #$03 ; 3 (spr=-45) + ldy #$2A ; 42 (spr=-6) + nop ; filler + cmp byt2; on zero page so 3 cycles +line9B + lda #$04 ; 4 (spr=-44) + ldy #$2C ; 44 (spr=-4) + sta colpf0 + lda #$24 ; 36 (spr=-12) + nop + sta colpf1 + lda #$0E ; 14 (spr=-34) + sta colpf1 + ldy #$03 ; 3 (spr=-45) + stx colpf1 + ldy #$29 ; 41 (spr=-7) + sty colpf0 + ldy #$04 ; 4 (spr=-44) + ldy #$2A ; 42 (spr=-6) + sty colpf0 + ldy #$03 ; 3 (spr=-45) + sta HPOSP2 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9C + sta colpf1 + sta colpf0 + ldy #$2A ; 42 (spr=-6) + lda #$04 ; 4 (spr=-44) + sta colpf1 + lda #$02 ; 2 (spr=-46) + stx HPOSP1 + sta colpf0 + sty colpf0 + ldy #$05 ; 5 (spr=-43) + stx colpf1 + ldy #$04 ; 4 (spr=-44) + lda #$24 ; 36 (spr=-12) + sta HPOSP2 + ldy #$04 ; 4 (spr=-44) + stx colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9D + stx HPOSP2 + ldx #$0A ; 10 (spr=-38) + sta colpf0 + lda #$06 ; 6 (spr=-42) + sty COLPM1 + ldy #$04 ; 4 (spr=-44) + sty colpf0 + ldy #$2A ; 42 (spr=-6) + ldx #$18 ; 24 (spr=-24) + stx colpf0 + sty colpf2 + nop + ldx #$07 ; 7 (spr=-41) + sta COLPM1 + nop + ldx #$02 ; 2 (spr=-46) + lda #$04 ; 4 (spr=-44) + lda #$24 ; 36 (spr=-12) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +line9E + sta colpf1 + lda #$04 ; 4 (spr=-44) + sta colpf0 + ldy #$0A ; 10 (spr=-38) + lda #$04 ; 4 (spr=-44) + lda #$34 ; 52 (spr=4) + nop + sty colpf1 + stx colpf1 + ldx #$2C ; 44 (spr=-4) + ldx #$2C ; 44 (spr=-4) + stx colpf1 + sty colpf2 + ldy #$2C ; 44 (spr=-4) + ldx #$10 ; 16 (spr=-32) + ldy #$2A ; 42 (spr=-6) + sta COLPM1 + sta colpf0 + nop ; filler + cmp byt2; on zero page so 3 cycles +line9F + lda #$04 ; 4 (spr=-44) + lda #$05 ; 5 (spr=-43) + sta colpf0 + ldx #$06 ; 6 (spr=-42) + ldy #$2C ; 44 (spr=-4) + stx colpf1 + ldy #$8A ; 138 (spr=90) + ldy #$2A ; 42 (spr=-6) + lda #$1C ; 28 (spr=-20) + ldx #$2C ; 44 (spr=-4) + sty colpf2 + stx colpf1 + sta colpf0 + ldx #$04 ; 4 (spr=-44) + lda #$07 ; 7 (spr=-41) + sta colpf2 + lda #$E3 ; 227 (spr=179) + sta colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA0 + stx colpf1 + lda #$2A ; 42 (spr=-6) + ldy #$3C ; 60 (spr=12) + lda #$13 ; 19 (spr=-29) + lda #$F7 ; 247 (spr=199) + lda #$90 ; 144 (spr=96) + ldx #$2C ; 44 (spr=-4) + sta colpf0 + ldy #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + lda #$E2 ; 226 (spr=178) + sta COLPM1 + ldx #$04 ; 4 (spr=-44) + ldy #$04 ; 4 (spr=-44) + lda #$06 ; 6 (spr=-42) + sta colpf0 + nop + nop + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA1 + sta colpf1 + ldy #$F6 ; 246 (spr=198) + lda #$06 ; 6 (spr=-42) + stx colpf0 + ldx #$D0 ; 208 (spr=160) + lda #$2C ; 44 (spr=-4) + lda #$06 ; 6 (spr=-42) + sta COLPM1 + stx colpf1 + ldx #$29 ; 41 (spr=-7) + stx HPOSP2 + ldx #$2C ; 44 (spr=-4) + stx COLBAK + ldx #$2B ; 43 (spr=-5) + ldy #$18 ; 24 (spr=-24) + lda #$00 ; 0 (spr=-48) + lda #$2A ; 42 (spr=-6) + ldy #$08 ; 8 (spr=-40) + nop + lda #$14 ; 20 (spr=-28) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA2 + ldx #$2A ; 42 (spr=-6) + stx HPOSP2 + lda #$A0 ; 160 (spr=112) + sty colpf2 + lda #$F4 ; 244 (spr=196) + ldy #$06 ; 6 (spr=-42) + sty colpf2 + ldy #$00 ; 0 (spr=-48) + stx colpf2 + stx HPOSP1 + ldx #$2A ; 42 (spr=-6) + lda #$00 ; 0 (spr=-48) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA3 + stx HPOSP2 + ldy #$0A ; 10 (spr=-38) + lda #$00 ; 0 (spr=-48) + ldy #$02 ; 2 (spr=-46) + stx HPOSP1 + sta colpf2 + sty colpf2 + ldx #$2B ; 43 (spr=-5) + stx colpf2 + ldy #$08 ; 8 (spr=-40) + ldx #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + lda #$34 ; 52 (spr=4) + sty colpf1 + stx HPOSP1 + ldy #$F8 ; 248 (spr=200) + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA4 + lda #$16 ; 22 (spr=-26) + ldx #$2B ; 43 (spr=-5) + ldx #$2A ; 42 (spr=-6) + ldy #$3A ; 58 (spr=10) + lda #$34 ; 52 (spr=4) + ldy #$2E ; 46 (spr=-2) + ldy #$E0 ; 224 (spr=176) + ldx #$91 ; 145 (spr=97) + sta colpf1 + stx colpf1 + sty colpf1 + lda #$06 ; 6 (spr=-42) + ldy #$2A ; 42 (spr=-6) + stx colpf1 + nop + sty COLPM0 + ldx #$2C ; 44 (spr=-4) + ldx #$1A ; 26 (spr=-22) + ldx #$F3 ; 243 (spr=195) + ldy #$3B ; 59 (spr=11) + ldx #$2A ; 42 (spr=-6) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA5 + ldx #$1B ; 27 (spr=-21) + ldy #$08 ; 8 (spr=-40) + sty colpf2 + ldy #$FA ; 250 (spr=202) + ldx #$2A ; 42 (spr=-6) + sta COLPM1 + ldy #$12 ; 18 (spr=-30) + sty colpf2 + ldy #$2C ; 44 (spr=-4) + stx colpf2 + ldy #$2C ; 44 (spr=-4) + nop + ldy #$04 ; 4 (spr=-44) + ldy #$39 ; 57 (spr=9) + ldy #$3C ; 60 (spr=12) + stx COLPM0 + ldy #$3C ; 60 (spr=12) + ldx #$0A ; 10 (spr=-38) + ldx #$F3 ; 243 (spr=195) + stx colpf1 + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA6 + ldx #$06 ; 6 (spr=-42) + ldx #$2A ; 42 (spr=-6) + ldy #$08 ; 8 (spr=-40) + sty colpf2 + ldy #$0A ; 10 (spr=-38) + sta COLPM0 + ldy #$02 ; 2 (spr=-46) + sty colpf2 + ldx #$2A ; 42 (spr=-6) + stx colpf2 + ldx #$0A ; 10 (spr=-38) + ldy #$04 ; 4 (spr=-44) + ldy #$3C ; 60 (spr=12) + ldy #$2C ; 44 (spr=-4) + stx HPOSP0 + ldy #$39 ; 57 (spr=9) + ldy #$3B ; 59 (spr=11) + sta COLPM0 + ldx #$2A ; 42 (spr=-6) + nop + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA7 + sty HPOSP1 + ldy #$05 ; 5 (spr=-43) + lda #$0B ; 11 (spr=-37) + sta COLPM0 + nop + lda #$E0 ; 224 (spr=176) + ldx #$24 ; 36 (spr=-12) + ldy #$F5 ; 245 (spr=197) + sta colpf1 + lda #$30 ; 48 (spr=0) + sta HPOSP1 + lda #$1A ; 26 (spr=-22) + stx HPOSP0 + stx colpf1 + ldx #$2B ; 43 (spr=-5) + nop + ldx #$3C ; 60 (spr=12) + lda #$E0 ; 224 (spr=176) + sta COLBAK + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA8 + ldx #$2A ; 42 (spr=-6) + nop + lda #$06 ; 6 (spr=-42) + ldy #$2C ; 44 (spr=-4) + nop + lda #$02 ; 2 (spr=-46) + sta colpf2 + ldx #$04 ; 4 (spr=-44) + stx HPOSP1 + lda #$2A ; 42 (spr=-6) + sta colpf0 + stx HPOSP1 + lda #$28 ; 40 (spr=-8) + sty colpf2 + sta COLBAK + ldy #$2C ; 44 (spr=-4) + lda #$06 ; 6 (spr=-42) + nop + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineA9 + stx colpf2 + sta colpf0 + ldy #$29 ; 41 (spr=-7) + ldy #$02 ; 2 (spr=-46) + stx COLPM1 + ldx #$2C ; 44 (spr=-4) + lda #$2B ; 43 (spr=-5) + sty colpf1 + sta COLBAK + stx colpf2 + ldy #$3A ; 58 (spr=10) + lda #$E0 ; 224 (spr=176) + sty HPOSP0 + sta colpf1 + ldx #$06 ; 6 (spr=-42) + ldx #$04 ; 4 (spr=-44) + ldx #$06 ; 6 (spr=-42) + ldx #$06 ; 6 (spr=-42) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAA + lda #$05 ; 5 (spr=-43) + sta colpf0 + ldx #$06 ; 6 (spr=-42) + stx colpf2 + ldx #$92 ; 146 (spr=98) + lda #$51 ; 81 (spr=33) + sta HPOSP3 + stx colpf2 + nop + nop + ldx #$2D ; 45 (spr=-3) + stx colpf0 + lda #$96 ; 150 (spr=102) + lda #$24 ; 36 (spr=-12) + lda #$2A ; 42 (spr=-6) + ldx #$2C ; 44 (spr=-4) + lda #$06 ; 6 (spr=-42) + sta colpf0 + lda #$F5 ; 245 (spr=197) + lda #$0A ; 10 (spr=-38) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAB + lda #$05 ; 5 (spr=-43) + nop + sta COLPM3 + lda #$1A ; 26 (spr=-22) + ldx #$24 ; 36 (spr=-12) + stx colpf2 + ldx #$92 ; 146 (spr=98) + lda #$05 ; 5 (spr=-43) + stx colpf2 + ldy #$0A ; 10 (spr=-38) + lda #$06 ; 6 (spr=-42) + nop + ldx #$2D ; 45 (spr=-3) + stx colpf0 + ldy #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$3C ; 60 (spr=12) + sta colpf0 + lda #$05 ; 5 (spr=-43) + lda #$05 ; 5 (spr=-43) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAC + lda #$05 ; 5 (spr=-43) + lda #$1A ; 26 (spr=-22) + ldx #$12 ; 18 (spr=-30) + ldx #$34 ; 52 (spr=4) + sty COLPM2 + stx colpf2 + ldx #$28 ; 40 (spr=-8) + lda #$05 ; 5 (spr=-43) + ldy #$2E ; 46 (spr=-2) + stx colpf0 + lda #$0A ; 10 (spr=-38) + sty colpf2 + ldx #$2D ; 45 (spr=-3) + stx colpf0 + ldy #$12 ; 18 (spr=-30) + ldy #$34 ; 52 (spr=4) + lda #$06 ; 6 (spr=-42) + ldx #$2C ; 44 (spr=-4) + sta colpf0 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAD + sta colpf0 + ldx #$28 ; 40 (spr=-8) + stx colpf2 + sta colpf0 + sty colpf2 + sty colpf2 + stx colpf2 + lda #$2A ; 42 (spr=-6) + sta COLBAK + ldx #$2C ; 44 (spr=-4) + stx HPOSP2 + stx colpf2 + lda #$06 ; 6 (spr=-42) + ldy #$F2 ; 242 (spr=194) + stx colpf2 + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAE + ldx #$28 ; 40 (spr=-8) + sty HPOSP1 + ldy #$25 ; 37 (spr=-11) + stx colpf2 + lda #$06 ; 6 (spr=-42) + sty colpf2 + sta colpf0 + stx colpf2 + sty HPOSP1 + ldy #$F2 ; 242 (spr=194) + sta colpf0 + sty colpf2 + lda #$1A ; 26 (spr=-22) + lda #$1A ; 26 (spr=-22) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineAF + lda #$39 ; 57 (spr=9) + stx COLPM1 + sty HPOSP1 + nop + sty colpf2 + lda #$17 ; 23 (spr=-25) + ldy #$23 ; 35 (spr=-13) + stx colpf2 + ldx #$48 ; 72 (spr=24) + stx HPOSP3 + sta colpf2 + ldy #$2A ; 42 (spr=-6) + ldx #$0E ; 14 (spr=-34) + sty HPOSP1 + ldy #$2A ; 42 (spr=-6) + ldx #$28 ; 40 (spr=-8) + nop + sta colpf2 + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB0 + lda #$0A ; 10 (spr=-38) + sty HPOSP2 + sty colpf2 + ldy #$24 ; 36 (spr=-12) + sty colpf2 + lda #$07 ; 7 (spr=-41) + nop + stx colpf0 + nop + ldx #$48 ; 72 (spr=24) + stx COLPM1 + sta colpf2 + lda #$1A ; 26 (spr=-22) + stx HPOSP1 + ldy #$29 ; 41 (spr=-7) + nop + ldx #$28 ; 40 (spr=-8) + ldx #$FE ; 254 (spr=206) + ldy #$F2 ; 242 (spr=194) + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB1 + nop + lda #$2A ; 42 (spr=-6) + ldx #$2E ; 46 (spr=-2) + ldx #$94 ; 148 (spr=100) + stx COLPM1 + ldx #$09 ; 9 (spr=-39) + lda #$28 ; 40 (spr=-8) + ldx #$15 ; 21 (spr=-27) + lda #$2F ; 47 (spr=-1) + stx colpf2 + sta colpf0 + lda #$2A ; 42 (spr=-6) + nop + sty colpf0 + ldx #$0E ; 14 (spr=-34) + lda #$06 ; 6 (spr=-42) + nop + sta colpf2 + ldy #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB2 + lda #$06 ; 6 (spr=-42) + sta COLPM3 + sty colpf2 + lda #$29 ; 41 (spr=-7) + ldy #$2A ; 42 (spr=-6) + sta colpf2 + nop + lda #$2C ; 44 (spr=-4) + stx colpf0 + sta colpf2 + ldy #$08 ; 8 (spr=-40) + ldy #$2A ; 42 (spr=-6) + ldx #$28 ; 40 (spr=-8) + ldy #$2A ; 42 (spr=-6) + lda #$1B ; 27 (spr=-21) + nop + lda #$2F ; 47 (spr=-1) + lda #$06 ; 6 (spr=-42) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB3 + stx colpf2 + ldy #$0E ; 14 (spr=-34) + lda #$06 ; 6 (spr=-42) + lda #$06 ; 6 (spr=-42) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sty COLBAK + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + ldy #$2B ; 43 (spr=-5) + sta colpf2 + sta COLBAK + stx colpf1 + lda #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + ldx #$29 ; 41 (spr=-7) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB4 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + lda #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2E ; 46 (spr=-2) + sta colpf1 + ldy #$0F ; 15 (spr=-33) + ldy #$0E ; 14 (spr=-34) + sta COLBAK + stx colpf1 + ldy #$0E ; 14 (spr=-34) + lda #$29 ; 41 (spr=-7) + ldy #$2A ; 42 (spr=-6) + ldy #$0E ; 14 (spr=-34) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB5 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + lda #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + ldy #$2A ; 42 (spr=-6) + stx colpf1 + ldy #$0E ; 14 (spr=-34) + lda #$2A ; 42 (spr=-6) + ldy #$0E ; 14 (spr=-34) + ldy #$0E ; 14 (spr=-34) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB6 + stx HPOSP1 + ldy #$0E ; 14 (spr=-34) + lda #$08 ; 8 (spr=-40) + sta colpf0 + lda #$06 ; 6 (spr=-42) + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta colpf0 + lda #$2C ; 44 (spr=-4) + sta colpf1 + ldy #$2A ; 42 (spr=-6) + sta COLBAK + stx colpf1 + ldy #$0E ; 14 (spr=-34) + lda #$2A ; 42 (spr=-6) + ldy #$0E ; 14 (spr=-34) + ldy #$0E ; 14 (spr=-34) + ldy #$0B ; 11 (spr=-37) + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB7 + stx HPOSP1 + ldy #$1E ; 30 (spr=-18) + lda #$06 ; 6 (spr=-42) + sta colpf0 + lda #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + sty COLPM2 + sta colpf0 + lda #$2C ; 44 (spr=-4) + sty colpf1 + stx colpf1 + lda #$2A ; 42 (spr=-6) + ldy #$0B ; 11 (spr=-37) + ldx #$37 ; 55 (spr=7) + sty COLPM1 + stx HPOSP1 + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB8 + lda #$2A ; 42 (spr=-6) + ldx #$0A ; 10 (spr=-38) + lda #$28 ; 40 (spr=-8) + ldx #$1E ; 30 (spr=-18) + sty COLPM2 + ldx #$09 ; 9 (spr=-39) + stx COLPM1 + stx HPOSP0 + ldx #$2E ; 46 (spr=-2) + stx colpf1 + sta colpf1 + sty COLPM1 + stx HPOSP1 + ldx #$37 ; 55 (spr=7) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineB9 + lda #$2A ; 42 (spr=-6) + ldx #$37 ; 55 (spr=7) + lda #$28 ; 40 (spr=-8) + sty COLPM1 + sty COLPM2 + stx HPOSP0 + ldx #$09 ; 9 (spr=-39) + ldx #$2E ; 46 (spr=-2) + stx colpf1 + ldx #$1E ; 30 (spr=-18) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBA + sta colpf1 + ldy #$2A ; 42 (spr=-6) + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + sta HPOSP2 + stx colpf2 + lda #$2A ; 42 (spr=-6) + sty colpf2 + stx colpf1 + sty colpf2 + ldx #$2A ; 42 (spr=-6) + sta colpf0 + ldx #$2A ; 42 (spr=-6) + lda #$D6 ; 214 (spr=166) + ldy #$2F ; 47 (spr=-1) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBB + ldy #$1E ; 30 (spr=-18) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + sta HPOSP3 + stx colpf1 + sty HPOSP3 + sty colpf0 + ldx #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBC + sty colpf2 + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$2A ; 42 (spr=-6) + sty colpf2 + sta HPOSP3 + stx colpf1 + lda #$2A ; 42 (spr=-6) + ldx #$2A ; 42 (spr=-6) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBD + lda #$2C ; 44 (spr=-4) + ldy #$1E ; 30 (spr=-18) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$2C ; 44 (spr=-4) + lda #$2A ; 42 (spr=-6) + sta HPOSP3 + stx colpf1 + sty colpf2 + ldx #$2A ; 42 (spr=-6) + ldx #$1D ; 29 (spr=-19) + sta colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBE + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$1A ; 26 (spr=-22) + sty colpf2 + sta colpf2 + sty colpf2 + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineBF + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + lda #$0E ; 14 (spr=-34) + sta colpf0 + lda #$1A ; 26 (spr=-22) + sty colpf2 + sta colpf2 + sty colpf2 + stx colpf0 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC0 + ldy #$2A ; 42 (spr=-6) + ldx #$0E ; 14 (spr=-34) + lda #$2A ; 42 (spr=-6) + stx colpf0 + ldx #$2C ; 44 (spr=-4) + ldy #$1C ; 28 (spr=-20) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC1 + sta HPOSP2 + lda #$2A ; 42 (spr=-6) + sta colpf2 + ldy #$2C ; 44 (spr=-4) + sty colpf2 + ldx #$2E ; 46 (spr=-2) + sta COLBAK + stx colpf1 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC2 + sta colpf0 + ldy #$2C ; 44 (spr=-4) + stx colpf1 + ldx #$2E ; 46 (spr=-2) + lda #$FE ; 254 (spr=206) + sta COLBAK + lda #$2A ; 42 (spr=-6) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC3 + lda #$2A ; 42 (spr=-6) + sta colpf1 + sty colpf2 + stx colpf1 + lda #$2C ; 44 (spr=-4) + ldy #$2C ; 44 (spr=-4) + sty colpf2 + lda #$2B ; 43 (spr=-5) + ldx #$2A ; 42 (spr=-6) + sta COLBAK + lda #$0E ; 14 (spr=-34) + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC4 + ldy #$1A ; 26 (spr=-22) + sty COLPM2 + sta HPOSP0 + sta COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC5 + ldy #$2C ; 44 (spr=-4) + sta HPOSP0 + sty colpf2 + ldx #$0E ; 14 (spr=-34) + lda #$1E ; 30 (spr=-18) + nop + sta COLBAK + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + stx COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC6 + ldy #$2C ; 44 (spr=-4) + sta HPOSP0 + stx colpf1 + sty colpf2 + lda #$1E ; 30 (spr=-18) + sta COLBAK + lda #$2C ; 44 (spr=-4) + ldy #$2E ; 46 (spr=-2) + stx HPOSP3 + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +lineC7 + stx HPOSP3 + lda #$2A ; 42 (spr=-6) + sta HPOSP0 + lda #$1C ; 28 (spr=-20) + ldy #$2E ; 46 (spr=-2) + sta COLBAK + stx colpf1 + sty COLBAK + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + nop ; filler + cmp byt2; on zero page so 3 cycles +; ---------------------------------- diff --git a/artwork/splash_v3/output.png.rp.h b/artwork/splash_v3/output.png.rp.h new file mode 100644 index 0000000..0766280 --- /dev/null +++ b/artwork/splash_v3/output.png.rp.h @@ -0,0 +1,2 @@ +; Set proper picture height +PIC_HEIGHT = 200 diff --git a/artwork/splash_v3/output.png.rp.ini b/artwork/splash_v3/output.png.rp.ini new file mode 100644 index 0000000..be36785 --- /dev/null +++ b/artwork/splash_v3/output.png.rp.ini @@ -0,0 +1,36 @@ +; ---------------------------------- +; RastaConverter by Ilmenit version Beta20 +; ---------------------------------- + +; Initial values + lda #$DB + sta colpf0 + lda #$61 + sta colpf1 + lda #$D8 + sta colpf2 + lda #$00 + sta COLBAK + lda #$BF + sta COLPM0 + lda #$02 + sta COLPM1 + lda #$C1 + sta COLPM2 + lda #$8E + sta COLPM3 + lda #$2E + sta HPOSP0 + lda #$AC + sta HPOSP1 + lda #$89 + sta HPOSP2 + lda #$4D + sta HPOSP3 + lda #$0 + tax + tay + +; Set proper count of wsyncs + + :2 sta wsync diff --git a/artwork/splash_v3/splash3.asm b/artwork/splash_v3/splash3.asm new file mode 100644 index 0000000..e58aade --- /dev/null +++ b/artwork/splash_v3/splash3.asm @@ -0,0 +1,282 @@ +/***************************************/ +/* Use MADS http://mads.atari8.info/ */ +/* Mode: GED- (bitmap mode) */ +/***************************************/ + + ;icl "no_name.h" + ;icl "output.png.opt.h" + +/* ; --- dmsc LZSS player routine on zero page + org $80 + +chn_copy .ds 9 +chn_pos .ds 9 +bptr .ds 2 +cur_pos .ds 1 +chn_bits .ds 1 + +bit_data .ds 1 +; --- + +fcnt .ds 2 +fadr .ds 2 +fhlp .ds 2 +cloc .ds 1 +regA .ds 1 +regX .ds 1 +regY .ds 1 +byt2 .ds 1 + +zc .ds ZCOLORS + + org $1fff +SplashTypeFlag .ds 1 */ + +* --- MAIN PROGRAM + org $2010 + IFT PIC_HEIGHT>=204 +scr3 ins "output.png.mic", 0, 8160 + :16 .byte 0 + ins "output.png.mic" , +8160 + ELS +scr3 ins "output.png.mic" + EIF + + .ifdef nil_used +nil :8*40 brk + eif + + .ALIGN $0400 +ant3 ANTIC_PROGRAM3 scr3,ant3 + +fnt3 + + ift USESPRITES + .ALIGN $0800 + .ds $0300 +pmg3 SPRITES3 + eif + +FontSplash3 + ins '../../artwork/weapons_AW6_mod.fnt' ; 'artwork/weapons.fnt' + +mother3 +; dta d" The Mother of All Games " + dta d" Unknown Father of All Team Games " + +main3 +.IF CART_VERSION + lda SplashTypeFlag + cmp #100 ; (0 - 100 ; first splash , 101 - 200 ; second splash , 201 - 255 ; KAZ) + bcc not_this + cmp #200 + bcc this_splash2 ; second splash +not_this + rts ; next splash +this_splash2 +.ENDIF + + + jsr init_song + +* --- init PMG + + ift USESPRITES + mva >pmg3 pmbase ;missiles and players data address + mva #$03 GRACTL ;enable players and missiles + eif + + lda:cmp:req $14 ;wait 1 frame + + sei ;stop interrups + mva #$00 nmien ;stop all interrupts + mva #$fe portb ;switch off ROM to get 16k more ram + + ZPINIT + +//////////////////// +// RASTER PROGRAM // +//////////////////// + +; jmp line239 + jmp raster_program_end3 + +LOOP3 lda vcount ;synchronization for the first screen line + cmp #$02 + bne LOOP3 + + mva #%00111110 dmactl ;set new screen width + mva ant dlptr+1 + + icl "output.png.opt.ini" + +;--- wait 18 cycles + jsr _rts3 + inc byt33 + +;--- set global offset (23 cycles) + jsr _rts3 + cmp byt33\ pha:pla + +;--- empty line + jsr wait54cycle3 + inc byt2 + +.local + icl "output.png.opt" +.endl + +raster_program_end3 + + lda >FontSplash3 + sta chbase + sta chbas +c03 lda #$00 + sta colbak +c13 lda #$00 + sta colpf0 +c23 lda #$02 + sta colpf1 +c33 lda #$08 + sta colpf2 +c43 lda #$00 + sta colpf3 +s03 lda #$03 + sta sizep0 + sta sizep1 + sta sizep2 + sta sizep3 + mva #$ff sizem + sta grafm + mva #$20 hposm0 + mva #$28 hposm1 + mva #$d0 hposm2 + mva #$d8 hposm3 + mva #$02 GRACTL + lda #$14 + sta PRIOR + + +//-------------------- +// EXIT +//-------------------- + + lda trig0 ; FIRE #0 + beq stop3 + + lda trig1 ; FIRE #1 + beq stop3 + + lda consol ; START + and #1 + beq stop3 + + lda skctl ; ANY KEY + and #$04 + bne skp3 +stop3 mva #$00 GRACTL ;PMG disabled + tax + sta:rne hposp0,x+ + + ; silent + lda #0 + ldx #8 +@ sta POKEY,x + sta POKEY2,x ; stereo + dex + bpl @- + + ;no glitching please (issue #67) + lda #0 + sta $D400 ;dmactl + sta $022F ;dmactls + + + mva #$ff portb ;ROM switch on + mva #$40 nmien ;only NMI interrupts, DLI disabled + cli ;IRQ enabled + + rts ;return to ... DOS +skp3 + +//-------------------- + jsr play_frame + + jmp LOOP3 + +;--- + +wait54cycle3 + :2 inc byt2 +wait44cycle3 + inc byt33 + nop +wait36cycle3 + inc byt33 + jsr _rts3 +wait18cycle3 + inc byt33 +_rts3 rts + +byt33 brk + +; org $8000 ; fixed address of music routine and data +; icl "../splash_v2/lzss_player.asm" ; player (and data) for splash music + + +;--- + +.MACRO ANTIC_PROGRAM3 + :+8 dta $4e,a(:1+$0000+#*40) + :+8 dta $4e,a(:1+$0140+#*40) + :+8 dta $4e,a(:1+$0280+#*40) + :+8 dta $4e,a(:1+$03C0+#*40) + :+8 dta $4e,a(:1+$0500+#*40) + :+8 dta $4e,a(:1+$0640+#*40) + :+8 dta $4e,a(:1+$0780+#*40) + :+8 dta $4e,a(:1+$08C0+#*40) + :+8 dta $4e,a(:1+$0A00+#*40) + :+8 dta $4e,a(:1+$0B40+#*40) + :+8 dta $4e,a(:1+$0C80+#*40) + :+8 dta $4e,a(:1+$0DC0+#*40) + :+8 dta $4e,a(:1+$0F00+#*40) + :+8 dta $4e,a(:1+$1040+#*40) + :+8 dta $4e,a(:1+$1180+#*40) + :+8 dta $4e,a(:1+$12C0+#*40) + :+8 dta $4e,a(:1+$1400+#*40) + :+8 dta $4e,a(:1+$1540+#*40) + :+8 dta $4e,a(:1+$1680+#*40) + :+8 dta $4e,a(:1+$17C0+#*40) + :+8 dta $4e,a(:1+$1900+#*40) + :+8 dta $4e,a(:1+$1A40+#*40) + :+8 dta $4e,a(:1+$1B80+#*40) + :+8 dta $4e,a(:1+$1CC0+#*40) + :+8 dta $4e,a(:1+$1E00+#*40) +; :+4 dta $4e,a(:1+$1F40+#*40) +; :+4 dta $4e,a(:1+$1FF0+#*40) +; :+8 dta $4e,a(:1+$2090+#*40) +; :+8 dta $4e,a(:1+$21D0+#*40) +; :+8 dta $4e,a(:1+$2310+#*40) +; :+8 dta $4e,a(:1+$2450+#*40) + dta $00 + dta $42,a(mother3) + dta $41,a(:2) +.ENDM + + +;ZCOLORS = 0 + +;--- + ini main3 +;--- + + opt l- + +.MACRO SPRITES3 +.local + icl "output.png.pmg" +.endl +.ENDM + +;USESPRITES = 1 \ No newline at end of file diff --git a/artwork/splash_v3/splash3.xex b/artwork/splash_v3/splash3.xex new file mode 100644 index 0000000..86d3a4f Binary files /dev/null and b/artwork/splash_v3/splash3.xex differ diff --git a/artwork/talk.asm b/artwork/talk.asm index e620fb6..28989d1 100644 --- a/artwork/talk.asm +++ b/artwork/talk.asm @@ -101,23 +101,23 @@ dta d"I LET YOU HIT ME!"^ dta d"SUCKER SHOT!"^ dta d"I DIDN'T WANT TO LIVE ANYWAY."^ - dta d"--"^ + dta d".-SOB-."^ dta d"WAS THAT AS CLOSE AS I THINK IT WAS?"^ dta d"JOIN THE ARMY, SEE THE WORLD THEY SAID."^ dta d"IT WASN'T JUST A JOB, IT WAS AN ADVENTURE!"^ dta d"I DIDN'T LIKE VIOLENCE ANYWAY!"^ dta d"I THOUGHT YOU LIKED ME?"^ - dta d"CTO XYEB"^ + dta d"RUSH B!"^ dta d"I THINK THIS GUY'S A LITTLE CRAZY."^ dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."^ dta d"HEY! KILLIN' AIN'T COOL."^ dta d"GEE... THANKS."^ dta d"I'VE FALLEN AND I CAN'T GET UP!"^ - dta d"911?"^ + dta d"NINE ONE ONE?"^ dta d"OH NO! HERE I BLOW AGAIN!"^ dta d"I'LL BE BACK..."^ dta d"I'VE GOT LAWYERS!"^ - dta d"CALL 1-900-SUE-TANK."^ + dta d"CALL MY LAWYERS!"^ dta d"YOU BIG DUMMY!"^ ;(sanford and son) LEND NumberOfOffensiveTexts=55 diff --git a/artwork/talk_packed.asm b/artwork/talk_packed.asm new file mode 100644 index 0000000..1810ab3 --- /dev/null +++ b/artwork/talk_packed.asm @@ -0,0 +1,174 @@ +; AUTO-GENERATED FILE - DO NOT EDIT +; Generated by talk.asm -> pack_talk5.py +; Source: artwork/talk.asm + +.proc talk +; 5-bit packed talk strings (len + packed bytes) +talk5_alphabet dta d" ABCDEFGHIJKLMNOPQRSTUVWYZ'!,-.?" +talk5_data + dta b($04,$24,$95,$0d) + dta b($10,$a6,$4a,$40,$4a,$a5,$73,$20,$16,$1c,$d9) + dta b($11,$f8,$55,$2d,$0b,$20,$25,$10,$d0,$4a,$a0,$1e) + dta b($0f,$24,$15,$30,$5e,$6b,$a9,$00,$98,$ce,$06) + dta b($08,$36,$0d,$fa,$24,$de) + dta b($11,$24,$15,$0e,$02,$4b,$c5,$81,$79,$93,$2b,$1b) + dta b($08,$e1,$ca,$ba,$f6,$de) + dta b($09,$03,$af,$00,$04,$0b,$14) + dta b($0a,$34,$ac,$02,$28,$4a,$73,$03) + dta b($0e,$25,$50,$d0,$30,$98,$e8,$49,$3a,$37) + dta b($0d,$f8,$55,$2d,$0b,$a0,$2f,$4c,$ba,$01) + dta b($07,$22,$b8,$1c,$d2,$06) + dta b($0a,$0f,$16,$07,$6e,$22,$65,$03) + dta b($09,$28,$00,$14,$00,$0a,$1e) + dta b($07,$03,$05,$79,$ca,$06) + dta b($07,$81,$d2,$30,$d6,$06) + dta b($0f,$24,$15,$0e,$68,$70,$ab,$cf,$51,$db,$06) + dta b($0d,$c9,$01,$fc,$aa,$04,$26,$8c,$b2,$01) + dta b($0c,$34,$ac,$02,$02,$40,$69,$95,$0d) + dta b($0c,$2d,$ac,$02,$1a,$06,$24,$60,$0f) + dta b($0d,$cb,$bd,$b1,$38,$58,$ee,$8d,$e5,$01) + dta b($23,$46,$be,$06,$50,$61,$4c,$4f,$80,$4a,$90,$14,$24,$30,$69,$10) + dta b($20,$50,$40,$51,$29,$de,$7b) + dta b($18,$e4,$01,$fc,$2a,$30,$a5,$30,$c0,$ea,$58,$98,$03,$1a,$dc,$fa) + dta b($12,$f8,$55,$2d,$0b,$78,$95,$d2,$00,$50,$91,$c5,$03) + dta b($11,$37,$50,$3a,$03,$68,$81,$d2,$00,$f0,$ab,$1f) + dta b($16,$46,$96,$92,$0b,$07,$4f,$82,$a4,$19,$03,$13,$bd,$47,$37) + dta b($21,$b7,$80,$f1,$5a,$01,$c9,$01,$58,$c2,$28,$a0,$83,$89,$de,$a3) + dta b($80,$3e,$b0,$12,$63,$1b) + dta b($2a,$09,$b0,$67,$0b,$a0,$a8,$80,$d9,$0a,$63,$e0,$19,$e0,$02,$0c) + dta b($ac,$81,$e4,$00,$45,$05,$b4,$27,$5d,$72,$c7,$03) + dta b($12,$13,$bd,$0b,$e6,$6b,$05,$c8,$32,$61,$19,$d4,$03) + dta b($1e,$aa,$4e,$0a,$2e,$7a,$80,$3c,$80,$5f,$05,$14,$25,$b7,$00,$7e) + dta b($15,$04,$59,$3e) + dta b($0f,$ec,$bd,$05,$5e,$a5,$40,$14,$f6,$ee,$06) + dta b($10,$ec,$bd,$05,$9e,$2d,$12,$50,$54,$64,$f1) + dta b($1f,$a7,$96,$39,$c1,$45,$81,$ea,$09,$c6,$6b,$c9,$1d,$60,$9e,$04) + dta b($24,$39,$57,$e4,$07) + dta b($10,$ad,$48,$89,$c1,$40,$32,$4d,$da,$c2,$f4) + dta b($14,$a8,$c8,$02,$ce,$2b,$13,$b8,$47,$51,$72,$c7,$7b,$0f) + dta b($23,$e4,$39,$4d,$c1,$7d,$52,$62,$0e,$12,$05,$69,$3a,$4d,$41,$00) + dta b($2c,$d9,$02,$e4,$ab,$8e,$78) + dta b($16,$82,$bd,$47,$38,$80,$21,$39,$0e,$6c,$7a,$ac,$b8,$51,$36) + dta b($11,$34,$ac,$02,$28,$4a,$93,$83,$99,$e6,$c4,$1b) + dta b($14,$09,$4c,$14,$18,$03,$86,$05,$4a,$8b,$03,$f8,$d5,$0d) + dta b($1d,$09,$4c,$14,$18,$03,$b3,$85,$89,$00,$7e,$55,$82,$7a,$18,$06) + dta b($34,$b8,$b5,$01) + dta b($1f,$09,$dc,$e7,$48,$91,$e0,$a2,$40,$01,$45,$69,$02,$51,$29,$7d) + dta b($0e,$90,$57,$e6,$07) + dta b($1b,$e4,$39,$4d,$01,$0d,$ab,$00,$8a,$d2,$04,$b0,$c8,$f9,$5c,$60) + dta b($0c,$7b) + dta b($18,$f7,$55,$46,$00,$45,$69,$82,$16,$56,$01,$f8,$55,$d0,$02,$f9) + dta b($24,$09,$d0,$c7,$08,$c0,$af,$02,$fa,$00,$2b,$c1,$16,$d0,$30,$98) + dta b($69,$d2,$22,$41,$60,$cf,$95,$0d) + dta b($1b,$09,$8c,$57,$19,$01,$13,$06,$59,$00,$7e,$95,$03,$51,$29,$b8) + dta b($08,$7f) + dta b($1d,$0d,$03,$f1,$9a,$00,$69,$02,$91,$ce,$29,$12,$50,$14,$1c,$c0) + dta b($af,$ca,$e9,$01) + dta b($16,$e4,$39,$4d,$81,$79,$f2,$14,$0a,$82,$78,$95,$82,$56,$36) + dta b($15,$28,$4c,$1a,$00,$0b,$c0,$a6,$49,$03,$07,$22,$08,$bc,$01) + dta b($1d,$14,$a5,$09,$d2,$04,$f8,$55,$09,$84,$0c,$c9,$81,$e7,$c0,$1c) + dta b($4f,$0e,$e4,$01) + dta b($24,$14,$a5,$09,$e6,$90,$a5,$38,$10,$92,$d3,$14,$88,$74,$40,$71) + dta b($af,$1e,$04,$cc,$93,$a0,$4e,$0f) + dta b($26,$09,$4c,$14,$18,$03,$2f,$31,$d0,$30,$a0,$55,$ca,$42,$c1,$4d) + dta b($14,$01,$fc,$aa,$04,$82,$bd,$47,$3c) + dta b($1a,$49,$37,$70,$9e,$73,$01,$08,$59,$c2,$02,$f8,$55,$09,$4c,$18) + dta b($65,$03) + dta b($18,$2d,$b4,$00,$66,$48,$04,$2c,$f7,$c6,$02,$f8,$55,$f0,$2a,$dd) + dta b($16,$09,$a0,$07,$0b,$c0,$af,$82,$e2,$d4,$c3,$00,$86,$e4,$36) + dta b($24,$e8,$5d,$4d,$00,$7e,$15,$b0,$b4,$0a,$78,$ae,$80,$30,$e4,$9b) + dta b($13,$e0,$57,$25,$60,$09,$ce,$0f) + dta b($24,$30,$48,$9a,$dc,$01,$69,$82,$59,$07,$02,$f3,$96,$42,$c1,$7c) + dta b($52,$be,$eb,$bd,$07,$ee,$d1,$0d) + dta b($04,$f5,$a0,$0d) + dta b($06,$21,$c8,$83,$36) + dta b($09,$21,$84,$73,$10,$42,$1b) + dta b($0c,$49,$37,$d0,$0a,$a3,$c9,$9d,$0d) + dta b($05,$ef,$19,$ef,$01) + dta b($03,$0f,$6d) + dta b($05,$a5,$94,$b5,$01) + dta b($06,$21,$8c,$81,$36) + dta b($1c,$09,$a0,$40,$0b,$48,$14,$5c,$54,$1c,$a0,$28,$50,$80,$02,$84) + dta b($c5,$4d,$0f) + dta b($20,$cf,$15,$80,$12,$05,$23,$38,$20,$6b,$72,$00,$bf,$2a,$c1,$45) + dta b($8f,$15,$40,$02,$f6) + dta b($06,$0f,$01,$f7,$36) + dta b($07,$ee,$51,$d0,$ca,$06) + dta b($05,$af,$0e,$e4,$01) + dta b($11,$0f,$01,$f7,$38,$70,$8f,$82,$70,$42,$72,$1e) + dta b($1b,$c1,$3d,$8a,$8a,$04,$cf,$15,$20,$12,$2d,$13,$50,$54,$00,$a9) + dta b($93,$7a) + dta b($08,$e7,$3d,$22,$70,$f1) + dta b($08,$a8,$30,$08,$5a,$d9) + dta b($16,$26,$c8,$72,$0b,$63,$1c,$0c,$59,$0b,$03,$f7,$49,$46,$3c) + dta b($13,$b2,$b4,$d2,$44,$91,$80,$a2,$02,$02,$0b,$ed,$6d) + dta b($07,$0f,$81,$16,$dc,$06) + dta b($07,$e4,$bd,$7a,$d0,$06) + dta b($12,$ae,$5c,$40,$02,$e6,$c0,$95,$0b,$c4,$6b,$c2,$03) + dta b($20,$14,$a5,$09,$d2,$04,$14,$15,$50,$1c,$e1,$a0,$61,$f0,$1c,$c3) + dta b($c0,$c8,$54,$1c,$f1) + dta b($0b,$b6,$48,$0c,$4c,$75,$0e,$7b) + dta b($12,$14,$15,$60,$02,$05,$2c,$10,$0c,$66,$70,$c7,$03) + dta b($16,$17,$61,$40,$5e,$99,$00,$05,$08,$8b,$03,$f4,$81,$56,$3e) + dta b($0f,$49,$37,$70,$5e,$72,$07,$90,$77,$9d,$07) + dta b($17,$49,$db,$02,$ce,$a3,$20,$00,$11,$08,$30,$a5,$b0,$e4,$8e,$07) + dta b($08,$43,$06,$f8,$58,$f0) + dta b($04,$f0,$dd,$0d) + dta b($04,$22,$99,$0d) + dta b($04,$22,$b4,$0d) + dta b($05,$f9,$b9,$b5,$01) + dta b($1f,$09,$4c,$f4,$2a,$23,$da,$16,$c0,$d2,$a4,$c5,$15,$02,$e8,$03) + dta b($0d,$83,$f6,$9a,$07) + dta b($2a,$09,$dc,$c0,$16,$a0,$48,$be,$7a,$10,$a0,$a8,$00,$1b,$18,$2b) + dta b($18,$3c,$03,$28,$2a,$60,$a2,$40,$de,$f5,$de,$03) + dta b($14,$17,$05,$0a,$6e,$98,$80,$a2,$40,$81,$7b,$69,$96,$0f) + dta b($24,$2d,$b4,$00,$66,$48,$04,$50,$54,$64,$d1,$04,$88,$02,$48,$c0) + dta b($13,$b0,$b4,$0a,$a0,$28,$4d,$0f) + dta b($1e,$89,$ea,$09,$54,$9d,$14,$3c,$57,$c0,$33,$80,$a2,$37,$0b,$20) + dta b($01,$4f,$ef,$3d) + dta b($17,$09,$cc,$52,$40,$00,$42,$a6,$83,$28,$60,$e9,$20,$ea,$bd,$07) + dta b($13,$ed,$b5,$86,$3f,$48,$13,$50,$14,$28,$c0,$af,$7e) + dta b($11,$09,$b0,$42,$01,$7e,$15,$a0,$44,$41,$2b,$1b) + dta b($0c,$b3,$8e,$55,$24,$98,$e8,$d1,$0d) + dta b($1d,$09,$90,$44,$9c,$a6,$e0,$06,$47,$01,$7d,$80,$25,$5b,$40,$70) + dta b($f8,$06,$ec,$01) + dta b($07,$be,$cf,$27,$ba,$07) + dta b($24,$37,$4c,$40,$51,$a0,$20,$4c,$30,$d8,$9b,$05,$84,$09,$12,$a0) + dta b($28,$b9,$05,$12,$05,$37,$cc,$0f) + dta b($27,$ea,$25,$07,$28,$2a,$20,$c8,$86,$39,$98,$a5,$00,$8a,$0a,$b8) + dta b($4f,$32,$02,$28,$2a,$18,$cc,$90,$88,$07) + dta b($2a,$89,$82,$1b,$a6,$d3,$14,$a8,$3a,$29,$08,$40,$3d,$c1,$41,$a2) + dta b($e0,$86,$09,$82,$03,$81,$d8,$e2,$68,$95,$65,$03) + dta b($1e,$09,$90,$44,$9c,$a6,$80,$a5,$55,$80,$4d,$8f,$15,$37,$0a,$08) + dta b($0e,$df,$80,$37) + dta b($17,$09,$50,$f4,$ea,$41,$14,$e0,$57,$01,$4b,$ab,$10,$d0,$ca,$07) + dta b($07,$b2,$4e,$04,$c4,$06) + dta b($22,$09,$50,$94,$dc,$02,$14,$a5,$09,$4e,$c5,$7a,$82,$00,$58,$a2) + dta b($94,$15,$30,$64,$c8,$d8,$03) + dta b($2a,$f3,$b5,$82,$de,$05,$09,$90,$e7,$34,$05,$a6,$14,$06,$58,$5a) + dta b($05,$ac,$c4,$58,$72,$07,$04,$87,$db,$93,$c5,$03) + dta b($18,$a8,$e0,$0d,$56,$62,$2c,$39,$0d,$42,$72,$9a,$82,$f1,$1e,$f3) + dta b($0e,$a7,$14,$ef,$3d,$a0,$28,$b8,$35,$3d) + dta b($1f,$49,$db,$02,$4c,$60,$ac,$38,$10,$1c,$01,$09,$8c,$e0,$34,$05) + dta b($a7,$50,$50,$e1,$06) + dta b($0d,$2e,$b9,$02,$9e,$2b,$e0,$b9,$f2,$01) + dta b($19,$0f,$01,$f7,$36,$40,$45,$16,$90,$80,$60,$ef,$82,$70,$42,$72) + dta b($1b) + dta b($0f,$49,$33,$06,$44,$01,$22,$8c,$e5,$bd,$07) + dta b($11,$49,$db,$02,$ce,$a3,$80,$85,$8b,$8b,$9c,$1b) + dta b($10,$23,$30,$06,$1a,$06,$2c,$5c,$5c,$e4,$dc) + dta b($0e,$f8,$55,$20,$d2,$01,$a4,$b6,$86,$37) +; +; Constants copied from source +LEND +NumberOfOffensiveTexts=55 +NumberOfDeffensiveTexts=62 +NumberOfPropagandaTexts=21 +VeryFunnyText=79 +.endp + +; Tail copied from source (uncompressed) +hoverFull dta d"MY HOVERCRAFT IS FULL OF EELS!"^ +hoverFullEnd +hoverEmpty dta d"RUNNING OUT OF EELS"^ +hoverEmptyEnd diff --git a/constants.asm b/constants.asm index dea4adc..d287527 100644 --- a/constants.asm +++ b/constants.asm @@ -64,13 +64,20 @@ areYouSureText .ELIF TARGET = 5200 dta d"#END? Y-1/N-0#" .ENDIF - lineClear dta d" " +; Additional texts - Teams +Player_Header + dta d"Player" +Team_Header + dta d"A-Team" ; :) + TankColoursTable .BYTE $58,$2a,$96,$ca,$7a,$ed +TankColoursTableT .BYTE $2a,$2a,$7a,$7a,$2a,$7a ; Teams colors ;TankStatusColoursTable .BYTE $54,$24,$92,$c4,$74,$e4 ; standard order TankStatusColoursTable .BYTE $74,$c4,$24,$e4,$54,$94 ; Adam's order +TankStatusColoursTableT .BYTE $24,$74,$24,$74,$24,$74 ; Teams colors ;----------- GradientAddrL .by 0 diff --git a/game.asm b/game.asm index 4901c4c..76316fc 100644 --- a/game.asm +++ b/game.asm @@ -173,9 +173,45 @@ esubstractlose sbc loseH,x sta EarnedMoneyH,x eskipzeroing - dex jpl CalculateGainsLoop + ; Team game calculations + ; set initial values + inx ; now X=0 + txa + inx ; now X=1 +initialTeamsVal + sta ResultsTable+MaxPlayers,x + sta DirectHits+MaxPlayers,x + sta EarnedMoneyH+MaxPlayers,x + sta EarnedMoneyL+MaxPlayers,x + dex + bpl initialTeamsVal + ; and now Team scores calculations + tax ; now X=0 + tay +CalculateTeamsResults + clc + lda ResultsTable+MaxPlayers,y + adc ResultsTable,x + sta ResultsTable+MaxPlayers,y + clc + lda DirectHits+MaxPlayers,y + adc DirectHits,x + sta DirectHits+MaxPlayers,y + clc + lda EarnedMoneyL+MaxPlayers,y + adc EarnedMoneyL,x + sta EarnedMoneyL+MaxPlayers,y + lda EarnedMoneyH+MaxPlayers,y + adc EarnedMoneyH,x + sta EarnedMoneyH+MaxPlayers,y + tya + eor #$01 ; swap team + tay + inx + cpx NumberOfPlayers + bne CalculateTeamsResults rts .endp ;-------------------------------------------------- @@ -290,35 +326,38 @@ NoEnergy bpl CheckingIfRoundIsFinished cpy #2 ; is it less than 2 tanks have energy >0 ? - bcs DoNotFinishTheRound - -;points for the last living tank + bcc FinishTheRound + bit TeamGame + bvc NoTeams + ; Check if one team is not dead + ; check team 1 + ldx NumberOfPlayers + jsr CheckTeamDead + beq FinishTheRound + ; check team 2 + ldx NumberOfPlayers + dex ; for team 2 + jsr CheckTeamDead + beq FinishTheRound +NoTeams + jmp DoNotFinishTheRound +FinishTheRound +;points for the last living tank(s) ldx NumberOfPlayers dex WhichTankWonLoop lda eXistenZ,x - bne ThisOneWon - dex - bpl WhichTankWonLoop - ;error was here!!! - ; somehow I believed program will be never here - ; but it was a bad assumption - ; god knows when there is such a situation - ; (we've got a SITUATION here, if you know what I mean) - ; there are two tanks left. - ; one of them is killed by the second tank - ; second tank explodes and kills the first one. - ; and code lands here... - ; looks like no one won! - rts - -ThisOneWon + beq CheckNext + ; set winning tanks points lda CurrentResult clc adc ResultsTable,x sta ResultsTable,x - - rts ; this Round is finished + inc CurrentResult ; this is for honesty (in Team game) :) +CheckNext + dex + bpl WhichTankWonLoop + rts DoNotFinishTheRound ; Seppuku here @@ -363,6 +402,10 @@ CheckNextTankAD ldx tankNr lda TankStatusColoursTable,x + bit TeamGame + bvc NoTeamColors + lda TankStatusColoursTableT,x +NoTeamColors sta COLOR2 ; set color of status line jsr RandomizeForce.LimitForce jsr PutTankNameOnScreen @@ -559,6 +602,24 @@ NotLastPlayerInRound jmp MainRoundLoop .endp +;--------------------------------- +.proc CheckTeamDead +; Optimalisation procedure +; Counts alive in Team +;--------------------------------- + dex + ldy #0 ; in Y - number of tanks with energy greater than zero +CheckingTeam + lda eXistenZ,x + beq NoEnergy + iny +NoEnergy + dex + dex + bpl CheckingTeam + cpy #0 + rts +.endp ;--------------------------------- .proc PlayerXdeath ; this tank should not explode anymore: @@ -953,6 +1014,11 @@ UsageLoop cpx NumberOfPlayers bcc GetRandomAgainX + ; and "sequence" for teans + ldx #MaxPlayers + stx TankSequence+MaxPlayers+1 ; B-Team + inx + stx TankSequence+MaxPlayers ; A-Team rts .endp ;---------------------------------------------- @@ -1122,8 +1188,28 @@ Bubble ldx #0 ;i=x stx temp2 ; sortflag=temp2 inx ; because NumberOfPlayers start from 1 (not 0) - BubbleBobble + jsr SortOnePass + inx + cpx NumberOfPlayers ; if no team game + bne BubbleBobble + + lda temp2 ; sortflag + bne Bubble + + ; amd Teams sorting + bit TeamGame + bvc NoTeamsSort + ldx #MaxPlayers+1 ;i=x + jsr SortOnePass ; for 2 Teams one pass is sufficient +NoTeamsSort + rts +.endp + +;-------------------------------------------------- +.proc SortOnePass +; optimalisation for 2 sorting procedures +;-------------------------------------------------- ldy TankSequence-1,x ; x count from 1 to NumberOfPlayers (we need cout from 0 to NumberOfPlayers-1) lda ResultsTable,y ldy TankSequence,x @@ -1166,14 +1252,6 @@ swapvalues sta TankSequence,x inc temp2 nextishigher - inx - cpx NumberOfPlayers - bne BubbleBobble - - lda temp2 - - bne Bubble - rts .endp ;-------------------------------------------------- @@ -1328,6 +1406,10 @@ GameOver4x4 sbb ResultY #2 ;next line (was empty) ldx NumberOfPlayers ;we start from the highest (best) tank + bit TeamGame + bvc NoTeamsResults + ldx #MaxPlayers+2 ; set pointer to teams results +NoTeamsResults dex ;and it is the last one stx ResultOfTankNr ;in TankSequence table @@ -1394,7 +1476,10 @@ TankNameCopyLoop jsr TL4x4_empty dec ResultOfTankNr - bmi FinishResultDisplay + bmi FinishResultDisplay ; check for last player + lda ResultOfTankNr + cmp #MaxPlayers-1 ; check for last team + beq FinishResultDisplay sbb ResultY #2 ;distance between lines is smaller diff --git a/grafproc.asm b/grafproc.asm index 3a48a61..096ab96 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1422,22 +1422,35 @@ notZero sta plot4x4color tya tax ; save Y - mwa #talk LineAddress4x4 - jsr _calc_inverse_display - - ; now find length of the text -@ iny - lda (LineAddress4x4),y - bpl @- - iny - sty fx + mwa #talk.talk5_data LineAddress4x4 + jsr _calc_packed_display + + ; record starts with length byte + ldy #0 + lda (LineAddress4x4),y + sta fx + inw LineAddress4x4 ; point to packed payload txa ; load Y tay + jmp Display4x4AboveTankPacked +.endp + +;-------------------------------------------------------- +.proc Display4x4AboveTankPacked ; + ; Displays packed texts using PutChar4x4 above tank and mountains. + ;parameters are: + ;Y - number of tank above which text is displayed + ;fx - length of text + ;LineAddress4x4 - address of packed payload + + lda xtankstableL,y + sta temp + lda xtankstableH,y + sta temp+1 + jsr Calculate4x4TextPosition + jmp TypeLine4x4Packed.noLengthNoColor - ;jsr Display4x4AboveTank - ;rts - ; POZOR !!! .endp ;-------------------------------------------------------- @@ -1627,6 +1640,115 @@ EndOfTypeLine4x4 rts .endp +;------------------------------- +.proc TypeLine4x4Packed ; +;------------------------------- + ;this routine prints packed line of length `fx` + ;packed payload address in LineAddress4x4 + ;starting from LineXdraw, LineYdraw + + lda #14 ; default length of 4x4 texts + sta fx + +variableLength + lda #$ff ; $ff - visible characters, $00 - clearing + +staplot4x4color + sta plot4x4color +noLengthNoColor + + ; init packed bitstream + ; Reuse ZP vars: + ; - LineAddress4x4 is the packed byte pointer (advanced during decoding) + ; - Multiplier/Multiplier_ are used as bit buffer/state + lda #0 + sta Multiplier + sta Multiplier+1 + sta Multiplier_ + + ldy #0 + sty LineCharNr + +TypeLine4x4PackedLoop + ldy LineCharNr + + jsr _packed_get5bits + tay + lda talk.talk5_alphabet,y + sta CharCode4x4 + mwa LineXdraw dx + mva LineYdraw dy + mva #0 dy+1 ; dy is 2 bytes value + jsr PutChar4x4 ;type empty pixels as well! + adw LineXdraw #4 + inc:lda LineCharNr + cmp fx + bne TypeLine4x4PackedLoop + + rts +.endp + +;-------------------------------- +; Packed 5-bit bitstream decoder +; +; Uses a 16-bit shift register where the lowest bits are the next bits to read. +; Bytes are appended little-endian (LSB-first) at bit position PackedBitCount4x4. +;-------------------------------- +.proc _packed_get5bits + ; ensure at least 5 bits available + lda Multiplier_ + cmp #5 + bcs have_bits + + ; read next byte and append at current bit count + ldy #0 + lda (LineAddress4x4),y + sta temp2 ; new byte + lda #0 + sta temp2+1 + inw LineAddress4x4 + + ldx Multiplier_ + beq append_ready +append_shift + asl temp2 + rol temp2+1 + dex + bne append_shift +append_ready + lda Multiplier + ora temp2 + sta Multiplier + lda Multiplier+1 + ora temp2+1 + sta Multiplier+1 + + lda Multiplier_ + clc + adc #8 + sta Multiplier_ + +have_bits + lda Multiplier + and #$1f + sta temp2 + + ; shift register right by 5 + ldx #5 +@ lsr Multiplier+1 + ror Multiplier + dex + bne @- + + lda Multiplier_ + sec + sbc #5 + sta Multiplier_ + + lda temp2 + rts +.endp + ;-------------------------------- .proc AreYouSure @@ -1886,6 +2008,10 @@ ybarrel @ lda #$00 sta sizep0,y ; P0-P3 widths lda TankColoursTable,y ; colours of sprites under tanks + bit TeamGame + bvc no_team + lda TankColoursTableT,y ; colours of sprites under tanks for Teams +no_team sta PCOLR0,y dey bpl @- diff --git a/scorch.asm b/scorch.asm index 4d71a95..a1be822 100644 --- a/scorch.asm +++ b/scorch.asm @@ -41,7 +41,10 @@ ;--------------------------------------------------- .macro build - dta d"1.52" ; number of this build (4 bytes) + dta d"1.55" ; number of this build (4 bytes) +.endm +.macro year + dta d"2026" ; year of this build (4 bytes) .endm .macro RMTSong @@ -65,7 +68,7 @@ AdditionalZPvariables = $20 .zpvar MeteorsRound .byte ; set 7th bit - block meteors in round -FirstZpageVariable = $50 +FirstZpageVariable = $4f .zpvar DliColorBack .byte = FirstZpageVariable .zpvar ClearSky .byte ; $ff - Crear sky during drawmountains, 0 - no clear sky .zpvar PaddleState .byte ; old state 2nd button for 2 buttons joysticks @@ -156,6 +159,7 @@ FirstZpageVariable = $50 ; (0 - round only, >0 - each turn) .zpvar FastSoilDown .byte ; 0 - standard, >0 - fast .zpvar BlackHole .byte ; 0 - no, >0 - yes + .zpvar TeamGame .byte ; 0 - no, >0 - Teams .zpvar XHit .word .zpvar delta .word .zpvar HowMuchToFall .byte @@ -189,7 +193,7 @@ FirstZpageVariable = $50 HotNapalmFlag = FunkyBombCounter ; variable reuse! displayposition = modify LineAddress4x4 = xcircle - ;* RMT ZeroPage addresses in artwork/sfx/scorch_str9-NTSC.rmt + ;* RMT ZeroPage addresses in artwork/sfx/rmtplayr_modified.asm ;----------------------------------------------- ; libraries @@ -200,6 +204,7 @@ FirstZpageVariable = $50 .IF SPLASH = 1 icl 'artwork/splash_v2/splash.asm' ; new splash screen and musix .IF CART_VERSION = 1 + icl 'artwork/splash_v3/splash3.asm' ; new2 splash screen icl 'artwork/splash_v1/splash.asm' ; old splash screen (plays music from new splash) .ENDIF .ELSE @@ -354,6 +359,15 @@ StartAfterSplash dey bpl @- + ; set teams names + ldy #5 +@ lda Team_Header,y + sta TanksNames+(6*8),y + sta TanksNames+(7*8),y + dey + bpl @- + inc TanksNames+(7*8) ; B-Team :) + ; set gradient to the full LGBTIQQAAPP+ flag on start .IF CART_VERSION = 1 mva #$ff GradientNr ; #1 to set gradient number 2 :) (next one) - 0 (B/W) @@ -534,7 +548,7 @@ noingame ;---------------------------------------------- icl 'ai.asm' ;---------------------------------------------- - icl 'artwork/talk.asm' + icl 'artwork/talk_packed.asm' ;---------------------------------------------- TankFont ins 'artwork/tanksv4.fnt',+0,384 ; 48 characters only diff --git a/scorch.bin b/scorch.bin index 173588f..fb1f9b0 100644 Binary files a/scorch.bin and b/scorch.bin differ diff --git a/scorch.car b/scorch.car index f534b88..4fe6378 100644 Binary files a/scorch.car and b/scorch.car differ diff --git a/scorch.xex b/scorch.xex index eca68f2..774981a 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/scorchC64.asm b/scorchC64.asm index b42f537..a69b46c 100644 --- a/scorchC64.asm +++ b/scorchC64.asm @@ -27,6 +27,9 @@ .macro build dta d"1.51" ; number of this build (4 bytes) .endm +.macro year + dta d"2026" ; year of this build (4 bytes) +.endm .macro RMTSong lda #:1 ; do nothing in C64 @@ -36,7 +39,7 @@ icl 'definitions.asm' ;--------------------------------------------------- -FirstZpageVariable = $51 ; $57 +FirstZpageVariable = $50 ; $57 .zpvar DliColorBack .byte = FirstZpageVariable .zpvar ClearSky .byte ; $ff - Crear sky during drawmountains, 0 - no clear sky .zpvar MeteorsFlag .byte ; set 7th bit - block meteors @@ -47,6 +50,7 @@ FirstZpageVariable = $51 ; $57 .zpvar RandomMountains .byte ; mountains type change after each turn flag - (0 - round only, >0 - each turn) .zpvar FastSoilDown .byte ; 0 - standard, >0 - fast .zpvar BlackHole .byte ; 0 - no, >0 - yes + .zpvar TeamGame .byte ; 0 - no, >0 - Teams .zpvar JoystickNumber .byte .zpvar LazyFlag .byte ; 7 bit - run Lazy Darwin, 6 bit - run Lazy Boy or Darwin (!) after inventory, 0 - nothing .zpvar SpyHardFlag .byte ; >$7f - run SpyHard after inventory @@ -315,7 +319,7 @@ noShellDelay ;---------------------------------------------- icl 'ai.asm' ;---------------------------------------------- - icl 'artwork/talk.asm' + icl 'artwork/talk_packed.asm' ;---------------------------------------------- TankFont ins 'artwork/tanksv4.fnt',+0,384 ; 48 characters only diff --git a/scorchC64.prg b/scorchC64.prg index cee2f39..049cf96 100644 Binary files a/scorchC64.prg and b/scorchC64.prg differ diff --git a/scorch_cart.xex b/scorch_cart.xex index 7be3720..38dccff 100644 Binary files a/scorch_cart.xex and b/scorch_cart.xex differ diff --git a/scorch_fl.atr b/scorch_fl.atr index 7975eac..2b7f1a7 100644 Binary files a/scorch_fl.atr and b/scorch_fl.atr differ diff --git a/scorchfl.xex b/scorchfl.xex new file mode 100644 index 0000000..c22f578 Binary files /dev/null and b/scorchfl.xex differ diff --git a/variables.asm b/variables.asm index 5d296f9..a8d3450 100644 --- a/variables.asm +++ b/variables.asm @@ -23,7 +23,7 @@ GameOverColoursTable .ds MaxPlayers; .BYTE $80,$40,$c4,$20,$c0,$e4 ;---------------------------------------------------- TanksNames ; DO NOT ZERO ON GAME RESTART - ticket #24 ;:6 dta d" " - .ds MaxPlayers*8 + .ds (MaxPlayers+2)*8 ; +2 for Teams ;---------------------------------------------------- skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30) .DS MaxPlayers @@ -67,7 +67,7 @@ OptionsY .ds 1 ;vertical position of cursor on Options screen flyDelay .ds 1 ;-------------- ;NumberOfPlayers .DS 1 ;current number of players (counted from 1) -TankSequence .DS MaxPlayers ;sequence of shooting during the Round +TankSequence .DS MaxPlayers+2 ;sequence of shooting during the Round (+2 for teams) GameIsOver .DS 1 ; 1 means it was the last round in the game ;---------------------------------------------------- moneyH ;we place zero at the end of prices and money @@ -102,13 +102,13 @@ LASTeXistenZ ; eXistenZ before shoot .DS MaxPlayers ResultsTable ;the results in the gameeeeee - .DS MaxPlayers + .DS MaxPlayers+2 ; +2 for teams DirectHits - .DS MaxPlayers + .DS MaxPlayers+2 ; +2 for teams EarnedMoneyH - .DS MaxPlayers + .DS MaxPlayers+2 ; +2 for teams EarnedMoneyL - .DS MaxPlayers + .DS MaxPlayers+2 ; +2 for teams ;---------------------------------------------------- ForceTableL ;shooting Force of the tank during the round .DS MaxPlayers diff --git a/weapons.asm b/weapons.asm index ecfe047..fe7144a 100644 --- a/weapons.asm +++ b/weapons.asm @@ -399,19 +399,15 @@ nexttext bcs @- sta TextNumberOff - ; all text start from `talk` and end with an inverse. - ; we go through the `talk`, count number of inverses. - ; if equal to TextNumberOff, it is our text, printit lda #$ff sta plot4x4color - mwa #talk LineAddress4x4 - jsr _calc_inverse_display - ; now find length of the text -@ iny + mwa #talk.talk5_data LineAddress4x4 + jsr _calc_packed_display + ; record starts with length byte + ldy #0 lda (LineAddress4x4),y - bpl @- - iny - sty fx + sta fx + inw LineAddress4x4 ; point to packed payload mwa tempXROLLER temp ; X coordinate of hitpoint ; calculate position of message jsr Calculate4x4TextPosition @@ -436,7 +432,7 @@ nexttext dec LineXdraw+1 DisplayMessage ; display propaganda message - jsr TypeLine4x4.noLengthNoColor + jsr TypeLine4x4Packed.noLengthNoColor ldy #7 jsr PauseYFrames @@ -1364,11 +1360,12 @@ NoSpyHard mva #0 escFlag jmp ReleaseAndLoop @ -/* cmp #$80|@kbcode._up - jeq CTRLPressedUp - cmp #$80|@kbcode._down - jeq CTRLPressedDown */ - +/* .IF TARGET = 800 + cmp #$80|@kbcode._up ; Ctrl + Up or Down only in A800 + jeq CTRLPressedUp + cmp #$80|@kbcode._down + jeq CTRLPressedDown + .ENDIF */ cmp #$80|@kbcode._tab jeq CTRLPressedTAB @@ -1410,7 +1407,7 @@ NoVdebugSwitch cmp #@kbcode._S ; $3e ; S jeq pressedS .IF TARGET = 800 - cmp #61 ; G + cmp #@kbcode._G ; $61 ; G bne EndKeys jsr SelectNextGradient.NotWind jmp ReleaseAndLoop