Commit Graph
1392 Commits
Author SHA1 Message Date
kichikuou d1fdab4cde Add Android support for SystemService.OpenPlayingManual
The heavy lifting will be done on the Java side. Here we just send a
message.
2025-10-18 13:43:10 +09:00
Nunuhara Cabbage 43c6a2804c Merge pull request #290 from kichikuou/dap-race
debugger_dap: Defer starting execution until configuration is done
2025-10-10 21:49:35 -07:00
kichikuou 180c81e5f5 debugger_dap: Defer starting execution until configuration is done
The debugger previously started execution upon receiving a 'launch'
request. This created a race condition where execution could begin
before breakpoints were set by the client.

This change ensures the debugger waits for both 'launch' and
'configurationDone' requests before starting the debugee. This allows
the client to set breakpoints before execution begins.
2025-10-11 11:20:35 +09:00
Nunuhara Cabbage e29739f0be Merge pull request #289 from kichikuou/dap-output
debugger_dap: Fix garbled characters in output events on Windows
2025-10-10 18:42:38 -07:00
kichikuou 1e682bad09 debugger_dap: Fix garbled characters in output events on Windows 2025-10-11 09:49:16 +09:00
Nunuhara Cabbage 0a4981533b Merge pull request #288 from kichikuou/build-fix
Fix build error when debugger is disabled
2025-10-05 07:48:16 -07:00
kichikuou 998ab23dab Fix build error when debugger is disabled
This fixes "call to undeclared function 'screenshot_save'" error when
xsystem4.h is not included by debugger.h.
2025-10-05 18:54:14 +09:00
Nunuhara Cabbage dc8342cbab Merge pull request #287 from kichikuou/android-fullscreen
Android: Do not use SDL_WINDOW_FULLSCREEN
2025-10-04 22:30:48 -07:00
kichikuou 8d9eb931f6 Redraw screen on SDL_APP_DIDENTERFOREGROUND
Without this, the screen remains blank after resuming the app on
Android.
2025-10-04 16:06:36 +09:00
kichikuou 1621378ba1 Android: Create window with SDL_WINDOW_RESIZABLE
This reverts commit b7ab1ed476
("Android: Enforce landscape fullscreen mode").

To work around https://github.com/libsdl-org/SDL/issues/8995 where the
system bar does not disappear after resuming the app, create the window
in non-fullscreen mode. Also, since SDL hints can be configured in
AndroidManifest.xml, there is no need to set SDL_HINT_ORIENTATIONS here.
2025-10-04 15:35:30 +09:00
Nunuhara Cabbage d3cb6b4001 Fix segfault in dd1_save_walk_data
Fix null pointer dereference when input array is not allocated and walk
data isn't found.
1.0.0
2025-09-28 18:52:05 -07:00
Nunuhara Cabbage 2198bf5970 Implement support for screenshots on Windows 2025-09-28 15:28:33 -07:00
Nunuhara Cabbage 0a152f0e34 Fix MonsterInfo parsing bug on Windows
For reasons which I can't explain, the string "タイプ = ループ" doesn't
work correctly as a format for sscanf on mingw.

Instead, we match the exact string including whitespace.
2025-09-28 14:30:17 -07:00
Nunuhara Cabbage 2a3b636bb0 Fix windows build instructions
make, nasm and diffutils are FFmpeg build dependencies.
2025-09-28 11:52:02 -07:00
Nunuhara Cabbage 1506d085db Merge pull request #284 from kichikuou/debugger
debugger: Display values of reference variables
2025-09-28 08:06:39 -07:00
kichikuou 729957b842 debugger: Display values of reference variables
Previously, the debugger displayed `ref int` variables like this:

    ref_int: <unsupported-data-type>
    <void>: <unsupported-data-type>

This commit introduces `dbg_variable_to_string()` to dereference these
variables and display their underlying value. Both the command-line and
DAP debugger interfaces have been updated to use this new functionality.
2025-09-28 11:11:24 +09:00
Nunuhara Cabbage 6f661fb370 Add Alt+S keybinding to save screenshot
Not implemented on android or windows (yet). Zenity must be installed
for file picker dialog.
2025-09-27 11:18:55 -07:00
Nunuhara Cabbage 57a73cd924 Add F11 keybinding to toggle fullscreen 2025-09-26 17:50:21 -07:00
Nunuhara Cabbage 6424efa6ab Merge pull request #283 from kichikuou/pascha2
Various fixes for Pastel Chime Continue
2025-09-26 17:44:22 -07:00
kichikuou dc4a6f1dfa game_compatibility.md: Mark Pascha C++ as supported 2025-09-27 09:02:51 +09:00
kichikuou b53c511b4a game_compatibility.md: Mark Pastel Chime Continue as supported 2025-09-26 10:24:15 +09:00
kichikuou 0c75f21985 Add stubs for some music related SACT2 functions
This makes Pastel Chime Continue's music mode work, except for the
spectrum analyzer.
2025-09-26 10:24:15 +09:00
kichikuou b4c3818d6b Validate dungeon coordinates in some HLL functions
During dungeon initialization, these functions may be called with
uninitialized variables that hold the coordinates from the previous
dungeon exploration.
2025-09-26 10:24:15 +09:00
kichikuou fe61704b90 PastelChime2.DungeonDataLoad: Remove hardcoded dungeon dimensions
Replaced the hardcoded 40x3x40 dungeon size with dimensions read
dynamically from the `m_dsd` data structure. This allows for loading
dungeons of various sizes.
2025-09-26 10:24:15 +09:00
kichikuou 199c91dd6c DrawField: Do not set lock status on non-existent doors
This change adds a check to ensure that a door is present before
attempting to set its lock status.

This is necessary because the trap that locks doors has a bug and
attempts to lock doors in the wrong direction.
2025-09-26 10:22:58 +09:00
kichikuou 828971ce19 PastelChime2: Do no prune corridor cells with doors
PastelChime2.DLL does not have this logic, but without it it may
generate maps that are impossible to complete.
2025-09-23 14:56:17 +09:00
kichikuou e1b1208438 PastelChime2.DungeonDataLoad: Initialize map after loading 2025-09-23 14:56:17 +09:00
kichikuou b42e59c494 PastelChime2: Do not place dark floor tile directly above exit 2025-09-23 14:56:17 +09:00
Nunuhara Cabbage 0d689ac1c2 Merge pull request #282 from kichikuou/HTTPDownloader
Add stubs for HTTPDownloader
2025-09-22 18:36:12 -07:00
kichikuou aba2a53afe Add stubs for HTTPDownloader
This fixes https://github.com/kichikuou/xsystem4-android/issues/22.

Once the user grants network access permission, Rance Quest will call
HTTPDownloader.Post upon startup, making it impossible to start the
game without this change.
2025-09-23 07:25:18 +09:00
Nunuhara Cabbage 30d599f161 Merge pull request #280 from kichikuou/fix-277
Fix leak of dungeon_renderer
2025-09-21 10:34:45 -07:00
Nunuhara Cabbage 7817592728 Merge pull request #279 from kichikuou/fix-278
Fix flag index calculation in PastelChime2_Field_UpdateDoors
2025-09-21 10:34:00 -07:00
kichikuou 85244a304a Fix leak of dungeon_renderer
This fixes #277.

Now dungeon_load_dungeon() and dungeon_load_texture() can be called
multiple times without causing memory leaks.

This change also simplifies the loading process by removing
dungeon_finalize_loading() helper function, as the map only depends on
ctx->dgn, while the renderer only depends on ctx->dtx.
2025-09-21 11:02:18 +09:00
kichikuou f2d26c2a46 Fix flag index calculation in PastelChime2_Field_UpdateDoors
This fixes #278.
2025-09-20 14:48:22 +09:00
Nunuhara Cabbage d48f637744 Fix 'é' rendering in EN Rance Quest
`str[i]` returns 165 for '・' in English version of Rance Quest Magnum.
(Fixes rendering of 'Café Artful' and 'Tomato Purée'.)
2025-09-18 18:38:43 -07:00
Nunuhara Cabbage 008d43be1b Implement EFFECT_ROTATE_OUT
Used in Rance Quest.
2025-09-15 07:05:13 -07:00
Nunuhara Cabbage 05b78e6dc6 Fix text rendering issue in Rance Quest
Use ceil(threshold) as cutoff distance in dilate shader, and tone down
the strength of the fractional part of the threshold.

Take bold width into account during layout.

This fixes the text rendering of name plates in Rance Quest.
2025-09-13 21:46:00 -07:00
Nunuhara Cabbage b28624203a Merge pull request #276 from kichikuou/generate
Implement PastelChime2.AutoDungeonE_Create
2025-09-13 09:38:33 -07:00
Nunuhara Cabbage e943ef8ea9 Merge pull request #275 from kichikuou/brightness
Implement SACT2.SP_SetBrightness
2025-09-13 09:38:14 -07:00
Nunuhara Cabbage d547919713 Merge pull request #274 from kichikuou/dap-evaluate
debugger_dap: Respect frameId in evaluate requests
2025-09-13 09:37:49 -07:00
kichikuou ddf6ac5088 Implement PastelChime2.AutoDungeonE_Create
This function is responsible for generating random dungeons for Pastel
Chime Continue.

The dgn_generate_drawfield() function implements the main logic. This
algorithm constructs the dungeon through a multi-step process involving
room creation, recursive expansion, wall placement, treasure room
generation, and corridor pruning/extension.

AutoDungeonE_Create() calls this function to create a layout based on
specified parameters, and then populates arrays with the proposed
coordinates of items, enemies, and traps.

This implementation strives to faithfully reproduce the behavior of
DrawField.dll, including its bugs, although it has not been strictly
verified.
2025-09-11 12:53:09 +09:00
kichikuou 037616f38d DrawDungeon2: Move dungeon generation function to generator.c
The dungeon generation function for DrawField will also be added to this
new file.
2025-09-11 12:51:23 +09:00
kichikuou af70ee09de debugger_dap: Respect frameId in evaluate requests
The DAP 'evaluate' request handler now correctly uses the 'frameId'
argument to set the evaluation context.

This also fixes incorrect evaluation of expressions containing non-ASCII
characters.
2025-09-11 12:29:32 +09:00
kichikuou 8d67c87f6f Implement SACT2.SP_SetBrightness
Used in Pastel Chime Continue.
2025-09-09 09:19:38 +09:00
Nunuhara Cabbage 94c8329d7a Update nix version in flake
To pull in newer version of cglm
2025-09-08 07:59:08 -07:00
Nunuhara Cabbage 2c771acfe6 Merge pull request #273 from kichikuou/rsm-version
Pastel Chime Continue: Make sure resume save v7 is used
2025-09-06 17:42:00 -07:00
kichikuou eef99c0910 Pastel Chime Continue: Make sure resume save v7 is used
Because make_rsave() determines the version of resume save based on the
AIN version, it returns RSM v6 for Pastel Chime Continue. But this game
requires the comment field added in RSM v7.

This solves the issue by upgrading to RSM v7 when comments are written
to the save file.
2025-09-07 09:21:37 +09:00
Nunuhara Cabbage 44c73f644f Read .exe and set window icon
Read the game's executable file, extract icons from it, and set the
window icon.

(Ported from ai5-sdl2.)
2025-09-06 16:30:18 -07:00
Nunuhara Cabbage 6cada80d34 Merge pull request #272 from kichikuou/ffi
ffi: Make HLL calls safe against heap reallocation
2025-09-06 12:30:21 -07:00
Nunuhara Cabbage 96a560f6a2 Merge pull request #271 from kichikuou/PastelChime2
Pastel Chime Continue: Add PastelChime2 HLL
2025-09-06 12:29:59 -07:00