Merge branch 'h4570:master' into Cleanup
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@ IRXEMBEDDEDEXT := irx-em
|
|||||||
CFLAGS += -D_EE -Wall -O3
|
CFLAGS += -D_EE -Wall -O3
|
||||||
LINKFLAGS += -O3 -Wl,-zmax-page-size=128
|
LINKFLAGS += -O3 -Wl,-zmax-page-size=128
|
||||||
ASFLAGS += -O3
|
ASFLAGS += -O3
|
||||||
LIB += -lstdc++ -ldma -lpacket2 -lgraph -ldraw -lmath3d -lpng -lz -lpad -laudsrv -lpatches -lcdvd
|
LIB += -lstdc++ -ldma -lpacket2 -lgraph -ldraw -lmath3d -lpng -ldebug -lz -lpad -laudsrv -lpatches -lcdvd
|
||||||
INC += -I$(PS2DEV)/ps2sdk/ee/include -I$(PS2DEV)/ps2sdk/common/include -I$(PS2DEV)/ps2sdk/ports/include
|
INC += -I$(PS2DEV)/ps2sdk/ee/include -I$(PS2DEV)/ps2sdk/common/include -I$(PS2DEV)/ps2sdk/ports/include
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ List of games developed with Tyra.
|
|||||||
If you created one, please contact me - I will add it to the list :)
|
If you created one, please contact me - I will add it to the list :)
|
||||||
|
|
||||||
* [Tyracraft](https://github.com/Wellinator/tyracraft) by [Wellinator](https://github.com/Wellinator)
|
* [Tyracraft](https://github.com/Wellinator/tyracraft) by [Wellinator](https://github.com/Wellinator)
|
||||||
|
* [Game with car](https://github.com/freebytego/gwc-ps2) by [freebytego](https://github.com/freebytego)
|
||||||
* [Rock, paper, scissors](https://github.com/GuidoDQR/my-ps2-game) by [GuidoDQR](https://github.com/GuidoDQR)
|
* [Rock, paper, scissors](https://github.com/GuidoDQR/my-ps2-game) by [GuidoDQR](https://github.com/GuidoDQR)
|
||||||
* [TyraTale](https://github.com/Br4k2n/TyraTale) by [Br4k2n](https://github.com/Br4k2n)
|
* [TyraTale](https://github.com/Br4k2n/TyraTale) by [Br4k2n](https://github.com/Br4k2n)
|
||||||
|
|
||||||
|
|||||||
+23
-14
@@ -20,6 +20,7 @@
|
|||||||
#else // IF Debug
|
#else // IF Debug
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <debug.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@@ -48,9 +49,7 @@ class TyraDebug {
|
|||||||
(void)expander{0, (void(ss << std::forward<Args>(args)), 0)...};
|
(void)expander{0, (void(ss << std::forward<Args>(args)), 0)...};
|
||||||
|
|
||||||
if (Tyra::Info::writeLogsToFile) {
|
if (Tyra::Info::writeLogsToFile) {
|
||||||
auto* logFile = getLogFile();
|
writeInLogFile(&ss);
|
||||||
*logFile << ss.str();
|
|
||||||
logFile->flush();
|
|
||||||
} else {
|
} else {
|
||||||
printf("%s", ss.str().c_str());
|
printf("%s", ss.str().c_str());
|
||||||
}
|
}
|
||||||
@@ -65,9 +64,7 @@ class TyraDebug {
|
|||||||
ss1 << "|\n";
|
ss1 << "|\n";
|
||||||
|
|
||||||
if (Tyra::Info::writeLogsToFile) {
|
if (Tyra::Info::writeLogsToFile) {
|
||||||
auto* logFile = getLogFile();
|
writeInLogFile(&ss1);
|
||||||
*logFile << ss1.str();
|
|
||||||
logFile->flush();
|
|
||||||
} else {
|
} else {
|
||||||
printf("%s", ss1.str().c_str());
|
printf("%s", ss1.str().c_str());
|
||||||
}
|
}
|
||||||
@@ -80,20 +77,22 @@ class TyraDebug {
|
|||||||
ss2 << "====================================\n\n";
|
ss2 << "====================================\n\n";
|
||||||
|
|
||||||
if (Tyra::Info::writeLogsToFile) {
|
if (Tyra::Info::writeLogsToFile) {
|
||||||
auto* logFile = getLogFile();
|
writeInLogFile(&ss2);
|
||||||
*logFile << ss2.str();
|
|
||||||
logFile->flush();
|
|
||||||
} else {
|
} else {
|
||||||
printf("%s", ss2.str().c_str());
|
printf("%s", ss2.str().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_scr();
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
scr_setXY(20, 10);
|
||||||
|
scr_printf(ss1.str().c_str());
|
||||||
|
writeAssertLinesInScreen(args...);
|
||||||
|
scr_printf(ss2.str().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::unique_ptr<std::ofstream> logFile;
|
static void writeInLogFile(std::stringstream* ss);
|
||||||
static std::ofstream* getLogFile();
|
|
||||||
|
|
||||||
template <typename Arg, typename... Args>
|
template <typename Arg, typename... Args>
|
||||||
static void writeAssertLines(Arg&& arg, Args&&... args) {
|
static void writeAssertLines(Arg&& arg, Args&&... args) {
|
||||||
@@ -105,13 +104,23 @@ class TyraDebug {
|
|||||||
0, (void(ss << "| " << std::forward<Args>(args) << "\n"), 0)...};
|
0, (void(ss << "| " << std::forward<Args>(args) << "\n"), 0)...};
|
||||||
|
|
||||||
if (Tyra::Info::writeLogsToFile) {
|
if (Tyra::Info::writeLogsToFile) {
|
||||||
auto* logfile = getLogFile();
|
writeInLogFile(&ss);
|
||||||
*logfile << ss.str();
|
|
||||||
logFile->flush();
|
|
||||||
} else {
|
} else {
|
||||||
printf("%s", ss.str().c_str());
|
printf("%s", ss.str().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename Arg, typename... Args>
|
||||||
|
static void writeAssertLinesInScreen(Arg&& arg, Args&&... args) {
|
||||||
|
std::stringstream ss;
|
||||||
|
|
||||||
|
ss << "| " << std::forward<Arg>(arg) << "\n";
|
||||||
|
using expander = int[];
|
||||||
|
(void)expander{
|
||||||
|
0, (void(ss << "| " << std::forward<Args>(args) << "\n"), 0)...};
|
||||||
|
|
||||||
|
scr_printf(ss.str().c_str());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NDEBUG
|
#endif // NDEBUG
|
||||||
@@ -27,6 +27,7 @@ class IrxLoader {
|
|||||||
void loadSio2man(const bool& verbose);
|
void loadSio2man(const bool& verbose);
|
||||||
void loadPadman(const bool& verbose);
|
void loadPadman(const bool& verbose);
|
||||||
void loadLibsd(const bool& verbose);
|
void loadLibsd(const bool& verbose);
|
||||||
|
void loadIO(const bool& verbose);
|
||||||
void loadUsbModules(const bool& verbose);
|
void loadUsbModules(const bool& verbose);
|
||||||
void loadAudsrv(const bool& verbose);
|
void loadAudsrv(const bool& verbose);
|
||||||
|
|
||||||
|
|||||||
@@ -10,16 +10,11 @@
|
|||||||
|
|
||||||
#include "debug/debug.hpp"
|
#include "debug/debug.hpp"
|
||||||
|
|
||||||
std::unique_ptr<std::ofstream> TyraDebug::logFile;
|
void TyraDebug::writeInLogFile(std::stringstream* ss) {
|
||||||
|
std::ofstream logFile;
|
||||||
std::ofstream* TyraDebug::getLogFile() {
|
logFile.open(Tyra::FileUtils::fromCwd("log.txt"),
|
||||||
if (logFile) {
|
|
||||||
return logFile.get();
|
|
||||||
} else {
|
|
||||||
logFile = std::make_unique<std::ofstream>();
|
|
||||||
logFile->open(Tyra::FileUtils::fromCwd("log.txt"),
|
|
||||||
std::ofstream::out | std::ofstream::app);
|
std::ofstream::out | std::ofstream::app);
|
||||||
return logFile.get();
|
logFile << ss->str();
|
||||||
|
logFile.flush();
|
||||||
|
// logFile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Tyra
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
$PS2SDK/iop/irx/fileXio.irx
|
||||||
|
fileXio_irx
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
$PS2SDK/iop/irx/iomanX.irx
|
||||||
|
iomanX_irx
|
||||||
@@ -20,30 +20,20 @@
|
|||||||
#include "file/file_utils.hpp"
|
#include "file/file_utils.hpp"
|
||||||
|
|
||||||
// external IRX modules
|
// external IRX modules
|
||||||
|
#define EXTERN_IRX(_irx) \
|
||||||
|
extern u8 _irx[]; \
|
||||||
|
extern int size_##_irx
|
||||||
|
|
||||||
extern u8 sio2man_irx[];
|
EXTERN_IRX(sio2man_irx);
|
||||||
extern int size_sio2man_irx;
|
EXTERN_IRX(padman_irx);
|
||||||
|
EXTERN_IRX(audsrv_irx);
|
||||||
extern u8 padman_irx[];
|
EXTERN_IRX(libsd_irx);
|
||||||
extern int size_padman_irx;
|
EXTERN_IRX(fileXio_irx);
|
||||||
|
EXTERN_IRX(iomanX_irx);
|
||||||
extern u8 audsrv_irx[];
|
EXTERN_IRX(bdm_irx);
|
||||||
extern int size_audsrv_irx;
|
EXTERN_IRX(bdmfs_fatfs_irx);
|
||||||
|
EXTERN_IRX(usbd_irx);
|
||||||
extern u8 libsd_irx[];
|
EXTERN_IRX(usbmass_bd_irx);
|
||||||
extern int size_libsd_irx;
|
|
||||||
|
|
||||||
extern u8 bdm_irx[];
|
|
||||||
extern int size_bdm_irx;
|
|
||||||
|
|
||||||
extern u8 bdmfs_fatfs_irx[];
|
|
||||||
extern int size_bdmfs_fatfs_irx;
|
|
||||||
|
|
||||||
extern u8 usbd_irx[];
|
|
||||||
extern int size_usbd_irx;
|
|
||||||
|
|
||||||
extern u8 usbmass_bd_irx[];
|
|
||||||
extern int size_usbmass_bd_irx;
|
|
||||||
|
|
||||||
namespace Tyra {
|
namespace Tyra {
|
||||||
|
|
||||||
@@ -70,6 +60,7 @@ void IrxLoader::loadAll(const bool& withUsb, const bool& isLoggingToFile) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadIO(!isLoggingToFile);
|
||||||
loadSio2man(!isLoggingToFile);
|
loadSio2man(!isLoggingToFile);
|
||||||
loadPadman(!isLoggingToFile);
|
loadPadman(!isLoggingToFile);
|
||||||
loadLibsd(!isLoggingToFile);
|
loadLibsd(!isLoggingToFile);
|
||||||
@@ -116,6 +107,24 @@ void IrxLoader::loadLibsd(const bool& verbose) {
|
|||||||
if (verbose) TYRA_LOG("IRX: Libsd loaded!");
|
if (verbose) TYRA_LOG("IRX: Libsd loaded!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IrxLoader::loadIO(const bool& verbose) {
|
||||||
|
int ret;
|
||||||
|
if (verbose) TYRA_LOG("IRX: Loading iomanX...");
|
||||||
|
|
||||||
|
SifExecModuleBuffer(&iomanX_irx, size_iomanX_irx, 0, nullptr, &ret);
|
||||||
|
TYRA_ASSERT(ret >= 0, "Failed to load module: iomanX_irx");
|
||||||
|
|
||||||
|
if (verbose) TYRA_LOG("IRX: iomanX loaded!");
|
||||||
|
|
||||||
|
if (verbose) TYRA_LOG("IRX: Loading fileXio...");
|
||||||
|
|
||||||
|
SifExecModuleBuffer(&fileXio_irx, size_fileXio_irx, 0, nullptr, &ret);
|
||||||
|
TYRA_ASSERT(ret >= 0, "Failed to load module: fileXio_irx");
|
||||||
|
|
||||||
|
if (verbose) TYRA_LOG("IRX: fileXio_irx loaded!");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void IrxLoader::loadUsbModules(const bool& verbose) {
|
void IrxLoader::loadUsbModules(const bool& verbose) {
|
||||||
if (verbose) TYRA_LOG("IRX: Loading usb modules...");
|
if (verbose) TYRA_LOG("IRX: Loading usb modules...");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user