Giter Club home page Giter Club logo

primeworldeditor's Introduction

Prime World Editor

Prime World Editor is a custom editor suite for Retro Studios' GameCube and Wii games, including the Metroid Prime series and Donkey Kong Country Returns.

Clone Submodules First!

Builders on all platforms should ensure submodules are up to date with the current PrimeWorldEditor by running git submodule update --init --recursive.

Building on Windows

Requirements

64-bit Note: Except for Visual Studio and the Qt installer, ensure 64-bit (x86-64, x64) packages are installed.

Build using Qt Creator

Compiler Note: Before starting, it is wise to select the 64-bit compiler by opening Tools > Kits > Kits tab. The C and C++ compilers should be set to Microsoft Visual C++ Compiler 15.0 (amd64).

CMake Note: At the time of writing, Qt Creator will search for a user-installed CMake but this is not necessary. The CMake that comes with Visual Studio may be manually selected by opening Tools > Kits > CMake tab, then adding a manual CMake with the path: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe.

Debugger Note: To use Qt Creator for debugging, Debugging Tools for Windows must be installed from the Windows SDK package. Once installed, the Qt Creator kit should automatically detect CDB. Make sure the x64 version is selected.

  1. File > Open File or Project
  2. Select CMakeLists.txt at root of cloned PrimeWorldEditor
  3. Select desired build configurations within the Desktop Qt Kit. It is generally fine to just check Debug and Release.
  4. Click Configure Project
  5. Wait for dependencies to build and CMake project to generate (this may take a while).
  6. Edit/Build/Debug/Run

Build using Visual Studio

Qt Note: It may be necessary to edit both CMAKE_PREFIX_PATH entries in the CMakeSettings.json file. They should be set to C:/Qt/<QT VERSION>/msvc2017_64/lib/cmake/Qt5.

  1. File > Open > CMake
  2. Select CMakeLists.txt at root of cloned PrimeWorldEditor
  3. Wait for dependencies to build and CMake project to generate (this may take a while).
  4. Edit/Build/Debug/Run

Build using Command Line

  1. Launch x64 Native Tools Command Prompt for VS 2017
  2. cd <PATH TO PrimeWorldEditor ROOT>
  3. mkdir build
  4. cd build
  5. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:/Qt/<QT VERSION>/msvc2017_64/lib/cmake/Qt5 ..
  6. ninja
  7. PrimeWorldEditor.exe is found in the build/bin directory.

Building on macOS

Requirements

Build using Xcode

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Xcode -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=~/Qt/<QT VERSION>/clang_64/lib/cmake/Qt5 ..
  5. Open PrimeWorldEditor.xcodeproj
  6. Edit/Build/Debug/Run

Build using Command Line

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=~/Qt/<QT VERSION>/clang_64/lib/cmake/Qt5 ..
  5. ninja
  6. PrimeWorldEditor.app is found in the build/bin directory.

Building on Linux

Requirements

  • A working compiler toolchain (GCC or Clang)
  • cmake, ninja, python3, qt5 (dev), clang (dev) packages

Build using Command Line

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
  5. ninja
  6. PrimeWorldEditor is found in the build/bin directory.

primeworldeditor's People

Contributors

antidote avatar aprilwade avatar bearborg avatar duncathan avatar encounter avatar ethanarmbrust avatar henriquegemignani avatar jackoalan avatar lioncash avatar pupperuki avatar pwootage avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

primeworldeditor's Issues

Clicking on animation parameters crashes pwe

With every object/enemy I try to look at the animation parameters, pwe has crashed. Unmodified iso as well.
End of PWE Log after crash
[0078.827] Qt Warning: edit: editing failed

Cooking changes (regardless if any are made) makes Sunchamber inaccessible to the player - (Metroid Prime 1)

I am using Prime World Editor version 1.2.7 release (as I'm unsure how to build the latest version).

I will admit that I have slightly damaged Sunchamber to the point where enabling the 1st Pass Enemies layer crashes the game when trying to to load the room and have been attempting to fix this for a few days now. Dolphin's log brings up the following as soon as the crash occurs:

59:10:260 Common\MsgHandler.cpp:115 E[MASTER]: Question: Invalid read from 0x0000000c, PC = 0x8034fda8 
59:10:260 Common\MsgHandler.cpp:115 E[MASTER]: Question: Invalid write to 0x00000010, PC = 0x8034f920 
59:10:260 Common\MsgHandler.cpp:115 E[MASTER]: Question: Invalid read from 0x00000008, PC = 0x8034f9f8 
59:10:260 Common\MsgHandler.cpp:115 E[MASTER]: Question: Invalid read from 0x00000000, PC = 0x8034faac 
59:10:260 Common\MsgHandler.cpp:115 E[MASTER]: Question: Invalid read from 0x00000010, PC = 0x8034fac4 
59:10:260 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: DVDReadAsync(): specified area is out of the file   in "dvdfs.c" on line 742.
59:10:260 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 
59:10:260 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: Address:      Back Chain    LR Save
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfb58:   0x805bfbe8    0x8037fae8
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfbe8:   0x805bfc20    0x803719e4
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfc20:   0x805bfc40    0x8034fadc
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfc40:   0x805bfc60    0x8033bbd8
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfc60:   0x805bfcd0    0x80339f0c
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfcd0:   0x805bfce0    0x8033fe04
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfce0:   0x805bfcf0    0x80340dac
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfcf0:   0x805bfd30    0x801adc18
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfd30:   0x805bfd50    0x801b3604
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfd50:   0x805bfd90    0x8004ad08
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfd90:   0x805bfdd0    0x8004a90c
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfdd0:   0x805bfe90    0x80024858
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfe90:   0x805bfee0    0x80052214
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bfee0:   0x805bff10    0x800524ac
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bff10:   0x805bff50    0x80006f50
59:10:261 Core\HW\EXI\EXI_DeviceIPL.cpp:306 N[OSREPORT]: 0x805bff50:   0x805c00a0    0x800052d0

All the layers are correct, contain everything they did originally and I have been extensively using an unmodified version of the room to make sure everything is working correctly. If the 2nd Pass Enemies, Flaahgra Defeated and Artifact layers are enabled (usually enabled when the player goes through Sun Tower Access) the Chozo ghost fight works as normal and the Artifact cutscene plays correctly and is able to be collected and returned to the Tallon Overworld Artifact Temple - which is much better than nothing working at all at least!

However, no matter what I try - the 1st Pass Enemies layer is still broken and I want to attempt to fix it first before overriding the metroid2.pak file with the clean one. After many hours, I might have found the culprit:
PWEexternallink

2 memory relays that control the vines on the door leading from Sunchamber to Sunchamber Access (Vines on and Vines off) have a link that goes to an External: 001F0032 which cannot be accessed at all and can't be found anywhere within the editor (in the editing window or in the list of objects you can place)- it also cannot be copy/pasted from the clean version to the broken one either, so I've exhausted all possible options that I know.

As long as I can get Sunchamber working correctly again, preferably without replacing the whole metroid2.pak, that would be amazing! Thank you in advance.

Metroid Prime 2: Echoes ISO rebuild issue.

I'm translating Metroid Prime 2: Echoes into Brazilian Portuguese. So I decided to rebuild the ISO. The result was a GCM file. I tried running through Dolphin, and got the message seen in this photo.
Screenshot_20220619-231632_Dolphin Emulator
I tried to run the game on the Nintendo Wii using Nintendont, but the console just turned off. Well, did I do something wrong? I await an answer!

Cannot build on Ubuntu 22.04

Following the instructions in the readme results in this error upon running cmake:

-- Enabled public release mode
-- Installing dew
Requirement already satisfied: dew-pacman in /home/jack/.local/lib/python3.10/site-packages (0.11.0)
Requirement already satisfied: fasteners==0.15 in /home/jack/.local/lib/python3.10/site-packages (from dew-pacman) (0.15)
Requirement already satisfied: gitpython==3.0.6 in /home/jack/.local/lib/python3.10/site-packages (from dew-pacman) (3.0.6)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from fasteners==0.15->dew-pacman) (1.16.0)
Requirement already satisfied: monotonic>=0.1 in /usr/lib/python3/dist-packages (from fasteners==0.15->dew-pacman) (1.6)
Requirement already satisfied: gitdb2>=2.0.0 in /home/jack/.local/lib/python3.10/site-packages (from gitpython==3.0.6->dew-pacman) (4.0.2)
Requirement already satisfied: gitdb>=4.0.1 in /home/jack/.local/lib/python3.10/site-packages (from gitdb2>=2.0.0->gitpython==3.0.6->dew-pacman) (4.0.11)
Requirement already satisfied: smmap<6,>=3.0.1 in /home/jack/.local/lib/python3.10/site-packages (from gitdb>=4.0.1->gitdb2>=2.0.0->gitpython==3.0.6->dew-pacman) (5.0.1)

[notice] A new release of pip is available: 23.0.1 -> 24.0
[notice] To update, run: python3.10 -m pip install --upgrade pip
-- Building dew dependencies
Dependency zlib_git_cacf7f1d4e3d44d871b605da3b647f07d718623f already pulled.
Pulling dependency assimp_git_c305b50f13627befade833cef8399be3c53fc4ec...
Pulling dependency nod_git_02c188497af89e188edcc82387f787057739e530...
Processing submodule logvisor
Pulling dependency lzokay_git_546a9695271e8a8b4711383f828172754fd825f2...
Pulling dependency tinyxml2_git_c483646db00a6a9ac3a8e93f7c490aecb589979d...
Pulling dependency tinyxml2_git_c483646db00a6a9ac3a8e93f7c490aecb589979d...
Building dependency zlib_git_cacf7f1d4e3d44d871b605da3b647f07d718623f...
* which is needed by assimp_git_c305b50f13627befade833cef8399be3c53fc4ec
Dependency zlib_git_cacf7f1d4e3d44d871b605da3b647f07d718623f already built.
Building dependency assimp_git_c305b50f13627befade833cef8399be3c53fc4ec...
Building release...
Unknown build system
Dew did not finish successfully :(

CMake Error at dew.cmake:56 (message):
  Unable to run dew: 1
Call Stack (most recent call first):
  CMakeLists.txt:24 (integrate_dew)


-- Configuring incomplete, errors occurred!

Compile errors - "libcommon"

Building in QtCreator has it looking for relative directory LibCommon which doesn't seem to exist.

15:55:55: Running steps for project PrimeWorldEditor...
15:55:55: Starting: "J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe" J:\dev\vendors\PrimeWorldEditor\src\PrimeWorldEditor.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
Info: creating stash file J:\dev\vendors\PrimeWorldEditor\build-PrimeWorldEditor-Desktop_Qt_5_9_1_MSVC2015_64bit-Debug.qmake.stash
15:55:55: The process "J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe" exited normally.
15:55:55: Starting: "J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe" qmake_all

jom 1.1.2 - empower your cores

cd ..\externals\LibCommon\Source\ && J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile.LibCommon J:\dev\vendors\PrimeWorldEditor\externals\LibCommon\Source\LibCommon.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
Info: creating stash file J:\dev\vendors\PrimeWorldEditor\externals\LibCommon\Source.qmake.stash
Cannot read J:/dev/vendors/PrimeWorldEditor/externals/LibCommon/Externals/CodeGen/codegen.pri: No such file or directory
WARNING: Failure to find: J:/dev/vendors/PrimeWorldEditor/externals/LibCommon/Source/../Externals/tinyxml2/tinyxml2.cpp
WARNING: Failure to find: J:/dev/vendors/PrimeWorldEditor/externals/LibCommon/Source/../Externals/tinyxml2/tinyxml2.cpp
cd ..\externals\LibCommon\Source\ && J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe -f Makefile.LibCommon qmake_all
cd Core\ && J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile J:\dev\vendors\PrimeWorldEditor\src\Core\Core.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo_init.c
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo1x_9x.c
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo1x_d1.c
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo_init.c
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo1x_9x.c
WARNING: Failure to find: J:\dev\vendors\PrimeWorldEditor\externals\lzo-2.10\src\lzo1x_d1.c
cd Core\ && J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe -f Makefile qmake_all
cd Editor\ && J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile J:\dev\vendors\PrimeWorldEditor\src\Editor\Editor.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
cd Editor\ && J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe -f Makefile qmake_all
15:55:59: The process "J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe" exited normally.
15:55:59: Starting: "J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe"
cd ..\externals\LibCommon\Source\ && ( if not exist Makefile.LibCommon J:\dev\vendors\qt\5.9.1\msvc2015_64\bin\qmake.exe -o Makefile.LibCommon J:\dev\vendors\PrimeWorldEditor\externals\LibCommon\Source\LibCommon.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" ) && J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe -f Makefile.LibCommon
J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe -f Makefile.LibCommon.Debug
Error: dependent 'J:\dev\vendors\PrimeWorldEditor\externals\LibCommon\Source..\Externals\tinyxml2\tinyxml2.cpp' does not exist.
jom: J:\dev\vendors\PrimeWorldEditor\externals\LibCommon\Source\Makefile.LibCommon [debug] Error 2
jom: J:\dev\vendors\PrimeWorldEditor\build-PrimeWorldEditor-Desktop_Qt_5_9_1_MSVC2015_64bit-Debug\Makefile [sub----externals-LibCommon-Source-LibCommon-pro-make_first-ordered] Error 2
15:55:59: The process "J:\dev\vendors\qt\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project PrimeWorldEditor (kit: Desktop Qt 5.9.1 MSVC2015 64bit)
When executing step "Make"
15:55:59: Elapsed time: 00:04.

PWE Crashes When Exporting An Asset Name Map

Date Tested: 2/17/2019
PWE Version: v1.2.2
Steps to Recreate: Open PWE v1.2.2 and without opening a project click on the gear dropdown and select Export Names. File explorer will open up allowing you to enter a name for the exported asset map. Simply type a random word and click save. PWE should crash.
primeworldeditor.log

Build failure: Common/types.h is missing

Excerpt from ninja's output:

[2/244] Building CXX object src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o
FAILED: src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o 
/usr/bin/c++  -DGLEW_STATIC -DUNICODE -DUSE_LZOKAY -DWITH_CODEGEN -I../src/Core/.. -I../src/Core -I../src/Core/OpenGL -I../externals/LibCommon/Source -I../externals/LibCommon/Externals/CodeGen/include -isystem ../.dew/prefix-release/include -isystem ../.dew/prefix-release/include/lzokay -O3 -DNDEBUG   -Wno-multichar -Wno-undefined-var-template -std=gnu++17 -MD -MT src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o -MF src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o.d -o src/Core/CMakeFiles/pwe_core.dir/CMayaSpline.cpp.o -c ../src/Core/CMayaSpline.cpp
In file included from ../src/Core/CMayaSpline.cpp:1:
../src/Core/CMayaSpline.h:4:10: fatal error: Common/types.h: No such file or directory
 #include <Common/types.h>
          ^~~~~~~~~~~~~~~~

Issue building on Windows

Hello,

I'm looking to try and build PWE from source on Windows. I've followed the instructions installing the perquisites

- Visual Studio Community 2019
- Qt 5.12.10
- LLVM 6.0.1
- Python 3.7.9

I opened up the CMakeSettings.json file and updated both CMAKE_PREFIX_PATHs

But I now seem to be getting this error:

Error	C2440	'<function-style-cast>': cannot convert from 'initializer list' to 'QList<CAssetID>'

Along with this

Error (active)	E0289	no instance of constructor "QList<T>::QList [with T=CAssetID]" matches the argument list	

It's attributed to line 225 in CWorldTreeModel.cpp

QList<CAssetID> QWorldIDs = QList<CAssetID>(WorldIDs.begin(), WorldIDs.end());

Given that it's a Qt data type I'm wondering if I have an improper version installed. If you're able to provide any assistance at all it would be greatly appreciated. I'm looking to try and add in support for MAPA file viewing if I can get this in a buildable state.

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.