vitaQuake
vitaQuake copied to clipboard
vitaQuake needs VitaGL rendering changes ported to fix compilation
Similar to this change in vitaQuakeii, vitaQuake needs the following replaced with the new equivalent calls to vitaGL:
vglStartRendering
vglStopRendering
vglStopRenderingInit
vglStopRenderingTerm
vglUpdateCommonDialog
Errors:
source/menu.c: In function 'M_LanConfig_Key':
source/menu.c:2459:5: warning: implicit declaration of function 'sceNetAdhocInit' [-Wimplicit-function-declaration]
2459 | sceNetAdhocInit();
| ^~~~~~~~~~~~~~~
source/menu.c:2460:5: error: unknown type name 'SceNetAdhocctlAdhocId'
2460 | SceNetAdhocctlAdhocId adhocId;
| ^~~~~~~~~~~~~~~~~~~~~
source/menu.c:2461:32: error: 'SceNetAdhocctlAdhocId' undeclared (first use in this function)
2461 | memset(&adhocId, 0, sizeof(SceNetAdhocctlAdhocId));
| ^~~~~~~~~~~~~~~~~~~~~
source/menu.c:2461:32: note: each undeclared identifier is reported only once for each function it appears in
source/menu.c:2462:12: error: request for member 'type' in something not a structure or union
2462 | adhocId.type = SCE_NET_ADHOCCTL_ADHOCTYPE_RESERVED;
| ^
source/menu.c:2462:20: error: 'SCE_NET_ADHOCCTL_ADHOCTYPE_RESERVED' undeclared (first use in this function)
2462 | adhocId.type = SCE_NET_ADHOCCTL_ADHOCTYPE_RESERVED;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2463:20: error: request for member 'data' in something not a structure or union
2463 | memcpy(&adhocId.data[0], "SOLI00001", SCE_NET_ADHOCCTL_ADHOCID_LEN);
| ^
source/menu.c:2463:43: error: 'SCE_NET_ADHOCCTL_ADHOCID_LEN' undeclared (first use in this function)
2463 | memcpy(&adhocId.data[0], "SOLI00001", SCE_NET_ADHOCCTL_ADHOCID_LEN);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2464:5: warning: implicit declaration of function 'sceNetAdhocctlInit' [-Wimplicit-function-declaration]
2464 | sceNetAdhocctlInit(&adhocId);
| ^~~~~~~~~~~~~~~~~~
source/menu.c:2466:5: error: unknown type name 'SceNetCheckDialogParam'
2466 | SceNetCheckDialogParam param;
| ^~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2467:5: warning: implicit declaration of function 'sceNetCheckDialogParamInit' [-Wimplicit-function-declaration]
2467 | sceNetCheckDialogParamInit(¶m);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2468:5: error: unknown type name 'SceNetAdhocctlGroupName'
2468 | SceNetAdhocctlGroupName groupName;
| ^~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2469:21: error: request for member 'data' in something not a structure or union
2469 | memset(groupName.data, 0, SCE_NET_ADHOCCTL_GROUPNAME_LEN);
| ^
source/menu.c:2469:31: error: 'SCE_NET_ADHOCCTL_GROUPNAME_LEN' undeclared (first use in this function)
2469 | memset(groupName.data, 0, SCE_NET_ADHOCCTL_GROUPNAME_LEN);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2470:10: error: request for member 'groupName' in something not a structure or union
2470 | param.groupName = &groupName;
| ^
source/menu.c:2471:18: error: request for member 'npCommunicationId' in something not a structure or union
2471 | memcpy(¶m.npCommunicationId.data, "SOLI00001", 9);
| ^
source/menu.c:2472:10: error: request for member 'npCommunicationId' in something not a structure or union
2472 | param.npCommunicationId.term = '\0';
| ^
source/menu.c:2473:10: error: request for member 'npCommunicationId' in something not a structure or union
2473 | param.npCommunicationId.num = 0;
| ^
source/menu.c:2474:10: error: request for member 'mode' in something not a structure or union
2474 | param.mode = SCE_NETCHECK_DIALOG_MODE_PSP_ADHOC_CONN;
| ^
source/menu.c:2474:18: error: 'SCE_NETCHECK_DIALOG_MODE_PSP_ADHOC_CONN' undeclared (first use in this function)
2474 | param.mode = SCE_NETCHECK_DIALOG_MODE_PSP_ADHOC_CONN;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
source/menu.c:2475:10: error: request for member 'timeoutUs' in something not a structure or union
2475 | param.timeoutUs = 0;
| ^
source/menu.c:2477:15: warning: implicit declaration of function 'sceNetCheckDialogInit' [-Wimplicit-function-declaration]
2477 | int res = sceNetCheckDialogInit(¶m);
| ^~~~~~~~~~~~~~~~~~~~~
after updating the header files and make files we arrive at the GL issue:
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: source/sys_psp2.o: in function `quake_main':
/Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/sys_psp2.c:573: undefined reference to `vglStartRendering'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/sys_psp2.c:574: undefined reference to `vglStopRenderingInit'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/sys_psp2.c:575: undefined reference to `vglUpdateCommonDialog'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/sys_psp2.c:576: undefined reference to `vglStopRenderingTerm'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: source/gl_vidpsp2.o: in function `GL_BeginRendering':
/Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:512: undefined reference to `vglStartRendering'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: source/gl_vidpsp2.o: in function `GL_EndRendering':
/Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:526: undefined reference to `vglStopRenderingInit'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:527: undefined reference to `vglUpdateCommonDialog'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:528: undefined reference to `vglStopRenderingTerm'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:529: undefined reference to `vglStopRendering'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:538: undefined reference to `vglStartRendering'
/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/10.3.0/../../../../arm-vita-eabi/bin/ld: /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/source/gl_vidpsp2.c:553: undefined reference to `vglStopRendering'
collect2: error: ld returned 1 exit status
make: *** [Solitude.elf] Error 1
Found this: https://github.com/Rinnegatamante/vitaGL/commit/4b086a0f97acadfb88897c2b69c823fcebad7c20 and https://github.com/Rinnegatamante/vitaQuakeII/commit/6ad5f48cdf23e260f07685bb148622aa59dce5f3. Together I may be unblocked.
I attempted the change, but I end up with a crash at start:
https://github.com/mmccoy37/SolitudeVita/commit/b396865249d65676b796cd5b876fb7dd2d07be31
➜ vita-parse-core git:(master) ✗ python2 main.py /tmp/psp2core-1648368370-0x0000dc3987-eboot.bin.psp2dmp /Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/SolitudeVita/Solitude.elf
=== THREADS ===
SOLI00001
ID: 0x40010003
Stop reason: 0x0 (No reason)
Status: 0x8 (Waiting)
PC: 0xe00097d4 (SceLibKernel@1 + 0x66c4)
Quake
ID: 0x4003002f
Stop reason: 0x30004 (Data abort exception)
Status: 0x1 (Running)
PC: 0x812f8926 (TouchRemap@1 + 0x8926)
SceCommonDialogWorker
ID: 0x400100c3
Stop reason: 0x0 (No reason)
Status: 0x8 (Waiting)
PC: 0xe0009414 (SceLibKernel@1 + 0x6304)
=== THREAD "Quake" <0x4003002f> CRASHED (Data abort exception) ===
REGISTERS:
R0: 0x0
R1: 0xb15c
R2: 0xdeadbeef
R3: 0xdeadbeef
R4: 0x812db058
R5: 0x0
R6: 0x1
R7: 0x814542a8
R8: 0x81302c54
R9: 0x81302c58
R10: 0x84a4bb00
R11: 0x81316b4c
R12: 0xdeadbeef
SP: 0x90a00088
PC: 0x812f8926 (TouchRemap@1 + 0x8926)
LR: 0x812f86c1 (TouchRemap@1 + 0x86c1)
STACK CONTENTS AROUND SP:
0x90a00048: 0x0
0x90a0004c: 0x8121c8db (Solitude.elf@1 + 0x1ec8db => _sbrk_r at ??:?)
0x90a00050: 0x1fe120
0x90a00054: 0x84057928 (Solitude.elf@2 + 0x2d57928)
0x90a00058: 0x84057090 (Solitude.elf@2 + 0x2d57090)
0x90a0005c: 0x0
0x90a00060: 0x0
0x90a00064: 0x8121c8db (Solitude.elf@1 + 0x1ec8db => _sbrk_r at ??:?)
0x90a00068: 0x201000
0x90a0006c: 0x201530
0x90a00070: 0x84057928 (Solitude.elf@2 + 0x2d57928)
0x90a00074: 0x812190c3 (Solitude.elf@1 + 0x1e90c3 => _malloc_trim_r at ??:?)
0x90a00078: 0x84057050 (Solitude.elf@2 + 0x2d57050)
0x90a0007c: 0x8130d4d0 (Solitude.elf@2 + 0xd4d0)
0x90a00080: 0x84057928 (Solitude.elf@2 + 0x2d57928)
0x90a00084: 0x3500
SP => 0x90a00088: 0x812db058 (TouchRemap@2 + 0x58)
0x90a0008c: 0x0
0x90a00090: 0x1
0x90a00094: 0x814542a8 (Solitude.elf@2 + 0x1542a8)
0x90a00098: 0x813008b8 (Solitude.elf@2 + 0x8b8)
0x90a0009c: 0x0
0x90a000a0: 0x0
0x90a000a4: 0x8105a751 (Solitude.elf@1 + 0x2a751 => quake_main at ??:?)
0x90a000a8: 0xffffffff
0x90a000ac: 0xffffffff
0x90a000b0: 0xffffffff
0x90a000b4: 0x81316b48 (Solitude.elf@2 + 0x16b48)
0x90a000b8: 0xffffffff
0x90a000bc: 0xffffffff
0x90a000c0: 0xffffffff
0x90a000c4: 0xffffffff
0x90a000c8: 0xffffffff
0x90a000cc: 0xffffffff
0x90a000d0: 0xffffffff
0x90a000d4: 0xffffffff
0x90a000d8: 0xffffffff
0x90a000dc: 0xffffffff
0x90a000e0: 0xffffffff
0x90a000e4: 0xffffffff
Disabling TouchRemap allows me to progress and open the game. However I end up with a black screen. Next steps are:
- try a fresh config from vitaQuake
- disable plugins I don't need