41 lines
1.2 KiB
Kotlin
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
|
|
}
|
|
} |