6502Android/app/src/main/kotlin/android/emu6502/nes/mappers/Mapper.kt

19 lines
521 B
Kotlin

package android.emu6502.nes.mappers
import android.emu6502.CPU
import android.emu6502.nes.Cartridge
import android.emu6502.nes.PPU
interface Mapper {
fun read(address: Int): Int
fun write(address: Int, value: Int)
fun step()
companion object {
fun newMapper(cartridge: Cartridge, ppu: PPU, cpu: CPU): Mapper =
when (cartridge.mapper.toInt()) {
4 -> MMC3(cartridge, ppu, cpu)
else -> throw NotImplementedError("Mapper ${cartridge.mapper.toInt()} not implemented")
}
}
}