removing border in bitmap modes.

Page 1/2
| 2

By flyguille

Prophet (3031)

flyguille's picture

12-12-2013, 14:35

Anyone did it in real hardware?

use a HLine int, when in the line 204 switch to 192 lines mode, on VBLANK int switch back to 212 lines mode, this in way to remove the bottom border.

1) Which bitmap height as maximun is possible to see in the real msx with real monitor?.

2) Does it affects the creation of the upper border timming, or the VBLANK timming?.

3) Sprites works on the bottom ?, thinks about extra space for a score / items board.

4) It is possible in screen 2 /4? how many characters rows is possible?, it will works on 3rd pattern set or will roll up to use the 1st pattern set on all the extra lines?, or the VDP will try "to access to a hipotetical 4th pattern set"?

5) the VDP will heat a bit more, by all the extra work, it overheats dangerous or it is safe?.
PD: I don't have working real hardware, so I wrote theses ideas as homework to somebody.

Login or register to post comments

By MsxKun

Paragon (1115)

MsxKun's picture

12-12-2013, 14:47

Yes. Check some old Matra games, like Ark-a-Noah. 224 lines.

By KdL

Paragon (1450)

KdL's picture

12-12-2013, 15:46

; Overscan mode on Ratiofix! v1.X by KdL (2013.10.26)
; ----------------------------------------------------

    .ORG $9000 -7 -2

    .DB $FE
    .DW VARS
    .DW FINISH
    .DW START
; ----------------------------------------------------
VARS:
    .db 0           ; loader stat (0=asm code ok, 1=image ok)
    .db 0           ; video mode (0=ntsc, 2=pal)
START:
    DI

    IN A,($AA)      ; check for the space key
    AND $F0
    ADD A,8
    OUT ($AA),A
    IN A,($A9)
    AND 1
    CP 0
    RET Z           ; exit

    LD A,212
    CALL INTERRUPT  ; wait for scan line 212
    LD A,(START-1)
    OR 128
    OUT ($99),A
    LD A,128+9
    OUT ($99),A

    LD A,192
    CALL INTERRUPT  ; wait for scan line 192
    LD A,(START-1)
    OUT ($99),A
    LD A,128+9
    OUT ($99),A

    JR START+1      ; main loop
; ----------------------------------------------------
INTERRUPT:
    OUT ($99),A
    LD A,$93
    OUT ($99),A
    LD A,1
    OUT ($99),A
    LD A,$8F
    OUT ($99),A
WAITINT:
    IN A,($99)
    AND 1
    JR Z,WAITINT
    SUB A
    OUT ($99),A
    LD A,$8F
    OUT ($99),A
    RET
; ----------------------------------------------------
FINISH:
    .END

By hit9918

Prophet (2927)

hit9918's picture

12-12-2013, 17:14

I tried on emulator.
It is a pity that the emulators don't render more.
For debuging with bordercolor, could need all 312 lines.

On PAL there are more than 256 lines visible.
With open borders on the real machine there gotta be some ugly mirroring.

I feel like on the bottom side, need to blank screen in interrupt and on the top enable it again.

Another thing I always wondered is the PAL lines beyond 256,
what line value does sprite engine see (same question for MSX1).

And what about the interrupt line, does it have 9bits or does it mirror, some interrupts may run twice per frame.
Does removing borders maybe cause such mirror.

To be picky same question about the 260 lines of NTSC.
Could get interesting when using vertical roll register which moves interrupt location.

By flyguille

Prophet (3031)

flyguille's picture

12-12-2013, 17:32

I wonders in the character modes screen 2 or 4, imagine, that if the vdp internally moves the pointer to the pattern table and color table each 8 character rows, which offset in VRAM will pick up when passing the line 24, maybe there is a 4th pattern/color set available because binary can goes 00 01 10 11...

anyone anytime did the work to test that?.

By ARTRAG

Enlighted (6923)

ARTRAG's picture

12-12-2013, 17:51

IIRC in screen 2/4, lines below 192 display a 4th character bank whose patterns and colors follow those of the former 3.

By flyguille

Prophet (3031)

flyguille's picture

12-12-2013, 17:55

MsxKun wrote:

Yes. Check some old Matra games, like Ark-a-Noah. 224 lines.

why just 224? what other thing prevents to go for more?

By flyguille

Prophet (3031)

flyguille's picture

12-12-2013, 18:13

lets see, 4*2048 + 4*2048 = 16K, no room for the name table,

maybe if using the half or less of the 4th pattern (why not for just a scoreboard), there will be room for the nametable.

But loosing sprites or the half of them.

By ARTRAG

Enlighted (6923)

ARTRAG's picture

12-12-2013, 18:32

Well, overscan is for msx 2 only, so you can use 128KB

By hit9918

Prophet (2927)

hit9918's picture

12-12-2013, 20:36

Why 224 lines.
The 4th screen region appears both on top and bottom of the screen. Keyword mirroring.
My memories of PAL Amiga is 256 lines plus top and bottom border of about 16 lines.
256 - 2*16 = 224 whoops.

The emulator shows less than TV, there I cant see mirroring.
Also make sure to make your tests with a defined "set adjust"

By mars2000you

Enlighted (6428)

mars2000you's picture

12-12-2013, 20:38

Try blueMSX, there's a reason why the blueMSX screenshots are 272x240.

On the other side, I know that some tricks with overscan can't be viewed in an emulator.

Page 1/2
| 2