mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-01 00:13:05 -04:00
First pink screen!
This commit is contained in:
@@ -61,7 +61,9 @@ void mDoDvdErr_ThdCleanup() {
|
||||
|
||||
static void mDoDvdErr_Watch(void*) {
|
||||
#if PLATFORM_GCN
|
||||
#ifndef TARGET_PC
|
||||
OSDisableInterrupts();
|
||||
#endif
|
||||
#endif
|
||||
JKRThread(OSGetCurrentThread(), 0);
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "DynamicLink.h"
|
||||
#include "dusk/endian.h"
|
||||
|
||||
#if PLATFORM_WII || PLATFORM_SHIELD
|
||||
#include <revolution/sc.h>
|
||||
@@ -239,12 +240,12 @@ static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
|
||||
cLib_memSet(timg, 0, bufferSize);
|
||||
timg->format = format;
|
||||
timg->alphaEnabled = false;
|
||||
timg->width = width;
|
||||
timg->height = height;
|
||||
timg->width = RES_U16(width);
|
||||
timg->height = RES_U16(height);
|
||||
timg->minFilter = GX_LINEAR;
|
||||
timg->magFilter = GX_LINEAR;
|
||||
timg->mipmapCount = 1;
|
||||
timg->imageOffset = 0x20;
|
||||
timg->imageOffset = RES_U32(0x20);
|
||||
return timg;
|
||||
}
|
||||
|
||||
@@ -467,7 +468,7 @@ void mDoGph_gInf_c::calcFade() {
|
||||
}
|
||||
|
||||
if (mFadeColor.a != 0) {
|
||||
darwFilter(mFadeColor);
|
||||
//darwFilter(mFadeColor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,12 +38,12 @@ f32 mDoLib_clipper::mSystemFar;
|
||||
|
||||
f32 mDoLib_clipper::mFovyRate;
|
||||
|
||||
void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near, f32 far) {
|
||||
void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near_, f32 far_) {
|
||||
mClipper.setFovy(fovy);
|
||||
mClipper.setAspect(aspect);
|
||||
mClipper.setNear(near);
|
||||
mClipper.setFar(far);
|
||||
mSystemFar = far;
|
||||
mClipper.setNear(near_);
|
||||
mClipper.setFar(far_);
|
||||
mSystemFar = far_;
|
||||
mClipper.calcViewFrustum();
|
||||
|
||||
s16 tmp = DEG2S(fovy);
|
||||
|
||||
+53
-55
@@ -39,8 +39,8 @@
|
||||
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
#include "dusk/dvd_emu.h"
|
||||
#include "SSystem/SComponent/c_API.h"
|
||||
#include "dusk/dvd_emu.h"
|
||||
|
||||
#include <aurora/aurora.h>
|
||||
#include <aurora/event.h>
|
||||
@@ -52,6 +52,7 @@ OSTime mDoMain::sPowerOnTime;
|
||||
OSTime mDoMain::sHungUpTime;
|
||||
u32 mDoMain::memMargin = 0xFFFFFFFF;
|
||||
char mDoMain::COPYDATE_STRING[18] = "??/??/?? ??:??:??";
|
||||
const int audioHeapSize = 0x14D800;
|
||||
|
||||
// --- PC LOGGING CALLBACK ---
|
||||
void aurora_log_callback(AuroraLogLevel level, const char* module, const char* message,
|
||||
@@ -123,23 +124,14 @@ s32 LOAD_COPYDATE(void*) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// =========================================================================
|
||||
// MAIN01 - THE GAME LOOP
|
||||
// =========================================================================
|
||||
void main01(void) {
|
||||
OS_REPORT("\x1b[m");
|
||||
|
||||
// 1. Setup heaps, RNG, Threads
|
||||
// Nutzt den Speicher, den wir in game_main() per OSSetArena gesetzt haben
|
||||
// 1. Setup
|
||||
mDoMch_Create();
|
||||
|
||||
// 2. Setup GFX (FrameBuffer, ZBuffer)
|
||||
mDoGph_Create();
|
||||
|
||||
// 3. Setup Pads
|
||||
//mDoCPd_c::create();
|
||||
|
||||
// 4. Console Setup
|
||||
// Console Setup
|
||||
JUTConsole* console = JFWSystem::getSystemConsole();
|
||||
if (console) {
|
||||
console->setOutput(mDoMain::developmentMode ? JUTConsole::OUTPUT_OSR_AND_CONSOLE :
|
||||
@@ -147,7 +139,7 @@ void main01(void) {
|
||||
console->setPosition(32, 42);
|
||||
}
|
||||
|
||||
// 5. Init Framework & Loader
|
||||
// Loader Init
|
||||
mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)LOAD_COPYDATE, NULL);
|
||||
|
||||
OSReport("Calling fapGm_Create()...\n");
|
||||
@@ -159,39 +151,45 @@ void main01(void) {
|
||||
OSReport("Calling cDyl_InitAsync()...\n");
|
||||
cDyl_InitAsync();
|
||||
|
||||
// -----------------------------------------------------------
|
||||
// THE GAME LOOP
|
||||
// -----------------------------------------------------------
|
||||
mDoAud_zelAudio_c::onInitFlag();
|
||||
|
||||
OSReport("Entering Main Loop (main01)...\n");
|
||||
|
||||
// -----------------------------------------------------------
|
||||
// THE GAME LOOP (RESTORED)
|
||||
// -----------------------------------------------------------
|
||||
do {
|
||||
// --- Window Events & Frame Start ---
|
||||
// 1. Update Window Events
|
||||
const AuroraEvent* event = aurora_update();
|
||||
if (event && event->type == AURORA_EXIT)
|
||||
break;
|
||||
|
||||
static u32 frame = 0;
|
||||
frame++;
|
||||
|
||||
// 2. Start Frame (REQUIRED for Vulkan)
|
||||
if (!aurora_begin_frame()) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||
continue;
|
||||
}
|
||||
|
||||
static u32 frame;
|
||||
frame++;
|
||||
// 3. Game Inputs
|
||||
mDoCPd_c::read();
|
||||
|
||||
mDoCPd_c::read(); // Read Controller
|
||||
|
||||
// Simulate VI retrace interrupt — fires post-retrace callback which sends
|
||||
// a message to JUTVideo's queue, unblocking waitForTick() in beginRender()
|
||||
// Simulate VI (can remain empty/stubbed for now if waitForTick is disabled)
|
||||
VIWaitForRetrace();
|
||||
|
||||
// --- EXECUTE GAME LOGIC & RENDER ---
|
||||
printf("[DIAG] main01: before fapGm_Execute (frame %d)\n", frame); fflush(stdout);
|
||||
// 4. EXECUTE GAME LOGIC & RENDER
|
||||
// This calls mDoGph_Painter -> JFWDisplay -> GX Functions
|
||||
fapGm_Execute();
|
||||
printf("[DIAG] main01: after fapGm_Execute\n"); fflush(stdout);
|
||||
|
||||
// --- Frame End & Limiter ---
|
||||
mDoAud_Execute();
|
||||
|
||||
// 5. Present Frame (REQUIRED to see anything)
|
||||
aurora_end_frame();
|
||||
printf("[DIAG] main01: after aurora_end_frame\n"); fflush(stdout);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(16)); // ~60 FPS Cap
|
||||
|
||||
// Limiter
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(16));
|
||||
|
||||
} while (true);
|
||||
}
|
||||
@@ -241,7 +239,7 @@ int game_main(int argc, char* argv[]) {
|
||||
|
||||
// Development Mode
|
||||
mDoMain::developmentMode = 1; // Force Dev Mode for Debugging
|
||||
|
||||
mDoDvdThd::SyncWidthSound = false;
|
||||
// START GAME
|
||||
OSReport("Starting main01 (Game Loop)...\n");
|
||||
|
||||
@@ -263,77 +261,77 @@ bool JKRHeap::dump_sort() {
|
||||
return true;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
JHIComPortManager<T>* JHIComPortManager<T>::instance = nullptr;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JHIComPortManager<JHICmnMem>* JHIComPortManager<JHICmnMem>::instance = nullptr;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2WolfHowlMgr* JASGlobalInstance<Z2WolfHowlMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2EnvSeMgr* JASGlobalInstance<Z2EnvSeMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2FxLineMgr* JASGlobalInstance<Z2FxLineMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2Audience* JASGlobalInstance<Z2Audience>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SoundObjMgr* JASGlobalInstance<Z2SoundObjMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SoundInfo* JASGlobalInstance<Z2SoundInfo>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAUSoundInfo* JASGlobalInstance<JAUSoundInfo>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAUSoundNameTable* JASGlobalInstance<JAUSoundNameTable>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAUSoundTable* JASGlobalInstance<JAUSoundTable>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAISoundInfo* JASGlobalInstance<JAISoundInfo>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SoundMgr* JASGlobalInstance<Z2SoundMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAIStreamMgr* JASGlobalInstance<JAIStreamMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAISeqMgr* JASGlobalInstance<JAISeqMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAISeMgr* JASGlobalInstance<JAISeMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SpeechMgr2* JASGlobalInstance<Z2SpeechMgr2>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SoundStarter* JASGlobalInstance<Z2SoundStarter>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JAISoundStarter* JASGlobalInstance<JAISoundStarter>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2StatusMgr* JASGlobalInstance<Z2StatusMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SceneMgr* JASGlobalInstance<Z2SceneMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SeqMgr* JASGlobalInstance<Z2SeqMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
Z2SeMgr* JASGlobalInstance<Z2SeMgr>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JASAudioThread* JASGlobalInstance<JASAudioThread>::sInstance;
|
||||
|
||||
template<>
|
||||
template <>
|
||||
JASDefaultBankTable* JASGlobalInstance<JASDefaultBankTable>::sInstance;
|
||||
|
||||
Reference in New Issue
Block a user