Subject: [stella] Another kernel is rolling From: "Aaron" <stella-receiver@xxxxxxxxxxxxxxxxx> Date: Tue, 29 Mar 2005 01:44:45 -0500 |
I've been trying to figure this out for a while now... The latest version of Fall Down works fine in Stella and Z26, but several people have reported that the title screen rolls on a real machine (I can't test it myself). I've been able to narrow the problem down to somewhere in the following code... Basically, disabling everything between the lines ;-- read input -- and .wait_overscan: makes the screen stable, but re-enabling any one block (I've tried most of them individually) makes it roll again. I've looked for the obvious missing # character, but couldn't find one. Also the way I'm doing vblank hasn't changed in ages, and none of the previous versions rolled (from what I've heard at least), so I don't think that's the problem. The display code right before this uses a brk to WSYNC for however many lines. Nothing special. The code after it does a jmp (jump_addr) and then goes into the VERTICAL_SYNC macro. So I don't know... is there anything really obviously wrong with what I've written here? If not, are there any common errors that only affect real hardware? Anyway, there's also a .bin attached if anyone wants to take a look... -Aaron ;***************************** ;**** overscan - 30 lines **** ;***************************** lda #2 sta VBLANK sty PF1 sty PF2 sta WSYNC lda #overscan_timer sta TIM64T lda #<display_title sta jump_addr lda #>display_title sta jump_addr+1 ;--- read input --- lda #0 sta title_mode_change ldx #5 lda SWCHB jsr title_read_input bcc .no_reset lda #0 sta sound sta sound+1 sta subsound sta subsound+1 sta sound_timer sta sound_timer+1 jsr advance_track jsr title_reset_music .no_reset: ldx #3 .input_loop: lda SWCHA jsr title_read_input dex bpl .input_loop ldx #4 lda SWCHB jsr title_read_input ;--- change game mode --- lda #nmodes ;This is the easter egg... sta scratch ;if P0 presses up and P1 presses down, lda SWCHA ;we increase the number of available modes and #%00010010 ;by two. bne .no_easter_egg inc scratch inc scratch .no_easter_egg: lax mode clc adc title_mode_change bpl .mode_high_enough lda #nmodes-1 .mode_high_enough: cmp scratch bcc .mode_in_bounds lda #0 .mode_in_bounds: sta mode cpx mode beq .no_mode_change lda title_timer_h and #%00000111 sta title_timer_h ;On every mode change, we'll reload the ;high score from the eeprom if it's present. ;This takes a whole TV frame, so first we'll ;do a quick test to see if the eeprom is ;there, and if not we can skip the whole ;thing... jsr i2c_startwrite bcs .no_eeprom lda #<reset sta jump_addr lda #>reset sta jump_addr+1 .no_eeprom: jsr i2c_stopwrite .no_mode_change: ;--- check if the game should start --- lda INPT4 and INPT5 ;either player can start the game and #%10000000 bne .noexit ;bit 7 is CLEAR if fire was pressed jsr title_init_game jmp .wait_overscan ;title_timer overlaps with the ;data that we just cleared .noexit: lda #title_speed adc title_timer_l sta title_timer_l lda title_timer_h adc #0 sta title_timer_h bcc .no_attract ;go into attract mode - just the AI playing lda #nmodes sta mode jsr title_init_game .no_attract: .wait_overscan: lda INTIM bne .wait_overscan sta WSYNC Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://stella.biglist.com [demime 1.01d removed an attachment of type application/x-zip which had a name of rolling_ntsc_fd.zip]
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [stella] 262 scanline kernel is, Chris Wilkson | Thread | Re: [stella] Another kernel is roll, Thomas Jentzsch |
RE: [stella] 262 scanline kernel is, Chris Wilkson | Date | Re: [stella] Another kernel is roll, Thomas Jentzsch |
Month |