X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FMemory.c;h=48c32a6581b6224cdb7ed89fc5ec077cd7a6919e;hb=f8ef8ff7100baa0ac0ecfcacb47aea3a9e24bc38;hp=f9d7f69f5a475a93b50a4e36522325c5f77b0980;hpb=f53f286a8b48d19c65e83f90d00aa47e8e87c889;p=picodrive.git diff --git a/Pico/Memory.c b/Pico/Memory.c index f9d7f69..48c32a6 100644 --- a/Pico/Memory.c +++ b/Pico/Memory.c @@ -317,7 +317,6 @@ static void OtherWrite8End(u32 a,u32 d,int realsize) Pico.m.prot_bytes[(a>>2)&1] = (u8)d; } - #include "MemoryCmn.c" @@ -498,15 +497,26 @@ static void PicoWrite32(u32 a,u32 d) // ----------------------------------------------------------------- // TODO: asm code -u32 (*PicoRead16Hook)(u32 a, int realsize) = OtherRead16End; -void (*PicoWrite8Hook)(u32 a, u32 d, int realsize) = OtherWrite8End; +static void OtherWrite16End(u32 a,u32 d,int realsize) +{ + PicoWrite8Hook(a, d>>8, realsize); + PicoWrite8Hook(a+1,d&0xff, realsize); +} -PICO_INTERNAL void PicoMemSetup(void) +u32 (*PicoRead16Hook) (u32 a, int realsize) = OtherRead16End; +void (*PicoWrite8Hook) (u32 a, u32 d, int realsize) = OtherWrite8End; +void (*PicoWrite16Hook)(u32 a, u32 d, int realsize) = OtherWrite16End; + +PICO_INTERNAL void PicoMemResetHooks(void) { // default unmapped/cart specific handlers PicoRead16Hook = OtherRead16End; PicoWrite8Hook = OtherWrite8End; + PicoWrite16Hook = OtherWrite16End; +} +PICO_INTERNAL void PicoMemSetup(void) +{ // Setup memory callbacks: #ifdef EMU_C68K PicoCpuCM68k.checkpc=PicoCheckPc;