A very WIP decompilation of Shin Megami Tensei 1 for the Playstation.
  • C 98.9%
  • Assembly 0.6%
  • Makefile 0.3%
  • CMake 0.1%
Find a file
2026-02-02 12:21:42 -04:00
config i really wish git would let me just not name these 2025-10-04 10:13:08 -03:00
docs Blah blah 2025-08-08 11:31:24 -03:00
game Formatting and stuff 2025-05-05 12:44:22 -03:00
include unk3 and unk4 cleanup 2026-02-02 12:21:42 -04:00
src/smt1 unk3 and unk4 cleanup 2026-02-02 12:21:42 -04:00
tools Submodule setup 2025-03-15 18:44:21 -03:00
.clang-format Formatting and stuff 2025-05-05 12:44:22 -03:00
.clangd Update 2025-09-28 16:57:36 -03:00
.gitignore better gitignore 2025-10-01 14:55:53 -07:00
.gitmodules Update 2025-09-29 12:51:38 -03:00
CMakeLists.txt Update 2025-09-28 16:57:36 -03:00
CppProperties.json initial commit 2024-12-26 15:47:31 -04:00
diff_settings.py Proper setup 2025-03-09 16:31:34 -03:00
gte_macros.s Proper setup 2025-03-09 16:31:34 -03:00
macro.inc Proper setup 2025-03-09 16:31:34 -03:00
Makefile Submodule setup 2025-03-15 18:44:21 -03:00
notes.md another big disorganized commit 2025-05-05 11:23:04 -03:00
README.md Finish first pass of main executable, begin commenting 2025-09-10 14:19:05 -03:00

smt-decomp

A very WIP decompilation of Shin Megami Tensei 1 for the Playstation.

Why?

  • The classic SMT games (with the exception of 1) have yet to be released in the west, and none of them have been re-released on PC, even via an emulated release.
  • The goal of this project is primarily the creation of a PC port of the three classic games (SMT1, SMT2, and If...), with optional enhancements that would be difficult to implement as a hack.
  • The other reason for this project is that I have a personal interest in these games, and wanted to learn more about how they work under the hood.

Contributing

As of right now there isn't a super easy workflow to contributing to the project directly. However, if you just want to do some small function matching work, I'd highly encourage checking out the decomp.me preset, and seeing which functions need work.

If you do want to get the project set up on your own machine, then the general flow is as follows:

  • Create a WSL environment for the project.
  • Acquire the original game files (hashes can be found in /game).
  • Rip the filesystems with PSXimager or a similar program, and place them under /game/smtX, where X is "1", "2", or "if" corresponding to the game.
  • Run make split in the project directory to create the assembly files.

PS: if you have experience with git, make, or open source software in general then please reach out to me to help make the setup as easy as possible.

Building

TODO