diff --git a/CMakeLists.txt b/CMakeLists.txt index b151c69..3c5e370 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,23 +85,24 @@ set (SOURCES ${CMAKE_SOURCE_DIR}/ultramodern/timer.cpp ${CMAKE_SOURCE_DIR}/ultramodern/ultrainit.cpp - ${CMAKE_SOURCE_DIR}/src/ai.cpp - ${CMAKE_SOURCE_DIR}/src/cont.cpp - ${CMAKE_SOURCE_DIR}/src/dp.cpp - ${CMAKE_SOURCE_DIR}/src/eep.cpp - ${CMAKE_SOURCE_DIR}/src/euc-jp.cpp - ${CMAKE_SOURCE_DIR}/src/flash.cpp - ${CMAKE_SOURCE_DIR}/src/math_routines.cpp - ${CMAKE_SOURCE_DIR}/src/overlays.cpp - ${CMAKE_SOURCE_DIR}/src/pak.cpp - ${CMAKE_SOURCE_DIR}/src/pi.cpp - ${CMAKE_SOURCE_DIR}/src/ultra_stubs.cpp - ${CMAKE_SOURCE_DIR}/src/ultra_translation.cpp - ${CMAKE_SOURCE_DIR}/src/print.cpp - ${CMAKE_SOURCE_DIR}/src/recomp.cpp - ${CMAKE_SOURCE_DIR}/src/rt64_layer.cpp - ${CMAKE_SOURCE_DIR}/src/sp.cpp - ${CMAKE_SOURCE_DIR}/src/vi.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/ai.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/cont.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/dp.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/eep.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/euc-jp.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/flash.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/math_routines.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/overlays.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/pak.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/pi.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/ultra_stubs.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/ultra_translation.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/print.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/recomp.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/rt64_layer.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/sp.cpp + ${CMAKE_SOURCE_DIR}/src/recomp/vi.cpp + ${CMAKE_SOURCE_DIR}/src/main/main.cpp ${CMAKE_SOURCE_DIR}/src/ui/ui_renderer.cpp diff --git a/src/ai.cpp b/src/recomp/ai.cpp similarity index 100% rename from src/ai.cpp rename to src/recomp/ai.cpp diff --git a/src/cont.cpp b/src/recomp/cont.cpp similarity index 100% rename from src/cont.cpp rename to src/recomp/cont.cpp diff --git a/src/dp.cpp b/src/recomp/dp.cpp similarity index 100% rename from src/dp.cpp rename to src/recomp/dp.cpp diff --git a/src/eep.cpp b/src/recomp/eep.cpp similarity index 100% rename from src/eep.cpp rename to src/recomp/eep.cpp diff --git a/src/euc-jp.cpp b/src/recomp/euc-jp.cpp similarity index 100% rename from src/euc-jp.cpp rename to src/recomp/euc-jp.cpp diff --git a/src/euc-jp.h b/src/recomp/euc-jp.h similarity index 100% rename from src/euc-jp.h rename to src/recomp/euc-jp.h diff --git a/src/flash.cpp b/src/recomp/flash.cpp similarity index 100% rename from src/flash.cpp rename to src/recomp/flash.cpp diff --git a/src/math_routines.cpp b/src/recomp/math_routines.cpp similarity index 100% rename from src/math_routines.cpp rename to src/recomp/math_routines.cpp diff --git a/src/overlays.cpp b/src/recomp/overlays.cpp similarity index 100% rename from src/overlays.cpp rename to src/recomp/overlays.cpp diff --git a/src/pak.cpp b/src/recomp/pak.cpp similarity index 100% rename from src/pak.cpp rename to src/recomp/pak.cpp diff --git a/src/pi.cpp b/src/recomp/pi.cpp similarity index 94% rename from src/pi.cpp rename to src/recomp/pi.cpp index e24a8dc..0db725f 100644 --- a/src/pi.cpp +++ b/src/recomp/pi.cpp @@ -38,6 +38,11 @@ extern "C" void osCreatePiManager_recomp(uint8_t* rdram, recomp_context* ctx) { void do_rom_read(uint8_t* rdram, gpr ram_address, uint32_t physical_addr, size_t num_bytes) { // TODO use word copies when possible + + // TODO handle misaligned DMA + assert((physical_addr & 0x1) == 0 && "Only PI DMA from aligned ROM addresses is currently supported"); + assert((ram_address & 0x7) == 0 && "Only PI DMA to aligned RDRAM addresses is currently supported"); + assert((num_bytes & 0x1) == 0 && "Only PI DMA with aligned sizes is currently supported"); uint8_t* rom_addr = rom.get() + physical_addr - rom_base; for (size_t i = 0; i < num_bytes; i++) { MEM_B(i, ram_address) = *rom_addr; diff --git a/src/print.cpp b/src/recomp/print.cpp similarity index 100% rename from src/print.cpp rename to src/recomp/print.cpp diff --git a/src/recomp.cpp b/src/recomp/recomp.cpp similarity index 100% rename from src/recomp.cpp rename to src/recomp/recomp.cpp diff --git a/src/rt64_layer.cpp b/src/recomp/rt64_layer.cpp similarity index 100% rename from src/rt64_layer.cpp rename to src/recomp/rt64_layer.cpp diff --git a/src/sp.cpp b/src/recomp/sp.cpp similarity index 100% rename from src/sp.cpp rename to src/recomp/sp.cpp diff --git a/src/ultra_stubs.cpp b/src/recomp/ultra_stubs.cpp similarity index 100% rename from src/ultra_stubs.cpp rename to src/recomp/ultra_stubs.cpp diff --git a/src/ultra_translation.cpp b/src/recomp/ultra_translation.cpp similarity index 100% rename from src/ultra_translation.cpp rename to src/recomp/ultra_translation.cpp diff --git a/src/vi.cpp b/src/recomp/vi.cpp similarity index 100% rename from src/vi.cpp rename to src/recomp/vi.cpp