This is an automated email from the git hooks/post-receive script. ecsv-guest pushed a commit to branch armhf_test in repository mupen64plus-rsp-hle.
commit e5d95ef15ca486f209a500bfeddf4177bb7e29fe Author: Sven Eckelmann <[email protected]> Date: Tue Sep 11 09:16:55 2012 +0200 Imported Upstream version 1.99.5+8+1e306f08d231 --- src/main.c | 130 +++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 47 deletions(-) diff --git a/src/main.c b/src/main.c index c72c342..5ec5d51 100644 --- a/src/main.c +++ b/src/main.c @@ -173,6 +173,70 @@ static int audio_ucode(OSTask_t *task) return 0; } +static int DoGFXTask(OSTask_t *task, int sum) +{ + if (GraphicsHle && rsp.ProcessDlistList != NULL) + { + rsp.ProcessDlistList(); + taskdone(); + *rsp.DPC_STATUS_REG &= ~0x0002; + return 1; + } + else + { + DebugMessage(M64MSG_WARNING, "GFX ucode through rsp plugin is not implemented"); + return 0; + } +} + +static int DoAudioTask(OSTask_t *task, int sum) +{ + if (AudioHle && rsp.ProcessAlistList != NULL) + { + rsp.ProcessAlistList(); + taskdone(); + return 1; + } + else + { + if (audio_ucode(task) == 0) + { + taskdone(); + return 1; + } + } + + return 0; +} + +static int DoJPEGTask(OSTask_t *task, int sum) +{ + switch(sum) + { + case 0x278: // Zelda OOT during boot + taskdone(); + return 1; + case 0x2caa6: // Zelda OOT, Pokemon Stadium {1,2} jpg decompression + ps_jpg_uncompress(task); + taskdone(); + return 1; + case 0x130de: // Ogre Battle background decompression + ob_jpg_uncompress(task); + taskdone(); + return 1; + } + + return 0; +} + +static int DoCFBTask(OSTask_t *task, int sum) +{ + rsp.ShowCFB(); + taskdone(); + return 1; +} + + /* Global functions */ void DebugMessage(int level, const char *message, ...) { @@ -247,10 +311,9 @@ EXPORT unsigned int CALL DoRspCycles(unsigned int Cycles) { OSTask_t *task = (OSTask_t*)(rsp.DMEM + 0xfc0); int run_through_task = is_run_through_task(task); - unsigned int i, sum=0; - char filename[256]; + FILE *f = NULL; if (run_through_task) { @@ -263,65 +326,39 @@ EXPORT unsigned int CALL DoRspCycles(unsigned int Cycles) switch(task->type) { - case 1: // GFX + case 0: // Not specified { - if (GraphicsHle && rsp.ProcessDlistList != NULL) - { - rsp.ProcessDlistList(); - taskdone(); - *rsp.DPC_STATUS_REG &= ~0x0002; - return Cycles; - } - else + switch(sum) { - DebugMessage(M64MSG_WARNING, "GFX ucode through rsp plugin is not implemented"); + case 0x212ee: // Twintris (task type is in fact GFX) + { + if (DoGFXTask(task, sum)) return Cycles; + break; + } } break; } + case 1: // GFX + { + if (DoGFXTask(task, sum)) return Cycles; + break; + } case 2: // AUDIO { - if (AudioHle && rsp.ProcessAlistList != NULL) - { - rsp.ProcessAlistList(); - taskdone(); - return Cycles; - } - else - { - if (audio_ucode(task) == 0) - { - taskdone(); - return Cycles; - } - } + if (DoAudioTask(task, sum)) return Cycles; break; } case 4: // JPEG { - switch(sum) - { - case 0x278: // Zelda OOT during boot - taskdone(); - return Cycles; - case 0x2caa6: // Zelda OOT, Pokemon Stadium {1,2} jpg decompression - ps_jpg_uncompress(task); - taskdone(); - return Cycles; - case 0x130de: // Ogre Battle background decompression - ob_jpg_uncompress(task); - taskdone(); - return Cycles; - } + if (DoJPEGTask(task, sum)) return Cycles; break; } case 7: // CFB { - rsp.ShowCFB(); - taskdone(); - return Cycles; + if (DoCFBTask(task, sum)) return Cycles; break; } } @@ -330,9 +367,8 @@ EXPORT unsigned int CALL DoRspCycles(unsigned int Cycles) sprintf(&filename[0], "task_%x.log", sum); - // dump task - FILE *f = fopen(filename, "r"); + f = fopen(filename, "r"); if (f == NULL) { f = fopen(filename, "w"); @@ -401,8 +437,8 @@ EXPORT unsigned int CALL DoRspCycles(unsigned int Cycles) // We only emulate the part that modify RDRAM // // It is used for instance in Banjo Tooie, Zelda, Perfect Dark... - case 0x9E2: // banjo tooie (U) - case 0x9F2: // banjo tooie (E) + case 0x9e2: // banjo tooie (U) + case 0x9f2: // banjo tooie (E) { int i,j; memcpy(rsp.IMEM + 0x120, rsp.RDRAM + 0x1e8, 0x1f0); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-rsp-hle.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

