mirror of
https://github.com/KarolS/millfork.git
synced 2024-12-26 12:29:26 +00:00
40 lines
1.0 KiB
Markdown
40 lines
1.0 KiB
Markdown
|
[< back to index](../index.md)
|
||
|
|
||
|
# NES/Famicom-oriented modules
|
||
|
|
||
|
## `nes_hardware` module
|
||
|
|
||
|
The `nes_hardware` module is imported automatically on NES targets.
|
||
|
|
||
|
TODO
|
||
|
|
||
|
## `nes_mmc4` module
|
||
|
|
||
|
The `nes_mmc4` module is imported automatically on the NES MMC4 target.
|
||
|
and contains routines related to MMC4 bankswitching.
|
||
|
|
||
|
#### `void set_prg_bank(byte a)`
|
||
|
|
||
|
Changes the $8000-$BFFF PRG bank.
|
||
|
|
||
|
#### `void set_chr_bank0(byte a)`
|
||
|
|
||
|
Changes the CHR bank 0 ($0000-$0fff in the PPU memory space).
|
||
|
|
||
|
The high nibble (0 or 1) selects between `chrrom0` and `chrrom1` segments.
|
||
|
The low nibble L (0-$F) selects a 4K-aligned address in the segment ($L000).
|
||
|
|
||
|
#### `void set_chr_bank1(byte a)`
|
||
|
|
||
|
Changes the CHR bank 1 ($1000-$1fff in the PPU memory space).
|
||
|
|
||
|
The high nibble (0 or 1) selects between `chrrom0` and `chrrom1` segments.
|
||
|
The low nibble L (0-$F) selects a 4K-aligned address in the segment ($L000).
|
||
|
|
||
|
#### `void set_vertical_mirroring()`
|
||
|
|
||
|
Switches nametable mirroring to vertical.
|
||
|
|
||
|
#### `void set_horizontal_mirroring()`
|
||
|
|
||
|
Switches nametable mirroring to horizontal.
|