# HG changeset patch # User Michael Pavone # Date 1487916574 28800 # Node ID a8313793216a8f61886604479079667920447ad9 # Parent 2e6dcb5c11a28a27a251493a36bbec77c792d8db Minor xband fixes diff -r 2e6dcb5c11a2 -r a8313793216a xband.c --- a/xband.c Thu Feb 23 00:08:37 2017 -0800 +++ b/xband.c Thu Feb 23 22:09:34 2017 -0800 @@ -47,7 +47,7 @@ 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 @@ 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 @@ 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; diff -r 2e6dcb5c11a2 -r a8313793216a xband.h --- a/xband.h Thu Feb 23 00:08:37 2017 -0800 +++ b/xband.h Thu Feb 23 22:09:34 2017 -0800 @@ -2,7 +2,7 @@ #define XBAND_H_ #include -#define XBAND_REGS 0xB6 +#define XBAND_REGS 0xE0 typedef struct { uint16_t cart_space[0x200000];