changeset 1229:a8313793216a

Minor xband fixes
author Michael Pavone <pavone@retrodev.com>
date Thu, 23 Feb 2017 22:09:34 -0800
parents 2e6dcb5c11a2
children 0ed27bb6a658
files xband.c xband.h
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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 <stdint.h>
 
-#define XBAND_REGS 0xB6
+#define XBAND_REGS 0xE0
 
 typedef struct {
 	uint16_t cart_space[0x200000];