Jump to content

Thomas Jentzsch

Members
  • Content Count

    27,895
  • Joined

  • Days Won

    3

Blog Comments posted by Thomas Jentzsch


  1. Still: I certainly didn't care about memory usage for the port, so I may have some totally sub-optimal passages regarding that. Also, do you want me to compile it "normal" or with "minimize size"?

    Minimize size would be interesting, especially because the assembly code seems pretty unoptimized.

     

    Though Visual C++'s compiler isn't a good example of an optimizing compiler at all. :)


  2. That's very nice of you to say, but my vote still goes for Thrust... ;)

    Really? :D (must be Paul's magic then)

     

    Well, then let's just wait for your next one...

     

    And a duel sounds great to me! :)

    My ship and the limpet guns will massacre your poor, defenseless bugs! ;)

     

    One thing is for sure - the 2600 community would certainly love to see another game by TJ!

    Unfortunaly I am by far not as fast and commited as you are. Too many (not only) RL distractions.


  3. This could throw off the timing in the kernel depending on the addressing modes used.

    Which should be pretty easy to fix.

     

    So you'd wind up with a vanilla 4K program that displays the Suicide Mission kernel but the graphics don't change on every line.

    Sounds simple enough.


  4. Very well written and fair reviews (as always). And having played all the games myself, I almost completely agree. Except maybe 2/5 for Merlins Walls, 1/5 should IMO be reserved for complete crap. Or can you give such a game 0/5?

     

    And how far did you get in Power Off!? When fixing a few glitches inside the game I found it a bit too easy. Ok, I had unlimited lives, but still...


  5. If this is possible, one could write a kernel containing lots of TIA writes, then the ARM could change those values to something else. e.g., set LDA #$FF, then a kernel could contain STA GRP0, STA GRP1, STA AUDVx, etc. and write custom values in 3 cycles each.

    Sounds like my (impossible ;)) idea above, but with some more technical background. :D


  6. The question becomes, does that one cycle saved matter that much?

    Each and every cycle saved inside the kernel matters. That's why David Crane invented the DPC. The more cycles you have, the more advanced graphics you can create. And you can also use them for other stuff which has to be done inside the kernel, e.g. digitized music or paddle controller support.


  7. And to do this you have to remove the WSYNC and perfectly time the kernel.

    That's far too easy for a free Chimera. ;)

    println
    ;-------------------------
    ;...
    ;---------------------------------------------------
    ldx	 #4
    sta	 WSYNC
    pause
    nop
    dex
    bne	 pause
    lda	 temp
    lda	 temp
    
    sta	 HMCLR
    ldx	 #$80			   ;	   +8
    ldy	 #FONTHEIGHT		;	  
    lda	 frame
    and	 #$01
    beq	 oddFrame
    jmp	 evenFrame
    
    ;THIS IS IT
    print1
    sta	 GRP1			   ; 3
    lda	 CH_QUEUE_FAST+4	; 4		 
    sta.w   GRP0			   ; 4
    lda	 CH_QUEUE_FAST+6	; 4		 
    stx.w   HMP0			   ; 4
    stx	 HMP1			   ; 3
    sta	 GRP1			   ; 3
    lda	 CH_QUEUE_FAST+8	; 4		 
    sta.w   GRP0			   ; 4
    lda	 CH_QUEUE_FAST+10   ; 4		 
    sta.w   GRP1			   ; 4
    sta	 GRP0			   ; 3
    evenFrame					  ;	   @50
    dey						; 2
    bmi	 wrapEven		   ; 2³
    lda	 CH_QUEUE_FAST+1	; 4		 
    nop						; 2
    sta.w   GRP0			   ; 4
    lda	 CH_QUEUE_FAST+3	; 4		 
    nop						; 2
    nop						; 2
    sta	 GRP1			   ; 3
    ;---------------------------------------
    sta	 HMOVE			  ; 3	 @02
    lda	 CH_QUEUE_FAST+5	; 4		 
    nop						; 2
    sta.w   GRP0			   ; 4
    lda	 CH_QUEUE_FAST+9	; 4		 
    nop						; 2
    sta.w   temp			   ; 4
    lda	 CH_QUEUE_FAST+7	; 4		 
    nop						; 2
    sta.w   GRP1			   ; 4
    lda	 temp			   ; 3
    sta	 GRP0			   ; 3
    lda	 CH_QUEUE_FAST+11   ; 4		 
    nop						; 2
    sta.w   GRP1			   ; 4
    
    oddFrame					   ;	   @48
    sta	 GRP0			   ; 3
    lda	 #$00			   ; 2	 -8
    sta	 HMP0			   ; 3
    sta	 HMP1			   ; 3
    dey						; 2
    bmi	 wrapOdd			; 2³
    lda	 CH_QUEUE_FAST+0	; 4		 
    sta	 GRP0			   ; 4
    ;---------------------------------------
    sta	 HMOVE			  ; 4	 @73
    nop
    lda	 CH_QUEUE_FAST+2	; 4		 
    
      ;THIS IS IT
    
    jmp	 print1			 ; 3

×
×
  • Create New...