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

41 lines
1.2 KiB
Kotlin

package android.emu6502.nes
import java.util.*
data class Cartridge(
// @formatter:off
val pgr: IntArray, // PRG-ROM banks
val chr: IntArray, // CHR-ROM banks
val mapper: Byte, // mapper type
var mirror: Int, // mirroring mode
val battery: Byte, // battery present
val sram: IntArray = IntArray(0x2000) // Save RAM
// @formatter:on
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other?.javaClass != javaClass) return false
other as Cartridge
if (!Arrays.equals(pgr, other.pgr)) return false
if (!Arrays.equals(chr, other.chr)) return false
if (!Arrays.equals(sram, other.sram)) return false
if (mapper != other.mapper) return false
if (mirror != other.mirror) return false
if (battery != other.battery) return false
return true
}
override fun hashCode(): Int {
var result = Arrays.hashCode(pgr)
result = 31 * result + Arrays.hashCode(chr)
result = 31 * result + Arrays.hashCode(sram)
result = 31 * result + mapper
result = 31 * result + mirror
result = 31 * result + battery
return result
}
}