Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
72da8f7
Centralize spritesheets in sprites.lua and try adding cclcc-switch pr…
May 29, 2026
02aad29
WIP doublepack
Gunoshozo Sep 11, 2026
9db188b
WIP CCLCC
Gunoshozo Jun 26, 2026
54e7d40
Title menu and Help menu switch corrections
Jul 17, 2026
fd01919
Msb Fixes
Gunoshozo Jul 24, 2026
254f273
More VM vars and displaying first lines
Gunoshozo Jul 27, 2026
e46d95e
Sprite size fixes
Gunoshozo Jul 29, 2026
65975c5
- Fix system menu and submenus
Gunoshozo Jul 30, 2026
15c2d9f
32bit strings character names and Nameplates fixes
Gunoshozo Aug 4, 2026
4117160
Roadblock removed + bg partially fixed
Gunoshozo Aug 13, 2026
5b2a3e9
Rendering fixes
Gunoshozo Aug 14, 2026
89f846a
Profiles fixes
Gunoshozo Aug 14, 2026
4bcc050
Fix backlog and tips
Gunoshozo Aug 18, 2026
ab87184
Tips menu & SysMesBox choice fixes
Gunoshozo Aug 19, 2026
719d0c3
Fill data for overlay
Gunoshozo Aug 26, 2026
b1dfbd9
CCLCC Switch Save System
Gunoshozo Aug 24, 2026
3ccc5af
Switch Map Trigger
Gunoshozo Aug 30, 2026
57ddb42
Fix Grayscale Alpha Masks, doing swizzle for color channels
Gunoshozo Sep 3, 2026
b8f4069
Sysmenu and TitleMenu State fixes
Gunoshozo Sep 3, 2026
244e0dc
Multiple ScrVar Fixes:
Gunoshozo Sep 3, 2026
e58aaea
Use switch font
Gunoshozo Sep 11, 2026
18f9e08
Delusion Trigger corrections for Switch + some vars
Gunoshozo Sep 11, 2026
bf27df5
Extend fs folder archive to use WhiteList and Order from cls
Gunoshozo Sep 15, 2026
7196bd3
Tips menu fixes
Gunoshozo Sep 15, 2026
c80d62d
Fix Extra menus access + add resources
Gunoshozo Sep 17, 2026
ec33de8
Lint formatting
Gunoshozo Sep 18, 2026
9a9bd81
Fix thread reset after becoming non-trivial
Gunoshozo Sep 18, 2026
e3f4624
Use scoped enums for SW_TITLEMODE values PS4 vs Switch and add versio…
Gunoshozo Sep 21, 2026
223d318
Text Fixes
Gunoshozo Sep 22, 2026
14777f2
Fix ID for CGs and Movies
Gunoshozo Oct 3, 2026
54221ce
Release surface new
Gunoshozo Oct 3, 2026
d67f559
Fix overlay for backlog
Gunoshozo Oct 3, 2026
f443681
unslow logs
Gunoshozo Oct 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ set(Impacto_Src
src/games/cclcc/delusiontrigger.cpp
src/games/cclcc/yesnotrigger.cpp
src/games/cclcc/savesystem.cpp
src/games/cclcc/savesystem_ps4.cpp
src/games/cclcc/savesystem_switch.cpp
src/games/cclcc/systemmenu.cpp
src/games/cclcc/helpmenu.cpp

Expand Down Expand Up @@ -390,6 +392,7 @@ set(Impacto_Src
src/audio/atrac9audiostream.cpp
src/audio/adxaudiostream.cpp
src/audio/hcaaudiostream.cpp
src/audio/lopusaudiostream.cpp

src/video/videosystem.cpp
src/video/videoplayer.cpp
Expand Down Expand Up @@ -744,7 +747,17 @@ set(Impacto_Header
src/vm/inst_misc.h
src/vm/inst_movie.h
src/vm/inst_sound.h
src/vm/opcodetables_cc.h
src/vm/opcodetables_chlcc.h
src/vm/opcodetables_chn.h
src/vm/opcodetables_darling.h
src/vm/opcodetables_dash.h
src/vm/opcodetables_lccswitch.h
src/vm/opcodetables_mo6tw.h
src/vm/opcodetables_mo7.h
src/vm/opcodetables_mo8.h
src/vm/opcodetables_rne.h
src/vm/opcodetables_sgps3.h

src/vm/interface/scene3d.h
src/vm/interface/input.h
Expand All @@ -760,6 +773,7 @@ set(Impacto_Header
src/audio/atrac9audiostream.h
src/audio/adxaudiostream.h
src/audio/hcaaudiostream.h
src/audio/lopusaudiostream.h

src/video/videosystem.h
src/video/videoplayer.h
Expand Down Expand Up @@ -997,6 +1011,7 @@ else ()
)
find_package(Ogg CONFIG REQUIRED)
find_package(Vorbis CONFIG REQUIRED)
find_package(Opus CONFIG REQUIRED)
find_package(WebP CONFIG REQUIRED)

list(APPEND Impacto_Libs
Expand All @@ -1006,6 +1021,7 @@ else ()
Ogg::ogg
Vorbis::vorbis
Vorbis::vorbisfile
Opus::opus
)

if (NX)
Expand Down
21 changes: 15 additions & 6 deletions gamedefinitions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,27 @@ root.GameDefinitions = {
}
},
cclcc = {
Name = "CHAOS;CHILD Love Chu☆Chu!!",
Name = "CHAOS;CHILD Love Chu☆Chu!! (PS4)",
LauncherOrderId = 3,
LauncherTheme = 0xFF7698,
GameProfile = root.BasePaths.RootProfilesDir .. "/cclcc/game.lua",
Patch = {
English = root.BasePaths.RootPatchesDir .. "/english/profiles/cclcc/patch.lua",
}
},
["cclcc-switch"] = {
Name = "CHAOS;CHILD Love Chu☆Chu!! (Switch)",
Comment thread
Gunoshozo marked this conversation as resolved.
LauncherOrderId = 4,
LauncherTheme = 0xFF7698,
GameProfile = root.BasePaths.RootProfilesDir .. "/cclcc-switch/game.lua",
Patch = {
English = root.BasePaths.RootPatchesDir .. "/english/profiles/cclcc-switch/patch.lua",
}
},
mo6tw = {
Hidden = true,
Name = "Memories Off 6 ~T-Wave~",
LauncherOrderId = 5,
LauncherOrderId = 6,
GameProfile = root.BasePaths.RootProfilesDir .. "/mo6tw/game.lua",
},
darling = {
Expand All @@ -32,7 +41,7 @@ root.GameDefinitions = {
dash = {
Hidden = true,
Name = "ROBOTICS;NOTES DaSH",
LauncherOrderId = 4,
LauncherOrderId = 5,
GameProfile = root.BasePaths.RootProfilesDir .. "/dash/game.lua",
},
rne = {
Expand All @@ -44,19 +53,19 @@ root.GameDefinitions = {
characterviewer = {
Hidden = true,
Name = "Character Viewer",
LauncherOrderId = 6,
LauncherOrderId = 7,
GameProfile = root.BasePaths.RootProfilesDir .. "/characterviewer/game.lua",
},
modelviewer = {
Hidden = true,
Name = "Model Viewer",
LauncherOrderId = 7,
LauncherOrderId = 8,
GameProfile = root.BasePaths.RootProfilesDir .. "/modelviewer/game.lua",
},
["modelviewer-dash"] = {
Hidden = true,
Name = "Model Viewer DaSH",
LauncherOrderId = 8,
LauncherOrderId = 9,
GameProfile = root.BasePaths.RootProfilesDir .. "/modelviewer-dash/game.lua",
},
};
6 changes: 0 additions & 6 deletions profiles/cc/hud/backlogmenu.lua
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,6 @@ root.Sprites["BacklogHeader"] = {
Bounds = { X = 962, Y = 1210, Width = 542, Height = 542 },
};

root.SpriteSheets["BacklogMask"] = {
Path = { Mount = "system", Id = 2 },
DesignWidth = 1920,
DesignHeight = 1080
};

root.Sprites["BacklogControls"] = {
Sheet = "Backlog",
Bounds = { X = 0, Y = 1153, Width = 1920, Height = 57 },
Expand Down
5 changes: 5 additions & 0 deletions profiles/cc/sprites.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
root.SpriteSheets = {
["BacklogMask"] = {
Path = { Mount = "system", Id = 2 },
DesignWidth = 1920,
DesignHeight = 1080
},
["Data"] = {
Path = { Mount = "system", Id = 5 },
DesignWidth = 3072,
Expand Down
4 changes: 4 additions & 0 deletions profiles/cclcc-switch/bgeff.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
root.BgEffData = {
BgChaEffectType = BgEffTypeEnum.Disabled;
BgFrameEffectType = BgEffTypeEnum.Disabled;
};
3 changes: 3 additions & 0 deletions profiles/cclcc-switch/dialogue.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
root.Dialogue.DialogueFont = "Default";
root.Dialogue.TipsMessageModeIdx = 4;
root.Dialogue.REVMessageModeIdx = 8;
23 changes: 23 additions & 0 deletions profiles/cclcc-switch/font.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
root.Fonts = {
["Default"] = {
Type = FontType.EdgeDetectedSingleVariableWidthSheet,
Sheet = "Font",
BinaryPath = {Mount = "system", Id = 7},
BitmapEmWidth = 53,
BitmapEmHeight = 53,
DifferenceFactor = 0.8,
IntensityShift = 0.48,
AlphaShift = 0.36
},

["Default2"] = {
Type = FontType.EdgeDetectedSingleVariableWidthSheet,
Sheet = "Font",
BinaryPath = {Mount = "system", Id = 9},
BitmapEmWidth = 53,
BitmapEmHeight = 53,
DifferenceFactor = 0.8,
IntensityShift = 0.48,
AlphaShift = 0.36
},
};
96 changes: 96 additions & 0 deletions profiles/cclcc-switch/game.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@

root.ActiveRenderer = RendererType.OpenGL;

root.LayerCount = 100;
root.GameFeatures = GameFeature.Sc3VirtualMachine |
GameFeature.Renderer2D |
GameFeature.Input |
GameFeature.Audio |
GameFeature.Video |
GameFeature.Subtitles |
GameFeature.DebugMenu |
GameFeature.Achievements |
GameFeature.Overlay;
root.DesignWidth = 1920;
root.DesignHeight = 1080;

root.WindowName = "CHAOS;CHILD Love Chu☆Chu!!";
root.WindowIconPath = "resources/cclcc/icondata/icon.png";
root.CursorArrowPath = "resources/cclcc/icondata/cursor_arrow.png";
root.CursorPointerPath = "resources/cclcc/icondata/cursor_pointer.png";

root.CharaIsMvl = true;
root.UseMoviePriority = true;
root.UseBgChaEffects = false;
root.UseBgFrameEffects = false;
root.UseWaveEffects = true;

root.ScreenCaptureCount = 2;

root.Vm = {
StartScript = 2,
StartScriptBuffer = 0,
GameInstructionSet = InstructionSet.LCCSwitch,

UseMsbStrings = true;
UseReturnIds = true;
UseSeparateMsbArchive = true;
StringEncodingType = StringUnitEncoding.Uint32,
StringIdSize = 4,

ScrWorkChaStructSize = 24,
ScrWorkChaOffsetStructSize = 10,
ScrWorkBgStructSize = 24,
ScrWorkBgOffsetStructSize = 10,
ScrWorkCaptureStructSize = 20,
ScrWorkCaptureOffsetStructSize = 10,
ScrWorkCaptureEffectInfoStructSize = 3,
ScrWorkBgEffStructSize = 30,
ScrWorkBgEffOffsetStructSize = 18,
ScrWorkMesStructSize = 7,

MaxLinkedBgBuffers = 2
};

root.PlatformId = 0x100000; -- switch, important for scripts

include(root.BasePaths.RootProfilesDir .. '/common/animation.lua');
include(root.BasePaths.RootProfilesDir .. '/common/achievementnotification.lua');
include(root.BasePaths.RootProfilesDir .. '/common/charset.lua');
include(root.BasePaths.RootProfilesDir .. '/common/scriptinput.lua');
include(root.BasePaths.RootProfilesDir .. '/common/scriptvars.lua');

include(root.BasePaths.RootProfilesDir .. '/cclcc/scriptinput.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/scriptvars.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/scriptvars.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/sprites.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/savedata.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/savedata.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/tipssystem.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/vfs.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/charset.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/gamespecific.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/font.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/dialogue.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/dialogue.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/configsystem.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/bgeff.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/waveeffects.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/saveicon.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/loadingdisplay.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/datedisplay.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/titlemenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/backlogmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/sysmesboxdisplay.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/selectiondisplay.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/optionsmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/tipsmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/tipsmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/extramenus.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/extramenus.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/tipsnotification.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/tipsnotification.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/systemmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc/hud/savemenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/helpmenu.lua');
include(root.BasePaths.RootProfilesDir .. '/cclcc-switch/hud/titlemenu.lua');
3 changes: 3 additions & 0 deletions profiles/cclcc-switch/hud/extramenus.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
root.ExtraMenus.LibraryMenu.MusicStringLockedIndex = 3;
root.ExtraMenus.LibraryMenu.LibraryMenuId = 16;
root.ExtraMenus.LibraryMenu.MovieDiskPlayIds = {55, 54, 53, 52};
15 changes: 15 additions & 0 deletions profiles/cclcc-switch/hud/helpmenu.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root.HelpMenu = {
DrawType = DrawComponentType.SystemMenu,
Type = HelpMenuType.CCLCC,
FadeInDuration = 32/60,
FadeOutDuration = 32/60,
NextPageInDuration = 0.4,
NextPageOutDuration = 0.4,
ManualPages = {},
}

root.Sprites["ManualPage0"] ={
Sheet = "Help",
Bounds = { X = 0, Y = 0, Width = 1920, Height = 1080 }
};
root.HelpMenu.ManualPages[#root.HelpMenu.ManualPages + 1] = "ManualPage0";
31 changes: 31 additions & 0 deletions profiles/cclcc-switch/hud/saveicon.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
root.SaveIcon = {
ForegroundAnimation = "SaveIcon",
DefaultPosition = { X = 104, Y = 736 },
BackgroundSprite = "SaveIconBg",
BackgroundOffset = { X = 0, Y = 0 },
BackgroundMaxAlpha = 0.0,
FadeInDuration = 16/60,
FadeOutDuration = 12/60,
FullyVisibleSpriteIndex = 1
};

MakeAnimation({
Name = "SaveIcon",
Sheet = "Data",
FirstFrameX = 127,
FirstFrameY = 417,
FrameWidth = 179,
ColWidth = 179,
FrameHeight = 62,
RowHeight = 62,
Frames = 2,
Duration = 2*18/60, -- 18 frames per sprite
Rows = 2,
Columns = 1,
PrimaryDirection = AnimationDirections.Down
});

root.Sprites["SaveIconBg"] = {
Sheet = "Data",
Bounds = { X = 127, Y = 479, Width = 179, Height = 62 }
};
6 changes: 6 additions & 0 deletions profiles/cclcc-switch/hud/tipsmenu.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
root.TipsMenu.TipsTextTableIndex = 2;
root.TipsMenu.TipsTextEntryLockedIndex = 7;
root.TipsMenu.TipsTextSortStringIndex = 10;
root.TipsMenu.TipsEntryNameOffset = {X = 100, Y = 10};
root.TipsMenu.NumberPos = { X = 1190 * 1.5, Y = 52 * 1.5 };
root.TipsMenu.NumberFontSize = 52;
2 changes: 2 additions & 0 deletions profiles/cclcc-switch/hud/tipsnotification.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
root.TipsNotification.NotificationTextPart1MessageId = 21;
root.TipsNotification.NotificationTextPart2MessageId = 22;
9 changes: 9 additions & 0 deletions profiles/cclcc-switch/hud/titlemenu.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root.TitleMenu.TitleAnimationFileId = 36;
root.TitleMenu.NewButtonId = 0;
root.TitleMenu.LoadButtonId = 2;
root.TitleMenu.QLoadButtonId = 3;
root.TitleMenu.TipsButtonId = 9;
root.TitleMenu.LibraryButtonId = 5;
root.TitleMenu.EndingListButtonId = 8;
root.TitleMenu.ConfigButtonId = 10;
root.TitleMenu.HelpButtonId = 11;
Loading
Loading