★ HARDWARE Manual ★ VDP2 User's Manual ★ Chapter 5 Normal scroll screenLine scroll table (VRAM) Horizontal coordinate increment →→→→ Scroll screen ┏━━━━━━━━━━━━━━━━━━┓ ┏━┯━┯━┯━┯━┯━┯━ ┃ 1st line horizontal screen scroll value ┃ ┐ ┌── → ┃ │ │ │ │ │ │ │ 1st line ┠──────────────────┨ │ │ ┣━ ┿━┿━┿━┿━┿━┿━ ┃ 1st line vertical screen scroll value ┃ ├ ┘ ┌─ → ┃ │ │ │ │ │ │ │ 2nd line ┠──────────────────┨ │ │ ┣━ ┿━┿━┿━┿━┿━┿━ ┃ 1st line horizontal coordinate increment ┃ ┘ │ ┃ │ │ │ │ │ │ │ 3rd line ┣━━━━━━━━━━━━━━━━━━┫ │ ┣━┿━┿━┿ ━┿━┿━┿━ ┃ 2nd line horizontal screen scroll value ┃ ┐ │ ┃ │ │ │ │ │ │ │ 4th line ┠──────────────────┨ │ │ ┣━┿━┿ ━┿━┿━┿━┿━ ┃ 2nd line vertical screen scroll value ┃ ├─┘ ┃ │ │ │ │ │ │ │ 5th line ┠──────────────────┨│┣━┿━┿ ━┿━┿━┿━┿━ ┃ 2nd line horizontal coordinate increment ┃ ┘ ┃ │ │ │ │ │ │ │ ┣━━━━━━━━━━━━━━━━━━┫
● Horizontal and vertical screen scroll value registers Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┰─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ + 0H │-│-│-│-│-┃ Integer part (11 bits) │ └─┴─┴─┴─┴─┸─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┬─┬─┬─┰─┬─┬─┬─┬─┬─┬─┬─┐ + 2H │ Decimal part (8 bits) ┃-│-│-│-│-│-│-│-│ └─┴─┴─┴─┴─┴─┴─┴─┸─┴─┴─┴─┴─┴─┴─┴─┘ ● Horizontal coordinate increment Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ + 0H │-│-│-│-│-│-│-│-│-│-│-│-│-│ Integer part │ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┬─┬─┬─┰─┬─┬─┬─┬─┬─┬─┬─┐ + 2H │ Decimal part (8 bits) ┃-│-│-│-│-│-│-│-│ └─┴─┴─┴─┴─┴─┴─┴─┸─┴─┴─┴─┴─┴─┴─┴─┘ [Note] "-" is ignored
● When horizontal and vertical screen scroll values and horizontal coordinate increments are specified for each line Line scroll table (VRAM) MSB LSB ┌─────────────────────────┐ Line scroll ─ → + 00H │ Horizontal screen scroll value of the first line (integer part) │ Table address ├─────────────────────────┤ + 02H │ Horizontal screen scroll value of the first line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ Vertical screen scroll value of the first line (integer part) │ ├─────────────────────────┤ + 06H │ Vertical screen scroll value of the first line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Horizontal coordinate increment of the first line (integer part) │ ├─────────────────────────┤ + 0AH │ Horizontal coordinate increment of the first line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ 2nd line horizontal screen scroll value (integer part) │ ├─────────────────────────┤ + 0EH │ 2nd line horizontal screen scroll value (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 10H │ Vertical screen scroll value of the second line (integer part) │ ├─────────────────────────┤ + 12H │ Vertical screen scroll value of the second line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 14H │ Horizontal coordinate increment of the second line (integer part) │ ├─────────────────────────┤ + 16H │ Horizontal coordinate increment of the second line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥
● When the vertical screen scroll value and horizontal coordinate increment are specified every two lines Line scroll table (VRAM) MSB LSB ┌─────────────────────────┐ Line scroll ─ → + 00H │ Vertical screen scroll value of the first line (integer part) │ Table address ├─────────────────────────┤ + 02H │ Vertical screen scroll value of the first line (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ 1st and 2nd line horizontal coordinate increment (integer part) │ ├─────────────────────────┤ + 06H │ 1st and 2nd line horizontal coordinate increment (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Vertical screen scroll value of the 3rd line (integer part) │ ├─────────────────────────┤ + 0AH │ 3rd line vertical screen scroll value (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ 3rd and 4th line horizontal coordinate increment (integer part) │ ├─────────────────────────┤ + 0EH │ 3rd and 4th line horizontal coordinate increment (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ [Note] The vertical display coordinates of lines other than the specified line are The vertical screen scroll value for the specified line plus the vertical coordinate increment.
● When the horizontal screen scroll value and horizontal coordinate increment are specified every 4 lines (no vertical line scroll) Line scroll table (VRAM) MSB LSB ┌─────────────────────────┐ Line scroll ─ → + 00H │ Horizontal screen scroll value for lines 1 to 4 (integer part) │ Table address ├─────────────────────────┤ + 02H │ Horizontal screen scroll value for lines 1 to 4 (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ Horizontal coordinate increment of lines 1 to 4 (integer part) │ ├─────────────────────────┤ + 06H │ Horizontal coordinate increment of lines 1 to 4 (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Horizontal screen scroll value of the 5th to 8th lines (integer part) │ ├─────────────────────────┤ + 0AH │ Horizontal screen scroll value of the 5th to 8th lines (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ Horizontal coordinate increment of 5th to 8th lines (integer part) │ ├─────────────────────────┤ + 0EH │ Horizontal coordinate increment of 5th to 8th lines (decimal part) │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━┥
Vertical cell scroll table (VRAM) ┌─────────────────┐ │ Vertical screen scroll value of the first cell │ ──┐ ├─────────────────┤ │ │ Vertical screen scroll value of the second cell │ ──┼─┐ ├─────────────────┤ │ │ │ │ Vertical screen scroll value of the 3rd cell │ ──┼─┼─┐ ├─────────────────┤ │ │ │ │ │ │ │ │ │ ↓ ↓ ↓ │ │ │ │ │ │ │ │ │ │ │ ─┼─┼─┼─┼─┼─┼─┼─┼─┼─ │ ┏┿━┿━┿━┿━┿━┿━┿━┿━━ TV screen ─┼╂┼─┼─┼─┼─┼─┼─┼─┼─ │ ┃ │ │ │ │ │ │ │ │ │ │ ─┼╂┼─┼─┼─┼─┼─┼─┼─┼─ │ ┃ │ │ │ │ │ │ │ │ │ │ ─┼╂┼─┼─┼─┼─┼─┼─┼─┼─ │ ┃ │ │ │ │ │ │ │ │ │ │ ─┼╂┼─┼─┼─┼─┼─┼─┼─┼─ │ ┃ │ │ │ │ │ │ │ │ │ │ ─┼╂┼─┼─┼─┼─┼─┼─┼─┼─ ┃ ├─┤ ↑ Vertical screen scroll value effective area of the first cell
● Vertical screen scroll value Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┰─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ + 0H │-│-│-│-│-┃ Integer part (11 bits) │ └─┴─┴─┴─┴─┸─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ Bit FE DC B A 9 8 7 6 5 4 3 2 1 0 ┌─┬─┬─┬─┬─┬─┬─┬─┰─┬─┬─┬─┬─┬─┬─┬─┐ + 2H │ Decimal part (8 bits) ┃-│-│-│-│-│-│-│-│ └─┴─┴─┴─┴─┴─┴─┴─┸─┴─┴─┴─┴─┴─┴─┴─┘ [Note] "-" is ignored
● When scrolling vertical cells only for NBG0 Vertical cell scroll table (VRAM) MSB LSB ┌──────────────────────────┐ Vertical cell scroll → + 00H │ Vertical screen scroll value / integer part of the first cell of NBG0 │ Table address ├──────────────────────────┤ + 02H │ NBG0 1st cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ Vertical screen scroll value / integer part of the second cell of NBG0 │ ├──────────────────────────┤ + 06H │ NBG0 2nd cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Vertical screen scroll value / integer part of the 3rd cell of NBG0 │ ├──────────────────────────┤ + 0AH │ NBG0 3rd cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ NBG0 4th cell vertical screen scroll value / integer part │ ├──────────────────────────┤ + 0EH │ NBG0 4th cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 10H │ Vertical screen scroll value / integer part of the 5th cell of NBG0 │ ├──────────────────────────┤ + 12H │ Vertical screen scroll value / decimal part of the 5th cell of NBG0 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥
● When scrolling vertical cells only for NBG1 Vertical cell scroll table (VRAM) MSB LSB ┌──────────────────────────┐ Vertical cell scroll → + 00H │ Vertical screen scroll value / integer part of the first cell of NBG1 │ Table address ├──────────────────────────┤ + 02H │ Vertical screen scroll value / decimal part of the first cell of NBG1 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ Vertical screen scroll value / integer part of the second cell of NBG1 │ ├──────────────────────────┤ + 06H │ Vertical screen scroll value / decimal part of the second cell of NBG1 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Vertical screen scroll value / integer part of the 3rd cell of NBG1 │ ├──────────────────────────┤ + 0AH │ Vertical screen scroll value / decimal part of the 3rd cell of NBG1 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ NBG1 4th cell vertical screen scroll value / integer part │ ├──────────────────────────┤ + 0EH │ NBG1 4th cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 10H │ Vertical screen scroll value / integer part of the 5th cell of NBG1 │ ├──────────────────────────┤ + 12H │ Vertical screen scroll value / decimal part of the 5th cell of NBG1 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥
● When scrolling the vertical cells of NBG0 and NBG1 Vertical cell scroll table (VRAM) MSB LSB ┌──────────────────────────┐ Vertical cell scroll → + 00H │ Vertical screen scroll value / integer part of the first cell of NBG0 │ Table address ├──────────────────────────┤ + 02H │ NBG0 1st cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 04H │ Vertical screen scroll value / integer part of the first cell of NBG1 │ ├──────────────────────────┤ + 06H │ Vertical screen scroll value / decimal part of the first cell of NBG1 │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 08H │ Vertical screen scroll value / integer part of the second cell of NBG0 │ ├──────────────────────────┤ + 0AH │ NBG0 2nd cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 0CH │ NBG1 2nd cell vertical screen scroll value / integer part │ ├──────────────────────────┤ + 0EH │ NBG1 2nd cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥ + 10H │ Vertical screen scroll value / integer part of the 3rd cell of NBG0 │ ├──────────────────────────┤ + 12H │ NBG0 3rd cell vertical screen scroll value / decimal part │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━┥
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
--- | --- | N1LSS1 | N1LSS0 | N1LZMX | N1LSCY | N1LSCX | N1VCSC |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
--- | --- | N0LSS1 | N0LSS0 | N0LZMX | N0LSCY | N0LSCX | N0VCSC |
|---|
| N0LSS1, N0LSS0 | 18009AH | Bits 5,4 | For NBG0 |
| N1LSS1, N1LSS0 | 18009AH | Bits 13,12 | For NBG1 |
| NxLSS1 | NxLSS0 | Interlace settings | ||
|---|---|---|---|---|
| Non-interlaced | Monodense interlacing | Dense interlace | ||
0 | 0 | For each line | Every 2 lines | For each line |
0 | 1 | Every 2 lines | Every 4 lines | Every 2 lines |
1 | 0 | Every 4 lines | Every 8 lines | Every 4 lines |
1 | 1 | Every 8 lines | Every 16 lines | Every 8 lines |
| N0LZMX | 18009AH | Bit 3 | For NBG0 |
| N1LZMX | 18009AH | Bit 11 | For NBG1 |
| NxLZMX | process |
|---|---|
0 | Does not scale horizontally on a line-by-line basis |
1 | Scales horizontally in line units |
| N0LSCY | 18009AH | Bit 2 | For NBG0 |
| N1LSCY | 18009AH | Bit 10 | For NBG1 |
| NxLSCY | process |
|---|---|
0 | Does not scroll vertically line by line |
1 | Scrolls vertically line by line |
| N0LSCX | 18009AH | Bit 1 | For NBG0 |
| N1LSCX | 18009AH | Bit 9 | For NBG1 |
| NxLSCX | process |
|---|---|
0 | Does not scroll horizontally line by line |
1 | Scrolls horizontally line by line |
| N0VCSC | 18009AH | Bit 0 | For NBG0 |
| N1VCSC | 18009AH | Bit 8 | For NBG1 |
| NxVCSC | process |
0 | Does not perform vertical cell scrolling |
|---|---|
1 | Perform vertical cell scrolling |
![]() | Restrictions on vertical scrolling function |
|---|
This restriction must also be observed when changing from using the vertical cell scroll function of NBG0 and NBG1 at the same time to not using either of the vertical cell scroll functions.
To disable the vertical cell scroll function of NBG0 from this state, change to the following settings during the same V blank period.
To not use only the vertical cell scroll function of NBG1 from this state, change to the following settings during the same V blank period.
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
--- | --- | --- | --- | --- | --- | --- | --- |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
--- | --- | --- | --- | --- | N0LSTA18 | N0LSTA17 | N0LSTA16 |
|---|
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
N0LSTA15 | N0LSTA14 | N0LSTA13 | N0LSTA12 | N0LSTA11 | N0LSTA10 | N0LSTA9 | N0LSTA8 |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
N0LSTA7 | N0LSTA6 | N0LSTA5 | N0LSTA4 | N0LSTA3 | N0LSTA2 | N0LSTA1 | --- |
|---|
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
--- | --- | --- | --- | --- | --- | --- | --- |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
--- | --- | --- | --- | --- | N1LSTA18 | N1LSTA17 | N1LSTA16 |
|---|
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
N1LSTA15 | N1LSTA14 | N1LSTA13 | N1LSTA12 | N1LSTA11 | N1LSTA10 | N1LSTA9 | N1LSTA8 |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
N1LSTA7 | N1LSTA6 | N1LSTA5 | N1LSTA4 | N1LSTA3 | N1LSTA2 | N1LSTA1 | --- |
|---|
| N0LSTA18 ~ N0LSTA16 | 1800A0H | Bits 2-0 | For NBG0 (upper bit) | N0LSTA15 ~ N0LSTA1 | 1800A2H | Bits 15 to 1 | For NBG0 (lower bit) | N1LSTA18 ~ N1LSTA16 | 1800A4H | Bits 2-0 | For NBG1 (upper bit) | N1LSTA15 ~ N1LSTA1 | 1800A6H | Bits 15 to 1 | For NBG1 (lower bit) |
The actual start VRAM address is calculated by the following formula. If the VRAM capacity is 4M bits, the most significant bit of the address is ignored.
(Line scroll table start address) = (Line scroll table address register value 18 bits) x 4H
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
--- | --- | --- | --- | --- | --- | --- | --- |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
--- | --- | --- | --- | --- | VCSTA18 | VCSTA17 | VCSTA16 |
|---|
15 | 14 | 13 | 12 | 11 | Ten | 09 09 | 08 08 |
VCSTA15 | VCSTA14 | VCSTA13 | VCSTA12 | VCSTA11 | VCSTA10 | VCSTA9 | VCSTA8 |
|---|
07 07 | 06 06 | 05 05 | 04 | 03 03 | 02 02 | 01 01 | 00 |
VCSTA7 | VCSTA6 | VCSTA5 | VCSTA4 | VCSTA3 | VCSTA2 | VCSTA1 | --- |
|---|
| VCSTA18 ~ VCSTA16 | 18009CH | Bits 2-0 | |
| VCSTA15 ~ VCSTA1 | 18009EH | Bits 15 to 1 |
(Vertical cell scroll table start address) = (Vertical cell scroll table address register value 18 bits) x 4H
★ HARDWARE Manual VDP2 User's Manual ★ Chapter 5 Normal scroll screen