Skip to content

Commit

Permalink
Merge pull request #21 from Amethyst-szs/dev
Browse files Browse the repository at this point in the history
Pull dev into stable for v1.3.0
  • Loading branch information
Amethyst-szs authored Apr 17, 2023
2 parents 2815237 + 4734fcf commit 3233ade
Show file tree
Hide file tree
Showing 190 changed files with 16,124 additions and 1,857 deletions.
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,9 @@ build/
.idea/

# specific files
compile_commands.json
compile_commands.jso
deploy
imgui/backends/vulkan/generate_spv.sh

# promo assets
promo_screenshots/
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "imgui"]
path = imgui
url = https://github.com/ocornut/imgui.git
branch = docking
14 changes: 13 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,19 @@ set(CMAKE_CXX_STANDARD 23)
## Title Id
set(TITLE_ID 0100000000010000)
set(CONFIG_TITLE_ID 0x${TITLE_ID})
add_compile_definitions(EXL_PROGRAM_ID=${CONFIG_TITLE_ID} NNSDK=1 IMGUI_USER_CONFIG="imgui_backend/nvn_imgui_config.h")

execute_process(
COMMAND git describe --tags --abbrev=0
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE GIT_VER
OUTPUT_STRIP_TRAILING_WHITESPACE
)

add_compile_definitions(EXL_PROGRAM_ID=${CONFIG_TITLE_ID} NNSDK=1 IMGUI_USER_CONFIG="imgui_backend/nvn_imgui_config.h" GIT_VER="${GIT_VER}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/module/subsdk9.json.template ${CMAKE_CURRENT_BINARY_DIR}/subsdk9.json)

## Project sources
include_directories(${PROJECT_SOURCE_DIR}/src/lib/zip)
include_directories(${PROJECT_SOURCE_DIR}/src/lib)
include_directories(${PROJECT_SOURCE_DIR}/src/nvn)
include_directories(${PROJECT_SOURCE_DIR}/src/nn)
Expand All @@ -40,6 +49,9 @@ add_executable(subsdk9 ${SOURCES_ASM} ${SOURCES_C} ${SOURCES_H} ${SOURCES_CXX} $
add_compile_definitions(EXL_LOAD_KIND=Module EXL_LOAD_KIND_ENUM=EXL_LOAD_KIND_MODULE)
target_link_libraries(subsdk9 ${LOCAL_LIBRARIES})

# generate header file for imgui shader binary
target_embed_binaries(subsdk9 "${PROJECT_SOURCE_DIR}/imgui.bin")

## Prepare subsdk ld
set(SUBSDK_LD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/module/subsdk9.ld)
execute_process(COMMAND uname OUTPUT_VARIABLE uname)
Expand Down
Binary file modified LunaKit/LKData/Themes/Dark.byml
Binary file not shown.
Binary file modified LunaKit/LKData/Themes/Default.byml
Binary file not shown.
Binary file modified LunaKit/LKData/Themes/Greyscale.byml
Binary file not shown.
Binary file modified LunaKit/LKData/Themes/HighContrast.byml
Binary file not shown.
Binary file modified LunaKit/LKData/Themes/Light.byml
Binary file not shown.
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
# LunaKit for Super Mario Odyssey
![Luna Kit Logo](assets/LunaKitText.png "Logo")

LunaKit is a development tool / modification of Super Mario Odyssey designed to assist in debugging, testing, experimenting, and more! Uses ImGui ExLaunch with a special dedicated SD card folder to allow being layered on top of any RomFS or Starlight mod

![Gameplay 1](https://user-images.githubusercontent.com/62185604/220535481-78afc5ef-29df-4412-ba21-cb98c6b06bae.jpg)
![A gameplay screenshot showing LunaKit in Metro Kingdom with the heap viewer, parameter editor, and info viewer open](https://user-images.githubusercontent.com/62185604/232249144-4c7a594e-2abc-44ac-8743-f76eb785cf3e.png)

## Features:
- Custom in-game GUI built on [Dear ImGui](https://github.com/ocornut/imgui)
![Showing the docking system in LunaKit to position windows on the screen](https://user-images.githubusercontent.com/62185604/232249641-826e034e-798e-41c7-9581-8f141ba43917.png)
- View and edit large amounts of game info
- Browse, search, favorite, and manipulate every object in a stage
- Browse, search, favorite, and manipulate every object in a stage![Gameplay screenshot showing the capabilities of the actor browser](https://user-images.githubusercontent.com/62185604/232249306-c96d515f-6e64-45a4-83f1-0d2048ce8155.png)
- Many game settings and cheats for players and developers alike
- Primitive Rendering to visually draw additonal game info
- Extremely fast stage warping, including custom stages using [Custom Stage plugins](https://github.com/Amethyst-szs/smo-lunakit/wiki)
- Easy to make [Custom Theme plugins](https://github.com/Amethyst-szs/smo-lunakit/wiki)
![Gameplay screenshow showing the primitive rendering options](https://user-images.githubusercontent.com/62185604/232249361-9db6af48-b183-455d-b8f9-4a536c879416.png)
- Extremely fast stage warping, including custom stages using [Custom Stage plugins](https://github.com/Amethyst-szs/smo-lunakit/wiki/Custom-Stage-Support)
- Easy to make [Custom Theme plugins](https://github.com/Amethyst-szs/smo-lunakit/wiki/LunaKit-Theme-Plugins)
![The window menu open over Cascade Kingdom, showing the bult in themes](https://user-images.githubusercontent.com/62185604/232249852-e2e5ebaf-1bf7-4a01-bcdc-0c89fb13c6fd.png)
- Automatically install new updates as they come out with a built in automatic updater
- Highly modular and expandable code with a detailed [Wiki page](https://github.com/Amethyst-szs/smo-lunakit/wiki)

![Gameplay 2](https://user-images.githubusercontent.com/62185604/220535575-e94cbda0-a6bf-49fd-ac5f-8bfa92da732f.jpg)

## How to use:

### Installation on switch
Expand All @@ -32,7 +33,7 @@ LunaKit is a development tool / modification of Super Mario Odyssey designed to

### Installation on Yuzu is NOT actively supported.

### Controls:
## Controls:
- Open the interface by holding ZR + R and tapping L
- Hide windows by pressing L-Stick
- Mouse controls (RECOMMENDED)
Expand All @@ -44,7 +45,7 @@ LunaKit is a development tool / modification of Super Mario Odyssey designed to
- Interact with windows using A or B
- Change windows by holding Y and using shoulder buttons

### Building:
## Building:
- Requires running Linux (Ubuntu recommended)
- If you're running Windows, try [WSL](https://learn.microsoft.com/en-us/windows/wsl/install)!
- Install [devkitPro](https://devkitpro.org/wiki/Getting_Started) with the switch-dev platform
Expand All @@ -57,7 +58,8 @@ LunaKit is a development tool / modification of Super Mario Odyssey designed to
## Credits:
- [Amethyst-szs](https://github.com/Amethyst-szs): LunaKit Creator
- [CraftyBoss](https://github.com/CraftyBoss): SMO ExLaunch, ImGui, and more
- [Mars](https://github.com/Mars2032): Referenced TAS Mod, Emotional support
- [Mars](https://github.com/Mars2032): Referenced TAS Mod, Emotional support
- [DaveGamble/cJSON](https://github.com/DaveGamble/cJSON): C JSON Parser


# Original SMO-Exlaunch-Base Description
Expand Down
Loading

0 comments on commit 3233ade

Please sign in to comment.