diff --git a/.gitignore b/.gitignore index 6e7ad76b..3c2d6bfa 100644 --- a/.gitignore +++ b/.gitignore @@ -366,27 +366,51 @@ src/extras/GitSHA1.cpp *.d *.sim.o *.sim.o3 -dreamcast/1ST_READ.BIN -dreamcast/IP.BIN -dreamcast/re3.cdi -dreamcast/re3.iso -dreamcast/re3.elf -dreamcast/re3.elf.bin -dreamcast/re3-sim.elf -dreamcast/dca3.cdi -dreamcast/dca3.iso -dreamcast/dca3.elf -dreamcast/dca3.elf.bin -dreamcast/dca3-sim.elf -dreamcast/texconv* -dreamcast/imgtool* -dreamcast/extract-sfx* -dreamcast/pack-sfx* -dreamcast/analyze-profile* -dreamcast/aud2adpcm* -dreamcast/repack-data -dreamcast/output.map -dreamcast/dca3.ds.iso -dreamcast/git-version.h -dreamcast/git-version.tmp + +liberty/1ST_READ.BIN +liberty/IP.BIN +liberty/re3.cdi +liberty/re3.iso +liberty/re3.elf +liberty/re3.elf.bin +liberty/re3-sim.elf +liberty/dca3.cdi +liberty/dca3.iso +liberty/dca3.elf +liberty/dca3.elf.bin +liberty/dca3-sim.elf +liberty/texconv* +liberty/imgtool* +liberty/extract-sfx* +liberty/pack-sfx* +liberty/analyze-profile* +liberty/aud2adpcm* +liberty/repack-data +liberty/output.map +liberty/dca3.ds.iso +liberty/git-version + +miami/1ST_READ.BIN +miami/IP.BIN +miami/re3.cdi +miami/re3.iso +miami/re3.elf +miami/re3.elf.bin +miami/re3-sim.elf +miami/dca3.cdi +miami/dca3.iso +miami/dca3.elf +miami/dca3.elf.bin +miami/dca3-sim.elf +miami/texconv* +miami/imgtool* +miami/extract-sfx* +miami/pack-sfx* +miami/analyze-profile* +miami/aud2adpcm* +miami/repack-data +miami/output.map +miami/dca3.ds.iso +miami/git-version + .DS_Store diff --git a/miami/Makefile b/miami/Makefile index 3dab20ae..14199a47 100644 --- a/miami/Makefile +++ b/miami/Makefile @@ -45,8 +45,8 @@ all: $(TARGET) include common.mk OBJS = $(RE3_OBJS) $(RW_OBJS) \ - ../miami/audio/sampman_dc.o \ - ../src/prof/profiler.o + ../src/miami/audio/sampman_dc.o \ + ../src/common/prof/profiler.o OBJS_TEXCONV = $(RW_OBJS:.o=.texconv.o) OBJS_TEXCONV += \ @@ -93,27 +93,27 @@ OBJS_TEXCONV += \ # to conserve RAM. OBJS_O3 = \ ../vendor/librw/src/dc/rwdc.o \ - ../miami/core/World.o \ - ../miami/collision/Collision.o \ - ../miami/math/math.o \ - ../miami/math/Matrix.o \ - ../miami/math/Quaternion.o \ - ../miami/math/Rect.o \ - ../miami/math/Vector.o \ - ../vendor/librw/src/base.o \ - ../miami/renderer/Shadows.o + ../src/miami/core/World.o \ + ../src/miami/collision/Collision.o \ + ../src/miami/math/math.o \ + ../src/miami/math/Matrix.o \ + ../src/miami/math/Quaternion.o \ + ../src/miami/math/Rect.o \ + ../src/miami/math/Vector.o \ + ../src/vendor/librw/src/base.o \ + ../src/miami/renderer/Shadows.o OBJS_NO_FAST_MATH = \ - ../miami/core/Cam.o \ - ../miami/core/Camera.o \ - ../miami/vehicles/Bike.o \ - ../miami/renderer/Particle.o + ../src/miami/core/Cam.o \ + ../src/miami/core/Camera.o \ + ../src/miami/vehicles/Bike.o \ + ../src/miami/renderer/Particle.o KOS_CPPFLAGS += -fbuiltin -ffast-math -ffp-contract=fast \ -mfsrra -mfsca ifdef KOS_BASE -include $(KOS_BASE)/Makefile.rules +include $(KOS_BASE)/Makefile.rules../.gitignore else $(warning "KOS_BASE is not set. Only prebuilt targets will work.") endif @@ -130,7 +130,7 @@ CXXFLAGS += $(if $(WITH_32MB),-O3,-Os) \ -Wno-multichar -Wno-unused-value -Wno-char-subscripts -Wno-reorder \ -Wno-unused-function -Wno-class-memaccess -fno-permissive \ -fno-asynchronous-unwind-tables -fno-enforce-eh-specs -fno-non-call-exceptions \ - -fno-strict-aliasing -fwrapv + -fno-strict-aliasing -fwrapv -Wno-unknown-pragmas clean-texconv: -rm -f $(OBJS_TEXCONV) diff --git a/miami/common.mk b/miami/common.mk index 330b1a35..6908a752 100644 --- a/miami/common.mk +++ b/miami/common.mk @@ -2,298 +2,298 @@ GIT_VERSION := $(shell git describe --always --tags --long --dirty 2>/dev/null | CI_JOB_ID ?= 00000000 -git-version.tmp: +git-version/git-version.tmp: @echo "Generating git-version.tmp with GIT_VERSION = \"$(GIT_VERSION)\"" - @echo "#pragma once" > git-version.tmp - @echo "#ifndef VERSION_H" >> git-version.tmp - @echo "#define VERSION_H" >> git-version.tmp - @echo "#define GIT_VERSION \"$(GIT_VERSION)\"" >> git-version.tmp - @echo "#define CI_JOB_ID \"$(CI_JOB_ID)\"" >> git-version.tmp - @echo "#endif // VERSION_H" >> git-version.tmp + @echo "#pragma once" > git-version/git-version.tmp + @echo "#ifndef VERSION_H" >> git-version/git-version.tmp + @echo "#define VERSION_H" >> git-version/git-version.tmp + @echo "#define GIT_VERSION \"$(GIT_VERSION)\"" >> git-version/git-version.tmp + @echo "#define CI_JOB_ID \"$(CI_JOB_ID)\"" >> git-version/git-version.tmp + @echo "#endif // VERSION_H" >> git-version/git-version.tmp -git-version.h: git-version.tmp - @if [ ! -f git-version.h ] || ! cmp -s git-version.tmp git-version.h; then \ +git-version/git-version.h: git-version/git-version.tmp + @if [ ! -f git-version/git-version.h ] || ! cmp -s git-version/git-version.tmp git-version/git-version.h; then \ echo "Updating git-version.h"; \ - cp git-version.tmp git-version.h; \ + cp git-version/git-version.tmp git-version/git-version.h; \ else \ echo "git-version.h is up to date. No change."; \ fi -.PHONY: git-version.tmp +.PHONY: git-version/git-version.tmp -../miami/skel/dc/dc.cpp: git-version.h +../src/miami/skel/dc/dc.cpp: git-version/git-version.h # List all of your C files here, but change the extension to ".o" # Include "romdisk.o" if you want a rom disk. RE3_OBJS = \ - ../miami/animation/AnimBlendAssocGroup.o \ - ../miami/animation/AnimBlendAssociation.o \ - ../miami/animation/AnimBlendClumpData.o \ - ../miami/animation/AnimBlendHierarchy.o \ - ../miami/animation/AnimBlendNode.o \ - ../miami/animation/AnimBlendSequence.o \ - ../miami/animation/AnimManager.o \ - ../miami/animation/Bones.o \ - ../miami/animation/CutsceneMgr.o \ - ../miami/animation/FrameUpdate.o \ - ../miami/animation/RpAnimBlend.o \ + ../src/miami/animation/AnimBlendAssocGroup.o \ + ../src/miami/animation/AnimBlendAssociation.o \ + ../src/miami/animation/AnimBlendClumpData.o \ + ../src/miami/animation/AnimBlendHierarchy.o \ + ../src/miami/animation/AnimBlendNode.o \ + ../src/miami/animation/AnimBlendSequence.o \ + ../src/miami/animation/AnimManager.o \ + ../src/miami/animation/Bones.o \ + ../src/miami/animation/CutsceneMgr.o \ + ../src/miami/animation/FrameUpdate.o \ + ../src/miami/animation/RpAnimBlend.o \ \ - ../miami/buildings/Building.o \ - ../miami/buildings/Treadable.o \ + ../src/miami/buildings/Building.o \ + ../src/miami/buildings/Treadable.o \ \ - ../miami/collision/ColBox.o \ - ../miami/collision/ColLine.o \ - ../miami/collision/Collision.o \ - ../miami/collision/ColModel.o \ - ../miami/collision/ColPoint.o \ - ../miami/collision/ColSphere.o \ - ../miami/collision/ColStore.o \ - ../miami/collision/ColTriangle.o \ - ../miami/collision/TempColModels.o \ - ../miami/collision/VuCollision.o \ + ../src/miami/collision/ColBox.o \ + ../src/miami/collision/ColLine.o \ + ../src/miami/collision/Collision.o \ + ../src/miami/collision/ColModel.o \ + ../src/miami/collision/ColPoint.o \ + ../src/miami/collision/ColSphere.o \ + ../src/miami/collision/ColStore.o \ + ../src/miami/collision/ColTriangle.o \ + ../src/miami/collision/TempColModels.o \ + ../src/miami/collision/VuCollision.o \ \ - ../miami/control/AutoPilot.o \ - ../miami/control/Bridge.o \ - ../miami/control/CarAI.o \ - ../miami/control/CarCtrl.o \ - ../miami/control/Curves.o \ - ../miami/control/Darkel.o \ - ../miami/control/GameLogic.o \ - ../miami/control/Garages.o \ - ../miami/control/NameGrid.o \ - ../miami/control/OnscreenTimer.o \ - ../miami/control/PathFind.o \ - ../miami/control/Phones.o \ - ../miami/control/Pickups.o \ - ../miami/control/PowerPoints.o \ - ../miami/control/Record.o \ - ../miami/control/Remote.o \ - ../miami/control/Replay.o \ - ../miami/control/Restart.o \ - ../miami/control/RoadBlocks.o \ - ../miami/control/SceneEdit.o \ - ../miami/control/Script.o \ - ../miami/control/Script2.o \ - ../miami/control/Script3.o \ - ../miami/control/Script4.o \ - ../miami/control/Script5.o \ - ../miami/control/Script6.o \ - ../miami/control/Script7.o \ - ../miami/control/Script8.o \ - ../miami/control/SetPieces.o \ - ../miami/control/ScriptDebug.o \ - ../miami/control/TrafficLights.o \ + ../src/miami/control/AutoPilot.o \ + ../src/miami/control/Bridge.o \ + ../src/miami/control/CarAI.o \ + ../src/miami/control/CarCtrl.o \ + ../src/miami/control/Curves.o \ + ../src/miami/control/Darkel.o \ + ../src/miami/control/GameLogic.o \ + ../src/miami/control/Garages.o \ + ../src/miami/control/NameGrid.o \ + ../src/miami/control/OnscreenTimer.o \ + ../src/miami/control/PathFind.o \ + ../src/miami/control/Phones.o \ + ../src/miami/control/Pickups.o \ + ../src/miami/control/PowerPoints.o \ + ../src/miami/control/Record.o \ + ../src/miami/control/Remote.o \ + ../src/miami/control/Replay.o \ + ../src/miami/control/Restart.o \ + ../src/miami/control/RoadBlocks.o \ + ../src/miami/control/SceneEdit.o \ + ../src/miami/control/Script.o \ + ../src/miami/control/Script2.o \ + ../src/miami/control/Script3.o \ + ../src/miami/control/Script4.o \ + ../src/miami/control/Script5.o \ + ../src/miami/control/Script6.o \ + ../src/miami/control/Script7.o \ + ../src/miami/control/Script8.o \ + ../src/miami/control/SetPieces.o \ + ../src/miami/control/ScriptDebug.o \ + ../src/miami/control/TrafficLights.o \ \ - ../miami/core/Accident.o \ - ../miami/core/Cam.o \ - ../miami/core/Camera.o \ - ../miami/core/CdStreamDC.o \ - ../miami/core/Clock.o \ - ../miami/core/ControllerConfig.o \ - ../miami/core/Debug.o \ - ../miami/core/Directory.o \ - ../miami/core/EventList.o \ - ../miami/core/FileLoader.o \ - ../miami/core/FileMgr.o \ - ../miami/core/Fire.o \ - ../miami/core/Frontend.o \ - ../miami/core/FrontEndControls.o \ - ../miami/core/Frontend_PS2.o \ - ../miami/core/Game.o \ - ../miami/core/IniFile.o \ - ../miami/core/Lists.o \ - ../miami/core/main.o \ - ../miami/core/MenuScreens.o \ - ../miami/core/MenuScreensCustom.o \ - ../miami/core/obrstr.o \ - ../miami/core/Pad.o \ - ../miami/core/Placeable.o \ - ../miami/core/PlayerInfo.o \ - ../miami/core/Pools.o \ - ../miami/core/Profile.o \ - ../miami/core/Radar.o \ - ../miami/core/Range2D.o \ - ../miami/core/Range3D.o \ - ../miami/core/re3.o \ - ../miami/core/References.o \ - ../miami/core/Ropes.o \ - ../miami/core/Stats.o \ - ../miami/core/Streaming.o \ - ../miami/core/SurfaceTable.o \ - ../miami/core/timebars.o \ - ../miami/core/Timer.o \ - ../miami/core/TimeStep.o \ - ../miami/core/User.o \ - ../miami/core/Wanted.o \ - ../miami/core/World.o \ - ../miami/core/ZoneCull.o \ - ../miami/core/Zones.o \ + ../src/miami/core/Accident.o \ + ../src/miami/core/Cam.o \ + ../src/miami/core/Camera.o \ + ../src/miami/core/CdStreamDC.o \ + ../src/miami/core/Clock.o \ + ../src/miami/core/ControllerConfig.o \ + ../src/miami/core/Debug.o \ + ../src/miami/core/Directory.o \ + ../src/miami/core/EventList.o \ + ../src/miami/core/FileLoader.o \ + ../src/miami/core/FileMgr.o \ + ../src/miami/core/Fire.o \ + ../src/miami/core/Frontend.o \ + ../src/miami/core/FrontEndControls.o \ + ../src/miami/core/Frontend_PS2.o \ + ../src/miami/core/Game.o \ + ../src/miami/core/IniFile.o \ + ../src/miami/core/Lists.o \ + ../src/miami/core/main.o \ + ../src/miami/core/MenuScreens.o \ + ../src/miami/core/MenuScreensCustom.o \ + ../src/miami/core/obrstr.o \ + ../src/miami/core/Pad.o \ + ../src/miami/core/Placeable.o \ + ../src/miami/core/PlayerInfo.o \ + ../src/miami/core/Pools.o \ + ../src/miami/core/Profile.o \ + ../src/miami/core/Radar.o \ + ../src/miami/core/Range2D.o \ + ../src/miami/core/Range3D.o \ + ../src/miami/core/re3.o \ + ../src/miami/core/References.o \ + ../src/miami/core/Ropes.o \ + ../src/miami/core/Stats.o \ + ../src/miami/core/Streaming.o \ + ../src/miami/core/SurfaceTable.o \ + ../src/miami/core/timebars.o \ + ../src/miami/core/Timer.o \ + ../src/miami/core/TimeStep.o \ + ../src/miami/core/User.o \ + ../src/miami/core/Wanted.o \ + ../src/miami/core/World.o \ + ../src/miami/core/ZoneCull.o \ + ../src/miami/core/Zones.o \ \ - ../miami/entities/Dummy.o \ - ../miami/entities/Entity.o \ - ../miami/entities/Physical.o \ + ../src/miami/entities/Dummy.o \ + ../src/miami/entities/Entity.o \ + ../src/miami/entities/Physical.o \ \ - ../miami/fakerw/fake.o \ + ../src/miami/fakerw/fake.o \ \ - ../miami/math/math.o \ - ../miami/math/Matrix.o \ - ../miami/math/Quaternion.o \ - ../miami/math/Rect.o \ - ../miami/math/Vector.o \ + ../src/miami/math/math.o \ + ../src/miami/math/Matrix.o \ + ../src/miami/math/Quaternion.o \ + ../src/miami/math/Rect.o \ + ../src/miami/math/Vector.o \ \ - ../miami/modelinfo/BaseModelInfo.o \ - ../miami/modelinfo/ClumpModelInfo.o \ - ../miami/modelinfo/MloModelInfo.o \ - ../miami/modelinfo/ModelIndices.o \ - ../miami/modelinfo/ModelInfo.o \ - ../miami/modelinfo/PedModelInfo.o \ - ../miami/modelinfo/SimpleModelInfo.o \ - ../miami/modelinfo/TimeModelInfo.o \ - ../miami/modelinfo/VehicleModelInfo.o \ - ../miami/modelinfo/WeaponModelInfo.o \ + ../src/miami/modelinfo/BaseModelInfo.o \ + ../src/miami/modelinfo/ClumpModelInfo.o \ + ../src/miami/modelinfo/MloModelInfo.o \ + ../src/miami/modelinfo/ModelIndices.o \ + ../src/miami/modelinfo/ModelInfo.o \ + ../src/miami/modelinfo/PedModelInfo.o \ + ../src/miami/modelinfo/SimpleModelInfo.o \ + ../src/miami/modelinfo/TimeModelInfo.o \ + ../src/miami/modelinfo/VehicleModelInfo.o \ + ../src/miami/modelinfo/WeaponModelInfo.o \ \ - ../miami/objects/CutsceneObject.o \ - ../miami/objects/DummyObject.o \ - ../miami/objects/Object.o \ - ../miami/objects/ObjectData.o \ - ../miami/objects/ParticleObject.o \ - ../miami/objects/Projectile.o \ - ../miami/objects/Stinger.o \ + ../src/miami/objects/CutsceneObject.o \ + ../src/miami/objects/DummyObject.o \ + ../src/miami/objects/Object.o \ + ../src/miami/objects/ObjectData.o \ + ../src/miami/objects/ParticleObject.o \ + ../src/miami/objects/Projectile.o \ + ../src/miami/objects/Stinger.o \ \ - ../miami/peds/CivilianPed.o \ - ../miami/peds/CopPed.o \ - ../miami/peds/EmergencyPed.o \ - ../miami/peds/Gangs.o \ - ../miami/peds/Ped.o \ - ../miami/peds/PedAI.o \ - ../miami/peds/PedChat.o \ - ../miami/peds/PedDebug.o \ - ../miami/peds/PedFight.o \ - ../miami/peds/PedIK.o \ - ../miami/peds/PedAttractor.o \ - ../miami/peds/PedPlacement.o \ - ../miami/peds/PedRoutes.o \ - ../miami/peds/PedType.o \ - ../miami/peds/PlayerPed.o \ - ../miami/peds/Population.o \ + ../src/miami/peds/CivilianPed.o \ + ../src/miami/peds/CopPed.o \ + ../src/miami/peds/EmergencyPed.o \ + ../src/miami/peds/Gangs.o \ + ../src/miami/peds/Ped.o \ + ../src/miami/peds/PedAI.o \ + ../src/miami/peds/PedChat.o \ + ../src/miami/peds/PedDebug.o \ + ../src/miami/peds/PedFight.o \ + ../src/miami/peds/PedIK.o \ + ../src/miami/peds/PedAttractor.o \ + ../src/miami/peds/PedPlacement.o \ + ../src/miami/peds/PedRoutes.o \ + ../src/miami/peds/PedType.o \ + ../src/miami/peds/PlayerPed.o \ + ../src/miami/peds/Population.o \ \ - ../miami/renderer/Antennas.o \ - ../miami/renderer/Clouds.o \ - ../miami/renderer/Console.o \ - ../miami/renderer/Coronas.o \ - ../miami/renderer/Credits.o \ - ../miami/renderer/CutsceneShadow.o \ - ../miami/renderer/Draw.o \ - ../miami/renderer/Fluff.o \ - ../miami/renderer/Font.o \ - ../miami/renderer/Glass.o \ - ../miami/renderer/Hud.o \ - ../miami/renderer/Instance.o \ - ../miami/renderer/Lines.o \ - ../miami/renderer/MBlur.o \ - ../miami/renderer/Occlusion.o \ - ../miami/renderer/Particle.o \ - ../miami/renderer/ParticleMgr.o \ - ../miami/renderer/PlayerSkin.o \ - ../miami/renderer/PointLights.o \ - ../miami/renderer/RenderBuffer.o \ - ../miami/renderer/Renderer.o \ - ../miami/renderer/Rubbish.o \ - ../miami/renderer/Shadows.o \ - ../miami/renderer/ShadowCamera.o \ - ../miami/renderer/Skidmarks.o \ - ../miami/renderer/SpecialFX.o \ - ../miami/renderer/Sprite.o \ - ../miami/renderer/Sprite2d.o \ - ../miami/renderer/TexList.o \ - ../miami/renderer/Timecycle.o \ - ../miami/renderer/VarConsole.o \ - ../miami/renderer/WaterCannon.o \ - ../miami/renderer/WaterCreatures.o \ - ../miami/renderer/WaterLevel.o \ - ../miami/renderer/Weather.o \ - ../miami/renderer/WindModifiers.o \ + ../src/miami/renderer/Antennas.o \ + ../src/miami/renderer/Clouds.o \ + ../src/miami/renderer/Console.o \ + ../src/miami/renderer/Coronas.o \ + ../src/miami/renderer/Credits.o \ + ../src/miami/renderer/CutsceneShadow.o \ + ../src/miami/renderer/Draw.o \ + ../src/miami/renderer/Fluff.o \ + ../src/miami/renderer/Font.o \ + ../src/miami/renderer/Glass.o \ + ../src/miami/renderer/Hud.o \ + ../src/miami/renderer/Instance.o \ + ../src/miami/renderer/Lines.o \ + ../src/miami/renderer/MBlur.o \ + ../src/miami/renderer/Occlusion.o \ + ../src/miami/renderer/Particle.o \ + ../src/miami/renderer/ParticleMgr.o \ + ../src/miami/renderer/PlayerSkin.o \ + ../src/miami/renderer/PointLights.o \ + ../src/miami/renderer/RenderBuffer.o \ + ../src/miami/renderer/Renderer.o \ + ../src/miami/renderer/Rubbish.o \ + ../src/miami/renderer/Shadows.o \ + ../src/miami/renderer/ShadowCamera.o \ + ../src/miami/renderer/Skidmarks.o \ + ../src/miami/renderer/SpecialFX.o \ + ../src/miami/renderer/Sprite.o \ + ../src/miami/renderer/Sprite2d.o \ + ../src/miami/renderer/TexList.o \ + ../src/miami/renderer/Timecycle.o \ + ../src/miami/renderer/VarConsole.o \ + ../src/miami/renderer/WaterCannon.o \ + ../src/miami/renderer/WaterCreatures.o \ + ../src/miami/renderer/WaterLevel.o \ + ../src/miami/renderer/Weather.o \ + ../src/miami/renderer/WindModifiers.o \ \ - ../miami/rw/ClumpRead.o \ - ../miami/rw/Lights.o \ - ../miami/rw/MemoryHeap.o \ - ../miami/rw/MemoryMgr.o \ - ../miami/rw/NodeName.o \ - ../miami/rw/RwHelper.o \ - ../miami/rw/RwMatFX.o \ - ../miami/rw/RwPS2AlphaTest.o \ - ../miami/rw/TexRead.o \ - ../miami/rw/TexturePools.o \ - ../miami/rw/TxdStore.o \ - ../miami/rw/VisibilityPlugins.o \ + ../src/miami/rw/ClumpRead.o \ + ../src/miami/rw/Lights.o \ + ../src/miami/rw/MemoryHeap.o \ + ../src/miami/rw/MemoryMgr.o \ + ../src/miami/rw/NodeName.o \ + ../src/miami/rw/RwHelper.o \ + ../src/miami/rw/RwMatFX.o \ + ../src/miami/rw/RwPS2AlphaTest.o \ + ../src/miami/rw/TexRead.o \ + ../src/miami/rw/TexturePools.o \ + ../src/miami/rw/TxdStore.o \ + ../src/miami/rw/VisibilityPlugins.o \ \ - ../miami/skel/crossplatform.o \ - ../miami/skel/events.o \ - ../miami/skel/skeleton.o \ - ../miami/skel/dc/dc.o \ + ../src/miami/skel/crossplatform.o \ + ../src/miami/skel/events.o \ + ../src/miami/skel/skeleton.o \ + ../src/miami/skel/dc/dc.o \ \ - ../miami/text/Messages.o \ - ../miami/text/Pager.o \ - ../miami/text/Text.o \ + ../src/miami/text/Messages.o \ + ../src/miami/text/Pager.o \ + ../src/miami/text/Text.o \ \ - ../miami/vehicles/Automobile.o \ - ../miami/vehicles/Boat.o \ - ../miami/vehicles/Bike.o \ - ../miami/vehicles/CarGen.o \ - ../miami/vehicles/Cranes.o \ - ../miami/vehicles/DamageManager.o \ - ../miami/vehicles/Door.o \ - ../miami/vehicles/Floater.o \ - ../miami/vehicles/HandlingMgr.o \ - ../miami/vehicles/Heli.o \ - ../miami/vehicles/Plane.o \ - ../miami/vehicles/Train.o \ - ../miami/vehicles/Transmission.o \ - ../miami/vehicles/Vehicle.o \ + ../src/miami/vehicles/Automobile.o \ + ../src/miami/vehicles/Boat.o \ + ../src/miami/vehicles/Bike.o \ + ../src/miami/vehicles/CarGen.o \ + ../src/miami/vehicles/Cranes.o \ + ../src/miami/vehicles/DamageManager.o \ + ../src/miami/vehicles/Door.o \ + ../src/miami/vehicles/Floater.o \ + ../src/miami/vehicles/HandlingMgr.o \ + ../src/miami/vehicles/Heli.o \ + ../src/miami/vehicles/Plane.o \ + ../src/miami/vehicles/Train.o \ + ../src/miami/vehicles/Transmission.o \ + ../src/miami/vehicles/Vehicle.o \ \ - ../miami/weapons/BulletInfo.o \ - ../miami/weapons/Explosion.o \ - ../miami/weapons/ProjectileInfo.o \ - ../miami/weapons/ShotInfo.o \ - ../miami/weapons/Weapon.o \ - ../miami/weapons/WeaponEffects.o \ - ../miami/weapons/WeaponInfo.o \ + ../src/miami/weapons/BulletInfo.o \ + ../src/miami/weapons/Explosion.o \ + ../src/miami/weapons/ProjectileInfo.o \ + ../src/miami/weapons/ShotInfo.o \ + ../src/miami/weapons/Weapon.o \ + ../src/miami/weapons/WeaponEffects.o \ + ../src/miami/weapons/WeaponInfo.o \ \ - ../miami/audio/AudioCollision.o \ - ../miami/audio/AudioLogic.o \ - ../miami/audio/AudioManager.o \ - ../miami/audio/AudioScriptObject.o \ - ../miami/audio/DMAudio.o \ - ../miami/audio/MusicManager.o \ - ../miami/audio/PolRadio.o \ - ../miami/audio/sampman_miles.o \ - ../miami/audio/sampman_oal.o \ + ../src/miami/audio/AudioCollision.o \ + ../src/miami/audio/AudioLogic.o \ + ../src/miami/audio/AudioManager.o \ + ../src/miami/audio/AudioScriptObject.o \ + ../src/miami/audio/DMAudio.o \ + ../src/miami/audio/MusicManager.o \ + ../src/miami/audio/PolRadio.o \ + ../src/miami/audio/sampman_miles.o \ + ../src/miami/audio/sampman_oal.o \ \ - ../miami/save/Date.o \ - ../miami/save/GenericGameStorage.o \ - ../miami/save/MemoryCard.o \ - ../miami/save/PCSave.o \ + ../src/miami/save/Date.o \ + ../src/miami/save/GenericGameStorage.o \ + ../src/miami/save/MemoryCard.o \ + ../src/miami/save/PCSave.o \ \ - ../miami/extras/debugmenu.o \ - ../miami/extras/frontendoption.o \ - ../miami/extras/postfx.o \ - ../miami/extras/screendroplets.o \ + ../src/miami/extras/debugmenu.o \ + ../src/miami/extras/frontendoption.o \ + ../src/miami/extras/postfx.o \ + ../src/miami/extras/screendroplets.o \ \ ../vendor/miniLZO/minilzo.o \ \ - ../miami/vmu/vmu.o + ../src/common/vmu/vmu.o # Excluded \ - ../miami/extras/custompipes.o \ - ../miami/extras/custompipes_d3d9.o \ - ../miami/extras/custompipes_gl.o \ - ../miami/core/CdStream.o \ - ../miami/core/CdStreamPosix.o \ - ../miami/extras \ - ../miami/extras/GitSHA1.cpp.in \ - ../miami/core/AnimViewer.o \ + ../src/miami/extras/custompipes.o \ + ../src/miami/extras/custompipes_d3d9.o \ + ../src/miami/extras/custompipes_gl.o \ + ../src/miami/core/CdStream.o \ + ../src/miami/core/CdStreamPosix.o \ + ../src/miami/extras \ + ../src/miami/extras/GitSHA1.cpp.in \ + ../src/miami/core/AnimViewer.o \ RW_OBJS = \ ../vendor/librw/src/anim.o \ @@ -366,36 +366,39 @@ RW_OBJS = \ ../vendor/librw/src/ps2/ps2skin.o \ INCLUDE = \ --I../miami/animation \ --I../miami/audio \ --I../miami/buildings \ --I../miami/collision \ --I../miami/control \ --I../miami/core \ --I../miami/entities \ --I../miami/extras \ --I../miami/fakerw \ --I../miami/math \ --I../miami/modelinfo \ --I../miami/objects \ --I../miami/peds \ --I../miami/renderer \ --I../miami/rw \ --I../miami/save \ --I../miami/skel \ --I../miami/text \ --I../miami/vehicles \ --I../miami/weapons \ --I../miami/audio/eax \ --I../miami/audio/oal \ --I../miami/extras/shaders \ --I../miami/extras/shaders/obj \ --I../miami/skel/glfw \ --I../miami/skel/win \ +-I../src/miami/animation \ +-I../src/miami/audio \ +-I../src/miami/buildings \ +-I../src/miami/collision \ +-I../src/miami/control \ +-I../src/miami/core \ +-I../src/miami/entities \ +-I../src/miami/extras \ +-I../src/miami/fakerw \ +-I../src/miami/math \ +-I../src/miami/modelinfo \ +-I../src/miami/objects \ +-I../src/miami/peds \ +-I../src/miami/renderer \ +-I../src/miami/rw \ +-I../src/miami/save \ +-I../src/miami/skel \ +-I../src/miami/text \ +-I../src/miami/vehicles \ +-I../src/miami/weapons \ +-I../src/miami/audio/eax \ +-I../src/miami/audio/oal \ +-I../src/miami/extras/shaders \ +-I../src/miami/extras/shaders/obj \ +-I../src/miami/skel/glfw \ +-I../src/miami/skel/win \ \ -I../vendor/librw \ \ --I../vendor/miniLZO +-I../vendor/miniLZO \ +\ +-I../src/common \ +-Igit-version DEFINES = -DRW_DC -DLIBRW $(if $(WITH_LOGGING),-DWITH_LOGGING) $(if $(WITH_DCLOAD),-DDC_CHDIR=/pc) \ $(if $(WITH_BEEPS),-DWITH_BEEPS) diff --git a/src/liberty/prof/profiler.cpp b/src/common/prof/profiler.cpp similarity index 100% rename from src/liberty/prof/profiler.cpp rename to src/common/prof/profiler.cpp diff --git a/src/liberty/prof/profiler.h b/src/common/prof/profiler.h similarity index 100% rename from src/liberty/prof/profiler.h rename to src/common/prof/profiler.h diff --git a/src/liberty/vmu/vmu.cpp b/src/common/vmu/vmu.cpp similarity index 100% rename from src/liberty/vmu/vmu.cpp rename to src/common/vmu/vmu.cpp diff --git a/src/liberty/vmu/vmu.h b/src/common/vmu/vmu.h similarity index 100% rename from src/liberty/vmu/vmu.h rename to src/common/vmu/vmu.h diff --git a/src/miami/skel/dc/dc.cpp b/src/miami/skel/dc/dc.cpp index 53a7426b..3e3c35cc 100644 --- a/src/miami/skel/dc/dc.cpp +++ b/src/miami/skel/dc/dc.cpp @@ -1,6 +1,6 @@ #if defined RW_DC -#include "../vmu/vmu.h" +#include "vmu/vmu.h" #include #include #include @@ -62,7 +62,7 @@ long _dwOperatingSystemVersion; #include "AnimViewer.h" #include "Font.h" #include "MemoryMgr.h" -#include "../../dreamcast/git-version.h" +#include "git-version.h" #include "dc.h" #include diff --git a/src/miami/vmu/vmu.cpp b/src/miami/vmu/vmu.cpp deleted file mode 100644 index fb83c5cb..00000000 --- a/src/miami/vmu/vmu.cpp +++ /dev/null @@ -1,169 +0,0 @@ -#include "vmu.h" - -#if !defined(DC_TEXCONV) - -#ifdef DC_SH4 -# include -#endif - -# ifdef DC_SH4 -# include -# endif - -extern bool _bSampmanInitialised; - -// ====== STATIC METHODS ===== - -VmuProfiler *VmuProfiler::getInstance() { - if(!instance_) { - instance_ = std::unique_ptr(new VmuProfiler); - } - return instance_.get(); -} - -void VmuProfiler::destroyInstance() { - if(instance_) { - instance_->stopRequest_ = true; - instance_->join(); - instance_.reset(); - } -} - -float VmuProfiler::heapUtilization() { -#ifdef DC_SH4 - // Query heap manager/allocator for info - auto mallocInfo = mallinfo(); - - // Used bytes are as resported - size_t usedBlocks = mallocInfo.uordblks; - // First component of free bytes are as reported - size_t freeBlocks = mallocInfo.fordblks; - - // End address of region reserved for heap growth - size_t brkEnd = _arch_mem_top - THD_KERNEL_STACK_SIZE - 1; - // Amount of bytes the heap has yet to still grow - size_t brkFree = brkEnd - reinterpret_cast(sbrk(0)); - - // Total heap space available is free blocks from allocator + unclaimed sbrk() space - freeBlocks += brkFree; - - // Return total utilization as a % - return static_cast(usedBlocks) / - static_cast(usedBlocks + freeBlocks) * 100.0f; -#else - return 0.0f; -#endif -} - -float VmuProfiler::vertexBufferUtilization() { -#ifdef DC_SH4 - size_t start = PVR_GET(PVR_TA_VERTBUF_START); - size_t end = PVR_GET(PVR_TA_VERTBUF_END); - size_t pos = PVR_GET(PVR_TA_VERTBUF_POS); - - size_t used = pos - start; - size_t free = end - pos; - - return static_cast(used) / - static_cast(used + free) * 100.0f; -#else - return 0.0f; -#endif -} - -// ===== INSTANCE METHODS ===== - -VmuProfiler::VmuProfiler(): - std::thread(std::bind_front(&VmuProfiler::run, this)) -{} - -VmuProfiler::~VmuProfiler() { - stopRequest_ = true; -} - -void VmuProfiler::run() { - while(!stopRequest_) { - -#ifdef DC_SH4 - if(auto *dev = maple_enum_type(0, MAPLE_FUNC_MEMCARD); - dev && _bSampmanInitialised && updated_) - { - pvr_stats_t pvrStats; pvr_get_stats(&pvrStats); - uint32_t sramStats = snd_mem_available(); - size_t pvrAvail = pvr_mem_available(); - float fps = std::accumulate(std::begin(fps_), std::end(fps_), 0.0f) - / static_cast(fpsSamples); - - float sh4Mem = heapUtilization(); - float pvrMem = (8_MB - pvrAvail ) / 8_MB * 100.0f; - float armMem = (2_MB - sramStats) / 2_MB * 100.0f; - float vtxBuf = vertBuffUse_; - { - std::shared_lock lk(mtx_); - - vmu_printf("FPS :%6.2f\n" - "SH4 :%6.2f%%\n" - "PVR :%6.2f%%\n" - "ARM :%6.2f%%\n" - "VTX :%6.2f%%", - fps, sh4Mem, pvrMem, armMem, vtxBuf); - } - } -#endif - - std::this_thread::sleep_for(updateRate_); - } -} - -void VmuProfiler::updateVertexBufferUsage() { - std::unique_lock lk(mtx_); - updated_ = true; - -#ifdef DC_SH4 - vertBuffUse_ = vertexBufferUtilization(); - - pvr_stats_t pvrStats; - pvr_get_stats(&pvrStats); - fps_[fpsFrame_++] = pvrStats.frame_rate; - - if(fpsFrame_ >= fpsSamples) - fpsFrame_ = 0; -#endif -} - -#ifdef DC_SIM -# define vmu_beep_waveform(...) MAPLE_EOK -# define maple_enum_dev(...) nullptr -#endif - -RAIIVmuBeeper::RAIIVmuBeeper(maple_device_t *dev, float period, float duty): - device_(dev) -{ - assert(period >= duty); - -#ifdef WITH_BEEPS - if(!dev) return; - - uint8_t period_raw = static_cast(period * 255); - uint8_t duty_raw = static_cast(duty * 255); - - /* Give other threads a chance to unlock the maple frame, - and keep trying if we fail. */ - while(vmu_beep_waveform(dev, period_raw, duty_raw, 0, 0) != MAPLE_EOK) - std::this_thread::yield(); -#endif -} - -RAIIVmuBeeper::RAIIVmuBeeper(std::string_view address, float period, float duty): - RAIIVmuBeeper(maple_enum_dev(address[0] - 'a', address[1] - '0'), period, duty) -{} - -RAIIVmuBeeper::~RAIIVmuBeeper() { - if(!device_) return; - - /* Oh dear god, MAKE IT STOP, BETTER EVENTUALLY SUCCEED! */ - while(vmu_beep_waveform(device_, 0, 0, 0, 0) != MAPLE_EOK) - std::this_thread::yield(); -} - -#endif diff --git a/src/miami/vmu/vmu.h b/src/miami/vmu/vmu.h deleted file mode 100644 index 6df5694a..00000000 --- a/src/miami/vmu/vmu.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef VMU_H_ -#define VMU_H_ - -#include "common.h" -#include "sampman.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef RW_DC -# include -#endif - -#ifndef VMU_DEFALT_PATH -# define VMU_DEFAULT_PATH "a1" -#endif - -#if (!defined(RW_DC) || !defined(DC_TEXCONV)) - -constexpr float operator "" _MB(unsigned long long value) { - return 1024.0f * 1024.0f * value; -} - -# define RAIIVmuBeep(...) RAIIVmuBeeper beep(__VA_ARGS__) - -class RAIIVmuBeeper { -private: - maple_device_t* device_; -public: - RAIIVmuBeeper(maple_device_t *dev, float period, float duty=0.5f); - RAIIVmuBeeper(std::string_view address, float period, float duty=0.5f); - ~RAIIVmuBeeper(); -}; - -class VmuProfiler: public std::thread { -private: - constexpr static auto updateRate_ = std::chrono::milliseconds(100); - constexpr static size_t fpsSamples = 20; - - static inline - std::unique_ptr instance_ = {}; - - mutable std::shared_mutex mtx_ = {}; - bool updated_ = false; - std::array fps_ = { 0.0f }; - size_t fpsFrame_ = 0; - float vertBuffUse_ = 0.0f; - std::atomic stopRequest_ = false; - -protected: - // Default constructor, spawns monitor thread - VmuProfiler(); - - // Main entry point and loop for the monitor thread - virtual void run(); - -public: - - // Returns total % of heap space currently in-use - static float heapUtilization(); - - // Returns the % of the PVR vertex buffer which is utilized - static float vertexBufferUtilization(); - - // Returns pointer to singleton, creating it + spawning monitor thread upon first call - static VmuProfiler *getInstance(); - static void destroyInstance(); - - // Automatically signals thread to exit - ~VmuProfiler(); - - // To be called every frame, so we can update FPS stats too! - void updateVertexBufferUsage(); -}; - -#else -# define RAIIVmuBeep(...) -#endif - -#endif diff --git a/vendor/librw/src/dc/rwdc.cpp b/vendor/librw/src/dc/rwdc.cpp index 318f7ff6..b4073460 100644 --- a/vendor/librw/src/dc/rwdc.cpp +++ b/vendor/librw/src/dc/rwdc.cpp @@ -16,7 +16,7 @@ extern const char* currentFile; #define texconvf(...) // printf(__VA_ARGS__) #endif -#include "../../../src/vmu/vmu.h" +#include "vmu/vmu.h" #include "../rwbase.h" #include "../rwerror.h" #include "../rwplg.h" @@ -28,7 +28,7 @@ extern const char* currentFile; #include "../rwrender.h" #include "rwdc.h" #include "vq.h" -#include "tex-util.h" +#include "tex-util.h"../src/miami/skel/dc/dc.cpp #include #include