feat: better DMA, MBC1, fixup tests #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
- push | |
jobs: | |
main_test: | |
name: Test changes to main | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install toolchain | |
run: curl https://sh.rustup.rs -sSf | sh -s -- --profile minimal --default-toolchain stable -y && echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
- name: Run cargo tests (meowgb-core) | |
run: cargo test -p meowgb-core | |
- name: Build release (meowgb-tests) | |
run: cargo build -p meowgb-tests --release | |
- name: Run test ROM (blargg cpu_instrs) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/blargg/roms/cpu_instrs.gb test -m 100000000 -s meowgb-tests/expected_output/blargg/cpu_instrs.bin | |
- name: Run test ROM (blargg instr_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/blargg/roms/instr_timing.gb test -m 100000000 -s meowgb-tests/expected_output/blargg/instr_timing.bin | |
- name: Run test ROM (blargg mem_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/blargg/roms/mem_timing.gb test -m 100000000 -s meowgb-tests/expected_output/blargg/mem_timing.bin | |
- name: Run test ROM (mooneye-test-suite add_sp_e_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/add_sp_e_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/add_sp_e_timing.bin | |
- name: Run test ROM (mooneye-test-suite boot_hwio-dmgABCmgb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/boot_hwio-dmgABCmgb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/boot_hwio-dmgABCmgb.bin | |
- name: Run test ROM (mooneye-test-suite boot_regs-dmgABC) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/boot_regs-dmgABC.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/boot_regs-dmgABC.bin | |
- name: Run test ROM (mooneye-test-suite call_cc_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/call_cc_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/call_cc_timing.bin | |
- name: Run test ROM (mooneye-test-suite call_cc_timing2) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/call_cc_timing2.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/call_cc_timing2.bin | |
- name: Run test ROM (mooneye-test-suite call_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/call_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/call_timing.bin | |
- name: Run test ROM (mooneye-test-suite call_timing2) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/call_timing2.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/call_timing2.bin | |
- name: Run test ROM (mooneye-test-suite di_timing-GS) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/di_timing-GS.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/di_timing-GS.bin | |
- name: Run test ROM (mooneye-test-suite div_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/div_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/div_timing.bin | |
- name: Run test ROM (mooneye-test-suite ei_sequence) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ei_sequence.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ei_sequence.bin | |
- name: Run test ROM (mooneye-test-suite ei_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ei_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ei_timing.bin | |
- name: Run test ROM (mooneye-test-suite halt_ime0_ei) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/halt_ime0_ei.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/halt_ime0_ei.bin | |
- name: Run test ROM (mooneye-test-suite halt_ime0_nointr_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/halt_ime0_nointr_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/halt_ime0_nointr_timing.bin | |
- name: Run test ROM (mooneye-test-suite halt_ime1_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/halt_ime1_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/halt_ime1_timing.bin | |
- name: Run test ROM (mooneye-test-suite halt_ime1_timing2-GS) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/halt_ime1_timing2-GS.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/halt_ime1_timing2-GS.bin | |
- name: Run test ROM (mooneye-test-suite if_ie_registers) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/if_ie_registers.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/if_ie_registers.bin | |
- name: Run test ROM (mooneye-test-suite intr_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/intr_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/intr_timing.bin | |
- name: Run test ROM (mooneye-test-suite jp_cc_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/jp_cc_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/jp_cc_timing.bin | |
- name: Run test ROM (mooneye-test-suite jp_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/jp_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/jp_timing.bin | |
- name: Run test ROM (mooneye-test-suite ld_hl_sp_e_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ld_hl_sp_e_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ld_hl_sp_e_timing.bin | |
- name: Run test ROM (mooneye-test-suite oam_dma_restart) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/oam_dma_restart.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/oam_dma_restart.bin | |
- name: Run test ROM (mooneye-test-suite oam_dma_start) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/oam_dma_start.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/oam_dma_start.bin | |
- name: Run test ROM (mooneye-test-suite oam_dma_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/oam_dma_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/oam_dma_timing.bin | |
- name: Run test ROM (mooneye-test-suite pop_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/pop_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/pop_timing.bin | |
- name: Run test ROM (mooneye-test-suite push_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/push_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/push_timing.bin | |
- name: Run test ROM (mooneye-test-suite rapid_di_ei) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/rapid_di_ei.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/rapid_di_ei.bin | |
- name: Run test ROM (mooneye-test-suite ret_cc_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ret_cc_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ret_cc_timing.bin | |
- name: Run test ROM (mooneye-test-suite ret_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ret_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ret_timing.bin | |
- name: Run test ROM (mooneye-test-suite reti_intr_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/reti_intr_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/reti_intr_timing.bin | |
- name: Run test ROM (mooneye-test-suite reti_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/reti_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/reti_timing.bin | |
- name: Run test ROM (mooneye-test-suite rst_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/rst_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/rst_timing.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/bits_bank1) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/bits_bank1.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/bits_bank1.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/bits_bank2) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/bits_bank2.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/bits_bank2.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/bits_mode) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/bits_mode.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/bits_mode.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/bits_ramg) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/bits_ramg.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/bits_ramg.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/multicart_rom_8Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/multicart_rom_8Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/multicart_rom_8Mb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/ram_256kb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/ram_256kb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/ram_256kb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/ram_64kb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/ram_64kb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/ram_64kb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_16Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_16Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_16Mb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_1Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_1Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_1Mb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_2Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_2Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_2Mb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_4Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_4Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_4Mb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_512kb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_512kb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_512kb.bin | |
- name: Run test ROM (mooneye-test-suite MBC1/rom_8Mb) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/MBC1/rom_8Mb.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/MBC1/rom_8Mb.bin | |
- name: Run test ROM (mooneye-test-suite bits/mem_oam) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/bits/mem_oam.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/bits/mem_oam.bin | |
- name: Run test ROM (mooneye-test-suite bits/reg_f) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/bits/reg_f.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/bits/reg_f.bin | |
- name: Run test ROM (mooneye-test-suite bits/unused_hwio-GS) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/bits/unused_hwio-GS.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/bits/unused_hwio-GS.bin | |
- name: Run test ROM (mooneye-test-suite instr/daa) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/instr/daa.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/instr/daa.bin | |
- name: Run test ROM (mooneye-test-suite oam_dma/basic) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/oam_dma/basic.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/oam_dma/basic.bin | |
- name: Run test ROM (mooneye-test-suite oam_dma/reg_read) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/oam_dma/reg_read.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/oam_dma/reg_read.bin | |
- name: Run test ROM (mooneye-test-suite ppu/intr_1_2_timing-GS) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ppu/intr_1_2_timing-GS.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ppu/intr_1_2_timing-GS.bin | |
- name: Run test ROM (mooneye-test-suite ppu/intr_2_0_timing) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ppu/intr_2_0_timing.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ppu/intr_2_0_timing.bin | |
- name: Run test ROM (mooneye-test-suite ppu/stat_irq_blocking) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ppu/stat_irq_blocking.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ppu/stat_irq_blocking.bin | |
- name: Run test ROM (mooneye-test-suite ppu/stat_lyc_onoff) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ppu/stat_lyc_onoff.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ppu/stat_lyc_onoff.bin | |
- name: Run test ROM (mooneye-test-suite ppu/vblank_stat_intr-GS) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/ppu/vblank_stat_intr-GS.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/ppu/vblank_stat_intr-GS.bin | |
- name: Run test ROM (mooneye-test-suite timer/div_write) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/div_write.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/div_write.bin | |
- name: Run test ROM (mooneye-test-suite timer/rapid_toggle) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/rapid_toggle.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/rapid_toggle.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim00) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim00.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim00.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim00_div_trigger) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim00_div_trigger.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim00_div_trigger.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim01) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim01.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim01.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim01_div_trigger) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim01_div_trigger.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim01_div_trigger.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim10) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim10.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim10.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim10_div_trigger) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim10_div_trigger.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim10_div_trigger.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim11) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim11.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim11.bin | |
- name: Run test ROM (mooneye-test-suite timer/tim11_div_trigger) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tim11_div_trigger.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tim11_div_trigger.bin | |
- name: Run test ROM (mooneye-test-suite timer/tima_reload) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tima_reload.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tima_reload.bin | |
- name: Run test ROM (mooneye-test-suite timer/tima_write_reloading) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tima_write_reloading.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tima_write_reloading.bin | |
- name: Run test ROM (mooneye-test-suite timer/tma_write_reloading) | |
if: always() | |
run: ./target/release/meowgb-tests test-roms/mooneye-test-suite/roms/timer/tma_write_reloading.gb test -m 100000000 -s meowgb-tests/expected_output/mooneye-test-suite/timer/tma_write_reloading.bin |