Compare commits

..

3 commits

Author SHA1 Message Date
Shinovon
ad5d8af63b Detect whether rendering on powervr or videocore 2026-05-14 13:53:24 +05:00
Shinovon
78e6740735 Supress logging 2026-05-14 13:52:53 +05:00
Shinovon
3bec747ea6 Check for stdcpp installation in pkg 2026-05-14 12:36:32 +05:00
6 changed files with 35 additions and 7 deletions

View file

@ -8,11 +8,6 @@ Based on re3, uses some code from [Dreamcast](https://gitlab.com/skmp/dca3-game)
See [TODO.md](/TODO.md) for more details on project state.
Tested devices:
- Belle with BCM2763 (700) - GLES 2.0
- Anna/Belle with BCM2727 (E7, N8, E6) - GLES 2.0
- S60v3.1 with PowerVR MBX (E90, N95) - GLES 1.1
## Device requirements
- S60 3rd Edition FP1, S60 5th Edition (non-Nokia), Symbian^3 or later
@ -20,6 +15,11 @@ Tested devices:
- 128 MB RAM with at least 50 MB free (won't run on regular 64 MB N95 unless you disable all textures)
- Functional E: drive with 400 MB of free space (will be more as it'll start to support audio)
Tested devices:
- Belle with BCM2763 (700) - GLES 2.0
- Anna/Belle with BCM2727 (E7, N8, E6) - GLES 2.0
- S60v3.1 with PowerVR MBX (E90, N95) - GLES 1.1
## Building
Import bld.inf in Carbide.c++ with Symbian^3 or newer SDK, add PKG file to SIS Builder and build the project.

View file

@ -25,4 +25,4 @@ SOURCEPATH ../vendor/librw/src/ps2
SOURCE pds.cpp ps2.cpp ps2device.cpp ps2matfx.cpp ps2raster.cpp ps2skin.cpp
SOURCEPATH ../vendor/librw/src
SOURCE raster.cpp render.cpp skin.cpp texture.cpp tga.cpp tristrip.cpp userdata.cpp uvanim.cpp world.cpp
SOURCE assert.cpp
SOURCE assert.cpp printf_stub.c

View file

@ -7,7 +7,7 @@
%{"nnproject"}
:"nnproject"
IF (NOT package(0x20009A80)) OR (NOT package(0x2002372A)) ; old or missing openc
IF (NOT package(0x20009A80)) OR (NOT package(0x2002372A)) OR (NOT package(0x10282872)) ; old or missing openc
"incompatible_openc.txt"-"", FT, FORCEABORT
ENDIF

View file

@ -96,6 +96,7 @@ static bool spinning;
bool qwerty;
bool touch;
bool moreVram;
bool powervr;
void _InputTranslateShiftKeyUpDown(RsKeyCodes *rs) {
}
@ -574,6 +575,17 @@ public:
eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);
const char* renderer = (const char *)glGetString(GL_RENDERER);
if (strstr(renderer, "MBX") || strstr(renderer, "SGX")) {
// use pvrtc
powervr = true;
} else if (strstr(renderer, "VideoCore")) {
// use etc1
} else {
User::Leave(KErrNotSupported);
return;
}
setlocale(LC_ALL, "");
setlocale(LC_CTYPE, "C");
setlocale(LC_COLLATE, "C");

View file

@ -189,8 +189,13 @@ compileshader(GLenum type, const char **src, GLuint *shader)
glShaderSource(shdr, n, src, nil);
glCompileShader(shdr);
glGetShaderiv(shdr, GL_COMPILE_STATUS, &success);
#ifdef _DEBUG
printShaderSource(src);
#endif
if(!success){
#ifndef _DEBUG
printShaderSource(src);
#endif
fprintf(stderr, "Error in %s shader\n",
type == GL_VERTEX_SHADER ? "vertex" : "fragment");
glGetShaderiv(shdr, GL_INFO_LOG_LENGTH, &len);

11
vendor/librw/src/printf_stub.c vendored Normal file
View file

@ -0,0 +1,11 @@
#ifndef _DEBUG
#include <stdio.h>
int printf(const char * __restrict s, ...) {
return 0;
}
int puts(const char *s) {
return 0;
}
#endif