-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrom.test.js
38 lines (31 loc) · 1.2 KB
/
rom.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import Rom from './rom'
import crc32FromArrayBuffer from './crc32';
const fs = require('fs')
test('ROM CRC', () => {
const romFile = fs.readFileSync('./files/mario.nes')
const rom = new Rom(romFile)
expect(rom.crc32).toBe('d445f698')
})
test('ROM Header', () => {
const romFile = fs.readFileSync('./files/mario.nes')
const rom = new Rom(romFile)
expect(rom.header.format).toBe('Standard iNES')
expect(rom.header.battery).toBe(false)
expect(rom.header.chrRomBanks).toBe(1)
expect(rom.header.fourScreenVram).toBe(false)
expect(rom.header.mapper).toBe(0)
expect(rom.header.mirroring).toBe('Vertical')
expect(rom.header.playChoice10).toBe(false)
expect(rom.header.prgRamBanks).toBe(0)
expect(rom.header.prgRomBanks).toBe(2)
expect(rom.header.trainer).toBe(false)
expect(rom.header.tvColorSystem).toBe('NTSC')
expect(rom.header.vsUnisystem).toBe(false)
})
test('mario.chr', () => {
const romFile = fs.readFileSync('./files/mario.nes')
const rom = new Rom(romFile)
const chrFile = fs.readFileSync('./files/mario.chr')
expect(crc32FromArrayBuffer(chrFile).toString(16)).toStrictEqual('867b51ad')
expect(crc32FromArrayBuffer(rom.chrBytes).toString(16)).toStrictEqual('867b51ad')
})