kichikuou
fcffc7ab78
Introduce ScreenId enum
2026-09-02 17:19:23 +09:00
kichikuou
783584d176
Drop cursor_color and unused includes
2026-09-02 12:28:41 +09:00
kichikuou
0b4a95aca6
Move text contexts to NACT
2026-09-02 12:28:14 +09:00
kichikuou
8b2a2d8a5e
Move menu_w[] and text_w[] from AGS to NACT
2026-09-02 11:57:14 +09:00
kichikuou
4a58251afd
Move CG display flags to NACT
2026-09-02 11:41:24 +09:00
kichikuou
0908fcd643
Move save/load display state to NACT
2026-09-02 09:10:38 +09:00
kichikuou
e0ca6ea2fb
AGS: Rename draw_screen() to invalidate_screen()
2026-08-29 08:33:05 +09:00
kichikuou
4e10e37444
Rename GameId::GAKUEN to GameId::GAKUEN_SENKI
...
To clearly distinguish it from Gakuen KING. The game id remains `gakuen`
for backward compatibility.
2026-08-29 07:09:54 +09:00
kichikuou
0c68777226
Refactor AGS::Window struct
2025-11-11 12:38:44 +09:00
kichikuou
8f36143ce5
Refactor CG destination handling
2025-11-11 09:11:44 +09:00
kichikuou
13dbdfc4c1
Fix non-square pixels for Gakuen Senki
...
This was a regression by commit bf97425 .
2025-11-09 16:43:54 +09:00
kichikuou
8b813e3631
Add Streamer Mode with -censor option
...
This introduces "Streamer Mode" to mosaic specified NSFW images, making
the game suitable for streaming or public viewing. This feature is
enabled via the '-censor <file>' command-line option, which takes a file
containing a list of image numbers to be filtered.
2025-11-09 12:08:25 +09:00
kichikuou
49cf5d55ed
Refactor CG loaders
...
Now they return a newly introduced CG object instead of writing directly
to VRAM. The palette is still written directly in the load functions.
2025-11-09 10:41:00 +09:00
kichikuou
446d34132a
AGS: Defer texture update until update_screen()
2025-02-22 15:24:27 +09:00
kichikuou
3f55a90c64
AGS: Remove intermediate screen buffer
...
Pixels are now copied directly from the 8-bit buffer to the texture.
2025-02-10 07:38:45 +09:00
kichikuou
bf9742533f
AGS: Move scroll handling to update_screen()
...
This fixes an out-of-bounds access bug when scroll > 400.
2025-02-09 14:42:52 +09:00
kichikuou
b1dfc57e9b
AGS: Refactor palette loading logic
2025-02-09 11:06:37 +09:00
kichikuou
c205806d7b
Fix header include paths
2025-02-08 12:55:14 +09:00
kichikuou
43d1af3a44
AGS: Refactor text layout logic
2025-01-19 10:41:14 +09:00
kichikuou
ff00165f47
AGS: Refactor Box struct
2025-01-18 15:37:15 +09:00
kichikuou
fad34f7bb9
Refactor text / menu window code
2025-01-18 15:37:13 +09:00
kichikuou
32a510d543
Add AGS::load() and AGS::save()
2025-01-18 14:41:14 +09:00
kichikuou
11a366005f
AGS: Refactor VRAM accessors
2025-01-17 15:13:32 +09:00
kichikuou
1673a5eb3c
AGS: Refactor palette management to use SDL_Palette
2025-01-17 13:47:10 +09:00
kichikuou
ca2ca7276f
AGS: Use SDL_Surface to save / restore screen
2025-01-17 10:58:50 +09:00
kichikuou
33418f8cb5
AGS: Make VRAM 8 bits per pixel
...
Before this, the virtual VRAM was 32 bits per pixel, with each pixel
holding an 8-bit index color or 0x80RRGGBB. The latter was for Ayumi-
chan Monogatari Jisshaban, which has been unsupported since system3-sdl2
was forked from System3 for Win32.
This change removes the 0x80RRGGBB format and makes the virtual VRAM 8
bits per pixel.
2025-01-17 10:58:46 +09:00
kichikuou
7f0bae6f74
Remove unnecessary SDL_{Lock,Unlock}Surface calls
2025-01-16 15:26:19 +09:00
kichikuou
37273534cc
Set text/menu box locations for Rance 2
...
Contributed by @RottenBlock.
2025-01-04 08:34:28 +09:00
kichikuou
a274aaee57
GameId: Remove '_ENG' variants from Game enum
...
Use GameId::language field if necessary.
2025-01-03 08:52:30 +09:00
kichikuou
7f7ff91439
GameId: Replace CRC32 with enum
...
This makes it possible to define games that do not have a CRC32.
2025-01-03 08:52:27 +09:00
kichikuou
a13719d84c
AGS: Fix a bug in GAIJI.DAT loading code
...
There was a bug in the JIS to Shift_JIS conversion code, causing out-of-
range access to the gaiji array. Since the conversion was not necessary
in the first place, the indexes to the array are now calculated directly
from JIS code points.
2024-12-27 14:47:20 +09:00
kichikuou
b08b9f80f2
Add some helper functions to GameId
2024-12-24 12:22:10 +09:00
kichikuou
daeef22a29
AGS: Introduce Palette type
2024-12-21 09:55:29 +09:00
kichikuou
eab5eb075d
Fix out-of-bounds memory access in text rendering
...
This fixes SEGV in Hashiri Onna II when custom font is used. (#32 )
2024-12-11 16:30:42 +09:00
kichikuou
4930154d45
Expose g_nact
2024-12-11 14:03:55 +09:00
kichikuou
9173742ffb
Introduce GameId class
2024-12-11 10:43:28 +09:00
kichikuou
e79f24d8b9
Replace NACT::fatal() with global sys_error()
2024-12-10 07:54:56 +09:00
kichikuou
8303f7c770
Refactor FILEIO
2024-12-08 15:06:00 +09:00
kichikuou
48d780add6
Introduce Dri class
...
It caches the link table.
2024-12-08 13:39:23 +09:00
kichikuou
723e5cef05
Fix crash when font not found
...
Now NACT::fatal() immediately exits the process.
2024-04-06 08:31:37 +09:00
kichikuou
7b7394e5fe
Fix use-of-uninitialized-value for text_font_maxsize
...
This fixes https://github.com/kichikuou/system3-sdl2/issues/25 .
2023-04-15 09:29:18 +09:00
kichikuou
7f6a085f56
Scanline screen effect
...
It can be activated by the -scanline command line flag, system3.ini, or
the menubar on Windows. Effective especially for games with 200-line
screen mode, such as Little Vampire and Intruder.
2023-04-09 18:23:42 +09:00
kichikuou
ec1dfbffcf
Use non-square pixels for Gakuen Senki
...
Stretch 512 horizontal pixels to 582 pixels. This is the same pixel
aspect ratio used by WebMSX.
Also set SDL_HINT_RENDER_SCALE_QUALITY to "linear", to improve the
scaling quality.
2023-04-09 18:23:39 +09:00
kichikuou
24224e0d2b
Merge some changes from SysEng 0.7 (for Gakuen Senki port)
2023-04-09 15:17:33 +09:00
kichikuou
32f4c0f945
Improve anti-aliasing quality of non-white text
...
By presetting palette.
2023-04-06 21:17:51 +09:00
kichikuou
6d6d5ca829
Reset RenderDrawColor after changing it for fading
...
Otherwise, the next SDL_RenderClear() will fill the screen with that
color, including areas outside the viewport.
2023-03-25 16:13:55 +09:00
kichikuou
2cb0b2a2a2
Reuse SDL_Renderer after VM reset
...
Otherwise mouse input doesn't work after restart in emscripten port.
2022-06-26 15:00:23 +09:00
kichikuou
cc75dd7c94
Convert linebreaks from CRLF to LF
2022-04-03 11:34:48 +09:00
kichikuou
dc471399e5
Rewrite fade in / fade out implementation
...
Before this change, fade in and fade out was implemented using a
16-steps dithering pattern.
Now fading uses alpha-blending. It behaves like the PC98 version, where
fading was done by palette animation.
This reduces `sizeof(AGS)` by 1.2MB.
2021-11-20 17:09:17 +09:00
kichikuou
98038a5c74
Do not use SDL_RWFromFile on Windows
...
It does not work in the MSVC build of SDL2 (although it works in
Mingw-w64's SDL2 package).
Fixes #11 .
2021-07-08 17:08:20 +09:00