User Tools

Site Tools


base:calculate_vic_settings_for_showing_a_koala

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:calculate_vic_settings_for_showing_a_koala [2015-04-17 04:30] (current)
Line 1: Line 1:
 +====== Generic koala shower (VIC settings calculator) ======
  
 +
 +====== Do not use this code, it's just... wrong =======
 +
 +**//This is not code anyone should learn from.//**
 +
 +**//​Original article below://**
 +
 +As I was fed up searching for the correct settings in $d018 and alike, I wrote a general koala source that will calculate all settings depending on the bitmap/​screen locations as the only input needed.
 +Of course this "​unnecessary"​ calculation takes memory space, so if you need optimized code, you may still want use this and copy the resulting values into your code.
 +
 +Feel free to edit.
 +
 +<​code>​
 +;JTR TRIES TO CODE: GENERIC KOALA SHOWER
 +
 +PIC          = $6000  ;​SOURCE ​      - only these two settings are manually entered
 +SCREEN ​      = $4000  ;​DESTINATION
 +
 +             *= $0810
 +             SEI
 +
 +             STA $D07A ;1MHZ on SCPU
 +
 +             LDX #$00
 +             LDA #>PIC
 +             CMP #$40
 +             BCC CHECKED
 +             INX
 +             CMP #$80
 +             BCC CHECKED
 +             INX
 +             CMP #$C0
 +             BCC CHECKED
 +             INX
 +CHECKED ​     SEC
 +             SBC VICBANK,X
 +             LDY #%00000000
 +             CMP #$00
 +             BEQ LOCCED
 +             LDY #%00001000
 +LOCCED ​      STY BITLOC+1
 +
 +             LDA $DD00
 +             AND ANDD,X
 +             ORA ORADD,X
 +             STA $DD00
 +
 +             LDY #$00
 +             LDA #>SCREEN
 +             SEC
 +             SBC VICBANK,X
 +             BEQ SCREENCHECKED
 +CHECKSON ​    INY
 +             SBC #$04
 +             BNE CHECKSON
 +SCREENCHECKED
 +             TYA
 +             ASL A
 +             ASL A
 +             ASL A
 +             ASL A
 +             STA ORARA+1
 +
 +             LDA $D018
 +             AND #%00000111
 +ORARA        ORA #$EE
 +BITLOC ​      ORA #$EE
 +             STA $D018
 +
 +             LDA #​%00011000 ​ ;BIT4: MULTI ON
 +             STA $D016
 +
 +             LDA $D011       ;​BITMAP-MODE
 +             ORA #%00100000
 +             STA $D011
 +
 +             LDA PIC+$2710 ​  ;​BACKGROUND
 +             STA $D021
 +             STA $D020
 +
 +             LDX #$00        ;SCREENRAM COPY
 +SCREENRAME ​  LDA PIC+$1F40,X
 +             STA SCREEN,X
 +             LDA PIC+$2040,X
 +             STA SCREEN+$0100,​X
 +             LDA PIC+$2140,X
 +             STA SCREEN+$0200,​X
 +             LDA PIC+$2240,X
 +             STA SCREEN+$0300,​X
 +             INX
 +             BNE SCREENRAME
 +
 +             LDA #$D8
 +             STA FARBRAM+2
 +             LDA #>​PIC+$23
 +             STA MULTIFIL+2
 +             LDX #$00        ;FARBRAM COPY
 +MULTIFIL ​    LDA $6328,X
 +FARBRAM ​     STA $D800,X
 +             INX
 +             BNE MULTIFIL
 +             INC FARBRAM+2
 +             INC MULTIFIL+2
 +             LDY FARBRAM+2
 +             CPY #$DB
 +             BNE MULTIFIL
 +
 +FILL2        LDA PIC+$2628,X
 +             STA $DB00,X
 +             INX
 +             CPX #$E8
 +             BNE FILL2
 +
 +             JMP *
 +
 +ANDD         .BYTE %11111111,​%11111110,​%11111101
 +             .BYTE %11111100
 +ORADD        .BYTE %00000011,​%00000010
 +             .BYTE %00000001,​%00000000
 +VICBANK ​     .BYTE $00,​$40,​$80,​$C0
 +</​code>​
 + --- //​[[jaktrip@gmx.de|Tim Jakob Chen-Voos]] 2011/02/07 21:49//
base/calculate_vic_settings_for_showing_a_koala.txt ยท Last modified: 2015-04-17 04:30 (external edit)