mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
5e987cc0e2
Fixes #2545 Fixes #2546 Fixes #2547 Fixes #2548 Fixes #2549 Fixes #2550 Fixes #2551 Fixes #2552 Fixes #2553 Fixes #2554 Fixes #2555 Fixes #2556 Fixes #2557 Fixes #2558 Fixes #2559 Fixes #2560 Fixes #2561 Fixes #2562 Fixes #2563 Fixes #2564 Fixes #2565 Fixes #2567 Fixes #2566 Fixes #2568 Fixes #2569 Fixes #2570 Fixes #2522 Fixes #2571 --------- Co-authored-by: water <awaterford111445@gmail.com> Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
35 lines
754 B
C++
35 lines
754 B
C++
#include "dma.h"
|
|
|
|
#include "game/sce/iop.h"
|
|
|
|
using namespace iop;
|
|
|
|
// note that jak 1 and 2 have different implementations, but we make them both instant.
|
|
// jak 2 has an EE dma semaphore, but we're going to ignore that.
|
|
|
|
/*!
|
|
* Wait for an ongoing DMA transfer to finish.
|
|
* IOP DMAs are instant in this version, so we return immediately and clear dmaid.
|
|
*/
|
|
void DMA_Sync() {}
|
|
|
|
/*!
|
|
* Start DMA transfer to the EE.
|
|
*/
|
|
void DMA_SendToEE(void* data, u32 size, void* dest) {
|
|
// finish previous DMA
|
|
DMA_Sync();
|
|
|
|
sceSifDmaData cmd; // DMA settings
|
|
|
|
// setup command
|
|
cmd.mode = 0;
|
|
cmd.data = data;
|
|
cmd.addr = dest;
|
|
cmd.size = size;
|
|
|
|
// start DMA (with disabled interrupts)
|
|
CpuDisableIntr();
|
|
sceSifSetDma(&cmd, 1);
|
|
CpuEnableIntr();
|
|
} |