No fix yet

This commit is contained in:
jaby 2024-06-07 13:24:36 +02:00
parent 7b5e5df952
commit 6b05cc71f6
9 changed files with 37 additions and 11 deletions

View File

@ -13,7 +13,24 @@ namespace GPUTest {
};
__declare_lba_header(LBA);
CDFile Assets[2] = {
CDFile Assets[18] = {
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::TEX, TexPageTIM),
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
};

View File

@ -14,7 +14,7 @@ namespace ControllerTest {
namespace GPUTest {
extern const volatile JabyEngine::AutoLBAEntry lba[];
extern JabyEngine::CDFile Assets[2];
extern JabyEngine::CDFile Assets[18];
void main();
}

View File

@ -200,7 +200,7 @@ namespace LoadingScene {
}
static void run() {
if(old_state_changer != state_changer) {
if(true) {//(old_state_changer != state_changer) {
printf("Loading new state...\n");
// TODO: Callback for file load? Locally?

View File

@ -63,7 +63,7 @@ namespace Menu {
if(this->waiting) {
auto cursor = JabyEngine::Cursor::create(position);
this->font_writer->write(cursor, "Press and hold ()\nto get back", GPU::Color24::Red(0xD0));
this->font_writer->write(cursor, "Press and hold O\nto get back", GPU::Color24::Red(0xD0));
}
else if(auto_clear) {

View File

@ -142,6 +142,10 @@ namespace JabyEngine {
static void ack_extended(IOPort<InterruptFlag>& port) {
port.write(InterruptFlag::from(InterruptFlag::InterruptTypValue.range_max<uint8_t>(), InterruptEnable::UnknownIRQ, InterruptEnable::CommandStartIRQ));
// *reinterpret_cast<uint32_t*>(0x0) = 0;
// *reinterpret_cast<uint32_t*>(0x0) = 0;
// *reinterpret_cast<uint32_t*>(0x0) = 0;
// *reinterpret_cast<uint32_t*>(0x0) = 0;
}
};

View File

@ -208,14 +208,14 @@ namespace JabyEngine {
register uint32_t FuncID asm("a0") = 0x01;
register uint32_t returnValue asm("v0");
__asm__ volatile("syscall" : "=r"(FuncID), "=r"(returnValue) : "r"(FuncID) : "at", "v1", "a1", "a2", "a3", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "memory");
__asm__ volatile("syscall" : "=r"(returnValue) : "r"(FuncID) : "memory");
return returnValue;
}
static __always_inline void ExitCriticalSection() {
register uint32_t FuncID asm("a0") = 0x02;
__asm__ volatile("syscall" : "=r"(FuncID) : "r"(FuncID) : "at", "v0", "v1", "a1", "a2", "a3", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "memory");
__asm__ volatile("syscall" :: "r"(FuncID) : "memory");
}
static __always_inline void DeliverEvent(uint32_t classId, uint32_t spec) {

View File

@ -18,6 +18,7 @@ namespace JabyEngine {
extern State current_state;
extern uint8_t cmd_interrupt_bit;
extern uint8_t last_send_cmd;
struct Command {
struct Internal {
@ -48,7 +49,9 @@ namespace JabyEngine {
cmd_interrupt_bit = bit::set(cmd_interrupt_bit, cmd.complete_irq);
((parameter_fifo.write(CD_IO::ParameterFifo{args})),...);
cmd_fifo.write(CD_IO::CommandFifo {cmd.id});
cmd_fifo.write(CD_IO::CommandFifo{cmd.id});
last_send_cmd = cmd.id;
}
};

View File

@ -39,6 +39,7 @@ namespace JabyEngine {
static File cur_file;
uint8_t cmd_interrupt_bit = 0;
uint8_t last_send_cmd = 0;
State current_state = State::Ready;
auto irq_callback = SysCall::InterruptCallback::from(IRQ::verifier, IRQ::handler);

View File

@ -56,6 +56,7 @@ namespace JabyEngine {
return self.circular_buffer.allocate();
}));
printf(">>> 0x%p\n", this->jobs.files);
printf(">>> %i.) CD needs to load LBA: %i -> %i (is LZ4: [%s])\n", cur_job.rel_lba_idx, cur_lba.get_lba(), cur_lba.get_size_in_sectors(), cur_lba.is_lz4() ? "Yes" : "No");
}