summaryrefslogtreecommitdiff
path: root/xband.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-02-23 22:09:34 -0800
committerMichael Pavone <pavone@retrodev.com>2017-02-23 22:09:34 -0800
commit9334324221481f0d0e0714a94f80bea3c7d59dfc (patch)
treea29c0d63603cfa6f14dac828c0cc43503d20cc3f /xband.c
parent1a3574ab4863a11bc40b6c7f760e905affc3cf31 (diff)
Minor xband fixes
Diffstat (limited to 'xband.c')
-rw-r--r--xband.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/xband.c b/xband.c
index d24c2a8..67720b6 100644
--- a/xband.c
+++ b/xband.c
@@ -47,7 +47,7 @@ static void update_control(genesis_context *gen, uint8_t value)
if (value & BIT_ROM_HI) {
gen->m68k->mem_pointers[0] = (uint16_t *)gen->save_storage;
gen->m68k->mem_pointers[1] = NULL;
- gen->m68k->mem_pointers[2] = x->cart_space;
+ gen->m68k->mem_pointers[2] = gen->cart;
gen->m68k->mem_pointers[3] = x->cart_space - 0x100000;
} else {
gen->m68k->mem_pointers[0] = x->cart_space;
@@ -182,6 +182,7 @@ static uint8_t xband_reg_read_b(uint32_t address, void *context)
if (address < 0x3BFE00) {
uint32_t offset = (address - 0x3BC001) / 2;
if (offset < XBAND_REGS) {
+ printf("Regsister read: %X\n", address);
return x->regs[offset];
} else {
printf("Unhandled register read from address %X\n", address);
@@ -248,6 +249,12 @@ rom_info xband_configure_rom(tern_node *rom_db, void *rom, uint32_t rom_size, vo
if (lock_on && lock_on_size >= 0x200) {
memcpy(x->cart_space + 0x80, ((uint16_t *)lock_on) + 0x80, 0x100);
}
+ //observed power on values
+ memset(x->regs, 0x5D, sizeof(x->regs));
+ x->regs[0x7C] = 0;
+ x->regs[0x7D] = 0x80;
+ x->regs[0xB4] = 0x7F;
+
byteswap_rom(0x400000, x->cart_space);
info.map_chunks = base_chunks + 5;