Commit graph

2720 commits

Author SHA1 Message Date
62898c85f8 Add system that renders "cheap" "tiles" without color keying
The game appears to render level tiles as 16x16 pixel tiles, and many
of these do not require any transparency. So we now compute which
tiles are completely opaque and store those in a set, so that when we
draw them we can skip color keying.
2025-04-17 11:34:31 +02:00
2928b8a362 Remove "register" declaration from little endian path
Declaring a "register variable" isn't allowed in modern C++ so I ditch
that in the path that my dev machine compiles.

I *should* remove them from both and update GCC on the Sun to as new
as possible, but I'm not going to do that because that sound painful,
so this is what it is.
2025-04-17 11:34:07 +02:00
638918b4df Big endian changes 2025-04-12 17:44:22 +02:00
962bb9d477 Big endian define garbage 2025-04-12 17:38:29 +02:00
21323b964c Add big endian define (hack for Sun) 2025-04-12 17:27:55 +02:00
82566dabd2 Fix bugs on Sun (hopefully) 2025-04-12 17:22:49 +02:00
df2e2ce792 Remove maybe pointless maybe bad thing in shmget call 2025-04-10 22:52:17 +02:00
d19f37cfed Make manual-build-maker.lisp generate Makefile instead of shell script 2025-04-10 22:51:45 +02:00
4003931ed9 Check that the framebuffer image matches expectations 2025-04-09 15:11:18 +02:00
d562f588cf Add hint about turning on SHM on Sun 2025-04-09 15:00:53 +02:00
2c93c071d1 Add use of XShm for faster transfer speeds between game and X server 2025-04-09 14:57:32 +02:00
e14d3f59f2 Turn on FPS display 2025-04-08 11:18:08 +02:00
022144d727 Fix RenderBackend_ColourFill for 4-byte pixel format 2025-04-07 00:16:03 +02:00
8d840d89ea Make a constant for the park signal in case we want to change it 2025-04-06 23:48:40 +02:00
e3ce9ae828 Park the main thread while getting audio frames from the game
The main justification for this is that normal behaviour from a
backend is to have the main thread be interrupted by the audio system
and to then stay within the audio system while getting audio
frames. Parking the main thread simulates this by ensuring nothing
else happens in the game's logical flow at the same time.
2025-04-06 23:44:27 +02:00
faa808e238 Remove a little more 3DS gunk 2025-04-06 22:57:11 +02:00
c7dd1520c6 Skip copying unnecessary byte during blitting 2025-04-06 22:56:12 +02:00
6ab4984350 Adjust rendering code to 4-byte pixel format with unused byte 2025-04-06 22:48:08 +02:00
33b59f8219 Remove some 3DS stuff 2025-04-06 22:41:13 +02:00
d9cfb85346 Add build script generator 2025-04-06 21:19:19 +02:00
01e0787473 Use the correct header file for Solaris audio 2025-04-06 21:18:39 +02:00
b99fe37522 Don't use thread locals in stb_image (doesn't work on Solaris) 2025-04-06 21:18:13 +02:00
31d16e714f Add untested preliminary audio backend for Solaris 2025-04-06 12:25:30 +02:00
98b2b4c64d Make compatible with the Sun's pixel format 2025-04-05 19:51:34 +02:00
a1c39be7b3 Add Emacs backup files to .gitignore 2025-04-04 22:08:13 +02:00
e01863b80c Add initial code for raw X11 backend 2025-04-04 22:03:22 +02:00
gameblabla
b9d9d339f8
Merge pull request #1 from faithanalog/portable
track dkp changes - update _3DS to __3DS__ & update README
2023-04-13 14:04:14 +02:00
Artemis Everfree
f06884b2a3 track dkp changes - update _3DS to __3DS__ & update README 2023-04-10 23:27:11 -07:00
Clownacy
4ca6e12257 Output smdh to build3ds folder
No point in it cluttering-up the game folders.
2020-11-05 19:44:55 +00:00
Clownacy
9c1d7cd3f8 Ignore 3dsx files 2020-11-05 19:44:07 +00:00
Clownacy
af837edda4 Remove an unneeded font variable 2020-11-05 19:42:04 +00:00
Clownacy
cec5fdb231 3DS: Add vsync
Fixes screen-tearing in CSE2EX

...I should really figure out whether to enable vsync on other
platforms or not. I'm not even sure if the original DirectDraw
renderer used vsync - I swear I've never seen tearing in it before.
2020-11-04 22:17:18 +00:00
Clownacy
17911753a6 3DS: Fix 'Studio Pixel presents' text
It must have something to do with BeginRendering and EndRendering
being spammed multiple times in a frame.
2020-11-03 21:47:07 +00:00
Clownacy
53e19517a6 Update the 'licence.txt's 2020-11-03 20:28:24 +00:00
Clownacy
a1d4d588a8 Drop DoConfig to 30FPS
It doesn't need to refresh *that* often...
2020-11-03 20:23:00 +00:00
Clownacy
6c1eb23fe1 Simplify some pointer logic 2020-11-03 20:22:51 +00:00
Clownacy
f1fd371db7 Update 3DS-Software threading priority code
This matches the 3DS-Hardware backend
2020-11-03 20:19:21 +00:00
Clownacy
9e9b8942a5 Don't upload glyphs with no width or height
The SDLTexture renderer gives annoying errors otherwise
2020-11-03 13:33:32 +00:00
Clownacy
5395196b52 Disable SDL1 OpenGL window resizing
Seems to be broken. I'll address it in the future.
2020-11-03 13:16:30 +00:00
Clownacy
84df1a427b Explicitly disable vsync in OpenGL
It seems to be enabled by default (it was on my Raspberry Pi, anyway)
2020-11-03 13:14:51 +00:00
Clownacy
4a6b04d306 Fix a typo 2020-11-03 12:03:59 +00:00
Clownacy
cded38dad8 Remove some trailing whitespace 2020-11-02 14:34:37 +00:00
Clownacy
744ddcaacf Fix use of uninitialised memory in Font.cpp
This can cause random text corruption
2020-10-25 23:37:58 +00:00
Clownacy
5981034354 Merge branch 'accurate' into portable 2020-10-25 20:54:02 +00:00
Clownacy
fe4c14615b More README cleanup 2020-10-25 20:53:47 +00:00
Clownacy
1b9c2d3662 Make README explicitly list C++
Cave Story wasn't written in C, only stylised like it.
2020-10-25 11:35:53 +00:00
Clownacy
98f78716f7 Update portable branch with licence boilerplates
Also added Cameron Cawley to the licence
2020-10-23 19:18:13 +01:00
Clownacy
afb2b22e58 Merge branch 'accurate' into portable 2020-10-23 19:10:36 +01:00
Clownacy
d81c46a79c Release custom code under the MIT licence
Of course, Pixel's code is still proprietary.
2020-10-23 19:09:55 +01:00
Clownacy
76d22fa635 README cleanup 2020-10-21 19:18:25 +01:00