No fix yet
This commit is contained in:
parent
7b5e5df952
commit
6b05cc71f6
|
@ -13,7 +13,24 @@ namespace GPUTest {
|
||||||
};
|
};
|
||||||
__declare_lba_header(LBA);
|
__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::TEX, TexPageTIM),
|
||||||
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
|
CDFileBuilder::simple_tim(LBA::ICON, IconTIM),
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace ControllerTest {
|
||||||
|
|
||||||
namespace GPUTest {
|
namespace GPUTest {
|
||||||
extern const volatile JabyEngine::AutoLBAEntry lba[];
|
extern const volatile JabyEngine::AutoLBAEntry lba[];
|
||||||
extern JabyEngine::CDFile Assets[2];
|
extern JabyEngine::CDFile Assets[18];
|
||||||
|
|
||||||
void main();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,7 @@ namespace LoadingScene {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void run() {
|
static void run() {
|
||||||
if(old_state_changer != state_changer) {
|
if(true) {//(old_state_changer != state_changer) {
|
||||||
printf("Loading new state...\n");
|
printf("Loading new state...\n");
|
||||||
|
|
||||||
// TODO: Callback for file load? Locally?
|
// TODO: Callback for file load? Locally?
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace Menu {
|
||||||
|
|
||||||
if(this->waiting) {
|
if(this->waiting) {
|
||||||
auto cursor = JabyEngine::Cursor::create(position);
|
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) {
|
else if(auto_clear) {
|
||||||
|
|
|
@ -142,6 +142,10 @@ namespace JabyEngine {
|
||||||
|
|
||||||
static void ack_extended(IOPort<InterruptFlag>& port) {
|
static void ack_extended(IOPort<InterruptFlag>& port) {
|
||||||
port.write(InterruptFlag::from(InterruptFlag::InterruptTypValue.range_max<uint8_t>(), InterruptEnable::UnknownIRQ, InterruptEnable::CommandStartIRQ));
|
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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -208,14 +208,14 @@ namespace JabyEngine {
|
||||||
register uint32_t FuncID asm("a0") = 0x01;
|
register uint32_t FuncID asm("a0") = 0x01;
|
||||||
register uint32_t returnValue asm("v0");
|
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;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __always_inline void ExitCriticalSection() {
|
static __always_inline void ExitCriticalSection() {
|
||||||
register uint32_t FuncID asm("a0") = 0x02;
|
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) {
|
static __always_inline void DeliverEvent(uint32_t classId, uint32_t spec) {
|
||||||
|
|
|
@ -18,6 +18,7 @@ namespace JabyEngine {
|
||||||
|
|
||||||
extern State current_state;
|
extern State current_state;
|
||||||
extern uint8_t cmd_interrupt_bit;
|
extern uint8_t cmd_interrupt_bit;
|
||||||
|
extern uint8_t last_send_cmd;
|
||||||
|
|
||||||
struct Command {
|
struct Command {
|
||||||
struct Internal {
|
struct Internal {
|
||||||
|
@ -48,7 +49,9 @@ namespace JabyEngine {
|
||||||
|
|
||||||
cmd_interrupt_bit = bit::set(cmd_interrupt_bit, cmd.complete_irq);
|
cmd_interrupt_bit = bit::set(cmd_interrupt_bit, cmd.complete_irq);
|
||||||
((parameter_fifo.write(CD_IO::ParameterFifo{args})),...);
|
((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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ namespace JabyEngine {
|
||||||
static File cur_file;
|
static File cur_file;
|
||||||
|
|
||||||
uint8_t cmd_interrupt_bit = 0;
|
uint8_t cmd_interrupt_bit = 0;
|
||||||
|
uint8_t last_send_cmd = 0;
|
||||||
State current_state = State::Ready;
|
State current_state = State::Ready;
|
||||||
auto irq_callback = SysCall::InterruptCallback::from(IRQ::verifier, IRQ::handler);
|
auto irq_callback = SysCall::InterruptCallback::from(IRQ::verifier, IRQ::handler);
|
||||||
|
|
||||||
|
@ -159,12 +160,12 @@ namespace JabyEngine {
|
||||||
}
|
}
|
||||||
|
|
||||||
void read_file(AutoLBAEntry file_info, const SectorBufferAllocator& buffer_allocator) {
|
void read_file(AutoLBAEntry file_info, const SectorBufferAllocator& buffer_allocator) {
|
||||||
cur_file.set_from(file_info);
|
cur_file.set_from(file_info);
|
||||||
sector_allocator = buffer_allocator;
|
sector_allocator = buffer_allocator;
|
||||||
|
|
||||||
CD_IO::PortIndex0::change_to();
|
CD_IO::PortIndex0::change_to();
|
||||||
Command::send_wait(CD_IO::Command::SetMode, DataSectorMode);
|
Command::send_wait(CD_IO::Command::SetMode, DataSectorMode);
|
||||||
send_read_n0(cur_file.cur_lba);
|
send_read_n0(cur_file.cur_lba);
|
||||||
}
|
}
|
||||||
|
|
||||||
void continue_reading() {
|
void continue_reading() {
|
||||||
|
|
|
@ -56,6 +56,7 @@ namespace JabyEngine {
|
||||||
return self.circular_buffer.allocate();
|
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");
|
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue