Jump to content

Just Jeff

Members
  • Posts

    597
  • Joined

  • Last visited

Everything posted by Just Jeff

  1. Can you tell me what I'm doing wrong here? I can't get this to assemble. I've replaced $96 with .lenLo and I get: unresolved symbols list 0.lenLo LF12D ldy $99 ; 3 lda LF1B2,y ; 4 beq LF151 ; 2 sec ; 2 sbc #$21 ; 2 asl ; 2 tax ; 2 lda LF221,x ; 4 sta .lenLo ; 3 Replaced $96 inx ; 2 lda LF221,x ; 4 sta $97 ; 3 jsr LF16A ; 6
  2. Hey I got something almost right! I guess that's mirroring? Now I see what you did here and what it means: LFD6B .byte $79,$20,$75,$10,$6B,$10,$C1,$01,$8B,$01,$93,$01 .byte $8F,$08,$8B,$02,$C1,$06,$73,$10,$77,$10,$6F,$10,$79,$08,$77,$08 .byte $77,$10,$7B,$10,$73,$10,$7D,$08,$7B,$08,$3F,$04,$57,$04,$3F,$04 .byte $57,$04,$C1,$04,$C1,$04,$C1,$04,$C1,$04,$3D,$04,$55,$04,$3D,$04 .byte $55,$04,$C1,$04,$C1,$04,$C1,$04,$35,$04 ORG $fffc .byte $EA,$F0,$EA,$F0 So I guess absent anything else, DASM will fill in empty spots with $ff?
  3. Thanks.. I'll keep an eye out for that. First though, I'm going to try the labeling without chopping anything.
  4. Hmm.. It seems that I greatly overestimated DiStella's ability to make labels. So is this setting the pointer at $1F40? 'cause it doesn't look like that address exists LF151 lda #$40 ; 2 sta $96 ; 3 .lenLo lda #$1F ; 2 sta $97 ; 3 .lenHi
  5. Hmm.. DASM doesn't adjust the JMP and JSR addresses based on the labels that are in the ASM? Ever since I started learning this stuff, I've moved and deleted tables all the time. Could you tell me why it doesn't work here? What is the difference? Are the LFxxxs not real labels? Thanks for your patience and help!
  6. Thanks! What is the significance of the data tables right after the ORG $F000 ? They look like unused graphics but when I try chopping them out and it messes up the whole thing.
  7. Thanks- I'm talking about the squeeker music though. It seems to use much less memory than sampling doesn't it?
  8. Thanks! I see on the other thread that you're making great progress on this, so I'll defer to you on it I believe I butchered my commented file anyway- it assembles, but doesn't work anymore.
  9. Its a 4K demo. I'm wondering how much of the music I could fit in while only using 0.5K or 1K for it. My kernel would be simple, and if you are saying I would only need to update AUDV0 once per scan line then I won't have any problem there.
  10. Hmm.. tougher than I thought. Also, I guess I'm not sure how ROL works. When you ROL those RAM locations down at the bottom, what is it doing? What happens to the carry? 'Lil help? ; Initialize sound loop LF7A2: LDA #$02 STA $91 LDA #$29 STA $A0 LDA #$FA STA $A1 JMP LF7BD LF7B1: LDA #$03 STA $91 LDA #$AB STA $A0 LDA #$FA STA $A1 LF7BD: LDY #$00 STY $A2 ; Start of a sound loop LF7C1: LDA $A2 ; Initially 0 BNE LF807 ; if this is not the first trip through, then continue LDY #$00 STY $B4 ; Zero out 4 RAMs STY $B7 STY $BA STY $BD LDA ($A0),Y ; $A0 is initialized with #$29, then #$AB STA $B5 INY LDA ($A0),Y ; BEQ LF7B1 ; If zero, then go to second initialization STA $B6 INY LDA ($A0),Y STA $B8 INY LDA ($A0),Y STA $B9 INY LDA ($A0),Y STA $BB INY LDA ($A0),Y STA $BC INY LDA ($A0),Y STA $BE INY LDA ($A0),Y STA $BF LDA #$08 CLC ADC $A0 ; $A0 is initialized with #$29, then $AB STA $A0 ; then store the result BCC LF803 INC $A1 ; initialized with #$FA LF803: LDA #$40 STA $A2 LF807: LDA #$FF STA $92 LDY #$00 LDA #$01 STA $B3 LDA $B4 BNE LF835 LDA ($B5),Y TAX INY LDA ($B5),Y STA $B4 LDA $B5 CLC ADC #$02 STA $B5 BCC LF828 INC $B6 LF828: LDA LF967,X ; Load from sound table STA $B1 DEX LDA LF967,X ; Load from sound table STA $B0 LDA $B4 LF835: CMP $92 BCS LF83B STA $92 LF83B: LDY #$00 LDA #$C0 STA $AF LDA $B7 BNE LF865 LDA ($B8),Y TAX INY LDA ($B8),Y STA $B7 LDA $B8 CLC ADC #$02 STA $B8 BCC LF858 INC $B9 LF858: LDA LF967,X ; Load from sound table STA $AD DEX LDA LF967,X ; Load from sound table STA $AC LDA $B7 LF865: CMP $92 BCS LF86B STA $92 LF86B: LDY #$00 LDA #$80 STA $AB LDA $BA BNE LF895 LDA ($BB),Y TAX INY LDA ($BB),Y STA $BA LDA $BB CLC ADC #$02 STA $BB BCC LF888 INC $BC LF888: LDA LF967,X ; Load from sound table STA $A9 DEX LDA LF967,X ; Load from sound table STA $A8 LDA $BA LF895: CMP $92 BCS LF89B STA $92 LF89B: LDY #$00 LDA #$40 STA $A7 LDA $BD BNE LF8C5 LDA ($BE),Y TAX INY LDA ($BE),Y STA $BD LDA $BE CLC ADC #$02 STA $BE BCC LF8B8 INC $BF LF8B8: LDA LF967,X ; Load from sound table STA $A5 DEX LDA LF967,X ; Load from sound table STA $A4 LDA $BD LF8C5: CMP $92 BCS LF8CB STA $92 LF8CB: LDA $BD SEC SBC $92 STA $BD LDA $BA SEC SBC $92 STA $BA LDA $B7 SEC SBC $92 STA $B7 LDA $B4 SEC SBC $92 STA $B4 LDA $92 LDY #$00 STY $96 STY $97 LDY #$07 LF8F1: ASL $96 ROL $97 ASL A BCC LF904 LDA $96 ADC #$7F STA $96 LDA $97 ADC $91 ; $91 is initialized with #$02, then #$03 STA $97 LF904: DEY BPL LF8F1 LDA $A2 SEC SBC $92 STA $A2 LDY $96 LDX $97 ; Fall into loop ; Load sound from table, add to a value, then store back in RAM. Store some ; values to AUDV0 LF912: LDA #$00 ; Set VOL0 to 0 STA $81 ; Audio Volume RAM CLC LDA $A4 ; data from sound table ADC $A6 ; starts at 0 STA $A6 ; store the result LDA $A5 ; data from sound table ADC $A7 ; starts at #$40 STA $A7 ; store the result ROL $81 ; Audio Volume RAM LDA $A8 ; data from sound table ADC $AA ; starts at 0 STA $AA ; store the result LDA $A9 ; data from sound table ADC $AB ; starts at #$80 STA $AB ; store the result ROL $81 ; Audio Volume RAM LDA $AC ; data from sound table ADC $AE ; starts at 0 STA $AE ; store the result LDA $AD ; data from sound table ADC $AF ; starts at #$C0 STA $AF ; store the result ROL $81 ; Audio Volume RAM LDA $B0 ; data from sound table ADC $B2 ; starts at 0 STA $B2 ; store the result LDA $B1 ; data from sound table ADC $B3 ; starts at #$01 STA $B3 ; store the result ROL $81 ; Audio Volume RAM ADC #$20 LDA #$00 ADC $81 ; Audio Volume RAM BEQ LF95A ; Restart the Demo? LDA $81 ; Audio Volume RAM BIT $0F09 ; Test what? Why? Skip AUDV0? STA AUDV0 DEY BNE LF912 DEX ; from 151 BNE LF912 JMP LF7C1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Sound Table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LF967: .byte $69,$00,$70,$00,$76,$00,$7D,$00,$85,$00,$8D,$00,$95,$00,$9E,$00 .byte $A7,$00,$B1,$00,$BC,$00,$C7,$00,$D3,$00,$E0,$00,$ED,$00,$FB,$00 .byte $0A,$01,$1A,$01,$2B,$01,$3C,$01,$4F,$01,$63,$01,$78,$01,$8F,$01 .byte $A7,$01,$C0,$01,$DA,$01,$F7,$01,$15,$02,$34,$02,$56,$02,$79,$02 .byte $9F,$02,$C7,$02,$F Skweeker Disassembly.asm
  11. I downloaded DiStella and disassembled it. I'm going to see how well I can figure it out and comment it now. Squeeker Raw.asm
  12. Stepping through the code after the music starts, it just seems to make a lot of RAM adds with carry and then stores them. Then also a bunch of ROL RAM_81 which it eventually stores in AUDV0. And that's about it. Just keeps looping through. Doesn't make any sense to me.
  13. Does anyone have the source code for the attached BIN and/or insight into how it works? I'd really like to use some of the music for a menu screen in my game if at all possible and if I could get permission. Even if its not possible, I'd be really curious how it works. xSqueeker Demo (2011) (Szuwarek, Factor 6) (PAL).bin
  14. Hello! I made a video of the game I've been working on... https://www.youtube.com/watch?v=el1hob0EMt4&feature=youtu.be BP5.bin
  15. Maybe post some of your code and a mock up of what you're trying to do. I'm sure something can be worked out. Do your players appear on the same horizontal plane as the balls?
  16. Are you using RESBL to make the ball appear twice on a line? If so, your HMOVEs will not be very effective. You can achieve what you are attempting if you use missiles 0 and 1, or a ball and a missile.
  17. OK I changed them. Its better now. Thanks!
  18. Ok... So I checked that yesterday and it was showing Assemby 6502. This morning I was setting the computer up and I saw the yellow very faintly. Turns out, if I push the screen way forward, I can see the yellow. If I pull it back up, no yellow.
  19. Did I do it correctly here? I don't see any highlighting in my graphics:
  20. Yup. That did it.. Thanks again! BP4.bin
  21. Much better, but still a little timing issue towards the end.. BP4.bin BP4x.asm
  22. Nukey Shay.. That's definitely it. You can see in my second snippet of code I jsr PosObject then I sta HMOVE. Classic rookie mistake. .. Thanks
  23. Thanks! I've been working hard on this.. I was able to successfully display "Fireballs" but the HMOVE was messing up the game-play below it. So I changed the positioning routine so it happens in V blank. It fixed the game-play, but for some reason the fine tune portion of the marquee doesn't work though. (I think) It looks totally correct to me. I can't figure it out. Can anyone see my error? ;------------------------------------------------------------------------------- ; Marquee Display ;------------------------------------------------------------------------------- ShowFireballsLogo ;------------------------Spliced in sta WSYNC ;Jeff added lda #3 ; 2 10 sta NUSIZ0 ; 3 13 set triple copies of P0 sta NUSIZ1 ; 3 16 set triple copies of P1 sta VDELP0 ; 3 19 turn on vertical delay for P0 sta VDELP1 ; 3 22 turn on vertical delay for P1 ;lda #$F0 ; 2 24 ;sta HMP0 ; 3 27 x adjust for P0 nop 0 ; 3 30 nop ; 2 32 nop ; 2 34 nop ; 2 36 ;sta RESP0 ; 3 39 set x for P0 nop ;sta RESP1 ; 3 42 set x for P1 sta WSYNC ;sta HMOVE ; fine adjust for P0 ;--------------------------- sta WSYNC lda #0 sta COLUBK lda #$0E ; white sta COLUP0 sta COLUP1 lda #<Fireballs sta G48 lda #>Fireballs sta G48+1 lda #<(Fireballs+15) sta G48+2 lda #>(Fireballs+15) sta G48+3 lda #<(Fireballs+30) sta G48+4 lda #>(Fireballs+30) sta G48+5 lda #<(Fireballs+45) sta G48+6 lda #>(Fireballs+45) sta G48+7 lda #<(Fireballs+60) sta G48+8 lda #>(Fireballs+60) sta G48+9 lda #<(Fireballs+75) sta G48+10 lda #>(Fireballs+75) sta G48+11 ldy #14 ; jsr Show48graphic Show48graphic SUBROUTINE ; call with Y holding the lines-1 to show ; G48 thru G48+$B must be preloaded with pointers to the ; 48 pixel graphic image STY TempVar1 sta WSYNC .graphicLoop ldy TempVar1 ;+3 63 189 lda (G48),y ;+5 68 204 sta GRP0 ;+3 71 213 D1 -- -- -- sta WSYNC ;go lda (G48+$2),y ;+5 5 15 sta GRP1 ;+3 8 24 D1 D1 D2 -- lda (G48+$4),y ;+5 13 39 sta GRP0 ;+3 16 48 D3 D1 D2 D2 lda (G48+$6),y ;+5 21 63 sta TempVar2 ;+3 24 72 lda (G48+$,y ;+5 29 87 tax ;+2 31 93 lda (G48+$A),y ;+5 36 108 tay ;+2 38 114 lda TempVar2 ;+3 41 123 ! sta GRP1 ;+3 44 132 D3 D3 D4 D2! stx GRP0 ;+3 47 141 D5 D3! D4 D4 sty GRP1 ;+3 50 150 D5 D5 D6 D4! sta GRP0 ;+3 53 159 D4* D5! D6 D6 dec TempVar1 ;+5 58 174 ! bpl .graphicLoop ;+2 60 180 ; sta WSYNC ;JUST ADDED lda #0 sta GRP0 sta GRP1 sta GRP0 sta GRP1 ; rts and... PositionObjectsX: PositionForMarquee: lda #50 ; Position of P0 graphics ldx #0 ; Player 0 index jsr PosObject lda #58 ; Payer 1 position of graphics ldx #1 ; Player 1 index jsr PosObject sta HMOVE ldx #4 ;#1 ; 2 position players 0 and 1, missiles, ball POloop: lda ObjectX,x ; 4 get the object's X position jsr PosObject ; 6 set coarse X position and fine-tune amount ; 29 time of PosObjext after its WSYNC dex ; 2 DEcrement X ;bpl POloop ; 2 Branch PLus so we position all objects cpx #1 ; Don't do players now. bne POloop ;sta WSYNC ; 3 wait for end of scanline ;sta HMOVE ; 3 3Tell TIA to use fine-tune values to set final X positions ; Moved to the kernel rts ; 6 9 after 2 wsyncs and... ;------------------------------------------------------------------------------- ; PosObject ;------------------------------------------------------------------------------- PosObject: sec sta WSYNC DivideLoop sbc #15 ; 2 2 - each time thru this loop takes 5 cycles, which is bcs DivideLoop ; 2 4 - the same amount of time it takes to draw 15 pixels eor #7 ; 2 6 - The EOR & ASL statements convert the remainder asl ; 2 8 - of position/15 to the value needed to fine tune asl ; 2 10 - the X position asl ; 2 12 asl ; 2 14 sta.wx HMP0,X ; 5 19 - store fine tuning of X sta RESP0,X ; 4 23 - set coarse X position of object rts ; 6 29 - ReTurn from Subroutine BP4.zip
  24. There doesn't need to be anything else but the text. Is a 48 pixel display something that uses player one and player two with three copies?
  25. Hi! Does anyone know a good way to display small text? I have a kernel area about twenty lines high that I would like to use to display a word or two.. Maybe a nice vertical or horizontal scroll, not necessary though... Thanks!
×
×
  • Create New...