mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-25 20:30:31 +00:00
ds: missing section works
This commit is contained in:
parent
dca2dcfeff
commit
e1d18a9213
@ -4,10 +4,7 @@
|
||||
.include "zp.inc"
|
||||
.include "hardware.inc"
|
||||
|
||||
ending:
|
||||
|
||||
|
||||
|
||||
demosplash2019:
|
||||
|
||||
;=========================
|
||||
; set up sound
|
||||
@ -59,13 +56,23 @@ ending:
|
||||
|
||||
; cli ; enable interrupts
|
||||
|
||||
;===========================
|
||||
; missing scene
|
||||
;===========================
|
||||
|
||||
jsr missing_intro
|
||||
|
||||
;===========================
|
||||
; starbase scene
|
||||
;===========================
|
||||
|
||||
; jsr starbase
|
||||
|
||||
;===========================
|
||||
; book scene
|
||||
;===========================
|
||||
|
||||
jsr book
|
||||
; jsr book
|
||||
|
||||
|
||||
; wait wait wait
|
||||
|
@ -21,20 +21,11 @@ missing_intro:
|
||||
;=============================
|
||||
; Load graphic page0
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image to $c00
|
||||
|
||||
lda #0
|
||||
asl
|
||||
asl ; which*4
|
||||
tay
|
||||
|
||||
lda k_picture,Y
|
||||
lda #<k_low
|
||||
sta GBASL
|
||||
lda k_picture+1,Y
|
||||
lda #>k_low
|
||||
sta GBASH
|
||||
lda #$c ; load to $c00
|
||||
jsr load_rle_gr
|
||||
|
||||
lda #4
|
||||
@ -54,20 +45,13 @@ missing_intro:
|
||||
;=============================
|
||||
; Load graphic page1
|
||||
|
||||
lda #$0c
|
||||
sta BASH
|
||||
lda #$00
|
||||
sta BASL ; load image to $c00
|
||||
|
||||
lda #0
|
||||
asl
|
||||
asl ; which*4
|
||||
tay
|
||||
|
||||
lda k_picture+2,Y
|
||||
lda #<k_high
|
||||
sta GBASL
|
||||
lda k_picture+3,Y
|
||||
lda #>k_high
|
||||
sta GBASH
|
||||
|
||||
lda #$c
|
||||
|
||||
jsr load_rle_gr
|
||||
|
||||
lda #0
|
||||
@ -3526,7 +3510,7 @@ missing_no_keypress:
|
||||
|
||||
jmp missing_display_loop ; 3
|
||||
|
||||
|
||||
.align $100
|
||||
|
||||
;=================================
|
||||
; do nothing
|
||||
@ -3566,9 +3550,6 @@ gloop2: dex ; 2
|
||||
|
||||
|
||||
|
||||
k_picture:
|
||||
.word k_low,k_high
|
||||
|
||||
.include "k_40_48d.inc"
|
||||
|
||||
krg:
|
||||
|
58
ootw/README
58
ootw/README
@ -178,3 +178,61 @@ L2 Memory map:
|
||||
c0-cf I/O
|
||||
d0-ff ROM
|
||||
|
||||
|
||||
|
||||
since there seems to be vague interest in this, reasons to use the
|
||||
various graphics modes.
|
||||
|
||||
lores benefits:
|
||||
+ 40x48, 15 colors (two greys) (which is fine, as I use one for sprite transparency)
|
||||
+ hardware page flipping
|
||||
+ each display only 1kB (leaving lots of room for code) (also fast to clear screen)
|
||||
+ (software) sprites and animations are relatively small
|
||||
|
||||
lores downsides:
|
||||
+ blocky
|
||||
+ pixels are rectangular
|
||||
+ framebuffer is non-linear (to get to next line requires a lookup table, not a simple add)
|
||||
+ odd/even lines are high/low nibble in a byte, so to draw sprites properly need a lot of shifting an masking (I cheat and only allow sprites on even lines)
|
||||
+ framebuffer has "memory holes" between lines. These are areas of memory reserved for expansion card use, so you can't just load a 1kB image straight to the framebuffer as it could break things.
|
||||
+ NTSC artifact fringing between colors
|
||||
+ lores PAGE2 is not frequently used so is broken in some emulators and on some early IIgs models
|
||||
|
||||
|
||||
hires benefits:
|
||||
+ 140x192 6 colors
|
||||
+ hardware page flipping
|
||||
|
||||
hires downsides:
|
||||
+ non-linear framebuffer even worse than lo-res
|
||||
+ 8kB per page. two pages of hires takes 1/3 of total RAM in an Apple II+
|
||||
+ NTSC artifact color. If the bit patterns in adjacent pixels is 00 it makes black, 11 makes white, so if you join two different colors you get lines between them
|
||||
+ you get 7 pixels per 2-bytes. Which means a lot of dividing by 7, slow on 6502
|
||||
+ each 3.5 pixels has a bit indicating palette (black,white,green,purple) or (black,white,orange,blue). You get zx-spectrum like color clash if you try to mix colors too close together
|
||||
+ to get fast software sprites usually you make a set of 7 pre-shifted versions of the sprites, which takes up a lot of room
|
||||
|
||||
|
||||
|
||||
double-lores
|
||||
+ 80x48, 15 colors
|
||||
+ requires IIe or newer (80 column card)
|
||||
+ requires drawing extra 1kB of data to bank-switched AUX RAM
|
||||
+ AUX ram colors are shifted one bit to left from main bank colors
|
||||
+ while it's possible to get hardware page flipping, it's really complex
|
||||
|
||||
double-hires
|
||||
+ 140x192, 15 colors!
|
||||
+ requires IIe or newer and 128k of RAM
|
||||
+ requires drawing 8k of additional data to bank-switched AUX RAM
|
||||
+ again, page flipping is complex
|
||||
|
||||
|
||||
In any case, I chose lo-res for the Another World conversion for 3 reasons
|
||||
1. Another World traditionally has 16 colors (and I like the lo-res colors)
|
||||
2. I wanted to fit levels in 48k, and as many as possible on a 140k disk
|
||||
3. I am too lazy to implement a full hi-res sprite library
|
||||
|
||||
|
||||
The recent C64 Another World conversion looks much more impressive and hi-res,
|
||||
but I think they use a 1MB cartridge just for the intro movie alone
|
||||
(which is possible larger than the size of the original game for the Amiga).
|
||||
|
Loading…
Reference in New Issue
Block a user