Symbian^3 port

This commit is contained in:
Shinovon 2026-04-29 05:15:13 +05:00
parent 77cdaaf97e
commit 3eb71f2cc5
106 changed files with 2098 additions and 745 deletions

View file

@ -0,0 +1,47 @@
ifeq (WINS,$(findstring WINS, $(PLATFORM)))
ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
else
ZDIR=$(EPOCROOT)epoc32\data\z
endif
TARGETDIR=$(ZDIR)\resource\apps
ICONTARGETFILENAME=$(TARGETDIR)\re3_icon.mif
ICONDIR=.
do_nothing :
@rem do_nothing
MAKMAKE : do_nothing
BLD : do_nothing
CLEAN :
@echo ...Deleting $(ICONTARGETFILENAME)
del /q /f $(ICONTARGETFILENAME)
LIB : do_nothing
CLEANLIB : do_nothing
# ----------------------------------------------------------------------------
# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
# and this command crashes, consider adding "/X" to the command line.
# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
# ----------------------------------------------------------------------------
RESOURCE : $(ICONTARGETFILENAME)
$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_re3.svg
mifconv $(ICONTARGETFILENAME) \
/c32 $(ICONDIR)\qgn_menu_re3.svg
FREEZE : do_nothing
SAVESPACE : do_nothing
RELEASABLES :
@echo $(ICONTARGETFILENAME)
FINAL : do_nothing

8
group/bld.inf Normal file
View file

@ -0,0 +1,8 @@
PRJ_PLATFORMS
DEFAULT ARMV6
PRJ_MMPFILES
gnumakefile Icons_scalable_dc.mk
gnumakefile shaders.mk
librw.mmp
re3.mmp

28
group/common.mmh Normal file
View file

@ -0,0 +1,28 @@
SYSTEMINCLUDE /epoc32/include
SYSTEMINCLUDE /epoc32/include/stdapis/stlportv5
SYSTEMINCLUDE /epoc32/include/stdapis
SYSTEMINCLUDE /epoc32/include/mw
SYSTEMINCLUDE /epoc32/include/platform
SYSTEMINCLUDE /epoc32/include/platform/mw
SYSTEMINCLUDE /epoc32/include/gles
USERINCLUDE .
MACRO LIBRW
MACRO RW_GL3
MACRO MASTER
DEBUGGABLE
#ifdef _DEBUG
SRCDBG
#endif
OPTION ARMCC --gnu -Otime --diag_suppress 1,68,111,174,381,1293
OPTION_REPLACE ARMCC --cpu 6
OPTION_REPLACE ARMCC --fpu softvfp+vfpv2 --fpmode fast
OPTION_REPLACE ARMCC -O2 -O3
#ifdef ARMCC
ALWAYS_BUILD_AS_ARM
#endif
STDCPP

28
group/librw.mmp Normal file
View file

@ -0,0 +1,28 @@
#include "common.mmh"
TARGET librw.lib
TARGETTYPE lib
USERINCLUDE ../vendor/librw
USERINCLUDE ../vendor/librw/src
SOURCEPATH ../vendor/librw/src
SOURCE anim.cpp base.cpp bmp.cpp camera.cpp charset.cpp clump.cpp
SOURCEPATH ../vendor/librw/src/d3d
SOURCE d3d.cpp d3d8.cpp d3d8matfx.cpp d3d8render.cpp d3d8skin.cpp d3d9.cpp d3d9matfx.cpp d3d9render.cpp d3d9skin.cpp d3ddevice.cpp d3dimmed.cpp d3drender.cpp xbox.cpp xboxmatfx.cpp xboxskin.cpp xboxvfmt.cpp
SOURCEPATH ../vendor/librw/src
SOURCE engine.cpp error.cpp frame.cpp geometry.cpp geoplg.cpp
SOURCEPATH ../vendor/librw/src/gl
SOURCE gl3.cpp gl3device.cpp gl3immed.cpp gl3matfx.cpp gl3pipe.cpp gl3raster.cpp gl3render.cpp gl3shader.cpp gl3skin.cpp wdgl.cpp
SOURCEPATH ../vendor/librw/src
SOURCE hanim.cpp image.cpp light.cpp
SOURCEPATH ../vendor/librw/src/lodepng
SOURCE lodepng.cpp
SOURCEPATH ../vendor/librw/src
SOURCE matfx.cpp pipeline.cpp plg.cpp png.cpp prim.cpp
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

10
group/qgn_menu_re3.svg Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="100%" height="100%" version="1.1" viewBox="0 0 270.93 270.93" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(2.1131 0 0 2.1131 14.956 63.501)" shape-rendering="auto">
<path d="m0.918 0.918v53.183h17.043v2.3301c0 2.9545 1.3475 6.3843 3.9119 8.3323s5.5141 2.4334 8.5003 2.4334h46.367v-14.546c2.172 1.1348 4.5481 1.4506 6.9484 1.4506h17.043c2.9861 0 5.9358-0.48548 8.5002-2.4334 2.5644-1.948 3.9119-5.3773 3.9119-8.3318v-12.371c0-1.0941-0.25094-2.2962-0.70487-3.4572 0.45593-1.162 0.70487-2.3636 0.70487-3.453v-12.238c0-2.9682-1.2968-6.3966-3.8571-8.3907s-5.551-2.5079-8.555-2.5079h-16.912c-3.004 0-5.9921 0.51377-8.5524 2.5079-0.4348 0.33865-0.8304 0.72117-1.1922 1.1333-0.36176-0.41207-0.75739-0.79464-1.1922-1.1333-2.5603-1.9941-5.5505-2.5079-8.5545-2.5079h-17.043c-2.9767 0-5.9379 0.51343-8.4827 2.4629-2.5271-1.9438-5.4765-2.4629-8.4295-2.4629z" color="#000000" fill="#fff" stroke="#000" stroke-width="1.836"/>
<g transform="translate(-51.548 -77.439)">
<path transform="translate(-2.6458)" d="m84.567 139.07c-4.5624 0-6.8437-1.7328-6.8437-5.1986v-24.611c0-0.0877-0.04387-0.13161-0.13161-0.13161h-3.2244v16.846h-13.687v-42.049h23.887c4.5186 0 6.7779 1.7767 6.7779 5.3302v12.24c0 2.018-1.1187 3.1586-3.356 3.4218 2.2812 0.30709 3.4218 1.4696 3.4218 3.4876v20.07c0 0.0877 0.04387 0.13161 0.13161 0.13161h33.824v10.463zm-6.8437-44.484c0-0.08774-0.04387-0.13161-0.13161-0.13161h-3.2244v6.3172h3.2244c0.08774 0 0.13161-0.0439 0.13161-0.13161zm33.955 0c0-0.08774-0.0439-0.13161-0.13161-0.13161h-3.0928c-0.0877 0-0.13161 0.04387-0.13161 0.13161v5.8566h3.356zm-10.2 31.389c-4.5624 0-6.8437-1.7328-6.8437-5.1986v-31.52c0-3.5534 2.2812-5.3302 6.8437-5.3302h17.043c4.5624 0 6.8437 1.7767 6.8437 5.3302v20.992h-17.043v5.1328c0 0.0877 0.0439 0.13161 0.13161 0.13161h3.0928c0.0877 0 0.13161-0.0439 0.13161-0.13161v-2.5006h13.687v7.8965c0 3.4657-2.2812 5.1986-6.8437 5.1986z" color="#000000"/>
<path d="m135.24 125.97c-4.5624 0-6.8437-1.7328-6.8437-5.1986v-7.8965h13.687v2.5006c0 0.0877 0.0439 0.13161 0.13161 0.13161h3.0928c0.0877 0 0.13161-0.0439 0.13161-0.13161v-6.1198c0-0.0877-0.0439-0.13161-0.13161-0.13161h-16.714v-8.3572h16.714c0.0877 0 0.13161-0.0439 0.13161-0.13161v-6.054c0-0.08774-0.0439-0.13161-0.13161-0.13161h-3.0928c-0.0877 0-0.13161 0.04387-0.13161 0.13161v2.4348h-13.556v-7.7649c0-3.5534 2.2812-5.3302 6.8437-5.3302h16.912c4.5624 0 6.8437 1.7767 6.8437 5.3302v12.24c0 2.018-1.1406 3.1586-3.4218 3.4218 2.2812 0.30709 3.4218 1.4696 3.4218 3.4876v12.371c0 3.4657-2.2812 5.1986-6.8437 5.1986z" fill="#c60000"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

113
group/re3.mmp Normal file
View file

@ -0,0 +1,113 @@
#include "common.mmh"
TARGET re3.exe
TARGETTYPE exe
UID 0 0xe0d67647
LIBRARY euser.lib
LIBRARY libstdcppv5.lib
LIBRARY libc.lib
LIBRARY libm.lib
LIBRARY libpthread.lib
LIBRARY libglesv2.lib
LIBRARY libegl.lib
LIBRARY apparc.lib
LIBRARY cone.lib
LIBRARY eikcore.lib
LIBRARY avkon.lib
LIBRARY ws32.lib
LIBRARY hal.lib
EPOCSTACKSIZE 0x14000
EPOCHEAPSIZE 0x80000 0x4000000
STATICLIBRARY librw.lib
SYSTEMINCLUDE ../vendor/librw
SOURCEPATH .
START RESOURCE re3.rss
HEADER
TARGETPATH \resource\apps
LANG SC
END
START RESOURCE re3_reg.rss
TARGETPATH \private\10003a3f\import\apps
END
CAPABILITY NetworkServices ReadUserData WriteUserData
USERINCLUDE ../src
USERINCLUDE ../src/animation
USERINCLUDE ../src/audio
USERINCLUDE ../src/buildings
USERINCLUDE ../src/collision
USERINCLUDE ../src/control
USERINCLUDE ../src/core
USERINCLUDE ../src/entities
USERINCLUDE ../src/extras
USERINCLUDE ../src/fakerw
USERINCLUDE ../src/math
USERINCLUDE ../src/modelinfo
USERINCLUDE ../src/objects
USERINCLUDE ../src/peds
USERINCLUDE ../src/renderer
USERINCLUDE ../src/rw
USERINCLUDE ../src/save
USERINCLUDE ../src/skel
USERINCLUDE ../src/text
USERINCLUDE ../src/vehicles
USERINCLUDE ../src/weapons
SOURCEPATH ../src/animation
SOURCE AnimBlendAssocGroup.cpp AnimBlendAssociation.cpp AnimBlendClumpData.cpp AnimBlendHierarchy.cpp AnimBlendNode.cpp AnimBlendSequence.cpp AnimManager.cpp Bones.cpp CutsceneMgr.cpp FrameUpdate.cpp RpAnimBlend.cpp
SOURCEPATH ../src/audio
SOURCE AudioCollision.cpp AudioLogic.cpp AudioManager.cpp AudioScriptObject.cpp DMAudio.cpp MusicManager.cpp PolRadio.cpp
SOURCEPATH ../src/audio/oal
SOURCE aldlist.cpp channel.cpp oal_utils.cpp stream.cpp
SOURCEPATH ../src/audio
SOURCE sampman_miles.cpp sampman_null.cpp sampman_oal.cpp
SOURCEPATH ../src/buildings
SOURCE Building.cpp Treadable.cpp
SOURCEPATH ../src/collision
SOURCE ColBox.cpp ColLine.cpp ColModel.cpp ColPoint.cpp ColSphere.cpp ColTriangle.cpp Collision.cpp TempColModels.cpp VuCollision.cpp
SOURCEPATH ../src/control
SOURCE AutoPilot.cpp Bridge.cpp CarAI.cpp CarCtrl.cpp Curves.cpp Darkel.cpp GameLogic.cpp Garages.cpp NameGrid.cpp OnscreenTimer.cpp PathFind.cpp Phones.cpp Pickups.cpp PowerPoints.cpp Record.cpp Remote.cpp Replay.cpp Restart.cpp RoadBlocks.cpp SceneEdit.cpp Script.cpp Script2.cpp Script3.cpp Script4.cpp Script5.cpp Script6.cpp ScriptDebug.cpp TrafficLights.cpp
SOURCEPATH ../src/core
SOURCE Accident.cpp AnimViewer.cpp Cam.cpp Camera.cpp CdStream.cpp CdStreamPosix.cpp Clock.cpp ControllerConfig.cpp Debug.cpp Directory.cpp EventList.cpp FileLoader.cpp FileMgr.cpp Fire.cpp FrontEndControls.cpp Frontend.cpp Frontend_PS2.cpp Game.cpp IniFile.cpp Lists.cpp MenuScreens.cpp MenuScreensCustom.cpp Pad.cpp Placeable.cpp PlayerInfo.cpp Pools.cpp Profile.cpp Radar.cpp Range2D.cpp Range3D.cpp References.cpp Stats.cpp Streaming.cpp SurfaceTable.cpp TimeStep.cpp Timer.cpp User.cpp Wanted.cpp World.cpp ZoneCull.cpp Zones.cpp main.cpp obrstr.cpp re3.cpp timebars.cpp
SOURCEPATH ../src/entities
SOURCE Dummy.cpp Entity.cpp Physical.cpp
SOURCEPATH ../src/extras
SOURCE custompipes.cpp custompipes_d3d9.cpp custompipes_gl.cpp debugmenu.cpp frontendoption.cpp postfx.cpp screendroplets.cpp
SOURCEPATH ../src/fakerw
SOURCE fake.cpp
SOURCEPATH ../src/math
SOURCE Matrix.cpp Quaternion.cpp Rect.cpp Vector.cpp math.cpp
SOURCEPATH ../src/modelinfo
SOURCE BaseModelInfo.cpp ClumpModelInfo.cpp MloModelInfo.cpp ModelIndices.cpp ModelInfo.cpp PedModelInfo.cpp SimpleModelInfo.cpp TimeModelInfo.cpp VehicleModelInfo.cpp
SOURCEPATH ../src/objects
SOURCE CutsceneHead.cpp CutsceneObject.cpp DummyObject.cpp Object.cpp ObjectData.cpp ParticleObject.cpp Projectile.cpp
SOURCEPATH ../src/peds
SOURCE CivilianPed.cpp CopPed.cpp EmergencyPed.cpp Gangs.cpp Ped.cpp PedAI.cpp PedChat.cpp PedDebug.cpp PedFight.cpp PedIK.cpp PedPlacement.cpp PedRoutes.cpp PedType.cpp PlayerPed.cpp Population.cpp
SOURCEPATH ../src/renderer
SOURCE Antennas.cpp Clouds.cpp Console.cpp Coronas.cpp Credits.cpp Draw.cpp Fluff.cpp Font.cpp Glass.cpp Hud.cpp Instance.cpp Lines.cpp MBlur.cpp Particle.cpp ParticleMgr.cpp PlayerSkin.cpp PointLights.cpp RenderBuffer.cpp Renderer.cpp Rubbish.cpp Shadows.cpp Skidmarks.cpp SpecialFX.cpp Sprite.cpp Sprite2d.cpp TexList.cpp Timecycle.cpp WaterCannon.cpp WaterLevel.cpp Weather.cpp
SOURCEPATH ../src/rw
SOURCE ClumpRead.cpp Lights.cpp MemoryHeap.cpp MemoryMgr.cpp NodeName.cpp RwHelper.cpp RwMatFX.cpp RwPS2AlphaTest.cpp TexRead.cpp TexturePools.cpp TxdStore.cpp VisibilityPlugins.cpp
SOURCEPATH ../src/save
SOURCE Date.cpp GenericGameStorage.cpp MemoryCard.cpp PCSave.cpp
SOURCEPATH ../src/skel
SOURCE crossplatform.cpp events.cpp
SOURCEPATH ../src/skel
SOURCE skeleton.cpp
SOURCEPATH ../src/skel/symbian
SOURCE symbian.cpp
SOURCEPATH ../src/text
SOURCE Messages.cpp Pager.cpp Text.cpp
SOURCEPATH ../src/vehicles
SOURCE Automobile.cpp Boat.cpp CarGen.cpp Cranes.cpp DamageManager.cpp Door.cpp Floater.cpp HandlingMgr.cpp Heli.cpp Plane.cpp Train.cpp Transmission.cpp Vehicle.cpp
SOURCEPATH ../src/weapons
SOURCE BulletInfo.cpp Explosion.cpp ProjectileInfo.cpp ShotInfo.cpp Weapon.cpp WeaponEffects.cpp WeaponInfo.cpp
SOURCEPATH ../vendor/librw/src
SOURCE assert.cpp

78
group/re3.rss Normal file
View file

@ -0,0 +1,78 @@
NAME GTA3
#include <eikon.rh>
#include <avkon.rsg>
#include <avkon.rh>
#include <avkon.mbg>
#include <appinfo.rh>
RESOURCE RSS_SIGNATURE { }
RESOURCE TBUF { buf="gta3"; }
RESOURCE EIK_APP_INFO { }
rls_string STRING_app_caption_string "GTA III"
rls_string STRING_app_short_caption_string "GTA III"
RESOURCE LOCALISABLE_APP_INFO r_RE3_localisable_app_info
{
short_caption = STRING_app_short_caption_string;
caption_and_icon = CAPTION_AND_ICON_INFO
{
caption = STRING_app_caption_string;
number_of_icons = 1;
icon_file = "\\resource\\apps\\re3_icon.mif";
};
}
RESOURCE DIALOG r_query_dialog
{
flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
items =
{
DLG_LINE
{
type = EAknCtPopupHeadingPane;
id = EAknMessageQueryHeaderId;
itemflags = EEikDlgItemNonFocusing;
control = AVKON_HEADING
{
};
},
DLG_LINE
{
type = EAknCtMessageQuery;
id = EAknMessageQueryContentId;
control = AVKON_MESSAGE_QUERY
{
};
}
};
}
RESOURCE DIALOG r_text_query
{
flags = EEikDialogFlagNoDrag | EEikDialogFlagNoTitleBar | EEikDialogFlagCbaButtons;
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
items =
{
DLG_LINE
{
type = EAknCtQuery;
id = EGeneralQuery;
control = AVKON_DATA_QUERY
{
layout = EDataLayout;
control = EDWIN
{
width = 128;
lines = 1;
maxlength = 510;
default_case = EAknEditorLowerCase;
allowed_case_modes = EAknEditorAllCaseModes;
};
};
}
};
}

17
group/re3_reg.rss Normal file
View file

@ -0,0 +1,17 @@
#include <appinfo.rh>
#include <re3.rsg>
UID2 KUidAppRegistrationResourceFile
UID3 0xe0d67647
RESOURCE APP_REGISTRATION_INFO
{
app_file="re3";
localisable_resource_file="\\resource\\apps\\re3";
localisable_resource_id=R_RE3_LOCALISABLE_APP_INFO;
embeddability=KAppNotEmbeddable;
newfile=KAppDoesNotSupportNewFile;
}

26
group/shaders.mk Normal file
View file

@ -0,0 +1,26 @@
MAKE = G:\Progs\MinGW\bin\mingw32-make
do_nothing :
@rem do_nothing
MAKMAKE: do_nothing
BLD: do_nothing
CLEAN:
rm ../vendor/librw/src/gl/shaders/*.inc
LIB: do_nothing
CLEANLIB: do_nothing
RESOURCE:
$(MAKE) -C ../vendor/librw/src/gl/shaders/ -f Makefile all
FREEZE: do_nothing
SAVESPACE: do_nothing
RELEASABLES: do_nothing
FINAL: do_nothing