소스 검색

Fix CNROM CHR ROM size; Fail on bad ROM file size

master
Nathaniel Walizer 10 달 전
부모
커밋
1398456fc7
2개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. +9
    -1
      src/cart.c
  2. +1
    -1
      src/map/cnrom.c

+ 9
- 1
src/cart.c 파일 보기

@@ -34,7 +34,7 @@ int nes_cart_init_mem(nes_cart* cart, void* mem, int len) {
}

if (0 == status) {
int chr_size = nes_chr_page_size * hdr->chr_size_lsb;
int chr_size = nes_chr_page_size * hdr->chr_size_lsb * 2;
INES_INFO("%d KB CHR ROM", chr_size / 1024);
cart->chr_rom = ptr;
cart->chr_rom_banks = hdr->chr_size_lsb * 2;
@@ -51,6 +51,14 @@ int nes_cart_init_mem(nes_cart* cart, void* mem, int len) {
}
}

if (0 == status) {
if ((ptr - mem) != len) {
INES_ERR("Bad file size: read %d, expected %d",
(int)(ptr - mem), len);
status = -1;
}
}

if (0 == status) {
if (hdr->flags_6 & ines_Flag_Horizontal) {
cart->flags |= Cart_Flag_Horizontal;


+ 1
- 1
src/map/cnrom.c 파일 보기

@@ -35,7 +35,7 @@ static void* cnrom_init(nes_mapper* nes_map, nes_cart* cart) {
map->prg_rom = cart->prg_rom;
map->prg_rom_banks = cart->prg_rom_banks;
map->chr_rom = cart->chr_rom;
map->chr_rom_banks = cart->chr_rom_banks;
map->chr_rom_banks = cart->chr_rom_banks / 2;
map->mirror = (cart->flags & Cart_Flag_Horizontal) ? 0 : 1;
cnrom_reset(map);
}


불러오는 중...
취소
저장