mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-06-04 02:36:03 +00:00
adding tests and fixing VMDATA(L-H) and adding read registers for vram
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// Created by cbihan on 2/1/21.
|
||||
//
|
||||
|
||||
#include <criterion/criterion.h>
|
||||
#include <bitset>
|
||||
#include "../tests.hpp"
|
||||
#include "../../sources/SNES.hpp"
|
||||
#include "../../sources/Memory/MemoryBus.hpp"
|
||||
#include "../../sources/PPU/PPU.hpp"
|
||||
|
||||
using namespace ComSquare;
|
||||
|
||||
Test(PPU_read_1, vram_data_read_full)
|
||||
{
|
||||
Init()
|
||||
snes._bus->write(0x2115, 0b10000000);
|
||||
snes._bus->write(0x2116, 0);
|
||||
snes._bus->write(0x2117, 0);
|
||||
snes.ppu->vram->write_internal(0, 0b11111111);
|
||||
snes.ppu->vram->write_internal(1, 0b11111111);
|
||||
|
||||
snes._bus->write(0x2116, 0);
|
||||
snes._bus->write(0x2117, 0);
|
||||
uint8_t tmp = snes._bus->read(0x2139);
|
||||
cr_expect(tmp == 0b11111111, "Got %X expected 0xFF", tmp);
|
||||
tmp = snes._bus->read(0x213a);
|
||||
cr_expect(tmp == 0b11111111, "Got %X expected 0xFF", tmp);
|
||||
}
|
||||
|
||||
Test(PPU_read_1, vram_data_read_half)
|
||||
{
|
||||
Init()
|
||||
snes._bus->write(0x2116, 0);
|
||||
snes._bus->write(0x2117, 0);
|
||||
snes.ppu->vram->write_internal(0, 0b01101001);
|
||||
snes.ppu->vram->write_internal(1, 0b11111111);
|
||||
|
||||
snes._bus->write(0x2116, 0);
|
||||
snes._bus->write(0x2117, 0);
|
||||
uint8_t tmp = snes._bus->read(0x2139);
|
||||
cr_expect(tmp == 0b01101001, "Got %X expected 0x69", tmp);
|
||||
tmp = snes._bus->read(0x213a);
|
||||
cr_expect(tmp == 0b11111111, "Got %X expected 0xFF", tmp);
|
||||
}
|
||||
@@ -55,6 +55,19 @@ Test(PPU_write_2, vmadd_full_data)
|
||||
cr_assert_eq(snes.ppu->_registers._vmadd.vmadd, 0b1111111111111111);
|
||||
}
|
||||
|
||||
Test(PPU_write_2, vmadd_full_data_check_ram)
|
||||
{
|
||||
Init()
|
||||
snes._bus->write(0x2115, 0b10000000);
|
||||
snes._bus->write(0x2116, 2);
|
||||
snes._bus->write(0x2117, 0);
|
||||
snes._bus->write(0x2118, 0xFF);
|
||||
snes._bus->write(0x2119, 0xFF);
|
||||
cr_assert(snes.ppu->_registers._vmadd.vmadd == 3, "Got %d but expected 3", snes.ppu->_registers._vmadd.vmadd);
|
||||
cr_assert(snes.ppu->vram->read_internal(4) == 0xFF, "Got %X but expected 0xFF", snes.ppu->vram->read_internal(4));
|
||||
cr_assert(snes.ppu->vram->read_internal(5) == 0xFF, "Got %X but expected 0xFF", snes.ppu->vram->read_internal(5));
|
||||
}
|
||||
|
||||
Test(PPU_write_2, vmadd_full_high_byte_null)
|
||||
{
|
||||
Init()
|
||||
|
||||
Reference in New Issue
Block a user