2018-07-12 16:30:35 +00:00
|
|
|
[< back to index](../index.md)
|
|
|
|
|
|
|
|
# NES/Famicom-oriented modules
|
|
|
|
|
2018-12-17 16:18:29 +00:00
|
|
|
## nes_hardware
|
2018-07-12 16:30:35 +00:00
|
|
|
|
|
|
|
The `nes_hardware` module is imported automatically on NES targets.
|
|
|
|
|
|
|
|
TODO
|
|
|
|
|
2018-12-17 16:18:29 +00:00
|
|
|
## nes_mmc4
|
2018-07-12 16:30:35 +00:00
|
|
|
|
|
|
|
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()`
|
|
|
|
|
2018-12-17 16:18:29 +00:00
|
|
|
Switches nametable mirroring to horizontal.
|
|
|
|
|
|
|
|
## nes_joy
|
|
|
|
|
|
|
|
Provides an interface for reading joypads that is compatible with the `joy` module.
|
|
|
|
|
|
|
|
#### `alias input_a = input_btn`
|
|
|
|
|
|
|
|
1 if A button pressed, 0 id not pressed.
|
|
|
|
|
|
|
|
#### `byte input_b`
|
|
|
|
|
|
|
|
1 if B button pressed, 0 id not pressed.
|
|
|
|
|
|
|
|
#### `byte input_select`
|
|
|
|
|
|
|
|
1 if Select button pressed, 0 id not pressed.
|
|
|
|
|
|
|
|
#### `byte input_start`
|
|
|
|
|
|
|
|
1 if Start button pressed, 0 id not pressed.
|
|
|
|
|
|
|
|
#### `void read_joy1()`
|
|
|
|
|
|
|
|
Reads the joypad from the port 1.
|
|
|
|
|
|
|
|
#### `void read_joy2()`
|
|
|
|
|
|
|
|
Reads the joypad from the port 2.
|
|
|
|
|
|
|
|
#### `void read_also_joy1()`
|
|
|
|
|
|
|
|
Reads the joypad from the port 1 and adds its readouts to the current readouts.
|
|
|
|
|
|
|
|
#### `void read_also_joy2()`
|
|
|
|
|
|
|
|
Reads the joypad from the port 2 and adds its readouts to the current readouts.
|
|
|
|
|
|
|
|
#### `void nes_reset_joy()`
|
|
|
|
|
|
|
|
Resets the state variables.
|
|
|
|
Unlike `reset_joy`, this resets all the NES button states.
|
|
|
|
|
|
|
|
## nes_joy1_default
|
|
|
|
|
|
|
|
Defines the joystick in port 1 as the default joystick.
|
|
|
|
|
|
|
|
#### `alias read_joy = read_joy1`
|