comparison blastem.c @ 777:79b10b421d3c

Support large flat-mapped ROMs like Bad Apple or that Mortal Kombat hack
author Michael Pavone <pavone@retrodev.com>
date Mon, 20 Jul 2015 21:43:17 -0700
parents cbf97d335444
children 6e1711d56633
comparison
equal deleted inserted replaced
776:cbf97d335444 777:79b10b421d3c
108 exit(1); 108 exit(1);
109 } 109 }
110 return load_smd_rom(filesize, f); 110 return load_smd_rom(filesize, f);
111 } 111 }
112 } 112 }
113 cart = malloc(filesize); 113 cart = malloc(nearest_pow2(filesize));
114 if (filesize != fread(cart, 1, filesize, f)) { 114 if (filesize != fread(cart, 1, filesize, f)) {
115 fprintf(stderr, "Error reading from %s\n", filename); 115 fprintf(stderr, "Error reading from %s\n", filename);
116 exit(1); 116 exit(1);
117 } 117 }
118 fclose(f); 118 fclose(f);
758 void *z80_write_bank_reg(uint32_t location, void * vcontext, uint8_t value) 758 void *z80_write_bank_reg(uint32_t location, void * vcontext, uint8_t value)
759 { 759 {
760 z80_context * context = vcontext; 760 z80_context * context = vcontext;
761 761
762 context->bank_reg = (context->bank_reg >> 1 | value << 8) & 0x1FF; 762 context->bank_reg = (context->bank_reg >> 1 | value << 8) & 0x1FF;
763 if (context->bank_reg < 0x80) { 763 if (context->bank_reg < 0x100) {
764 genesis_context *gen = context->system; 764 genesis_context *gen = context->system;
765 context->mem_pointers[1] = get_native_pointer(context->bank_reg << 15, (void **)gen->m68k->mem_pointers, &gen->m68k->options->gen); 765 context->mem_pointers[1] = get_native_pointer(context->bank_reg << 15, (void **)gen->m68k->mem_pointers, &gen->m68k->options->gen);
766 } else { 766 } else {
767 context->mem_pointers[1] = NULL; 767 context->mem_pointers[1] = NULL;
768 } 768 }