diff options
author | notaz | 2010-11-21 21:44:49 +0200 |
---|---|---|
committer | notaz | 2010-11-21 21:44:49 +0200 |
commit | f95a77f74f9608f9c63780fee20fcc5255042ac3 (patch) | |
tree | 5ecc649e3774e241d3f1910ce724ec635570271a /libpcsxcore/new_dynarec/emu_if.c | |
parent | 24385cae1780e77722b93a972cf7f4e906688490 (diff) | |
download | pcsx_rearmed-f95a77f74f9608f9c63780fee20fcc5255042ac3.tar.gz pcsx_rearmed-f95a77f74f9608f9c63780fee20fcc5255042ac3.tar.bz2 pcsx_rearmed-f95a77f74f9608f9c63780fee20fcc5255042ac3.zip |
some drc integration work
Diffstat (limited to 'libpcsxcore/new_dynarec/emu_if.c')
-rw-r--r-- | libpcsxcore/new_dynarec/emu_if.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c new file mode 100644 index 0000000..cee61cc --- /dev/null +++ b/libpcsxcore/new_dynarec/emu_if.c @@ -0,0 +1,95 @@ +#include <stdio.h> + +#include "emu_if.h" + +char invalid_code[0x100000]; + +void MFC0(void) +{ + printf("MFC0!\n"); +} + +void gen_interupt() +{ + printf("gen_interupt\n"); +} + +void check_interupt() +{ + printf("check_interupt\n"); +} + +void read_nomem_new() +{ + printf("read_nomem_new\n"); +} + +static void read_mem() +{ + printf("read_mem %08x\n", address); +} + +static void write_mem() +{ + printf("write_mem %08x\n", address); +} + +void (*readmem[0x10000])(); +void (*readmemb[0x10000])(); +void (*readmemh[0x10000])(); +void (*writemem[0x10000])(); +void (*writememb[0x10000])(); +void (*writememh[0x10000])(); + + +static int ari64_init() +{ + size_t i; + new_dynarec_init(); + + for (i = 0; i < sizeof(readmem) / sizeof(readmem[0]); i++) { + readmem[i] = read_mem; + writemem[i] = write_mem; + } + memcpy(readmemb, readmem, sizeof(readmem)); + memcpy(readmemh, readmem, sizeof(readmem)); + memcpy(writememb, writemem, sizeof(writemem)); + memcpy(writememh, writemem, sizeof(writemem)); +} + +static void ari64_reset() +{ + /* hmh */ + printf("ari64_reset\n"); +} + +static void ari64_execute() +{ +/* + FILE *f = fopen("/mnt/ntz/dev/pnd/tmp/ram.dump", "wb"); + fwrite((void *)0x80000000, 1, 0x200000, f); + fclose(f); + exit(1); +*/ + printf("psxNextsCounter %d, psxNextCounter %d\n", psxNextsCounter, psxNextCounter); + printf("ari64_execute %08x\n", psxRegs.pc); + new_dyna_start(psxRegs.pc); +} + +static void ari64_clear(u32 Addr, u32 Size) +{ +} + +static void ari64_shutdown() +{ + new_dynarec_cleanup(); +} + +R3000Acpu psxRec = { + ari64_init, + ari64_reset, + ari64_execute, +// TODO recExecuteBlock, + ari64_clear, + ari64_shutdown +}; |