Mercurial > repos > blastem
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 } |