Jump to content

Alert! Alert!

Posted by SpiceWare, in Draconian 10 September 2017 · 489 views

Things are getting back to normal after Harvey.  I still need to put my office back together, but decided that can wait until after PRGE if need be.

  • bunch of optimizations to free up ROM space (about 500 bytes)
  • cd-w made a slight revision to the CDF driver's 2600/7800 detection logic
  • added PAUSE support, toggle TV TYPE (2600) or hit PAUSE (7800).  Same to unpause (or press & release FIRE).
  • Updated sound effects
  • "Alert!" sample added. The game repeats it for "Alert! Alert!" in order to save ROM space.  Need more work on when to trigger.
When flashed directly to the Harmony or Melody the CDF driver overwrites zero page RAM, so it handles console type detection and stores the results in ZP RAM $80.  However, if the game is loaded from the Harmony menu then the traditional check of ZP RAM $D0 and $D1 needs to be done.
; normally we would use CLEAN_START, but we want to detect console
; detection logic is to check the values in ZP RAM locations $D0 and $D1
;   if $D0 contains $2C and $D1 contains $A9 then
;       system = 7800           // game was loaded from Harmony menu on a 7800
;   else if both contain $00 then
;       system = ZP RAM $80     // game was flashed to Harmony/Melody so CDF
;                               // driver checked $D0 and $D1 for us
;   else
;       system = 2600           // game was loaded from Harmony menu on a 2600
; start of console detection routine
        ldy #0              ; assume system = 2600        
        ldx $d0
        beq .confirmFlashed ; if $00 then game might be flashed on Harmony/Melody
        cpx #$2c
        bne .is2600         ; if not $2C then loaded via Harmony Menu on 2600        
        ldx $d1
        cpx #$a9            ; <-- evil7800 note - this A9 is OK as FastFetch is not active
        bne .is2600
        dey                 ; 7800: y=$FF
        bne .done           ; this will always branch
        ldx $d1
        bne .is2600         ; if not $00 then loaded via Harmony Menu on 2600
        ldy $80             ;
.is2600                     ; 2600: y == 0
.done                       ; 7800: y != 0
; end of console detection routine
At the moment there's 287 bytes free of ROM.
For Harmony or Stella (requires Stella 5.0.2 or newer)
Attached File  draconian_20170910.bin (32KB)
downloads: 44 
Attached File  draconian_20170910.zip (438.21KB)
downloads: 28

Search My Blog

Recent Entries

Recent Comments

Latest Visitors

0 user(s) viewing

0 members, 0 guests, 0 anonymous users