Mercurial > repos > blastem
comparison segacd.c @ 2120:91ed3c4cdfd9
Fix the regression in Stellar Fire while still passing RET/DMNA tests
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 10 Mar 2022 20:45:50 -0800 |
parents | 5ec2f97365a2 |
children | 76ea19e8b1a9 |
comparison
equal
deleted
inserted
replaced
2119:5ec2f97365a2 | 2120:91ed3c4cdfd9 |
---|---|
579 cd->bank_toggle = value & BIT_RET; | 579 cd->bank_toggle = value & BIT_RET; |
580 genesis_context *gen = cd->genesis; | 580 genesis_context *gen = cd->genesis; |
581 cd->gate_array[reg] &= 0xFFC0; | 581 cd->gate_array[reg] &= 0xFFC0; |
582 if (changed & BIT_MEM_MODE) { | 582 if (changed & BIT_MEM_MODE) { |
583 //FIXME: ram banks are supposed to be interleaved when in 2M mode | 583 //FIXME: ram banks are supposed to be interleaved when in 2M mode |
584 cd->main_swap_request = old_bank_toggle != cd->bank_toggle; | 584 cd->main_swap_request = cd->bank_toggle && !old_bank_toggle; |
585 if (value & BIT_MEM_MODE) { | 585 if (value & BIT_MEM_MODE) { |
586 //switch to 1M mode | 586 //switch to 1M mode |
587 gen->m68k->mem_pointers[cd->memptr_start_index + 1] = (value & BIT_RET) ? cd->word_ram + 0x10000 : cd->word_ram; | 587 gen->m68k->mem_pointers[cd->memptr_start_index + 1] = (value & BIT_RET) ? cd->word_ram + 0x10000 : cd->word_ram; |
588 gen->m68k->mem_pointers[cd->memptr_start_index + 2] = NULL; | 588 gen->m68k->mem_pointers[cd->memptr_start_index + 2] = NULL; |
589 m68k->mem_pointers[0] = NULL; | 589 m68k->mem_pointers[0] = NULL; |