Git Product home page Git Product logo

re3's Issues

Crash on CStream::Open(char const*, unsigned int) at string_fortified.h:79:33

Describe the bug
5 secs after games open it crashes at CStream::Open(char const*, unsigned int) at string_fortified.h:79:33

To Reproduce
Build and Launch

Log

Process 7482 launched: '/usr/bin/re3' (x86_64)
[DBG]: cdvd_stream: read info 0x555555e351f0
[DBG]: Using one streaming thread for all channels
[DBG]: Created cdstream thread
casepath couldn't find dir/file "neo", full path was neo/neo.txd
casepath couldn't find dir/file "polish.gxt", full path was text/polish.gxt
casepath couldn't find dir/file "russian.gxt", full path was text/russian.gxt
casepath couldn't find dir/file "fonts_j.txd", full path was models/fonts_j.txd
[DBG-2]: [../src/skel/glfw/glfw.cpp.psInitialize:484]: gGameState = GS_START_UP
casepath couldn't find dir/file "gta3.set", full path was gta3.set
[DBG-2]: Default skin set as no other skins are available OR saved skin not found!
[DBG]: Physical memory size 3814338560
[DBG]: Available physical memory 1111785472
OpenGL version: 4.6 (Core Profile) Mesa 24.1.1-arch1.1
casepath couldn't find dir/file "X360BTNS.TXD", full path was MODELS/X360BTNS.TXD
casepath couldn't find dir/file "neo", full path was neo/neo.txd
../vendor/librw/src/base.cpp:1004: Couldn't open file ./neo/neo.txd
Error: couldn't open 'neo/neo.txd'
casepath couldn't find dir/file "neo", full path was neo/carTweakingTable.dat
Error: couldn't open 'neo/carTweakingTable.dat'
casepath couldn't find dir/file "neo", full path was neo/worldTweakingTable.dat
Error: couldn't open 'neo/worldTweakingTable.dat'
casepath couldn't find dir/file "neo", full path was neo/rimTweakingTable.dat
Error: couldn't open 'neo/rimTweakingTable.dat'
You don't seem to have copied gamecontrollerdb.txt file from re3/gamefiles to GTA3 directory. Some gamepads may not be recognized.
casepath couldn't find dir/file "gta3.set", full path was gta3.set
[DBG-2]: [../src/skel/glfw/glfw.cpp.main:2108]: gGameState = GS_INIT_ONCE
[DBG]: Loadind audio cache (If game crashes around here, then your cache is corrupted, remove audio/sound.cache)
[DBG-2]: Finding MP3s...
[DBG-2]: /.../Grand Theft Auto III/mp3/
*** buffer overflow detected ***: terminated

BT

* thread #1, name = 're3', stop reason = signal SIGABRT
  * frame #0: 0x00007ffff77bde44 libc.so.6`___lldb_unnamed_symbol3665 + 276
    frame #1: 0x00007ffff7765a30 libc.so.6`raise + 32
    frame #2: 0x00007ffff774d4c3 libc.so.6`abort + 223
    frame #3: 0x00007ffff774e354 libc.so.6`___lldb_unnamed_symbol3212 + 5
    frame #4: 0x00007ffff784b259 libc.so.6`__fortify_fail + 25
    frame #5: 0x00007ffff784abe4 libc.so.6`__chk_fail + 20
    frame #6: 0x00007ffff784c646 libc.so.6`__strcpy_chk + 70
    frame #7: 0x0000555555770d2c re3`CStream::Open(char const*, unsigned int) at string_fortified.h:79:33
    frame #8: 0x0000555555769cf2 re3`_FindMP3s() (.lto_priv.0) at sampman_oal.cpp:525:39
    frame #9: 0x00005555555eb630 re3`CGame::InitialiseOnceAfterRW() at sampman_oal.cpp:972:12
    frame #10: 0x00005555555637f6 re3`main(argc=<unavailable>, argv=<unavailable>) at glfw.cpp:2193:41
    frame #11: 0x00007ffff774ec88 libc.so.6`___lldb_unnamed_symbol3256 + 120
    frame #12: 0x00007ffff774ed4c libc.so.6`__libc_start_main + 140
    frame #13: 0x000055555556acb5 re3`_start + 37

Mac PowerPC Port possible?

How possible would it be to port this over to a Mac PowerPC binary?

I have a G3 machine that I want to attempt to port this to.

Unable to build on intel macOS

OS : Intel macOS 12.7

Describe the bug
Prebuild re3 works perfectly but reVC is not working. #23
I wanted to fix it but I can't build either re3 or reVC on macOS.

Error occurs when ld is trying to link librw (this file especially: ../vendor/librw/lib/macosx-amd64-librw_gl3_glfw-oal/Debug/librw.a)
ld is telling me the lib was not built for x86_64:
unknown-unsupported file format (0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x2F 0x20 0x20 0x20 0x20 0x20 0x20 0x20)

I don't know but I suggest it can be due to premake5 & make that building librw for mac arm instead of intel... ?

I also tried to build librw separately but have issues like @halpz had about 'RWDEVICE' so I'm stuck. aap/librw#58

Version
latest miami branch

==== Building reVC (debug_macosx-amd64-librw_gl3_glfw-oal) ====
Running prebuild commands
"./../printHash.sh" "./../src/extras/GitSHA1.cpp"
GitSHA1.cpp
Linking reVC
ld: warning: directory not found for option '-L/usr/local/opt/openal-soft/lib'
ld: warning: ignoring file ../vendor/librw/lib/macosx-amd64-librw_gl3_glfw-oal/Debug/librw.a, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x2F 0x20 0x20 0x20 0x20 0x20 0x20 0x20 )
Undefined symbols for architecture x86_64:
  "_GLAD_GL_KHR_debug", referenced from:
      PushRendergroup(char const*) in RwHelper.o
      PopRendergroup() in RwHelper.o
  "rw::FrameList_::streamRead(rw::Stream*)", referenced from:
      rwFrameListStreamRead(rw::Stream*, rw::FrameList_*) in fake.o
  "rw::PluginList::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int))", referenced from:
      rw::Material::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in custompipes.o
      rw::Frame::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Clump::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Atomic::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
  "rw::PluginList::registerStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int))", referenced from:
      rw::Frame::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
      rw::Clump::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::StreamFile::open(char const*, char const*)", referenced from:
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
  "rw::ObjPipeline::destroy()", referenced from:
      CustomPipes::DestroyVehiclePipe() in custompipes_gl.o
      CustomPipes::DestroyWorldPipe() in custompipes_gl.o
      CustomPipes::DestroyGlossPipe() in custompipes_gl.o
      CustomPipes::DestroyRimLightPipes() in custompipes_gl.o
  "rw::skinGlobals", referenced from:
      attachPipe(rw::Atomic*) in RwHelper.o
      switchPipes(rw::Atomic*, int) in RwHelper.o
      rw::Skin::get(rw::Geometry const*) in custompipes.o
      rw::Skin::get(rw::Geometry const*) in fake.o
      rw::Skin::setHierarchy(rw::Atomic*, rw::HAnimHierarchy*) in fake.o
      rw::Skin::getHierarchy(rw::Atomic const*) in fake.o
  "rw::MaterialList::appendMaterial(rw::Material*)", referenced from:
      RpGeometryTriangleSetMaterial(rw::Geometry*, rw::Triangle*, rw::Material*) in fake.o
  "rw::MaterialList::findIndex(rw::Material*)", referenced from:
      RpGeometryTriangleSetMaterial(rw::Geometry*, rw::Triangle*, rw::Material*) in fake.o
  "rw::StreamMemory::open(unsigned char*, unsigned int, unsigned int)", referenced from:
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
  "rw::matFXGlobals", referenced from:
      switchPipes(rw::Atomic*, int) in RwHelper.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::TexDictionary::getCurrent()", referenced from:
      RwTexDictionaryGetCurrent() in fake.o
  "rw::TexDictionary::setCurrent(rw::TexDictionary*)", referenced from:
      RwTexDictionarySetCurrent(rw::TexDictionary*) in fake.o
  "rw::TexDictionary::streamWrite(rw::Stream*)", referenced from:
      RwTexDictionaryStreamWrite(rw::TexDictionary const*, rw::Stream*) in fake.o
  "rw::TexDictionary::find(char const*)", referenced from:
      CustomPipes::GetGlossTex(rw::Material*) in custompipes.o
      CustomPipes::EnvMapInit() in custompipes.o
      CustomPipes::customFindCB(char const*) in custompipes.o
      RwTexDictionaryFindNamedTexture(rw::TexDictionary*, char const*) in fake.o
  "rw::TexDictionary::create()", referenced from:
      RwTexDictionaryCreate() in fake.o
  "rw::TexDictionary::destroy()", referenced from:
      CustomPipes::CustomPipeShutdown() in custompipes.o
      RwTexDictionaryDestroy(rw::TexDictionary*) in fake.o
  "rw::TexDictionary::addFront(rw::Texture*)", referenced from:
      RwTexDictionaryAddTexture(rw::TexDictionary*, rw::Texture*) in fake.o
  "rw::allocLocation", referenced from:
      rw::mustmalloc_LOC(unsigned long, unsigned int, char const*) in fake.o
  "rw::GetRenderState(int)", referenced from:
      SetAlphaTest(unsigned int) in RwHelper.o
      RwRenderStateGet(RwRenderState, void*) in fake.o
  "rw::HAnimHierarchy::updateMatrices()", referenced from:
      RpHAnimHierarchyUpdateMatrices(rw::HAnimHierarchy*) in fake.o
  "rw::HAnimHierarchy::get(rw::Frame*)", referenced from:
      RpHAnimFrameGetHierarchy(rw::Frame*) in fake.o
  "rw::HAnimHierarchy::getIndex(int)", referenced from:
      RpHAnimIDGetIndex(rw::HAnimHierarchy*, int) in fake.o
  "rw::SetRenderState(int, unsigned int)", referenced from:
      CMBlur::OverlayRenderFx(rw::Camera*, rw::Raster*) in MBlur.o
      SetStencilState(int) in Renderer.o
      DefinedState() in RwHelper.o
      SetAlphaTest(unsigned int) in RwHelper.o
      RestoreAlphaTest() in RwHelper.o
      CustomPipes::EnvMapRender() in custompipes.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      ...
  "rw::AnimInterpolator::setCurrentAnim(rw::Animation*)", referenced from:
      RpHAnimHierarchySetCurrentAnim(rw::HAnimHierarchy*, rw::Animation*) in fake.o
  "rw::AnimInterpolator::addTime(float)", referenced from:
      RpHAnimHierarchyAddAnimTime(rw::HAnimHierarchy*, float) in fake.o
  "rw::GetRenderStatePtr(int)", referenced from:
      RwRenderStateGet(RwRenderState, void*) in fake.o
  "rw::SetRenderStatePtr(int, void*)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwRenderStateSet(RwRenderState, void*) in fake.o
  "rw::registerMeshPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::registerSkinPlugin()", referenced from:
      RpSkinPluginAttach() in fake.o
  "rw::registerHAnimPlugin()", referenced from:
      RpHAnimPluginAttach() in fake.o
  "rw::registerMatFXPlugin()", referenced from:
      RpMatFXPluginAttach() in fake.o
  "rw::AnimInterpolatorInfo::find(int)", referenced from:
      RpHAnimAnimationCreate(int, int, int, float) in fake.o
  "rw::registerAnisotropyPlugin()", referenced from:
      RpAnisotPluginAttach() in fake.o
  "rw::registerNativeDataPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::registerAtomicRightsPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::getMaxSupportedMaxAnisotropy()", referenced from:
      RpAnisotGetMaxSupportedMaxAnisotropy() in fake.o
  "rw::registerMaterialRightsPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::V3d::transformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*)", referenced from:
      RwV3dTransformPoints(rw::V3d*, rw::V3d const*, int, rw::Matrix const*) in fake.o
  "rw::d3d::isP8supported", referenced from:
      RwEngineStart() in fake.o
  "rw::gl3::flushCache()", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::lightingCB(rw::Atomic*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::setTexture(int, rw::Texture*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::setUniform(int, void*)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::shaderDecl", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::ObjPipeline::create()", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::setMaterial(rw::RGBA const&, rw::SurfaceProperties const&, float)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      rw::gl3::setMaterial(unsigned int, rw::RGBA const&, rw::SurfaceProperties const&, float) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::skinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::currentShader", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadSpecLights() in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
  "rw::gl3::defaultShader", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::setWorldMatrix(rw::Matrix*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::gl3::skinInstanceCB(rw::Geometry*, rw::gl3::InstanceDataHeader*, int)", referenced from:
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::defaultRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::header_frag_src", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::header_vert_src", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::registerUniform(char const*, rw::gl3::UniformType, int)", referenced from:
      CustomPipes::CustomPipeRegisterGL() in custompipes_gl.o
      CPostFX::InitOnce() in postfx.o
      openim2d_uv2() in screendroplets.o
  "rw::gl3::setupVertexInput(rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::defaultInstanceCB(rw::Geometry*, rw::gl3::InstanceDataHeader*, int)", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
  "rw::gl3::setAttribPointers(rw::gl3::AttribDesc*, int)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::im2dOverrideShader", referenced from:
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
      ScreenDroplets::Render() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::nativeRasterOffset", referenced from:
      WorldRender::IsTextureTransparent(rw::Texture*) in custompipes_gl.o
  "rw::gl3::uploadSkinMatrices(rw::Atomic*)", referenced from:
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::gl3::teardownVertexInput(rw::gl3::InstanceDataHeader*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::disableAttribPointers(rw::gl3::AttribDesc*, int)", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::gl3::needToReadBackTextures", referenced from:
      CreateTxdImageForVideoCard() in TexRead.o
  "rw::gl3::Shader::use()", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::Shader::create(char const**, char const**)", referenced from:
      CustomPipes::CreateVehiclePipe() in custompipes_gl.o
      CustomPipes::CreateWorldPipe() in custompipes_gl.o
      CustomPipes::CreateGlossPipe() in custompipes_gl.o
      CustomPipes::CreateRimLightPipes() in custompipes_gl.o
      CPostFX::Open(rw::Camera*) in postfx.o
      ScreenDroplets::InitDraw() in screendroplets.o
  "rw::gl3::Shader::destroy()", referenced from:
      CustomPipes::DestroyVehiclePipe() in custompipes_gl.o
      CustomPipes::DestroyWorldPipe() in custompipes_gl.o
      CustomPipes::DestroyGlossPipe() in custompipes_gl.o
      CustomPipes::DestroyRimLightPipes() in custompipes_gl.o
      CPostFX::Close() in postfx.o
      ScreenDroplets::Shutdown() in screendroplets.o
  "rw::gl3::gl3Caps", referenced from:
      GetGPUcaps(GPUcaps*) in TexRead.o
  "rw::gl3::drawInst(rw::gl3::InstanceDataHeader*, rw::gl3::InstanceData*)", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
      ...
  "rw::gl3::setLights(rw::WorldLights*)", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::RenderBlendPass(int) in custompipes_gl.o
  "rw::Quat::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RtQuatRotate(RtQuat*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::im2d::RenderLine(void*, int, int, int)", referenced from:
      RwIm2DRenderLine(rw::gl3::Im2DVertex*, int, int, int) in fake.o
  "rw::im2d::RenderTriangle(void*, int, int, int, int)", referenced from:
      RwIm2DRenderTriangle(rw::gl3::Im2DVertex*, int, int, int, int) in fake.o
  "rw::im2d::RenderPrimitive(rw::PrimitiveType, void*, int)", referenced from:
      RwIm2DRenderPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int) in fake.o
  "rw::im2d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int, void*, int)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwIm2DRenderIndexedPrimitive(RwPrimitiveType, rw::gl3::Im2DVertex*, int, unsigned short*, int) in fake.o
  "rw::im2d::GetFarZ()", referenced from:
      RwIm2DGetFarScreenZ() in fake.o
  "rw::im2d::GetNearZ()", referenced from:
      RwIm2DGetNearScreenZ() in fake.o
  "rw::im3d::RenderIndexedPrimitive(rw::PrimitiveType, void*, int)", referenced from:
      RwIm3DRenderLine(int, int) in fake.o
      RwIm3DRenderIndexedPrimitive(RwPrimitiveType, unsigned short*, int) in fake.o
  "rw::im3d::End()", referenced from:
      RwIm3DEnd() in fake.o
  "rw::im3d::Transform(void*, int, rw::Matrix*, unsigned int)", referenced from:
      RwIm3DTransform(rw::gl3::Im3DVertex*, unsigned int, rw::Matrix*, unsigned int) in fake.o
  "rw::xbox::registerVertexFormatPlugin()", referenced from:
      RpWorldPluginAttach() in fake.o
  "rw::Clump::streamRead(rw::Stream*)", referenced from:
      RpClumpStreamRead(rw::Stream*) in fake.o
  "rw::Clump::removeAtomic(rw::Atomic*)", referenced from:
      RpClumpRemoveAtomic(rw::Clump*, rw::Atomic*) in fake.o
  "rw::Clump::clone()", referenced from:
      RpClumpClone(rw::Clump*) in fake.o
  "rw::Clump::create()", referenced from:
      RpClumpCreate() in fake.o
  "rw::Clump::render()", referenced from:
      RpClumpRender(rw::Clump*) in fake.o
  "rw::Clump::destroy()", referenced from:
      RpClumpDestroy(rw::Clump*) in fake.o
  "rw::Clump::addAtomic(rw::Atomic*)", referenced from:
      RpClumpAddAtomic(rw::Clump*, rw::Atomic*) in fake.o
  "rw::Clump::s_plglist", referenced from:
      rw::Clump::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Clump::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::Frame::removeChild()", referenced from:
      RwFrameRemoveChild(rw::Frame*) in fake.o
  "rw::Frame::updateObjects()", referenced from:
      rw::ObjectWithFrame::setFrame(rw::Frame*) in custompipes.o
      RwFrameSetIdentity(rw::Frame*) in fake.o
      RwFrameUpdateObjects(rw::Frame*) in fake.o
      rw::ObjectWithFrame::setFrame(rw::Frame*) in fake.o
  "rw::Frame::forAllChildren(rw::Frame* (*)(rw::Frame*, void*), void*)", referenced from:
      RwFrameForAllChildren(rw::Frame*, rw::Frame* (*)(rw::Frame*, void*), void*) in fake.o
  "rw::Frame::scale(rw::V3d const*, rw::CombineOp)", referenced from:
      RwFrameScale(rw::Frame*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Frame::create()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwFrameCreate() in fake.o
  "rw::Frame::getLTM()", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::rimSkinRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::AtomicFullyTransparent(rw::Atomic*, int, int) in custompipes_gl.o
      ...
  "rw::Frame::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RwFrameRotate(rw::Frame*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::Frame::destroy()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwFrameDestroy(rw::Frame*) in fake.o
  "rw::Frame::addChild(rw::Frame*, int)", referenced from:
      RwFrameAddChild(rw::Frame*, rw::Frame*) in fake.o
  "rw::Frame::s_plglist", referenced from:
      rw::Frame::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
      rw::Frame::registerPluginStream(unsigned int, rw::Stream* (*)(rw::Stream*, int, void*, int, int), rw::Stream* (*)(rw::Stream*, int, void*, int, int), int (*)(void*, int, int)) in fake.o
  "rw::Frame::transform(rw::Matrix const*, rw::CombineOp)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwFrameTransform(rw::Frame*, rw::Matrix const*, RwOpCombineType) in fake.o
  "rw::Frame::translate(rw::V3d const*, rw::CombineOp)", referenced from:
      RwFrameTranslate(rw::Frame*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Image::removeMask()", referenced from:
      _psGrabScreen in glfw.o
  "rw::Image::setSearchPath(char const*)", referenced from:
      RwImageSetPath(char const*) in fake.o
  "rw::Image::free()", referenced from:
      RwImageFreePixels(rw::Image*) in fake.o
  "rw::Image::create(int, int, int)", referenced from:
      RwImageCreate(int, int, int) in fake.o
  "rw::Image::destroy()", referenced from:
      RwImageDestroy(rw::Image*) in fake.o
  "rw::Image::allocate()", referenced from:
      RwImageAllocatePixels(rw::Image*) in fake.o
  "rw::Light::create(int)", referenced from:
      RpLightCreate(int) in fake.o
  "rw::Light::destroy()", referenced from:
      RpLightDestroy(rw::Light*) in fake.o
  "rw::Light::setColor(float, float, float)", referenced from:
      RpLightSetColor(rw::Light*, rw::RGBAf const*) in fake.o
  "rw::MatFX::getEffects(rw::Material const*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      RpMatFXMaterialGetEffects(rw::Material const*) in fake.o
  "rw::MatFX::setEffects(rw::Material*, unsigned int)", referenced from:
      RpMatFXMaterialSetEffects(rw::Material*, RpMatFXMaterialFlags) in fake.o
  "rw::MatFX::envMapColor", referenced from:
      CGame::InitialiseRenderWare() in Game.o
  "rw::MatFX::envMapFlipU", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::setEnvFrame(rw::Frame*)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapFrame(rw::Material*, rw::Frame*) in fake.o
  "rw::MatFX::enableEffects(rw::Atomic*)", referenced from:
      RpMatFXAtomicEnableEffects(rw::Atomic*) in fake.o
  "rw::MatFX::setEnvFBAlpha(int)", referenced from:
      RpMatFXMaterialSetEnvMapFrameBufferAlpha(rw::Material*, int) in fake.o
  "rw::MatFX::setEnvTexture(rw::Texture*)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
  "rw::MatFX::getDualTexture()", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::MatFX::envMapApplyLight", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::envMapUseMatColor", referenced from:
      CGame::InitialiseRenderWare() in Game.o
      DebugMenuPopulate() in re3.o
  "rw::MatFX::getEnvCoefficient()", referenced from:
      RpMatFXMaterialGetEnvMapCoefficient(rw::Material const*) in fake.o
  "rw::MatFX::setEnvCoefficient(float)", referenced from:
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapCoefficient(rw::Material*, float) in fake.o
  "rw::MatFX::get(rw::Material const*)", referenced from:
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      RpMatFXMaterialSetupEnvMap(rw::Material*, rw::Texture*, rw::Frame*, int, float) in fake.o
      RpMatFXMaterialSetEnvMapFrame(rw::Material*, rw::Frame*) in fake.o
      RpMatFXMaterialSetEnvMapFrameBufferAlpha(rw::Material*, int) in fake.o
      RpMatFXMaterialSetEnvMapCoefficient(rw::Material*, float) in fake.o
      RpMatFXMaterialGetEnvMapCoefficient(rw::Material const*) in fake.o
  "rw::World::removeLight(rw::Light*)", referenced from:
      RpWorldRemoveLight(rw::World*, rw::Light*) in fake.o
  "rw::World::removeCamera(rw::Camera*)", referenced from:
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RpWorldRemoveCamera(rw::World*, rw::Camera*) in fake.o
  "rw::World::create(rw::BBox*)", referenced from:
      RpWorldCreate(rw::BBox*) in fake.o
  "rw::World::destroy()", referenced from:
      RpWorldDestroy(rw::World*) in fake.o
  "rw::World::addLight(rw::Light*)", referenced from:
      RpWorldAddLight(rw::World*, rw::Light*) in fake.o
  "rw::World::addCamera(rw::Camera*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RpWorldAddCamera(rw::World*, rw::Camera*) in fake.o
  "rw::Atomic::uninstance()", referenced from:
      ConvertPlatformAtomic(rw::Atomic*, void*) in RwHelper.o
  "rw::Atomic::getPipeline()", referenced from:
      WorldRender::AtomicFirstPass(rw::Atomic*, int) in custompipes_gl.o
      WorldRender::AtomicFullyTransparent(rw::Atomic*, int, int) in custompipes_gl.o
  "rw::Atomic::setGeometry(rw::Geometry*, unsigned int)", referenced from:
      RpAtomicSetGeometry(rw::Atomic*, rw::Geometry*, unsigned int) in fake.o
  "rw::Atomic::defaultRenderCB(rw::Atomic*)", referenced from:
      rw::Atomic::setRenderCB(void (*)(rw::Atomic*)) in fake.o
      AtomicDefaultRenderCallBack(rw::Atomic*) in fake.o
  "rw::Atomic::clone()", referenced from:
      RpAtomicClone(rw::Atomic*) in fake.o
  "rw::Atomic::create()", referenced from:
      RpAtomicCreate() in fake.o
  "rw::Atomic::destroy()", referenced from:
      RpAtomicDestroy(rw::Atomic*) in fake.o
  "rw::Atomic::s_plglist", referenced from:
      rw::Atomic::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in fake.o
  "rw::Camera::showRaster(unsigned int)", referenced from:
      RwCameraShowRaster(rw::Camera*, void*, unsigned int) in fake.o
  "rw::Camera::setFarPlane(float)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetFarClipPlane(rw::Camera*, float) in fake.o
  "rw::Camera::setNearPlane(float)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetNearClipPlane(rw::Camera*, float) in fake.o
  "rw::Camera::setViewOffset(rw::V2d const*)", referenced from:
      RwCameraSetViewOffset(rw::Camera*, rw::V2d const*) in fake.o
  "rw::Camera::setViewWindow(rw::V2d const*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraSetViewWindow(rw::Camera*, rw::V2d const*) in fake.o
  "rw::Camera::clear(rw::RGBA*, unsigned int)", referenced from:
      CustomPipes::EnvMapRender() in custompipes.o
      RwCameraClear(rw::Camera*, rw::RGBA*, int) in fake.o
  "rw::Camera::clone()", referenced from:
      RwCameraClone(rw::Camera*) in fake.o
  "rw::Camera::create()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwCameraCreate() in fake.o
  "rw::Camera::destroy()", referenced from:
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwCameraDestroy(rw::Camera*) in fake.o
  "rw::Engine::setSubSystem(int)", referenced from:
      RwEngineSetSubSystem(int) in fake.o
  "rw::Engine::setVideoMode(int)", referenced from:
      RwEngineSetVideoMode(int) in fake.o
  "rw::Engine::getNumSubSystems()", referenced from:
      RwEngineGetNumSubSystems() in fake.o
  "rw::Engine::getNumVideoModes()", referenced from:
      RwEngineGetNumVideoModes() in fake.o
  "rw::Engine::getSubSystemInfo(rw::SubSystemInfo*, int)", referenced from:
      RwEngineGetSubSystemInfo(rw::SubSystemInfo*, int) in fake.o
  "rw::Engine::getVideoModeInfo(rw::VideoMode*, int)", referenced from:
      RwEngineGetVideoModeInfo(rw::VideoMode*, int) in fake.o
  "rw::Engine::getCurrentSubSystem()", referenced from:
      RwEngineGetCurrentSubSystem() in fake.o
  "rw::Engine::getCurrentVideoMode()", referenced from:
      RwEngineGetCurrentVideoMode() in fake.o
  "rw::Engine::setMultiSamplingLevels(unsigned int)", referenced from:
      RwD3D8EngineSetMultiSamplingLevels(unsigned int) in fake.o
  "rw::Engine::getMaxMultiSamplingLevels()", referenced from:
      RwD3D8EngineGetMaxMultiSamplingLevels() in fake.o
  "rw::Engine::init(rw::MemoryFunctions*)", referenced from:
      RwEngineInit(RwMemoryFunctions*, unsigned int, unsigned int) in fake.o
  "rw::Engine::open(rw::EngineOpenParams*)", referenced from:
      RwEngineOpen(RwEngineOpenParams*) in fake.o
  "rw::Engine::stop()", referenced from:
      RwEngineStop() in fake.o
  "rw::Engine::term()", referenced from:
      RwEngineTerm() in fake.o
  "rw::Engine::close()", referenced from:
      RwEngineClose() in fake.o
  "rw::Engine::start()", referenced from:
      RwEngineStart() in fake.o
  "rw::Engine::memfuncs", referenced from:
      RwMalloc(unsigned long) in fake.o
      RwFree(void*) in fake.o
      rwFrameListDeinitialize(rw::FrameList_*) in fake.o
      RwStreamOpen(RwStreamType, RwStreamAccessType, void const*) in fake.o
      rw::mustmalloc_LOC(unsigned long, unsigned int, char const*) in fake.o
      RwStreamClose(rw::Stream*, void*) in fake.o
  "rw::Matrix::setIdentity()", referenced from:
      RwMatrixSetIdentity(rw::Matrix*) in fake.o
      RwFrameSetIdentity(rw::Frame*) in fake.o
  "rw::Matrix::scale(rw::V3d const*, rw::CombineOp)", referenced from:
      RwMatrixScale(rw::Matrix*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Matrix::create()", referenced from:
      RwMatrixCreate() in fake.o
  "rw::Matrix::invert(rw::Matrix*, rw::Matrix const*)", referenced from:
      RwMatrixInvert(rw::Matrix*, rw::Matrix const*) in fake.o
  "rw::Matrix::rotate(rw::V3d const*, float, rw::CombineOp)", referenced from:
      RwMatrixRotate(rw::Matrix*, rw::V3d const*, float, RwOpCombineType) in fake.o
  "rw::Matrix::rotate(rw::Quat const&, rw::CombineOp)", referenced from:
      RtQuatConvertToMatrix(RtQuat const*, rw::Matrix*) in fake.o
  "rw::Matrix::destroy()", referenced from:
      RwMatrixDestroy(rw::Matrix*) in fake.o
  "rw::Matrix::transform(rw::Matrix const*, rw::CombineOp)", referenced from:
      RwMatrixTransform(rw::Matrix*, rw::Matrix const*, RwOpCombineType) in fake.o
  "rw::Matrix::translate(rw::V3d const*, rw::CombineOp)", referenced from:
      RwMatrixTranslate(rw::Matrix*, rw::V3d const*, RwOpCombineType) in fake.o
  "rw::Raster::popContext()", referenced from:
      RwRasterPopContext() in fake.o
  "rw::Raster::renderFast(int, int)", referenced from:
      RwRasterRenderFast(rw::Raster*, int, int) in fake.o
  "rw::Raster::pushContext(rw::Raster*)", referenced from:
      RwRasterPushContext(rw::Raster*) in fake.o
  "rw::Raster::setFromImage(rw::Image*, int)", referenced from:
      RwRasterSetFromImage(rw::Raster*, rw::Image*) in fake.o
  "rw::Raster::getCurrentContext()", referenced from:
      RwRasterGetCurrentContext() in fake.o
  "rw::Raster::imageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*, int)", referenced from:
      RwImageFindRasterFormat(rw::Image*, int, int*, int*, int*, int*) in fake.o
  "rw::Raster::convertTexToCurrentPlatform(rw::Raster*)", referenced from:
      rwNativeTextureHackRead(rw::Stream*, rw::Texture**, int) in fake.o
  "rw::Raster::lock(int, int)", referenced from:
      RwRasterLock(rw::Raster*, unsigned char, int) in fake.o
  "rw::Raster::create(int, int, int, int, int)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwRasterCreate(int, int, int, int) in fake.o
  "rw::Raster::unlock(int)", referenced from:
      RwRasterUnlock(rw::Raster*) in fake.o
  "rw::Raster::destroy()", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      CustomPipes::DestroyCam(rw::Camera*) in custompipes.o
      RwRasterDestroy(rw::Raster*) in fake.o
  "rw::Raster::toImage()", referenced from:
      _psGrabScreen in glfw.o
  "rw::engine", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      RwCameraGetCurrentCamera() in fake.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "rw::Charset::flushBuffer()", referenced from:
      RtCharsetBufferFlush() in fake.o
  "rw::Charset::printBuffered(char const*, int, int, int)", referenced from:
      RtCharsetPrintBuffered(rw::Charset*, char const*, int, int, int) in fake.o
  "rw::Charset::open()", referenced from:
      RtCharsetOpen() in fake.o
  "rw::Charset::close()", referenced from:
      RtCharsetClose() in fake.o
  "rw::Charset::print(char const*, int, int, int)", referenced from:
      RtCharsetPrint(rw::Charset*, char const*, int, int) in fake.o
  "rw::Charset::create(rw::RGBA const*, rw::RGBA const*)", referenced from:
      RtCharsetCreate(rw::RGBA const*, rw::RGBA const*) in fake.o
  "rw::Charset::destroy()", referenced from:
      RtCharsetDestroy(rw::Charset*) in fake.o
  "rw::Charset::setColors(rw::RGBA const*, rw::RGBA const*)", referenced from:
      RtCharsetSetColors(rw::Charset*, rw::RGBA const*, rw::RGBA const*) in fake.o
  "rw::Texture::getMaxAnisotropy()", referenced from:
      RpAnisotTextureGetMaxAnisotropy(rw::Texture*) in fake.o
  "rw::Texture::setMaxAnisotropy(int)", referenced from:
      RpAnisotTextureSetMaxAnisotropy(rw::Texture*, signed char) in fake.o
  "rw::Texture::streamReadNative(rw::Stream*)", referenced from:
      rwNativeTextureHackRead(rw::Stream*, rw::Texture**, int) in fake.o
  "rw::Texture::read(char const*, char const*)", referenced from:
      RwTextureRead(char const*, char const*) in fake.o
  "rw::Texture::create(rw::Raster*)", referenced from:
      CustomPipes::CreateEnvMapCam(rw::World*) in custompipes.o
      RwTextureCreate(rw::Raster*) in fake.o
  "rw::Texture::findCB", referenced from:
      CustomPipes::SetTxdFindCallback() in custompipes.o
  "rw::Texture::destroy()", referenced from:
      CustomPipes::EnvMapShutdown() in custompipes.o
      RwTextureDestroy(rw::Texture*) in fake.o
  "rw::readBMP(char const*)", referenced from:
      RtBMPImageRead(char const*) in fake.o
  "rw::readPNG(char const*)", referenced from:
      RtPNGImageRead(char const*) in fake.o
  "rw::Geometry::streamRead(rw::Stream*)", referenced from:
      RpGeometryStreamRead(rw::Stream*) in fake.o
  "rw::Geometry::addMorphTargets(int)", referenced from:
      RpGeometryAddMorphTargets(rw::Geometry*, int) in fake.o
  "rw::Geometry::lock(int)", referenced from:
      RpGeometryLock(rw::Geometry*, int) in fake.o
  "rw::Geometry::create(int, int, unsigned int)", referenced from:
      RpGeometryCreate(int, int, unsigned int) in fake.o
  "rw::Geometry::unlock()", referenced from:
      RpGeometryUnlock(rw::Geometry*) in fake.o
  "rw::Geometry::destroy()", referenced from:
      RpGeometryDestroy(rw::Geometry*) in fake.o
  "rw::Material::setTexture(rw::Texture*)", referenced from:
      RpMaterialSetTexture(rw::Material*, rw::Texture*) in fake.o
  "rw::Material::create()", referenced from:
      RpMaterialCreate() in fake.o
  "rw::Material::destroy()", referenced from:
      RpMaterialDestroy(rw::Material*) in fake.o
  "rw::Material::s_plglist", referenced from:
      rw::Material::registerPlugin(int, unsigned int, void* (*)(void*, int, int), void* (*)(void*, int, int), void* (*)(void*, void*, int, int)) in custompipes.o
  "rw::platform", referenced from:
      attachPipe(rw::Atomic*) in RwHelper.o
      ConvertPlatformAtomic(rw::Atomic*, void*) in RwHelper.o
      GetGPUcaps(GPUcaps*) in TexRead.o
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
  "rw::writeBMP(rw::Image*, char const*)", referenced from:
      RtBMPImageWrite(rw::Image*, char const*) in fake.o
  "rw::writePNG(rw::Image*, char const*)", referenced from:
      RtPNGImageWrite(rw::Image*, char const*) in fake.o
  "rw::Animation::streamRead(rw::Stream*)", referenced from:
      RpHAnimAnimationStreamRead(rw::Stream*) in fake.o
  "rw::Animation::create(rw::AnimInterpolatorInfo*, int, int, float)", referenced from:
      RpHAnimAnimationCreate(int, int, int, float) in fake.o
  "rw::Animation::destroy()", referenced from:
      RpHAnimAnimationDestroy(rw::Animation*) in fake.o
  "rw::HAnimData::get(rw::Frame*)", referenced from:
      RpHAnimFrameGetID(rw::Frame*) in fake.o
      RpHAnimFrameSetHierarchy(rw::Frame*, rw::HAnimHierarchy*) in fake.o
  "rw::findChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*)", referenced from:
      RwStreamFindChunk(rw::Stream*, unsigned int, unsigned int*, unsigned int*) in fake.o
  "rw::MorphTarget::calculateBoundingSphere() const", referenced from:
      RpMorphTargetCalcBoundingSphere(rw::MorphTarget const*, rw::Sphere*) in fake.o
  "rw::Camera::frustumTestSphere(rw::Sphere const*) const", referenced from:
      RwCameraFrustumTestSphere(rw::Camera const*, rw::Sphere const*) in fake.o
  "vtable for rw::StreamFile", referenced from:
      rw::StreamFile::StreamFile() in fake.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for rw::StreamMemory", referenced from:
      rw::StreamMemory::StreamMemory() in fake.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "_alBufferData", referenced from:
      CChannel::Start() in channel.o
      CStream::FillBuffer(unsigned int*) in stream.o
  "_alBufferiv", referenced from:
      CChannel::Start() in channel.o
  "_alDeleteBuffers", referenced from:
      CChannel::DestroyChannels() in channel.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alDeleteSources", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
      CChannel::DestroyChannels() in channel.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alDistanceModel", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alGenBuffers", referenced from:
      CChannel::InitChannels() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alGenSources", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
      CChannel::InitChannels() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alGetEnumValue", referenced from:
      add_providers() in sampman_oal.o
  "_alGetError", referenced from:
      ALDeviceList::GetMaxNumSources() in aldlist.o
  "_alGetProcAddress", referenced from:
      EFXInit() in oal_utils.o
  "_alGetSourcei", referenced from:
      CChannel::IsUsed() in channel.o
      CChannel::Update() in channel.o
      CStream::SetPlay(bool) in stream.o
      CStream::ClearBuffers() in stream.o
      CStream::IsPlaying() in stream.o
      CStream::Pause() in stream.o
      CStream::GetPosMS() in stream.o
      ...
  "_alGetString", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alIsExtensionPresent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alListener3f", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alListenerf", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alListenerfv", referenced from:
      cSampleManager::Initialise() in sampman_oal.o
  "_alSource3f", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::SetPosition(float, float, float) in channel.o
      cSampleManager::Initialise() in sampman_oal.o
      CStream::SetPosition(int, float, float, float) in stream.o
  "_alSource3i", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::Term() in channel.o
      CChannel::SetReverbMix(unsigned int, float) in channel.o
      CChannel::UpdateReverb(unsigned int) in channel.o
  "_alSourcePause", referenced from:
      CStream::Pause() in stream.o
  "_alSourcePlay", referenced from:
      CChannel::Start() in channel.o
      CStream::SetPlay(bool) in stream.o
  "_alSourceQueueBuffers", referenced from:
      CStream::FillBuffers() in stream.o
      CStream::BufferShouldBeFilledAndQueued(std::__1::pair<unsigned int, unsigned int>*) in stream.o
      CStream::QueueBuffers() in stream.o
  "_alSourceStop", referenced from:
      CChannel::Stop() in channel.o
      CStream::SetPlay(bool) in stream.o
  "_alSourceUnqueueBuffers", referenced from:
      CStream::ClearBuffers() in stream.o
      CStream::Update() in stream.o
  "_alSourcef", referenced from:
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::SetPitch(float) in channel.o
      CChannel::SetGain(float) in channel.o
      CChannel::SetDistances(float, float) in channel.o
      cSampleManager::Initialise() in sampman_oal.o
      CStream::SetPitch(float) in stream.o
      CStream::SetGain(float) in stream.o
      ...
  "_alSourcei", referenced from:
      CChannel::ClearBuffer() in channel.o
      CChannel::Init(unsigned int, bool) in channel.o
      CChannel::Start() in channel.o
      CChannel::SetLoopCount(int) in channel.o
      CChannel::Update() in channel.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcCloseDevice", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcCreateContext", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcDestroyContext", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcGetIntegerv", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alcGetString", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
  "_alcIsExtensionPresent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      set_new_provider(int) in sampman_oal.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcMakeContextCurrent", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
      cSampleManager::Terminate() in sampman_oal.o
  "_alcOpenDevice", referenced from:
      ALDeviceList::ALDeviceList() in aldlist.o
      cSampleManager::Initialise() in sampman_oal.o
  "_alcSuspendContext", referenced from:
      cSampleManager::Terminate() in sampman_oal.o
  "_glad_glBindBuffer", referenced from:
      openim2d_uv2() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glBufferData", referenced from:
      openim2d_uv2() in screendroplets.o
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glBufferSubData", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glDeleteBuffers", referenced from:
      closeim2d_uv2() in screendroplets.o
  "_glad_glDrawElements", referenced from:
      RenderIndexedPrimitive_UV2(RwPrimitiveType, Im2DVertexUV2*, int, unsigned short*, int) in screendroplets.o
  "_glad_glGenBuffers", referenced from:
      openim2d_uv2() in screendroplets.o
  "_glad_glPopDebugGroup", referenced from:
      PopRendergroup() in RwHelper.o
  "_glad_glPushDebugGroup", referenced from:
      PushRendergroup(char const*) in RwHelper.o
  "_glad_glUniform3fv", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
  "_glad_glUniform4fv", referenced from:
      CustomPipes::vehicleRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::worldRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::glossRenderCB(rw::Atomic*, rw::gl3::InstanceDataHeader*) in custompipes_gl.o
      CustomPipes::uploadSpecLights() in custompipes_gl.o
      CustomPipes::uploadRimData(bool) in custompipes_gl.o
      CPostFX::RenderOverlayShader(rw::Camera*, int, int, int, int) in postfx.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../bin/macosx-amd64-librw_gl3_glfw-oal/Debug/reVC.app] Error 1
make: *** [reVC] Error 2

"gta_vc.set" is not found!

Describe the bug & To Reproduce*
This bug happens when I launch reVC , it fails to create a window. Then I cd to Grand Theft Auto Vice City's directory and launch it from there and I get this output. I'm currently on FreeBSD but this also happens on Mac OS as a friend tried to play it recently, and he had the same output.

Expected behavior
Launch and play the game normally.

Output

  • Gamer@BSD:~/Documents/GTAVC/GTAVC $ ./reVC
  • [DBG]: cdvd_stream: read info 0x51e6b865000
  • [DBG]: Using one streaming thread for all channels
  • [DBG]: size of matrix 80
  • [DBG]: size of matrix 80
  • [DBG]: size of placeable 80
  • [DBG]: size of entity 120
  • [DBG]: size of building 120
  • [DBG]: size of dummy 128
  • [DBG-2]: [../src/skel/glfw/glfw.cpp.psInitialize:484]: gGameState = GS_START_UP
  • casepath couldn't find dir/file "gta_vc.set", full path was gta_vc.set
  • Segmentation fault (core dumped)
  • Gamer@BSD:~/Documents/GTAVC/GTAVC $

[macOS] [Arm] GLFW fails to create viewport/window on retina displays

Describe the bug

I have built an arm64 binary and am trying to get it to run on an M1 MacBook Pro. It fails at launch with the warning:
WARNING: Cannot find desired video mode, selecting device cancelled

I have also built an amd64 binary and ran it on an old 2015 MacBook Air (non-retina display), and it works fine.

I read online that the Retina display is the issue. (Obviously this may not be accurate, because internets...). It may also affect Intel Macs with retina displays, but I can't test this.

The warning is called from here after a check for bestFsMode. The comments say Find the videomode that best fits what we got from the settings file, but I guess this inference from the settings file is not working...

To Reproduce
Build an arm64 binary and try to run on an M1 Mac with Retina display.

Expected behavior
Game boots

re3 - Not able to launch (Arch Linux - i3-gaps)

when I try to launch the game, it doesn't start and prints out an error
(LOG)

[DBG]: cdvd_stream: read info 0x562ecc634df0
[DBG]: Using one streaming thread for all channels
[DBG]: Created cdstream thread
[DBG-2]: [../src/skel/glfw/glfw.cpp.psInitialize:484]: gGameState = GS_START_UP
casepath couldn't find dir/file "gta3.set", full path was gta3.set
[DBG-2]: Default skin set as no other skins are available OR saved skin not found!
[DBG]: Physical memory size 3477565440
[DBG]: Available physical memory 586686464
../vendor/librw/src/gl/gl3device.cpp:1666: Error: glfwInit() failed
[DBG]: Shutting down CPedStats...
[DBG]: CPedStats shut down

Both games dont work

The games are just on the loading screens for 10-30s and then the game crashes

Issue building re3 miami branch

I have an issue compiling the miami branch under Manjaro linux. I have all the dependencies installed, I'm just stuck at linking. It doesn't want to link my libraries because they are supposedly incompatible. Is there an easy fix to this? I attached my make error below. For reference, I used premake5 to make the makefile.

[alex@alex-zephy build]$ make
==== Building reVC (debug_linux-x86-librw_gl3_glfw-oal) ====
Running prebuild commands
"./../printHash.sh" "./../src/extras/GitSHA1.cpp"
GitSHA1.cpp
Linking reVC
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libopenal.so when searching for -lopenal
/usr/bin/ld: skipping incompatible /usr/lib/libopenal.so when searching for -lopenal
/usr/bin/ld: cannot find -lopenal: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libopenal.so when searching for -lopenal
/usr/bin/ld: skipping incompatible /usr/lib/libopenal.so when searching for -lopenal
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libmpg123.so when searching for -lmpg123
/usr/bin/ld: skipping incompatible /usr/lib/libmpg123.so when searching for -lmpg123
/usr/bin/ld: cannot find -lmpg123: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libmpg123.so when searching for -lmpg123
/usr/bin/ld: skipping incompatible /usr/lib/libmpg123.so when searching for -lmpg123
/usr/bin/ld: cannot find -lrw: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libglfw.so when searching for -lglfw
/usr/bin/ld: skipping incompatible /usr/lib/libglfw.so when searching for -lglfw
/usr/bin/ld: cannot find -lglfw: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../libglfw.so when searching for -lglfw
/usr/bin/ld: skipping incompatible /usr/lib/libglfw.so when searching for -lglfw
collect2: error: ld returned 1 exit status
make[1]: *** [reVC.make:629: ../bin/linux-x86-librw_gl3_glfw-oal/Debug/reVC] Error 1
make: *** [Makefile:48: reVC] Error 2
[alex@alex-zephy build]$ ls
Makefile  obj  reVC.make

RE3 Assert Failed m_numCarPathLinks <= NUM_CARPATHLINKS

Hello

I am able to launch the game fine and get into the main menu and navigate.
However whenever I start a game, the below assertion is thrown then crashes to desktop.

PreparePathData

RE3 ASSERT FAILED
File: ../src/control/PathFind.cpp
Line: 782
Function: PreparePathDataForType
Expression: m_numCarPathLinks <= NUM_CARPATHLINKS

I am running the Linux build on arch linux.

Thank you

I fixed building instructions for macOS, I suggest you to copy my wiki to your repo.

I imported the wiki in my repo then updated instructions for macOS witch was faulty + added some useful informations for macOS users.
You can find it here: https://github.com/joyel24/re3/wiki/Building-on-MacOS

I really suggest you to add the wiki to this repo.

All you have to do is:

  • Create a new empty wiki then clone it to your computer
  • clone mine to another directory git clone https://github.com/joyel24/re3.wiki.git re3_joyel.wiki
  • copy all .md files from re3_joyel.wiki directory to your empty re3.wiki (You can do something like cp ./re3_joyel.wiki/*.md ./re3.wiki/

[macOS] [Arm] [Miami Branch] Screen cut in half or Mouse not working

Describe the bug
When starting reVC with default rescaled desktop resolution 2560x1440 the screen is cut in half. When starting with 1080p or 4k resolution the screen is fine, but the mouse doesn't work in menus and ingame.

To Reproduce
You need a current MacOS with atleast one native 4K screen downscaled to 2560x1440

Expected behavior
Screen is not cut in half or if a custom resolution is needed: a working mouse :)

Version
reVC Branch commit: [a16fcd8]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.