Compare commits

..
3858 Commits
v2 .. v8
Author SHA1 Message Date
Alug 7e31536ff9 Merge branch 'Saturn-Next' into Saturn 2025-05-10 16:23:03 +02:00
indev 679e582028 jin is with lowercase j 2025-05-10 17:01:14 +03:00
indev bfc34337a3 Add P_CheckSightFast into LUASTUFF.md 2025-05-10 16:54:53 +03:00
Alug c2cf6f17d1 Merge pull request #167 from Indev450/Saturn-Next
Saturn v8
2025-05-10 09:39:39 +01:00
Alug 5b44c03892 these should be reset in the loop 2025-05-10 08:35:52 +01:00
Alug 69e3722e81 Fix controls getting stuck when opening the pause menu
https://git.srb2.org/Hanicef/SRB2Classic/-/commit/ed53d96430dedac42b288bd6a5ca8152e6e6acc4
2025-05-09 15:17:30 +02:00
indev 2fbc1140c4 Fix NOWH compilation (only check if renderer supports palette if HWRENDER is defined, otherwise run subpalette code unconditionally) 2025-05-08 17:39:27 +03:00
indev 9747eab9f3 Add I_Sleep into CONS_Error so if a wad file was not found game won't take 100% of cpu 2025-05-08 17:20:28 +03:00
Alug f98e7b13f4 cleanup dpad scroll stuff even more
mostly just to make this more readable
2025-05-08 10:24:33 +02:00
Alug 5cc6743328 dont keepmusic music that is not flagged as keep on death
uuuuuggggghhhhhhhhhhhh
2025-05-06 22:06:53 +02:00
Alug c0d8f4fbfe idk where this stuff came from
but we can access delayremoved thinkers in kart cause bleh
2025-05-06 19:42:32 +02:00
Alug d7c1e464d4 Revert "optimize MT_TUBEWAYPOINT"
This reverts commit 3d0ac03f06.
2025-05-06 19:36:38 +02:00
Alug 7e5baeebaf dont free item patches at levelload lol 2025-05-06 17:37:57 +02:00
Alug 0c7d50b38a call M_ClearMenus in D_StartTitle 2025-05-06 17:08:54 +02:00
Alug fa951475ba fix 32bit windoze compile
everything needs time.h idk why it never errored out before lol
2025-05-06 11:53:27 +01:00
Alug a608676bbd fix the fast pointonsides 2025-05-05 12:51:37 +02:00
indev 8dd52f278b Merge pull request #166 from chromaticpipe/interpdebug
Add interpolation related stats to perfstats
2025-05-05 13:09:18 +03:00
chromaticpipe 7634859503 Use more correct flags for interpolation stats + misc fixes 2025-05-04 18:29:23 -05:00
chromaticpipe cf1abbd176 Add interpolation related stats to perfstats
These were commented out for some reason..
2025-05-04 12:13:02 -05:00
Alug b71c1152c6 skinlocal deez nuts 2025-05-04 01:36:01 +02:00
Alug 46f3529165 simplify this slightly 2025-05-04 00:48:01 +02:00
Alug ce99a3f5a6 print previously supressed warnings into log instead of console 2025-05-03 23:17:33 +02:00
Alug 880db98961 dont mindelay when record attacking
theres a few places that do not "lag compensate" at all in RA so this would completely mess things up
2025-05-03 23:10:43 +02:00
Alug d2d0e0c979 smol cleanup m_perfstats 2025-05-03 20:45:40 +02:00
Alug 7abee5ae11 add USELTO and USEASAN make flags
to compile with LTO or Address sanitizer
2025-05-03 17:21:18 +02:00
Alug e025404bbf forgor casting this 2025-05-02 11:12:12 +02:00
Alug f8b9c8290e let squishy speed be player choosable
idk why i just didnt do that lel
also adds stuff to the menus
2025-05-02 10:58:53 +02:00
Alug d1d9236539 Merge pull request #164 from Chearii/minimapheadlight
Add a minimap headlight
2025-05-02 09:36:10 +01:00
Alug 63abd00c6a that needs to come before old_ stuff gets reset 2025-05-02 10:23:11 +02:00
indev 5f01d1ff84 Refactor /pm draw code a little 2025-05-02 00:23:52 +03:00
Chearii 62fa1777dd ts pmo fr icl istg
me when my code has to be robust!!
(I also Forgot to remove the SHORT marcros oops!)
2025-05-01 15:47:50 -04:00
Chearii 59deb7c8c1 add a minimap headlight 2025-05-01 15:40:58 -04:00
indev d1c7e08496 Revert "Attempt to fix game freezing on windows when moving game window"
This reverts commit 231ff3b502.
2025-05-01 13:02:26 +03:00
indev 066b12f075 Revert "fix compile"
This reverts commit c0aa3e48cd.
2025-05-01 13:02:22 +03:00
Alug d1bb0b97d2 seriously screw you windoze 2025-05-01 08:56:43 +01:00
Alug c0aa3e48cd fix compile 2025-05-01 08:55:08 +01:00
Alug a1a4b7cfbf force c17 with gcc 15 for now
dont feel like porting stuff over to c24 or whatever for v8 so just force c17 so ppl can still compile
2025-05-01 00:31:37 +02:00
indev 231ff3b502 Attempt to fix game freezing on windows when moving game window 2025-05-01 01:06:00 +03:00
Alug 3fb4c6484d tiny more cleanup screencoord stuff 2025-04-30 14:58:06 +02:00
Alug 7a6e1bcf6c readd old nanosleep
since it appeared to work just fine in testing
actually forgor to remove it from the lol
2025-04-29 21:56:30 +02:00
Alug cd60ee1188 fix ghost mobj spritescale and offset interpolation
had this laying around in lugstuff since ages lol
2025-04-29 21:43:18 +02:00
Alug 4481911cd4 only check for votescreen replacements if we havent already replaced everything 2025-04-29 21:38:45 +02:00
Alug 53b3a994fc some reformatting lel 2025-04-29 21:38:28 +02:00
Alug ebcdb23d34 delet old high color software stuff 2025-04-29 21:13:18 +02:00
Alug 431c0f41d1 raise version number
so i dont forger about it later lol
2025-04-29 21:02:56 +02:00
Alug 838379d970 we dont have this on this branch 2025-04-29 18:30:23 +02:00
Alug 68c913a5e1 raise cmake minimum requiered to 3.5 2025-04-29 18:22:33 +02:00
Alug 5f82a3b799 Merge pull request #163 from Indev450/patchntexrefactor
Refactor Patch and Texture handling
2025-04-29 17:08:25 +01:00
Alug 2369a0c5a1 Merge branch 'Saturn-Testing' into Saturn-Next 2025-04-29 18:07:56 +02:00
Alug e995ad0499 Reapply "disable jit compilation for now"
This reverts commit a662a0a68f.
2025-04-28 22:19:59 +02:00
Alug 7ba21abacd tiny more cleanup speedometer stuffs
put check for color speedo into a function
and precalc the xtra 3 scale
2025-04-28 17:47:37 +02:00
Alug 4c1cfc91da quick and dirty gcc 15 compile fix
need to fix this properly
2025-04-28 13:26:08 +01:00
Alug 79d440d398 quick and dirty gcc 15 compile fix
need to fix this properly
2025-04-28 13:25:30 +01:00
Alug ace8256d73 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-28 15:06:11 +02:00
Alug 984d501ee1 move doaddline block
slightly better branching since maps with portals are very uncommon in kart
2025-04-28 11:29:45 +02:00
Alug e138d540c8 skip rechecking for horizonlines when reloading gamestate
map remains the same during desynch, so safe some time
2025-04-28 11:21:24 +02:00
Alug 4f81349ea3 another tiny cleanup p_setup and p_saveg 2025-04-28 10:12:09 +02:00
Alug b960e3d848 fix replay ghost double free
kinda rare, but may happen when you resynch on the exact same time you got hit by something
2025-04-27 13:15:18 +02:00
Alug 9c8aee1bef tiny optimization
we dont need to recalc the bpm stuff
we can also divide the bounce in half just once
2025-04-27 00:57:53 +02:00
Alug cf453bad5f make a struct for squishy
this is horrid but should fix this speeding up when multiple players squish
2025-04-27 00:30:49 +02:00
Alug 8ad161f061 add a few more branching hints
also fix some indentation
2025-04-25 21:37:25 +02:00
Alug a18e81ee18 invert skywall offset
also fixes the issue, but doesent draw skywalls over actual walls in rare cases
lets hope this doesent draw walls over actual skywalls now (:
2025-04-25 21:34:36 +02:00
Alug 4f83d3b36b whitespace crap 2025-04-25 21:34:33 +02:00
indev 97093dbeb9 Don't free PU_SPRITE memory, since it invalidates some lua patches if they are using sprite frames 2025-04-25 12:15:57 +03:00
Alug 2468277068 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-24 13:23:16 +02:00
Alug cd15c5d380 oops didnt think addskins would be used here lel 2025-04-24 13:17:34 +02:00
Alug b977cf72b7 deprecate "addskins" command
"addskins" is an incredibly ambigous name since its main purpose was to add skins LOCALLY
just prints a notice for now since there may be ppl that still use it
2025-04-24 13:17:31 +02:00
Alug 45506b381e take mobjscale into account when skipping small sectors for precip spawn 2025-04-24 13:11:24 +02:00
Alug b6fd7a1e96 put precip purge into a function
to reduce code dupe and branching
2025-04-24 13:03:35 +02:00
Alug 58a9e17500 fix spectator key lel
oopsie
2025-04-24 09:42:24 +02:00
Alug c14c28ac1e attempt at cleaning up gamecontrol splitscreen shit 2025-04-24 09:24:44 +02:00
Alug 5df33e0705 cleanup G_Responder
man
2025-04-24 09:24:41 +02:00
Alug 987d18fe99 memset those 2025-04-24 09:24:37 +02:00
Alug 7bb4b74c65 fix potential crash on startup
thx hanicef
2025-04-24 09:24:05 +02:00
Alug cf92df5faa skip checking skin array if localskin was found in localskin array 2025-04-24 09:24:01 +02:00
Alug f81488500c just mark it like this 2025-04-24 09:23:58 +02:00
Alug a099f825a7 missed removing this 2025-04-24 09:23:55 +02:00
Alug d75ce094ae Merge remote-tracking branch 'origin/Saturn-Testing' into patchntexrefactor 2025-04-23 19:24:12 +01:00
Alug 1bb52b9c2d check ceiling first in encore flat precaching
no clue why but this fixes the sides of the road on ORR not being encore remapped
2025-04-23 19:54:58 +02:00
indev 1d15f89433 Remove I_Assert in GetItemId in lua_hudlib_drawlist.c
It is legal for lua_getpc to be null (thanks GenericHeroGuy for investigating!)
2025-04-23 19:09:02 +03:00
Alug 117db36ed3 move saturn menu stuff around 2025-04-23 16:14:45 +02:00
Alug 9d1b8ba736 move saturn menu stuff around 2025-04-23 16:14:33 +02:00
Alug d2844e7087 add P_DivlineCrossedFast
to take more advantage of P_DivlineSideFast
2025-04-23 16:07:38 +02:00
Alug def4028028 add P_DivlineCrossedFast
to take more advantage of P_DivlineSideFast
2025-04-23 16:07:14 +02:00
Alug 61a4cb554a use P_UnlinkThinker
idk why it still was like this in here lel
2025-04-23 16:05:17 +02:00
Alug f75eb0d766 port RRs improved paranoia thinker/mobj prints
https://git.srb2.org/KartKrew/RingRacers/-/commit/509a023329ea1cd583c500a3287c488e5ee3e3a6
https://git.srb2.org/KartKrew/RingRacers/-/commit/17aaf178d587970a3a845aa6c2f3807077996a77
2025-04-23 16:05:13 +02:00
Alug ede95c8ec4 use P_UnlinkThinker
idk why it still was like this in here lel
2025-04-23 16:04:53 +02:00
Alug 55704f2ba2 port RRs improved paranoia thinker/mobj prints
https://git.srb2.org/KartKrew/RingRacers/-/commit/509a023329ea1cd583c500a3287c488e5ee3e3a6
https://git.srb2.org/KartKrew/RingRacers/-/commit/17aaf178d587970a3a845aa6c2f3807077996a77
2025-04-23 16:02:41 +02:00
Alug 87fd33793d fix P_RemoveSavegameMobj triggering assert in P_UnlinkThinker 2025-04-23 14:02:28 +02:00
Alug 6509e7fdf9 nooo PARANOIA dont set our thinker next to NULL 2025-04-23 14:02:15 +02:00
Alug cd7177682a fix P_RemoveSavegameMobj triggering assert in P_UnlinkThinker 2025-04-23 14:01:38 +02:00
Alug 0ceeac4726 nooo PARANOIA dont set our thinker next to NULL 2025-04-23 14:01:38 +02:00
Alug 0b515939ad we have a global to check if config was loaded 2025-04-23 13:23:52 +02:00
Alug abba2a9eac fix cv_set being called for allowsaturnjoin before its registered 2025-04-23 13:23:47 +02:00
Alug 72ea257a06 we have a global to check if config was loaded 2025-04-23 13:22:53 +02:00
Alug e87ca3fe1b fix cv_set being called for allowsaturnjoin before its registered 2025-04-23 13:22:50 +02:00
Alug ca756fd647 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-23 11:40:13 +02:00
Alug ef93209d40 delet bunch of stuff 2025-04-23 11:23:09 +02:00
Alug af104c2d12 Merge remote-tracking branch 'origin/Saturn-Testing' into Saturn-Next 2025-04-23 11:20:22 +02:00
Alug 0e3ab1354b Merge pull request #161 from Indev450/kartstats
Kartstats
2025-04-23 09:28:35 +01:00
Alug 5dc1576496 Merge pull request #160 from Indev450/oglprecache
Fix up texture precaching + add Opengl texture precaching
2025-04-23 09:28:23 +01:00
Alug c4aba91e79 shh 2025-04-23 09:04:54 +02:00
Alug 5aca7e12c7 :3 2025-04-23 09:00:52 +02:00
Alug 60e0e50141 try to fix skywalls zfighting
just apply a small polygonoffset to them
lets hope this is small enough so they dont end up rendering infront of actual textures and such
2025-04-23 01:04:04 +02:00
Alug db9435f810 reset palette cvars when toggling paletterendering
everything gets wiped anyways, so this would be just confusing
2025-04-22 22:11:02 +02:00
Alug 8edec89a36 fix cloud tops palette not applying 2025-04-22 21:52:55 +02:00
Alug b43ca1f3c7 let saltyhop work without gravstretch 2025-04-22 20:13:44 +02:00
Alug 89906cf384 Revert "speed up ogl palette stuff"
why is windows like this?

This reverts commit 1ffb655131.
2025-04-22 18:43:40 +01:00
Alug 2a3e4c4c6d smol cleanup z_zone 2025-04-22 20:28:19 +02:00
Alug e2b1a87ca5 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-22 20:28:16 +02:00
indev e5e63a56a1 Don't resume music when game is paused (happens when you pause -> lose window focus -> regain window focus) 2025-04-22 18:24:59 +03:00
Alug 1ffb655131 speed up ogl palette stuff
doesent wipe all our gpu textures if palette hasnt changed too lol
2025-04-22 05:04:04 +02:00
Alug 4ce111139f add cv_palette and cv_palettenum
so palettes can be changed midgame
note: subpalettes do not work properly in opengl with paletterendering disabled, so palettenum will NOT work there
2025-04-22 04:58:40 +02:00
Alug 7c4b93fba8 add some savety to the hudlib
just error instead of crashing so we can track down any issues more easily
2025-04-21 14:16:35 +02:00
Alug fc7405e542 dont free our hud patches when loading an addon lel
appears to work fine in RR so we do it here
fixes some weird issues and crashes with certain hud elements
2025-04-21 14:16:31 +02:00
Alug a57afd046e Merge remote-tracking branch 'origin/Saturn-Testing' into patchntexrefactor 2025-04-21 12:36:41 +02:00
Alug bc6ce84a26 replace instances of malloc + memset with calloc 2025-04-21 12:27:52 +02:00
Alug 9638ae56c5 add missing pglDisableClientState 2025-04-21 12:25:50 +02:00
Gustaf Alhäll f398c0ceea Fix use-after-free when loading addons after searching addons 2025-04-21 12:25:47 +02:00
Alug af544e4e16 Fix server listing refusing to list servers on resolution failure 2025-04-21 12:25:44 +02:00
Alug 7ca201ea1b Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-20 23:36:04 +02:00
Alug b622fbb653 add mindelay and gentlemens stuff to menu 2025-04-20 23:35:55 +02:00
Alug 00e59c480e remove lagless camera from the menu
and change cvar name to reset it for everyone
2025-04-20 23:35:52 +02:00
Alug cd2f8577a0 big cleanup "GetZAt" stuff
GetZAt now takes 4 parameters (slope, x, y, normalheight)
and everything now uses their designated getzatfunction
2025-04-20 23:01:53 +02:00
Alug fe632340b4 fix P_CameraLineOpening
lel this was always botched
2025-04-20 23:01:40 +02:00
Alug e872f25ce6 check for sloperoll first 2025-04-20 23:01:37 +02:00
Alug f838ff528e dont need this anymore 2025-04-20 23:01:29 +02:00
Alug 5ba6021010 dont let postload free our waitingplayer spritepatches 2025-04-20 23:00:49 +02:00
Alug 2e5e753d2e pass hardware patch to HWR_DrawSpriteShadow 2025-04-20 16:40:35 +02:00
Alug e195126ac0 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-19 10:30:22 +02:00
Alug 7bcf8df6fc unnest timedemo stop stuff 2025-04-19 10:29:33 +02:00
Alug ce77a29892 fix titlescreen demos crashing, again 2025-04-19 10:29:30 +02:00
Alug 56392d4e78 whoop this is only used by curl 2025-04-19 07:46:43 +01:00
Alug 6cc37b9160 cleanup http download stuff a little
unglobalise a bunch of stuffand put into a struct
also hopefully made the progressbar less funky
2025-04-19 07:46:39 +01:00
Alug 2f736fb28c a 2025-04-19 01:25:51 +02:00
Alug 127e8b52d1 a 2025-04-19 01:25:45 +02:00
Alug 9e8fb1293f Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-19 01:24:02 +02:00
Alug fa3d2abe13 Merge branch 'kartstats' into Saturn-Testing 2025-04-19 01:23:51 +02:00
Alug c9faccae64 fix software sprite clipping 2025-04-19 01:19:35 +02:00
Alug 126d26cc98 smol software stuffs 2025-04-19 01:19:32 +02:00
Alug dc49502884 smol fix for R_AddSingleSpriteDef 2025-04-18 23:29:03 +02:00
Alug f03a12241d fix hwrpatch grabbing the wrong patch
getmapped patch needs to be called before this is referenced to avoid potential issues
2025-04-18 22:45:27 +02:00
Alug 3fe77da35f readd missing SHORT macro for patch_create 2025-04-18 22:45:24 +02:00
Alug c79f986a8f make a backup of save data before writing to it 2025-04-18 12:52:35 +02:00
Alug 2b299039e6 reword this lel 2025-04-18 12:47:31 +02:00
Alug 167e8e9258 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-18 11:43:06 +02:00
Alug 8943b6a3b7 reset record attack state in G_ResetDemoPlayback
should fix some wonky issues in a few cases
2025-04-18 11:29:52 +02:00
Alug 08f208e4a0 fix record attack condition in G_CheckDemoStatus 2025-04-18 11:24:49 +02:00
Alug 963eb427cf reset demo stuff for multiplayer demos when using connect command
so if smth happens and we cannot connect the game wont be stuck in some weird replay limbo state
2025-04-18 11:24:46 +02:00
Alug c4fd47657e fix crash when using connect command from within replays 2025-04-18 11:24:42 +02:00
Alug 6d15fc1ce4 close menus when replay stops 2025-04-18 10:09:52 +02:00
Alug db43b90b70 Revert "convert fixed to float with multiplication instead of division"
i did not intend to push this to testing lel
2025-04-17 20:49:48 +02:00
Alug da5aaa7ebf Revert "SHORT ma balls"
This reverts commit 5401cb58bd.
2025-04-17 19:37:17 +01:00
Alug 2c290b7473 Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-17 19:36:50 +01:00
Alug 541c70498d we dont use MT_WAYPOINT lel
just use starposts
also remove rings cause duh
2025-04-17 14:03:03 +02:00
Alug f2d1cb5606 aaaa != 2025-04-17 13:50:35 +02:00
Alug 8702ddca60 those do not exist anymore lel 2025-04-17 13:49:13 +02:00
Alug f7acf7c2d3 fix up the automap again
got the rest of stuff working in a horrible way
automap aswell as minigen stuff looks good now
2025-04-17 13:49:10 +02:00
Alug bcf82970a4 fix oopsie in automap bounds calc 2025-04-17 13:49:07 +02:00
Alug 285c850628 fix automap colours
forgor those revert those when i ported RR code over, now they should match up with what they say
2025-04-17 13:49:04 +02:00
Alug 3b4ffa20bc why? 2025-04-16 23:21:41 +02:00
Alug 006931eaa8 why are these even seperated like that lel 2025-04-16 22:37:39 +02:00
Alug 5401cb58bd SHORT ma balls
need this for now
2025-04-16 22:33:21 +02:00
Alug efde25469e Merge branch 'Saturn-Testing' into patchntexrefactor 2025-04-16 22:31:54 +02:00
Alug b207a87f8b fix camera vertical look tooltip for green res
Zzz...
2025-04-16 22:31:42 +02:00
Alug 1da62eb63d add minimap icon dot to saturn hud menu 2025-04-16 22:31:39 +02:00
Alug 3e6f028061 add support for drawing a dot on the minimap showing player angle
mostly copy pasted from blankart so thx neppy c:
2025-04-16 22:04:34 +02:00
Alug 7bd835f43e fix minimap disappearing when having minimap trans on 10 2025-04-16 22:04:27 +02:00
Alug 8ec6b2e737 fix compile without ROTSPRITE 2025-04-16 20:28:07 +02:00
Alug f4fc185f5b move patch rotation stuff into their own files 2025-04-16 20:25:56 +02:00
Alug b28593dba7 turn rotcache into a lumpcache_t aswell
no need for slow aatrees
2025-04-16 19:22:28 +02:00
Alug 88dc5f25ad smol cleanup W_CachePatchNumPwad 2025-04-16 19:21:28 +02:00
Alug a0062060eb oop 2025-04-16 16:50:09 +02:00
Alug 8e6633d0bc fix the sprite shadows Zzz... 2025-04-16 16:36:41 +02:00
Alug 2c8d5f2625 dont clear all our textures if we dont intend to reload em
the multipart addfile stuff is awkward asf
2025-04-16 16:25:58 +02:00
Alug 46e10f67b2 more smol fixes 2025-04-16 16:21:13 +02:00
Alug 962b68c5c3 smol opitmizations and cleanup 2025-04-16 16:00:34 +02:00
Alug fccfcd12fd fix model blendpatches
we already have a functional check in HWR_GetBlendedTexture anyways
2025-04-16 15:58:55 +02:00
Alug 50caffd70f add tags for model textures 2025-04-16 15:58:45 +02:00
Alug 14a1c391a6 fix models lel 2025-04-16 15:58:40 +02:00
Alug 8ab097f166 dont free our rotsprites aa 2025-04-16 15:58:37 +02:00
Alug 41cb3e932a readd freeing those
dont want kart to use like 4gbs of memory for no reason lel
2025-04-16 15:58:30 +02:00
Alug 70f1a6bf48 readd hud gfx flushing
now that stuff doesent completely die lmao
2025-04-16 15:57:59 +02:00
indev 804d9e2e8e If GLENCORE is enabled, free both encore and noencore textures 2025-04-16 15:57:55 +02:00
Alug 123fe48cad simplify this 2025-04-16 15:57:52 +02:00
Alug 2e7ae45fdb cast Zzz... 2025-04-16 15:57:49 +02:00
Alug 6b44ac922e revert this part 2025-04-16 15:57:44 +02:00
Alug 1c95b2e464 idk anymore lel 2025-04-16 15:57:22 +02:00
Alug b0ba261e14 change those tags
also add PU_PATCH_DATA
2025-04-16 15:56:49 +02:00
Alug 39f8fa8d34 add more purge tags refactor patch freeing and stuff
currently dies when adding a wad midgame and the loading into another map
2025-04-16 15:56:41 +02:00
Alug fe1579e960 fuckit *unshortens your patch dimensions* 2025-04-16 15:56:13 +02:00
Alug 7256fb9d62 port srb2s patch refactor
still needs all the new purge tags
then we should hopefully be free of use after frees and everything
2025-04-16 15:55:06 +02:00
Alug 53f68784fc fix PARANOIA compile 2025-04-15 15:19:13 +02:00
Alug 9e53f3f8b0 fuck off goddamit 2025-04-15 05:08:30 +02:00
Alug a6bebb2d91 noooo dont free our lumppat
for some reason this occasioncally causes an use after free??
our memory management honestly is a fucking mess ngl
2025-04-15 04:59:38 +02:00
Alug 8a80f0571c cleanup R_ProjectSprite 2025-04-15 03:51:11 +02:00
Alug 13589499f8 cleanup rotated patch creation
kill unused adjustfeet code
add missing clamping
use malloc since stuff gets filled with 0xFF00 anyways
kill  rotated sprite "type" since its unused too
simplify getpatchpixel a little
2025-04-15 03:51:01 +02:00
Alug 50656b7afc Revert "flexible array stuff for columnofs"
This reverts commit 37a394ebaa.
2025-04-15 03:15:04 +02:00
Alug b2e0ad58f9 revert using modulu for frac calcs for colum drawers
this is fucking slow for some reason
2025-04-14 22:50:50 +02:00
Alug b2f22a379f whoops 2025-04-14 12:03:37 +02:00
Alug c8b318ba8e minor branching stuff 2025-04-14 11:49:26 +02:00
Alug 8db082501e only holepunch uses this 2025-04-14 11:30:51 +02:00
Alug 5c6c46848e missed those 2025-04-14 11:27:57 +02:00
Alug 69d86e69cb bunch of stuff from lugstuff
- precalc some float division for ogl transform code
- use strlen for the custom lua cvar menu setup
- mostly just cleanup
2025-04-14 11:27:18 +02:00
Alug 0d9ac01fea disable titlescreen demos if any addon (but musicpacks) are loaded
read comment
not a fan of this, but better than ppl constantly crashing
2025-04-13 22:33:52 +02:00
Alug fd14976a4d optimize colourcube conditional checks
screw u atoi
2025-04-13 21:49:08 +02:00
Alug fa06551bd8 Merge pull request #162 from Chearii/dialspeedometer
Add a dial speedometer
2025-04-13 17:44:39 +01:00
Alug 2342d92ae3 refactor K_StretchPlayerGravity
mostly just make it more readable lel
2025-04-13 18:43:50 +02:00
Alug 561b1c0b92 calloc takes care of those 2025-04-13 18:43:47 +02:00
Alug 7eb311d99c we dont need all this stuff for precip 2025-04-13 18:42:10 +02:00
Alug e5f9623113 move this to make it little more clear what this is for 2025-04-13 18:42:07 +02:00
Alug e29c1010d3 missed this with localskin stuff 2025-04-13 18:42:03 +02:00
Alug 494c6ca80d move drawnode stuff into a switch
i like switches uwu
2025-04-13 18:41:47 +02:00
Alug b4416c32ed move line polyseg check out of the lööp if theres no polyobjs on le map
seems to reduce a hotspot there significantly
2025-04-12 19:42:35 +02:00
Alug fa757c6695 throw mobjcache allocation shit into a inline function 2025-04-12 19:42:31 +02:00
Alug fb15cfe9f0 convert fixed to float with multiplication instead of division 2025-04-12 19:42:27 +02:00
Alug 94eebd2cd0 use mobjcache for savegame mobj load 2025-04-12 19:42:24 +02:00
Alug 7e6bde73e1 make a macro for this 2025-04-12 19:42:21 +02:00
Alug da5a2ceefa Merge remote-tracking branch 'origin/demodates' into Saturn-Testing 2025-04-12 19:42:17 +02:00
Alug e74340aabf spr->mobj not thing lel 2025-04-12 14:36:42 +01:00
Alug 48113cb156 spr->mobj not thing lel 2025-04-12 14:36:36 +01:00
Alug 6ae0b87686 Merge branch 'Saturn-Testing' into demodates 2025-04-12 14:33:35 +01:00
Alug 98f35b6e06 windoze stimky
well this atleast should work for everyone, but be noted that the normal "localtime" function is apparently not thread safe
2025-04-12 14:33:11 +01:00
Alug 2959a84b74 attempt at unmangling localskin stuff again
moved almost all the weird ass ternaries into functions
and should also probably fix some remaining issues where stuff was wrong
2025-04-11 20:45:46 +02:00
Alug 705bb4a8ea dont need to do any of this lel
the calloc takes care of those already
2025-04-11 17:16:11 +02:00
Alug 804ca985f3 just make the numlaps draw besides the date
idk theres no good place for this otherwise
2025-04-11 14:25:00 +02:00
Alug 892a59ff15 add cvar to change the demo date formatting
bruh
2025-04-11 14:24:56 +02:00
Alug 3e60b1b388 bigger buffer for demo version thing 2025-04-11 14:24:52 +02:00
Alug 9c25d99156 print demo version on "outdated" demos
idk if this is fine lel
2025-04-11 14:24:47 +02:00
Alug e8c6dca8c1 dont need le strncpy 2025-04-11 14:24:43 +02:00
Alug 02c1a9a58d apparently we have "nameonly"
ty indev <3
2025-04-11 14:24:40 +02:00
Alug 2201d58f7d try and get file creation time in some cases on windoze builds
untested as of right now
2025-04-11 14:24:36 +02:00
Alug b7542a2106 try to catch more bad demo dates
i mean this game did not exist in 2010 lmao
but occasionally it actually returned dates other than 1970 depending on what was passed to it lmao
2025-04-11 14:24:33 +02:00
Alug f1bcdaf68f do pathseperator check like this 2025-04-11 14:24:29 +02:00
Alug 1ebebb5690 extract the date out of replay + display em in replay hut
this is kinda horrid, but essentially, the number at the start of replay names is actually the time when the replay was recorded, so i can extract that and convert it to a readable format
this probably can be done alot cleaner lmao
2025-04-11 14:24:26 +02:00
Alug 1ddc663e8c add setting for cecho toggle to print to console instead
idk i hate doing string stuff, hope this doesent explode lmao
also ensures even if disabled all cecho stuff is printed to log file again
2025-04-10 22:54:55 +02:00
Alug 5b3edc2131 handle highres portraits and statdisplay text more gracefully on low resolutions
below 640x400 the highres portraits become an absolute mess so itll now fallback to the lowres portraits
the statdisplay name text also became completely unreadable so itll use V_DrawThinString instead on low resolutions
2025-04-10 22:54:52 +02:00
Chearii bc22830136 Fix up several HUD issues
ughhhh splitscreeeeeen
2025-04-10 01:59:59 -04:00
Chearii 90475c1128 Adjust dial rotation for MPH and FU/T 2025-04-10 01:08:15 -04:00
Alug ff6a13f042 simplify those 2025-04-09 23:23:37 +02:00
Chearii 92f08de1f6 Dial speedometer 2025-04-09 16:53:21 -04:00
Alug 29462b082b remove unused variables from FTransform struct 2025-04-09 22:44:34 +02:00
Alug bd9f436227 let item button also change skin grid sorting type 2025-04-07 19:40:27 +02:00
Alug 2b6f507785 reuse pwidth 2025-04-07 17:54:21 +02:00
Alug a0739e59e4 oops this needs be initialized 2025-04-07 15:07:50 +01:00
Alug 8251ac9ca8 sat credits a 2025-04-07 16:20:54 +02:00
Alug f99794884b avoid branching inside the while lööp 2025-04-07 09:10:19 +02:00
Alug dd93e1f7b0 use optimized P_DivlineSide instead of R_PointOnSideFast 2025-04-07 08:40:41 +02:00
Alug 6b12c55393 some software optimizations
from:
https://git.do.srb2.org/Hanicef/SRB2Classic/-/merge_requests/6#d4bba40be8388ccd557d03ef4e4a36d0728c7751_645_587

minus the buffer flipping change, karts resolution stuff is hell and even worse due to birdmod things
maybe will look into that sometime
2025-04-07 08:40:37 +02:00
Alug 4b8d072153 free ogl lighttables earlier
ogl lighttable data is owned by extracolormaps apparently, so it has to be freed ealier
2025-04-07 08:40:16 +02:00
Alug f159b18e96 this is unlikely 2025-04-07 08:40:13 +02:00
Alug 27653381d3 try to rectify some branch mispredictions
adds "LIKELY" and "UNLIKELY" macros
those can be used to tell the compiler which path is more likely to happen
2025-04-06 23:33:14 +02:00
Alug bd77b17c1c whoopy copy paste 2025-04-06 17:13:15 +02:00
Alug 3261fd12db dont need this 2025-04-06 16:25:46 +02:00
Alug 3aff53647d reorder those a little 2025-04-06 15:15:09 +02:00
Alug 4a703a4288 use the float vid dimensions
forgor here
2025-04-06 15:15:06 +02:00
Alug 4880177e65 cache the fofflags too 2025-04-06 11:24:54 +02:00
Alug 744e17a0d6 somehow this is slightly faster 2025-04-06 11:00:27 +02:00
Alug b706c55ed8 cache this
somehow this was unusually expensive lol
2025-04-06 10:50:03 +02:00
Alug fe3ad3487d delet this 2025-04-06 10:49:59 +02:00
Alug 5ff2b52522 more smoller optimizations
save some unneeded floattofixed calls
and move the linedef check earlier
2025-04-06 10:49:56 +02:00
Alug d57438bf8c check for horizonlines on mapload on opengl
this saves iterating through a crapton of lines every frame in ogl
2025-04-06 08:51:55 +02:00
Alug 5f2a8acfa2 Optimze horizonline check
noticed during profiling due to how it was checked R_PointOnSegSide was called extremely often even if the less expensive check  returned false
2025-04-06 08:51:28 +02:00
indev 01bf367ce1 Add 'inputdisplay' option for hud.enable, hud.enabled, hud.disable and hud.getOffsets 2025-04-05 18:36:48 +03:00
Alug 2550f1bee5 no need to scale the volume for splitscreen if we dont play a sound lol 2025-04-04 18:13:41 +02:00
Alug f2d2307fcc didnt mean to change that lel 2025-04-04 08:15:56 +02:00
Alug 33e904632c fix software crash on sparkcup due to invalid blendmode
also simplifies R_GetLinedefTransTable
it now just returns a normal translucency table in case of an invalid blendmode, similar to what vanilla got
not sure if this is 100% correct X)
2025-04-04 02:02:07 +02:00
Alug 2e34d71af6 bruh 2025-04-04 01:57:13 +02:00
Alug 2bc6754598 fix oopsie in R_Render2sidedMultiPatchColumn 2025-04-04 01:57:10 +02:00
Alug 086caa80bb fix OOB read of "playeringame"
not too sure if this is completely save, but it should technically
2025-04-03 21:36:40 +02:00
Alug ac85797a4f erronous endifma balls 2025-04-03 21:22:27 +02:00
Alug ba7d3324e6 kill SATURNSYNCH and can_receive_gamestate, change the detection of synch method
before we unconditionally sent PT_WILLRESENDGAMESTATE to every connected node that didnt desynch before, in a big lobby this could mean having to send out alot of reliable packets to potentially clients that couldnt use it anyways, like this we just check if a client is saturn, which gets set the moment a saturn client v7.1 and onwards joins (it sends a special packet to the server during connect)
this makes sure we only even attempt the new resynch system with clients WE KNOW can use it anyways
this is backwards compatible until v7.1, v7 when this was introduced did not send the special packet on join and relied on the willreceivegamestate packet, so they wont benefit from the better resynching anymore
2025-04-03 21:18:47 +02:00
Alug 6a97341835 update saturn credtis
baaaaaaaaaaarely fits now on greenres
had to kill the tooltip too :/
we should prob think of smth else than abusing a menu for this
2025-04-03 00:13:57 +02:00
Alug 2970ab6ae3 drift only option for coloured speelines
man
2025-04-02 19:48:51 +02:00
Alug 87447e9344 fix the wonky rendering issues on that one si-ht map
saturn regression introduced by the fof slope cutoff fix
hopefully this has no weiird side effects, but so far everything seemed fine
2025-04-02 18:42:50 +02:00
Alug 2980a87d09 use max 2025-04-02 18:42:47 +02:00
Alug 75d1b49aed check if texture exists first 2025-04-02 18:42:44 +02:00
Alug a5421d1a51 smol cleanup skyspecial handling for ogl 2025-04-02 18:42:41 +02:00
Alug 42b2e0622f slight cleanup drawOnMinimap 2025-04-02 18:42:35 +02:00
Alug 8033348aa1 change scr_depth to gr_texturedepth and allow it to change stuff midgame
its not used for software renderer anymore and before you had to restart the game to be able to see a change in gl
8bits and 24bits options have been removed since they had no effect
and it also allowed me to unglobal things
2025-04-02 18:42:03 +02:00
indev bd39a9c2f8 Add pageup and pagedown support in replay hut 2025-04-01 01:19:43 +03:00
Alug 633e9474b8 texfomats without alpha should have maxlod of 5 2025-03-31 22:54:46 +02:00
Alug 588ec05c80 disable compiling with ipv6
its non functional and disabling it just removes more things that could break
2025-03-31 20:34:06 +02:00
Alug dfcba501c4 remove unused stuff d_net 2025-03-31 20:10:54 +02:00
Alug c81e0d5816 put back networking shit into rendering code
just like vanilla yaaay
2025-03-29 18:45:39 +01:00
Alug 92cdc78dda also dont do this without localdelay 2025-03-29 18:01:45 +01:00
Alug 5971e12ea9 oop still need to update this 2025-03-29 18:00:01 +01:00
Alug 0cb18e2058 only do localdelay stuff at all if we intend to use it
shizo sanity check
2025-03-29 17:57:44 +01:00
Alug 501df0763b update ping only once per second again
read the comment on why
2025-03-29 17:33:07 +01:00
Alug 1762765c2f better and more errors for the tcp/udp stuff 2025-03-29 16:56:31 +01:00
indev 0a9ae254c8 Uncap S_UpdateSounds back
Some effects that rely on S_SoundPlaying don't work perfectly if
S_UpdateSounds is capped at 35 fps
2025-03-28 20:59:48 +03:00
Alug 8476e11065 can just set it to null directly 2025-03-28 17:13:13 +01:00
Alug 014c06a797 dont run anything director in dedi
we dont need to even init its stuff
2025-03-28 17:01:51 +01:00
Alug 256f4cf2a8 make a function that returns the newspeedometer style if its availible
makes stuff alot easier to read than constantly checking for if stuff exists everywhere
2025-03-28 16:34:08 +01:00
Alug e540cc901c tiny cleanup inputdisplay
just use V_DrawMappedPatch, it does the same but looks better in code lel
2025-03-28 16:34:04 +01:00
Alug 42f1a55fa7 can just reset this here 2025-03-28 16:33:58 +01:00
Alug 7f59674ea8 force switch player after 15 seconds max
not sure if its too strict but it gets really boring just watching the same person for ages
2025-03-28 16:33:56 +01:00
Alug 0899849681 forgor the header file 2025-03-28 16:33:53 +01:00
Alug 5f5c67601e instant switch if the player we watch is finishing
i dont need to watch the finishline for 5 seconds everytime lmao
2025-03-28 16:33:49 +01:00
Alug 5e8624c79c only count actually playing players for director
otherwise you could enable it if theres more than 1 person in the server but only 1 person is actually playing
2025-03-28 16:33:46 +01:00
Alug 72821f0f16 you cant memset this to -1 lel
prob fixes the director never switching when only one player was left
2025-03-28 16:33:43 +01:00
Alug c2e0e56a80 optimize director by checking for finishline waypoint on mapload
instead of every time this is called
2025-03-28 16:33:40 +01:00
Alug 6919e3cdc8 turn this into a switch for no reason 2025-03-27 23:38:01 +01:00
Alug 4a62b44526 remove pointless function 2025-03-27 23:33:37 +01:00
Alug ac181e238d add smol P-Meter patches
thx jin for those
2025-03-27 23:28:30 +01:00
Alug d323b78d3f seperate the colour hud patches out of here so they can be used without the vanilla colour hud 2025-03-27 23:28:27 +01:00
Alug 2582f6fe93 seperate the driftgauge colour patches into extra2 + add some more comments
was an oversight, extra2 should be for all colour hud patches
2025-03-27 23:28:25 +01:00
Alug 53d698573e fix driftgauge value "small" value being overwritten when having extra3 loaded 2025-03-27 22:12:39 +01:00
Alug 7560d272dd move saturn extra file checking into its own function
and also properly seperate all patch checks so they only get checked if you have the right file
may actually slightly speedup startup in some cases
2025-03-27 22:00:12 +01:00
Alug f6e5d09ffe fix stick setting showing wheel 2025-03-27 21:43:23 +01:00
Alug 825ab0afc0 make beta interscreen cvar also affect tab rankings 2025-03-27 21:43:20 +01:00
Alug 4c4efdfd11 just make the input display global toggle for it
mostly done so i can shorten the entry in the menu cause i cba to mangle stuff again
2025-03-27 21:43:17 +01:00
Alug 1fb34eb71c Add 'StickGFX' option for showinput cvar if graphics for it exist 2025-03-27 21:43:14 +01:00
Alug 3963943904 actually initalise those lmao 2025-03-27 21:41:52 +01:00
Alug d4f97f61c2 no need to check for this 2025-03-27 21:41:48 +01:00
Alug edf545c9a1 add support for sprite joystick knob
still needs proper toggle
2025-03-27 21:41:45 +01:00
Alug 15f9bf181a that comment belongs to this lmao 2025-03-27 21:41:42 +01:00
Alug 884c5d2578 fix vertical patch scale not working when horizontal scale is also not changed in opengl patch drawer 2025-03-27 21:41:39 +01:00
indev 0d6b42cc3f Fix limit_dist overflowing for some mapobjectscale values 2025-03-26 22:11:50 +03:00
Alug 1e8716450f better slope rotation for shadows
instead of copieng the target mobjs rotation we just use its standingslope instead, this means shadows properly rotate according to which slope theire on
should make them visually more cohesive if a player or other mobj is rotated midair
2025-03-26 20:06:31 +01:00
Alug 850272e783 fix spacing when compiled withou fbo support 2025-03-26 18:38:07 +01:00
Alug bf9edef146 add dummy entries so the tooltips dont fucking cutoff stuff in green res
if i only knew of this dumb hack earlier
2025-03-26 18:33:31 +01:00
Alug 35db2b0c8e muh huh durr hurr is above array bounds of deez nuts 2025-03-26 17:21:25 +01:00
Alug c5638d8dbb fix advanced video options in green res
god bruh
also removes the directional light entry since its planned to be deprecated
2025-03-26 18:17:40 +01:00
Alug 4a8a83bf09 fix sprite distort tooltips
Zzzzzzzzzz......
2025-03-26 18:05:31 +01:00
Alug 4b1110921b turn advanced sound ioptions into scoll menu 2025-03-26 18:05:27 +01:00
Alug e159a5f206 turn sprite distortion menu into scoll menu due to green res 2025-03-26 18:00:25 +01:00
Alug 856cdbda6b rename "Custom Options" to "Custom Addon Options"
to make it clear wtf this is even for
2025-03-26 18:00:22 +01:00
Alug 14df21a2ae turn screenshot options into a scoll menu cause of green res 2025-03-26 18:00:19 +01:00
Alug 2075587980 fix focus options for green res 2025-03-26 18:00:16 +01:00
Alug a35362f0ed move everything around in main options menu to fit stuff for green res 2025-03-26 18:00:13 +01:00
Alug 480c4111f9 fix bird menu from crashing (again) finally add an enum so this wont happen again 2025-03-26 18:00:10 +01:00
Alug e671cfebcf lel 2025-03-26 15:54:37 +01:00
Alug 25a80e378d add smol text indicating the autoload button 2025-03-26 15:37:38 +01:00
Alug 2d064d61a9 change menu autoload button to "END" instead of right shift
too many ppl accidentally press right shift and end up putting things they didnt intend into their autoload file
which sometimes caused alot of issues in online play
2025-03-26 15:37:35 +01:00
Alug 6b16d27576 brazil 2025-03-26 14:54:41 +01:00
Alug 5422ab4daf tab hell 2025-03-26 14:54:38 +01:00
Alug cbcfed133c change version string for testing "RC1"
were close to being done with v8, its now mostly just about catching any remaining bugs and regressions
2025-03-25 20:41:00 +01:00
Alug 064032175e grey out mouse grab when use_mouse is enabled 2025-03-25 20:05:13 +01:00
Alug e7eca015ac add onchange for "alwaysgrabmouse" 2025-03-25 20:05:10 +01:00
Alug d94b443eca put all the "game focus" options into a seperate menu 2025-03-25 19:36:05 +01:00
Alug 434048afad potentially fix "Received a file not requested" error in poor net conditions
needs a bit of testing
2025-03-25 16:53:07 +01:00
Alug 3614efa965 fix server lan discovery
which just returned EINVAL and triggered the I_Error in SOCK_Send
more information at: https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2219
2025-03-24 23:04:52 +01:00
Alug ec30b1a457 Merge branch 'socksnedstuff' into Saturn-Testing 2025-03-24 23:04:34 +01:00
Alug 3b43df0214 delet this 2025-03-24 19:37:52 +01:00
Alug ea3974d47e Revert "clean up some net stuff"
This reverts commit f8903e7ce7.
2025-03-24 19:37:49 +01:00
Alug f7e5f9f5b6 delet this 2025-03-24 19:36:41 +01:00
Alug c425400480 Revert "clean up some net stuff"
This reverts commit f8903e7ce7.
2025-03-24 19:36:38 +01:00
Alug aea03cc2b7 grey saltroll out in menu if sloperoll disabled 2025-03-24 18:22:22 +01:00
Alug e369fbded4 toggle for saltyhop sloperoll behaviour 2025-03-24 18:22:16 +01:00
indev 792806c20d No need to FLOAT_TO_FIXED here :з 2025-03-24 17:20:28 +01:00
indev fc894d8631 No need to FLOAT_TO_FIXED here :з 2025-03-24 19:15:43 +03:00
Alug dcc3b1294c remove the early returns in SOCK_Send
othewise it may never error out when it should
2025-03-24 16:32:56 +01:00
Alug 5d0a8ff6dd Do not error out if we don't have a socket for an address family we have disabled
from srb2
2025-03-24 16:32:53 +01:00
Alug c6cc7d3d29 Replace all instances of XD_KICK with a SendKick function 2025-03-24 16:00:15 +01:00
Alug d2838c2780 i hate menus 2025-03-23 18:31:47 +01:00
Alug 4e13febeaf this does not need be checked here 2025-03-23 18:24:55 +01:00
Alug 3e80554a0e k_throwdir already returns just -1, 0 and 1 2025-03-23 18:17:49 +01:00
Alug f3d8b2b3d1 add player blendeffects to menu + change when they apply
most of them now apply during sneakerboost
sparkles may also get add blendmode when you go really fast with them (like the speedlines)
2025-03-23 18:15:06 +01:00
Alug 475ba7ca10 change "verticallook" and "cameralookbackmom" to be per splitscreen player 2025-03-23 18:13:52 +01:00
Alug 16c13cb561 Merge pull request #155 from Indev450/rankingsrefactor
Refactor Rankings Drawing
2025-03-23 17:10:23 +01:00
Alug fd9902afd6 15 step increment Zzz... 2025-03-23 16:59:02 +01:00
Alug eb936a6f94 simplify the slider stuff slightly 2025-03-23 16:57:20 +01:00
Alug 184d171b74 make stretchfactor a cv_float again
for easier handling
now that we can use sliders this should hopefully work without issues
2025-03-23 16:57:17 +01:00
Alug dc8b9ffc7c make saltyhop height use slider 2025-03-23 16:57:14 +01:00
Alug f7fbb8b859 make menu sliders work on CV_FLOAT 2025-03-23 16:57:11 +01:00
Alug 8fce9e39a0 changable saltyhop height
dunno, it looks a bit off on higher values since the animation duration is always the same
also cv_float is weird
2025-03-23 16:57:08 +01:00
Alug dee640d32f forger P_IsLocalPlayer exists 2025-03-21 15:56:18 +01:00
Alug 0af6703c08 hack for stick input display if you watch some other player Zzz.... 2025-03-21 15:53:20 +01:00
Alug b0d6ccf572 dont run discord rpc callbacks every frame
ditto
2025-03-21 00:21:49 +01:00
Alug 9e3dcbd041 dont update sounds every frame
if this would break ppl on 35fps cap wouldve been always screwed lel
2025-03-21 00:21:46 +01:00
Alug 9283b443c1 kill this, i want vanilla behaviour 2025-03-20 19:42:10 +01:00
Alug 189a28f349 delet player_joining 2025-03-20 19:42:07 +01:00
Alug e02288b689 kill this, i want vanilla behaviour 2025-03-20 19:40:49 +01:00
Alug a90c44c7d8 delet player_joining 2025-03-20 19:40:43 +01:00
Alug eaac6cdbb3 Merge remote-tracking branch 'origin/serverstuttertest' into Saturn-Next 2025-03-20 17:49:29 +01:00
Alug aba138447c continue in P_NetArchiveThinkers lööp
if thinker is P_RemoveThinkerDelayed
2025-03-20 17:31:57 +01:00
indev 28af4e5277 Only reset replay query in M_ReplayHut if replay hut wasn't open previously 2025-03-20 01:16:57 +03:00
Alug a662a0a68f Revert "disable jit compilation for now"
This reverts commit 11f5d2fb07.
2025-03-17 18:52:27 +01:00
Alug 5aa081a01b Revert "Use PU_LEVEL for texture caching"
This reverts commit 5ecfc5e09d.
2025-03-17 18:43:45 +01:00
Alug 24e149634d remove this again 2025-03-17 18:41:29 +01:00
Alug 635b4110a4 move patch null checks into the patch drawers instead 2025-03-17 18:41:27 +01:00
Alug 56ddb5da23 revert this too just in case 2025-03-17 18:26:42 +01:00
GenericHeroGuy ece1122733 Fix tonumber leaking doubles when JITted 2025-03-17 17:18:33 +01:00
Alug dd70743bae make the banana throw speen be seperate from sloperoll toggle
were technically not rolling by slopes here
2025-03-17 15:56:22 +01:00
Alug 5ab7e8dd80 forgor about saltyhop condition 2025-03-17 15:56:14 +01:00
Alug c7473ddf42 add function to check if mobj should sloperoll
makes things slightly cleaner and we can apply sloperoll dist to everything
should probably save some time esp with the trailing item z calc
+ P_MobjPitchAndRoll should be able to be called always since it also does stuff seperate from sloperoll
2025-03-17 15:56:11 +01:00
Alug 0119eeb575 use quickcamdist for K_RollMobjBySlopes
we dont need this to be accurate at all
and its slightly faster so
2025-03-17 14:21:49 +01:00
Alug dc53fac53d fix midair driftsparks
somehow accidentally ended up doing what RR does lmao
hope this doesent do anything funky synchwise
2025-03-17 13:43:09 +01:00
Alug d86179f1a4 kill bunch of redundant calcs for some kart visual effects 2025-03-17 13:43:06 +01:00
Alug 53a73e9893 safe some time by returning early in K_RollMobjBySlopes
in case those mobjs are out of our set distance
2025-03-17 12:40:33 +01:00
Alug 3efb6c0241 dont let saltyhop stop our drift sounds for 1 tic
if you disable its sound effects
2025-03-17 11:15:27 +01:00
Alug f6535c8ad3 noo dont free our realpatch randomly
this used to be Z_Unlock which did nothing
checked against srb2 and rr and this should not be freed normally
2025-03-16 21:16:39 +01:00
indev 6d7035afac Fix gl_extensions being truncated when there are too many extensions 2025-03-16 17:28:30 +03:00
Alug 2c5c08e562 did not mean to push this 2025-03-16 15:25:28 +01:00
Alug 11f5d2fb07 disable jit compilation for now 2025-03-16 14:15:24 +01:00
Alug 74ee853b49 just skip this loop if P_RemoveThinkerDelayed
we cant do anything there anyways, so this might be ever so slightly faster
2025-03-16 13:27:13 +01:00
Alug 0af6c133c5 only do the nvidia fbo hack when sdl_renderer is "x11"
we dont need this on the wayland renderer anymore
2025-03-16 13:23:49 +01:00
Alug cefad32181 dont I_Error when direct downloader failed to open a file
just cancle the transfer and kick the receiving client lel
2025-03-16 13:19:28 +01:00
Alug 2b1eb51d94 goddamit 2025-03-16 12:24:53 +01:00
Alug 1df7d07abc oops 2025-03-16 12:24:00 +01:00
Alug fca3bb3cc3 slight cleanup HWR_ObjectLightLevelPost 2025-03-16 12:18:10 +01:00
Alug 45a7689518 Merge branch 'rankingsrefactor' into Saturn-Testing 2025-03-16 11:51:46 +01:00
Alug 16b74190e5 put player into var in rankingsdrawer 2025-03-16 11:22:15 +01:00
Alug 2f33b0eb79 Merge branch 'Saturn-Next' into rankingsrefactor 2025-03-16 11:13:02 +01:00
Alug cf64aa3823 Merge branch 'Saturn-Next' into Saturn-Testing 2025-03-16 11:09:25 +01:00
Alug 8c8fe976d7 dumb hack for input display in replays
since we cant get playerinput, just use throwdir to get some appoximation
maybe todo: idk maybe squeeze smth into replays?
2025-03-16 11:09:02 +01:00
Alug 8c43857bd3 add extra check to save a little bit of time 2025-03-16 11:08:55 +01:00
indev 380c8f65c8 aatree is used both with HWRENDER and ROTSPRITE, so just don't guard its include 2025-03-16 11:08:39 +01:00
Alug 5ec0af62d9 safe 2x "va" lel
V_GetSkincolorChar is unused now lel
2025-03-16 11:08:36 +01:00
Alug 3762b18159 just use splitflags 2025-03-16 11:08:31 +01:00
Alug b6de9e03d7 doesent need be an array 2025-03-16 11:08:27 +01:00
Alug 486f386f35 New input display option for stick display
thy neppy! https://codeberg.org/NepDisk/blankart/commit/52601bdfc2a6dd8916c3c401d70128d2ca11a1ff#diff-baf740b84aa99188fc2e5c1cb93e59fa2e319ff3

+ hellish abomination code cause kart
2025-03-16 11:08:23 +01:00
Alug 848d84147f Merge branch 'minispin' into Saturn-Next 2025-03-16 11:06:41 +01:00
Alug a980784771 replace magic number 2025-03-16 11:06:06 +01:00
Alug 0f675661a6 bruh 2025-03-16 11:05:28 +01:00
Alug 30deff7697 fix conflicts for minimap spinouts + some refactoring 2025-03-16 11:05:23 +01:00
Anonimus 21c267b319 Refactor to prevent desynchs 2025-03-16 11:05:19 +01:00
Anonimus cce363c8c8 Add a cvar for minimap icon spinouts 2025-03-16 11:05:15 +01:00
Alug 944d8187ba this needs be multiplied by 8 lel oops 2025-03-15 18:41:45 +01:00
Alug c9b3459a48 add extra check to save a little bit of time 2025-03-15 16:51:09 +01:00
Alug ec0a1a97e0 make this slightly look better lel 2025-03-15 16:33:58 +01:00
Alug dd81b2cc41 fix no previous prototype warning
:chaosleep:
2025-03-15 16:31:16 +01:00
Alug 7d58887138 replace magic number 2025-03-15 16:30:52 +01:00
Alug a79f2fa90a bruh 2025-03-15 16:29:54 +01:00
Alug 473c70fd70 Merge branch 'gitpls' into Saturn-Testing 2025-03-15 16:27:00 +01:00
Alug bbd967adad fix conflicts for minimap spinouts + some refactoring 2025-03-15 16:26:43 +01:00
Anonimus f55fdbf630 Refactor to prevent desynchs 2025-03-15 16:21:15 +01:00
Anonimus 6b23c70e37 Add a cvar for minimap icon spinouts 2025-03-15 16:21:05 +01:00
Alug 1d4e6ca825 Merge branch 'Saturn-Testing' into gitpls 2025-03-15 16:18:37 +01:00
indev deeae1ef56 aatree is used both with HWRENDER and ROTSPRITE, so just don't guard its include 2025-03-15 16:46:56 +03:00
Alug ed87c40d13 safe 2x "va" lel
V_GetSkincolorChar is unused now lel
2025-03-15 14:48:48 +01:00
Alug ac28e587e2 just use splitflags 2025-03-14 21:00:12 +01:00
Alug 55d2d2cce4 doesent need be an array 2025-03-14 20:56:57 +01:00
Alug f3d5c3f698 New input display option for stick display
thy neppy! https://codeberg.org/NepDisk/blankart/commit/52601bdfc2a6dd8916c3c401d70128d2ca11a1ff#diff-baf740b84aa99188fc2e5c1cb93e59fa2e319ff3

+ hellish abomination code cause kart
2025-03-14 20:46:52 +01:00
Alug d92ba0987b Merge branch 'Saturn-Next' into Saturn-Testing 2025-03-12 07:01:46 +01:00
Alug c081349f9b make freecam speed per splitscreenplayer + add to menu 2025-03-12 07:01:19 +01:00
Alug 88b78a5bf7 delet cam rotspeed cvar
lmao forgor this did nothing
2025-03-12 07:01:15 +01:00
indev cf9e7ff37b Add toggle for look up/down, also don't trigger it during countdown or when player is respawning 2025-03-11 14:59:24 +01:00
Alug 8775e5abc1 fix compile without ROTSPRITE 2025-03-10 17:53:17 +01:00
Alug 9b3fde7a19 fix compile without ROTSPRITE 2025-03-10 17:52:46 +01:00
Alug fe6b5a83f8 consolidate those 2025-03-10 17:29:20 +01:00
Alug e39a9c190a consolidate those 2025-03-10 17:29:13 +01:00
Alug 30fff79bd0 make this slightly less ugly 2025-03-10 14:59:46 +01:00
Alug 7781237c56 add cvar to force mouse grab and hide 2025-03-10 14:56:23 +01:00
Alug 288bcbd419 bruh 2025-03-10 14:06:18 +01:00
Alug 51408010e8 bruh 2025-03-10 14:06:12 +01:00
Alug 7aeaf76062 Merge branch 'Saturn-Next' into Saturn-Testing 2025-03-10 14:05:38 +01:00
Alug 4465b05bc8 p_sight stuff idk 2025-03-10 14:04:27 +01:00
indev 537aa30cfe Don't reset demo recording if player is still entering replay name in intermission 2025-03-10 13:16:44 +01:00
Alug e16ef100b8 try make this slightly more readable 2025-03-10 13:10:07 +01:00
indev a277d70ce2 Don't force specific characters in M_HandleConnectIP 2025-03-10 13:06:03 +01:00
Alug 6932a52463 change speelines blending condition
uuuhh, so, if you have sneakerboost they always will apply additive blending
otherwise if you go really fast (faster than sneakerboost)
2025-03-10 13:05:55 +01:00
Alug a686b29a7a only apply additive blend to speedlines when any kind of boost is happening
to emphasize that ure boosting or smth
2025-03-10 13:05:19 +01:00
Alug c133f0d751 add additive blending to fast speedlines 2025-03-10 13:05:09 +01:00
Alug 5ff125a429 spawn speedlines with non synched rng if ur in eggbox status
and well only if you have colourisation enabled
2025-03-10 13:05:01 +01:00
Alug b8cab84d2a super smol optimization 2025-03-10 13:04:11 +01:00
Alug d2975d2dcb toggle for keeping driftsparks while in air 2025-03-10 13:02:23 +01:00
indev e802ecf0b5 Add SHORT here for consistency with other code 2025-03-10 13:01:35 +01:00
indev 71378285b2 Check for missing patch earlier in W_CachePatchNameRotated 2025-03-10 13:01:32 +01:00
Alug ffe9a89552 remove erronous cv_sloperoll checks
this cvar is meant to be only the toggle for the player slope rotation, however, spriterotation should still be usable in any case with this disabled. the global toggle "cv_spriteroll" has been removed
2025-03-10 13:01:25 +01:00
indev ac9926eb17 spriteroll doesn't exist now :p 2025-03-10 13:01:19 +01:00
Anonimus 0b57389dcd HUD patch rotation 2025-03-10 13:01:16 +01:00
Alug e2b42b1647 delet memcpy doing nothing 2025-03-10 13:00:33 +01:00
Alug ad39ade286 split screentexture width and height
most displays are widescreen, so their width and height differ quite significantly, this may make the overall screentexture alot smaller
2025-03-10 12:59:25 +01:00
Alug 0ed21a171d remove stray bool in demovars struct 2025-03-10 12:58:18 +01:00
Alug ad65e3e968 allocate some extra buffer for demobuffer
incase this might overflow that we dont write to unvalid memory
thx indev <3
2025-03-10 12:56:51 +01:00
Alug d55d7e0efc smol replay fixes from rr 2025-03-10 12:54:39 +01:00
Alug ec7fa833d5 only ever touch this if player has a mobj
angleturn is broken in kart
2025-03-10 12:53:44 +01:00
Alug 2e6c1d9df4 revert this behaviour
be more like vanilla
2025-03-10 12:51:50 +01:00
Alug 7d55c46979 make P_InitCamera slightly prettier 2025-03-10 12:50:10 +01:00
Alug af2b22e91f cleanup P_SetupLevel
removed bunch of pointless vars, moved some things into functions
changed some stuff to be boolean
2025-03-10 12:50:03 +01:00
Alug e983174559 another check for realpatch lel 2025-03-10 12:47:46 +01:00
Alug 006bda5bfc Merge branch 'Saturn-Next' into serverstuttertest 2025-03-09 16:27:22 +01:00
indev 148b76f4a3 Add SHORT here for consistency with other code 2025-03-08 18:14:26 +03:00
indev 422e63a93d Check for missing patch earlier in W_CachePatchNameRotated 2025-03-08 18:14:26 +03:00
Alug 2aff0ed03a show smol notice in stat and ra menu when game is modded 2025-03-07 23:35:32 +01:00
Alug 341d592001 show smol notice in stat and ra menu when game is modded 2025-03-07 14:49:15 +01:00
Alug 568890e9b3 remove erronous cv_sloperoll checks
this cvar is meant to be only the toggle for the player slope rotation, however, spriterotation should still be usable in any case with this disabled. the global toggle "cv_spriteroll" has been removed
i kinda forgot to remove those when i did some refactoring ealier
2025-03-07 10:07:31 +01:00
indev a1e9cacb9f spriteroll doesn't exist now :p 2025-03-06 19:43:24 +03:00
Anonimus a258379a3b HUD patch rotation 2025-03-06 19:34:52 +03:00
Alug 3bde3b04ae try just passing the sector + add 50 trillion extra checks
idk anymore but this is literally now how vanilla kart behaved
2025-03-05 11:23:40 +01:00
Alug 9e070a6516 tiny cleanup SCR_DisplayTicRate 2025-03-05 11:22:51 +01:00
Alug 8d9c6ec65f localping color was lost 2025-03-05 11:21:22 +01:00
Alug ec263086d8 use lööps for those to look a little better lel 2025-03-05 11:18:32 +01:00
Alug 06ccb4f7b0 dont reset cam using f12 when only one player is ingame 2025-03-05 11:18:23 +01:00
Alug 95daa7eacc just set this directly
no need for all of this
2025-03-05 11:18:05 +01:00
Alug d18afa1781 dont run this if cam tilt disabled 2025-03-05 11:16:56 +01:00
Alug 883c382a1d slightly refactor chasecam stuff again 2025-03-05 11:16:23 +01:00
Alug c82eb25628 where did this come from 2025-03-05 11:14:45 +01:00
Alug 8c0294898e fix issues with models
- Sloperotation was weird, it now uses what we calculate in K_RollMobjsBySlopes
- in general uses srb2s newer system
- alot of cleanup of pointless variables
- sprinfo pivots should now work
- removed roillmodel since it was smth weird and broke rollangle
2025-03-05 11:14:06 +01:00
Alug d09c8bb8fd ss->touching_preciplist deez 2025-03-05 11:13:43 +01:00
Alug d397a07d96 dont recalc if precip sector didnt move
forgor i can just check this
2025-03-05 11:13:40 +01:00
Alug 96f842fd96 only need to recalc this once a tic
precip thinker thinks slightly more often, but we really dont need that tbh
2025-03-05 11:13:34 +01:00
Alug 105b3f37eb only recalc floorz for visible precip mobjs
before it apparently recalced it a crapton for the crapton not visible precipmobjs, which even on vanilla maps led to noticable jitter
2025-03-05 11:13:26 +01:00
Alug 24387b50bd missed this for keepmusic 2025-03-05 11:12:22 +01:00
Alug 0c4661c2a7 remove this 2025-03-05 11:11:27 +01:00
Alug 178c942dc6 pass slope to K_RollMobjBySlopes
removing some code dupe in the process and allows some more flexability
2025-03-05 11:09:19 +01:00
Alug 47d41e2c2a refactor M_DrawSlider
apparently fixes weird framerate issues with gamma slider
also shows the values on sliders
2025-03-05 11:09:01 +01:00
Alug 4d7c223565 Have replay recording of "hits" use the reference count system
https://git.srb2.org/KartKrew/RingRacers/-/commit/fa8bffabfc51ea1d7be86d833190bb7dcf494fca
2025-03-05 11:08:18 +01:00
Alug e3af2b0d58 better prints if a replay desynchs 2025-03-05 11:08:06 +01:00
Alug f4ed9b43cd refactor keepmusic again
- puts all music stuff into a struct "music_t"
- should hopefully fix numerous issues with keepmusic and skipintromusic
- keepmusic can now "recover" from a few cases, like restarting the map from intermission
2025-03-05 11:06:57 +01:00
Alug 55cd0fa08f ensure proper cast 2025-03-05 10:59:34 +01:00
Alug 8cce4f3ccf whitespace lul 2025-03-05 10:59:18 +01:00
Alug 1e21f6a378 only do mouse stuff if we wanna do mouse stuff 2025-03-05 10:59:03 +01:00
Alug a0af6f2461 remove unused stuff i_video 2025-03-05 10:57:55 +01:00
Alug 390e3db25d tiny cleanup keyboard stuff 2025-03-05 10:55:16 +01:00
Alug 3d9bb65e62 Merge pull request #157 from Indev450/gentlemens
Offline ping System
2025-03-05 10:53:10 +01:00
Alug 4f88a97739 inline a few hooklib functions 2025-03-05 10:52:34 +01:00
Alug de977167ca pointless inline 2025-03-05 10:52:15 +01:00
Alug 84028f52d8 few instances of int float conversions i forgor 2025-03-05 10:50:35 +01:00
Alug f693ca8333 optimize ogl drawer functions
by avoiding excessive interger to float conversions
2025-03-05 10:50:28 +01:00
Alug 64dd17d75d ensure proper casting 2025-03-05 10:48:25 +01:00
Alug b3ce832753 check for shader cvar ealier 2025-03-05 10:47:59 +01:00
Alug b9c89b381b nullcheck for realpatch 2025-03-05 10:47:12 +01:00
Alug c8a0a2bdae dont need to pass the viewnumber around 2025-03-05 10:46:30 +01:00
Alug 84d3d0d891 smol cleanup portal code again 2025-03-05 10:44:56 +01:00
Alug fe42f1bd3e change syntax
will stay uppercase to not conflict with some crap Zzz...
2025-03-05 10:41:09 +01:00
Alug b5803e8787 move this after the early returns
save some time when drifting
2025-03-05 10:40:10 +01:00
Alug 9f7aca5fe3 lmao 2025-03-05 10:39:57 +01:00
Alug ac8e25865e turn driftsparkGrowTimer into a player field
less hacky and avoids 3 loops lol
2025-03-05 10:39:52 +01:00
Alug 02b411f7ee kill redundant laptime code
just use the newer one
2025-03-05 10:39:41 +01:00
Alug 9dee892244 more kart hud cleanup
also removes erronous nametag toggles
2025-03-05 10:38:18 +01:00
Alug e5d832a642 slight cleanup kart hud 2025-03-05 10:38:14 +01:00
Alug b069c2cb3e tiny d_main cleanup 2025-03-05 10:37:10 +01:00
Alug 7235f9864e delete nonfunctional second mouse stuff 2025-03-05 10:34:18 +01:00
Alug e4e1f0c645 revert all the server ticking stuff 2025-03-05 10:33:49 +01:00
Alug 54747c6b53 Prevent dropped ticcmds due to interp timing jutter
kinda figured out what this does, and makes clients on uncapped listen servers alot less prone to drop gametics
2025-03-05 10:32:37 +01:00
Alug 9ed242cde2 where did this go? lel 2025-03-05 10:27:09 +01:00
Alug 9bcfe63e3e Merge branch 'Saturn-Next' into gentlemens 2025-03-05 10:25:46 +01:00
Alug b38460473d Merge pull request #153 from Indev450/freecamstuffs
Replace spec cam with Freecam + "democam" (now freecam) refactor
2025-03-05 10:24:46 +01:00
Alug fd77beabe1 Merge remote-tracking branch 'origin/Saturn' into Saturn-Next 2025-03-05 10:24:22 +01:00
Alug 5dfab42fcf Merge pull request #158 from Chearii/blendmodes
Blending modes (and a few refactors)
2025-03-05 10:12:55 +01:00
Alug 72d94b77ac fix blendmode oopsie 2025-03-04 19:46:05 -05:00
Chearii 54d73206ca Fix `hw_draw` gaffe 2025-03-04 19:42:59 -05:00
Alug 637499dcd7 use memcmp for R_IsEmptyLine
:chonkbuncle:
this actually is quite a little faster too
2025-03-05 00:09:35 +01:00
Alug 1e79d464b0 fix blendmode oopsie 2025-03-05 00:08:36 +01:00
Alug 932381052b try make this slightly more readable 2025-03-04 19:27:51 +01:00
Alug 367c4179fd change syntax
will stay uppercase to not conflict with some crap Zzz...
2025-03-04 19:14:57 +01:00
Alug 0fc9f2ec00 smth smth magic number 2025-03-04 19:14:54 +01:00
Alug 1646014561 pointless inline 2025-03-03 11:20:17 +01:00
Alug 9152ee826d empty function lel 2025-03-03 11:16:20 +01:00
Alug 08ce1b54ca delet memcpy doing nothing 2025-03-03 11:16:18 +01:00
Alug 37b74be3bb tiny cleanup keyboard stuff 2025-03-03 10:11:28 +01:00
Alug fac2e8ec98 tiny cleanup keyboard stuff 2025-03-03 09:56:49 +01:00
Alug 58fd729bec temp revert nanosleep for nix 2025-03-03 00:14:25 +01:00
GenericHeroGuy 0c2244d668 Figured out why that doesn't work 2025-03-03 01:34:24 +03:00
GenericHeroGuy 40d0d9d2b8 Properly constant-fold (0 or 123)
But not (0 and 123). Yay bug compatibility!
2025-03-03 01:34:24 +03:00
Alug 3ce78064ed guh 2025-03-02 23:29:07 +01:00
Alug 9db8d05206 muh huh truncuate my butt mingw32 2025-03-02 23:29:05 +01:00
indev 22a0ce1e20 Revert "Convert parsed numbers to doubles first in lj_strscan_scan"
This reverts commit 3f8fb365a0.
2025-03-03 01:04:06 +03:00
indev 3ff8a920c0 Revert "Restore setnumV for fmt == STRSCAN_NUM in lj_strscan_scan"
This reverts commit 644cd36286.
2025-03-03 01:04:06 +03:00
Alug 912e340028 bugger off UPX
dont want compressed executables, they BREAK backtraces
2025-03-02 23:02:54 +01:00
Alug 751885128a inlining failed in call to my butt 2025-03-02 22:11:50 +01:00
indev 644cd36286 Restore setnumV for fmt == STRSCAN_NUM in lj_strscan_scan 2025-03-03 00:01:06 +03:00
Alug 91601c8a2d forgor cleanup 2025-03-02 21:45:32 +01:00
Alug f70351fc75 screw you music system
no fucking clue but this fixes stuff showing the musiccredit too early on reload
2025-03-02 21:42:14 +01:00
Alug 976cb1ff25 lul 2025-03-02 21:41:58 +01:00
indev 3f8fb365a0 Convert parsed numbers to doubles first in lj_strscan_scan
Regular blua does something similar to that, and it changes how large
numeric literals are parsed. It's very rare for those to be used but can
still in theory cause synch issues between blua and bluajit clients
2025-03-02 14:48:12 +03:00
indev 5cfbc8ce48 Delet goto from bluajit, since regular blua doesn't support that 2025-03-01 03:44:15 +03:00
indev 89033de836 Fix water and fog shader missing #version 2025-02-28 22:31:27 +03:00
Alug ff4c6ea950 more kart hud cleanup
also removes erronous nametag toggles
2025-02-28 18:55:52 +01:00
indev c3f32da557 Don't reset demo recording if player is still entering replay name in intermission 2025-02-28 18:49:02 +03:00
Alug 9d7930ed3c slight cleanup kart hud 2025-02-28 09:51:51 +01:00
Alug 0dd54b112e add airsparks to saturn options 2025-02-27 19:46:04 +01:00
Alug b10a502b0e Merge remote-tracking branch 'origin/serverstuttertest' into Saturn-Testing
Rather not have this cause dumb issues like every single other time interp and ticking was touched, so just behave like vanilla
2025-02-27 19:41:24 +01:00
Alug 8f342110c9 color ping numbers for color hud 2025-02-27 19:40:32 +01:00
Alug 980d59c9be color ping numbers for color hud 2025-02-27 19:37:29 +01:00
Alug 6d977ea949 Revert "better M_Random implementation"
This reverts commit a353dceaa3.
2025-02-27 19:34:35 +01:00
Alug e723948756 do this in a less horrifieng manner 2025-02-27 19:12:07 +01:00
Alug d95e3c6e04 use floor shader for everything when paletterender disabled
just like vanilla!
not the way to do this properly, but whatever
2025-02-27 18:51:05 +01:00
Alug 7fdf986df4 actually can just use this directly 2025-02-26 13:04:35 +01:00
Alug 6b049ad86d turn this into a switch
else if stinky
2025-02-26 11:14:19 +01:00
indev a0fc6f7e22 Add toggle for look up/down, also don't trigger it during countdown or when player is respawning 2025-02-23 14:21:30 +03:00
Alug d0890c45e2 use lj_char_isspace 2025-02-21 22:31:32 +01:00
indev 93b3926008 Allow trailing spaces in lj_strscan_scan 2025-02-20 23:32:05 +03:00
Alug 3fe94b68a3 toggle for keeping driftsparks while in air 2025-02-19 12:05:56 +01:00
Alug 34f5a58692 reuse var 2025-02-19 12:05:52 +01:00
Alug b605c8e654 few instances of int float conversions i forgor 2025-02-19 12:05:50 +01:00
Alug 95df997198 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2025-02-19 12:05:44 +01:00
indev 51ba4f1ec8 Merge branch 'Saturn-Next' into serverstuttertest 2025-02-18 19:14:52 +03:00
indev 1af9903439 Fix compilation with old sdl 2025-02-18 12:29:47 +03:00
Alug 457186fe40 Merge branch 'Saturn-Next' into Saturn-Testing 2025-02-17 21:34:18 +01:00
Alug b4269cba3e properly init numcontrollers 2025-02-17 21:34:09 +01:00
Alug 70a985e274 dont check number of controllers every frame 2025-02-17 21:34:06 +01:00
Alug f15f24914d initialize this 2025-02-17 21:24:28 +01:00
Alug a30aad04da Merge branch 'Saturn-Next' into serverstuttertest 2025-02-17 20:55:11 +01:00
Alug ad74af426b Merge branch 'Saturn-Next' into Saturn-Testing 2025-02-17 20:55:02 +01:00
Alug 75d69dc90d skip a bunch of stuff in dedi/render_none 2025-02-17 20:54:56 +01:00
Alug 115eea3828 revert all the server ticking stuff 2025-02-17 20:40:22 +01:00
Alug 7322d553ba Revert "Merge pull request #151 from Indev450/fixdupeacks"
This reverts commit 1fabc14ac9, reversing
changes made to d9492eee28.
2025-02-17 18:05:30 +01:00
Alug 5bf24e10b2 Merge remote-tracking branch 'origin/oglprecache' into Saturn-Testing 2025-02-17 17:24:10 +01:00
Alug 10f1507366 Revert "Merge pull request #151 from Indev450/fixdupeacks"
This reverts commit 1fabc14ac9, reversing
changes made to d9492eee28.
2025-02-17 18:04:38 +01:00
GenericHeroGuy badb8c7914 Add cleanjit target
Recompiling the whole game after changing a single flag is pretty tiring
2025-02-17 17:43:01 +01:00
GenericHeroGuy 13b2f6534e Fix some functions leaking doubles in INTONLY 2025-02-17 17:42:55 +01:00
Alug c78ecd8453 Revert "Fix "attempt to perform arithmetic on a number value" errors"
This reverts commit a9429caf09.
2025-02-17 17:42:49 +01:00
Alug b61e29ef0f die json 2025-02-17 17:06:36 +01:00
Alug ca555e7ea6 fix some typos lel 2025-02-17 17:02:09 +01:00
Alug a1f254a0bc ensure proper casting for elapsedseconds 2025-02-17 16:59:50 +01:00
indev a9429caf09 Fix "attempt to perform arithmetic on a number value" errors
Not best fix but i don't know why setnumV breaks here
2025-02-17 14:21:44 +03:00
Alug 7bf50c69e2 update software precache
spit stuff into functions
handle animated textures and flats too
2025-02-16 16:47:15 +01:00
Alug fcd8cfc4d5 better handling of sprite angles in precache
only cache stuff that we need
2025-02-16 16:38:56 +01:00
indev 9efd24e376 camara 2025-02-16 17:49:43 +03:00
Alug 5b0a662b40 skip checking sectors and lines multiple times 2025-02-16 15:38:16 +01:00
Alug 255c8437d7 slightly optimize ogl precaching
cleanup too
2025-02-16 15:38:11 +01:00
Alug 83b242a727 make texture precache toggable 2025-02-16 15:38:08 +01:00
Alug 4ef6c2ea34 guard this in sprite precache 2025-02-16 15:38:05 +01:00
Alug 29b93f63f7 precache animated textures too 2025-02-15 16:22:45 +01:00
Alug a403d96204 also precache animated flats
i have no clue how tf animated textures work
2025-02-15 16:22:42 +01:00
Alug c1a187084d dedicated server does not need to call texture precaching
prob leftover from back in the day, it doesent do anything at all anyways
also gives it a less ambigous name
2025-02-15 02:16:05 +01:00
Alug 7808dc5740 precache (most) sprites on ogl leveload 2025-02-15 02:16:02 +01:00
Alug 4417eabdc7 move texture precache into own function
unnesting stuff
2025-02-15 02:15:58 +01:00
Alug 119b18521f oops should be i 2025-02-15 02:15:55 +01:00
Alug ccefafd172 load both encore and non encore tex 2025-02-15 02:15:52 +01:00
Alug a75bf1b2bb move precache into hw_cache.c 2025-02-15 02:15:49 +01:00
Alug 15a0b9ab93 handle encore in ogl precaching
thx indev for help <3
2025-02-15 02:15:45 +01:00
Alug 9bed58a863 this is incorrect, dont need it anyways 2025-02-15 02:15:42 +01:00
Alug 19dd5ddbae disable ogl precaching on encore mode
noencore things need to be handled
for now just disable it until i figure out how to check for lineflags here
2025-02-15 02:15:39 +01:00
Alug 8cd636c213 precache level flats and textures on mapload in opengl
not entirely sure if this works correctly with encore, have to test a little
TODO: move this into hwr file or smth
2025-02-15 02:15:36 +01:00
Alug d156b716f6 add toggle for blendmode player effects
otherwise people will yell
enabled by default for now for demonstration purposes
2025-02-13 18:41:58 +01:00
Alug 3f910824e8 make P_InitCamera slightly prettier 2025-02-12 17:55:31 +01:00
Alug 3509b05d1e cleanup P_SetupLevel
removed bunch of pointless vars, moved some things into functions
changed some stuff to be boolean
2025-02-12 17:38:41 +01:00
Alug 164bd18234 split screentexture width and height
most displays are widescreen, so their width and height differ quite significantly, this may make the overall screentexture alot smaller
2025-02-12 14:34:36 +01:00
Alug 1eae8c6ea3 use correct type in P_InitMinimapInfo 2025-02-12 12:01:05 +01:00
Alug 14881e968a simplify local ping display 2025-02-12 12:00:54 +01:00
Alug fcc9cdcaef use correct type in P_InitMinimapInfo 2025-02-12 11:56:51 +01:00
Alug b32785f88c revert adding netbuffer to local ping
dont wanna revert the commit, since i keep the new way of determining the ping display, since its less awful than before
2025-02-11 15:01:57 +01:00
Alug 8c9808b2d6 fix online player localping display 2025-02-10 21:00:18 +01:00
Alug 5f0b2b0604 fix some level userdata not being invalidated
maybe fixed the random issues we had with the server?
2025-02-10 20:53:43 +01:00
Alug a80f520c38 fix some level userdata not being invalidated
maybe fixed the random issues we had with the server?
2025-02-10 20:53:33 +01:00
Alug 34c517defc dont add buffer delay when local delay is disabled 2025-02-10 19:06:09 +01:00
Alug d5a762f35c account for netticbuffer in offline ping
this makes it more accurately reflect how it would behave in an online game
2025-02-10 18:13:08 +01:00
Alug ab6ec6d11e add some comments + smol cleanup again for keepmusic 2025-02-10 18:13:01 +01:00
Alug c8a629d8a5 extend mapmusic_t struct and rename to music_t
didnt see that all the music stuff was more or less using the same things
2025-02-10 18:12:57 +01:00
Alug 71805500ca clean this up a bit 2025-02-10 18:12:54 +01:00
Alug 5e7c12dac7 optimize ogl drawer functions
by avoiding excessive interger to float conversions
2025-02-08 23:26:13 +01:00
Alug 29817d6627 fix clang uninitialised warning 2025-02-08 23:26:10 +01:00
Alug c010b7319e fix oopsie with mapmusic in glib 2025-02-08 18:10:02 +01:00
Alug 27b190cadf this should be static 2025-02-08 17:52:47 +01:00
Alug e1a02a0729 throw music vars into a struct "mapmusic_t"
simplifies everything, keepmusic vars use it too
2025-02-08 17:52:44 +01:00
Alug eb512022e0 handle music reloadreset stuff in seperate function
just tryin make it less ugly
2025-02-08 17:52:18 +01:00
Alug 0aec9a85bb rename this 2025-02-08 17:51:56 +01:00
Alug c1743eb18d Revert "Update position nums to use additive"
for now since it doesent work that well on bright maps, yes there is a mapheader , but cant expect anyone to go trough all maps and add it

This reverts commit 323fbb4713.
2025-02-08 17:21:02 +01:00
Alug ccd2855e01 always save keepmusic stuff
but set keepmusresume in stopmusic Zzz...
2025-02-08 16:47:41 +01:00
Alug d3338f5d81 attemp to fix playerreborn resetting keepmusic 2025-02-08 16:33:06 +01:00
Alug 73ea95ae61 just pass the controller directly
simplifies this alot
2025-02-08 15:44:20 +01:00
Alug 6532dacbb1 change speelines blending condition
uuuhh, so, if you have sneakerboost they always will apply additive blending
otherwise if you go really fast (faster than sneakerboost)
2025-02-08 15:36:49 +01:00
indev b42338ea38 Don't force specific characters in M_HandleConnectIP 2025-02-07 20:03:25 +03:00
Alug 8f07f183dd just pass the controller directly
simplifies this alot
2025-02-07 15:57:35 +01:00
Alug e66aedaaa1 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2025-02-07 15:57:31 +01:00
indev affa366f7d Merge pull request #159 from chromaticpipe/proxy-makefile
Add a proxy Makefile at the top level
2025-02-07 02:30:48 +03:00
chromaticpipe 7d62b330d0 Add proxy makefile at top level 2025-02-06 16:15:16 -06:00
Alug 9ac9db0fe0 only apply additive blend to speedlines when any kind of boost is happening
to emphasize that ure boosting or smth
2025-02-06 17:25:43 +01:00
Alug b398dacf29 update controller led when connecting a controller 2025-02-06 14:43:35 +01:00
Alug 1b610242bc update controller led when connecting a controller 2025-02-06 14:43:28 +01:00
Alug a6a53f6b9c dont pass bogus values to I_GamepadRumble and I_SetGamepadIndicatorColor
- fixes rumble and led stuff not working after hotplugging
- also fixes sdl2-compat breaking
- i hate karts controller code
2025-02-06 03:01:51 +01:00
Alug be58dd19c1 dont pass bogus values to I_GamepadRumble and I_SetGamepadIndicatorColor
- fixes rumble and led stuff not working after hotplugging
- also fixes sdl2-compat breaking
- i hate karts controller code
2025-02-06 03:01:40 +01:00
Alug 0d2a1bac36 Revert ""kill" seenames"
This reverts commit 93a1a432d7.
2025-02-05 15:33:27 +01:00
Alug f67815b0d3 also add additive to boostflame 2025-02-05 00:36:05 +01:00
Alug d4c986fb84 no need pass this stuff 2025-02-04 23:12:35 +01:00
Alug b24a7e3faf forgor 2025-02-04 23:11:05 +01:00
Alug 18a78e2892 test add blendmodes to a bunch of player effects
going see how it looks
2025-02-04 23:06:08 +01:00
Alug 323fbb4713 Update position nums to use additive
https://git.srb2.org/KartKrew/RingRacers/-/commit/4d108930a94f44dbc916d1116eab8421e669e4b6
2025-02-04 23:05:07 +01:00
Alug bd6b699a1e keep track of map music
this is kinda horrible, but allows musicchanges which replace map music/tunes to also work with this system
2025-02-04 23:03:57 +01:00
Alug 4795af29ea reset keepmusposition in tunes command
mapmusic will be reset the moment the gamestate changes, so whatever was changed with tunes will not be kept sadly
2025-02-04 23:03:55 +01:00
Alug f76a62b7d2 save music position and try to fade back into mapmusic when the music changed from mapmusic when keepmusic is enabled
uhh idk how to explain lel
hope this doesent explode
2025-02-04 23:03:51 +01:00
Alug da7d200d92 skip intro sounds also with keepmusic lel 2025-02-04 23:03:47 +01:00
Alug 2de44e7563 check for realpatch here too 2025-02-04 23:03:08 +01:00
Alug f30cdc1933 stuff that was missing 2025-02-04 23:02:58 +01:00
Alug f9ccacf118 handle ogl lightlevelpost similar to rr
now that we have everything for it
2025-02-04 23:00:44 +01:00
Alug 6ed7e26d86 flag clash moment 2025-02-04 22:59:04 +01:00
Alug 91856ea145 fix merge conflicts 2025-02-04 22:58:46 +01:00
Alug 5b6b0f09e1 Merge remote-tracking branch 'Chearii/blendmodes' into Saturn-Testing 2025-02-04 22:57:17 +01:00
Alug 291677d0cf Merge branch 'Saturn-Next' into Saturn-Testing 2025-02-04 22:48:50 +01:00
Chearii ccc1c07930 Fix white pixel bug due to oversight
many thanks to indev for catching this!
2025-02-04 16:34:17 -05:00
Chearii d39e9447f3 Add line and FOF blending, fix model and shadow blending
also a bit of cleanup in r_things but it's too minor to headline
2025-02-03 04:46:27 -05:00
Chearii cd44e2d80c Prelim: Linedef alpha variable
realistically this was just because I'm Lazy
this makes figuring out linedef blending less of a brain twister
2025-02-02 21:14:48 -05:00
Chearii 36a1662afb Add blending modes 2025-02-02 20:37:19 -05:00
Alug 88d5ca0b8a should revert this completely 2025-02-02 00:19:38 +01:00
Alug 15eee102fd partly revert this
some of those "mightve" been changed at the point of the check
2025-01-30 13:25:19 +01:00
Alug ce00aef8b1 partly revert this
some of those "mightve" been changed at the point of the check
2025-01-30 13:25:12 +01:00
Alug c7a24199c7 make those const 2025-01-30 13:22:03 +01:00
Alug 0db2aebfda dont register a crapton of pointless stuff for dedi
should cleanup dedi config significantly lmao
2025-01-30 13:12:01 +01:00
Alug 7ec00a279c tiny cleanup i_video 2025-01-30 12:30:57 +01:00
Alug 6e81cdcb01 kill even more unused patches
+ nonexistant crosshair stuff
2025-01-30 10:42:01 +01:00
Alug 2a05f630b3 dont cache all those unused hud graphics 2025-01-30 10:41:55 +01:00
Alug bf9b738a0f use SRB2.2s general folder structure
- seperate addons folder (download folder remains in home directory unlike RR)
- seperate gif and screenshot folders
2025-01-30 10:41:48 +01:00
Alug 50fced2867 use SRB2.2´s logging system
- creates a new logfile each start instead of overwriting it everytime
2025-01-30 10:41:40 +01:00
Alug 6276243cc4 just keep a copy of musicchange before the lua hook
keep music can check for what was it stuff changed last to
2025-01-30 10:32:47 +01:00
Alug 22c48f19ba grow an invinc music also broke stuff
cant put it into the music exception list, otherwise it will always disable keepmusic when either one was used even once
2025-01-30 10:32:42 +01:00
Alug 9872640e77 the music system is truly amazing 2025-01-30 10:32:36 +01:00
Alug 80f7ddfb31 i hate conditions 2025-01-30 10:32:30 +01:00
Alug 5215fa4747 smol optimization comparePolygon
return slightly earlier for skywalls and horizonlines
2025-01-30 10:32:13 +01:00
Alug 7016b77ee8 also rotate eggboxes in air 2025-01-30 10:31:58 +01:00
Alug 5edb0d0e3d fall through deez 2025-01-30 10:31:46 +01:00
Alug a2c1fa5e23 delet if else hell 2025-01-30 10:31:41 +01:00
Alug 520f92e892 handle vote bg fallbacks more gracefully
if someone doesent provide a widescreen patch it now falls back to the replaced non widescreen one and vice versa instead of just falling back to what vanilla provides
2025-01-30 10:31:36 +01:00
Alug 305d408e02 forgor about the banan spin 2025-01-30 10:31:14 +01:00
Alug 8ccb747dcd j moment 2025-01-30 10:30:51 +01:00
Alug a1d5a2e1f9 simplify camtoggledelay and spectatedelay
just make em an array and use lööp
2025-01-30 10:30:34 +01:00
Alug 2f56487290 assign player later 2025-01-30 10:30:23 +01:00
Alug 2ebf66b99c kill P_TeleportMove
P_MoveOrigin literally just calls that so replace it with that
2025-01-30 10:30:19 +01:00
Alug 881da033b8 Merge branch 'Saturn-Next' into rankingsrefactor 2025-01-30 10:29:13 +01:00
Alug 1e972cbb65 reduce scope of those
makes it look slightly neater
2025-01-30 10:29:05 +01:00
Alug bab120235d draw non widescreen anim vote bg before falling back to vanilla bg
how it was before, the game just fallback to the vanila widescreen patch if there was no animated widescreen bg provided, just fall back to the non widescreen anim patch instead if it exists
2025-01-30 10:27:56 +01:00
Alug 36404fd93d inline bunch of one line HWR things 2025-01-30 10:27:36 +01:00
Alug 3b90038b62 inline G_TicsTo stuff
theyre smol and get called often
2025-01-30 10:27:25 +01:00
Alug 40660f2379 "makes integer from pointer without a cast" deez nuts 2025-01-30 10:27:19 +01:00
Alug 7ab7193592 remove noshowhelp from bunch of debug cvars
doesent make too much sense those are hidden tbh
2025-01-30 10:27:13 +01:00
Alug 1fabc14ac9 Merge pull request #151 from Indev450/fixdupeacks
Try to fix issues with clients locking up due to never receiving acks back in case of dropped packets
2025-01-30 10:26:33 +01:00
Alug d9492eee28 Merge pull request #152 from Indev450/delaynetxcommand
Delay netxcmds when buffer is full instead of dropping them
2025-01-30 10:26:14 +01:00
Alug e689deaa2b dont need to do all this crap if disabled 2025-01-30 00:17:20 +01:00
Alug 93a1a432d7 "kill" seenames
idk if anyone wants it, its still there, needed to move the netvar out of it tho lol
2025-01-30 00:17:17 +01:00
Alug 0b71bc2880 move this after the early returns
save some time when drifting
2025-01-30 00:17:14 +01:00
Alug 9f4b72800a lmao 2025-01-30 00:17:11 +01:00
Alug 5d2e08d124 turn driftsparkGrowTimer into a player field
less hacky and avoids 3 loops lol
2025-01-30 00:17:08 +01:00
Alug 5fb1b39742 kill redundant laptime code
just use the newer one
2025-01-30 00:17:05 +01:00
Alug 5ef8e5c447 renable jit compile
this branch is a mess lmao
2025-01-29 22:33:49 +01:00
GenericHeroGuy 3152cddb3d In rehashtab, do counthash before adding asize
Thanks alug!
2025-01-29 22:29:03 +01:00
Alug c2b87b46fc refactor M_DrawSlider
apparently fixes weird framerate issues with gamma slider
also shows the values on sliders
2025-01-29 19:35:04 +01:00
Alug d764941341 inline V_LocalTransFlag
its very smol
2025-01-29 19:35:01 +01:00
Alug 112ca2707a even more replay deb prints lel 2025-01-29 19:34:58 +01:00
Alug cf26092917 smol replay fixes from rr 2025-01-29 19:34:52 +01:00
Alug 842a252576 Have replay recording of "hits" use the reference count system
https://git.srb2.org/KartKrew/RingRacers/-/commit/fa8bffabfc51ea1d7be86d833190bb7dcf494fca
2025-01-29 19:34:46 +01:00
Alug e23d9bc3cc also print player name for item desynch 2025-01-29 00:46:25 +01:00
Alug e206ad3c08 better replay resynch prints 2025-01-29 00:40:21 +01:00
Alug 2eddddc6fc ss->touching_preciplist deez 2025-01-28 18:29:23 +01:00
Alug de6a078f01 inline a few hooklib functions 2025-01-28 18:26:20 +01:00
Alug 283f4d1e37 super smol optimization 2025-01-28 18:26:16 +01:00
Alug 0f3cd28019 pass slope to K_RollMobjBySlopes
removing some code dupe in the process and allows some more flexability
2025-01-28 18:26:13 +01:00
Alug 7fec7f8937 forgor to set those oop 2025-01-28 16:33:41 +01:00
Alug 3f54630531 fix issues with models
- Sloperotation was weird, it now uses what we calculate in K_RollMobjsBySlopes
- in general uses srb2s newer system
- alot of cleanup of pointless variables
- sprinfo pivots should now work
- removed roillmodel since it was smth weird and broke rollangle
2025-01-28 16:33:38 +01:00
Alug 7f864dba3a dont recalc if precip sector didnt move
forgor i can just check this
2025-01-27 23:42:10 +01:00
Alug 49644f10f5 only need to recalc this once a tic
precip thinker thinks slightly more often, but we really dont need that tbh
2025-01-27 23:42:07 +01:00
Alug f78b41dde3 only recalc floorz for visible precip mobjs
before it apparently recalced it a crapton for the crapton not visible precipmobjs, which even on vanilla maps led to noticable jitter
2025-01-27 23:42:04 +01:00
Alug 7163337a27 just keep a copy of musicchange before the lua hook
keep music can check for what was it stuff changed last to
2025-01-27 16:44:18 +01:00
Alug 27fd087631 grow an invinc music also broke stuff
cant put it into the music exception list, otherwise it will always disable keepmusic when either one was used even once
2025-01-27 16:13:14 +01:00
Alug 9b7ec4f266 the music system is truly amazing 2025-01-27 15:33:16 +01:00
Alug 90fd4b54b3 i hate conditions 2025-01-27 15:33:13 +01:00
Alug 97e5de1ee5 smol optimization comparePolygon
return slightly earlier for skywalls and horizonlines
2025-01-27 15:33:10 +01:00
Alug 5f247a6d11 Merge branch 'gentlemens' into Saturn-Testing 2025-01-27 15:33:07 +01:00
Alug 0dd4f3b3d3 make old ping bar be blue on d1 aswell as purple with mindelay 2025-01-27 09:19:38 +01:00
Alug ccc0189e70 also rotate eggboxes in air 2025-01-26 21:17:20 +01:00
Alug 8543636576 fall through deez 2025-01-26 17:29:19 +01:00
Alug b09025df08 delet if else hell 2025-01-26 18:18:33 +01:00
Alug 39c747e430 handle vote bg fallbacks more gracefully
if someone doesent provide a widescreen patch it now falls back to the replaced non widescreen one and vice versa instead of just falling back to what vanilla provides
2025-01-26 17:57:36 +01:00
Alug 2104822cac forgor about the banan spin 2025-01-26 16:18:41 +01:00
Alug bcf713932a reduce scope of those
makes it look slightly neater
2025-01-26 16:18:19 +01:00
Alug 6d671b6576 draw non widescreen anim vote bg before falling back to vanilla bg
how it was before, the game just fallback to the vanila widescreen patch if there was no animated widescreen bg provided, just fall back to the non widescreen anim patch instead if it exists
2025-01-26 16:18:16 +01:00
Alug b7345107d7 move this
no need to have two conditions for same thing
2025-01-26 16:18:14 +01:00
Alug 9cdfdf9bda spawn speedlines with non synched rng if ur in eggbox status
and well only if you have colourisation enabled
2025-01-25 21:22:51 +01:00
Alug 42f200aabd inline bunch of one line HWR things 2025-01-25 21:22:19 +01:00
Alug f8853ae902 inline G_TicsTo stuff
theyre smol and get called often
2025-01-25 21:21:43 +01:00
Alug 061201c0de "makes integer from pointer without a cast" deez nuts 2025-01-25 16:59:41 +01:00
Alug f11dab363f remove noshowhelp from bunch of debug cvars
doesent make too much sense those are hidden tbh
2025-01-25 16:21:16 +01:00
Alug 48dd50afe4 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-25 09:33:34 +01:00
Alug 49cefa92e2 dont banan drag rumble when not driving lel 2025-01-25 09:33:14 +01:00
Alug 352e71d9e9 Merge branch 'directionallight' into Saturn-Testing 2025-01-25 08:41:28 +01:00
Alug 2b13af2367 setup maplight stuff earlier
otherwise it doesent init early enough
2025-01-25 08:41:22 +01:00
indev 2296ef0987 Fix 'total podium' stat display using totalwins 2025-01-25 01:10:06 +03:00
indev 30f11e4e46 Fix 'total podium' stat display using totalwins 2025-01-25 01:09:43 +03:00
Alug 97a5c15c36 just use D_NumPlayers 2025-01-24 20:44:50 +01:00
Alug 43dbaf7004 j moment 2025-01-24 20:16:32 +01:00
Alug 55bb65034f [0] 2025-01-24 20:16:21 +01:00
Alug 57ebb297c0 simplify camtoggledelay and spectatedelay
just make em an array and use lööp
2025-01-24 20:44:28 +01:00
Alug a513f10296 assign player later 2025-01-24 20:44:25 +01:00
Alug a1074852dd kill P_TeleportMove
P_MoveOrigin literally just calls that so replace it with that
2025-01-24 20:44:21 +01:00
Alug 5f546a3df8 just use D_NumPlayers 2025-01-24 20:44:12 +01:00
Alug 986c19ef6e Merge branch 'gentlemens' into Saturn-Testing 2025-01-24 20:43:49 +01:00
Alug bea7ad5876 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-24 19:25:59 +01:00
Alug b1fa124032 add funny banan throw rotate thing
like rr
2025-01-24 19:25:53 +01:00
Alug a15de64160 think we should copy this 2025-01-24 19:25:50 +01:00
Alug af3a23ce66 make trailing items also be able to rotate on slopes
mostly stuff from RR thx!
2025-01-24 19:25:46 +01:00
Alug b55c654a81 oop 2025-01-24 06:43:54 +01:00
Alug b97841b6fd proper add server gentlemans
this should be a netvar, but we cant really do that, thought not a huge deal
however id wish to send some kinda message to all players but idk
2025-01-24 06:40:05 +01:00
Alug ac64428abb dont mess up realpingtable
when serverplayer has mindelay active
this was supposed to show mindelay for serverplayers but that doesent work :chaosleep: so just do not mess with it
2025-01-23 21:55:48 +01:00
Alug 1857ce5113 conflict fix 2 2025-01-23 21:29:08 +01:00
Alug f4f3f6e29c slight cleanup HU_drawPlayerPing 2025-01-23 21:27:42 +01:00
Alug 9354a0ab88 conflict fix 2025-01-23 21:27:07 +01:00
Alug 6ef9c0b305 colourise pingnumber when gentlemens is active 2025-01-23 18:11:00 +01:00
Alug 6b951d2773 division by zero moment 2025-01-23 18:10:57 +01:00
Alug 064e9d58af add gentlemens delay to ping display
+ display ping even offline if you have mindelay active
2025-01-23 18:10:53 +01:00
Alug 1d5092cf22 smol cleanup 2025-01-23 18:10:21 +01:00
Alug 861d35e8d3 port clientsided gentlemens delay
cant do the serverside stuff due to netvars
2025-01-23 18:10:18 +01:00
Alug f92c519d05 Prevent dropped ticcmds due to interp timing jutter
kinda figured out what this does, and makes clients on uncapped listen servers alot less prone to drop gametics
2025-01-23 15:07:37 +01:00
Alug ecd3ad40ae fix freecam not resetting online
idk local player handling is fucking awful in kart
2025-01-22 19:42:21 +01:00
Alug 6d94ff8d1f fix freecam not resetting online
idk local player handling is fucking awful in kart
2025-01-22 19:42:14 +01:00
Alug fad3c2bbdf Merge remote-tracking branch 'origin/Saturn-Testing' into Saturn-Testing 2025-01-22 19:05:16 +01:00
Alug 46c53ea679 try just passing the sector + add 50 trillion extra checks
idk anymore but this is literally now how vanilla kart behaved
2025-01-22 19:05:10 +01:00
Alug 062caa8f53 skip some stuffs when theres no portals
skip some portal checking incases wheres no portals
2025-01-22 18:10:54 +01:00
Alug f6a39fea4b Merge remote-tracking branch 'origin/kartstats' into Saturn-Testing 2025-01-22 17:33:49 +01:00
Alug bfabdb7b6a bruh 2025-01-22 17:24:11 +01:00
Alug ea82f89b53 bruh 2025-01-22 17:24:03 +01:00
Alug 7f9edddbcc remove redundand FTransform field 2025-01-22 16:58:30 +01:00
Alug 23443b2632 remove redundand FTransform field 2025-01-22 16:58:24 +01:00
Alug 114eab952b Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-22 15:47:41 +01:00
Alug 883cd3f516 more smol ogl sprite drawer optimizations 2025-01-22 15:46:44 +01:00
Alug a3e2d3ec71 also fix potential use-after-free in HWR_AddPrecipitationSprites
no clue why ogl didnt do it since its effectively the same code as software
2025-01-22 15:46:38 +01:00
Alug 7213f0dd5d split HWR_DrawSprites
saves on ALOT of conditional branching in a lööp when models are disabled
2025-01-22 15:45:25 +01:00
Alug f8472721ee fix level statistics page controls 2025-01-21 16:54:38 +01:00
indev 9634bc99bd Check for spectator in K_StatRound 2025-01-21 17:38:09 +03:00
Alug 81a0ba08bd use SRB2.2s general folder structure
- seperate addons folder (download folder remains in home directory unlike RR)
- seperate gif and screenshot folders
2025-01-21 01:35:24 +01:00
Alug 12f5bd141d use SRB2.2´s logging system
- creates a new logfile each start instead of overwriting it everytime
2025-01-21 01:35:21 +01:00
Alug 6e2b7e534b Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-20 22:26:41 +01:00
Alug 3bbdd1ea72 e better play it safe 2025-01-20 22:26:26 +01:00
Alug 2b09e74dcf kill aiming stuff in BuildTiccmd 2025-01-20 22:26:23 +01:00
Alug 543365f296 cv_invertmouse2 moment 2025-01-20 22:22:13 +01:00
Alug da3bf945cb delete nonfunctional second mouse stuff 2025-01-20 22:18:59 +01:00
Alug 4e311ca279 kill even more unused patches
+ nonexistant crosshair stuff
2025-01-20 21:31:52 +01:00
Alug 18c449a9ed dont cache all those unused hud graphics 2025-01-20 21:18:31 +01:00
Alug d7293ef41d Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-20 19:34:02 +01:00
Alug 5dc76d07ec Hold up/down for 2 seconds while not moving to pan the camera vertically
from RR
2025-01-20 19:33:56 +01:00
Alug ebfafd7b6e a 2025-01-20 19:21:44 +01:00
Alug 24ca9fdafa oops didnt init this 2025-01-20 19:21:42 +01:00
Alug 8cdb920f54 dont turn 90 degrees when switching to freecam 2025-01-20 19:00:22 +01:00
Alug cccf6449f9 fix freecam vertical look for the 500th thousand time
truly amazing code
2025-01-20 18:04:20 +01:00
Alug 88c8860548 Merge remote-tracking branch 'origin/freecamstuffs' into Saturn-Testing 2025-01-20 17:05:57 +01:00
Alug 85a64a6c14 put this thing onto its original place 2025-01-20 15:29:06 +01:00
Alug d7c3cf7d3e put this into switch
looks better
2025-01-20 15:29:02 +01:00
Alug 9bd2da04e2 put this thing onto its original place 2025-01-20 15:28:51 +01:00
Alug 56563507b6 null check target in P_DamageMobj
apparently this may be null
2025-01-19 18:21:13 +01:00
Alug fa98b06dba :chaosleep: 2025-01-19 18:10:25 +01:00
Alug a763d85122 make function for driftsparkcolour
reduce some code dupe
2025-01-19 17:45:28 +01:00
Alug db8b1ca0a3 replace common damage magic numbers with named macros
that stuff always confused me before lol
2025-01-19 17:38:32 +01:00
Alug 5106c391bb readd check for banan
this time without mobjwasremoved
just check if banan exists
2025-01-19 17:38:22 +01:00
Alug 0c2e285d2e remove some code dupe in R_AddLine 2025-01-19 17:35:00 +01:00
Alug f7df80f763 ; moment 2025-01-19 17:34:56 +01:00
Alug 676265a92a fix "lessprecip"
logic error lul
2025-01-19 17:34:52 +01:00
Alug f9ee18584e use MT_NULL instead of number 2025-01-19 17:34:42 +01:00
Alug 3d394bb621 refactor weather switching
from srb2
makes this more sane and makes PRECIP_STORM_NORAIN not spawn a crapton of invisible mobjs
2025-01-19 17:34:33 +01:00
Alug 913c0f4ae7 idk why we check this 2025-01-19 17:34:19 +01:00
Alug 04bf086a9e forgor to check for that flag 2025-01-19 17:34:12 +01:00
Alug 2a25328ce0 change tooltips slightly 2025-01-19 17:33:56 +01:00
Alug af7393832a add stuff to menu 2025-01-19 17:33:50 +01:00
Alug 516bea6e8a add toggle for item amount number display 2025-01-19 17:33:30 +01:00
Alug 82bd65eebd don use multiicon patches in 3/4p splitscreen
since it uses the smoler patches
also removes redundant assignments
2025-01-19 17:33:20 +01:00
Alug 44b6c53452 change banana default patch to match lua roulette hud behaviour 2025-01-19 17:33:02 +01:00
Alug 28b294f48a add support for multiitem patches (thx neppy!)
needs new patches, unsure if we just gonna add em to the extra file or make a new one
so it ambigous for now
2025-01-19 17:32:21 +01:00
Alug 56ed32d094 merge conflict moment 2025-01-19 17:31:55 +01:00
Alug 60d81037fd "Fix console text bleeding "
read https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1434
2025-01-19 17:31:27 +01:00
Alug 8abe40cc81 cap console animation if uncappedhud is disabled
since thats "how vanilla done it" before
2025-01-19 17:31:20 +01:00
Alug cd9df8065d use R_GetHudUncap 2025-01-19 17:31:13 +01:00
Alug b6d50da809 add fancyroulette toggle 2025-01-19 17:31:08 +01:00
Alug 383cc71bb3 reorder saturn hud menu a little
also remove uncapped hud from it, since why would you ever wanna turn it off?
2025-01-19 17:30:49 +01:00
Alug d75c16bab5 add the fancy hudtrans flags 2025-01-19 17:30:08 +01:00
Alug 8efdbe40e4 dont fancy during respawn 2025-01-19 17:30:00 +01:00
indev ada779a97d Fancy :D 2025-01-19 17:29:56 +01:00
Alug 37d28464ea change how spritescales and offsets work
- now theres realoffsets aswell
- allows better control of changing things per lua and still do funky stuff in hardcode without conflicts
- spritescales and offsets now get reset centralised before any thinkers run
2025-01-19 17:29:41 +01:00
Alug 816ad7c2fc add banan jitter toggle to menu 2025-01-19 17:29:29 +01:00
Alug c4d1f9c6a2 add toggle for bananjitter 2025-01-19 17:29:24 +01:00
Alug 33e1cfc2ba le funny banan drag jumpy 2025-01-19 17:29:07 +01:00
Alug bce9990826 only rumble banan when on ground 2025-01-19 17:27:51 +01:00
Alug 923e0500df fix typo lel 2025-01-19 17:27:31 +01:00
Alug 017646e704 forgor about software again 2025-01-19 17:26:35 +01:00
Alug 4900177e8c TEST: skip prepping 3d floors for fofs without planes
or if they were already checked
2025-01-19 17:25:35 +01:00
Alug ed97d28254 split HWR_RenderBSPNode
to reduce function call overhead
its only microscopicly faster lel
2025-01-19 17:25:26 +01:00
Alug 15185e0450 simplify keepmusic
honestly no clue why i made stuff check on every music change
2025-01-19 17:23:52 +01:00
Alug a29f8d5f38 dont keep music if there is no music 2025-01-19 17:23:45 +01:00
Alug 8dc2d22996 Clear acktosend when initializing node
since it was never reset, values might been taken over from former node
2025-01-19 17:22:59 +01:00
indev 4d355f99c0 Add spb music to list of exceptions for keepmusic 2025-01-19 17:22:52 +01:00
indev aa0bf396e7 Fix spectator control text overlapping when showdirectorhud is off 2025-01-19 17:22:38 +01:00
indev 5f3dc081b5 Don't start invinc/grow alarm sound when player uses power item
It will still be started in K_UpdateInvincibilitySounds, but now if
player already had invincibility, they won't get 2 overlapping sounds
2025-01-19 17:33:44 +03:00
indev 8959d3aec4 Put playtime statistics at first page instead of RA medals 2025-01-19 03:04:24 +03:00
indev c589d04a32 New statistics menu (WIP) 2025-01-19 02:55:39 +03:00
indev 8ceda27817 Wipe kart stats on game data reload 2025-01-19 02:43:18 +03:00
indev 7260c2c77e That was from testing a 2025-01-19 02:29:41 +03:00
indev 7991dafe64 Make custom stats fully compatible between different versions, so new fields can be added in future without save corruptions 2025-01-19 02:28:16 +03:00
Alug 232790836b remove some code dupe in R_AddLine 2025-01-19 00:24:02 +01:00
Alug 9305b0a287 ; moment 2025-01-18 21:44:34 +01:00
Alug 4ff8b869db fix "lessprecip"
logic error lul
2025-01-18 21:24:47 +01:00
Alug c1df939ac8 use MT_NULL instead of number 2025-01-18 14:36:42 +01:00
Alug aea8cd1d62 refactor weather switching
from srb2
makes this more sane and makes PRECIP_STORM_NORAIN not spawn a crapton of invisible mobjs
2025-01-18 14:29:58 +01:00
Alug b816622129 idk why we check this 2025-01-18 14:29:55 +01:00
Alug d80613f26f forgor to check for that flag 2025-01-18 11:45:39 +01:00
Alug d5505080cf change tooltips slightly 2025-01-17 23:44:35 +01:00
Alug 92d6a541ae add stuff to menu 2025-01-17 23:44:32 +01:00
Alug 633948e8cc ok clang 2025-01-17 23:44:27 +01:00
Alug 2ac48f715a :chaosleep: 2025-01-17 19:53:42 +01:00
Alug e82c9a71ec add toggle for item amount number display 2025-01-17 17:15:36 +01:00
Alug 004f6d1495 Revert "turn on multiitemicons by default"
This reverts commit 9217cd3832.
2025-01-17 17:15:33 +01:00
Alug 32b54e1346 merge conflict moment 2025-01-17 15:04:13 +01:00
Alug f50b19968c disable jit compilation for now 2025-01-17 14:45:35 +01:00
Alug c9d0415d84 "Fix console text bleeding "
read https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1434
2025-01-17 14:23:05 +01:00
Alug 625932e8f3 cap console animation if uncappedhud is disabled
since thats "how vanilla done it" before
2025-01-17 14:18:09 +01:00
Alug 5a03428d76 use R_GetHudUncap 2025-01-17 14:18:06 +01:00
Alug 33c6d13c7a add fancyroulette toggle 2025-01-17 14:18:04 +01:00
Alug ba5e15d29b add the fancy hudtrans flags 2025-01-17 14:18:01 +01:00
Alug de64eb6f8d dont fancy during respawn 2025-01-17 14:17:58 +01:00
indev 75589f9770 Fancy :D 2025-01-17 15:47:55 +03:00
Alug 9217cd3832 turn on multiitemicons by default 2025-01-17 12:58:56 +01:00
Alug 49d295535f add banan jitter toggle to menu 2025-01-17 12:58:52 +01:00
Alug bd489bd462 change how spritescales and offsets work
- now theres realoffsets aswell
- allows better control of changing things per lua and still do funky stuff in hardcode without conflicts
- spritescales and offsets now get reset centralised before any thinkers run
2025-01-17 01:31:12 +01:00
Alug 7d621b5b1d add toggle for bananjitter 2025-01-17 01:30:39 +01:00
Alug 22b60a07e5 le funny banan drag jumpy 2025-01-17 01:30:35 +01:00
Alug adf52e1520 only rumble banan when on ground 2025-01-16 23:33:18 +01:00
Alug b5d027b37c fix typo lel 2025-01-16 22:44:27 +01:00
Alug c5a1513cf5 don use multiicon patches in 3/4p splitscreen
since it uses the smoler patches
also removes redundant assignments
2025-01-16 21:58:56 +01:00
Alug 7116607881 ignore invisible fofs again 2025-01-16 21:43:30 +01:00
Alug 559b0bf45a also skip invisible fofs 2025-01-16 21:43:24 +01:00
Alug 72e72af6b1 Clear acktosend when initializing node
since it was never reset, values might been taken over from former node
2025-01-16 01:03:38 +01:00
Alug e0d6a6ae0f dont keep music if there is no music 2025-01-16 01:02:06 +01:00
indev 64588f8337 Add spb music to list of exceptions for keepmusic 2025-01-16 02:47:50 +03:00
indev 66b0931f07 Fix spectator control text overlapping when showdirectorhud is off 2025-01-15 21:17:56 +03:00
Alug 5ddabba0b2 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-15 13:00:33 +01:00
Alug 2e054d8bec Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-15 13:00:31 +01:00
Alug 1db9bcd6c9 oops 2025-01-15 12:59:49 +01:00
Alug 6f7a52a6a6 make freecam strafe be affected by freecamspeed cvar 2025-01-15 12:59:47 +01:00
Alug 2c3ff3a628 dont throw a warning about addons with custom gamedata
just ignore it
2025-01-15 12:59:38 +01:00
indev 976c74d694 G_PlayerReborn didn't work for 'respawns' stats, maybe G_DoReborn will? 2025-01-13 23:17:51 +03:00
indev e3adcfb62e Player kartstuff's get reset in G_PlayerFinishLevel, so need to call K_StatRound earlier 2025-01-13 23:11:52 +03:00
Alug cd76cc0e9f no need to strcmp just check for "savemoddata"
that bool only ever gets set to true if the savegame has been switched to the modded one and unlike in srb2 this WILL never be reset to false again
2025-01-13 17:42:33 +01:00
Alug e2e356d0c2 save vanilla save when switching to modified savegame
also add check so we dont rerun this everytime setgamemodified is called
2025-01-13 16:44:06 +01:00
Alug bb7c217ccc remove "majormods" checks from stuff that saves to savegame
so its only there to throw a notice when you load an addon
2025-01-13 16:44:04 +01:00
Alug cd3e664e6a oops fix menu stuff 2025-01-13 16:01:19 +01:00
indev e7d3e03169 Clear menus when running 'map' command 2025-01-13 15:53:51 +01:00
indev 591a2e5dbb Forgor respawns 2025-01-13 17:52:41 +03:00
Alug 4e4871fe93 remove "errorshitspam"
hooklib refactor indirectly fixed the root issue, so this is not needed anymore
2025-01-13 15:52:12 +01:00
Alug 6d1b754db5 remove this
hooklib refactor already indirectly fixed this so this code is pointless
2025-01-13 15:50:36 +01:00
indev cae9b754bc Oops 2025-01-13 17:37:50 +03:00
Alug 46e0c88280 make game use seperate save when addons are loaded
so you can record attack and it will also keep saving to statistics
also added a few things it now keeps track of
TODO: unfuck the statistics page and add a 2nd one perhaps? due to space reasons
menucode is hell
2025-01-13 17:36:07 +03:00
indev 4942db2806 Add kartstats 2025-01-13 17:13:40 +03:00
indev b5be515b9b Clear menus when running 'map' command 2025-01-13 14:25:14 +03:00
Alug 51067f2802 Merge branch 'Saturn-Next' into freecamstuffs 2025-01-13 08:39:38 +01:00
Alug 62a65c5c1d save a whopping 2ms from gamestart to race start on texture updating 2025-01-13 08:38:20 +01:00
Alug b9e23113c8 slightly cleanup gravstretch stuff 2025-01-13 08:34:52 +01:00
Alug 50f1a61182 fix having saltyhop disabled forcing player spriteyoffset to be forced 0
just clear out everything on toggle
2025-01-13 08:34:44 +01:00
Alug ed9adfae68 add toggle to colour sneakertrail flames (thx neppy!) 2025-01-13 08:34:34 +01:00
Alug cb4ef15c77 another attempt at fixing skipintro mus playing titlescreen music 2025-01-13 08:30:42 +01:00
Alug e4e18f0a62 check for 0 to avoid division by 0 2025-01-13 08:29:33 +01:00
Alug ab8cbcb450 reinit minimap stuff when a wad is added while ingame 2025-01-13 08:29:11 +01:00
Alug 4103fac605 slight cleanup r_draw8 2025-01-13 08:29:06 +01:00
Alug 0a58797f78 clamp to length-1 2025-01-13 08:29:02 +01:00
Alug 5db7f5f2e7 fix column drawers clamping stuff 2025-01-13 08:28:58 +01:00
Alug 47a3de8fe1 let "fovchange" work in software 2025-01-13 08:28:46 +01:00
Alug 2b725560cc add banandrag rumble lol 2025-01-13 08:28:36 +01:00
Alug 9f9cb833f0 add slight fadeout to spinout rumble 2025-01-13 08:28:22 +01:00
Alug f88290d34e kill unarchivevaluedemo
just pass if we load from replay or not and do stuff accordingly
2025-01-13 08:24:56 +01:00
Alug 157ff2df4f make gamestate download show total gamestate size 2025-01-13 08:24:38 +01:00
Alug a9117573fb add colourized speedlines
smth i had laying around in lugstuff
2025-01-13 08:23:02 +01:00
Alug cea28c591f slight cleanup minimap head stuff 2025-01-13 08:22:39 +01:00
Alug b963146faa split ra wheel and position number hud offsets
kinda ass due to the preset offset, but will just not apply if either was changed from its original position
2025-01-13 08:22:06 +01:00
Alug 181c948e86 toggle for camera turnaround on timeover 2025-01-13 08:21:58 +01:00
Alug d3b8e11783 one line this 2025-01-13 08:21:31 +01:00
Alug b3b19eff49 this doesent work out
breaks some textures not appearing on some maps
2025-01-13 08:04:10 +01:00
Alug d09d2dcffd this doesent work out
breaks some textures not appearing on some maps
2025-01-13 08:03:15 +01:00
GenericHeroGuy c5fddbbb69 Use references instead of upvalues for original I/O functions
No more unrestricted I/O through debug.getupvalue
2025-01-12 17:39:19 +01:00
GenericHeroGuy 2ef360a7ac Update to BLUAJIT 449b76f 2025-01-12 17:39:15 +01:00
Alug 509d26f938 forgor about software again 2025-01-12 17:37:40 +01:00
Alug 5a9efff87c TEST: skip prepping 3d floors for fofs without planes
or if they were already checked
2025-01-12 17:37:36 +01:00
Alug 24a93d107a split HWR_RenderBSPNode
to reduce function call overhead
its only microscopicly faster lel
2025-01-12 17:37:33 +01:00
Alug 67aa31439b dont rumble in freecam state 2025-01-12 17:25:57 +01:00
Alug 26902b4565 smol cleanup localskin ranking shit 2025-01-12 17:25:42 +01:00
Alug e320aff5dc dont rumble in freecam state 2025-01-12 17:24:50 +01:00
Alug 3f971fbab1 null check target in P_DamageMobj
apparently this may be null
2025-01-12 17:23:21 +01:00
Alug f24ce61cc9 slight cleanup minimap head stuff 2025-01-12 17:22:52 +01:00
Alug 137be1c7fa slightly cleanup gravstretch stuff 2025-01-12 17:08:16 +01:00
Alug 039018ddc9 change banana default patch to match lua roulette hud behaviour 2025-01-12 17:07:45 +01:00
Alug bef784b32a add support for multiitem patches (thx neppy!)
needs new patches, unsure if we just gonna add em to the extra file or make a new one
so it ambigous for now
2025-01-12 17:07:42 +01:00
Alug eaad3ebeac oops fix menu stuff 2025-01-12 17:07:33 +01:00
Alug af8637f8a4 fix having saltyhop disabled forcing player spriteyoffset to be forced 0
just clear out everything on toggle
2025-01-12 02:52:14 +01:00
Alug ba5ec70669 add toggle to colour sneakertrail flames (thx neppy!) 2025-01-12 02:52:10 +01:00
Alug 503f20a7f4 split ra wheel and position number hud offsets
kinda ass due to the preset offset, but will just not apply if either was changed from its original position
2025-01-12 02:52:07 +01:00
Alug 1237b553f7 toggle for camera turnaround on timeover 2025-01-12 02:52:04 +01:00
Alug 86c89a47da one line this 2025-01-12 02:51:59 +01:00
Alug ff895f3251 fix frame flag clash 2025-01-11 19:54:28 +01:00
Alug b40cb3331a fix frame flag clash 2025-01-11 19:54:13 +01:00
Alug 88025040c3 Merge branch 'directionallight' into Saturn-Testing 2025-01-11 18:10:29 +01:00
Alug 130c1aba67 put random direction light toggle into advanced video options
also make it a scoll menu
2025-01-11 18:10:24 +01:00
Alug e7c0cda77f reinit random maplight on mapchange when toggled
the condition may otherwise not change the light if you restart the same map
2025-01-11 08:52:55 +01:00
Alug a07c2f4c32 reinit random maplight on mapchange when toggled
the condition may otherwise not change the light if you restart the same map
2025-01-11 08:52:49 +01:00
Alug 99e64388ba Merge branch 'directionallight' into Saturn-Testing 2025-01-11 08:34:40 +01:00
Alug 96b7a4efe6 add FF_ABSOLUTELIGHTLEVEL
mobj_t.lightlevel is absolute instead of relative when set
2025-01-11 08:33:02 +01:00
Alug 124b2ff431 add encore variants of maplight 2025-01-11 08:32:59 +01:00
Alug c1ec72e606 oops 2025-01-11 08:28:57 +01:00
Alug ef1faf9f68 those somehow got lost 2025-01-11 08:26:12 +01:00
Alug 02595b9ea6 forgor this 2025-01-11 07:50:25 +01:00
Alug c1514635b0 if disabled and no soc overrides light behave like vanilla
always apply wall and slope contrast pls
2025-01-11 07:50:22 +01:00
Alug e5e7205c95 change how randomized light works
so it doesent kill actual soc set randomlight if you toggle it
2025-01-11 07:26:44 +01:00
Alug f8d1bf0811 Merge branch 'Saturn-Next' into directionallight 2025-01-11 07:26:37 +01:00
Alug a1f185b0f0 Merge pull request #148 from Indev450/checkposopti
Dont always call R_PointInSubsector if thing has not moved in P_CheckPosition
2025-01-11 01:37:07 +01:00
Alug 8981ae3117 Merge pull request #156 from Indev450/precipthinklist
Add a seperate thinkerlist for precipmobjs only
2025-01-11 01:36:23 +01:00
Alug 2a948ca4c2 move this 2025-01-10 22:46:52 +01:00
Alug 8ff0524bbc move this 2025-01-10 22:46:18 +01:00
Alug e749c9764c Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-10 22:31:52 +01:00
Alug d9f0c55fee "Invinciblity" 2025-01-10 22:31:46 +01:00
Alug 69a6adf0a8 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-10 22:28:47 +01:00
Alug ab064c90dd let "fovchange" work in software 2025-01-10 22:28:45 +01:00
Alug 50d2bf5d8d seperate game turn axis from cam turn axis
both are bound to the same value by default, so vanilla controls remain intact
theres no other good way to have gamepad controls for this sadly
2025-01-10 22:28:34 +01:00
Alug d39fd5bb5c strafe controls for speccam/freecam
TODO: seperate cam turning axis from gameplay turn axis for gamepads
2025-01-10 22:28:31 +01:00
Alug 817df662da slight cleanup r_draw8 2025-01-10 02:17:38 +01:00
Alug d093b461d6 clamp to length-1 2025-01-10 02:14:38 +01:00
Alug 5cc756f853 reinit minimap stuff when a wad is added while ingame 2025-01-10 02:12:13 +01:00
Alug 07c443598b fix column drawers clamping stuff 2025-01-10 02:11:52 +01:00
Alug 3c6116255b kill unarchivevaluedemo
just pass if we load from replay or not and do stuff accordingly
2025-01-09 21:25:08 +01:00
Alug 5689e3815a shouldnt this be uint? 2025-01-09 20:22:40 +01:00
Alug 9bf6a72621 make gamestate download show total gamestate size 2025-01-09 18:47:21 +01:00
Alug 2e02aa16bb Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-09 17:27:38 +01:00
Alug 1a9865ebc4 this should also use unpaused rendertimefrac 2025-01-09 17:27:25 +01:00
Alug 8e7fddd6b0 use lööps for those to look a little better lel 2025-01-09 17:15:18 +01:00
Alug ac8f6455ff dont reset cam using f12 when only one player is ingame 2025-01-09 17:15:15 +01:00
Alug 3c268c8cbd slightly refactor chasecam stuff again 2025-01-09 17:15:12 +01:00
Alug a11227b15a fix postimg data types mismatch
also remove the "postimgflag_t" typedef since its useless
and use smoler type for everything we dont need much space lol
2025-01-08 18:34:24 +01:00
Alug 10b56e7b4f fix postimg data types mismatch
also remove the "postimgflag_t" typedef since its useless
and use smoler type for everything we dont need much space lol
2025-01-08 18:34:16 +01:00
Alug f52db71ec6 this is not needed anymore 2025-01-08 17:11:53 +01:00
indev 38b52b826a huh 2025-01-08 12:00:41 +03:00
Alug bc1f21961c smol cleanup localskin ranking shit 2025-01-08 06:29:28 +01:00
Alug 0e1f843f50 ; 2025-01-08 05:52:08 +01:00
Alug 2a5d1fb84a ; 2025-01-08 05:52:01 +01:00
Alug 3b0d0dcd0c add banandrag rumble lol 2025-01-08 05:51:17 +01:00
Alug f92cf3df4f add slight fadeout to spinout rumble 2025-01-08 05:51:15 +01:00
Alug 274c9904e6 forgor to delet this 2025-01-08 04:13:07 +01:00
Alug 44ee017dee forgor to delet this 2025-01-08 04:12:51 +01:00
Alug 1416650c9d reorder saturn hud menu a little
also remove uncapped hud from it, since why would you ever wanna turn it off?
2025-01-08 05:09:03 +01:00
Alug 4acf6d336b add colourized speedlines
smth i had laying around in lugstuff
2025-01-08 05:08:27 +01:00
Alug dd7a861280 Merge branch 'rankingsrefactor' into Saturn-Testing 2025-01-08 04:47:39 +01:00
Alug bbb4893857 throw this into a function
smth smth nesting
2025-01-08 04:47:25 +01:00
Alug 3054c2366e Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-08 04:10:13 +01:00
Alug 51e367a61d move saturn hud cvars to k_kart and fix driftgauge extra showing
if there is no patch for it
its kinda dumb, since technically would allow to not load all of em
but im lazy and dont wanna change possiblevalues around
2025-01-08 04:10:05 +01:00
Alug 165803c95c toggle for smol positionnum and posnum animation 2025-01-08 04:10:02 +01:00
Alug d01ed38895 fix "connect" command not saving to last server 2025-01-08 03:23:37 +01:00
Alug f9e9b423dd Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-08 01:50:31 +01:00
Alug cdfef0f884 oops forgor those 2025-01-08 01:50:26 +01:00
Alug ddc8e4a29e clean up gamepad led stuff 2025-01-08 01:47:05 +01:00
Alug f576f39bc6 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-08 01:34:00 +01:00
Alug f74cd97c4b clean up this mess a little 2025-01-08 01:33:55 +01:00
Alug bb91d8e1e3 dont rumble in freecam + player fix 2025-01-08 01:33:49 +01:00
Alug ee8fd22f36 oops fix software lel 2025-01-08 01:33:46 +01:00
Alug c0d4599a35 TEST: revert sleep stuff for now
dedi may sometimes get stuck here somehow
2025-01-07 23:48:41 +01:00
Alug 24a7d4b82d Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-07 20:18:49 +01:00
Alug 5c5a5e200e fix fbo crap once again 2025-01-07 20:18:39 +01:00
Alug 864d747e3b check if subsector has sector before assigning 2025-01-07 19:49:54 +01:00
Alug d623820833 check if subsector has sector before assigning 2025-01-07 19:49:46 +01:00
Alug a9be6a54ff Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-07 18:47:31 +01:00
Alug d41b6c185a fix freecam aim getting stuck and other issues
- gamepads now aim like they used to and at same speed as keyboard
- aim reset has been changed so it resets automatically, but also can be manually reset with centerview
- aiming is locked during cam reset
2025-01-07 18:47:26 +01:00
Alug 3b60cb2bcd replace common damage magic numbers with named macros
that stuff always confused me before lol
2025-01-07 16:31:16 +01:00
Alug fe3ff15539 readd check for banan
this time without mobjwasremoved
just check if banan exists
2025-01-07 16:31:13 +01:00
Alug f5018f628a Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-07 16:31:09 +01:00
Alug 03e45f4590 check for cam subsector
since we can move it around and i added this to freecam mode, subsector may be null for reason so better be safe than sorry
2025-01-07 16:31:04 +01:00
indev ce31ceda65 If available, add map title into crash log 2025-01-07 14:52:58 +03:00
indev aa00419198 If available, add map title into crash log 2025-01-07 14:52:19 +03:00
Alug fd5575ace5 make this more complicated due to a "-" 2025-01-06 22:50:30 +01:00
Alug c8737bd43f make this more complicated due to a "-" 2025-01-06 22:50:24 +01:00
Alug 2e31e08522 check for 0 to avoid division by 0 2025-01-06 22:41:41 +01:00
Alug 1412805503 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-06 22:41:25 +01:00
Alug eff6b31ee8 change director toggling handling
- now not changable over console anymore, bind only!
- it doesent save anymore so its always disabled at game start
- moving while in spec state will disable director when active so stand still
- disable it in splitscreen completely
- only adjust view when toggling it on
2025-01-06 22:41:20 +01:00
Alug 03259aeca0 let postimg stuff also apply to freecam 2025-01-06 22:41:18 +01:00
Alug 812e269195 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-06 20:36:50 +01:00
Alug dbb5c1482b add a little extra safety here ig
this crashed on levelload once so idk maybe player was null ig
2025-01-06 20:36:31 +01:00
Alug afa66d0418 double the slack for slep 2025-01-06 20:36:25 +01:00
Alug 7177b396e0 any of those may be NULL in MakePatch
no idea but this crap keeps crashing in some other place every single time i add a check somewhere else
2025-01-05 23:02:36 +01:00
Alug e796f7e81f thats not timedemo lel 2025-01-05 21:25:01 +01:00
Alug 006fde8fea thats not timedemo lel 2025-01-05 21:24:55 +01:00
Alug 8499ca358b turn off any active menus when using demo play commands 2025-01-05 21:24:12 +01:00
Alug 890779713a turn off any active menus when using demo play commands 2025-01-05 21:24:03 +01:00
Alug 63b8cc1104 disable pause vhs effect when in freecam mode 2025-01-05 20:37:58 +01:00
Alug c4c995a9a3 disable pause vhs effect when in freecam mode 2025-01-05 20:37:49 +01:00
Alug 511105beb3 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-05 20:14:59 +01:00
Alug 718fe7e8ae slight slep optimization
https://git.do.srb2.org/STJr/SRB2/-/commit/1da55066d43ed6a0cb666999c20316bef463024b?merge_request_iid=2583
2025-01-05 20:14:54 +01:00
Alug 258447c17b disable director while in replay freecam 2025-01-05 19:02:08 +01:00
Alug 1d8be20962 disable director while in replay freecam 2025-01-05 19:02:01 +01:00
Alug a90c51ec0f no u may be used uninitialised 2025-01-05 18:54:08 +01:00
Alug 077076532f slight cleanup buildticcmd 2025-01-05 18:54:05 +01:00
Alug e1bf657a05 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-05 18:53:40 +01:00
Alug 7ca2051f84 Adjust slack based on precision
https://git.do.srb2.org/STJr/SRB2/-/commit/d20552c49d9fd6a2075ebd7d46b0b133c69f1dbe?merge_request_iid=2583
2025-01-05 18:53:32 +01:00
Alug 8ff5cc7cbb --------- 2025-01-05 15:11:25 +01:00
Alug bca4af201d no u may be used uninitialised 2025-01-05 14:51:32 +01:00
Alug 9af243177f --------- 2025-01-05 15:11:18 +01:00
Alug ca3c2bf70a remove this again
seems like it basically doesent change anything
2025-01-05 15:04:20 +01:00
Alug ce5fc9715d slight cleanup buildticcmd 2025-01-05 15:04:09 +01:00
Alug 606a50047c put refreshdirmenu back here 2025-01-05 15:04:06 +01:00
Alug b58c0705fc Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-05 15:04:01 +01:00
Alug 92649a393d dont cast "infinity" to int lel 2025-01-05 01:11:57 +01:00
Alug 98db1a5757 Further improve sleep accuracy on UNIX systems
hanichad https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2583
2025-01-05 01:11:54 +01:00
Alug 841c226732 this somehow got lost lel 2025-01-05 01:11:42 +01:00
Alug 7e8c8f4bb7 dont cast "infinity" to int lel 2025-01-05 00:43:20 +01:00
Alug ebedca82f3 Further improve sleep accuracy on UNIX systems
hanichad https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2583
2025-01-05 00:32:39 +01:00
Alug e06b61e8d2 revert "Faster z position checks for mobjs without collision" 2025-01-04 22:17:24 +01:00
Alug e2e703540e Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-04 22:17:22 +01:00
Alug e53c6bb4da reduce ternary hell a little lel 2025-01-04 21:54:53 +01:00
Alug 8fa3a73fb2 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-04 21:04:45 +01:00
Alug 5c8b318a93 make float and sink use accel and brake again but also keep rebindable controls
keeps intended behaviour since we now dont need to worry about player controls anymore
but keeps the rebindable buttons incase someone wants to do a crazy control setup for some reason
2025-01-04 21:04:04 +01:00
Alug 029907a87a Merge branch 'Saturn-Next' into freecamstuffs 2025-01-04 19:46:42 +01:00
Alug 56cff59438 Merge branch 'nospecmove' into Saturn-Testing 2025-01-04 19:41:38 +01:00
Alug 2f4a113685 more hAx: dont move player during freecam state besides hop and honk
useful if you wanna take pics and dont feel like driving away
2025-01-04 19:38:08 +01:00
Alug f512a08051 dont do this while not in replay
this is kinda awkward tbh, but its useful for replay stuff
2025-01-04 19:38:05 +01:00
Alug cb223d7ddf Merge branch 'nospecmove' into Saturn-Testing 2025-01-04 02:30:08 +01:00
Alug 96a4bf3464 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-04 02:30:06 +01:00
Alug 338bcf0d2d forgor about lookback ig 2025-01-04 02:30:01 +01:00
Alug 8cb7396f33 check for consoleplayer since displayplayer is who youre watching 2025-01-04 02:29:57 +01:00
Alug b69bb85003 remove redundant stuff
can just set this all the time, its only used when menu is active anyways so it doesent matter if we set it
2025-01-04 02:29:23 +01:00
Alug 729a74a561 remove redundant stuff
can just set this all the time, its only used when menu is active anyways so it doesent matter if we set it
2025-01-03 19:45:46 +01:00
Alug 5f0d47ca88 Merge branch 'nospecmove' into Saturn-Testing 2025-01-03 19:44:59 +01:00
Alug f9b1071539 simplify this 2025-01-03 19:44:10 +01:00
Alug 7d47834e55 oops smol error 2025-01-03 19:44:03 +01:00
Alug 2e1120dc50 move postimg flags to camera struct
- also dont let water and heat be applied on top of each other since it does not look good (water postimg takes priority over heat)
- also save a little time in opengl splitscreen since it does not support heat or wöter effects
2025-01-03 19:43:59 +01:00
Alug 64a2fe1410 clean shit up even more + fix cam aiming reset
dont really care about which input anyways.
2025-01-03 19:43:45 +01:00
Alug caa09cbcfb try and clean up this mess
+ fix cam angle being wrong when you switch to freecam from viewing someone
2025-01-03 19:43:36 +01:00
Alug ba4329e623 add another local ticcmd builder so it can guess if we "moved" and put us into freecam state and shit 2025-01-03 19:43:32 +01:00
Alug 575e46c3db let playercmd lua hook run during "spectator" input crap lmao 2025-01-03 19:43:19 +01:00
Alug 45237c9298 fix unitialised use of controller stuff 2025-01-03 19:43:10 +01:00
Alug 7de32c74e6 move spectator hack after pause/desynch code
this should take priority over everything
2025-01-03 19:43:04 +01:00
Alug 01b942e1fc giga shizo spec synch "fix"
ok so, for whatever dumb reason, spectatormovement will desynch at random, even on localhost.
with this we just literally fucking ignore almost every button input locally and just wont move our spectator player at all.
but since we are indeed still runiing specatotr movement code, and this is localcmd shit, the server just thinks we dont want to move and thus is "synchsave".
sadly this does not fix desynchs from vanilla players
the only code we keep is for button inputs that do certain actions like "item" so we can still join from spec with it and other crap
2025-01-03 19:42:58 +01:00
Alug 3388d35fe0 fix encore mirroring not applyingg to freecam/democam 2025-01-03 16:41:01 +01:00
Alug 2f014bb505 apparently this is slower for everything but rendering 2025-01-03 15:56:46 +01:00
Alug f9f7090b63 save subsector checks for dedi 2025-01-03 15:56:04 +01:00
Alug 0bc95e4b5e speed up camera position checks 2025-01-03 15:55:52 +01:00
Alug 250b41612e Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-03 15:55:32 +01:00
Alug c5b70ccc4a do NOT repeatedly call M_Responder!!
"thread safety" or smth
also put stuff into two seperate functions, since i started hating nesting
2025-01-03 15:55:07 +01:00
Alug 8b94aded16 smol fix 2025-01-03 15:54:52 +01:00
Alug e105d8f51e apparently this is slower for everything but rendering 2025-01-03 15:54:44 +01:00
Alug 54ed725061 didnt mean to revert this one 2025-01-03 15:54:01 +01:00
Alug 5844330301 only ever touch this if player has a mobjs
angleturn is dumb in kart and rarely really is what we want
2025-01-03 01:14:15 +01:00
Alug d1c80dfd9b smol fix 2025-01-02 22:54:16 +01:00
Alug b2097e2f93 apparently this is slower for everything but rendering 2025-01-02 21:50:57 +01:00
Alug 7386a2f40f let windoze detect 64bit mingw in makefile
lets us use just "make" cmd without specifieng any other crap on mingw64
2025-01-02 19:53:59 +01:00
Alug 5a1ecb55b8 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-02 17:09:48 +01:00
Alug b05d7d09cf Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-02 17:09:45 +01:00
Alug 30dc0abc25 move camera noclip stuff into its own function
its not used in kart anyways and moving it makes crap more readable
2025-01-02 17:09:34 +01:00
Alug a7a6e9edfc move camera noclip stuff into its own function
its not used in kart anyways and moving it makes crap more readable
2025-01-02 17:09:13 +01:00
Alug 854cb7ee49 this doesent work for us 2025-01-02 05:21:40 +01:00
Alug f7ca8fb943 add speccam playerflag
the other thing was weird and dumb lol
2025-01-02 04:54:25 +01:00
Alug dc0423f97e Merge remote-tracking branch 'origin/Saturn-Testing' into Saturn-Testing 2025-01-02 03:28:26 +01:00
Alug af968f1868 add speccam playerflag
the other thing was weird and dumb lol
2025-01-02 03:28:21 +01:00
Alug 2cc73cc52a this may not be synchsafe 2025-01-02 01:50:37 +01:00
Alug 28109dfb39 save subsector checks for dedi 2025-01-02 01:39:10 +01:00
Alug 2912994e6b speed up camera position checks 2025-01-02 01:39:07 +01:00
Alug 6d6d5996d7 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-02 01:39:03 +01:00
Alug 54fda32591 logic error lmao oops 2025-01-01 21:53:01 +01:00
Alug 5d44b44558 use FRACUNIT in rumbleticker + some changes
- brakedrift will now add to any rumble thats currently going on
- both hyu and invul now rumble less heavy on offroad
2025-01-01 21:34:14 +01:00
indev e321d759c0 Thats not defined or used anywhere, bad automerge maybe? 2025-01-01 20:01:54 +03:00
indev bb3a65f8ff Repurpose ST_DrawTextInput into M_DrawTextInputScroll, and move its definition into m_textinput.c. M_DrawTextInput is now a macro using M_DrawTextInputScroll 2025-01-01 19:59:25 +03:00
Alug 8da59dc288 slightly cleanup rumble and led ticker 2025-01-01 17:37:00 +01:00
Alug bd433e0776 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2025-01-01 17:22:51 +01:00
Alug fc9644f448 Merge branch 'precipthinklist' into Saturn-Testing 2025-01-01 17:22:29 +01:00
Alug 1558970064 Merge branch 'freecamstuffs' into Saturn-Testing 2025-01-01 17:20:04 +01:00
Alug 991dd55049 Merge branch 'Saturn-Next' into Saturn-Testing 2025-01-01 17:19:43 +01:00
Alug 8f0c5fb508 always close any menus when using "connect" command 2025-01-01 17:19:32 +01:00
Alug 5e1d43b5af those will never be changed ever 2025-01-01 17:19:29 +01:00
Alug 487018f146 hack: only let freecam for spec move when youre actually able to move as spec
cause kart weird, and we cant remove the spec movement due to synch reasons
and letting the cam move instantly instead of waiting, may put you in a weird cam position
2025-01-01 05:37:52 +01:00
Alug 3ade8b09c5 move early return even earlier
so theres no need to constantly init scale and drawdist
2025-01-01 05:30:31 +01:00
Alug 3180221a42 dont iterate through precip blockmap if there is no precip 2025-01-01 05:30:22 +01:00
Alug 9c37a8472e move early return even earlier
so theres no need to constantly init scale and drawdist
2025-01-01 05:11:31 +01:00
Alug 136d9143e7 we dont really need to check for precipthinkers in the precip thinkerlist
also makes precip handling in P_NetUnArchiveThinkers a little safer
2025-01-01 05:11:28 +01:00
Alug 4aad4887fd dont iterate through precip blockmap if there is no precip 2025-01-01 05:11:25 +01:00
Alug dfee1cc490 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-31 02:53:22 +01:00
Alug ffc7832ec7 attempt to optimize column drawers a little 2024-12-31 02:52:30 +01:00
Alug 3910e66905 dont try to chase after your spec mobj lel 2024-12-30 23:11:00 +01:00
Alug 6fcfb9cf36 readd this check lel 2024-12-30 22:21:38 +01:00
Alug 83d2ade699 seperate thinkerlist for precip
i sure hope i handled everything right lmao
2024-12-30 18:00:18 +01:00
Alug fef98e478d add extra driftgauge option before i forger about it again 2024-12-30 17:55:50 +01:00
Alug f7ba260717 just skip missing/broken fields in musiccredit handling
like vanilla kek
still will throw warnings but atleast will show stuff if theres anything left in the musicdef
2024-12-30 17:53:06 +01:00
Alug 82f9f2f73f delet all the hardware sound crap
psure it doesent even properly work at this point
2024-12-30 17:51:57 +01:00
Alug e649690f6a Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-30 17:34:50 +01:00
Alug 182500c2d2 fix potential Fix segfault when aborting HTTP download 2024-12-30 17:34:45 +01:00
Alug aca48d45b3 fix potential crash with perfstats
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2576
2024-12-30 17:34:40 +01:00
Alug 783682251f Merge branch 'freecamstuffs' into Saturn-Testing 2024-12-30 11:34:45 +01:00
Alug b2823c81e4 fix jitter when toggling freecam off 2024-12-30 11:34:40 +01:00
Alug 7465e1ae4b kill splitscreen director again 2024-12-30 11:34:10 +01:00
Alug 743d1a0e86 Merge branch 'freecamstuffs' into Saturn-Testing 2024-12-30 11:31:42 +01:00
Alug 761df3f2cf hide director control stuff for others than player 1 2024-12-30 11:30:53 +01:00
Alug 6f3443232e Merge branch 'Saturn-Next' into freecamstuffs 2024-12-30 11:30:46 +01:00
Alug 588dac343e dont disable this.... if its disabled kek 2024-12-30 11:24:23 +01:00
Alug aa222b6861 slight cleanup director 2024-12-30 11:10:41 +01:00
Alug 6d01ec4c55 dont need this anymore 2024-12-29 19:46:44 +01:00
Alug f72c64d7d1 fix some potential issues with viewinterp
now unpaused disabled interp on netlag
also fixes screencoord stuff not being interpolated during pause
2024-12-29 19:46:41 +01:00
Alug 92a3e974b0 fix driftgauge showing with freecam while ingame 2024-12-29 19:46:35 +01:00
Alug 7d6cce5881 readd cam cmd stuff
cause it may break the cam in replays or smth a
2024-12-29 19:46:33 +01:00
Alug 17f6f1cd4c use V_STEELMAP for white skincolours instead
cause white on white be weird
2024-12-29 18:43:54 +01:00
Alug 4b856fba2a z 2024-12-29 18:43:49 +01:00
Alug 3a8e4e065e draw gametype in tabrankings during replay playback
replays already show the mapname in there so
2024-12-29 18:43:41 +01:00
Alug 43f9bd5239 make highlight color in scoreboard and tab ranking player coloured
also make it appear in splitscreen
similar to hostmod things
2024-12-29 18:43:31 +01:00
Alug 6f5a0b9a3f also add playernum var to tabrankings drawer 2024-12-29 18:43:16 +01:00
Alug ecf55e64ae more smol refactoring 2024-12-29 18:43:08 +01:00
Alug cd566ac9c0 refactor intermission standings drawer
abstract the data stuff too
2024-12-29 18:42:56 +01:00
Alug b3323b7c2d change error msg 2024-12-29 17:45:28 +01:00
Alug 70e64d9471 reset demo recording in those places 2024-12-29 17:43:21 +01:00
Alug cbc3f8e917 add warning for non allocated demobuffer 2024-12-29 17:39:02 +01:00
Alug 55dfdc723f fix demo playback 2024-12-29 17:24:45 +01:00
Alug 6101ded74a allocate some extra buffer for demobuffer
incase this might overflow that we dont write to unvalid memory
thx indev <3
2024-12-29 16:59:10 +01:00
Alug 0d49bbfa7a Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-29 17:45:33 +01:00
Alug f6d83c17bd fix demo playback 2024-12-29 17:24:38 +01:00
Alug ac90a0973d fix wrong cam default controls 2024-12-29 16:51:42 +01:00
Alug 27d6447a83 fix wrong cam default controls 2024-12-29 16:51:18 +01:00
Alug f195c61200 Merge branch 'splitscreendirector' into Saturn-Testing 2024-12-29 16:48:17 +01:00
Alug 20044fa6a7 Merge branch 'freecamstuffs' into splitscreendirector 2024-12-29 16:47:25 +01:00
Alug 26480882c8 remove the remainder or demo.freecam 2024-12-29 16:43:34 +01:00
Alug b23020435f replace all this crap with either stplyrnum or R_GetViewNumber 2024-12-29 16:43:09 +01:00
Alug 267e2be69b fix offbyone issue 2024-12-29 16:42:33 +01:00
Alug b9428360c0 Merge branch 'Saturn-Next' into splitscreendirector 2024-12-29 16:16:59 +01:00
Alug 2112be8ef7 Merge branch 'Saturn-Next' into freecamstuffs 2024-12-29 16:16:49 +01:00
Alug e5ee978eb2 Merge branch 'Saturn-Next' into delaynetxcommand 2024-12-29 16:16:33 +01:00
Alug 55fd31894b Merge branch 'Saturn-Next' into checkposopti 2024-12-29 16:15:23 +01:00
Alug 189d9adef5 Merge branch 'Saturn-Next' into fixdupeacks 2024-12-29 16:15:00 +01:00
Alug 44288a5865 Merge branch 'unglobsavep' into Saturn-Next 2024-12-29 16:04:21 +01:00
Alug 66f89fb4ad oops 2024-12-29 16:03:56 +01:00
Alug eceb671ea8 add missing include 2024-12-29 16:02:05 +01:00
Alug a15615a229 add missing include 2024-12-29 16:01:35 +01:00
Alug 8e10bcc739 add a bunch of extra checks into demo stuff
buffer may be NULL in some cases
should fix dedis crashing when replay recording is disabled
2024-12-29 15:59:10 +01:00
Alug 22e65cd5e7 fixup conflicts 2024-12-29 15:58:43 +01:00
Alug 72383520cb Merge branch 'Saturn-Next' into unglobsavep 2024-12-29 15:51:25 +01:00
Alug 38ef55b869 add a mipmap check here ig 2024-12-29 15:41:28 +01:00
Alug 55c7dd860c fix offbyone issue 2024-12-29 15:39:39 +01:00
Alug ecefd1d3ee Merge branch 'splitscreendirector' into Saturn-Testing 2024-12-29 16:35:38 +01:00
Alug 0cdd0ca583 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-29 16:17:16 +01:00
Alug 31a0122cd1 add a bunch of extra checks into demo stuff
buffer may be NULL in some cases
should fix dedis crashing when replay recording is disabled
2024-12-29 15:43:04 +01:00
Alug 6777cd2a9c Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-29 15:42:58 +01:00
Alug 649373ff51 Merge branch 'freecamstuffs' into splitscreendirector 2024-12-29 06:41:40 +01:00
Alug ca09a5dd46 dont need to do this twice 2024-12-29 06:41:11 +01:00
Alug 11546cd906 fix centerview 2024-12-29 06:41:07 +01:00
Alug 4110130ca7 block freecam toggling when player is in spec 2024-12-29 06:41:04 +01:00
Alug 6b9900ad4e clean up cam stuff for good 2024-12-29 06:41:00 +01:00
Alug 97e6222176 make function to return button names
to use with new rebindable cam controls
2024-12-29 06:03:20 +01:00
Alug 3d39f50388 make function to return button names
to use with new rebindable cam controls
2024-12-29 06:03:10 +01:00
Alug eef56a7c82 make debugdirector show stuff for p1 atleast 2024-12-29 05:51:13 +01:00
Alug 8853666645 track views in directorinfo structs
should hopefully fix any potential remaining issues
2024-12-29 05:45:04 +01:00
Alug a379764076 fix director toggling + smol cleanup 2024-12-29 05:45:01 +01:00
Alug edd1cc6059 Merge branch 'freecamstuffs' into splitscreendirector 2024-12-29 05:44:53 +01:00
Alug f355b2269c toggle off freecam when f12ing 2024-12-29 05:42:31 +01:00
Alug 03280db377 missing inlucde 2024-12-28 18:52:57 +01:00
Alug 86aeff5547 cleanup K_DirectorIsAvailable 2024-12-28 18:25:23 +01:00
Alug b5b2062efa add K_DirectorIsAvailable 2024-12-28 18:25:05 +01:00
Alug b51731d675 cleanup director splitscreen stuff 2024-12-28 17:48:02 +01:00
Alug 229e8d9592 WIP splitscreen director lel 2024-12-28 17:47:58 +01:00
indev da9c19bba4 Update replayfreecam lua global to use camera.freecam for currently viewed player 2024-12-28 18:48:58 +03:00
Alug 3156851554 fix cam interp during pause again 2024-12-28 04:01:21 +01:00
Alug a19cb5f2bc fix speccam again 2024-12-28 04:01:18 +01:00
Alug 2639f94dff fix freecam not being steerable when not in spec
ugh this is godawful
its literally almost a complete copy of
2024-12-28 03:44:32 +01:00
Alug 2c769f8043 changable freecam speed 2024-12-28 01:46:20 +01:00
Alug 332f7db32f make freecam work in splitscreen
banish cameracmd shit
2024-12-28 01:46:17 +01:00
Alug 3381f6af3a set default controls for float and sink ig 2024-12-28 01:46:12 +01:00
Alug 45d33b951c add alternative cam float and sink buttons 2024-12-28 01:46:09 +01:00
Alug 1922b32799 add bindable freecam toggle 2024-12-28 01:46:06 +01:00
Alug 6bb72c363f fix freecam not being interpolated when ingame 2024-12-28 01:46:03 +01:00
Alug 378382f3ad use demo freecam for spec
its more versataile and lets you pass through walls and floors just like in replays
2024-12-28 01:45:59 +01:00
Alug 7e09493cf2 whoops this never did anything lol 2024-12-26 16:01:49 +01:00
Alug 5c6bd1a043 oops forgor 2024-12-26 15:38:43 +01:00
Alug dcdd5e8f2d Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-26 16:33:01 +01:00
Alug 126fce9119 1px 2024-12-26 01:08:12 +01:00
Alug a3b3f91f8d 1px 2024-12-26 01:08:01 +01:00
Alug 69568378ec Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-26 01:01:00 +01:00
Alug 0b5879ffb3 fix compile 2024-12-26 01:00:52 +01:00
Alug 0bd2c6220d drifgauge gfx using the extra 3 speedometer sticker
arsepain
+ smol cleanup colorhud
2024-12-26 01:00:27 +01:00
Alug a434ce2080 super smol optimizations 2024-12-26 00:57:19 +01:00
Alug 8776b36bb0 super smol optimizations 2024-12-26 00:56:50 +01:00
Alug 9bde946c55 add tweakmap support
https://git.do.srb2.org/KartKrew/RingRacers/-/commit/7fb44bdb0239a8012be73cb9ee384a9fdca9addb
2024-12-25 01:57:51 +01:00
Alug c74898b970 make those const 2024-12-23 18:09:53 +01:00
Alug f0f2314639 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-23 17:46:20 +01:00
Alug c8193380e7 make some cam stuff behave exactly like vanilla again
no clue if this changes anything at all, but cam stuff be causing so many issues id rather just have it behave like it used to
2024-12-23 17:45:59 +01:00
Alug e38580c9c2 dont remember removing this in s_sound 2024-12-23 17:45:54 +01:00
indev edf38cef33 If player has mobj, use it to assign localangle in G_FixCamera 2024-12-23 12:41:50 +03:00
Alug a700ec32fd fixeur comptime stuff (thx indev <3) 2024-12-23 00:37:51 +01:00
Alug 7dcd5f41ec use P_MobjWasRemoved for HWR_DrawSprite 2024-12-22 21:19:19 +01:00
Alug c46ff7daff use P_MobjWasRemoved for HWR_DrawSprite 2024-12-22 21:19:08 +01:00
Alug d2ca916043 settable mobj lightlevel from lua 2024-12-22 20:58:23 +01:00
Alug 09e901b31b readd mobj lightlevel field so i dont have to edit frameflags 2024-12-22 20:58:20 +01:00
Alug 01208a858d settable mobj lightlevel from lua 2024-12-22 20:58:02 +01:00
Alug c379db831c readd mobj lightlevel field so i dont have to edit frameflags 2024-12-22 20:57:56 +01:00
Alug d478a8a8b4 just skip missing/broken fields in musiccredit handling
like vanilla kek
still will throw warnings but atleast will show stuff if theres anything left in the musicdef
2024-12-22 19:59:53 +01:00
Alug 4418653edb Merge pull request #147 from Indev450/refactorogl
Refactor OpenGL library handling
2024-12-22 19:22:12 +01:00
Alug 1d9bcaa786 Merge branch 'Saturn-Next' into refactorogl 2024-12-22 19:21:27 +01:00
Alug 8bd943eb71 Merge remote-tracking branch 'origin/Saturn-Next' into directionallight 2024-12-22 18:57:38 +01:00
Alug 39535e9bf8 this stuff somehow wasnt merged 2024-12-22 18:52:27 +01:00
Alug db90142c4b Merge branch 'checkposopti' into Saturn-Testing 2024-12-22 18:45:53 +01:00
Alug 63bd3374be Merge branch 'optimobjz' into Saturn-Testing 2024-12-22 18:45:48 +01:00
Alug 7a232c8f5d fix compile 2024-12-22 18:39:04 +01:00
Alug b24c59ce55 fix compile 2024-12-22 18:38:57 +01:00
Alug 34f9dd9ea2 fix compile 2024-12-22 18:38:45 +01:00
Alug 0290c738e1 fix compile 2024-12-22 18:38:39 +01:00
Alug 0acb8e6a63 fix compile 2024-12-22 18:38:31 +01:00
Alug 27bfd0078c fix compile 2024-12-22 18:38:17 +01:00
Alug a98ab3d823 Merge branch 'Saturn-Next' into checkposopti 2024-12-22 18:25:10 +01:00
Alug bbf4de4f5e Revert "add P_CheckPositionShadow just for shadow mobjs"
This reverts commit 7edce19c9c.
2024-12-22 18:25:03 +01:00
Alug 4d3fba2bd0 Merge branch 'Saturn-Next' into optimobjz 2024-12-22 18:24:29 +01:00
Alug 83cc7015bf Revert "add shadows to faster slope z checking"
This reverts commit 4aaa2c6fed.
2024-12-22 18:24:26 +01:00
Alug f20297b5dd Merge branch 'Saturn-Next' into delaynetxcommand 2024-12-22 18:24:17 +01:00
Alug b4521643b2 Merge branch 'Saturn-Next' into fixdupeacks 2024-12-22 18:24:08 +01:00
Alug dfe151ccb1 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-22 18:23:57 +01:00
Alug 67a75730d0 Revert "massive cleanup unused code"
This reverts commit e35612a6f6.
2024-12-22 18:23:38 +01:00
Alug d12369f6f4 add some () 2024-12-22 01:47:14 +01:00
Alug 4a7ce87ac2 do the same for R_ProjectPrecipitationSprite 2024-12-22 01:44:33 +01:00
Alug d8b36ef0da dont put potential null mobj into interpolation stuff 2024-12-22 01:42:51 +01:00
Alug 1341ec80bf dont dereference potential null mobjs in software projectsprite 2024-12-22 01:40:52 +01:00
Alug 9882291828 compiler pls shut up 2024-12-22 01:32:05 +01:00
Alug aa4fa1e42e use P_MobjWasRemoved and null check for thing subsector in projectsprite 2024-12-22 01:32:01 +01:00
Alug 8a641d3e37 fix fade to menu again oops 2024-12-20 18:23:27 +01:00
Alug 317f5f8d48 fix no fbo compile 2024-12-20 18:23:25 +01:00
Alug 98f136e747 fix fade to menu again oops 2024-12-20 17:20:16 +01:00
Alug 94792fe571 fix no fbo compile 2024-12-20 17:19:12 +01:00
Alug 92c0ddd068 always reset those just in case 2024-12-20 11:35:30 +01:00
Alug 6a43f0a09d Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-20 11:34:30 +01:00
Alug 4f037896db oops this is lugstuff only lel 2024-12-20 11:27:49 +01:00
Alug 494a87feea idk just set to false here too 2024-12-20 11:19:18 +01:00
Alug 4a3af6bc8a whoops 2024-12-20 03:17:20 +01:00
Alug 0c7851bd26 try to clean up downsampling and resolution checking stuff
- global function that updates variables with current display resolution
-smol boolean function that quickly checks if the game res matches the desktop res
- i_downsample has been simplyfied a bit
2024-12-20 03:13:17 +01:00
Alug 5b46ae2eb9 better nvidia xwayland workaround handling
what in the world was i thinking????
2024-12-20 03:12:57 +01:00
Alug 2034eedbe4 add another early return 2024-12-20 01:21:09 +01:00
Alug fde4f64b83 simplify this crap and make compiler happy 2024-12-20 00:59:46 +01:00
Alug 404927c53c no 2024-12-20 00:59:22 +01:00
Alug e0796b0cf1 just query this once 2024-12-20 00:59:18 +01:00
Alug 8df8749a9c return false here 2024-12-20 00:58:41 +01:00
Alug 1c2fb14f45 makes no sense without screen tex 2024-12-20 00:58:35 +01:00
Alug 4a2354ab26 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-19 22:42:41 +01:00
Alug 82f70ff75e fix compile due to missing am_map.h include 2024-12-19 22:42:22 +01:00
Alug 46b2d5fbcd fix compile without USE_FBO_OGL 2024-12-19 22:40:28 +01:00
Alug be8cd85bfe Merge branch 'delaynetxcommand' into Saturn-Testing 2024-12-19 20:56:42 +01:00
Alug 7c4eefe8ee Merge branch 'fixdupeacks' into Saturn-Testing 2024-12-19 20:56:37 +01:00
Alug 19d6e30889 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-19 20:56:35 +01:00
Alug 23b2e35dbd use slightly diff maths for skydomevertex calc
from DSDA-Doom
maybe fixes some issues with certain skydomes?
2024-12-19 20:56:25 +01:00
Alug a576ddf0e4 oops 2024-12-19 20:43:05 +01:00
Alug df63b3ece0 add "listmapthings" and "listunusedsprites" commands
the former also shows duplicated mapthings
2024-12-19 20:34:10 +01:00
Alug 3174d8fb1c Fix segfault when sending excessively large netcmds
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2568/diffs?commit_id=457b761d9301b1904c414a8e8ba908f74b9ab959
2024-12-18 19:40:36 +01:00
Alug bed0e65548 potential fix for clients locking up due to never receiving acks back
apparently, if the client doesent receive an ack back which may happen due to duplicate packets/bad net conditions, it may spam resend the packet until its netxcmd buffer is full and locks up
2024-12-16 22:01:32 +01:00
Alug 1357978596 init textcmdbuf to NULL
just in case
2024-12-16 21:58:51 +01:00
Alug c5765c20bc delay NetXCmd´s instead of dropping them when the buffer is full
credits and many thanks to Hanicef!
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2568
2024-12-16 21:58:48 +01:00
Alug 174af34115 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2024-12-16 17:09:40 +01:00
Alug 52cd614613 prevent potential crash if viewmobj was removed 2024-12-16 16:38:03 +01:00
Alug 5c3711bcc8 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-16 15:49:01 +01:00
Alug db04046cb3 smol fix for gamma stuff
-dont apply gamma adjust when gamma is on default value
-fix saturation not being applied on console on OpenGL without paletterendering
2024-12-16 15:48:33 +01:00
Alug 5ec48f72e0 fix changing gamma absolutely trashing performance
not quite sure why it made stuff die so much but uhhh
instead i just check in the cube initialistion function instead and only let it build when needed to not change how the game looks with raised gamma values
2024-12-15 22:14:57 +01:00
Alug 31aef1d200 fix changing gamma absolutely trashing performance
not quite sure why it made stuff die so much but uhhh
instead i just check in the cube initialistion function instead and only let it build when needed to not change how the game looks with raised gamma values
2024-12-15 22:14:05 +01:00
Alug 4aaa2c6fed add shadows to faster slope z checking 2024-12-14 22:50:30 +01:00
Alug 5d3c84327d Merge branch 'Saturn-Next' into optimobjz 2024-12-14 22:50:24 +01:00
Alug 909307f5ce only check if polyobjcst are on the map 2024-12-14 22:50:11 +01:00
Alug 7c7582f09b forgor about cameracheckposition 2024-12-14 22:50:07 +01:00
Alug 6f6dff4897 only check for polyobjects in the blockmap if there even are polyobjects
this saves the trouble of iterating through the blockmap every single time P_CheckPosition is called if there are no polyobjects present on the map
2024-12-14 22:50:04 +01:00
Alug 8611e70ba3 smol calc optimization P_Checkposition 2024-12-14 22:50:00 +01:00
Alug 7edce19c9c add P_CheckPositionShadow just for shadow mobjs
its basically just R_GetShadowZ from the render based shadows from srb2 lmao
hope this is synchsafe
2024-12-14 22:49:57 +01:00
Alug de52b1663d Merge branch 'Saturn-Next' into checkposopti 2024-12-14 22:49:50 +01:00
Alug eb1feba304 only check if polyobjcst are on the map 2024-12-14 22:49:32 +01:00
Alug 9df6368558 forgor about cameracheckposition 2024-12-14 22:49:25 +01:00
Alug 0a6092b738 only check for polyobjects in the blockmap if there even are polyobjects
this saves the trouble of iterating through the blockmap every single time P_CheckPosition is called if there are no polyobjects present on the map
2024-12-14 22:49:21 +01:00
Alug 6b852822a5 smol calc optimization P_Checkposition 2024-12-14 22:49:17 +01:00
Alug b4cde98526 add P_CheckPositionShadow just for shadow mobjs
its basically just R_GetShadowZ from the render based shadows from srb2 lmao
hope this is synchsafe
2024-12-14 22:49:13 +01:00
Alug 5f0f1966a8 add shadows to faster slope z checking 2024-12-14 22:49:08 +01:00
Alug dbadee987c delet all the hardware sound crap
psure it doesent even properly work at this point
2024-12-14 22:49:03 +01:00
Alug 995943d84d Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-14 22:48:24 +01:00
Alug 7a1c6bd9e4 slight cleanup K_GetScreenCoords and related functions
mostly just reducing scope and adding const clarifyier
also use mobjwasremoved checks everywhere instead of just simple null checks for some safety
2024-12-14 21:20:03 +01:00
Alug d8fe3920b1 fix papersprite lightlevels again kek + remove shit that does nothing 2024-12-14 17:14:20 +01:00
Alug 75af036fcf seems like you CANNOT apply dispoffset to papersprites
well then
2024-12-14 16:53:34 +01:00
Alug accc9890df fix inverted papersprite roll
oopsie
2024-12-14 16:53:31 +01:00
Alug a920556feb fix papersprite directional light
uhhh idk??
also passes papersprite bool directly instead of rechecking every frame for it
2024-12-14 16:53:23 +01:00
Alug 351cb4a1ac Merge branch 'Saturn-Next' into directionallight 2024-12-14 16:53:20 +01:00
Alug 764a5f3e0a Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2024-12-12 23:15:12 +01:00
indev cb97973b1c Merge pull request #150 from utkumaden/Saturn
Fixed gr_glinfo crash when there are way too many extensions present.
2024-12-12 19:21:15 +03:00
themixedupstuff 331f09cdd9 Fixed gr_glinfo crash when there are way too many extensions present. 2024-12-12 19:17:04 +03:00
indev 939084d57b Avoid overflowing CONS_Printf's buffer by using vsnprintf 2024-12-12 18:47:35 +03:00
indev 1cbfc71fc6 Revert "Change gl_extension to use glGetStringi instead of glGetString"
This reverts commit 7b550200f0.

Not supported on opengl version before 3.0 unfortunately
2024-12-12 18:03:16 +03:00
indev 7b550200f0 Change gl_extension to use glGetStringi instead of glGetString 2024-12-12 17:52:36 +03:00
Alug d41a2adce7 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Testing 2024-12-12 14:40:21 +01:00
indev 665a11fa2b Merge branch 'Saturn-Next' into refactorogl 2024-12-12 14:38:59 +03:00
indev 1a49b161cc Merge pull request #146 from utkumaden/Saturn
Add gr_glinfo.
2024-12-12 14:34:32 +03:00
Alug 521b53dc09 maybe fix fade stuff idk 2024-12-12 02:32:19 +01:00
Alug 2c94ae8bb4 seperate thinkerlist for precip
i sure hope i handled everything right lmao
2024-12-12 02:32:07 +01:00
Alug ebbedc558d Merge branch 'refactorogl' into Saturn-Testing 2024-12-12 02:32:01 +01:00
Alug 0065c3d610 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-12 02:31:52 +01:00
Alug 99e4870a52 check for the flag first 2024-12-12 02:31:44 +01:00
Alug 13ad27bc90 remove some precip code dupe 2024-12-12 00:30:54 +01:00
Alug 7ae361cb7c better cv_lessprecip handling
idk what i was thinking lmao
2024-12-12 00:11:50 +01:00
Alug 0e1bfbb0b5 clean up hw_cache stuff + fix accidental wrong cast 2024-12-11 23:24:00 +01:00
Alug 3dec352245 smol cleanup GL_SetBlend
use early return since i likeit more
2024-12-11 22:14:20 +01:00
Alug 8e273a1f19 GL_UpdateTexture can be static 2024-12-11 22:14:17 +01:00
Alug 1ab20814e9 simplify GL_SetPalette
can just copy the whole struct
2024-12-11 14:39:38 +01:00
Alug 0325ba4c0a simplify GL_SetPalette
can just copy the whole struct
2024-12-11 14:39:24 +01:00
Alug b348bff7a8 Merge branch 'refactorogl' into Saturn-Testing 2024-12-11 14:23:57 +01:00
Alug 37649a0d3c more cleanup GL_UpdateTexture
also some optimizations
2024-12-11 14:23:51 +01:00
Alug f3d1bf1106 clean up GL_UpdateTexture
use switches and reduce code dupe
2024-12-11 14:23:48 +01:00
Alug 93311c628e Merge branch 'Saturn-Next' into refactorogl 2024-12-11 14:23:42 +01:00
Alug b5e43ed73b Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-11 03:11:38 +01:00
Alug f8dfc954a0 test "or" 2024-12-11 03:11:33 +01:00
Alug 7ac2ba90b1 cast this 2024-12-11 02:03:14 +01:00
Alug f869393da4 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-11 02:03:08 +01:00
Alug dbe5f8a4ba clamp splitsprite heights aswell 2024-12-11 01:26:04 +01:00
Alug a05c38b1fe those should better be clamped oops 2024-12-11 01:25:55 +01:00
Alug 91b6143f15 clean up this stuff; make splitwall behave more like vanilla
changes some splitwall issues slightly but gives bit better performance in some cases
2024-12-11 01:25:52 +01:00
Alug 0eaedd4b5e "extra safety" 2024-12-11 01:25:42 +01:00
Alug 727a31fdb5 one line those 2024-12-10 21:18:20 +01:00
Alug 3b64263dc6 Unconditionally interpolate view
even if it may NOT change
but i get the feeling it may cause some issues
2024-12-10 21:18:17 +01:00
Alug 83b6a63f13 dont pass fwrapv to compiler flags
this technically changes behavior of some things, even if it MAY fix some undefined behaviour
2024-12-10 21:18:14 +01:00
Alug 6ccece4603 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-09 23:20:13 +01:00
Alug f6f6600118 interp.subsector is unused
so dont need to assign it nor call pointinsubsector for nothing
2024-12-09 23:20:07 +01:00
themixedupstuff 04c0bf2f17 Fix compiler warning on implicit GLuint* to GLint* conversion. 2024-12-09 17:30:04 +03:00
Alug 4da9c5ac07 "P_CheckSightFast" for lua
should be faster than normal P_CheckSight
only to be used for things like nametags etc so nothing gameplaywise as it will desynch
2024-12-09 10:53:11 +01:00
Alug 97cae4de59 smol things 2024-12-09 10:53:08 +01:00
Alug 9d1bef9ab9 i love menus 2024-12-09 10:19:32 +01:00
Alug 4bd2ba4d13 show commit on main menu for now
dont feel like always changing version strings for testing builds so thisll do
2024-12-09 10:19:14 +01:00
Alug ab0a3cde78 i love menus 2024-12-09 10:18:27 +01:00
Alug 72f9e4485e change testing versionstring 2024-12-09 10:17:58 +01:00
Alug 87c536b698 this does not work on windoze builds
rev-parse seems to do the job tho?
2024-12-09 10:16:56 +01:00
Alug ac03bad282 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-09 10:53:17 +01:00
Alug 9efdcc1f34 HWDEEZ 2024-12-08 19:07:00 +01:00
Alug f26a965ea9 Merge branch 'directionallight' into Saturn-Testing 2024-12-08 19:05:56 +01:00
Alug 5c7bd954a2 fix up! 2024-12-08 19:05:13 +01:00
Alug 184cb8ba19 Merge remote-tracking branch 'origin/jittest' into Saturn-Testing 2024-12-08 18:57:25 +01:00
Alug 1d324a2d94 Merge branch 'optimobjz' into Saturn-Testing 2024-12-08 18:57:21 +01:00
Alug eeeb3440c2 Merge branch 'refactorogl' into Saturn-Testing 2024-12-08 18:57:16 +01:00
Alug a1c965584e Merge branch 'checkposopti' into Saturn-Testing 2024-12-08 18:57:12 +01:00
Alug e5b4905a12 Merge branch 'Saturn-Next' into Saturn-Testing 2024-12-08 18:57:04 +01:00
Alug f64ba96962 Merge remote-tracking branch 'ghg/ljtest' into jittest 2024-12-08 18:53:30 +01:00
Alug 0eec77d8b3 a 2024-12-08 18:43:17 +01:00
Alug 7efbe2213a port over bluajit stuff 2024-12-08 18:41:02 +01:00
Alug ffa25d1690 actually use the flags lol 2024-12-08 16:02:24 +01:00
Alug 74088c1d26 use loop instead of memcpy for setpalette
idk last time this died with models for some reason kek
2024-12-08 15:43:46 +01:00
Alug b03e74c366 rename to "hw_gl" 2024-12-08 15:39:52 +01:00
Alug cd9ee7d139 smol cleanup 2024-12-08 15:31:41 +01:00
Alug 3080f2953d optimized checksight for nametags and camera
idk should this be exposed to lua too?
2024-12-08 15:26:40 +01:00
Alug f7c7dae3a5 smol cleanup p_sight 2024-12-08 15:14:04 +01:00
Alug 3f16f42adf forgor 2024-12-08 05:03:36 +01:00
Alug feeb2d0f1a use early return
no need to check for all this crap if we can use it anyways
2024-12-08 04:39:12 +01:00
Alug 4c680808c1 dont always call R_PointInSubsector if thing has not moved
R_PointInSubsector is quite expensive
needs alot of testing
2024-12-08 04:22:03 +01:00
Alug 13a5909c3f oop 2024-12-08 04:13:16 +01:00
Alug 40be4d25a5 menu oopsie 2024-12-08 04:07:05 +01:00
Alug d84f887be8 clear maplight on toggling
so you only have to wait until nextmap for effect to do smth instead of game restart
2024-12-08 04:07:03 +01:00
Alug 009d851b58 this is needed 2024-12-08 03:36:48 +01:00
Alug 6d5e6add9b Optimize Z Postion checks for collisionless mobjs
a bit of speedup
hopefully should be synchsafe
2024-12-08 03:35:42 +01:00
Alug 62f7915e97 Merge branch 'Saturn-Next' into optimobjz 2024-12-08 03:34:29 +01:00
Alug 7b2e763d07 inline those two
smol speedup
2024-12-08 03:34:19 +01:00
Alug bc29d77aff menu entry 2024-12-08 03:31:53 +01:00
Alug 8db2e646db oop 2024-12-08 03:28:44 +01:00
Alug 3b2e207b6b make random directionallight toggable 2024-12-08 03:27:45 +01:00
Alug f061d66a16 conflict fix 2024-12-08 03:24:58 +01:00
Alug 8c295e8d5f port rr´s directional light 2024-12-08 03:22:34 +01:00
Alug c1b771fdc8 fix make files 2024-12-08 03:16:13 +01:00
Alug e5b12ece35 change this 2024-12-08 03:15:14 +01:00
Alug 43c99f8851 delet this 2024-12-08 03:13:50 +01:00
Alug 7304988071 fix conflitc 2024-12-08 03:12:48 +01:00
Alug d0b0a7490a Merge branch 'Saturn-Next' into refactorogl 2024-12-08 03:06:26 +01:00
Alug de4bcec782 make those less chaotic 2024-12-08 01:34:16 +01:00
Alug 0e843c2a96 stuff 2024-12-08 01:33:53 +01:00
Alug 9abd34baa3 proper macros 2024-12-08 01:33:44 +01:00
Alug 4fca31049f no need to set all that stuff manually 2024-12-07 12:52:09 +01:00
Alug 13f6b62dc0 port updated skydome code from srb2
seems to actually fix some visual issues on certain maps with it
2024-12-07 12:38:53 +01:00
Alug 3a5b282b9b try less maths for projectionmatrix
from dsdadoom again lul
2024-12-07 12:33:13 +01:00
themixedupstuff d763456655 Add gr_glinfo. 2024-12-05 22:38:47 +03:00
themixedupstuff b23fa084f1 Add GL_VENDOR string to the list of global GL variables. 2024-12-05 21:54:31 +03:00
Alug 216acf083a bruh 2024-12-05 14:30:19 +01:00
Alug 686a9f7237 use long M_PI to fix some render issues 2024-12-05 14:30:16 +01:00
Alug 5a206822c5 little extra safety 2024-12-05 08:10:13 +01:00
Alug 9805b03533 reduce the scope of those
only this function needs those
2024-12-05 08:08:00 +01:00
Alug d519f9cf06 try fix keepmusic occasionally not working
idk but sometimes DoReborn broke it?
also this ensures keepmusic and skipintromus flags always get reset
2024-12-05 07:58:20 +01:00
Alug 6265d0e38e why does this need a variable?
it just gets assigned kartstuff[k_aizdriftstrat] anyways?
2024-12-04 14:23:06 +01:00
Alug 55d9d64910 clean up this mess 2024-12-04 14:23:03 +01:00
Alug e2a651e553 make those const 2024-12-04 14:23:00 +01:00
Alug e4343f0935 only ever call pointtoangle for sprites that really need it 2024-12-04 01:39:17 +01:00
Alug 68090a55e1 change this a little 2024-12-03 21:50:45 +01:00
Alug 00bdd684ed 1463 lmao change this to be readable
also raise to 40 secs
2024-12-03 20:52:02 +01:00
Alug f4e498e559 this may be used unitialised lul 2024-12-03 20:40:05 +01:00
Alug 39c33b1f59 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next 2024-12-03 20:39:54 +01:00
Alug 55acbb208e try to make demo data handling a bit safer
- Use Z_Malloc to allocate demobuffer
- Use Z_Free to free demobuffer
- Make functions for freeing and resseting demobuffer
- Always reset demobuffer when not saving
2024-12-03 20:39:46 +01:00
indev 208f96535e Add MENUCAPS to some menu options 2024-12-03 22:06:35 +03:00
Alug 64bda53a78 Merge pull request #144 from Indev450/mobjcache2
Cache and reuse removed mobjs when spawning mobjs - Take 2
2024-12-02 21:31:25 +01:00
Alug e016777331 Merge pull request #145 from Indev450/hooklibrefactor
Lua Hooklib refactor
2024-12-02 21:31:16 +01:00
Alug 508cab4a0d Merge pull request #142 from Indev450/fastpoinonside
Add R_PointOnSideFast and R_PointInSubsectorFast and use it to optimize some non synch critical things
2024-12-02 21:13:07 +01:00
Alug b779be3574 Merge branch 'Saturn-Next' into hooklibrefactor 2024-12-02 21:12:16 +01:00
Alug fddcebc2d2 Merge branch 'fastpoinonside' into mobjcache2 2024-12-02 21:11:18 +01:00
Alug 91c5dc3c19 Merge branch 'Saturn-Next' into fastpoinonside 2024-12-02 21:11:10 +01:00
Alug 9401eb1591 oops revert this just in case 2024-12-02 21:09:58 +01:00
Alug 521bb88cda gah 2024-12-02 20:58:01 +01:00
Alug c1765258b2 quickncasehash 2024-12-02 20:57:08 +01:00
Alug 6afcb06e08 forgor
- refactored musicdef handling
- other things
2024-12-02 20:56:21 +01:00
Alug 1ae5bb9d27 lugstuff merge
- Completely refactor player camera handling
- Refactor ALOT of gamepad code
- Refactor local cmds
- Refactor automap and add minimap generator ("minigen" command)
- Remove a bunch of unused netcode
- Remove ALOT of unused gametype code
- Remove alot of unused bot code
- Optimize some sectorspecial code slightly
- Remove a bunch of nights mode related stuff that was unused
- Bunch of smaller optimizations and code improvements
2024-12-02 20:49:53 +01:00
Alug 252cd5cde5 better fix for netgame join hoop crash
this actually works and makes em animate
apparently somehow on netjoin some hprev entries get mangled but are not null?
no clue why that happens since hoops arent even netsynched only their "spawnpoint" is
2024-12-01 22:14:24 +01:00
Alug 12558740a4 better fix for G_FixCamera
completely forgor in kart and srb2.1 cmd.angleturn needs to be bitshifted to accomidate localangle
using it again is better, since player mobj angle is not always suitable for localangle and may slightly mismatch where a player is steering
2024-12-01 10:29:06 +01:00
Alug e1fbe8d657 seems like player not always have mobjs
titledemo moment
2024-12-01 10:18:18 +01:00
Alug b29a3ecfba this only ever applies to ogl
no need in software lol
2024-11-30 23:39:18 +01:00
Alug bd3a5ac284 give those better names 2024-11-30 23:23:05 +01:00
Alug 7de8b2d881 save one R_PointToAngle call
very smol optimisation lul
2024-11-30 22:31:45 +01:00
Alug 3139dff6ba missed this 2024-11-30 22:04:56 +01:00
Alug c4211045f2 oops this gets directly called in one instance
also why do we keep checking for null mobj when P_MobjWasRemoved checks that anyways?
2024-11-30 21:59:56 +01:00
Alug 6633dfe1e2 smol cleanup 2024-11-30 21:54:55 +01:00
Alug 9e2a48cae1 whoops 2024-11-30 21:54:52 +01:00
Alug 43f8a0213a sloperoll already has "off" setting, delet spriteroll cvar since redundant 2024-11-30 21:54:48 +01:00
Alug 975978ca9c this is null anyways if disabled 2024-11-30 21:54:45 +01:00
Alug dad630f3eb delet this 2024-11-30 20:29:08 +01:00
Alug 11f8b974df forgor sliptide roll 2024-11-30 20:28:26 +01:00
Alug 00773a0c10 okay? shut up compiler 2024-11-30 20:09:12 +01:00
Alug 6f6066906e optimize sprite rotation / sprite drawing a bit
- make software and ogl use same variable names
- let papersprites also roll in ogl not just software
- throw pitchnroll calc into a function to reduce code dupe
- save some calcs when having sliptide roll disabled
- fix software not calculating camang when just player roll is enabled (did that ever work right before? oops)
- determine early if the sprite is supposed to rotate, and only if it really does, run the rotation stuff
2024-11-30 20:05:15 +01:00
Alug 7730b69ef4 delete A_RollAngle things
they cant be used, since theyre not synchsafe
and nothing uses those anyways
2024-11-30 20:05:13 +01:00
Alug e3084cc28e allow demo play commands while watching a demo again 2024-11-29 23:25:58 +01:00
Alug b784fc58d0 loading not sending
just to clarify
2024-11-29 22:25:13 +01:00
Alug 8baa972bb2 this is also redundant 2024-11-29 13:15:59 +01:00
Alug 3b2251017c use continue instead of huge if block 2024-11-29 12:14:28 +01:00
Alug f0e7dace72 Merge branch 'Saturn-Next' into mobjcache2 2024-11-29 11:34:03 +01:00
Alug 4a837d3339 Fix buffer overrun with players with no associated node
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/810/diffs?commit_id=af9164f336a65634f6908e677b47773d88f583af
2024-11-29 10:41:00 +01:00
Alug a2aa43e7fc dont think we need to reset anything here
kick cmd gets send out which should clear stuff in theory
2024-11-29 10:40:09 +01:00
Alug 3c0899263f those are redundant 2024-11-29 10:14:47 +01:00
Alug 91bb601ecb why? 2024-11-29 10:14:43 +01:00
Alug 1bd0c5d9bf those dont need to be inlined tbh 2024-11-29 09:37:13 +01:00
Alug 8b76426825 remove dupes 2024-11-29 09:37:10 +01:00
Alug 85464921ba eh this looks better 2024-11-29 09:37:07 +01:00
indev 9b6034853f Simplify consistency check a bit 2024-11-28 22:24:51 +03:00
indev 0ab732c9b2 Only check nodes that are in game in SV_ResendingSavegameToAnyone 2024-11-28 22:03:29 +03:00
Alug 8662648ef5 init polyobject thinker->references to 0
otherwise they wont get removed alot of the time
2024-11-27 23:00:32 +01:00
Alug 51808b8ced init polyobject thinker->references to 0
otherwise they wont get removed alot of the time
2024-11-27 23:00:16 +01:00
indev 2a7e442544 Use textinput_t for addon search 2024-11-28 00:54:26 +03:00
Alug dbdd5b8b6e only apply palrender postprocess shader once 2024-11-27 22:34:48 +01:00
Alug b8483376c4 dont draw final screen texture twice if you use native res
no need to
saves some performance
2024-11-27 22:29:49 +01:00
Alug 70105ccefc make own screentex for vhs effect
idk if its really needed tbh, but also doesent hurt
2024-11-27 17:12:25 +01:00
Alug 3a9082a694 memset screentex to 0 in FlushScreenTextures 2024-11-27 17:10:56 +01:00
Alug 82c18be717 why do replay play commands only have netgame check???????
bad things will happen if theyre played ingame regardless of netgame or not
2024-11-27 00:36:29 +01:00
Alug 0d39c2a0f6 we dont even need to check this
this doesent do anything with papersprites so dont even call it kek
2024-11-26 22:30:38 +01:00
Alug 4240af23cf Merge remote-tracking branch 'origin/cleanspriteclip' into Saturn-Next 2024-11-26 22:25:00 +01:00
Alug 80697046d5 clean up spriteclip fix + fix papersprites being affected by it
its now its own function HWR_ApplyDispoffset
papersprites are now also unaffected by it, which caused some minor visual issues before (ex zfighting signposts)
also just check for papersprite once and put it into a bool so we dont have to recheck sprite frames and flags 10 times
2024-11-26 20:31:20 +01:00
Alug 765dd72b38 Merge branch 'Saturn-Next' into fastpoinonside 2024-11-26 19:31:59 +01:00
Alug 403b60240f check for titlescreen music 2024-11-26 19:25:59 +01:00
Alug f973e6cd72 init polyobj thinker cachable bool
otherwise shit will die lol
2024-11-26 19:18:38 +01:00
Alug 5aff1acea8 mobjcache with explicit "true" check
just in case smth throws a garbo value and is not actually a mobj thinker
2024-11-26 19:18:34 +01:00
Alug 9e07ca0007 make hud hooks clean up after themselves 2024-11-22 16:04:16 +01:00
Alug df97bef4b5 Refactor HUD hooks too 2024-11-22 00:40:05 +01:00
indev b402738428 Fix mobj hooks called for mobj type 0 being interpreted as regular hooks 2024-11-22 01:31:02 +03:00
Alug 2de9a6bb94 forgor to remove those 2024-11-21 22:08:50 +01:00
Alug fb0c88cf55 Fix -Warray-bounds warning in lua_hooklib.c 2024-11-21 20:34:09 +01:00
Alug 1f6096e3ff fix pre and post thinkframe perfstats pages 2024-11-21 20:34:06 +01:00
Alug a4e6b5d177 Fix HurtMsg inflictor mobj type discriminator
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1903
2024-11-21 20:34:03 +01:00
Alug 4477f5ab93 Fix MusicChange hook crashing when called 2024-11-21 20:34:01 +01:00
Alug 11992d2e08 MORE MACROS 2024-11-21 20:33:58 +01:00
Alug 802979b81d Refactor hook ref allocation 2024-11-21 20:33:55 +01:00
Alug 06d0f5b95b Automatically count hook values 2024-11-21 20:33:52 +01:00
Alug da06c84aa4 we dont have key event hooks 2024-11-21 20:33:49 +01:00
Alug ecae607b59 this is unused for now 2024-11-21 20:33:46 +01:00
Alug f26717954e change those to fit rest of style 2024-11-21 20:33:44 +01:00
Alug a4080980ec make intermissionthinker use LUA_HookVoid
comment out hookbool since unused
2024-11-21 20:33:41 +01:00
indev 3db21bf778 Fix warning regarding MusicChange hook 2024-11-21 20:33:38 +01:00
indev 66518ced75 Add Should- and Player- Spin/Explode/Squish, and ServerJoin hooks into new hook system 2024-11-21 20:33:36 +01:00
Alug 5598526f52 delet serverjoin stuff i forgor and add old should spin stuff 2024-11-21 20:33:32 +01:00
Alug 14ec6e0674 serverjoin hook 2024-11-21 20:33:29 +01:00
Alug 549112822a port srb2 hooklib refactor (WIP)
lol lmao
2024-11-21 20:33:06 +01:00
indev e1cb858d9a Players that get 'NO CONTEST' can save replays too now 2024-11-21 22:02:25 +03:00
Alug 1659c2e753 try to make shadows not so offset on slopes with rotation enabled
lmaos
2024-11-21 02:11:51 +01:00
Alug e2222f66a9 those should be SHORT i think? 2024-11-21 02:11:48 +01:00
Alug 8a15b5e640 last attempt at fixing those things 2024-11-20 23:44:35 +01:00
Alug f499b11113 add R_PointInSubsectorFast for non critical gameplay stuff like sounds and camera
and some parts of rendering
2024-11-20 21:27:29 +01:00
Alug bec632800d use it for R_IsPointInSubsector
this is fine since R_IsPointInSubsector is only used for precip spawn unless you disable noclipcam lol
2024-11-20 21:26:18 +01:00
Alug a14c2f59b8 rename to R_PointOnSideFast 2024-11-20 21:25:18 +01:00
Alug e66d215dd3 Fix integer overflows on very large numbers 2024-11-20 21:24:16 +01:00
Alug 809ae20558 use highly optmized (but slightly inaccurate) version of R_PointOnSide for rendering 2024-11-20 21:24:04 +01:00
Alug 7b26ecb5f5 fixed float to integer conversion problems
from dsda doom
should hopefully make this behave the same everywhere
2024-11-19 22:10:08 +01:00
Alug 0c2ccc56cd inline _GetZAt stuff
those are very small but frequently used, so cant hurt
2024-11-17 21:42:20 +01:00
Alug 525681b5a5 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next 2024-11-17 21:41:33 +01:00
Alug c9a3dfcac9 reset pingtable in SV_ResetServer
and use some memsets cause they look cooler
also use ClearAdminPlayers simply to make this consistent with the other stuff that resets adminplayers
2024-11-17 21:41:25 +01:00
Alug a05aab1c7b Merge pull request #141 from Indev450/interpfixes
Some interpolation related fixes
2024-11-17 21:25:42 +01:00
Alug 7dfc638305 make replay/time attack menu support lowercase if toggled, also levelselect addon names too 2024-11-17 14:41:49 +01:00
Alug 3585969285 why is that declared here?? 2024-11-17 13:30:37 +01:00
Alug 3361ebe3c5 make menucaps stuff global macro and also apply to downloader text 2024-11-17 13:03:32 +01:00
Alug ebfd7f3e4e try make this look less like crap lol 2024-11-17 13:03:18 +01:00
Alug be49bd167b dont do this for papersprites
fickle...
2024-11-15 19:59:54 +01:00
Alug 13e9e41890 Merge remote-tracking branch 'origin/refactorcamstuff' into Saturn-Testing 2024-11-15 19:55:44 +01:00
Alug e6eec622c8 Merge remote-tracking branch 'origin/interpfixes' into Saturn-Testing 2024-11-15 19:55:35 +01:00
Alug 501b8b7bf5 try recursion limit for _RenderBSPNode
its 112 seems like the best compromise, hope it doesent break maps i didnt test visually or smth
2024-11-15 19:55:23 +01:00
Alug 99d78d62fb gu 2024-11-15 19:54:40 +01:00
Alug 1d5758f5d2 inline those 2024-11-15 19:54:24 +01:00
Alug fad1916259 psure it should be like this? 2024-11-15 19:54:20 +01:00
Alug 1bff103e53 use memset here too 2024-11-15 19:54:13 +01:00
Alug 68013b96d6 use memsets here and clear pingdata too 2024-11-15 19:54:10 +01:00
Alug 0c687539fb Merge branch 'Saturn-Next' into Saturn-Testing 2024-11-15 19:54:02 +01:00
GenericHeroGuy 0bf0441f49 Unify I/O library modifications 2024-11-15 15:54:07 +01:00
GenericHeroGuy 0c66ac97e8 Disable bytecode (1930cc9) 2024-11-15 14:18:56 +01:00
GenericHeroGuy 8c261dba73 Fix building with NOBLUAJIT 2024-11-15 00:24:19 +01:00
GenericHeroGuy 6e3b6cb0c1 Check division/modulo by zero (a74a4eb) 2024-11-15 00:00:51 +01:00
GenericHeroGuy 11155cc609 Standard library wipeout (1d1b7ec) 2024-11-13 17:15:08 +01:00
Alug e2c8a773be prevent some palrender startup crashes
thx srb2 apparently this can be null during init so add some extra safety
2024-11-12 16:23:08 +01:00
Alug 6816c6dd19 add some paranthesis here 2024-11-12 15:44:29 +01:00
Alug b9e26a7e2f Merge branch 'Saturn-Next' into interpfixes 2024-11-12 15:44:16 +01:00
GenericHeroGuy a5baa052e2 Fix building on Windows (hopefully) 2024-11-12 00:43:25 +01:00
indev 31d8fe4459 Fix game crashing when increasing number of viewpoints more than by one (again) (needs testing that it didn't break anything else) 2024-11-12 01:40:05 +03:00
GenericHeroGuy 71021982ed Two fixes from master 2024-11-10 22:02:46 +01:00
GenericHeroGuy 4d9c1f7a65 Disable FFI 2024-11-10 19:37:05 +01:00
GenericHeroGuy 406e9dcaf2 HUD interpolation for BLUAJIT
Still glitches for a single tic with JIT on...
2024-11-10 17:56:00 +01:00
GenericHeroGuy d3b0d845eb Fix consolelib once and for all
LuaJIT does not tolerate lightuserdata in luaL_checkudata,
so now cvars are userdata like everything else
2024-11-10 17:47:43 +01:00
GenericHeroGuy 335b977cd4 Fix API assert in LUA_EvalMath 2024-11-10 17:41:00 +01:00
GenericHeroGuy 3554c91b2b Library stuff, cvar, etc 2024-11-10 17:38:41 +01:00
GenericHeroGuy 460dab0342 BLUAJIT makefiles 2024-11-10 17:38:41 +01:00
GenericHeroGuy fb9b04c192 Import BLUAJIT (cb36ab5) 2024-11-10 17:38:37 +01:00
indev 38abb4c9e4 That didn't work in spectator camera, oops 2024-11-10 03:26:15 +03:00
indev fc469d6433 Fix spectating other players setting wrong angle when returning back to local player 2024-11-10 03:18:01 +03:00
Alug 478d809620 Merge branch 'Saturn-Next' into refactorcamstuff 2024-11-09 16:16:40 +01:00
Alug 52f1d727c0 Merge branch 'Saturn-Next' into interpfixes 2024-11-09 16:11:08 +01:00
indev 80a29dc5a1 Fix r_portal.c and r_portal.h missing from src/CMakeLists.txt 2024-11-08 11:52:03 +03:00
indev f4703be2ca Fix r_portal.c and r_portal.h missing from src/CMakeLists.txt 2024-11-08 11:47:58 +03:00
Alug 7c78cf067c forgor ifdef here 2024-11-03 15:35:03 +01:00
Alug 54cbfbe699 forgor ifdef here 2024-11-03 15:33:26 +01:00
Alug 05f454157f Merge pull request #138 from Indev450/Saturn-Next
Saturn v7.2
2024-11-03 16:24:00 +01:00
Alug c451f0f1a6 windoze 2024-11-03 14:23:26 +01:00
Alug 35b85bec36 bleh pls 2024-11-03 14:18:59 +01:00
Alug b0c64be31d try to simplify this alteast a little
shit is awful
2024-11-03 03:40:55 +01:00
Alug d09a28e3da missed this 2024-11-03 03:13:15 +01:00
Alug 550c66b25b add some more checks for this 2024-11-03 02:59:23 +01:00
Alug dfec9e24f3 add just a little more extra safety for fbo 2024-11-03 02:44:42 +01:00
indev 5a7c481f69 Fix normal skin being unable to load if localskins limit is reached (thx Alug for pointing out <3) 2024-11-03 00:26:44 +03:00
indev 2350889445 Fix normal skin being unable to load if localskins limit is reached (thx Alug for pointing out <3) 2024-11-03 00:26:18 +03:00
indev 990854e176 Fix localskins being unable to load if normal skin limit is reached 2024-11-03 00:16:15 +03:00
indev 076e84ed24 Fix localskins being unable to load if normal skin limit is reached 2024-11-03 00:13:45 +03:00
Alug 8c727b979c initialise this to null aswell
just in case
2024-11-02 14:19:53 +01:00
Alug 60de48ad65 add accurate fps counter crap to menu + rename it to force it back on
since shit more or less was broken in saturn before and always showed the more accurate one, force it again since stuff caused confusion
2024-11-02 12:57:17 +01:00
Alug 2fd1abce5c v7.2 2024-11-02 01:20:02 +01:00
Alug 691a61de72 oops 2024-11-02 01:12:56 +01:00
Alug 22164031fe gu? 2024-11-02 01:05:06 +01:00
Alug cb50144624 Merge branch 'Saturn-Next' into Saturn-Testing 2024-11-02 01:04:22 +01:00
Alug 3a153c3abe Merge pull request #137 from Indev450/refactorogl
Cleanup and slightly refactor ogl files
2024-11-02 00:57:49 +01:00
Alug d22645e56a use a "-" here for consistancy 2024-11-02 00:50:28 +01:00
Alug 08fe3beef1 respect cv_showdirectorhud 2024-11-02 00:49:35 +01:00
Alug 2c54c92e14 spec cam disables director, but you can toggle it from speccam
uhhhhhhh
2024-11-02 00:49:32 +01:00
Alug c127cd9016 fix wanted reticle offsets
Zzz...
2024-11-01 20:29:33 +01:00
Alug 9cb790ac23 oops broke encore 2024-11-01 20:01:50 +01:00
Alug c2c7381bc1 use precalced minimap stuff for v.drawOnMinimap 2024-11-01 19:55:23 +01:00
Alug 1e4eeb2bcf fix some issues with cv_minihead and minimap icon drawing 2024-11-01 19:55:20 +01:00
Alug b1f99f8d2f fix minimap not being initialised
causes issues when you switch to maps that dont have a minimap
2024-11-01 18:39:36 +01:00
Alug acd9763b9d Merge branch 'refactorogl' into Saturn-Testing 2024-10-31 13:47:42 +01:00
Alug f752da7d03 formatting stuff lul 2024-10-31 12:02:48 +01:00
Alug 7ddcf6d0d4 Merge branch 'Saturn-Next' into refactorogl 2024-10-31 11:59:33 +01:00
indev b21776183e Add shift+insert shortcut for pasting text 2024-10-30 22:14:17 +03:00
indev 9c0dcac5c6 Fix mapmusname global in lua being renamed to (*mapmusname) 2024-10-30 19:21:07 +01:00
indev 1b75d8b8e2 Fix mapmusname global in lua being renamed to (*mapmusname) 2024-10-30 20:35:17 +03:00
indev 9f2167ac3c Fix mapmusname global in lua being renamed to (*mapmusname) 2024-10-30 20:34:53 +03:00
Alug 145e305494 Merge branch 'Saturn-Next' into refactorogl 2024-10-30 16:04:06 +01:00
Alug 8f4d185ea6 Revert "use highly optmized (but slightly inaccurate) version of R_PointOnSide for rendering"
This reverts commit 9314a24cb2.
2024-10-30 16:03:35 +01:00
Alug 4b5ff6be5d Merge branch 'Saturn-Next' into refactorogl 2024-10-30 15:34:43 +01:00
Alug d27ef85b9e remove some unused stuff in portal struct 2024-10-30 13:52:06 +01:00
Alug 1ac210c2fc improve ogl portal clipping 2024-10-30 13:05:30 +01:00
Alug 878b7f4b43 fix portal culling 2024-10-28 20:25:03 +01:00
Alug 7cbac66935 throw this into an inline func 2024-10-28 20:25:01 +01:00
Alug 7e09223e6e gu 2024-10-28 16:36:04 +01:00
Alug b4e1be5bee dont always call HWR_Startup again 2024-10-28 16:35:44 +01:00
Alug d3e5e236ac those do nothing 2024-10-28 16:34:40 +01:00
Alug 238ce98c44 dont always call HWR_Startup again 2024-10-28 07:21:13 +01:00
Alug 2824e5d850 no need to update this witouth water ripples 2024-10-28 06:49:09 +01:00
Alug cd154d5748 grey out some stuffs in the ogl and advanced video menus 2024-10-28 06:40:23 +01:00
Alug c0a8153a10 sort those a bit 2024-10-28 06:40:19 +01:00
Alug 3433fc7651 those should be disabled 2024-10-28 06:40:17 +01:00
Alug 22d1ee8f60 move CV_PossibleValue_t to their own section like other files 2024-10-28 06:40:14 +01:00
Alug 5155958ade add "gl" to secbright and lightdither cvars
theyre only used in ogl so follow the naming convention
2024-10-28 05:40:59 +01:00
Alug 5fdd486bab reorder all of this to be in same order lol 2024-10-28 05:40:56 +01:00
Alug 4672037bcd check if those are already off before trying to turn them off lol 2024-10-28 05:40:54 +01:00
Alug 2281b82b5a replace last remaining "gr" 2024-10-28 04:28:25 +01:00
Alug 3fe096c7d4 gr -> gl
this has been annoying me since ages lol
2024-10-28 04:23:15 +01:00
Alug dd3ca0e161 change cvar register order for ogl stuff 2024-10-28 03:39:05 +01:00
Alug d8da78f900 more cleanup 2024-10-28 03:38:52 +01:00
Alug 9325e7be8f make a bunch of hwr stuff static and cleanup 2024-10-28 03:38:48 +01:00
Alug f3f94bf80e fr*nch 2024-10-28 03:38:36 +01:00
Alug 506dc2455a fr*nch 2024-10-26 23:24:01 +02:00
Alug 94d6ee15b5 this should be portalcullsector lol 2024-10-26 19:44:32 +02:00
Alug 2d918d32a1 reduce the scope of this since not needed 2024-10-26 19:44:28 +02:00
Alug dd516b573b rename this to avoid confusion 2024-10-26 19:31:14 +02:00
Alug de9698efc8 just use the same as software lol
i never saw any differernce except in performance for this
also viewsin and viewcos get calced in r_fps so no need to do here again
2024-10-26 19:29:53 +02:00
Alug 14b026f04b slight cleanup ogl portals again 2024-10-26 19:29:51 +02:00
Alug 9dd45440c0 rename and slight cleanup 2024-10-26 19:29:46 +02:00
Alug c59e8387ca smth smth shadows a global declaration 2024-10-26 19:29:35 +02:00
Alug 772ad9f04f throw ogl portals into their own files 2024-10-26 19:29:32 +02:00
Alug 6053c2c619 readd mobj null check here 2024-10-26 16:40:08 +02:00
Alug a515b133c5 inline this since its super smol 2024-10-26 16:40:04 +02:00
Alug 240dae9a1a move chasecam postimg stuff into own function + add comments for what stuff does lol
shit got me really confused
2024-10-26 16:12:43 +02:00
Alug b8a703233a forgor to remove this 2024-10-26 00:51:58 +02:00
Alug bf44c95d00 clean up portals 2024-10-26 00:51:55 +02:00
Alug c3dd1755dc port srb2 software portal refactor 2024-10-26 00:51:44 +02:00
indev b6e766ee44 Fix A_Lua not removing error handler from lua stack 2024-10-25 23:15:52 +03:00
Alug 5437040b78 move the return ealier in V_DoPostProcessor 2024-10-25 20:21:10 +02:00
Alug c786569981 Merge branch 'refactorpostimg' into Saturn-Next 2024-10-25 20:12:56 +02:00
Alug 7064b14539 Merge branch 'autoloadagain' into Saturn-Next 2024-10-25 20:12:53 +02:00
Alug f275ae98f5 this is needed for postimg stuff in first person
lol
also adds break in splitscreen lööp
2024-10-25 20:12:14 +02:00
Alug ef07d89e29 Revert "update lzf compression to 1.6"
This reverts commit 48e71afec1.
2024-10-25 19:50:16 +02:00
Alug b9bbd45e15 Revert "shut up mingw"
This reverts commit 75637e361c.
2024-10-25 19:50:10 +02:00
Alug 2bda27b80d Revert "those should be size_t"
This reverts commit b357c09171.
2024-10-25 19:49:26 +02:00
Alug e9cfff8165 Merge branch 'Saturn-Next' into Saturn-Testing 2024-10-25 03:28:50 +02:00
Alug 6ebf90cc50 Merge branch 'Saturn-Next' into autoloadagain 2024-10-25 03:28:43 +02:00
Alug ea00bebb04 Merge branch 'Saturn-Next' into refactorpostimg 2024-10-25 03:28:20 +02:00
Alug b862d835a5 save one calc lol 2024-10-25 03:27:51 +02:00
Alug d6602747ae oops forgor lol 2024-10-25 03:26:22 +02:00
Alug 9f79429d03 slight cleanup + make static + smol optimize ogl sprite drawers 2024-10-25 03:26:19 +02:00
Alug 5ff0c09868 just check for noencore bool in hwr_processseg instead of checked line flags everytime 2024-10-23 21:33:31 +02:00
Alug ad1c3e63a4 why not reuse those? 2024-10-23 21:33:28 +02:00
Alug 24dd6ba675 cleanup HWR_ProcessSeg
stuff was quite the mess
2024-10-23 21:33:21 +02:00
Alug 85f036a45b dont always calc this twice 2024-10-23 21:33:14 +02:00
Alug 6f8342b9a8 remove cv_splitwallfix
tbh i dont think anyone even knows about this, never heard any complains, never had any issues, neither visually or performancewise.
its just clutter at this point
2024-10-23 21:33:04 +02:00
Alug c5c6f6b820 this does nothing 2024-10-23 21:30:21 +02:00
Alug 3d472c34a1 no need to check stuff in already postload marked addons 2024-10-23 15:48:44 +02:00
Alug 63ca366bd8 dont play rain sounds when weather is disabled 2024-10-23 13:00:36 +02:00
Alug e9e888ab7f remove debug print 2024-10-23 02:41:28 +02:00
indev 5ea55b3e3a Add W_CheckFileContains for W_CheckPostLoadList 2024-10-23 02:41:25 +02:00
Alug 8b1797927a attempt to check for things in file for postload detection 2024-10-23 02:41:23 +02:00
Alug 05a98964fb split auto and postload, let autoload run on gamestart again
prep for smth
2024-10-23 02:41:20 +02:00
Alug 8cbf798de8 redo rain sound overflow fix
https://git.do.srb2.org/KartKrew/RingRacers/-/commit/3eac1fed0f44a8285a9f6b82a12e86997bbb0d34
2024-10-23 02:37:32 +02:00
Alug 9314a24cb2 use highly optmized (but slightly inaccurate) version of R_PointOnSide for rendering 2024-10-23 02:37:08 +02:00
Alug 1153d477ee Revert "maybe fix mobj interp spawn bugs?"
This reverts commit 037f45df1e.
2024-10-22 15:52:37 +02:00
Alug d63b158966 Revert "fix ghost interpolation"
This reverts commit f23202545b.
2024-10-22 15:52:32 +02:00
Alug f23202545b fix ghost interpolation 2024-10-22 02:32:01 +02:00
Alug 19b1683e61 make those not look terrible thx 2024-10-22 01:18:13 +02:00
Alug d029107e75 refactor postimg stuff so it can be combined with each other better
thx much indev! <3
everything now works with encore!
software now also supports screen effects in splitscreen!
2024-10-22 01:17:57 +02:00
Alug bc97e0b703 actually remove "renderflags" lol 2024-10-21 22:53:44 +02:00
Alug 037f45df1e maybe fix mobj interp spawn bugs?
idk maybe has some odd side effects?
2024-10-21 22:50:51 +02:00
Alug 0eeb6758f4 Merge branch 'Saturn-Next' into Saturn-Testing 2024-10-21 22:50:46 +02:00
Alug f47c663f79 remove renderflags
those literally did nothing
2024-10-21 22:47:32 +02:00
Alug 6f9d41eadb fix R_ThingVisible
those are "eflags" in kart smh
2024-10-21 22:46:59 +02:00
Alug 1b512edc56 add proper null check here too 2024-10-21 21:28:08 +02:00
Alug 884a6da2bd dont use cv_sloperolldist in splitscreen + save some assignments and one fixedhypot call
also use tabs lul
2024-10-21 21:07:32 +02:00
Alug 7a3d958fc1 tab pls 2024-10-21 18:43:08 +02:00
Alug 7223581539 Clarify we're calculating a cross product 2024-10-21 18:10:29 +02:00
Alug 664bd2de3f dont draw fadescreen when minimap iss active 2024-10-21 17:47:44 +02:00
indev 63568e3861 Fix off-by-one error for using '?' as map name 2024-10-21 18:43:37 +03:00
indev 5279192102 Fix off-by-one error for using '?' as map name 2024-10-21 18:40:16 +03:00
indev f149d058a1 Fix off-by-one error in lib_setSfxInfo 2024-10-21 18:06:35 +03:00
Alug 0c8516d33a also check here ig? 2024-10-21 17:01:35 +02:00
Alug 970251ced3 also check here ig? 2024-10-21 17:01:27 +02:00
Alug 651f9637fc prevent map command crash from maps with invalid or non existing mapinfo 2024-10-21 15:39:37 +02:00
Alug dba7a7dc3c prevent map command crash from maps with invalid or non existing mapinfo 2024-10-21 15:37:44 +02:00
Alug 393c0be407 Revert "attempt to optimize some p_maputl stuff"
This reverts commit 81d415c5ba.
2024-10-21 14:19:35 +02:00
Alug 36c5c9939b replace those two P_MobjWasRemoved with simple null check insteead
since those may actually segfault if null anyways
2024-10-21 06:23:23 +02:00
Alug 5e9ea2429b replace those two P_MobjWasRemoved with simple null check insteead
since those may actually segfault if null anyways
2024-10-21 06:23:14 +02:00
Alug 613e32194f Merge branch 'Saturn-Next' into Saturn-Testing 2024-10-21 06:14:36 +02:00
Alug 81a14995da trailing space hell 2024-10-21 06:14:24 +02:00
Alug 4267ac9a8d remove more P_MobjWasRemoved checks
same as before, those may be not synchsafe
2024-10-21 06:04:47 +02:00
Alug bcf72cc0e8 revert some P_MobjWasRemoved checks i forgor about
those may NOT be vanilla netsafe
2024-10-21 06:04:17 +02:00
indev 9a1e96fb99 Add commit title in comprevision 2024-10-20 21:20:57 +03:00
Alug bdcbf12246 add small quickncasehash function 2024-10-20 19:59:26 +02:00
Alug 894b843ccb Merge branch 'clientkick' into Saturn-Testing 2024-10-20 19:57:07 +02:00
Alug 4a9d67521f attempt to fix automap + add minimap generator command "minigen" 2024-10-20 19:56:32 +02:00
Alug a353dceaa3 better M_Random implementation
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1780
2024-10-20 19:50:44 +02:00
Alug 802dd2608e dont draw fadescreen when minimap iss active 2024-10-20 19:44:52 +02:00
Alug ebc4bf4b45 move displayplayer assignment earlier 2024-10-20 19:43:29 +02:00
Alug 906828fadb remove useless code in S_StopChannel 2024-10-20 19:42:56 +02:00
Alug e35612a6f6 massive cleanup unused code
all team stuff, gametypes, bots, etc.
hopefully this wont cause any weird netsynch issues for some reason
2024-10-20 19:41:41 +02:00
Alug f4e0272db9 Start bustable FOF sounds at the correct height 2024-10-20 19:25:26 +02:00
Alug 5ecfc5e09d Use PU_LEVEL for texture caching 2024-10-20 19:24:01 +02:00
Alug 927b819bc8 if game crashes, attempt to save replay 2024-10-20 19:22:04 +02:00
Alug 857731e89f remove broken and unused netcode stuff
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2523
2024-10-20 19:20:32 +02:00
Alug 24fed58c81 Merge branch 'interpfixes' into Saturn-Testing 2024-10-20 19:19:29 +02:00
Alug 57cef86ca1 dont think this needs to be reset every frame 2024-10-20 19:19:14 +02:00
Alug 0f91e18fce Merge branch 'unglobsavep' into Saturn-Testing 2024-10-20 19:16:23 +02:00
Alug c01a0147f2 Merge branch 'remusicdef' into Saturn-Testing 2024-10-20 19:16:19 +02:00
Alug d695b6d51a Merge branch 'refactorgamepads' into Saturn-Testing 2024-10-20 19:16:12 +02:00
Alug 3d1e4a93fd Merge branch 'refactorcamstuff' into Saturn-Testing 2024-10-20 19:15:53 +02:00
Alug 54d9a98090 rotsprite stuff also should be SHORT 2024-10-20 19:11:54 +02:00
Alug 6a5d36c57a Merge branch 'Saturn-Next' into remusicdef 2024-10-20 16:30:24 +02:00
Alug 86ea7dde40 Merge branch 'Saturn-Next' into unglobsavep 2024-10-20 16:27:26 +02:00
Alug 7f709aee53 Merge branch 'Saturn-Next' into refactorcamstuff 2024-10-20 16:26:08 +02:00
Alug 4df7bcd87f Merge branch 'Saturn-Next' into refactorgamepads 2024-10-20 16:25:26 +02:00
Alug 81d415c5ba attempt to optimize some p_maputl stuff 2024-10-20 16:25:12 +02:00
Alug de1b801bda try to take some registers for span drawers too 2024-10-20 16:24:02 +02:00
Alug 2c665fef6f remove this again 2024-10-20 15:21:42 +02:00
Alug c6fbf405bf optimize R_PointOnSegSide
its only used for 2 rendering functions, so being potentially inaccurate is not that dangerous and the speedup in some instances might be worth the tradeoff
2024-10-20 15:16:37 +02:00
Alug 7076c35521 HWR_RenderPlane can be static 2024-10-20 14:57:28 +02:00
Alug 86ed1b709e fix some rendering issues and crashes in software renderer
- Increase MINZ from 4 fracunits to 16
- R_StoreWallRange: do not render textures with holes
- fix off-by-one error in R_ProjectSprite
- Avoid rendering unused left/right edges of screen while rolling
- Clamp patch column post drawing bounds
- Vissprites: set dc.texheight
- Add null check for column in R_DrawMaskedColumn
2024-10-20 14:57:22 +02:00
Alug 0be25bd362 Merge branch 'Saturn-Next' into Saturn 2024-10-20 14:56:56 +02:00
Alug d30c96e8cb fix a maybe-uninitialized warning 2024-10-20 00:22:06 +02:00
Alug 0af52ba3ae dont need to always check this 16 times if we already know theres more than one player ingame 2024-10-19 21:15:11 +02:00
Alug fbe97556de change versionstring
also remove the fbo one, its honestly not necessary anymore
2024-10-18 20:36:16 +02:00
Alug 7a6f43bece dont show encore toggle text in record attack menu
dont think you can even record attack in encore hmm
2024-10-18 20:34:22 +02:00
Alug afca521fe5 dont run director if theres only one player ingame
idk if this is good lol
2024-10-18 19:53:44 +02:00
Alug bfd61893a1 forgor joyscale 2024-10-16 13:28:25 +02:00
Alug 72d374786f huge cleanup controller code
hope i didnt break anything here lel
2024-10-16 13:28:22 +02:00
Alug d3e2875c94 those can be registered in lööp 2024-10-16 13:14:31 +02:00
Alug eb40eec4c1 clean up cvar register a bit 2024-10-16 12:57:41 +02:00
Alug 1daac9a124 revert all the cam things for now here
Dont wanna deal with this shit for 7.1 anymore
2024-10-14 22:15:27 +02:00
Alug 991f1b17dd spec cam needs mo angle and aiming
atleast now ik why it checks for consoleplayer Zzz...
2024-10-14 19:23:47 +02:00
Alug 38f3e48aed only do this in software renderer
doesent work even with pal rendering in ogl
2024-10-13 23:07:37 +02:00
Alug 9a9aa75684 forgor about shadows lol 2024-10-13 21:33:17 +02:00
Alug d1b023c8c8 whoops forgor 2024-10-13 23:25:38 +02:00
Alug 0d6faed3d5 lol 2024-10-13 23:13:22 +02:00
Alug b3750f78ff only do this in software renderer
doesent work even with pal rendering in ogl
2024-10-13 23:07:32 +02:00
Alug 82f96dd080 remove unused/nonunsable analog cvars 2024-10-13 22:44:50 +02:00
Alug d640ce06d7 fix cam stuff for good + huge cleanup 2024-10-13 22:44:47 +02:00
Alug b8fb74fef3 fix the cam loops 2024-10-13 22:44:43 +02:00
Alug ab4bbbff72 use arrays for all the cam cvars 2024-10-13 22:44:37 +02:00
Alug 4180949307 dont need this splitscreen check 2024-10-13 22:43:14 +02:00
Alug e68ff858f2 attempt to clean up cam shit even more 2024-10-13 22:43:08 +02:00
indev 4cf4d49f48 Fix error handler staying on lua stack after lua commands being called 2024-10-13 15:37:39 +03:00
indev a19c4dc5e5 Fix game crashing when using P_DoPlayerExit on player without mobj 2024-10-13 15:37:39 +03:00
Alug d37505ff06 this should be SHORT 2024-10-13 02:59:10 +02:00
Alug 7f6ce1f299 this uhhh actually makes things crash lol 2024-10-13 02:47:57 +02:00
Alug 262a84aac6 fix ogl shearing
no clue wtf kart was doing here lmao
2024-10-13 02:42:37 +02:00
Alug 3f12ebb2bd only interp cam during pause for replay freecam to not jitter during pause 2024-10-13 01:11:59 +02:00
Alug b58fcf331c ignore keepmusic when called from P_RestoreMusic
most of the sound handling just calls this and this may just stop the music entirely on some occasions so just ignore keepmusic for that
2024-10-13 00:40:51 +02:00
Alug b978645c28 Merge branch 'Saturn-Next' into clientkick 2024-10-13 00:05:28 +02:00
Alug fe51278295 Merge branch 'newmusicstuff' into Saturn-Next 2024-10-13 00:04:59 +02:00
Alug c3fb84981e Merge branch 'pakcheck' into Saturn-Next 2024-10-13 00:02:32 +02:00
Alug 919aad4f30 Merge branch 'vres-skip-map-marker' into Saturn-Next 2024-10-12 23:57:27 +02:00
Alug 818e6046b7 Merge branch 'Saturn-Next' into vres-skip-map-marker 2024-10-12 23:30:03 +02:00
Alug 59a99f4c21 Merge branch 'Saturn-Next' into clientkick 2024-10-12 23:29:43 +02:00
Alug f01d2a0ba6 print saturnpak print into debfile instead of console 2024-10-12 23:29:11 +02:00
Alug 8df0a2d059 Merge branch 'Saturn-Next' into pakcheck 2024-10-12 23:28:05 +02:00
Alug d7ed91af1d Refactor TTY input handling
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2451#b2f76b3273f1780347c35ec752bcde560c5f73a5
2024-10-12 23:26:14 +02:00
Alug 081dcc021b fix tty converting everything to lowercase 2024-10-12 23:21:11 +02:00
Alug 70ebd0d475 Merge remote-tracking branch 'origin/unified-text-input' into Saturn-Next 2024-10-12 23:19:38 +02:00
Alug 02bbb38606 Fix insane TTY input latency
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2360
2024-10-12 23:16:42 +02:00
indev d00014ea59 If corrupted save received, leave netgame 2024-10-12 22:10:58 +02:00
indev 210d6ac8ac Add few checks to prevent game crashing if netgame archive becomes corrupted 2024-10-12 22:10:48 +02:00
indev 55248e7fcf Attempt to fix a lua panic when unarchiveing extvars (print error to console instead. Not sure if it would be safe for game to read from save afterwards though) 2024-10-12 22:09:51 +02:00
indev cb94235ac1 If corrupted save received, leave netgame 2024-10-12 22:09:20 +02:00
Alug d0c50c49a7 Add few checks to prevent game crashing if netgame archive becomes corrupted
https://github.com/alufolie91/saturn-32p/commit/1e47728ea8c60a1f04130170ddfab9b02e1a7e4c#diff-0c6396d5a9ad45f461741cd44ffb2c0d3cf0eb2ec7b0500053005196fe53f1a6R1517
2024-10-12 22:09:18 +02:00
Alug 7f1217b2ab Attempt to fix a lua panic when unarchiveing extvars (print error to console instead. Not sure if it would be safe for game to read from save afterwards though)
https://github.com/alufolie91/saturn-32p/commit/a770ecdbd4afd56a9d8325eae47f0c69f71661ee#diff-0c6396d5a9ad45f461741cd44ffb2c0d3cf0eb2ec7b0500053005196fe53f1a6R1462
2024-10-12 22:09:15 +02:00
Alug 3b01393a71 Merge branch 'Saturn-Next' into unglobsavep 2024-10-12 22:08:49 +02:00
Alug 23b36b5074 oops 2024-10-12 21:29:49 +02:00
Alug 2e7f0721b9 make s_sound a little prettier 2024-10-12 21:24:43 +02:00
Alug 4927e55c7e fix some warnings when compiling with older sdl version 2024-10-12 21:24:04 +02:00
Alug c51d33fa6e save 1 G_BuildMapTitle call kek 2024-10-12 20:19:53 +02:00
Alug 8630d8cd47 clean bird music stuff again
we dont need to return everywhere but instead stuff can be mostly just set to 0
this also somewhat ensures stuff works after toggling without having to restart the game or map
2024-10-12 19:55:02 +02:00
Alug 659243baa1 always assign stutter_threshold 2024-10-12 19:44:21 +02:00
Alug b6a84c1646 readd music_resync_powerups_only 2024-10-12 19:40:12 +02:00
Alug c33afa4a3b shut up mingw 2024-10-11 19:09:49 +02:00
Alug 1428c3c2bf fix spec cam bug + more cleanup 2024-10-11 21:00:13 +02:00
Alug aa0cbfda74 Revert "rendertimefrac_unpaused should be fracunit on netlag"
This reverts commit 6722b43244.
2024-10-09 15:33:19 +02:00
Alug 9d13ff3c9f proper inline P_MobjWasRemoved 2024-10-07 23:01:52 +02:00
Alug e47c13b7ac proper inline M_Memcpy 2024-10-07 23:01:45 +02:00
Alug 3f5b96bd45 this shouldnt be here lol 2024-10-07 13:15:08 +02:00
Alug 63c1372c34 keep debug print for now 2024-10-07 12:57:55 +02:00
Alug 8b915f9ac1 make this less ugly 2024-10-07 12:53:31 +02:00
Alug f3a18a0655 false 2024-10-07 12:48:36 +02:00
Alug e8351d44b6 add crap to menu 2024-10-07 12:45:03 +02:00
Alug 297af069cb doubt anyone wants this
also psure this will cause some weird issues somewhere idk
2024-10-07 12:41:59 +02:00
Alug baa5d6630d Merge branch 'Saturn-Next' into newmusicstuff 2024-10-07 12:39:41 +02:00
Alug 0c30730ef6 Merge branch 'Saturn-Next' into pakcheck 2024-10-06 18:52:24 +02:00
Alug ef763487a5 this doesent make much sense tbh 2024-10-06 18:51:43 +02:00
Alug 03f5ac87fa Merge branch 'Saturn-Next' into interpfixes 2024-10-06 18:51:20 +02:00
Alug c82148fafc prevent this from become super large somehow lol
just like cap it at 19 it works just fine
2024-10-06 18:50:32 +02:00
Alug d1346dee53 shouldnt that be a bool? 2024-10-06 18:31:54 +02:00
Alug 6722b43244 rendertimefrac_unpaused should be fracunit on netlag
makes this a little more sane tbh
2024-10-06 18:31:51 +02:00
Alug b2cac97106 fix this 2024-10-06 14:53:25 +02:00
Alug cfdbf1f4ad hopefully fix awayview cam interp crap 2024-10-06 14:53:10 +02:00
Alug 48a00ba911 this needs to be set twice
Zzz...
2024-10-06 14:52:54 +02:00
Alug 4b1102357a only do this in replays
otherwise shit will jitter during netlag
2024-10-06 14:46:11 +02:00
Alug e3b0204b2c fix main menu interpolation
apparently in main menu, opening the menu pauses the game so rendertimefrac was FRACUNIT and didnt interpolate
2024-10-06 14:46:06 +02:00
Alug a2799ddcca Interpolate view, even when paused
https://github.com/KartKrewDev/RingRacers/commit/3320faec8cebecb124882d38c7ec0ad37b79340a#diff-607b68058edc6124b3061267d902aabeddb6ba338c6483df0af8b1a7cf796a01R43
2024-10-06 14:46:03 +02:00
Alug 76198f61de add missing break 2024-10-06 14:45:50 +02:00
Alug c3ce75055a only do this in replays
otherwise shit will jitter during netlag
2024-10-06 14:30:28 +02:00
Alug 90d64c4e15 fix main menu interpolation
apparently in main menu, opening the menu pauses the game so rendertimefrac was FRACUNIT and didnt interpolate
2024-10-06 13:47:20 +02:00
Alug 595648a2b3 Interpolate view, even when paused
https://github.com/KartKrewDev/RingRacers/commit/3320faec8cebecb124882d38c7ec0ad37b79340a#diff-607b68058edc6124b3061267d902aabeddb6ba338c6483df0af8b1a7cf796a01R43
2024-10-06 13:47:17 +02:00
Alug 8e799ddd74 fix a interp bug where the jitter on tally increase would be for only one rendered frame, not one full tic. 2024-10-06 13:47:14 +02:00
Alug a754e9c08a HACK: reset interp values in case 412 teleporter without using P_Setorigin
since that function does some wonky stuff and idk if that would be synch safe
2024-10-06 13:47:11 +02:00
Alug 112c9398e7 add missing break 2024-10-06 13:47:08 +02:00
Alug ccd691548e more R_ResetViewInterpolation stuff 2024-10-06 13:47:05 +02:00
Alug afd7b85005 R_ResetViewInterpolation: wait an extra tic if R_UpdateViewInterpolation has not run yet, do not add extra time for subsequent calls 2024-10-06 13:47:02 +02:00
Alug f9e1cdb940 P_Ticker: update view interpolation at the start of a tic 2024-10-06 13:46:43 +02:00
Alug 63fe657c7d Do not set hu_stopped on interpolated frame 2024-10-06 13:46:31 +02:00
Alug ff2006ad74 smol fix 2024-10-06 12:40:01 +02:00
Alug 55c9c7297f throw this into own function too 2024-10-06 12:39:56 +02:00
Alug 4b083ee72e make function for quakes, scale with mobjscale 2024-10-06 12:39:54 +02:00
Alug 6574ec2fb9 attempt to cleanup R_SetupFrame 2024-10-06 12:39:48 +02:00
Alug f54bb349b5 add G_FixCamera 2024-10-06 12:39:44 +02:00
Alug 6f1252e27d set timeinmap for demo rewind
idk maybe this helps with that feature desynching all the time lol
2024-10-06 12:39:26 +02:00
Alug 7d65b5369f add some brackets lul 2024-10-06 12:34:51 +02:00
Alug 4877c81728 comment this out for now so v7 clients dont use vanilla resynch system
keep sending PT_WILLRESENDGAMESTATE packets to everyone for now
saturnpak will still mark the right clients so they will use the right consistency check without having to desynch first
2024-10-06 12:32:57 +02:00
Alug 5cb207edfa add debfile prints whenever gamestate counter changes 2024-10-06 12:14:32 +02:00
Alug fc39a0dedf make the debug print a little better 2024-10-06 12:12:59 +02:00
Alug 0b3e7240a8 use saturn packet to determine if client can receive gamestate
before the server always assumed every client cant receive the gamestate using the vanilla consistency check for everyone.
aswell as before the first resynch it tried to send the gamestate resend packets to everyone
2024-10-06 12:07:17 +02:00
Alug f32c346534 this needs gamestate check
sometimes the title music kept playing
2024-10-05 06:56:31 +02:00
Alug 3165004d0e add comment to try and explain this crap 2024-10-03 18:15:19 +02:00
Alug ec3b1cf130 make this more readable 2024-10-03 17:55:08 +02:00
Alug a0437713bf smol dupe 2024-10-02 14:40:03 +02:00
Alug 96f7ff550c prevent this from overflowing
ye well idk anymore.
2024-10-02 14:22:48 +02:00
Alug 837216d78e we dont need any of this in ogl 2024-10-02 14:22:39 +02:00
Alug dfb6006f9c fix up old fps counter 2024-10-02 12:14:40 +02:00
indev fb0765a5f3 Fix selection in replay save prompt 2024-10-01 20:55:27 +03:00
indev 2e8769496f Use textinput_t for replay save prompt too 2024-10-01 20:39:04 +03:00
Alug bdb39fcd8d dont leak pls 2024-10-01 17:57:45 +02:00
Alug 31516c7987 fix G_BuildMapTitle leaks 2024-10-01 17:56:15 +02:00
Alug b985ce06a2 lol 2024-10-01 16:03:56 +02:00
Alug 12d6546062 dumb special case for wandering balls Zzz... 2024-10-01 16:03:00 +02:00
indev fb71da3627 Remove debug print 2024-10-01 16:50:44 +03:00
indev a90ffff320 Fix (hopefully) all other menu types that use IT_CV_STRING 2024-10-01 16:49:59 +03:00
Alug 9abf2bca75 fix some stuff 2024-10-01 15:46:22 +02:00
indev 3db6770dfd Fix IT_CV_STRING crashing game in M_DrawGenericMenu 2024-10-01 16:24:14 +03:00
Alug 3a951576ee use stricmp for this 2024-10-01 15:22:29 +02:00
Alug 6b0d67ac36 more 2024-10-01 15:22:25 +02:00
Alug d06b8ac398 cleanup + comments 2024-10-01 15:22:22 +02:00
Alug 67435ebf9e work around encore music again
S_InitMapMusic would play before the level actually started thus playing a smol bit of non encore music in encore
2024-10-01 15:22:19 +02:00
Alug 2ee29630fb fix encore music again lol 2024-10-01 15:22:16 +02:00
Alug 7fa21e9aea work around custom vote theme music + rename a bunch of stuff
please help me
2024-10-01 15:22:08 +02:00
Alug b4b206f575 encoremusic... 2024-10-01 15:22:04 +02:00
Alug f363663b3e fix up everything and make stuff work
i hope lmao
2024-10-01 15:22:01 +02:00
Alug 42d957e21b change how keepmusic works
compare map and encore instead of the music itself
2024-10-01 15:21:57 +02:00
Alug 07f9756bc8 forgor about encore music 2024-10-01 15:21:54 +02:00
Alug e958e43b49 update comments a little 2024-10-01 15:21:51 +02:00
Alug 0d150e4b08 add some basics of what i wanna have for music stuff
- basic keepmusic implementation (currently checks for if the song changes instead of the map, idk if i keep this, since this allows certain maps to change the music on start, ex abstract avenue or wandering balls)
- Toggle to ignore any kind of music change during the level (includes intermission music, depends on how custom intermission music works)
-toggle to start map music instantly on levelload and skip the intro fanfare (also skips any linedef executed sound so some map intros dont interfere with this)
2024-10-01 15:21:47 +02:00
Alug 0deff73a46 make a function for the music level start stuff 2024-10-01 15:21:43 +02:00
Alug bf67c6b1d0 remove code dupe and let S_LoadMusicDefs also load MUSCINFO def 2024-10-01 15:19:51 +02:00
Alug f1cf370680 make a funky macro 2024-10-01 15:19:46 +02:00
Alug affa23040b refactor musicdef stuff
well it fixed the hash find lmao
2024-10-01 15:19:42 +02:00
Alug a15cefc80f oops 2024-10-01 15:19:38 +02:00
Alug 5cf00d903b super smol optimization to S_FindMusicCredit 2024-10-01 15:19:25 +02:00
Alug b24caf397a add "map ?" shortcut for random map 2024-10-01 14:49:46 +02:00
Alug f051e33a0c cv_showdirectorhud didnt save Zzz... 2024-09-30 23:00:39 +02:00
indev ff2b28ac73 Use m_textinput for chat too 2024-09-30 12:13:25 +03:00
indev e2367d26d1 Use same keyboardlayout code as in chat for textinput, also add a null terminator after ctrl-v just in case string is not always zeroed out already 2024-09-30 12:08:21 +03:00
indev e1a65add5d Put all text input logic into separate file and use it for all text input fields 2024-09-30 10:35:27 +03:00
Alug 913426bfdb let SOC also use PRECIP_BLANK/ weather = 4
no idea why it couldnt doesent make any sense
2024-09-29 22:28:35 +02:00
Alug d7b0726e42 no need to even traverse part of the blockmap when PRECIP_STORM_NORAIN and PRECIP_BLANK 2024-09-29 22:28:31 +02:00
Alug cadb67e6c9 move this stuff
so dont need check for renderisnewtic multiple  times and dont need to check for menu and dpad stuff every single frame
2024-09-29 15:15:53 +02:00
Alug 564838a439 only draw lua hud stuff when patch exists 2024-09-29 15:15:49 +02:00
Alug 4554bcc565 reset rumble on some conditions 2024-09-28 03:29:12 +02:00
Alug fd48335688 Replace portalline boolean with g_portal pointer to current portal Beta 2024-09-28 03:29:09 +02:00
Alug 222f56d1b2 smol director stuffs 2024-09-28 01:03:44 +02:00
Alug b71870f57b this needs no dedi check actually 2024-09-28 01:03:41 +02:00
Alug 01c9632025 set those in P_SpawnGhostMobj too 2024-09-28 01:03:39 +02:00
Alug 1533e13d68 let player pointer be const in P_IsLocalPlayer and P_IsDisplayPlayer 2024-09-28 01:03:34 +02:00
Alug 89965ad718 forgor remove this 2024-09-28 01:03:31 +02:00
Alug eb74f3525a consolidate this 2024-09-28 01:03:29 +02:00
Alug 536f88dee0 this does nothing 2024-09-28 01:03:26 +02:00
Alug 2622ba286e z 2024-09-28 01:03:18 +02:00
Alug a1d490cb49 R_DrawMaskedColumn: do not draw zero length column 2024-09-28 01:03:15 +02:00
Alug b357c09171 those should be size_t 2024-09-28 01:03:11 +02:00
Alug 48e71afec1 update lzf compression to 1.6 2024-09-28 01:03:08 +02:00
Alug 1c6fce9339 fix encore minimap 2024-09-27 15:05:38 +02:00
Alug 96551d3b75 use qs22j here again
it is really faster
thought it wasnt in this case
2024-09-27 15:05:34 +02:00
Alug 7a832df4d3 cleanup + reformatting 2024-09-27 15:05:31 +02:00
Alug c3b6121968 forgor this 2024-09-27 15:04:15 +02:00
Alug b3b2b65c5f reformat this 2024-09-27 15:04:12 +02:00
Alug 47a805ede7 Merge branch 'Saturn-Next' into clientkick 2024-09-26 18:18:53 +02:00
Alug 7a3ccec38d ; 2024-09-26 18:18:42 +02:00
Alug d8da0a11a2 gamestate resend counter was never proper reset for nodes
means it would carry over to the next person occupieing that node and made them have less chances to get the gamestate resent
2024-09-25 19:31:25 +02:00
Alug d5c3332635 those can be static 2024-09-24 22:23:29 +02:00
Alug 0137f2254d add toggle for water ripples Zzz... 2024-09-24 22:18:27 +02:00
Alug 206d562f3f Kick clients that fail to catch up with server gamelogic
version from rr to accomidate kart netcode a bit better
2024-09-24 19:11:03 +02:00
Alug 63f649724e Merge branch 'Saturn-Next' into unglobsavep 2024-09-24 17:05:42 +02:00
Alug da769ce524 only allow director toggling with button when you spec someone 2024-09-24 16:57:25 +02:00
Alug 2e99636bb0 make director text disappear after 13 seconds, and in replays after 4 2024-09-24 15:25:56 +02:00
indev ff7f68f5b4 Expose demo.freecam as replayfreecam 2024-09-24 16:05:22 +03:00
Alug 14eec0c902 dont show director text when in replay freecam 2024-09-24 15:03:31 +02:00
Alug b064c534d8 hide viewpoint text when in replay freecam 2024-09-24 15:03:28 +02:00
Alug e7c0f322ee dont show driftgauge when in replay freecam 2024-09-24 15:03:14 +02:00
Alug 725754c427 dont run director when you use spectator freecam 2024-09-24 15:03:07 +02:00
Alug 9a6c0a0280 check vres data before freeing it 2024-09-23 23:13:08 +02:00
Alug 26d8c05ce7 forgor some casting 2024-09-23 23:13:05 +02:00
indev 91a9f20af7 Skip map marker in vres_GetMap 2024-09-24 00:08:48 +03:00
indev 90745d91aa Add showdownloadprompt cvar, so addon download prompt can be disabled 2024-09-23 23:39:25 +03:00
Alug 0dbae34998 completely forgor to revert this lol 2024-09-23 15:53:05 +02:00
Alug eec93b8013 Revert "beta hud driftgauge"
This reverts commit 26e8c2ca2b.
2024-09-23 01:35:14 +02:00
Alug cfe3f01b32 Revert "extra check"
This reverts commit 0bb1efcd50.
2024-09-23 01:35:11 +02:00
Alug df10262ebb Revert "beta hud driftgauge"
This reverts commit 26e8c2ca2b.
2024-09-23 01:34:47 +02:00
Alug a87ac3e35e Revert "extra check"
This reverts commit 0bb1efcd50.
2024-09-23 01:34:41 +02:00
Alug b71d9d2e68 Merge branch 'Saturn-Next' into unglobsavep 2024-09-23 01:04:04 +02:00
Alug 43452e1af4 dont actually call Nullprecipthinker 2024-09-23 01:03:59 +02:00
Alug a4706e0785 read precip row in perfstats 2 2024-09-23 01:03:24 +02:00
Alug c921ab463c dont count precip towards thinkers in perfstats 2024-09-23 01:03:20 +02:00
Alug 892816dadf fix precip performance issuess on certain maps 2024-09-23 01:03:17 +02:00
Alug cc44a5785d lets not archive players as mobjs 2024-09-22 23:08:33 +02:00
Alug 172d2bf545 Merge branch 'Saturn-Next' into unglobsavep 2024-09-22 22:20:19 +02:00
Alug e7e1fd711e dont check consistency/attempt to resend the gamestate while a client is currently getting the save resend
perhaps that makes mass synchs less bad
2024-09-22 22:16:21 +02:00
Alug 7493b3d2ab Revert "clean up leveload a bit"
This reverts commit c14af4a136.
2024-09-22 22:10:57 +02:00
Alug ba5459eeb6 Revert "clean up leveload a bit"
This reverts commit c14af4a136.
2024-09-22 17:52:26 +02:00
Alug 31370741f2 Merge branch 'Saturn-Next' into unglobsavep 2024-09-22 17:01:27 +02:00
Alug 0bd9c696df try to prevent unknown packet type spam when client attempt to connect while levelloading 2024-09-22 16:53:31 +02:00
Alug c14af4a136 clean up leveload a bit 2024-09-22 16:53:25 +02:00
Alug 8dfa841a7b Load palette before map data 2024-09-22 16:52:07 +02:00
Alug a6de843c75 cleanup r_draw8 2024-09-22 16:52:04 +02:00
Alug 0bb1efcd50 extra check 2024-09-22 04:14:31 +02:00
Alug 26e8c2ca2b beta hud driftgauge
eh needs some stuff for menu still
also should replace driftgauge gfx sometime
2024-09-22 04:13:53 +02:00
Alug 12ffca7374 precalc automap and minimap stuff on mapload instead of every frame 2024-09-22 04:13:02 +02:00
Alug e187f73044 Merge branch 'Saturn-Next' into unglobsavep 2024-09-21 17:41:58 +02:00
Alug 6ecf65d83a Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next 2024-09-21 16:03:17 +02:00
Alug 231c173545 move this so speccing resets your laptime 2024-09-21 16:03:13 +02:00
Alug f12b7fd772 move this 2024-09-19 12:41:40 +02:00
Alug 14ea041c72 always reset cam subsector regardless of splitscreen 2024-09-18 12:11:14 +02:00
Alug 6fb804292c Prevent integer div by 0 in curl progress callback 2024-09-18 01:07:43 +02:00
Alug f77f7361a9 this also does nothing 2024-09-18 01:06:54 +02:00
Alug d6d19d5dab smol cleanup 2024-09-18 01:02:42 +02:00
Alug 8074bfacb6 this does nothing 2024-09-18 00:58:37 +02:00
Alug f5f7b99479 Fix crash if a packet fails to reach the client
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2480 but keeps the returns;
2024-09-17 21:02:05 +02:00
Alug f0a8c27829 Fix crash when trying to send to an unreachable client
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2232
2024-09-17 20:58:23 +02:00
Alug 30024f2341 this is the correct value 2024-09-17 19:47:30 +02:00
Alug ff0dcafeea make ticcmds on gamestateresend
resynch will still stop making em
should hopefully fix some weird issues where you might end up somewhere weird if the resend takes a little longer
2024-09-17 16:47:34 +02:00
Alug 8580451bce properly reset all splitscreen cameras on resynch
also fix some casting
2024-09-17 16:47:31 +02:00
Alug d867868854 Revert "dont run playerjoin hook on resynch"
This reverts commit 5f7bf4164d.
2024-09-17 16:43:25 +02:00
indev b1644d4817 Ignore case here 2024-09-17 17:23:16 +03:00
indev a9a3a04379 Add proper skin search in skin command 2024-09-17 17:16:35 +03:00
Alug 3aa55ee9c3 dont need this 2024-09-16 18:12:52 +02:00
Alug 8cfc8a5492 "player" 2024-09-16 17:52:58 +02:00
Alug 3f1c8db362 some stuff i forgor 2024-09-16 17:33:31 +02:00
Alug 0d999d7a70 Revert "Contain end & size into savebuffer_t"
This reverts commit 1a810bc923.
2024-09-16 17:17:19 +02:00
Alug 8bc081d937 Use Zone memory functions for sending compressed saves 2024-09-16 13:47:46 +02:00
Alug 42eb8d1af5 Only save demo if demobuf.p is ready 2024-09-16 13:47:43 +02:00
Alug 1a810bc923 Contain end & size into savebuffer_t 2024-09-16 13:47:40 +02:00
Alug 065572ef64 more fixup 2024-09-16 12:56:19 +02:00
Alug e88702e10c fix demo checkspace 2024-09-16 12:56:16 +02:00
Alug ee2d934525 rest smol fixes 2024-09-16 12:42:39 +02:00
Alug 2a3a33226e fixup demo savebuf 2024-09-16 12:42:36 +02:00
Alug 539315710c clean up 2024-09-16 12:42:33 +02:00
Alug 191a6ca76f unglobalize savebuffer
needs some cleanup
2024-09-16 12:42:29 +02:00
Alug 7ac9f0cbef dont rerun mapload hook on resynch 2024-09-16 00:54:29 +02:00
Alug 5f7bf4164d dont run playerjoin hook on resynch 2024-09-16 00:54:26 +02:00
Alug 43690c9b2c fix sound bug lol 2024-09-16 00:08:21 +02:00
Alug 02c14bfa5c Merge branch 'Saturn' into Saturn-Next 2024-09-16 00:08:11 +02:00
Alug 0544811c7d Merge pull request #135 from Indev450/Saturn-Next
Saturn v7
2024-09-15 13:02:42 +02:00
Alug e079bac283 make advanced server menu scroll menu
grrrrr green res
2024-09-15 12:03:20 +02:00
Alug 862f1fce2c ... 2024-09-15 12:03:16 +02:00
Alug 5aeb78f2a5 Merge pull request #134 from Indev450/absolutehell
Huge Netcode/Resynchcode changes
2024-09-15 11:45:35 +02:00
Alug cb42bc581b squish options menu a little
im honestly too lazy too move shit around just before release lmao
2024-09-15 11:43:44 +02:00
Alug 5fc9410b59 Merge branch 'Saturn-Next' into absolutehell 2024-09-14 22:23:51 +02:00
Alug 84d3ee7170 maths..... 2024-09-14 22:23:11 +02:00
Alug accef8f1e1 version change 2024-09-14 21:10:55 +02:00
Alug 4a8edff694 Merge remote-tracking branch 'origin/Saturn-Next' into absolutehell 2024-09-14 21:01:08 +02:00
Alug aac3b8d025 forgor this one 2024-09-14 19:45:23 +02:00
Alug 4034658e44 some cleanup 2024-09-14 19:44:01 +02:00
Alug 7d4898dd8b remove code dupe in r_segs 2024-09-14 18:43:13 +02:00
indev 71fe6ec9da should be != here 2024-09-14 19:04:51 +03:00
indev 075097c219 Don't default to sonic if skin was changed to unknown skin, use current skin instead 2024-09-14 16:40:17 +03:00
Alug f70ec60ae4 use continues in hooklib loops too
idk if this is any faster, but it makes smth i wanna port over potentally easier
2024-09-14 12:35:29 +02:00
Alug aeafd46f24 smol m_menu cleanup 2024-09-13 14:17:13 +02:00
Alug 5f57044118 replace tooltip crap with a macro + fix adv video options tooltips 2024-09-13 14:02:15 +02:00
Alug 65006c11d3 move credits a tiny bit 2024-09-13 13:37:10 +02:00
Alug 76bc184f6c whoops wrong tooltip 2024-09-13 13:35:18 +02:00
Alug dd39a444f2 add smol comment 2024-09-13 13:30:30 +02:00
Alug 1a16012a5c this used to be const 2024-09-13 13:22:51 +02:00
Alug c49aae8d49 no need to save saturnjoin value + smol cleanup 2024-09-13 13:21:25 +02:00
Alug d5dc52d3d3 super smol optimization R_ThingWithinDist
no need to run fixedhypot on every sprite when you dont use draw distance limit
2024-09-13 12:44:38 +02:00
Alug 4f1f1ede97 smol menu visual cleanup 2024-09-13 12:33:49 +02:00
Alug c98b896fc8 add old line whatever in intermission add beta intermission visual to menu 2024-09-13 12:33:02 +02:00
Alug 3714735c2a small cleanup intermission drawer 2024-09-13 12:32:59 +02:00
Alug 025cc093db Merge remote-tracking branch 'origin/Saturn-Next' into absolutehell 2024-09-13 10:48:34 +02:00
Alug 924d79c20d only need to check all this when in splitscreen
retains vanilla behaviour
2024-09-13 00:23:07 +02:00
Alug 0926f68776 clean up sprite stuff 2024-09-13 00:16:35 +02:00
Alug 26f3806b3c fix wöter shader interpolation
accidentally reverted that when redoing palette rendering
2024-09-12 22:43:14 +02:00
Alug d628320c8d forgor this 2024-09-12 01:05:07 +02:00
Alug 41fc4c7cfd delete DEH_WriteUndoline
it literally does nothing lol
2024-09-12 01:05:05 +02:00
Alug 1c8ca2b110 apparently this always runs
i am in pain
2024-09-11 21:10:41 +02:00
Alug 241d107485 let item button toggle encore in mapselect screen
guh
2024-09-11 21:10:38 +02:00
Alug 8d0601c2ad add missing masterserver ifdef 2024-09-11 21:10:35 +02:00
Alug 31118254a0 this can be int16 2024-09-10 19:56:52 +02:00
Alug 85a1636776 Revert "smol optimization to HWR_AddLine"
This reverts commit 77c9badeca.
2024-09-10 10:58:15 +02:00
Alug 3b227932e9 Revert "smol optimization R_AddLine"
This reverts commit 677cdc77e4.
2024-09-10 10:58:12 +02:00
Alug ff591bce04 Revert "Zzz..."
This reverts commit c3a03d89c4.
2024-09-10 10:58:09 +02:00
Alug c3a03d89c4 Zzz... 2024-09-10 10:31:25 +02:00
indev dd405532af Snap title demo logo to bottom right corner 2024-09-09 23:56:53 +03:00
Alug 677cdc77e4 smol optimization R_AddLine 2024-09-09 22:57:21 +02:00
Alug f9463d8efa smol cleanup 2024-09-09 22:57:18 +02:00
Alug 77c9badeca smol optimization to HWR_AddLine 2024-09-09 22:57:15 +02:00
Alug 926287eb97 remove redundant check 2024-09-09 22:57:12 +02:00
Alug 7a91b19962 only change lightlevel/colormap behaviour in palette rendering 2024-09-09 21:51:09 +02:00
Alug c148ff5a05 fix off by one in sprite lightlevels 2024-09-09 21:51:06 +02:00
Alug ef7e658f9d Merge branch 'Saturn-Next' into absolutehell 2024-09-09 18:51:37 +02:00
Alug 0e9b9d15ea revert this ig 2024-09-09 18:51:23 +02:00
Alug dd2d437a21 Merge branch 'Saturn-Next' into absolutehell 2024-09-09 16:05:16 +02:00
Alug b9779d4dba add toggle for director prompt
cause ik some ppl will complain lol
2024-09-09 16:05:08 +02:00
Alug 1d40d8c4ef make this less complicated lol 2024-09-09 15:58:45 +02:00
Alug 847b1f5cb7 fade director hud after 4 secs after toggling it 2024-09-09 15:58:43 +02:00
Alug 9448a98573 disable director on title screen and record attack demos 2024-09-09 09:25:06 +02:00
Alug 14bce36b95 make it static actually 2024-09-08 23:36:57 +02:00
Alug ba4c54004a turn off director by default when playing replays and restore the setting when done
you can  still toggle it in replays no issues
but you mostly want to watch yourself or a certain person during replays, so having to manually toggle it off always is weird
2024-09-08 23:34:35 +02:00
Alug 9fdfc09229 dont trigger rumble in offroad when under hyu effect 2024-09-08 23:09:17 +02:00
Alug b19bc7d77e slight portal cleanup 2024-09-08 16:53:52 +02:00
Alug 58815ae9c4 fix potential rendering issues on large maps 2024-09-08 16:45:50 +02:00
Alug 0b12c9b5a8 smol cleanup 2024-09-08 16:45:48 +02:00
Alug 863abe86ca oops 2024-09-07 20:09:49 +02:00
Alug f54d2fb0fe clean up and improve ogl portals 2024-09-07 20:09:45 +02:00
Alug 8824ba3824 this is literally broken and noone knows about it anyways lol 2024-09-07 17:52:24 +02:00
Alug 8a8db796be Show a console error if the gamestate contains too many tables 2024-09-07 17:30:08 +02:00
Alug 4f532b766f this needs to be shifted 2024-09-07 17:04:06 +02:00
Alug e175a4e00b guh 2024-09-07 16:57:41 +02:00
Alug 473e843142 this should use angleturn
uhhh
2024-09-07 16:46:29 +02:00
Alug ef8e71cb11 set camera angle to player angle in CL_ReloadReceivedSavegame
hope i did this right lol
should hopefully fix more jarring visual stuffs
2024-09-07 16:28:17 +02:00
Alug ea985151dd dont rerun levelload executors when gamestate resent 2024-09-07 16:27:35 +02:00
Alug 62fae0ad8b dont print "Map is now" everytime you resynch from gamestate resend 2024-09-07 16:27:32 +02:00
Alug f9210ee3bc smol fixes for gamestate resend in P_SetupLevel
- dont reset cameras during gamestate resynch
- dont reinit director during gamesate resynch
- dont reset view interpolators aswell
- dont reset localaiming aswell

should make resynching less jarring visually hopefully
2024-09-07 15:35:41 +02:00
indev d5101dd0b2 Document changes to lua P_PlayRinglossSound and K_PlayHitEmSound functions 2024-09-07 11:47:09 +03:00
Alug 2a7940bfd1 Merge branch 'Saturn-Next' into absolutehell 2024-09-06 22:37:53 +02:00
Alug 047d38daab Merge branch 'noZ_unlock' into Saturn-Next 2024-09-06 22:37:39 +02:00
Alug 2d61f5c861 add compiler flags NOSATURNSYNCH, NOSATURNJOIN and NOSATURNPAK
not building with SATURNSYNCH also will disable SATURNJOIN since it makes not much sense to have that when synch stuff is unused
2024-09-06 21:41:53 +02:00
Alug 750f305c46 % 2024-09-06 21:06:06 +02:00
Alug 51b79e58d3 smol cleanup + add comments 2024-09-06 21:05:33 +02:00
Alug 915b4e9d15 set netgame save stuff to false for replays
to retain max vanilla compat for replays
dont want those breaking between clients
2024-09-06 21:05:30 +02:00
Alug c9c0c06763 reserve saturn packet even if unused
to not cause any weird isssues if either one is undefined and stuff like that
2024-09-06 20:36:27 +02:00
Alug 406037dabe menu offset stuff for if not using SATURNSYNCH 2024-09-06 20:06:57 +02:00
Alug d9affe2331 oops again 2024-09-06 19:59:45 +02:00
Alug 6df675523f hide gamestate resynch stuff behind SATURNSYNCH ifdef 2024-09-06 19:55:34 +02:00
Alug 65e66e8ace oops 2024-09-06 19:55:32 +02:00
Alug 5efb0c7136 put saturn specific join allow stuff behind SATURNJOIN define
so it can be seperate from SATURNPAK
2024-09-06 19:25:02 +02:00
Alug 1793340474 Merge branch 'Saturn-Next' into absolutehell 2024-09-06 19:13:31 +02:00
Alug d10db6d1d2 make this completely toggable actually 2024-09-06 18:51:06 +02:00
Alug 9eefbcea72 only save demo in map command if you atleast spend 35 seconds in one map 2024-09-05 18:34:50 +02:00
Alug d56b70a8e7 toggle for saving replays on changing to same map 2024-09-05 10:52:45 +02:00
Alug 54ebb9dfec test also save replay on mapchange command 2024-09-05 10:52:42 +02:00
Alug 43b6597ec0 this should also check for screentex cvar value 2
dont run certain postprocessor effects when you dont have screentextures enabled
2024-09-04 23:45:08 +02:00
Alug b7d887d610 add a little bit of safety to R_SetupFrame 2024-09-04 23:31:54 +02:00
Alug ff9b35ab45 remove IFCHANGED macro, check directly in R_Lerp funcs + inline those
basically does the same thing lol just looks better
2024-09-04 18:49:16 +02:00
Alug 20b5175180 scale precip momz with mobjscale when cv_mobjscaleprecip enabled 2024-09-04 18:48:13 +02:00
Alug 596c8e2ecc also scale precip sprite with mobjscale when cv_mobjscaleprecip enabled 2024-09-04 18:48:08 +02:00
Alug 94218a6549 only call HWR_RenderPlayerView in ogl explictly 2024-09-04 18:48:05 +02:00
Alug 2d36f798e7 Merge branch 'Saturn-Next' into absolutehell 2024-09-04 15:26:42 +02:00
Alug 853004dad9 smol cleanup for led stuff again 2024-09-04 15:26:31 +02:00
Alug 0cc86430ca smol cleanup hw_shaders 2024-09-04 15:26:28 +02:00
Alug 8760886f57 smol cleanup p_map 2024-09-04 15:26:24 +02:00
Alug 821669d03d Revert "optimize z position checking for mobjs without collision and camera"
This reverts commit c11d925580.
2024-09-04 15:23:28 +02:00
Alug 17f8996afc revert pretty much all mobj changes for now
might reapply them some other time, but since we need to maintain vanilla compat as much as possible gonna revert crap
kinda sick of desynching stuffs and honestly most the mobj stuff rarely ever crashes
2024-09-04 15:23:14 +02:00
Alug 7ef4eedd06 Revert "optimize pointon functions"
This reverts commit 94ddd01427.

may be readded in v7.1 
since this is pretty sensitive code and i dont want to desynch or crap so this def needs more testing
2024-09-04 15:04:54 +02:00
indev df6a31767e Make server send serverinfo packet so client can know server name even when connecting just by ip 2024-09-02 21:47:02 +03:00
Alug 882a3b7824 revert this 2024-09-02 17:58:35 +02:00
Alug 94ddd01427 optimize pointon functions 2024-09-02 17:46:41 +02:00
Alug e614decae0 optimize MT_TUBEWAYPOINT
Store waypoints at map load instead of iterating through the thinker list to find them

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/938
2024-09-02 17:45:57 +02:00
Alug e0f46ea80d oop 2024-09-02 17:44:55 +02:00
Alug 3391018606 some stuffs from lugstuff
mostly just cleanup and smoler optimizations
2024-09-02 17:40:05 +02:00
Alug 61fd11f7cd those are unused 2024-09-02 14:23:24 +02:00
Alug 4a469aebdc dont draw precip in skyboxes in opengl like software does 2024-09-02 14:23:22 +02:00
Alug 341815c0ed this can be static 2024-09-02 14:23:19 +02:00
Alug 5830270bda optimize polyobject spawn
should speed up level loading with maps with polyobjects
thx geezeedoom
2024-09-02 14:23:16 +02:00
Alug 8a1ff58dff free texture patchlumps proper in R_LoadTextures
drastically reduces ram usage
2024-09-01 20:43:40 +02:00
Alug 0523d98a1c Test: remove Z_Unlock and proper free some stuff 2024-09-01 20:41:42 +02:00
Alug 983af4e7a1 Merge branch 'Saturn-Next' into absolutehell 2024-08-31 20:19:42 +02:00
Alug f8bec7296c no idea why i put those here 2024-08-31 20:19:12 +02:00
Alug 2be4bd3d6a update camera when paused and changing cam dist or height 2024-08-31 20:15:41 +02:00
Alug 7d74296604 throw menu bg conditions into own function since it s terrible 2024-08-31 19:53:09 +02:00
Alug 0504a355d2 add camera options menu 2024-08-31 19:52:35 +02:00
Alug 036df817f1 give camera lookback a toggle + extra option 2024-08-31 18:46:01 +02:00
Alug ba331caff6 when looking back camera momentum should inherit the mom of the player
makes using shoes or any boost stuff less jarring when looking back
2024-08-31 18:45:58 +02:00
Alug e2ac9708cb super tiny cleanup m_menu again 2024-08-31 18:45:55 +02:00
Alug 783ce7bada give camera lookback a toggle + extra option 2024-08-31 18:45:47 +02:00
Alug 594931e07e when looking back camera momentum should inherit the mom of the player
makes using shoes or any boost stuff less jarring when looking back
2024-08-31 18:45:43 +02:00
Alug 3e245d49d8 super tiny cleanup m_menu again 2024-08-31 18:45:36 +02:00
Alug 76ed4aae12 forgor speedo doesent draw in splitscreen + change offsets 2024-08-31 18:11:06 +02:00
Alug 565f36d4b7 forgor speedo doesent draw in splitscreen + change offsets 2024-08-31 18:10:59 +02:00
Alug 75a94b050d Merge branch 'Saturn-Next' into absolutehell 2024-08-31 18:01:34 +02:00
Alug 91fac0880d add battlespeedometer to saturn hud menu + apply offset to bumper gfx when enabled 2024-08-31 18:01:22 +02:00
Alug 42fa29f78b make timer flash at 99´59´99 again 2024-08-31 17:39:30 +02:00
Alug 28d8e84d6b this can be static and inlined 2024-08-31 16:53:33 +02:00
Alug c11d925580 optimize z position checking for mobjs without collision and camera
idk how much this does tbh
only for stuff without collision since it may desynch otherwise

based on
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2214

and

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2250
2024-08-28 02:35:42 +02:00
Alug d7c1b12dbd changes to saturn menu
-Add new Saturn Hud options menu to declutter normal saturn options
- If in any of the hud options the game will force display the kart hud and disable the fade background
- i hate m_menu
2024-08-27 18:26:18 +02:00
Alug e2c3d5b20d respawn precip when toggling any of its settings 2024-08-27 16:41:19 +02:00
Alug 8581d87e41 toggle to scale weather with mobjscale
toggle since it may tank performance on certain maps for some + may make visability worse
2024-08-27 16:27:28 +02:00
Alug fe853d4bee fix compileur warnings
idk if this is right lol
2024-08-27 06:07:38 +02:00
Alug b8038130b8 fix conflict 2024-08-27 05:51:35 +02:00
Alug 31c5d8d67c fix precip switching 2024-08-27 05:44:31 +02:00
Alug a2f4430378 stuff 2024-08-27 05:44:27 +02:00
Alug a8e4f6e2ea Reapply "lol"
This reverts commit 340450a67e.
2024-08-27 05:44:20 +02:00
Alug aac89f270b Reapply "optimize precip thinker"
This reverts commit dd73787c8b.
2024-08-27 05:44:13 +02:00
Alug 9022e02ccd fix potential crash in P_TryCameraMove for dedi servers 2024-08-23 15:31:58 +02:00
Alug 5ddd2e4fbc cleanup P_DoSuperTransformation
its still exposed to lua for whatever reason
so cant really remove crap kek
2024-08-23 15:31:55 +02:00
Alug 3b500add73 cleanup birdmusic crap again
music_resync_powerups_only literally didnt do shit lol
removed some other unused crap
changed some conditions to better check for stuff
etc idk
i just rather remove this whole thing at this point but oh well
2024-08-23 15:31:52 +02:00
Alug 4a6635f8a8 Revert "smol interp fixes"
This reverts commit 77a2976d05.
2024-08-22 14:54:43 +02:00
Alug af6393af50 forgor 2024-08-21 15:38:46 +02:00
Alug 6a14543e9e cleanup FBO on shutdown + make some stuff static 2024-08-20 23:26:43 +02:00
Alug 3d827570e6 more changes to FBO stuff
now it wont ever do anything when disabled
also properly deletes the FBO when disabling it
2024-08-20 23:18:35 +02:00
Alug 9f8eb07442 revert this in y_inter 2024-08-20 21:33:41 +02:00
Alug 31c64b63de make this more robust ig 2024-08-20 03:57:49 +02:00
Alug cf5c0ca5f7 forgor return 2024-08-19 21:54:22 +02:00
Alug f0d91a9708 do not constantly query ogl extensions 2024-08-19 21:48:56 +02:00
Alug 0f94a26dc6 dumbass workaround for issues on xwayland with nvidia
this will run automatically when it detects an nvidia gpu even with gr_framebuffer disabled lol

we have safeguards everywhere so shouldnt be an issue
2024-08-19 19:37:02 +02:00
Alug cded0af061 change some stuff for saturn 2024-08-19 17:51:35 +02:00
NepDisk fffa7e44c5 Appimage compile pt2 2024-08-19 17:51:31 +02:00
NepDisk a38aee7fe3 Appimage compile pt1 2024-08-19 17:51:29 +02:00
Alug 4d03fa06e1 raise maxpng res 2024-08-19 17:51:26 +02:00
Alug dcd470b2e1 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-08-19 14:58:08 +02:00
Alug 2259ef3f71 Update LUASTUFF
idk i suck at explaining lmao
but atleast those should be mentioned
2024-08-19 14:58:01 +02:00
indev af18e2b7d1 Don't execute exitgame command on dedicated servers 2024-08-19 14:14:59 +03:00
indev 9e8d79f246 Fix compilation when SDL_VERSION_ATLEAST(2,0,18) is false (if its false then 'else' statement would not be valid) 2024-08-19 14:14:17 +03:00
Alug 5b480be6dc smol cleanup for downsample stuff 2024-08-19 12:16:32 +02:00
Alug 54d897fc33 smol i_video cleanup 2024-08-19 12:15:47 +02:00
Alug cfebe422d3 Fix typo 2024-08-19 12:00:27 +02:00
NepDisk fcc5c13274 Fix Compile without with out of date SDL 2024-08-19 11:59:48 +02:00
Alug 707448193b Fix some tooltips so they don't go offscreen
grr git not crediting neppy for some reason
2024-08-19 11:59:45 +02:00
NepDisk 84a1f86037 Allow the control binds menu to use lower case 2024-08-19 11:59:42 +02:00
NepDisk b2129011c2 Fix gamepad menus for green reses via scrolling 2024-08-19 11:59:38 +02:00
Alug 9d359ef8c5 use qsort instead of qs22j for vissprite sorting
seems to be actually faster in this case
2024-08-19 11:59:35 +02:00
Alug 87a2b74a88 this should not be in HWRENDER ifdef 2024-08-19 11:59:33 +02:00
Alug d5388e8dad fix NOHW compile 2024-08-19 11:59:29 +02:00
Alug fe7677c5c8 Revert "Do not access memory on misaligned addresses"
This reverts commit 112716dae5.
2024-08-19 11:59:25 +02:00
Alug f36ac0bb4b this should not be in HWRENDER ifdef 2024-08-17 20:03:35 +02:00
Alug d24bcc9fd7 fix NOHW compile 2024-08-17 20:01:46 +02:00
Alug daf8151a32 Revert "Do not access memory on misaligned addresses"
This reverts commit 112716dae5.
2024-08-17 19:56:14 +02:00
Alug b432491d34 throw saturnpacket and join stuff behind "SATURNPAK" ifdef, disable it for now 2024-08-17 19:54:56 +02:00
Alug 1313b4c112 Merge branch 'Saturn-Next' into absolutehell 2024-08-17 19:43:42 +02:00
Alug 164d7399d2 smol fix to slope light 2024-08-17 16:31:09 +02:00
Alug 87176cfd0b better slope light 2024-08-17 16:09:43 +02:00
Alug bab96b73e0 smol changes 2024-08-17 16:09:40 +02:00
Alug f10db3900a Use a const for the contrast 2024-08-17 16:09:37 +02:00
Alug 7d4b1d0852 Update light offset on polyobjects when they rotate 2024-08-17 16:09:34 +02:00
Alug 6ab99218f2 precalc fakecontrast on mapload 2024-08-17 16:09:31 +02:00
indev 1959edf357 Always allow typing replay search query, similar to addon search 2024-08-16 01:58:33 +03:00
indev 6fc2681b34 Add 'Hit Em Delay' option in menu 2024-08-16 01:51:29 +03:00
indev 02dcf85c46 Prioritize display players when assigning delayed 'hit em' 2024-08-16 01:51:29 +03:00
indev 89f0521cce Oops forgot to change that
Dunno if this function ever gets called for non-player objects but just in case
2024-08-16 01:51:28 +03:00
indev 35029e826f Add delayed hit em sound (like in DRRR), togglable via 'karthitemdialog' cvar 2024-08-16 01:51:28 +03:00
Alug f6c170b53c add onchange func for led + fix rumble onchange 2024-08-16 00:34:16 +02:00
Alug 7991a5ce5e Merge branch 'Saturn-Next' into absolutehell 2024-08-16 00:09:46 +02:00
Alug 3973851dd2 add toggles for gamepad led stuff 2024-08-16 00:09:08 +02:00
Alug f6361e29bd reset rumble when player is exiting 2024-08-16 00:08:52 +02:00
Alug 9f8db631f0 reset rumble when player is exiting 2024-08-15 23:46:02 +02:00
Alug ada1de7ad6 dont change connect behaviour regardless of client + smol cleanup and fixes
should hopefully fix any remaining issues
2024-08-15 23:44:48 +02:00
Alug ac55d473e7 smol cleanup 2024-08-15 17:34:58 +02:00
Alug 2100f11af7 remove duplicates in ResetNode 2024-08-15 17:34:55 +02:00
Alug ea1b5cd1a9 Merge branch 'Saturn-Next' into absolutehell 2024-08-15 17:34:50 +02:00
Alug e100fff230 check for changed state before everything else 2024-08-15 16:38:19 +02:00
Alug 5393ac526a move this in hw_main 2024-08-15 16:38:12 +02:00
Alug 808f7baf53 move this in coindition 2024-08-15 16:38:08 +02:00
Alug 35f54822be smol cleanup HWR_RenderPlane 2024-08-15 16:38:05 +02:00
indev 94714fe571 Fix increasing number of viewpoints in replays by more than 1 (like pressing '3' with only one viewpoint) crashing game 2024-08-14 16:08:39 +03:00
Alug 5bdf8698bd completely disable director in splitscreen
will eventually get to splitscreen support lul
2024-08-14 14:45:42 +02:00
Alug 2398e60e89 fix director lol 2024-08-14 14:10:40 +02:00
Alug b4e563bfd6 Merge remote-tracking branch 'origin/Saturn-Next' into absolutehell 2024-08-11 11:22:21 +02:00
indev a56ce09923 Fix LUA_EvalMath warnings being broken sometimes 2024-08-11 12:01:10 +03:00
Alug 68c7a6bd93 Merge branch 'Saturn-Next' into absolutehell 2024-08-09 19:48:28 +02:00
indev b4612d6bd4 Fix smol memory leak in replay search thread oops 2024-08-09 19:45:16 +03:00
indev c2cfc96d87 Load replay titles in separate thread 2024-08-09 16:05:48 +03:00
indev 8db99291ac Visual improvements for replay search 2024-08-08 22:40:22 +03:00
indev c9aa764444 Add alternative button ('/') to open replay search 2024-08-08 22:09:30 +03:00
indev ee4869993d Oops shouldn't z_free that 2024-08-08 22:03:00 +03:00
indev 0758cf39c2 Greatly improve replay search perfomance by only reading replay name, and not entire file. Increase default search rate up to 1000 2024-08-08 22:01:19 +03:00
indev bb0c777cac Fix M_HutCheckReplays still being called in menu (hopefully) 2024-08-08 21:31:09 +03:00
indev 0bd2c49dae Search replays using title instead of filename 2024-08-08 18:43:03 +03:00
indev d25c6fa0b2 Test replay search 2024-08-08 16:51:39 +03:00
Alug 8f2d36aab0 smol cleanup 2024-08-05 12:40:06 +02:00
indev 6c764a8487 Fix chat not saving in console
Not sure why it was working before but broke now, maybe making va use snprintf instead of sprintf broke that
2024-08-04 16:57:24 +03:00
Alug dd6056a07a check if theres even controllers in rumble ticker 2024-08-04 14:53:24 +02:00
Alug a83d364ba7 update led status in main loop
makes this whole ordeal alot less hacky tbh
player color always gets updated if it changes
still allows for directly setting led color elsewhere by using G_SetPlayerGamepadIndicatorColor directly
hoping crap doesent cost any perf but honestly shouldnt
2024-08-04 14:53:21 +02:00
Alug 9c4b2b0abf no need for this 2024-08-04 14:53:18 +02:00
Alug 4235801ae4 proper pass fwrapv to gcc 2024-08-04 14:53:16 +02:00
Alug 6791f2e883 forgor 2024-08-04 12:50:39 +02:00
Alug caeec35c66 fix warning in director 2024-08-04 12:50:02 +02:00
Alug 7b95df150a support gcc 14.2.1 + fix some stuff 2024-08-04 12:49:59 +02:00
Alug 852651cefe better statdisplay offsets in splitscreen
lots of trial and error.....
2024-08-03 23:50:03 +02:00
Alug 22b9915ad7 smol fix to viewroll interp 2024-08-03 22:50:46 +02:00
Alug 0f994a0676 expose viewroll to lua 2024-08-03 22:50:42 +02:00
indev 5d68fd690b Add ctrl-w (delete word), ctrl-left (move to word beginning) and ctrl-right (move to word end) shortcuts for console 2024-08-03 23:19:54 +03:00
Alug c55bc6db4d Merge branch 'Saturn-Next' into absolutehell 2024-08-03 21:46:13 +02:00
Alug a77d8b4762 fix spriteshadows 2024-08-03 21:44:28 +02:00
Alug 23596d2516 add controller rumble to menu 2024-08-03 21:26:08 +02:00
indev 352b958da1 Fix few remaining uses of this_scale and ty
Not too sure if this is correct tho
2024-08-03 22:06:18 +03:00
Alug e9f2ef1422 Merge branch 'Saturn-Next' into absolutehell 2024-08-03 20:48:37 +02:00
Alug 7baa711744 this somehow was not reverted 2024-08-03 20:48:31 +02:00
indev 65e274a65f Smol safeguard for R_PointToDist2 2024-08-03 21:27:25 +03:00
Alug a874691bce Merge branch 'Saturn-Next' into absolutehell 2024-08-03 18:02:42 +02:00
Alug d60d101e75 dont set localangle or smth 2024-08-03 18:02:36 +02:00
Alug 8d9a648dce misplaced this 2024-08-03 18:02:21 +02:00
Alug 2332cc76ee Merge branch 'Saturn-Next' into absolutehell 2024-08-03 17:44:05 +02:00
Alug 5c3a2bf5be make inline macros for pointtodist 2024-08-03 17:43:57 +02:00
Alug 5e2b50c49e add very light rumble to brakedrift 2024-08-03 17:43:53 +02:00
Alug 3a56bf2bb5 fix up ogl sprite drawers, fix floor clip fix remove ty and reduntand hires stuff 2024-08-03 17:43:47 +02:00
Alug 3f4afb604a check if displayplayer skincolor is availible before returning it 2024-08-03 17:43:25 +02:00
Alug 77a2976d05 smol interp fixes 2024-08-03 17:43:17 +02:00
Alug 0eda508cf6 revert some lightlevel stuff in hw_main 2024-08-03 17:43:13 +02:00
Alug 4301e0f750 make this more explicit 2024-08-03 17:43:09 +02:00
Alug c5eb81c26a remove redundant check 2024-08-03 17:43:05 +02:00
Alug 47d3cf3e62 change rumble ticker loop a bit 2024-08-03 17:42:59 +02:00
Alug 41dc34efe8 set default duration to 84 2024-08-03 17:42:53 +02:00
Alug 4acbca4c8f do not constantly reset rumble
so it can work from lua
2024-08-03 17:42:47 +02:00
Alug 11329d5794 throw rumble ticker into right place 2024-08-03 17:42:44 +02:00
Alug b0880607d4 fix cassting, make one tic duration default, but can still pass ms to it 2024-08-03 17:42:39 +02:00
Alug 2afa18bbdd add duration field to G_PlayerDeviceRumble
duration is in ms
2024-08-03 17:42:35 +02:00
Alug acad230daa expose rumble and led to lua 2024-08-03 17:42:31 +02:00
Alug 49fcf3e486 rename to G_SetPlayerGamepadIndicatorColor 2024-08-03 17:42:26 +02:00
Alug acb0144742 splitscreen support for rumble 2024-08-03 17:42:21 +02:00
Alug 6efc8fdad3 add splitscreen support to gamepad led
also add more proper device check
2024-08-03 17:42:18 +02:00
Alug c75e6ba63c add basic rumble support for gamepads 2024-08-03 17:42:14 +02:00
Alug 7bd1808c88 change gamepad rgb color when switching viewpoints 2024-08-03 17:42:04 +02:00
Alug fe8e00895a simplify reduntand condition 2024-08-03 17:42:00 +02:00
Alug 9dc5e3d338 ressting to defaultcolor should also set led color 2024-08-03 17:41:29 +02:00
Alug 694c1ad808 change color light when you cycle between colors in player setup 2024-08-03 17:41:18 +02:00
Alug 754b028623 give rgb custom color support, change rgb light color earlier in Color_OnChange
so it always unconditionally changes the color
also
2024-08-03 17:41:14 +02:00
Alug 4423fb300f set controller rgb to playercolor
eh only for 1st player now no splitscreen support
idk if everything here is even correct
2024-08-03 17:41:06 +02:00
Alug 5c7d9327e3 SDL: only react to window focus changes if state actually changes 2024-08-03 17:40:41 +02:00
Alug cd72bce3cb dont reload palette until config was loaded 2024-08-03 17:40:34 +02:00
Alug 64ef0465d5 calloc soundchannels insteal of mallocing 2024-08-03 17:40:28 +02:00
Alug fe6ad4f762 Do not run ST_Ticker if dedicated 2024-08-03 17:39:54 +02:00
Alug 4b69b39d39 HMS_fetch_rules: Return NULL if the curl connection failed, instead of producing garbled rules 2024-08-03 17:39:44 +02:00
Alug a6fc237c88 try to prevent potential infinite SIGARBT hang in signal handler 2024-08-03 17:39:40 +02:00
Alug 2448a0b735 Cache pk3 central directory and Refactor ResFindSignature to work in chunks
https://github.com/KartKrewDev/RingRacers/commit/8ca2dc77e75b1ba8c511380257f0bbaf6d21c27b
https://github.com/KartKrewDev/RingRacers/commit/dedd0047bd8f9f73aba4defc19c429af7c987983
2024-08-03 17:39:36 +02:00
Alug 685220140a fix potential crash on nix while quitting 2024-08-03 17:39:32 +02:00
Alug 99779629d0 dont always reset texture depth in ogl 2024-08-03 17:39:27 +02:00
Alug 9fceabed8f Ensure Z_Malloc provides same alignment as libc 2024-08-03 17:39:22 +02:00
Alug e11363db3a Fix sound falloff calculation overflow 2024-08-03 17:39:17 +02:00
Alug 023cade51d smol fix to frameskipping 2024-08-03 17:39:12 +02:00
Alug d675b98330 Revert "Fix mobj reference management of player->mo"
This reverts commit c5ec61baa5.
2024-08-03 17:38:15 +02:00
Alug b3f16e935d Revert "more mobj reference fixes + cleanup"
This reverts commit bd8ff77fe0.
2024-08-03 17:37:46 +02:00
Alug 5b9e179017 Revert "dont access delayremoved thinkers"
This reverts commit df9ad5a31f.
2024-08-03 17:37:12 +02:00
Alug 6f53263107 Revert "Clean up mobj and thinker removal"
This reverts commit 048ccf52b0.
2024-08-03 17:37:06 +02:00
Alug fd797436fa Revert "fix declaration"
This reverts commit 8f195530b5.
2024-08-03 17:36:53 +02:00
Alug 96ee117657 Revert "more reference fixes"
This reverts commit 94bd1cb37b.
2024-08-03 17:36:31 +02:00
Alug 8b60fb6b6c revert this 2024-08-03 17:36:07 +02:00
Alug 67542d3cf1 i didnt knew k_positiondelay exists 2024-07-29 20:16:21 +02:00
Alug 41e97ffa79 another smol fix to director 2024-07-29 16:40:43 +02:00
Alug ffcff99a79 lower breakawaydist in director 2024-07-29 15:42:20 +02:00
Alug 48bcaacada fix K_DrawDirectorDebugger 2024-07-29 15:42:17 +02:00
Alug 01b060b0fe cleanup k_director 2024-07-29 15:42:15 +02:00
Alug 51ce092a6a lower pinchdist in director
since we cant get an accurate value for distance to finish line, this should do it perhaps
2024-07-29 15:42:12 +02:00
Alug d09e02721b e 2024-07-27 15:56:56 +02:00
Alug 88b81aa28b e 2024-07-27 15:56:51 +02:00
Alug 84c4f4f428 Merge branch 'Saturn-Next' into absolutehell 2024-07-27 15:49:46 +02:00
Alug ab5bc92a95 Revert "raise MAXVISSPRITES for 64-bit again"
This reverts commit d5258786e5.
2024-07-27 15:49:39 +02:00
Alug b44dd3edf0 Merge branch 'Saturn-Next' into absolutehell 2024-07-27 15:04:09 +02:00
Alug 80498a78ea lagless cam toggle 2024-07-27 15:03:59 +02:00
Alug 40663eb2b5 lagless cam test 2024-07-27 15:03:55 +02:00
Alug dca2827154 this is not a server cvar lol 2024-07-27 15:03:43 +02:00
Alug eec069b4e8 Merge branch 'rrdirectorport' into Saturn-Next 2024-07-27 14:42:26 +02:00
Alug 26eedc3341 small change to director for battle 2024-07-27 14:39:08 +02:00
Alug b19cefee3c Merge branch 'Saturn-Next' into rrdirectorport 2024-07-27 14:39:04 +02:00
Alug fb54b969d1 toggle for laptimes 2024-07-27 14:38:58 +02:00
Alug 034724b03e Show last lap time on HUD
god this is kinda ass lol
doesent work when you join midgame so disabled for there
2024-07-27 14:38:53 +02:00
Alug b80762eaf5 rename draw dist settings 2024-07-27 14:38:45 +02:00
Alug d5258786e5 raise MAXVISSPRITES for 64-bit again 2024-07-27 14:38:42 +02:00
Alug 9bfe2d3138 add more sprite draw dist settings for 64bit clients 2024-07-27 14:38:38 +02:00
Alug ae3b3f750d when no autoload config is found skip everything in D_AddAutoloadFiles
stuff doesent need to run if theres nothing to autoload so things can be skipped
2024-07-26 15:03:17 +02:00
Alug f83090e299 when no autoload config is found skip everything in D_AddAutoloadFiles
stuff doesent need to run if theres nothing to autoload so things can be skipped
2024-07-26 15:03:12 +02:00
Alug 3e4f497cbc Merge branch 'Saturn-Next' into absolutehell 2024-07-26 14:29:26 +02:00
Alug ce2398fdb7 add some extra safety to orbit and bananachain funcs 2024-07-26 14:29:14 +02:00
indev f545cce6fe Add check for if lua state exist in UnArchiveExtVars, since server can have local luas that may add player/mobj fields into savegame 2024-07-26 14:29:10 +02:00
Alug f614725fcb some cleanup 2024-07-26 14:29:03 +02:00
Alug 59e4f9ce4a let autoload run later to mitigate server join issues
itll now run at a similar place to postautoload
this may hopefully prevent some issuess with freeslotting lua
however sadly this makes menu replacements not work at startup anymore
2024-07-26 14:29:00 +02:00
Alug dff6b15263 fix fail condition 2024-07-26 14:28:57 +02:00
Alug 977ee8ccfc make backup of kartconfig before writing to it 2024-07-26 14:28:54 +02:00
Alug 161815e6fb Merge branch 'Saturn-Next' into absolutehell 2024-07-24 15:02:42 +02:00
Alug 8dda864909 toggle palrendering and fbo off if screen textures are disabled 2024-07-23 20:32:18 +02:00
Alug f6f9542d6e add cam check here 2024-07-23 20:32:16 +02:00
Alug 6655c0d881 reset tilt when respawning 2024-07-23 20:32:13 +02:00
Alug 98c8176d59 simplify this 2024-07-23 20:32:10 +02:00
Alug 2e7f64458d forgor this 2024-07-23 20:32:07 +02:00
Alug d6a9cdc452 fix up bird screen tilting
removes old lerp variables that did nothing
properly interpolated viewroll
made it proper adjust to mobjscale
doesent roll view when spectating
general cleanup
2024-07-23 20:32:05 +02:00
Alug 17dbe77cd3 allowjoin now sets saturnjoin to its value use CV_StealthSet to prevent
its only for scripts pretty much so no need to toggle it seperately
2024-07-23 17:45:27 +02:00
Alug 4b71d9a48d add "allowsaturnjoin" cvar to let toggle allowjoin for saturn clients seperately 2024-07-23 17:45:25 +02:00
Alug 1f41cb9a3f e 2024-07-23 00:59:20 +02:00
Alug c6351c6c53 add to menu 2024-07-23 00:55:55 +02:00
Alug 283218f2d6 changuer how this works
counter decrements - 1 double the cooldown time
2024-07-23 00:47:39 +02:00
Alug 4de22e9d66 add gamestateresendattempts
so you can specify how often the game tries to resend gamestate to player in given time
so they dont get stuck in a synch loop
this is gamestateresendattempts value in the time of resynchcooldown *2
2024-07-23 00:47:34 +02:00
Alug b4a737d910 Test: Restore save_p after P_LoadLevel
P_LoadLevel calls some functions that save gamedata and
unset save_p.

this is kinda hacky but i perhaps will port the redone save buffer sometime
2024-07-23 00:47:13 +02:00
Alug 0f2c17324a Merge branch 'Saturn-Next' into absolutehell 2024-07-23 00:47:03 +02:00
Alug 6a1b10eaf9 Make polyobjects agree with sector lighting/colormap like a FOF. 2024-07-23 00:46:58 +02:00
Alug 824211c2f6 prevent potential level load crash 2024-07-23 00:46:54 +02:00
Alug 02d115f119 don't check flippedness in HWR_RotateSpritePolyToAim if the mobj is actually a precipmobj! 2024-07-23 00:46:52 +02:00
Alug b44617413b gitignore deez 2024-07-22 12:59:07 +02:00
Alug c447f25e0a add missing copyright stuff to k_director 2024-07-22 12:57:11 +02:00
Alug 34ce92d9fa Merge branch 'Saturn-Next' into absolutehell 2024-07-21 23:29:11 +02:00
Alug 7ad5dc61ac Revert "Free mipmaps before freeing tags"
This reverts commit 2437c5a19a.
2024-07-21 23:25:10 +02:00
Alug 7072332ab7 clean director up a little
toggling director now resets cooldown so it switches players immediately
also consolidated condition to be active
and ensure DirectorFollowAttack doesent always run when it doesent need to be
2024-07-21 22:50:04 +02:00
indev 60e933eb00 Add director hud indicator 2024-07-21 22:49:59 +02:00
Alug 43e3d07acb fix cmake 2024-07-21 22:49:54 +02:00
indev 228252ee6f Add bind for director toggle 2024-07-21 22:49:51 +02:00
Alug 56a919eb60 oops 2024-07-21 22:49:47 +02:00
Alug bfcb906b12 add stuff for directordebugger i forgor 2024-07-21 22:49:41 +02:00
Alug b94776063f only update director if consoleplayers specs or in demo playback
dont need to update this ever if we dont even use it lol
2024-07-21 22:49:38 +02:00
Alug 3f412373bc fix crash if everyone spectates 2024-07-21 22:49:35 +02:00
Alug e7d1858052 port director from RR 2024-07-21 22:49:31 +02:00
Alug bd106308fc revert this
doesent do anything but complicate stuff lol
2024-07-21 22:46:07 +02:00
Alug 6ec96b37bd remove hw_light 2024-07-21 22:38:57 +02:00
Alug 3653786e14 cleanup hw_main 2024-07-21 22:24:55 +02:00
Alug 5824d9e803 cleanup r_things a little 2024-07-21 22:24:51 +02:00
Alug 3ad3cdfa38 stop yelling clang 2024-07-21 22:24:49 +02:00
Alug efcd1df365 fix this oops 2024-07-21 22:24:46 +02:00
Alug aef62c45de smol cleanup
also check for splitscreen and if not dont run a for loop lul
2024-07-21 22:24:44 +02:00
Alug 94bd1cb37b more reference fixes 2024-07-21 22:24:41 +02:00
Alug f7bf3fe510 cleanup hw_main 2024-07-21 22:24:28 +02:00
Alug a771ebf0e8 cleanup r_things a little 2024-07-21 22:24:21 +02:00
Alug 6b4d02ae99 stop yelling clang 2024-07-21 22:24:15 +02:00
Alug 3e6cab1ec9 fix this oops 2024-07-21 22:24:11 +02:00
Alug 147c59c26b smol cleanup
also check for splitscreen and if not dont run a for loop lul
2024-07-21 22:24:09 +02:00
Alug db6f76d12d more reference fixes 2024-07-21 22:24:01 +02:00
Alug 86950c26d0 add check here too 2024-07-21 11:49:48 +02:00
Alug e1d4f10223 add "gamestatecooldown" cvar
to be able to change the cooldown between gamestate resends
2024-07-21 11:49:21 +02:00
Alug 01c1ae42a1 fix saturn packet going the wrong way 2024-07-20 18:30:10 +02:00
Alug 550871f576 smol cleanup 2024-07-20 18:21:19 +02:00
Alug 56fcca1f6b mark if node can receive savegame so it doesent run resynch code on em
should prevent some issues for when a client received gamestate but thinks it needs to be resynched getting stuck
2024-07-20 18:15:42 +02:00
Alug 930bde785c just reset everything resynchwise here 2024-07-20 16:24:36 +02:00
Alug 13aadc41ff should reset those here perhaps 2024-07-20 16:22:51 +02:00
Alug ea4998f666 add gamestate resend ontop of resynch code lmao
absolute hell
will fallback to just normal resynching when the client doesent send gamestate request packet
2024-07-20 16:17:19 +02:00
Alug 6f0e92e0d1 Merge branch 'Saturn-Next' into absolutehell 2024-07-20 15:02:41 +02:00
Alug a4085cb155 fix hoop midjoin crash in the dumbest way possible
cant figure out why it crashes so thisll do lol
2024-07-19 22:57:18 +02:00
Alug b7e77e10b6 improve virtual resource management 2024-07-19 22:57:16 +02:00
Alug 8f195530b5 fix declaration 2024-07-19 21:29:10 +02:00
Alug 048ccf52b0 Clean up mobj and thinker removal 2024-07-19 21:26:42 +02:00
Alug df9ad5a31f dont access delayremoved thinkers
uhhh
2024-07-19 21:26:02 +02:00
Alug 0b3284e23c fix ScreenCoords on 2 plyr splitscreen and shearing
+ remove non 16:10 hack since that issue was fixed elsewhere
2024-07-19 19:25:20 +02:00
Alug 36d598440a disable hudoffsets in splitscreen 2024-07-19 19:25:18 +02:00
indev 9cc42e6430 Add option to play power items sfx for growmusic and supermusic 2024-07-19 19:03:47 +03:00
Alug 3f5c19bffd add boolean to tell if node is saturn 2024-07-19 15:01:30 +02:00
Alug 800dbf5e78 add packet into packettypename 2024-07-19 15:00:45 +02:00
Alug 2b5db9ff3f make saturn packet reliable 2024-07-19 14:46:24 +02:00
Alug b07c8848ca make smol function for now 2024-07-19 14:43:19 +02:00
Alug 9bff8dd91f whoopss remove test stuff 2024-07-19 14:40:25 +02:00
Alug 19eee66c39 make a packet to tell if a joined client is on saturn
initial stuff
works and seems to be vanilla compatible
needs its own function and other things to be useful
2024-07-19 14:40:23 +02:00
Alug fbf7be8808 add audio buffer size into sound menu 2024-07-18 14:43:14 +02:00
Alug fcda4c1188 revert this in teleport 2024-07-17 22:19:11 +02:00
Alug deae234afa Revert "clean up mapload code a little more"
This reverts commit 79a5d174a5.
2024-07-17 12:21:05 +02:00
indev 82e33fd4e4 Attempt to fix possible use-after-free for awayviewmobj 2024-07-17 12:30:34 +03:00
Alug 15914c2f25 Skip over empty entries when populating vres, saving memory 2024-07-17 11:13:07 +02:00
Alug da64d3ccbf vres_GetMap: Count resources in folders up until next 0-length lump
justs in case the order of stuff may be weird
fixes keepmapmusic crash on some maps
2024-07-17 11:12:58 +02:00
Alug 79a5d174a5 clean up mapload code a little more 2024-07-17 09:21:15 +02:00
indev 295d9768ce Fix linedef 415 executing random text if script lump doesn't have null terminator 2024-07-16 16:42:32 +03:00
Alug 9490b1235d did not mean to add this lol 2024-07-16 10:43:55 +02:00
Alug 55eb984ccd remove this check 2024-07-15 21:58:00 +02:00
Alug 4b1a82e14e fix more warnings 2024-07-15 21:43:25 +02:00
Alug 3c224923e9 fix some warnings in clang 2024-07-15 21:19:25 +02:00
Alug 2c4f5a68b9 fix A_ action protottypes 2024-07-15 21:10:11 +02:00
Alug d324c917ad Revert "fix some clang warnings"
This reverts commit fea89de037.
2024-07-15 20:57:09 +02:00
Alug bd8ff77fe0 more mobj reference fixes + cleanup 2024-07-15 13:56:28 +02:00
Alug 35d40e1d37 ndef 2024-07-14 17:30:52 +02:00
Alug e9e281fd2a clean up some net stuff 2024-07-14 17:22:25 +02:00
Alug 2437c5a19a Free mipmaps before freeing tags
ŝhould hopefully fix some random Z_free crashes
2024-07-14 17:17:01 +02:00
Alug b9b4de929d this does nothing lol 2024-07-14 17:15:43 +02:00
indev 28fc55b653 Refactor music name scrolling in music test 2024-07-14 15:33:31 +03:00
Alug 8f4df0ceca version string otherwise i forger 2024-07-14 10:18:27 +02:00
Alug ecde8a5e8b shut up 32bit gcc 2024-07-14 10:17:47 +02:00
Alug 715b106c9e shut up windoze 2024-07-14 09:51:13 +02:00
Alug 2114afa536 inline M_Memcpy 2024-07-13 16:04:43 +02:00
Alug c78816a8d1 also use IFCHANGED macro for levelinterpolators
just looks a bit neater
2024-07-13 16:04:41 +02:00
Alug 28516c4833 fix NOHW compile 2024-07-13 14:55:10 +02:00
Alug 837ed3535d Revert "smol optimization to HWR_Addline"
This reverts commit e6359663b1.
2024-07-13 13:06:45 +02:00
Alug bcb332e88f Revert "shut up gcc"
This reverts commit 17a5c6ed06.
2024-07-13 13:06:42 +02:00
Alug f4be7a8034 Revert "dont do this with portals"
This reverts commit f949fa54af.
2024-07-13 13:06:39 +02:00
Alug e69413f1e8 smol cleanup 2024-07-10 19:31:35 +02:00
Alug ee6dcfc678 fix conflict 2024-07-10 19:31:22 +02:00
Alug d4370a1811 clean up P_SetupLevel a little more 2024-07-10 19:31:17 +02:00
Alug babf4ca06a Map data lump interface
cleans up code alot and stuff

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/535
2024-07-10 19:30:38 +02:00
Alug ccf0905469 change when dynamic slopes run depending on if you joined midgame 2024-07-10 19:29:48 +02:00
Alug 970130e02b mitigate dynamic slope desynchs
Perform dynamic slope thinking before other thinkers.
2024-07-10 19:28:44 +02:00
Alug 6088fa5134 Clean up graphic menus
- Renamed Experimental Options to Advanced Options
- Fixed the tooltips not displaying
- Made it look good again
2024-07-10 19:25:49 +02:00
indev 33bc484d69 Call ServerJoin hook when consoleplayer becomes available, since it is needed for configs (which what this hook is created for) 2024-07-10 19:09:14 +02:00
indev 6bf113d0ff Add info about ServerJoin into LUASTUFF.md (so i don't forget to do it later) 2024-07-10 19:09:11 +02:00
indev 630d910a9e Add ServerJoin lua hook, which gets called when client joins a server (listen server hosts joining their server also count) 2024-07-10 19:09:08 +02:00
Alug 3c70963f56 only interpolate pitch and roll when using 3d models
sprites dont need this for now
2024-07-10 18:58:55 +02:00
Alug 4c4f6f6d80 dont think precip mobj angle ever changes 2024-07-10 18:58:52 +02:00
Alug f949fa54af dont do this with portals 2024-07-10 18:58:05 +02:00
Alug 17a5c6ed06 shut up gcc 2024-07-10 18:58:02 +02:00
Alug e6359663b1 smol optimization to HWR_Addline 2024-07-10 18:57:59 +02:00
Alug 405cef6a01 fix IFCHANGED macro 2024-07-10 18:32:22 +02:00
Alug d4886f8923 forgor this 2024-07-10 10:18:50 +02:00
Alug c5ec61baa5 Fix mobj reference management of player->mo
https://git.do.srb2.org/KartKrew/RingRacers/-/commit/d0719ef5ba86a1da32fed171d74eb76c7254f4f6
2024-07-10 10:18:46 +02:00
Alug 7a9ffa7ee8 test remove all the networking crap from rendering code 2024-07-10 10:13:53 +02:00
Alug 5ff665a073 remove those 2 from experimental video menu
no reason to ever toggle them off
2024-07-10 10:08:19 +02:00
Alug 3d4e078a90 another m_menu moment 2024-07-10 10:07:51 +02:00
Alug 8ef613ef9b remove cv_mobjssector
idk why it even checks for pointinsubsector
2024-07-10 10:06:31 +02:00
Alug 988a672dea remove cv_grfofcut
same story
2024-07-10 09:59:50 +02:00
Alug cca9c51315 remove cv_slopepegfix
same as the other ones
2024-07-10 09:57:23 +02:00
Alug 18aa3689d9 m_menu moment 2024-07-10 09:54:43 +02:00
Alug 59ab6572b1 remove cv_fofzfightfix
more bloat
2024-07-10 09:54:03 +02:00
Alug b6cf933159 remove R_Pointtoangle toggle
its bloat, the difference is negigble at best
2024-07-10 09:50:25 +02:00
Alug 48f36ca8f3 35/2 != 17 = 17.5 ? 2024-07-10 04:55:01 +02:00
Alug fea89de037 fix some clang warnings 2024-07-10 04:53:28 +02:00
Alug e2f1dd1ce8 a 2024-07-10 04:51:59 +02:00
Alug 48ac3353cb Maybe hopefully fix ogl masterserver crash thing
port from durr
2024-07-10 04:51:52 +02:00
Alug 63015c3a93 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-07-10 04:50:06 +02:00
Alug c7bd402e54 Merge remote-tracking branch 'origin/packetstat' into Saturn-Next 2024-07-10 04:49:58 +02:00
Alug 0c6f9b6cc1 basic frame skipping system 2024-07-10 04:49:32 +02:00
Alug b5d7b84c1e more changes to dither
use interger for distance scales
start z factor earlier
rename halfResolution to endResolution
2024-07-09 09:06:19 +02:00
Alug cbbde8dea5 more tweaks 2024-07-08 21:43:06 +02:00
Alug 58dd0b7591 oops that actually didnt fade out at all lol 2024-07-08 21:43:03 +02:00
Alug d9f2535402 scale and fade out dither pattern
makes the image a bit cleaner and easier to look at in palrender
2024-07-08 21:43:00 +02:00
Alug 66eb201466 simplify this a little 2024-07-08 21:42:53 +02:00
Alug edbf20d975 oops this should be min 2024-07-08 21:42:49 +02:00
Alug 711d7dcfcc Always use system-specific path seperator
https://git.srb2.org/KartKrew/RingRacers/-/commit/0f16c61d04f42b463db5c8987571fc986ae6ce9f
2024-07-08 21:42:38 +02:00
Alug 219979e20b dont think kart even supports trivial maps
so no need to constantly check for this
2024-07-08 21:42:36 +02:00
Alug 27917a0e85 shut up gcc 2024-07-03 17:37:29 +02:00
Alug 4b4b2d5cbc some crap from asan 2024-07-03 17:37:16 +02:00
Alug 8d968d7f89 fix some clang warnings 2024-07-03 17:36:37 +02:00
Alug 9090a5cd73 Merge pull request #131 from Indev450/optimizeluaactions
Only call the Lua API for overridden actions
2024-07-03 11:10:15 +00:00
Alug 59a50994b8 Merge branch 'Saturn-Next' into optimizeluaactions 2024-07-03 13:10:03 +02:00
Alug ac99a6ac3c Merge pull request #132 from Indev450/lua-hooks-table
Store hooks in a table with integer keys instead of registry with string keys
2024-07-03 11:08:58 +00:00
Alug fa2257ad3b Merge pull request #133 from Indev450/luafieldlookup
Optimize field lookups in Lua metatables
2024-07-03 11:08:44 +00:00
NepDisk 66ce0871bc Fix automap multiplayer crash
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2488
2024-07-03 13:07:29 +02:00
Alug c59564723c Clamp lindex during vissprite light calculation
Mitigates against negative or very large xscale values causing lindex
to evaluate < 0, preventing a potential colormap indexing-related crash.
2024-07-03 13:07:17 +02:00
Alug 606717d253 prevent potential crash when trying to kill bananachain 2024-07-03 13:07:13 +02:00
Alug f73e84e0ad stuff 2024-07-03 13:07:04 +02:00
Alug fc01453544 scale dithering a little diff for a little smoother "fade" in pal render 2024-07-03 13:07:00 +02:00
Alug d37a1c799f change dither matrix to 4x4
a little grittier also smol cleanup
2024-07-03 13:06:57 +02:00
indev 3456ef96a7 Use a fake 2d array in dither shader so it compiles with older glsl versions (1.20 at least) 2024-07-03 13:06:53 +02:00
indev 40143375fc If shader compilation failed, print info log 2024-07-03 13:06:50 +02:00
Alug 7f34a1d83e add gr_lightdithering to shader
mhhm dithering
2024-07-03 13:06:47 +02:00
Alug 2316c117b1 improve teleport interpolation stuff 2024-07-03 13:06:44 +02:00
Alug 31b7482c3a small optimization to batching 2024-07-03 13:06:40 +02:00
Alug 0974625769 no need for this 2024-07-03 13:06:36 +02:00
Alug 266f5149b5 smoller opitmizations 2024-07-03 13:06:25 +02:00
Alug 008a9b9b3f optimize ogl polyobjs slightly 2024-07-03 13:06:22 +02:00
Alug ec2fd5b38f prevent crash in hw bsp 2024-07-03 13:06:19 +02:00
Alug d449a1b714 remove this again 2024-07-03 13:06:16 +02:00
NepDisk 0bd5ca5e3f Allow Users to Connect to Servers While In-Game
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2401/
2024-07-03 13:06:12 +02:00
NepDisk 06248e5388 Linux customshader compilation fix
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2418/
2024-07-03 13:06:09 +02:00
Alug 9c5a0ed7ee move HWR_LoadLevel to hw_main 2024-07-03 13:06:04 +02:00
Alug b199354167 this should be called on mapload 2024-07-03 13:06:02 +02:00
Alug 74ce725e3d oops 2 2024-07-03 13:05:59 +02:00
Alug 3d5e033158 oops 2024-07-03 13:05:56 +02:00
Alug ca58c1dee2 these appear to be unused so comment them out
dont need 6 arrays being allocated with MAXSKINS for nothing lul
2024-07-03 13:05:53 +02:00
Alug d51a69b052 Merge remote-tracking branch 'origin/lua-enumlib-sfxslotsfix' into Saturn-Next 2024-07-03 13:05:48 +02:00
Alug 1a96d96837 forgor this 2024-07-03 13:05:45 +02:00
Alug 2e7cd51ff8 limit localskins to 32
hope this doesent just die lol
2024-07-03 13:05:42 +02:00
Alug 112716dae5 Do not access memory on misaligned addresses
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2438
2024-07-03 13:05:39 +02:00
indev c13e780f29 Try fix glib preallocating too much space for sound freeslots 2024-06-20 16:55:58 +03:00
Alug c35887f5ee Revert "fix some interpolation issues"
This reverts commit e19f6f6656.
2024-06-17 12:52:09 +02:00
Alug 2f55c10ce3 Revert "more interp fixes"
This reverts commit 3a1a58bcfc.
2024-06-17 12:52:00 +02:00
Alug 0068312ce3 Revert "revert this part"
This reverts commit efe7dd23b6.
2024-06-17 12:51:57 +02:00
Alug ea49d92932 add missing HAVE_THREADS 2024-06-13 14:47:28 +02:00
Alug efe7dd23b6 revert this part
idk if that was netsafe so
2024-06-12 22:36:03 +02:00
Alug 3a1a58bcfc more interp fixes 2024-06-12 22:35:21 +02:00
Alug 953862f133 change this to int64 cause it fixes the intermission thing on high res
idk why that fixes it tbh but it does
2024-06-12 22:34:02 +02:00
Alug 41eb2ee969 fix oopsie on titled software wöter 2024-06-12 22:33:51 +02:00
Alug 225ecce676 lower min audio buffersize to 256 2024-06-12 22:33:44 +02:00
Alug 335b10a694 forgor 2024-06-12 22:33:36 +02:00
Alug 967220178c remove windows timing crap again
it actually made stuff a little wonky so revert that
2024-06-12 22:32:54 +02:00
Alug be7461ad51 use sdl ogl render instead of software for software mode on nix
oops
2024-06-12 22:31:53 +02:00
indev 5af7cf850a Fix string format warning for packetstat 2024-06-12 21:26:41 +03:00
indev 86395d4d8b Add a way to count number of handled packets (for debugging) 2024-06-12 21:05:21 +03:00
Alug 3412bb5380 fix encore flipcam with ogl shearing 2024-06-09 22:02:52 +02:00
Alug d66e7e660d reset those here ig
need a better place tbh
but those occasionally could get stuck for some reason
so just reset them when the menu gets opened
2024-06-09 18:56:18 +02:00
Alug 07d631e320 e 2024-06-09 18:55:52 +02:00
Alug 6ffb50530d add mobj check here 2024-06-09 18:55:49 +02:00
Alug bd7103d109 add check earlier in p_killmobj 2024-06-09 18:55:46 +02:00
Alug 4abc2ab5bd fix redifinition warning 2024-06-06 18:58:03 +02:00
Alug f8a8b8ac6e disable upx on nix by default 2024-06-06 18:58:00 +02:00
Alug cfe6e08168 fix masterserver ifdef 2024-06-06 18:57:57 +02:00
Alug 5139259037 fix HAVE_CURL 2024-06-06 18:57:55 +02:00
Alug 1503daf02b more minor loop stuff 2024-06-06 18:57:52 +02:00
Alug 4246e42948 minor sprite opitmizations 2024-06-06 18:57:31 +02:00
Alug 9b3eaa6fe8 smol optimization to skin loading 2024-06-06 18:57:25 +02:00
Alug 716685d809 zzz... 2024-06-03 17:15:43 +02:00
Alug dd72871ba6 Revert "use shader to prevent sprite floor clipping"
This reverts commit ee2ec01eb9.
2024-06-03 17:15:39 +02:00
Alug ea510f95b8 Revert "fix le dispoffset"
This reverts commit f977af6a80.
2024-06-03 17:15:36 +02:00
Alug 9de3db7c97 add shader for shadows to also fix sprite shadows in pal render 2024-06-03 16:52:25 +02:00
Alug 1ab7a2acf4 add toggle for beta intermission screen + smol cleanup 2024-06-03 15:13:46 +02:00
Alug f977af6a80 fix le dispoffset 2024-06-03 15:13:39 +02:00
indev cae40928ad Use Z_Calloc to allocate wadfile_t to avoid having uninitialized fields 2024-06-03 00:18:11 +03:00
Alug ee2ec01eb9 use shader to prevent sprite floor clipping
from durr lul
2024-06-02 22:16:09 +02:00
Alug bf75644144 make r_fps if else hell a bit more bearable to look at
lol lmao
2024-06-02 22:12:39 +02:00
indev 0e927ce4bd Make sfxinfo_t and state_t use field tables too 2024-06-02 00:43:42 +03:00
indev 1747ebf481 Lua_optoption shouldn't change stack state at the end of call now 2024-06-02 00:43:09 +03:00
indev da9d57a624 Fix compilation for some gcc versions 2024-06-02 00:39:22 +03:00
Alug 38633a8516 stuffs 2024-06-01 17:03:39 +02:00
Alug 957159d485 forgor to remove that 2024-06-01 16:31:55 +02:00
Alug 8052eb1c3a fix papersprites in software (hopefully)
lul
2024-06-01 16:30:03 +02:00
Alug 37a394ebaa flexible array stuff for columnofs
hopefully this fixes some crashes or smth
2024-06-01 16:29:55 +02:00
Alug b01a2836ea cleanup some super old stuff that did nothing
lul
2024-06-01 16:29:40 +02:00
Alug dc03359f3a theres no value 3 oops
i shouldnt do stuff after waking up at 4 in the morning lol
2024-05-30 19:59:14 +02:00
indev 6269c7c827 Use tmp variable for searchWad since envstr doesn't get changed 2024-05-30 19:32:18 +03:00
indev 040ddb1f40 Revert "Revert "Don't traverse the entire HOME directory to find wads""
This reverts commit 443905ffb3.
2024-05-30 19:23:14 +03:00
Alug faa5dbd0e7 split sprite draw loops
so crap doesent constantly check for papersprites on all sprites
2024-05-28 23:53:28 +02:00
Alug 37d3e2ae1a scale sprite draw distance with mapobjscale 2024-05-28 23:52:13 +02:00
Alug 455bbe47c2 smth smth encore magic numbers idk 2024-05-28 22:55:43 +02:00
Alug 4847e4e3cb that should be there lul 2024-05-28 22:55:40 +02:00
Alug 086d0113c5 Optimize field lookups in Lua metatables
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2024#cd5b5ee262bf5129c4d400ad60d006e1fa917c1f
2024-05-28 18:16:43 +02:00
Alug 67aa71170f when not using screentextures draw kart bg on intermission screen 2024-05-28 00:52:52 +02:00
Alug ddddc7a898 draw a black screen instead of "nothing" during wipes on disabled screentextures
should resolve the intense flashing that can occur
2024-05-28 00:52:48 +02:00
indev 7c17f3a93c Merge pull request #130 from GenericHeroGuy/lua-hudinterpolate-redux
Lua HUD interpolation
2024-05-25 19:09:02 +03:00
GenericHeroGuy 05a5651260 Finishing touches
Some cleanup, also interpolate drawfill size
(dunno why it wasn't before)
2024-05-25 17:05:08 +02:00
Alug 8cf6050d10 Only call the Lua API for overridden actions 2024-05-25 16:01:34 +02:00
indev b310168c12 Store hooks in a table with integer keys instead of registry with string keys 2024-05-25 16:39:16 +03:00
Alug 8774b14fdf move some cvars to be registerrerd latur in ogl 2024-05-25 14:52:58 +02:00
Alug 518ac3ca28 Turn of FBO downsampling when you turn off screen textures
fbo downsampling needs those and if theyre disabled youre essentially seeing nothing at all lol
2024-05-25 14:44:03 +02:00
Alug 157c95a785 super smol optimization to R_DrawRepeatMaskedColumn
only maths once not twice lul
2024-05-25 14:44:00 +02:00
GenericHeroGuy 142c01f516 Update docs for interpLatch 2024-05-25 14:09:20 +02:00
GenericHeroGuy a17a5387ff Rename interpString to interpLatch 2024-05-25 14:08:52 +02:00
Alug d794de3e83 Cull BSP behind a raised floor or lowered ceiling that covers the entire screen
https://git.do.srb2.org/KartKrew/RingRacers/-/commit/7b8a564f69688515319ccd425f2b88ffe8b7b120
2024-05-25 02:21:04 +02:00
Alug 837746c0a9 declare outside of lööp also add const in r_ 2024-05-25 02:14:20 +02:00
Alug 9f692c1f6a change names to be less basic 2024-05-23 23:28:54 +02:00
Alug 8de340edbe allow gamepad dpad to hold scroll shit in menu aaa
absolute arsepain cant wait to see this breaking kek
2024-05-23 23:28:47 +02:00
GenericHeroGuy 9cd1233c32 Dust this crap off a bit 2024-05-23 16:47:29 +02:00
GenericHeroGuy 3f6575e41f Merge branch 'Saturn-Next' into lua-hudinterpolate-redux 2024-05-23 15:44:46 +02:00
Alug f939b02fd3 Merge branch 'Saturn' into Saturn-Next 2024-05-21 21:01:11 +02:00
Alug 73d0154b6c encore flipcam support 2024-05-21 21:00:33 +02:00
Alug cda7475058 unhack the animated votescreen a little
also make it pause when the game is paused like it was intended originally
2024-05-20 18:42:03 +02:00
Alug 33a31d0ad8 this should be here aswell i suppose 2024-05-20 13:31:13 +02:00
Alug 8dafc2d3d9 Merge pull request #129 from Indev450/Saturn-Next
Saturn v6.2
2024-05-20 13:21:16 +02:00
Alug 5f36557a18 change version string stuff per define lul 2024-05-19 21:31:05 +02:00
Alug 9b4e64011b make this a scroll menu
tbh not gonna bother with moving stuff depending on renderer
2024-05-19 18:43:12 +02:00
Alug 3ca313c14d Merge pull request #125 from Indev450/fborender
Use FBO to allow downsampling in Opengl
2024-05-19 18:20:01 +02:00
Alug 6fcea2f98e RefreshOGLSDLSurface
to make it a little more clearer this is ogl only
2024-05-18 23:52:05 +02:00
Alug c605906408 some stuffs 2024-05-18 23:49:36 +02:00
Alug de6511abe0 dont compile with that with NOHW 2024-05-18 23:40:28 +02:00
Alug c966b5defb forgor 2024-05-18 23:38:04 +02:00
Alug 3c8c273e51 add ogl version check + grey out in menu + turn it off when not avilible 2024-05-18 23:34:27 +02:00
Alug eaeb2575f7 add stuff to experimental menu 2024-05-18 23:22:30 +02:00
Alug 978cc57889 Add NOSCREENFBO compiler flag to be able to build without fbo support 2024-05-18 22:57:25 +02:00
Alug 6db73bfd63 Merge branch 'Saturn-Next' into fborender 2024-05-18 22:33:41 +02:00
Alug af5c3e4201 revert this thing 2024-05-15 17:56:58 +02:00
Alug 39e6668e20 change version 2024-05-15 17:51:11 +02:00
Alug 1ab63613a9 forgor this crap 2024-05-15 16:54:27 +02:00
Alug 57e72db1f8 support gcc14 ig 2024-05-15 16:46:59 +02:00
Alug d1d00d7ec6 shut up compiler 2024-05-05 22:00:22 +02:00
Alug 169e7cd462 Render precip through blockmap instead of during BSP
from RR
2024-05-05 21:54:00 +02:00
Alug e19f6f6656 fix some interpolation issues
minus P_spec change since that aint netsafe
2024-05-05 20:52:06 +02:00
Alug 13249f7ad4 fix potential crash in ogl vissprite sorting 2024-05-05 20:50:36 +02:00
Alug 22166ceccb fix precip overflow 2024-05-05 20:50:32 +02:00
Alug 75ed11a8b6 simplify SOFTLIGHT alot
also should make sure it gets applied everywhere lul
2024-04-29 10:12:58 +02:00
Alug 641cd6b8db use bigfloat for driftgauge offset too 2024-04-27 20:32:52 +02:00
Alug 62fa60e399 fix rare precip crash 2024-04-27 20:03:38 +02:00
Alug 17a6c4191d Merge pull request #128 from Indev450/it-cv-bigfloat
Add IT_CV_BIGFLOAT to use bigger increment for some CV_FLOAT cvars (a…
2024-04-27 20:01:57 +02:00
Alug 3acdcb09f1 inline those 2024-04-24 11:02:25 +02:00
GenericHeroGuy 1abf6a4ce1 Add interpolation docs to LUASTUFF 2024-04-23 21:24:47 +02:00
Alug 836890968c Revert "Merge pull request #121 from Indev450/texload"
This reverts commit b6a5c5b720, reversing
changes made to bcf2b3bab2.
2024-04-23 09:06:51 +02:00
Alug 7110de4b5b Merge branch 'Saturn' into Saturn-Next 2024-04-22 05:25:52 +02:00
Alug b4dfebac58 fix some visual issues with fofs 2024-04-22 05:25:46 +02:00
Alug 38d5ee5ae7 a 2024-04-20 22:54:03 +02:00
Alug d0c50006bc some stuff from ceepeepeecheck 2024-04-20 22:54:00 +02:00
Alug 443905ffb3 Revert "Don't traverse the entire HOME directory to find wads"
This reverts commit 1f019ed277.
2024-04-20 11:42:21 +02:00
indev 2147951a16 Add IT_CV_BIGFLOAT to use bigger increment for some CV_FLOAT cvars (added only to fov atm) 2024-04-20 11:41:17 +03:00
indev ea0cc41d04 For MIN/MAX value of cvar, convert it to float before saving for CV_FLOAT variables 2024-04-20 10:30:34 +03:00
Alug b6a5c5b720 Merge pull request #121 from Indev450/texload
Do not reload every texture when adding a wad
2024-04-20 01:33:50 +02:00
Alug bcf2b3bab2 disable palette rendering if screentextures aint enabled 2024-04-19 06:23:12 +02:00
Alug a238b19c75 z 2024-04-19 06:22:48 +02:00
Alug 9317ccd0be more things
-Fix a division by zero in BCZ2 Metal Sonic's routine
-Fix a bug where adding the same mod multiple times counted towards the mod limit
and other thigns
2024-04-19 06:22:44 +02:00
Alug 463dccab8b some smol fixes 2024-04-19 06:22:22 +02:00
Alug 2ccf91fbfc Make FixedRem less laggy by just using the modulo operator. 2024-04-19 06:22:20 +02:00
indev 36e06e5d6b Fix possible buffer overflow in 'va' function 2024-04-13 21:55:22 +03:00
Alug 6f293945fd add qs22j to cmakelist 2024-04-13 18:40:14 +02:00
Alug 45d73a2ad6 add qs22j to cmakelist 2024-04-13 18:40:00 +02:00
GenericHeroGuy 995777c676 Exclude string mode flags from olditem search 2024-04-12 22:36:23 +02:00
Alug dacfe376e1 smth smth paranthesis 2024-04-12 21:55:53 +02:00
GenericHeroGuy 60e42472e3 Do string coordinate calcs on all functions (and fix) 2024-04-12 21:00:54 +02:00
Alug c92ef4d757 fix software crash
Zzz...
2024-04-12 20:41:25 +02:00
indev 7cd6a031cd Fix compilation warning regarding calloc and sizeof 2024-04-11 19:12:14 +03:00
indev af265d017d Fix potential negative array index in V_ThinStringWidth 2024-04-11 18:55:55 +03:00
Alug 9e104a8632 ok dont use this at all then 2024-04-10 18:18:47 +02:00
Alug 4a1523da57 Zzz... 2024-04-10 18:15:29 +02:00
Alug 6a3987c8f7 fix ifdefs 2024-04-10 17:57:55 +02:00
Alug 1df6c4d4da move this to first init too 2024-04-10 17:47:37 +02:00
Alug 3cab29085a Merge branch 'Saturn-Next' into fborender 2024-04-10 17:46:40 +02:00
Alug 1391e556d6 that wasnt the onchange im sleepy 2024-04-10 17:40:43 +02:00
Alug 94340e6634 forgor to remove those Zzz... 2024-04-10 17:32:13 +02:00
Alug 64f10c36fa should throw that into onchange oops 2024-04-10 17:29:16 +02:00
Alug 955f73d9e8 throw stuff into own function, also check on game start 2024-04-10 17:24:46 +02:00
Alug 40c356395a simplify this crap 2024-04-10 07:02:18 +02:00
indev bce914df6e Don't call menu drawer in wipes on dedicated servers 2024-04-06 01:47:27 +03:00
indev aac74cf93a Don't call menu drawer in wipes on dedicated servers 2024-04-06 01:31:43 +03:00
indev e0d0120337 Merge branch 'Saturn-Next' into Saturn 2024-04-05 20:56:49 +03:00
Alug 87cf75ef84 this can be completely removed actually 2024-04-05 16:31:17 +02:00
Alug 5f237d9e13 (maybe?) fix a checkheap crash 2024-04-05 16:24:27 +02:00
Alug 23050394ac retain old behaviour for raising gamma
or if you dont use any colour correction stuff
basically checks if anything has changed and if the gamma is below 0
otherwise it will apply colour cubus
2024-04-05 01:10:49 +02:00
Alug dbc47e8656 Revert "disable colourcube cause of visual discrepentcies (temporary)"
This reverts commit ed418d5dcf.
2024-04-05 00:27:14 +02:00
GenericHeroGuy 18e0485f39 Make this less insufferable
* Zero is now a valid tag for v.interpolate
* Reset lerp coordinates when v.interpString is called again
* Leaving string mode enabled on exit no longer breaks other scripts
* Fix fadeScreen having an uninitialized ID
2024-04-04 23:39:23 +02:00
Alug d675795014 version change again or else i forger 2024-04-04 20:52:13 +02:00
Alug ed418d5dcf disable colourcube cause of visual discrepentcies (temporary) 2024-04-04 18:59:45 +02:00
Alug d6fb76b833 fix tint equation
idk what happen there but it looked pretty diff on a few maps
2024-04-04 17:38:15 +02:00
Alug ced45061f8 clean this up a bit 2024-04-04 03:53:11 +02:00
Alug 52c6a52a2f fix some smol leaks 2024-04-04 03:53:00 +02:00
GenericHeroGuy aeb5ae994e Subpixel interpolation for strings and drawfill 2024-04-04 00:27:47 +02:00
Alug b2c34906ff try and fix some compile issues 2024-04-03 19:24:51 +02:00
Alug c8f6878c26 try and fix some compile issues 2024-04-03 19:24:44 +02:00
Alug 6d8c375cf5 Fix 3D model crash 2024-04-03 00:28:56 +02:00
Alug c093aa3c73 k then 2024-04-02 22:17:40 +02:00
Alug fc27ed0443 Add option for wipes only in screentex toggle
since the toggle was changed to actually disable ALL screentex functions
2024-04-02 22:14:10 +02:00
GenericHeroGuy b2f9a29eb0 Lua HUD interpolation 2024-04-02 21:00:23 +02:00
Alug bd2fe5b9be use SDL_PeepEvents again
grrrrrrr
2024-04-02 19:19:56 +02:00
Alug 07e50c40a3 forgor those lul 2024-04-02 19:10:51 +02:00
Alug 94248eaea2 use functions for keyshift crap
lmao why tf wasnt this done anyways but copy and pasted 500 times
2024-04-02 16:38:07 +02:00
Alug ebc467f212 more fixup for native layout 2024-04-02 16:14:22 +02:00
Alug 29acff6722 make this less fragile 2024-04-02 15:19:25 +02:00
Alug be71dd66ac Merge branch 'Saturn' into Saturn-Next 2024-04-02 03:48:17 +02:00
Alug 8a1ad4a2de limit to ASCII
also forgor to add stuff to h
2024-04-02 03:48:03 +02:00
Alug 3370d1631e FIXUP native keyboard layout
cleanup GetTypedChar
fix issues with capslock and shift
2024-04-02 03:36:22 +02:00
GenericHeroGuy 5f69bfcf22 Split game drawlist per displayplayer 2024-04-02 03:22:24 +02:00
Alug 21cb42309e Downgrade SDL2 to v2.28.5
v2.3.0 broke some things in 32bit builds Zzz...
2024-04-02 00:22:33 +02:00
GenericHeroGuy 9442a463d4 Shrink drawlists, take 2
Approximately 2/3rds smaller
2024-04-01 23:24:09 +02:00
Alug 8b72cc6b01 Merge branch 'Saturn-Next' into Saturn 2024-04-01 18:28:32 +02:00
Alug 8ed8182a1b Zzz... 2024-04-01 17:18:38 +02:00
Alug e2f4e1f08e update menu text for keyboard layout 2024-04-01 16:38:38 +02:00
Alug 6e59fdacb5 add AZERTY layout as toggable option
so no need to update that thing seperately anymore
2024-04-01 16:34:01 +02:00
Alug 33501b6798 Merge pull request #123 from Indev450/linkedtex
Manage Gpu Textures with a list
2024-04-01 14:31:15 +02:00
Alug ffb72f5fe3 Fix vertical aim being off when using lack of perspective 2024-03-31 23:27:30 +02:00
indev d3f6b983f4 Use 'find' directly in help 2024-03-30 22:18:51 +03:00
indev 9435fa8d6b If command is not found via 'help', tell user about 'find' command 2024-03-30 22:03:10 +03:00
Alug 0ceb9e5ea5 fix this for splitscreen and move to own function 2024-03-30 03:34:58 +01:00
Alug 95c0951727 Merge pull request #122 from Indev450/luadebuglib
Expose debug library to Lua
2024-03-28 15:08:31 +01:00
Alug de6a54bc8c why tf is that here 2024-03-28 14:25:07 +01:00
Alug 1e524a8240 when the GLENCORE 2024-03-28 13:22:06 +01:00
Alug ca1302475e use this instead 2024-03-28 08:13:23 +01:00
Alug 8486bddaf2 fix highresscale issue on startup in the worst way ever cause CV_NOINIT doesent work for whatever reason 2024-03-28 00:15:55 +01:00
Alug d7a1cc6702 Read only header bytes when creating textures list 2024-03-27 21:31:56 +01:00
Alug 847a8cfd81 Zzz... 2024-03-27 20:38:29 +01:00
Alug 2fc6a26e77 GL_GENERATE_MIPMAP is enough
also made MajorGL and MinorGL extern, so can be used in other parts if needed to check for it
2024-03-27 20:36:07 +01:00
Alug a779191feb beter 2024-03-27 18:45:59 +01:00
Alug 23cc0dfc3a add some comments cause i WILL forger what this crap even does 2024-03-27 18:44:32 +01:00
Alug c7a258f32f clean up 2024-03-27 18:34:58 +01:00
Alug a28f025d40 Stuff from displaycrap branch to detect downsampling automatically 2024-03-27 18:33:29 +01:00
Alug 91a3b288ef conflict moment 2024-03-27 18:08:09 +01:00
Alug 200d971d35 Toggle to render to screenFBO
fixes downsampling from higher resolutions
TODO: make this activate automatically if game detects it runs at higher res than desktop res
2024-03-27 18:05:48 +01:00
Alug 4847d2d844 Handle OpenGL textures with a linked list 2024-03-27 17:51:58 +01:00
Alug b487df7771 update sdl xpm stuff 2024-03-27 03:51:59 +01:00
Alug 8ef9668ac5 fix smol conflict 2024-03-27 03:46:52 +01:00
Alug d7ec2da975 some sdl_mixer stuff
- Fix crash with GME sounds when being freed
- fix some looping for gme i forgor somehow
- smol cleanup
2024-03-27 03:45:31 +01:00
Alug b26cdfcc1d update libpng libs for windows to 1.6.37 2024-03-27 02:56:38 +01:00
Alug 56f3249679 Expose debug library to Lua
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2404
2024-03-26 21:03:18 +01:00
indev 54ee3f2961 R_LoadTexturesPwad: don't do anything wad has no textures 2024-03-26 20:40:11 +03:00
Alug c3a71b60b0 Do not reload every texture when adding a wad
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1725?commit_id=37add34b9c729b21e624e22d64159073c9258e25
2024-03-26 14:12:05 +01:00
Alug 205bfc0262 Split R_LoadTextures 2024-03-26 14:11:49 +01:00
Alug 98724949be make custom buttons bindable to joyaxis
triggers and such
2024-03-25 21:18:19 +01:00
Alug 00db0a71f7 reset sound channel origin in s_stopchannel 2024-03-24 20:15:33 +01:00
Alug e1ff973bca raise vissprite limit and precip distance on 64bit builds
lower precip distance to vanilla values in 32bit again
2024-03-24 18:29:57 +01:00
Alug 07e864a4b6 "showspecstuff" to show a more info for spec on vanilla scoreboard
such as skin and ping of specating players
2024-03-24 17:22:03 +01:00
Alug b5bac690c0 more squashes things
Fix buffer overflow in SV_SendPlayerInfo

Pass -fwrapv to GCC compilation flags https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2195

Fix /unlist request https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2294

fix some alpha wrapping for translucent fofs
2024-03-24 17:18:31 +01:00
indev b23eb166eb Fix drift sound keep playing when player go off ground 2024-03-24 19:01:16 +03:00
Alug 850a126847 Fix buffer overflow when loading addons through symlinks
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2402
2024-03-24 15:25:51 +01:00
Alug 1f019ed277 Don't traverse the entire HOME directory to find wads
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2396
2024-03-24 15:25:08 +01:00
Alug 20dd32e716 Fix crash when passing a long string to v.drawString
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2403
2024-03-24 15:10:24 +01:00
Alug 2796340d63 menu stuffss
moved skybox toggle to experimental options
moved vhs effect toggle to normal video menu
moved uppercase menu toggle to saturn options
rearanged saturn menu a bit
made sure both video options dont cut of things on some resolutions
2024-03-24 14:32:30 +01:00
Alug a271f12aef Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-03-23 18:56:43 +01:00
Alug d0ad6d880a update saturn credits c: 2024-03-23 18:56:37 +01:00
indev ba1de8fde0 Fix NOHW compilation warning 2024-03-23 20:24:41 +03:00
Alug 2348e3b73e changable scaling for high resolutions
range from 0.8 - 1.2
only for higher resolutions since it literally breaks things visually on resolutions that already have a rather high scale
2024-03-23 18:06:53 +01:00
indev aa723f7a2b Fix NOHW compilation (1 error and 1 warning) 2024-03-23 00:46:08 +03:00
indev be83979016 Fix own nametags being always shown in netgames 2024-03-22 21:50:38 +03:00
Alug dd1428c770 oops 2024-03-22 13:18:49 +01:00
Alug de3afbb1c5 this can be just M_PI 2024-03-22 13:10:15 +01:00
Alug e63ba0cb7b hacky hires scale "fix" for waiting screen 2024-03-22 13:09:55 +01:00
Alug 14f29cc029 Merge pull request #120 from GenericHeroGuy/hud-uncap
Uncap hardcode HUD
2024-03-21 22:40:46 +01:00
GenericHeroGuy d2e4939b37 Fix VHS timescale issues
...it was already uncapped in vanilla
2024-03-21 21:56:18 +01:00
Alug 71a00ac555 this does not exist anymore
lul
2024-03-20 00:53:11 +01:00
Alug c0def5a001 toggle to show speedometer in bottle 2024-03-20 00:16:35 +01:00
GenericHeroGuy 9552154b7a Uncap VHS effect 2024-03-19 23:36:04 +01:00
Alug 2c41f817fc a 2024-03-19 22:46:24 +01:00
Alug 19e3e28026 Merge remote-tracking branch 'origin/joinrefusemessage' into Saturn-Next 2024-03-19 22:39:09 +01:00
Alug 080708d05d revert that change for flashpals 2024-03-19 22:36:38 +01:00
Alug 1d52e793b5 clean up p-meter speedometer if else hell 2024-03-19 22:35:46 +01:00
Alug a92ddec391 int32 momento 2024-03-19 22:34:01 +01:00
Alug 62b058c9fb squashed stuff
faster palette stuff for ogl. no number for samplerate. smaller possible sdl mixer buffer size. some inline warning fixes. also some camera interp fix on level load. bigger console buffer for very high resolutons etc.
2024-03-19 22:32:20 +01:00
GenericHeroGuy 4074893899 Merge branch 'Saturn-Next' into hud-uncap 2024-03-19 22:24:18 +01:00
Alug 855ba36921 smol hw_main cleanup 2024-03-19 22:22:40 +01:00
Alug f3a80dd6d9 some cleanup i forgor to merge 2024-03-19 22:16:26 +01:00
GenericHeroGuy 449b70a5eb Uncap K_GetScreenCoords
Plus fix nametags in splitscreen
2024-03-19 22:13:49 +01:00
GenericHeroGuy c51cfcd817 Add cv_uncappedhud toggle and R_GetHudUncap
Turns out I need to AND with FRACMASK everywhere to avoid discrepencies,
so might as well make a function for it

(no, it's NOT interpolation, I swear...!)
2024-03-19 19:49:38 +01:00
Alug 80f003bf79 Merge pull request #104 from Indev450/speedostuff
Changes to the Speedometer
2024-03-19 19:49:17 +01:00
indev 46955b7636 Remove debug print oops 2024-03-19 21:22:21 +03:00
indev 307b348dfa Change speedo_cons_t depending on if required lumps are found 2024-03-19 21:07:59 +03:00
Alug 41c8988c90 remove reduntand code
those do not need a colormap
2024-03-19 19:05:34 +01:00
GenericHeroGuy 4ed335422c Actually uncap battle animations
...am I really using "uncap" and "interpolate" correctly?
2024-03-19 16:37:10 +01:00
Alug e6b2e28734 just call it extra lul 2024-03-19 15:29:35 +01:00
Alug 8dad70fb51 change stuff to retain backwards compat add extra 3 which can be used for whatever you like
mainly cause i want to keep my indev kart hud
also cool way to downscale patches without them looking bad
2024-03-19 15:17:02 +01:00
Alug fbc51f00ef Merge branch 'Saturn-Next' into speedostuff 2024-03-19 14:43:28 +01:00
Alug f6f7258582 version bump so i dont forger 2024-03-19 14:40:22 +01:00
GenericHeroGuy 883522c17b Interp- I mean, uh, uncap battle animations 2024-03-18 23:12:34 +01:00
GenericHeroGuy 9afa1bc036 Needs more stplyrnum 2024-03-18 23:12:34 +01:00
GenericHeroGuy 5c96a12d61 Uncap input display and demo title 2024-03-18 23:12:30 +01:00
GenericHeroGuy 9ff3986656 Uncap title screen 2024-03-18 20:13:07 +01:00
GenericHeroGuy 13b2832a13 Uncap minimap icons 2024-03-18 00:09:53 +01:00
GenericHeroGuy dc2fd4d52d Uncap lap animation
Now handles laps greater than 99
2024-03-18 00:09:53 +01:00
GenericHeroGuy 15c6177df3 Uncap FINISH marquee, level title, intermission scoreboard 2024-03-18 00:09:43 +01:00
Alug eaaa25a584 add the note so i dont forger if i wanna update this again 2024-03-17 22:43:26 +01:00
Alug 4df0673e7a properly link libopenmpt
one dll instead of 4
2024-03-17 22:43:22 +01:00
Alug 9b7eff1a33 cute icon 2024-03-17 19:42:01 +01:00
Alug 216f04717b cute icon 2024-03-17 19:28:14 +01:00
Alug b64af70dc3 fix crashing menu entries 2024-03-17 16:18:54 +01:00
Alug 5685ebc80f Merge pull request #94 from Indev450/compilation-warnings-fix
Compilation warnings fix
2024-03-17 15:07:22 +01:00
Alug e77436d20a Merge pull request #116 from Indev450/httpbackthread
Put HTTP downloading on a background thread
2024-03-17 15:06:34 +01:00
Alug 0668b2004d make this a little less painful to look at 2024-03-17 14:56:14 +01:00
indev 9683f3ee22 Oops we don't use that check now 2024-03-17 16:30:59 +03:00
indev e3fb523562 Fix 'cast to non-matching type' warning 2024-03-17 16:15:58 +03:00
indev 86e9b52107 Fix few things that broke when merging with Saturn-Next 2024-03-17 16:14:14 +03:00
indev bf90b13a4f Merge branch 'Saturn-Next' into compilation-warnings-fix 2024-03-17 16:07:44 +03:00
Alug ed2efacfdf Merge pull request #106 from Indev450/win32timer
Use Windows own high resolution timer for timing things instead of the SDL timer
2024-03-17 13:46:59 +01:00
Alug ed0c076801 Merge pull request #111 from Indev450/qwerty3
Switchable native keyboard input
2024-03-17 13:10:34 +01:00
Alug 4ab5d5ed71 Merge pull request #110 from Indev450/maybemobjcrashfixes
Some potential crash fixes for mobj removal things
2024-03-17 13:02:49 +01:00
Alug 5199aae901 Merge pull request #117 from Indev450/luaoptmenu
Options Menu for lua Cvars
2024-03-17 13:02:19 +01:00
Alug 81ee2d5994 Merge branch 'Saturn-Next' into luaoptmenu 2024-03-17 12:49:35 +01:00
Alug b3fa892b5f Merge pull request #119 from Indev450/dsdaclip
New Opengl Clipping code from DSDA-Doom
2024-03-17 12:23:13 +01:00
Alug 27d47ec738 Merge pull request #114 from Indev450/driftgauge
K_GetScreenCords function to get screen coordinates from mobjs + Driftgauge and  Nametags
2024-03-17 12:23:03 +01:00
Alug a44e0885cb Merge pull request #118 from Indev450/qs22j
Faster sorting Algorithm replacement for qsort
2024-03-17 12:18:26 +01:00
indev 1152ccbf09 Add include guard for qs22j.h 2024-03-17 14:09:22 +03:00
Alug dc72191152 Merge branch 'Saturn-Next' into qs22j 2024-03-17 10:02:03 +01:00
indev 379d737ba6 Add snap to top flag for pause gfx 2024-03-15 13:47:40 +03:00
Alug 0fa01ba0c5 mhhm ternaries 2024-03-13 22:06:56 +01:00
Alug 855f1a876a fix ogl precip interpolation 2024-03-13 17:56:16 +01:00
Alug 3331ddfe1c this looks better lul 2024-03-13 13:31:10 +01:00
Alug 3b5f9dd55a clean up 2024-03-13 10:16:15 +01:00
Alug c96b51d319 forgor menu stuff 2024-03-13 10:07:58 +01:00
Alug 1457000f81 remove xs_CRoundToInt
while ye, less exact stuff doesent matter too much in the context of doom, it matters more in kart, due to polygon rendering and seg processing being extremely heavy and also generally more complex maps
2024-03-13 10:07:10 +01:00
Alug 98d03edf23 Ensure opaque midtextures always use PF_Masked 2024-03-13 09:09:22 +01:00
Alug f4ac17408e remove some suff 2024-03-13 08:33:42 +01:00
Alug 7bfbb9d42c revert that part 2024-03-13 08:32:42 +01:00
Alug 22f16c1d27 optimize HWR_AddLine and HWR_ProcessSeg 2024-03-13 08:32:39 +01:00
Alug 06acf6554d Fix buffer overrun in I_ClipboardPaste
https://git.do.srb2.org/STJr/SRB2/-/commit/9772bbeda172bc60482f137fc465e12070c76f22
2024-03-12 18:51:10 +01:00
indev e0b98707cf If game crashes in level, add it to crash report 2024-03-12 20:39:15 +03:00
Alug ad8cdc676c midi music bros 2024-03-11 23:53:45 +01:00
indev ad252fdbf2 Add snap to bottom flags for race countdown and level title too 2024-03-12 00:24:32 +03:00
Alug a527831aa9 sort grid when opening skin menu instead of everytime a skin is added 2024-03-11 21:21:07 +01:00
Alug d2c157262a those can all be static 2024-03-11 12:40:18 +01:00
Alug 8461449f2f more opitmizations stuff 2024-03-11 12:39:31 +01:00
Alug cbe78cc50f can do that directly 2024-03-11 12:39:26 +01:00
Alug dc465c3581 optimize hwr_renderbpsnode
actually just make it behave like the software version lol
2024-03-11 11:02:18 +01:00
Alug 2fd0d980e3 make 64 default again 2024-03-11 04:28:37 +01:00
Alug 01cce7c9c6 remove pseudoangle as its slower 2024-03-11 04:25:49 +01:00
Alug 95f51a26c1 attempt at unfucking renderview 2024-03-11 04:13:15 +01:00
Alug 5ade9699c1 give this a better name lol 2024-03-11 02:22:48 +01:00
Alug e77453e43a actually move stuff back to hw_clip lmao 2024-03-11 02:15:43 +01:00
Alug 1957712f38 faster serverlist sorting
replace qsort here too
2024-03-10 20:32:30 +01:00
indev d802970bc4 Snap viewpoint text to bottom 2024-03-10 21:41:49 +03:00
Alug 8ec7e23217 clean up stuff a little 2024-03-10 18:53:38 +01:00
Alug 50ba93541d i am in pain 2024-03-10 18:53:25 +01:00
Alug ba376dbbfe Port R_PointToPseudoAngle from dsda-doom 2024-03-10 18:53:18 +01:00
Alug 4dd7f02f33 smol adjustment 2024-03-10 04:43:05 +01:00
Alug db92db393e clean up this mess 2024-03-10 04:43:02 +01:00
Alug 37ad063db8 forgor 2024-03-09 12:02:50 +01:00
Alug 12cab1ef20 sUgGeSt PaReNtHeSeS ArOuNd '&&' 2024-03-09 12:01:28 +01:00
Alug 6489100e13 oops 2024-03-09 11:56:11 +01:00
Alug c6641c58ab implicit declaration of deez nuts 2024-03-09 11:55:43 +01:00
Alug a5184fac13 fix dumbass compiler warnings + reformat it a bit 2024-03-09 11:55:36 +01:00
Alug 09b5954171 use it for other stuff 2024-03-09 11:55:33 +01:00
Alug b2842ca778 faster qsort for rendering 2024-03-09 11:55:10 +01:00
Alug 427a55b45b simplify this crap 2024-03-09 10:52:27 +01:00
Alug d1c75dd4b0 add toggle for old fps counter behaviour
idk people hate the new one so brap
2024-03-09 07:59:21 +01:00
Alug b5ac5fe26c fix shit on party cruiser
well fixing the cullplane broke party cruiser, so im just gonna give it the same parameters as the software version i guess idk
2024-03-08 01:19:44 +01:00
Alug e939fceb5b readd this cause i dumb 2024-03-08 01:19:41 +01:00
Alug 23effd81c2 more mobj stuffs 2024-03-07 00:35:40 +01:00
indev 4df59ce98b Attempt to fix rare K_RepairOrbitChain crash 2024-03-06 00:25:51 +03:00
indev 3f51315863 Make custom cvar menu bit wider 2024-03-04 23:27:21 +03:00
indev bbb0c53616 Don't add string cvars (a bit hacky solution) 2024-03-04 23:07:42 +03:00
Alug 1e0a10afb6 change some numbers uuuuuh 2024-03-04 20:17:26 +01:00
Alug df28c87529 remove minmax sliders 2024-03-04 19:45:58 +01:00
Alug a96e74d02d oops 2024-03-04 19:12:52 +01:00
Alug 48cd09889f dont do stuff for anything thats not in normal us ascii or smth 2024-03-04 18:34:32 +01:00
Alug 19253f8c35 dont use it for control setup 2024-03-04 18:34:29 +01:00
Alug 774caadc79 only use this for text inputs not gameplay 2024-03-04 18:34:26 +01:00
Alug d522f202a6 make netvars red 2024-03-04 16:57:26 +01:00
Alug 94e1a35791 smh 2024-03-04 16:57:21 +01:00
Alug 2857f36836 we dont have IT_CV_FLOATSLIDER so dont even need to check for float 2024-03-04 16:57:15 +01:00
Alug 8093b16f28 Options Menu for custom console variables
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2380#9cc73f4b99ff925448389969b0ade6ba3947fc31
2024-03-04 16:57:00 +01:00
Alug d6dcbb8ba8 dont need this 2024-03-04 16:36:58 +01:00
Alug b2b60a2648 make it even simpler 2024-03-04 16:36:38 +01:00
Alug c9cef60cfd i will just use my compilers memcpy thx 2024-03-04 16:36:34 +01:00
Alug fbcd8bf9fd fix P_PlayerInPain 2024-03-04 16:33:55 +01:00
Alug 09f840fbfc Merge pull request #113 from GenericHeroGuy/lua-hudstuff
Add Lua functions for HUD customization
2024-03-04 16:27:08 +01:00
Alug 62849f2ba3 when the ;; 2024-03-04 00:19:44 +01:00
Alug 037185f8a0 fix ogl freelook breaking with shearing enabled
also removed uneeded stuff
2024-03-03 08:42:16 +01:00
Alug b0feb32f8b bruh
im going insane
2024-03-03 06:45:56 +01:00
Alug 9f26240211 fix this 2024-03-02 23:39:21 +01:00
Alug e211afa9dd dont need to check if we dont use it 2024-03-02 22:57:30 +01:00
Alug 46da9bf98b we have functions for that dont check for slopes everywhere
the functions already do it for us anyways
2024-03-02 22:57:27 +01:00
Alug a4f52ebd10 move sprite mobj checks first 2024-03-02 22:12:40 +01:00
Alug 158d84d638 check for those i guess 2024-03-02 22:12:07 +01:00
Alug 6c9ecf4582 forgor screenspace clipping 2024-03-02 22:12:05 +01:00
Alug 85e49ef2ab GetScreenCoord lua parity 2024-03-02 22:12:02 +01:00
Alug bfddbcde6d fix compiler complains
those were for coronas code which we dont even have
2024-03-02 02:44:08 +01:00
Alug ef076b4576 unhack palrendering screentex stuff 2024-03-02 02:16:28 +01:00
Alug 8cc71fb13a e 2024-03-02 02:16:25 +01:00
Alug f6f5b5caec a 2024-03-02 02:16:22 +01:00
Alug a0ae100186 more stuffs 2024-03-02 02:16:20 +01:00
Alug 4a1eab5ccd more shader stuff 2024-03-02 02:16:14 +01:00
Alug 8223ab07e4 shader stuffs 2024-03-02 02:16:11 +01:00
Alug 960ccaf9a1 Merge branch 'nametags' into driftgauge 2024-03-01 15:25:20 +01:00
Alug 95dd8b079a remove unused thing 2024-03-01 15:23:09 +01:00
indev c773552880 Merge branch 'nametags' of ssh://github.com/Indev450/SRB2Kart-Saturn into nametags 2024-03-01 11:04:03 +03:00
indev 6872a533d4 Fix nametag offsets with reverse gravity and flipcam 2024-03-01 11:03:55 +03:00
Alug 59b9d77c0e fix vertical flip driftgauge
and make non flipcam behave like the sg lua version
2024-03-01 01:54:29 +01:00
Alug 60970e71d3 fix shearing offset with flipcam in K_GetScreenCoords 2024-03-01 01:04:50 +01:00
Alug 3e94cd7c1e fix shearing offset with flipcam in K_GetScreenCoords 2024-03-01 01:04:44 +01:00
Alug 015cf95f4e stimky ugly 2024-02-28 22:32:35 +01:00
Alug 16078d7f2d Merge branch 'Saturn-Next' into qwerty3 2024-02-28 22:14:14 +01:00
Alug 91bda83c92 fix conflict 2024-02-28 22:11:41 +01:00
Alug 4f0ec1a900 kill have_blua 2024-02-28 22:10:57 +01:00
Alug 65001cf899 Merge branch 'Saturn-Next' into driftgauge 2024-02-28 22:09:50 +01:00
Alug 29ffb4200e Merge branch 'Saturn-Next' into nametags 2024-02-28 22:09:07 +01:00
Alug 0df5f4530e kill have_blua 2024-02-28 22:08:14 +01:00
Alug c5461dca4b Revert "dont need SEENAMES"
This reverts commit 3e48bfc8f5.
2024-02-28 22:05:49 +01:00
Alug 694a397ba4 kill delfile 2024-02-28 19:01:44 +01:00
Alug 06045a0751 kill weighted recycling 2024-02-28 19:00:16 +01:00
Alug fe22c7aba0 this doesent even exist anymore lmao 2024-02-28 19:00:08 +01:00
Alug dd7252d9c1 kill eslope_typeshim 2024-02-28 18:27:04 +01:00
Alug 3d46dcc277 kill GL_SHADERS 2024-02-28 18:19:32 +01:00
Alug 10fd862992 Zzz... 2024-02-28 18:19:23 +01:00
Alug 3e48bfc8f5 dont need SEENAMES
esp when we get nametags its obsolete
2024-02-28 17:58:44 +01:00
Alug 0a62fd11a0 kill polyobjects ifdef 2024-02-28 17:58:39 +01:00
Alug 5d2b213f76 those can return earlier 2024-02-28 17:46:46 +01:00
Alug 1be1e7fcbd u 2024-02-28 17:42:01 +01:00
Alug cc4d44f806 e 2024-02-28 17:41:58 +01:00
Alug 47e045db06 kill hw_trick 2024-02-28 17:41:55 +01:00
Alug 05accd5aca kill eslope 2024-02-28 17:41:52 +01:00
Alug 622e0c12fe forgor this 2024-02-28 17:40:03 +01:00
Alug ec80a4ccda OpenGL: Fix linedef type 10 not culling FOFs 2024-02-28 17:40:01 +01:00
Alug b49a46646c missed those 2024-02-27 22:16:59 +01:00
Alug 804b0c2d67 oopsie 2024-02-27 22:11:39 +01:00
Alug 1e232eec3b delete half of srb2 2024-02-27 21:56:27 +01:00
Alug 69fe26847b Fix con_hudlines being off by one, Fix con_hudtime overflow 2024-02-27 20:13:34 +01:00
Alug 253a7c3ee5 some stuff i forgor 2024-02-27 20:09:53 +01:00
Alug 3a42398117 wtf even 2024-02-27 20:05:09 +01:00
indev 0ef51011d4 Change default value for joinrefusemessage because cvars don't support newline characters 2024-02-27 20:26:18 +03:00
indev 0b6796cad9 Add cvar joinrefusemessage for custom messages when allowjoin is Off 2024-02-27 20:18:10 +03:00
GenericHeroGuy 20bd4a8599 Don't return aggregates 2024-02-27 17:37:22 +01:00
Alug 2d160cfc89 Toggle for R_Pointtoangle Ex or 64
Ex may perform better on 32bit clients and some cpus so lets just make it toggable
2024-02-27 15:53:00 +01:00
indev 7fedc0a780 Don't return NULL when creating MT_NULL mobj, since it is needed in some parts of game 2024-02-27 15:16:32 +03:00
Alug 562f3cf611 Merge pull request #107 from Indev450/interpoptimisations
Small Interpolation Optimizations
2024-02-27 00:06:38 +01:00
Alug 84bfb3991e Put HTTP downloading on a background thread
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2322
2024-02-26 23:57:50 +01:00
Alug 07bd1aeb5d e 2024-02-26 23:55:36 +01:00
Alug 7cf407c895 Merge branch 'Saturn-Next' into maybemobjcrashfixes 2024-02-26 23:55:29 +01:00
Alug e4c59824f4 fix compile for qt 2024-02-26 23:49:09 +01:00
Alug 5e836d4bc1 make the menus a little prettier 2024-02-26 22:01:50 +01:00
Alug e7133e9480 toggle for showing nametags during spectating 2024-02-26 22:01:39 +01:00
Alug b1fb1c2293 toggle for showing nametags during spectating 2024-02-26 22:01:23 +01:00
Alug f87c5e2e8d Merge branch 'nametags' into driftgauge 2024-02-26 21:21:12 +01:00
Alug 3e6a66b12d add toggle for showing nametags after you finished a race
off by default to match sg nametags
2024-02-26 21:20:53 +01:00
Alug cda07a1594 use V_LocalTransFlag for driftgauge 2024-02-26 20:59:53 +01:00
Alug 8843fc0bd8 Merge branch 'nametags' into driftgauge 2024-02-26 20:59:47 +01:00
Alug b802e4fa8a use V_LocalTransFlag for nametags 2024-02-26 20:59:26 +01:00
Alug cb1c167fa0 Merge branch 'Saturn-Next' into nametags 2024-02-26 20:59:22 +01:00
Alug 50023b0021 replace SCR_FPSflags with V_LocalTransFlag
so we can actually display hud transparency stuff before the hud appears, since that doesent work with V_HUDTRANS
2024-02-26 20:59:06 +01:00
Alug 05195f4116 Revert "connect loadingscreen should clear menus"
This reverts commit 6b41cf676c.
2024-02-26 01:29:31 +01:00
Alug 7d991d1993 fix tagsdisplayed counter 2024-02-25 21:35:49 +01:00
Alug 91efc08823 fix tagsdisplayed counter 2024-02-25 21:33:46 +01:00
Alug 612bde4e9a dont quit addon downloading with the mousewheel lmao 2024-02-25 19:49:57 +01:00
Alug 6b41cf676c connect loadingscreen should clear menus 2024-02-25 19:49:13 +01:00
Alug 8cae47f756 disable driftgauge by default 2024-02-25 19:49:01 +01:00
Alug 0c1be58854 disable nametag by default 2024-02-25 19:48:58 +01:00
Alug 4d840c5455 disable nametag by default 2024-02-25 19:48:52 +01:00
Alug 78fc67a3eb lua hud disable option for driftgauge 2024-02-25 18:22:59 +01:00
Alug 7293efbe89 Merge branch 'nametags' into driftgauge 2024-02-25 18:22:56 +01:00
Alug f4e39912b4 lua hud disable option for nametags 2024-02-25 18:22:16 +01:00
NepDisk f7e99d6f33 Add coloring to large numbers 2024-02-25 17:34:27 +01:00
NepDisk 3016c2ee7b Fix fillbar 2024-02-25 17:34:24 +01:00
Alug e28722334c fix first person splitscreen driftgauge stuff a 2024-02-25 12:28:33 +01:00
Alug 0dabf65a40 k... 2024-02-25 12:28:29 +01:00
Alug ba4c82d381 add splitscreen to screencoords and fix splitscreen for driftgauge 2024-02-25 12:28:27 +01:00
Alug 2e9704067c use SleepEX on windows and set the min sleep duration to 16ms 2024-02-25 04:11:25 +01:00
Alug 046197c9a0 actually disable it for splitscreen for now
its botched and needs fixing
2024-02-24 20:34:37 +01:00
Alug 48f7f411ad dont draw driftgauge when not using chasecam 2024-02-24 20:15:05 +01:00
indev 5eebdec84d Don't need for long there, fixed_t is big enough 2024-02-24 21:21:20 +03:00
indev 51c888a3fb Merge branch 'driftgauge' of ssh://github.com/Indev450/SRB2Kart-Saturn into driftgauge 2024-02-24 21:20:15 +03:00
indev 2cefb00b5d Don't need for long there, fixed_t is big enough 2024-02-24 21:19:57 +03:00
Alug 1d177b6a35 add -1 check for driftgauge too 2024-02-24 19:16:33 +01:00
Alug 6db95fc37b fix conflict 2024-02-24 17:23:47 +01:00
Alug bd2c8969f1 Revert "Refactor Batching code"
This reverts commit 3dcf4f6f64.
2024-02-24 17:23:41 +01:00
Alug 9173bc8ebe disable driftgauge in record attack
it actually gives you an advantage over using other clients
record attack should be fair and even
2024-02-24 15:59:02 +01:00
Alug 0f1accb378 fix compile 2024-02-24 15:50:18 +01:00
Alug 927599432c rename all of those to not conflict with mods 2024-02-24 15:48:48 +01:00
Alug 9f795701e1 I HATE MENUS I HATE MENUS 2024-02-24 15:46:21 +01:00
Alug c7059b3007 lol 2024-02-24 15:46:06 +01:00
Alug 5c6bafd655 fix warning 2024-02-24 15:45:56 +01:00
Alug e491eac956 rename driftgauge cvar and fix nametag rendering bug 2024-02-24 15:45:42 +01:00
Alug 13a2dc1ba3 e 2024-02-24 15:45:33 +01:00
NepDisk 5b29cf8e13 Driftgauge flipcam 2024-02-24 15:44:58 +01:00
Alug 341a38b2e1 Forgot this lol 2024-02-24 15:44:35 +01:00
Alug ae33b411b0 Driftgauge 2024-02-24 15:43:35 +01:00
Alug 7bebb554e9 fix K_GetScreenCoords y clipping 2024-02-24 15:38:55 +01:00
Alug c9cafeefe7 fixeur conflicts i was too lazy too fix lol 2024-02-24 15:35:49 +01:00
Alug d10fb3fb6a rename all of those to not conflict with mods 2024-02-24 15:34:11 +01:00
Alug 5b850f1b49 fix nametag rendering bug 2024-02-24 15:33:50 +01:00
Alug 9b4f051312 this aswell 2024-02-23 01:35:56 +01:00
Alug bcc15011b2 forgor those aswell 2024-02-23 01:28:10 +01:00
Alug 1c8ffe3d90 Merge branch 'Saturn-Next' into win32timer 2024-02-22 23:50:42 +01:00
Alug 634c0e90b8 Merge branch 'Saturn-Next' into speedostuff 2024-02-22 23:50:29 +01:00
Alug 77f355ee77 Merge branch 'Saturn-Next' into maybemobjcrashfixes 2024-02-22 23:50:18 +01:00
Alug 6d28893f85 Merge branch 'Saturn-Next' into nametags 2024-02-22 23:49:43 +01:00
Alug 0e1ada30ab Merge branch 'Saturn-Next' into compilation-warnings-fix 2024-02-22 23:49:24 +01:00
Alug 339aab8540 use the current not old state
also add dont interp precip angle if it doesent change
2024-02-22 23:45:26 +01:00
Alug bee72c4646 remove redundant check 2024-02-22 23:40:30 +01:00
Alug 029597b2c2 Merge pull request #95 from Indev450/gl-noencore-effect-fix
Fix some things regarding Opengl encore visuals
2024-02-22 23:35:00 +01:00
Alug 0b1add2988 one more 2024-02-22 23:27:26 +01:00
Alug cd239b0f35 fix conflicts 2024-02-22 23:26:18 +01:00
Alug eaace5bf74 Merge branch 'Saturn-Next' into gl-noencore-effect-fix 2024-02-22 23:16:54 +01:00
Alug b96fe0a022 those too 2024-02-22 22:53:04 +01:00
Alug c6e0701581 forgor those 2024-02-22 22:46:51 +01:00
Alug 65cb5b265c fix ternary hell for palette rendering lightlevels 2024-02-22 21:41:53 +01:00
Alug 1e50ecb2cd fix ternary hell for palette rendering lightlevels 2024-02-22 21:41:44 +01:00
Alug 1a91060573 dont interpolate unchanging things + remove unused dynslope interp code 2024-02-22 21:04:35 +01:00
Alug 40593f59cf Merge branch 'Saturn-Next' into interpoptimisations 2024-02-22 21:04:12 +01:00
GenericHeroGuy 5d215ea633 Add enums for drawinfo and offsets 2024-02-22 01:19:37 +01:00
GenericHeroGuy e6adc50e2b Replace draw functions with v.getColorHudPatch
More flexible, more extensible
2024-02-22 00:27:51 +01:00
GenericHeroGuy 913b374f9b Lua functions for colorization, offsets, drawing HUD items
Introduce drawinfo_t to pass coords/flags to both hardcode and Lua

* v.getDrawInfo: return X/Y/flags for the given HUD item
* v.drawItemBox: draw the item box, with support for all effects
* v.drawItemMul: draw multi sticker, for convenience
* v.getHudColor: return HUD color
* v.useColorHud: return true if colorization is enabled
* hud.getOffsets: return xoffset/yoffset for the given HUD item
2024-02-21 22:27:17 +01:00
GenericHeroGuy 9362d5abd4 Add stplyrnum, move to st_stuff 2024-02-21 22:27:17 +01:00
GenericHeroGuy 2fb75f7739 Fix V_SPLITSCREEN on OpenGL
Now matches v_video.c
2024-02-21 22:27:11 +01:00
Alug 8387a00b75 remove R_PointToAngleEx
R_PointToAngle64 does its job better anyways
2024-02-20 21:07:36 +01:00
Alug 1034bde5d1 some fixes 2024-02-20 18:08:38 +01:00
Alug 284a1488a3 Merge branch 'Saturn-Next' into compilation-warnings-fix 2024-02-20 18:08:30 +01:00
Alug 072bb75504 oop 2024-02-20 18:06:13 +01:00
Alug 7deff2bfaa set currenttex to null if it gets an invalid texture id 2024-02-20 18:06:10 +01:00
Alug b02f0fc771 die 2024-02-20 18:05:34 +01:00
NepDisk 23ad0746f1 Nametag sightofline fix 2024-02-19 20:36:12 +01:00
Alug 6fede1a564 add max cap to nametagmaxplayers 2024-02-19 19:03:00 +01:00
NepDisk 8e2b208912 Remove unused functions that were originally added for nametags 2024-02-19 11:13:03 +01:00
NepDisk 957a49248e Fix nametag weight offset for small and minimal 2024-02-19 11:12:30 +01:00
Alug 0d80de55ad Fix nametag limit 2024-02-19 11:12:26 +01:00
Alug 9332f8473d forgor 2024-02-19 01:57:12 +01:00
Alug 35c5881449 remove hpmod stuffs since its not netsafe 2024-02-19 01:54:41 +01:00
Alug e13f58d665 Nametags Rewrites 2
contains netunsafe stuff but easy to remove
2024-02-19 01:54:32 +01:00
NepDisk 0adcdf3441 Nametags Rewrites 2024-02-19 01:54:27 +01:00
Alug 814d125fe0 brap 2024-02-19 01:54:15 +01:00
Alug 1656aee8d3 use this stuff 2024-02-19 01:54:06 +01:00
Alug 16239edf1c fix menu updating + add default to switch 2024-02-19 01:54:00 +01:00
Alug 06f8ea75ff fix menu stuff 2024-02-19 01:53:53 +01:00
Alug 1bc90d22f7 option for small nametags 2024-02-19 01:53:47 +01:00
Alug 85ebbbb3a1 why add the same thing twice? 2024-02-19 01:53:14 +01:00
Alug 22fd967131 also turn this off 2024-02-19 01:53:09 +01:00
Alug 2a10f784cd forgor to comment this out 2024-02-19 01:53:00 +01:00
Alug 26eff18473 Nametags from Chaoskart
https://gitlab.com/Fafabis/kart-chaotic/-/commit/8b4a12e144fbff587ee70c30e7f461900d839650#025e5c90ea9aeb6187b4fe002e0fbb277ef4b33d_7024_7035
2024-02-19 01:52:44 +01:00
Alug 7e6d5db0f2 those are not server commands
idk why i threw them there in the first place but those are not needed at all (or even usefull for that matter) for dedicated servers
also moves some stuff to its group
2024-02-19 00:11:13 +01:00
Alug 0f36c7db1a Merge branch 'Saturn-Next' into interpoptimisations 2024-02-18 23:52:32 +01:00
Alug 3085df1432 fix up colour cube/saturation/gamma
cleans up things, and fixes it not being applied to 3D models and colourmapped sectors when not in palette rendering mode
also adds a new way of handling gamma which can be used if wanted
2024-02-18 20:47:30 +01:00
Alug 418be50ce1 clean up patch drawers a little
esp for software
also Don't blank the screen if the top left pixel of a screen-covering patch is transparent. (Checked via nonzero topdelta for first column)
2024-02-18 20:47:25 +01:00
Alug 7300f36a9b Fix dangling pointer in mapthing after removing mobj 2024-02-17 16:49:59 +01:00
Alug e30b54a149 Fix segfault when removing mobjs while iterating thinglist 2024-02-17 16:49:55 +01:00
Alug e615604adf fix segfaults when damaging mobj with no painstate and when removing source from ShouldDamage 2024-02-17 16:49:50 +01:00
Alug df79e484d8 those too 2024-02-17 16:11:39 +01:00
Alug 46cffe748e forgor 2024-02-17 16:09:50 +01:00
Alug e761bbe361 remove bloat from windows libs + move dlls into dlls folder
+ remove msvc project files since they dont work anyways
2024-02-17 16:04:03 +01:00
Alug 6d6d2b76d2 Merge branch 'Saturn-Next' into speedostuff 2024-02-15 20:25:39 +01:00
Alug e20ca38f6c Merge branch 'Saturn-Next' into win32timer 2024-02-15 20:25:23 +01:00
Alug 2b1d192edd make this save 2024-02-15 20:22:27 +01:00
Alug aa84cc8184 Merge branch 'Saturn-Next' into interpoptimisations 2024-02-15 20:22:20 +01:00
Alug 30d63b7c01 do this again 2024-02-14 17:40:17 +01:00
Alug 59bc9d4814 Revert "remove mobj realscales"
This reverts commit 9f45dabd9c.
2024-02-14 17:36:13 +01:00
Alug ab4fe830fa Revert "move this, remove interp things, and add some comments"
This reverts commit 47c90f63a8.
2024-02-14 17:36:09 +01:00
Alug 065e22adae Revert "forgor"
This reverts commit e4ec7484aa.
2024-02-14 17:36:05 +01:00
Alug d4f2202906 Use po2 patches to fix mipmaps 2024-02-14 12:57:50 +01:00
Alug e4ec7484aa forgor 2024-02-14 12:00:38 +01:00
Alug 47c90f63a8 move this, remove interp things, and add some comments 2024-02-14 12:00:36 +01:00
Alug 9f45dabd9c remove mobj realscales
idk those just seem absolutely useless its literally just an alias for mobj scale
2024-02-14 12:00:33 +01:00
Alug 52d9f7fd06 a? 2024-02-14 11:02:43 +01:00
Alug 3ad62e328b Snap to software lightlevel values when using Paletter renderer
bye bye smooth fades, here i come 32 light levels
2024-02-13 16:53:49 +01:00
Alug d2edcc1170 better comment 2024-02-13 11:16:08 +01:00
Alug d6ed90b2b9 set this to 1440p
also made a new define for use in the png limits so that can stay at 4k. but having both maxvids allocate things for 4k is not a good thing for software renderer, not that anyone would ever want to run it at 4k anyways
2024-02-13 11:15:28 +01:00
Alug 23426b82f1 update SDL2 to v2.30.0 2024-02-12 14:35:13 +01:00
Alug cef9d96a52 update zlib to v1.3.1
update zlib to v1.3.1
2024-02-12 14:34:55 +01:00
Alug 5a5738c162 Merge pull request #103 from Indev450/Saturn-Next-EnumLib
Lua globals library / GLib
2024-02-12 07:37:03 +01:00
Alug 03be5e8118 Merge pull request #102 from Indev450/fix-battle-ending-music
Fix battle playing wrong ending music sometimes
2024-02-12 07:34:32 +01:00
Alug 9079db1a71 Merge pull request #101 from Indev450/ierror-crash-log
If have libbacktrace, write crash reports from I_Error
2024-02-12 07:33:48 +01:00
Alug c1fbd3971d Merge pull request #97 from Indev450/texthings
Texture Related things
2024-02-12 07:33:34 +01:00
indev 1638212ab2 Add transparency flag to record attack input display 2024-02-12 02:15:18 +03:00
Alug 2ebb71fb6c add stuff to menu 2024-02-11 15:21:26 +01:00
Alug 242df89d0e forgor 2024-02-11 15:10:23 +01:00
Alug 088426a654 only interpolate those if we use the stuff that uses them 2024-02-11 15:06:08 +01:00
Alug 8ba926550c only interpolate pitch, roll, slopepitch and sloperoll when using sprite rotation 2024-02-11 14:53:27 +01:00
Alug 4732f95782 toggable mobj subsector interpolation
honestly couldnt spot any difference at all
but R_PointinSubsector is quite expensive so making a toggle seems cool
2024-02-11 14:53:22 +01:00
Alug b0f3b515d2 Add cvar gr_maxinterpdist, which allows to control max distance on which mobjs will be interpolated 2024-02-11 14:53:16 +01:00
Alug f175735366 mobj interp optimization 2024-02-11 14:19:24 +01:00
Alug 45ff86361b a 2024-02-11 13:46:59 +01:00
Alug 858b56d5ae Dont need this
I_GetPrecise Precision already gets the high res windows time anyways
2024-02-11 13:42:19 +01:00
Alug a747e9c7c0 add it here too 2024-02-11 11:26:09 +01:00
Alug 31964b34af oops 2024-02-11 11:26:06 +01:00
Alug 88db48b815 use Windows High Precision Timer on Windows builds
lul may help with frametime and other stuff
2024-02-11 11:26:01 +01:00
indev 53a7a9fa1f Merge branch 'Saturn-Next-EnumLib' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next-EnumLib 2024-02-09 20:40:09 +03:00
indev c6ba2ee0a7 Fix warnings related to boolean glib getters/setters 2024-02-09 20:39:11 +03:00
Alug 8a45a784a0 proper check for colourized speedometer patches 2024-02-09 12:33:58 +01:00
Alug 47f545068a forgor this somehow 2024-02-09 12:19:32 +01:00
Alug 159ee9c41f add achiiro speedometer stuffs 2024-02-09 12:11:20 +01:00
Alug ca9f05272e change x scale a little 2024-02-09 12:10:53 +01:00
Alug 54d8cba549 similar scale to old speedo 2024-02-09 12:10:46 +01:00
Alug 0ce592b0bd ok i can just do it like this lol
now its good finally
2024-02-09 12:10:34 +01:00
Alug a5759b4dbe fix 1 pixel gap
i hate maths
2024-02-09 12:10:22 +01:00
Alug 4997207df2 prep some speedometer stuff 2024-02-09 12:10:13 +01:00
Alug 57eabc80f9 switchable native keyboard input
taken from chaoskart this is completely non invasive
2024-02-09 10:40:39 +01:00
Alug a984476bfc Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next-EnumLib 2024-02-09 10:20:46 +01:00
Alug 35851483d4 Merge pull request #100 from GenericHeroGuy/ms-startup-crash
Fix master server thread segfaulting on startup
2024-02-09 10:06:55 +01:00
GenericHeroGuy f87efad86b Fix master server thread segfaulting on startup with OpenGL 2024-02-08 18:49:51 +01:00
Alug d3a4dacb6c fix for opengl sprite shadow colour 2024-02-07 09:35:26 +01:00
Alug 567e168a3c split cache functions
seems to fix a few stutters
2024-02-04 23:56:51 +01:00
Alug 0a7f18efe0 Merge branch 'Saturn-Next' into texthings 2024-02-04 23:56:33 +01:00
indev f90a069754 If have libbacktrace, write crash reports from I_Error 2024-02-04 16:12:14 +03:00
Alug e9f8400210 smol cleanup 2024-02-04 07:48:17 +01:00
Alug 7bafdc577b Zzz... 2024-02-04 07:48:12 +01:00
Alug 9a71d806b7 little portal cleanup 2024-02-04 07:47:55 +01:00
Alug 6a3b5cac83 Remove Build2DMipmaps and GLU library stuff
gluBuild2DMipmaps is just broken anyways
and it was the only thing used from the GLU library aswell so can remove things in favor of better solutions
having a pc with opengl 1.4 should be a given by now
2024-02-01 22:24:36 +01:00
Alug 668b99c7f9 add an I_Error for when opengl is started on unsupported hardware or driver 2024-02-01 19:57:32 +01:00
Alug b2b65651d4 move that where it belongs 2024-02-01 04:42:42 +01:00
Alug 5ae85b005a dont need to extra check for this actually 2024-02-01 03:48:23 +01:00
Alug 8a8d997fad fix sprite roll angles in software for sprites with one rotation frame
ofc only when the rotation stuff is set to rotate everything not just the player
also changes that the shadows only rotate on that setting unless someone wants it and wants really dumb checks for it
2024-02-01 03:46:26 +01:00
Alug dacf9eb7ab remove non working fisheye lens code
remnants of birdhouse, this was never finished nor does it work
2024-02-01 03:26:49 +01:00
Alug 4d75e05002 fix software shadow rotation in the worst way possible kek 2024-02-01 03:26:45 +01:00
Alug 6bae725077 make this a little neater 2024-02-01 02:05:55 +01:00
Alug 66961b1097 Buffer API is OpenGL 1.5, so can be used in STATIC_OPENGL
https://git.do.srb2.org/STJr/SRB2/-/commit/623629b04ab72071e6ea4f0c4a3245e6cde72e2c
2024-02-01 02:05:50 +01:00
Alug 580912c335 rotating shadows
uuuuhhh
2024-02-01 01:07:32 +01:00
Alug d581d48714 Merge pull request #96 from Indev450/morenewpalshader
More Palette Rendering things
2024-02-01 00:57:31 +01:00
indev 05aec1cd94 When connecting to server via -connect flag, save ip into lastserver cvar 2024-01-31 18:51:37 +03:00
Alug 53a10d7cba update libopenmpt libs 2024-01-29 18:11:46 +01:00
Alug 9b9620a560 uuuuuuuhhh 2024-01-29 03:56:52 +01:00
Alug 7d92b839aa add "Reset All" button to hud offset menu 2024-01-25 23:02:09 +01:00
Alug 325c452313 remove this since its not needed anymore 2024-01-25 15:15:58 +01:00
Alug 38c9cbc15b more cleanup 2024-01-25 15:14:42 +01:00
Alug 7476dea308 Texture buffer for non RGBA to RGBA conversion 2024-01-25 15:14:15 +01:00
Alug 79be487833 fix merge conflict 2024-01-25 15:14:03 +01:00
Alug 7c368ebc51 Remove 3Dfx and glide things
gr_rounddown toggle did nothing instead the game always resized textures, now it wont, seems like this makes stutters on mapload less
2024-01-25 15:13:53 +01:00
Alug c63142c813 add hw_shaders to cmakelist 2024-01-25 15:06:26 +01:00
Alug 0588442ae2 change this 2024-01-25 15:06:17 +01:00
Alug 79b0b160cb add toggle for custom shaders
it seems better like this, atleast thats how hannu set it up
2024-01-25 15:06:04 +01:00
Alug ce13d4f818 shaderstate should be set here 2024-01-25 15:05:58 +01:00
Alug 51699bfdb5 split hw_shader files 2024-01-25 15:05:52 +01:00
Alug 32d4d288bc OpenGL shader code rearrangement and shader pre-preprocessor
https://git.do.srb2.org/STJr/SRB2/-/commit/de37df1be04e9d1dfb11083a9585eb6ac1761633?merge_request_iid=1516
wew
2024-01-25 15:05:42 +01:00
indev b305759212 Move autoloading to run after everything else is initialized 2024-01-22 23:24:19 +03:00
indev b78d3bb0a8 Force postload for autoloaded character addons 2024-01-22 23:18:53 +03:00
indev a064a9e88e Fix sound, music, and midi music toggles 2024-01-22 10:52:54 +03:00
Alug e2c52c0d14 forgor 2024-01-22 02:52:50 +01:00
Alug 6ab1b09aa8 fix merge conflict 2024-01-21 16:44:36 +01:00
Alug 2b38cb2f1c simplify this uuh 2024-01-21 16:44:13 +01:00
Alug 4c6964590d i hate this so i just make it a boolean
confused the heck outta me so just do it like this lmao
2024-01-21 16:44:06 +01:00
indev 7984f57b73 Remove debug print 2024-01-21 17:45:09 +03:00
indev b79a05f25b Fix freeing sounds that aren't actually replaced 2024-01-21 17:44:51 +03:00
Alug 7dfad132dd grr 2024-01-20 17:24:20 +01:00
Alug 193248b71c oops 2024-01-20 17:03:12 +01:00
Alug db5ada9fa0 cleanup s_sound a little + fix onchanges 2024-01-20 17:01:56 +01:00
Alug f41d7e9e97 make NO_MIDI=0 compile 2024-01-20 16:52:54 +01:00
Alug 8d43f6144a make some things static + remove cdmusic leftovers 2024-01-20 15:45:01 +01:00
Alug 442c8e59a1 make sound precaching useful at all
so it also precaches addon sounds and all
thx indev for help <3
2024-01-20 15:44:58 +01:00
Alug ef08db8d89 fix issues with sound precaching
adds a check if sounds have been previously loaded already

also makes it useful at all by not freeing soundsfx data on each mapload when its enabled

also adds an onchange so toggling it either caches all sounds again or frees them
2024-01-20 13:58:24 +01:00
Alug 1d5c635556 Merge branch 'Saturn-Next' into morenewpalshader 2024-01-19 19:59:32 +01:00
Alug 27c8f3a8b4 change gr_shadersavailible
hopefully a little safer + remove killshader call since that function is empty and does nothing
2024-01-19 19:37:00 +01:00
Alug 9725a9d9a5 Fix blackscreen on start + some other changes
move a few things around in HWR_Startup so they only get called on startup
2024-01-19 19:23:49 +01:00
indev 89b1c316e2 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-01-19 13:03:00 +03:00
hayaunderscore 88b51c9901 Fix dumb saturn credits crash 2024-01-19 13:02:44 +03:00
Alug a79a5db793 smol stuffs 2024-01-19 00:39:32 +01:00
Alug d0d2a3d0a1 Add toggle for horizonlines 2024-01-18 20:54:59 +01:00
Alug fc2a0846cb Add toggle for horizonlines 2024-01-18 20:54:10 +01:00
Alug 00dbd08641 remove the extra screentex and apply palshader directly to finaltex
theres basically barely any difference, even in the fades theres very little, and it just cost so freaking much performance

however, ill keep the revamped screentex setup as this it allows us to keep the better fadescreen background for menus
2024-01-18 17:03:16 +01:00
Alug e77a4d4690 readd oldpal
for performance reasons its better
2024-01-18 17:03:12 +01:00
Alug d370b59777 do this a little better 2024-01-18 17:03:05 +01:00
Alug 241108abc2 ensure consistent shader state 2024-01-18 17:03:00 +01:00
Alug d7fe3272e2 Light table support for HWR_FadeScreenMenuBack 2024-01-18 17:02:47 +01:00
Alug cc317cb28e remove gr_oldpal for now 2024-01-18 17:02:39 +01:00
Alug 2a0e2f76f1 paletterenderer screentex stuff again
this didnt really work like it shouldve
so ill keep it here for now
2024-01-18 17:02:34 +01:00
Alug 5cec34e8d9 fix lighttable batching for new batching and palshader code 2024-01-18 16:56:59 +01:00
Alug 8c1febd1b9 Merge branch 'Saturn-Next' into batching-stuff 2024-01-18 16:53:40 +01:00
Alug 1ff9bae55c use fudges from newer paletter shader 2024-01-18 16:49:44 +01:00
indev db7ffbff41 Merge pull request #92 from Indev450/planestuff2
Software Plane cleanup + support of tilted water ripple
2024-01-18 18:46:12 +03:00
indev 9e78fb88b7 Merge pull request #88 from Indev450/gammastuff
Rework of Gamma stuff + Addition of the Colour Cube and Advanced Colour Settings
2024-01-18 18:41:03 +03:00
indev fd1177b6e5 Merge branch 'Saturn-Next' into gammastuff 2024-01-18 18:40:51 +03:00
indev d14b1ee4a6 Merge pull request #86 from Indev450/newpalshader
Rework Palette Rendering
2024-01-18 18:28:19 +03:00
Alug 9a8d6efcd7 make thundershield follow player offset
this allows the to stay on the player when saltyhopping etc.
2024-01-18 15:34:19 +01:00
Alug 3dcf4f6f64 Refactor Batching code
from Hannu Hanhi
https://git.do.srb2.org/STJr/SRB2/-/commit/707687beea50a2bfcc14638e923ac516195351b1?merge_request_iid=1774
2024-01-17 18:31:36 +01:00
Alug d071f52707 fix typo 2024-01-17 18:15:54 +01:00
indev 7a0adbc30b Merge pull request #93 from Indev450/crash-log-mention
Mention the crashlog.txt on the crash window
2024-01-17 16:50:19 +03:00
indev 6d642b124a Fix typo 2024-01-17 16:48:11 +03:00
Alug 7d9510b315 Fix vibing slope planes 2024-01-17 12:37:09 +01:00
Alug c80c754f45 Plane optimization and cleanup
sned help

https://git.do.srb2.org/STJr/SRB2/-/commit/c07c80fd9e626f15b4d84d1766f8963e089d295a
2024-01-17 12:37:05 +01:00
Alug 0b1c3f2f67 Move water ripple spanfunc out of r_plane + tilted water support
idk man
2024-01-17 12:36:58 +01:00
Alug 69c1f9164b use malloc here 2024-01-17 12:36:54 +01:00
indev b7ef5e0931 Merge pull request #91 from Chearii/Saturn-Next
``v.getSpritePatch`` from 2.2
2024-01-17 14:18:22 +03:00
Alug b9115aa5f8 (hopefully) fix overflow in R_DrawRepeatMaskedColumn
well this fixes the game hanging in software renderer on Marsh´s Marble Zone
2024-01-17 12:11:42 +01:00
Chearii 83c5618cb7 Add some labeling 2024-01-16 15:01:08 -05:00
Chearii c6faf8e6a2 Player sprite support. 2024-01-16 14:47:48 -05:00
Chearii 68354baf28 Add `getSpritePatch` 2024-01-16 13:46:30 -05:00
Alug 8f6cc895a0 fix ogl shearing with flipcam 2024-01-16 16:22:40 +01:00
Alug a0eab7d5f8 Revert "invert encore remap is 12 not 15?"
This reverts commit 8e6023d850.
2024-01-16 07:17:05 +01:00
Alug 6346ac0a96 Revert "invert encore remap is 12 not 15?"
This reverts commit 8e6023d850.
2024-01-16 07:11:43 +01:00
Alug 1b7870e905 Merge branch 'Saturn-Next' into newpalshader 2024-01-15 20:23:59 +01:00
Alug e2a4fdc395 Revert "Localskins on replays"
This reverts commit e1f821e121.
2024-01-15 15:57:17 +01:00
Alug 3eb8886890 remove Shader_Load as Shader_SetUniforms literally did the same thing 2024-01-15 15:16:01 +01:00
Alug 5e0fe497f5 add stuff here too 2024-01-15 14:27:01 +01:00
Alug 35e8d54fc4 oopsie 2024-01-15 14:21:38 +01:00
Alug 08e5b4844e fix palshader 2024-01-15 13:59:43 +01:00
Alug 7edfdf9325 forgor 2024-01-15 13:47:13 +01:00
Alug d5fdd60fed replace karts batching with srb2s batching
currently palette renderer does not work
may need to try it with the reworked
2024-01-15 13:35:17 +01:00
Alug 48320b5f96 this can be static 2024-01-15 08:59:37 +01:00
Alug be3a57c8ab proper big room fix
no idea what i was doing here, pointtoangle64 does all we need, no need for a hacky 64bit pointtoangleex
2024-01-15 08:59:04 +01:00
Alug 2093bf27b9 clean up drawfill transparency 2024-01-15 08:12:40 +01:00
Alug a36e633555 Revert "Optimize HWR_RenderBatches polygon sorting"
This reverts commit 5201ccd6d2.
2024-01-14 23:49:48 +01:00
Alug 79a594f6ee tooltips greenres fixed by nepdisk c: 2024-01-14 22:57:00 +01:00
Alug d2bf2bc581 forgor 2024-01-14 22:53:20 +01:00
Alug c1223d767d remove this hacky stuff, just dont interpolate it
it barely looked any better, it was actually just faster than it shouldve been
2024-01-14 22:39:50 +01:00
Alug d10c5fef2a remove gr_vhseffect cvar
the vhs effect can be toggled off in opengl with cv_vhseffect anyways, so having cvars to do the same thing is kinda unecessary
2024-01-14 22:30:27 +01:00
Alug 2ffe7aa854 use hwr_drawpatch to fix compiler warning and casting wrong things 2024-01-14 22:13:30 +01:00
Alug d0761d0044 background for missing 4th player screen in 4 player splitscreen
just like software does c:
2024-01-14 21:29:14 +01:00
indev fe868a74d2 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-01-14 18:04:42 +03:00
indev 76a233148b Restore old speedometer offset cvar names
Changed from "speed" to "spdm" in refactor accidently oops
2024-01-14 18:03:20 +03:00
hayaunderscore e1f821e121 Localskins on replays 2024-01-14 14:18:01 +01:00
Alug 9c6f720f11 Revert "change this"
This reverts commit 25bc55730e.
2024-01-14 14:14:54 +01:00
indev c45aec4634 Merge pull request #87 from riomccloud/patch-1
Delete org.srb2.SRB2Kart-Saturn.metainfo.xml
2024-01-13 20:04:37 +03:00
riomccloud 7e11bbb5ca Delete org.srb2.SRB2Kart-Saturn.metainfo.xml 2024-01-13 12:18:45 -03:00
Alug 2520626082 more cleanup of things i missed 2024-01-13 13:12:55 +01:00
indev 0a6a40741b Don't reload addfilelocal'd files if md5 matches 2024-01-12 14:55:40 +03:00
indev b7ffaf4243 Warn about possible crash for vanilla when failing to spawn mapthing 2024-01-11 20:13:13 +03:00
Alug 5e3b6a753e update some comments 2024-01-11 12:30:29 +01:00
Alug e03a17869e add some comments 2024-01-11 12:27:10 +01:00
Alug a1f7914c5e more cleanup 2024-01-11 09:51:58 +01:00
Alug d2a361c250 remove unecessary glActiveTexture calls 2024-01-11 09:06:23 +01:00
Alug b082f71ca7 change this back 2024-01-11 08:42:56 +01:00
Alug cdef315866 fix software more crash 2024-01-11 01:09:51 +01:00
Alug ad87f7f895 dont initialize this to 1
oopsie
2024-01-11 00:51:19 +01:00
Alug f5b4d7c314 small cleanup 2024-01-11 00:39:20 +01:00
Alug f7b8c5b3ac move this 2024-01-10 14:16:09 +01:00
Alug fc34fd708c fix lighttable batching issues
ugh
2024-01-10 14:14:46 +01:00
Alug 61897cdc4a bleh 2024-01-10 13:40:14 +01:00
Alug 1be27dc868 more smol changes 2024-01-10 13:38:30 +01:00
Alug 558963c57c Use GL_LUMINANCE8 for 3d palette lookup texture on OpenGL versions older than 3.0 2024-01-10 13:27:25 +01:00
Alug fba1c11861 fix 2d draw brightness issue + fix some other things 2024-01-10 13:26:29 +01:00
Alug 2c69f67d39 Decrease the amount of texture clearing when switching palette rendering state 2024-01-10 12:53:38 +01:00
Alug f4ded02c23 change some thing + cleanup
also changed added nearestpalettecolor
its entirely backwards compat
but works better for the pal lookup in pal rendermode
2024-01-10 12:48:13 +01:00
Alug bb24b767a6 we need this stuff but do it like new palshader 2024-01-10 10:57:29 +01:00
Alug 0ef4edc257 Fix Pal water shader
TODO: make this not half the pal shader again
2024-01-10 10:48:59 +01:00
Alug f8979ed80a forgor 2024-01-10 10:47:05 +01:00
Alug 3635d4adb1 Fix Flashpal toggle 2024-01-10 10:42:30 +01:00
Alug f3e23ad621 WIP: redo palette rendering
TODO: alot of cleanup from the old
but from quick testing this seems to actually work

tho since we dont have a preprocessor we still have to "switch out" the shaders at runtime

also didnt bother with any special toggles yet

needs alot of testing
2024-01-10 10:10:34 +01:00
Alug 4881471a6a just show text instead of miscoloured boxes 2024-01-09 14:27:13 +01:00
Alug 69ffee271d fix some things 2024-01-09 14:20:01 +01:00
Alug 088c250a19 use og values for pal 2024-01-09 14:19:50 +01:00
Alug 2321e4aa7f use og values for pal 2024-01-09 13:38:35 +01:00
Alug 25bc55730e change this 2024-01-09 12:23:43 +01:00
Alug 57cee31279 change all gamma stuff + add more options and change more things
uhhhhhhhhh
2024-01-09 12:11:42 +01:00
indev c4bb4965e1 Better check for 32 bit windows in I_ReportSignal 2024-01-08 23:35:34 +03:00
indev f1e146906a Mention crash log in crash popup 2024-01-08 23:14:22 +03:00
indev 6304a46c84 Allow setting 'none' or nil to mo.localskin and player.localskin 2024-01-08 19:06:31 +03:00
Alug 32cc37a424 update credits 2024-01-08 09:56:14 +01:00
Alug 7242c3c778 fix compiler warning
ugh
2024-01-08 08:58:55 +01:00
Alug 07481fc2aa sleepy moment 2024-01-08 08:52:20 +01:00
Alug 77577530da menu stuff 2024-01-08 08:50:08 +01:00
Alug 213718d1bd add toggle to be able to either rotate just players or everything
you can either just having Players be rotated on slopes, or every mobj

more customizable and also for performance concerns for some
also some stuff i forgor
2024-01-08 08:34:32 +01:00
Alug 9bf10bf35b make new cvar "spriteroll" for sprite rotation disable
so stuff that uses spriterotation can still be used when slope rotation is toggled off
better for some effects
2024-01-08 08:29:58 +01:00
Alug cb0c75e9a8 dont do anything if sloperoll is disabled
well it still precalcs some things, but only on gamestart which is needed since we cant reeinit sprites everytime we change sloperoll
2024-01-08 08:09:43 +01:00
Alug cf78516c77 use fudge defines + remove wall and floor doom_colormap shader
both are now consilidated ( i have no idea how to spell that) into doom_colormap shader
2024-01-06 08:13:24 +01:00
Alug 39489fc6f1 use srb2´s sky shader
also its finally a defined shader now + move default fragment shader to the top
2024-01-06 08:12:20 +01:00
indev 910e20b542 Fix flipped objects having wrong slope roll angle 2024-01-06 03:13:49 +03:00
Alug 7f78873a8a Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2024-01-06 01:07:54 +01:00
Alug 26938c20db fix 3d model offsets when flipped 2024-01-06 01:07:48 +01:00
indev 8562c9ad7d Hide ping when showhud is set to Off 2024-01-06 01:04:46 +03:00
Alug fbe0776b43 fix inline warnings 2024-01-05 22:03:32 +01:00
indev d81640c57e Fix hud offsets for position number, also refactor offsets definition a bit 2024-01-05 19:04:13 +03:00
Alug 619fe7bdaf fix menu fade screen background using wrong things in palshader 2024-01-05 01:24:43 +01:00
Alug 05b74102c0 little changes to palshader
use gl_texture 2 in postprocess like srb2s palshader does it
also disable depthtest for screentextures in palshader mode
2024-01-05 01:24:38 +01:00
Alug 5d699d4cf3 revert this 2024-01-05 01:24:31 +01:00
Alug 17c4a35df5 change order of those 2024-01-05 01:24:23 +01:00
indev 191dfbe1bd forgor 2024-01-03 22:01:36 +03:00
indev 8b06822092 change set_text to set_boolean for cv_amigafilter onchange function 2024-01-03 21:59:55 +03:00
indev e4bef0e3f4 Fix amigafilter 2024-01-03 21:39:17 +03:00
indev d5ccf6cad0 Update org.srb2.SRB2Kart-Saturn.metainfo.xml 2024-01-03 10:43:09 +00:00
indev c755a4d8b6 Not all filenames are at least 256 characters long aaaa 2024-01-03 13:32:06 +03:00
Alug a304229511 Merge pull request #84 from Chearii/Saturn-pitch-roll
Pitch and roll, and slope equivalents
2024-01-02 00:08:59 +01:00
Chearii b55fc95ce8 Remove `camera_tilting from K_RollMobjBySlopes`, and make the divisor a static value 2024-01-01 17:11:25 -05:00
Chearii f2faa87e51 Menu changes and additions.
"Player Distortion" is now "Sprite Distortion" to reflect the additions and changes to the slope-rolling system.
All relevant option names have also been changed.
2024-01-01 14:29:32 -05:00
Chearii d79d754b15 Changes to model rendering
Standard slope rotation is now handled through secondary variables, while the primary ones are used for pitch and roll.
2024-01-01 14:28:02 -05:00
Chearii 1babed3d66 Changes to rotation rendering
Handlers for ``pitch``, ``roll``, and slope equivalents have been added.
2024-01-01 14:26:29 -05:00
Chearii 5ec64e50ef Lots of pitch and roll stuff
``pitch``, ``roll``, slope versions, interpolation, and ``P_RollPitchMobj``
2024-01-01 13:26:17 -05:00
Chearii 793e8bfdcb Add `K_RollMobjBySlopes` and spark and trail rolling 2024-01-01 13:22:56 -05:00
Chearii 7a4d5ac1c1 Add `cv_sparkroll` 2024-01-01 13:21:23 -05:00
indev 09c5baa899 Merge branch 'compilation-warnings-fix' of ssh://github.com/Indev450/SRB2Kart-Saturn into compilation-warnings-fix 2024-01-01 18:48:26 +03:00
indev ea6506f9f4 Remove attrpack from GLPatch_t so its alignment is same as for patch_t 2024-01-01 18:48:19 +03:00
Alug 5dd7e548c0 fix warning in discord.c 2024-01-01 16:22:30 +01:00
Alug b0928f3601 fix compiler error 127
seems like stuff for UPX aint even there or smth

make: upx: No such file or directory
make: [Makefile:610: ../bin/Mingw/Release/srb2kart-saturn.exe] Error 127 (ignored)
2024-01-01 04:23:50 +01:00
Alug 728cf1eca9 switches should have default i think ug 2023-12-31 03:46:07 +01:00
Alug 9a1883cd66 duh 2023-12-31 03:01:03 +01:00
Alug 78ff158cb5 fix %zu warning with PRIuPTR X)
i hope that works lul
2023-12-31 00:03:12 +01:00
indev 02b42e4dbb Revert "Attempt to fix %zu warning"
This reverts commit 82083827ff.
2023-12-31 01:47:31 +03:00
indev 82083827ff Attempt to fix %zu warning 2023-12-31 01:44:41 +03:00
indev 571ea6fbc9 Fix 'missing braces around initializer' warning 2023-12-31 01:15:02 +03:00
indev 8af4a67f5e More warning fixes 2023-12-31 01:01:03 +03:00
Alug 2bc6c77fce noone cares about c90 mixed declarations lmao 2023-12-30 21:51:02 +01:00
indev 87d9f09f72 Fix most of compilation warnings 2023-12-30 16:53:45 +03:00
indev ea49c2a557 Fix 'Add local skins...' position in pause menu for remote admins 2023-12-29 20:58:39 +03:00
indev 772bcf2125 Merge branch 'gl-noencore-effect-fix' of ssh://github.com/Indev450/SRB2Kart-Saturn into gl-noencore-effect-fix 2023-12-27 17:28:45 +03:00
indev 6748d5ad30 Remove unneeded condition for encore remap in opengl renderer (consistency with software renderer) 2023-12-27 17:28:02 +03:00
Alug 81a8fc3daa move this out of gr_backsector 2023-12-27 15:02:57 +01:00
Alug 04ba08a825 move noencore out of fof stuff
idk if this is right lmao
2023-12-27 14:23:40 +01:00
Alug 647641214a try and cleanup sector special comments a little 2023-12-27 13:30:09 +01:00
indev 9eff693d00 Fix noencore effect not working for walls in opengl renderer 2023-12-27 15:18:06 +03:00
Alug 8e6023d850 invert encore remap is 12 not 15?
is it?
2023-12-27 13:11:08 +01:00
Alug ca288b89b3 why do that twice? 2023-12-27 13:10:48 +01:00
indev 0e12ad0189 Fix HWR_DrawFill ignoring transparency levels 10-13 2023-12-24 21:40:15 +03:00
Alug c163f25319 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-12-24 18:54:16 +01:00
Alug a926cdf7c1 add translucency support to V_Drawfill
ayeyeerasyedasaedysase

i really hope the software version doesent break aaaaaaaaa
2023-12-24 18:54:10 +01:00
indev 134364eee3 Always load vanilla musicdefs 2023-12-24 20:51:16 +03:00
Alug 142d678e8c oops 2023-12-23 20:42:11 +01:00
Alug 86394e2c43 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-12-23 20:36:41 +01:00
Alug 405de4e597 remove asm leftovers - profiling stuff 2023-12-23 20:36:35 +01:00
indev 1a6893289c Remove p5prof.h from src/CMakeLists.txt 2023-12-23 22:29:02 +03:00
indev 3297a885eb Remove args.h from src/CMakeLists.txt 2023-12-23 22:24:13 +03:00
Alug 590440ff82 make palshader a little more accurate 2023-12-22 22:54:33 +01:00
Alug 37187c7753 fix pal water shader 2023-12-22 20:20:06 +01:00
indev 1b8b92925a Add files for flatpak package (by riomccloud) 2023-12-22 15:51:05 +03:00
Alug b87b55ec45 fix compiler warning 2023-12-21 13:42:05 +01:00
Alug 0a38a2fd89 forgor to add ping display stuff to menu
someone pls make a better tooltip i bed ingles
2023-12-21 13:41:52 +01:00
Alug ea3fc8f526 Kart v1.0/srb2 styled fps counter option
this was so much pain for whatever reason lmao
2023-12-21 13:41:13 +01:00
Alug bccc79fe4b Kart v1.0/srb2 ping display option
well i adjusted it a little and made it compatible with the frame ping stuff
just hope the bar stuff is right but seemed so
also changed it so the numbers are right alignent so they dont go out of screen
aaaa
2023-12-21 12:06:31 +01:00
Alug 2a6f551f7a fix compact fps counter screwing up ping counter offsets in tab rankings
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2023-12-21 10:31:45 +01:00
Alug f7f3b6497b fix palshader compiler warning + other stuff
asdfgfagregar
set a gl special state instead of using the boolean in r_opengl
also move hwr_ code out of setshaders
2023-12-21 10:08:57 +01:00
Alug 0dca9f9537 use the bool
brap
2023-12-21 09:22:19 +01:00
Alug d07e7ade4a this does absolutely nothing
leftover from porting musictest
2023-12-21 09:18:20 +01:00
Alug 8dcdbecf0c fix may be unitialized warning 2023-12-21 09:01:27 +01:00
hayaunderscore c7c645de00 Portal code cleanup 2023-12-21 08:27:38 +01:00
hayaunderscore 23c7aaeff2 Some hardware renderer cleanup
GRAH WARNINGS
2023-12-21 08:27:34 +01:00
indev cdde33843e Refactor localskin command a bit, get rid of args.c since it is unused 2023-12-20 22:34:47 +03:00
Alug ca47e2edb7 Merge branch 'Saturn-Next' into Saturn 2023-12-20 18:21:57 +01:00
Alug 54ed45f531 remove pal postprocess shader
it never worked, and isnt the right one to do things anyways
the normal GLSL_PALETTE_FRAGMENT_SHADER already does a good job as a postprocess shader, and works similar to srb2´s newer paletterenderer branch
2023-12-20 17:38:20 +01:00
Alug 6ca2087dbc better wall and floor colormap calc
values taken from based on https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1516
2023-12-20 05:53:36 +01:00
Alug 51166640f5 proper water shader for palette renderer
based on https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1516
2023-12-20 05:15:27 +01:00
Alug ed3b1ea353 use floor light for fog shader
how it should be
2023-12-20 04:02:15 +01:00
Alug 8555d38283 v5.1 2023-12-19 20:54:46 +01:00
Alug d66f7fb369 forgor to add those 2023-12-19 20:20:42 +01:00
Alug 7818f17b27 show localskin option menu in options even when youre host
this is not the pause menu one, but the options one
since some may still want to apply a localskin to a player for some reason
2023-12-19 20:09:48 +01:00
Alug dd833097b3 fix some colour hud stuff not being greyed out if its unavailable 2023-12-19 20:08:20 +01:00
Alug dddb88db92 timeout sticker uses wrong patch 2023-12-19 19:04:05 +01:00
Alug 769d93c7da dont prep shaders if theyre uneeded 2023-12-19 17:38:13 +01:00
indev 661dfde6af Don't print discord username in streamer mode at all since discriminators are not a thing anymore 2023-12-18 22:04:41 +03:00
indev 71dea0161d Only warn about custom master server when failed to connect to it 2023-12-18 14:15:01 +03:00
indev 37e9f54af9 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-12-18 02:47:56 +03:00
Alug 5651219d2f Merge branch 'Saturn' into Saturn-Next 2023-12-18 00:47:12 +01:00
indev c544cf9a7c Fix static memory being re-tagged as purgable
Fixes crashes caused by lua-cached patches becoming invalid, may fix other crashes related to that
2023-12-18 02:45:40 +03:00
Alug 69c10365e5 menu stuff is the worst 2023-12-17 21:04:54 +01:00
Alug 040faa4c1c Merge branch 'Saturn-Next' into Saturn 2023-12-17 13:29:30 +01:00
Alug 640934634d fix typo 2023-12-17 12:45:13 +01:00
Alug 9842815557 fix compiler warning 2023-12-16 19:11:54 +01:00
Alug 4d19769dd0 you forgor this X) 2023-12-16 14:55:26 +01:00
indev dd75012982 Simplify calculating transparency flags a bit 2023-12-16 11:36:16 +03:00
Alug 9d48ac5bad hide fpscounter when you hide the hud
this was so absolutely annoying sometimes lmao
2023-12-16 07:04:01 +01:00
Alug 0dc8f320a9 make fps counter and ping display also translucent 2023-12-16 07:03:37 +01:00
Alug c9e96949a3 v5 2023-12-15 23:34:53 +01:00
indev 2d70bd0c73 Merge pull request #83 from Indev450/gl3mipmaps
make mipmaps less stuttery
2023-12-16 00:37:34 +03:00
indev 3949add6af Fix NOHW compilation 2023-12-16 00:31:28 +03:00
indev b87eeaa873 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-12-16 00:21:21 +03:00
Alug b56402a0a9 software sprites should do the same as opengl
no idea why it even was like that tbh

sliptiding was not toggable here

Fixes https://github.com/Indev450/SRB2Kart-Saturn/issues/82
2023-12-16 05:31:49 +01:00
indev b1a47f164e Fix birdmod map-music-resume feature not working in cases when you use grow with invincibility 2023-12-16 00:21:09 +03:00
indev 7fa0820a93 Merge pull request #81 from Indev450/hflip
FF_HORIZONTALFLIP and mobj->mirrored
2023-12-15 00:53:01 +03:00
Alug f2ad6199bf experiment: change max LOD to 16
suprisingly, this made stutters even less for some reason, will need to test things
2023-12-13 01:04:12 +01:00
indev 14f0e70a9b Retreive OpenGL version only once at startup 2023-12-13 00:31:49 +03:00
alufolie91 58147117be gl 1.4 and gl2 can use GL_GENERATE_MIPMAP
uhhhhhhh
2023-12-12 11:12:23 +01:00
Alug 5c4e00694a uh oops
accidentally broke polyobjects
2023-12-12 09:26:49 +01:00
alufolie91 8d123f5e83 use the old thing when gl version below 3.0
also should compile for those with gl version lower than 3 hopefully

uhhh idk if this even is right at all tbh
2023-12-12 08:25:59 +01:00
alufolie91 d78fb05be0 use glGenerateMipmap instead of gluBuild2DMipmaps
as advised by https://www.khronos.org/opengl/wiki/Common_Mistakes#gluBuild2DMipmaps

fixes the godawful stuttering everywhere with mipmaps enabled
2023-12-12 07:50:23 +01:00
alufolie91 b9124e717d i slep
Zzz...
2023-12-12 06:35:48 +01:00
alufolie91 84c2721d8b disable here instead of in function itself 2023-12-12 04:56:22 +01:00
Alug 1569ec7a8b shrug 2023-12-11 14:51:08 +01:00
Alug f741c3ff17 eee 2023-12-10 17:13:54 +01:00
Alug ff31eb7d17 Zzz... 2023-12-10 17:07:00 +01:00
Alug 52b5db7ad0 use hwr_useshader also in palshader
this ensures palshader stuff can only do things when shaders are on AND availible
2023-12-09 08:14:33 +01:00
Alug f10608ea2c smh 2023-12-09 07:52:47 +01:00
Alug 364eb1b0c8 clean up a little + add some comments 2023-12-09 07:52:11 +01:00
Alug 0e2d793a7a add HWR_UseShader bool for shader stuff
just to make things look neater
2023-12-09 07:42:13 +01:00
Alug 9b8c569c9e reorder things a little 2023-12-09 07:38:12 +01:00
Alug 9402a006f4 FF_HORIZONTALFLIP and mobj->mirrored
from: https://git.do.srb2.org/STJr/SRB2/-/merge_requests/987
2023-12-07 18:35:27 +01:00
Alug 6aae3d5f90 more accurate transparent fof plane brigthness for palrendering mode 2023-12-07 17:54:27 +01:00
Alug b5cdc0ca94 just use simple boolean for flashpal
more sane than whatever tf it was before
2023-12-07 00:13:45 +01:00
Alug 28c0339261 a 2023-12-06 23:31:46 +01:00
alufolie91 d7cb89a232 Merge remote-tracking branch 'origin/hayaautoload' into Saturn-Next 2023-12-06 23:29:31 +01:00
hayaunderscore 98b132fcc4 use partialaddwadfile for addon autoload 2023-12-06 17:25:26 +01:00
alufolie91 37377a42e6 postload 2023-12-06 17:25:20 +01:00
hayaunderscore 088f1800ff AUTOLOADING HECK YEAH 2023-12-06 17:24:54 +01:00
alufolie91 a96fb7d247 prevent tab rankings from crashing when map has no name
thought i already did that lol
2023-12-05 22:18:32 +01:00
Alug ca30725f8d more stuff 2023-12-05 01:37:10 +01:00
Alug 6d8337dbad more zzz... 2023-12-05 01:21:50 +01:00
Alug 6a8360ab46 revert R_PointOnSegSide
no idea, was just guesswork and might actually slow things down so i revert it
2023-12-05 01:11:39 +01:00
Alug ddeb438a29 clean up colour hud a little 2023-12-05 01:06:41 +01:00
Alug 11fdaf1515 lol 2023-12-05 00:50:33 +01:00
Alug 7c68d50548 move stuff in pause menu Zzz... 2023-12-05 00:45:13 +01:00
Alug c81a434f0b was a bit ugly 2023-12-05 00:25:27 +01:00
alufolie91 c88f3dc302 Revert "Port Prevent dropped ticcmds due to interp timing jutter from srb2-next"
This reverts commit fed1b23b8b.
2023-12-04 23:51:24 +01:00
alufolie91 ffb22a954f forgor some of those 2023-12-04 23:46:20 +01:00
hayaunderscore 31f9937d7e Fix horizon lines not rendering with portals + fix portal wall z-fighting 2023-12-04 10:28:29 +01:00
Alug 1abdc6c747 Revert "Fix horizon lines not rendering on levels with portals"
This reverts commit ccb2c4ef18.
2023-12-03 22:36:28 +01:00
indev 122cb918a1 Merge pull request #80 from Indev450/musictest
Musictest
2023-12-03 14:30:39 +03:00
hayaunderscore a92f05b864 MUSCINFO
separate lump for music test stuff
2023-12-03 02:39:16 +01:00
alufolie91 a457bc4187 :chonkbuncle: 2023-12-02 22:51:55 +01:00
alufolie91 bb5b888aef Merge branch 'Saturn-Next' into musictest 2023-12-02 21:24:52 +01:00
alufolie91 2797fa9a05 add global toggle for bird music things + move stuff to s_sound
well reason a global toggle is, cause stuff always does stuff even when "disabled" and i cant be assed trying to unmangle this mess

like this we can just turn off everything and game behaves like vanilla

default is off so everythings disabled

if someone wants to do a better approach go ahead
2023-12-01 19:14:15 +01:00
alufolie91 7d5c63d8ee assign bool instead of if else thing 2023-12-01 16:39:47 +01:00
alufolie91 39b70b3686 add drawstretchypatch lua support 2023-12-01 16:13:45 +01:00
alufolie91 34933fdf82 optimise span drawers a little 2023-12-01 15:25:47 +01:00
hayaunderscore ccb2c4ef18 Fix horizon lines not rendering on levels with portals 2023-12-01 09:38:09 +01:00
alufolie91 ea5ac63e0f a 2023-12-01 09:36:40 +01:00
indev de04223443 Merge pull request #78 from Indev450/opengl-polyobj-nozcalloc
Opengl polyobj nozcalloc
2023-11-30 20:13:17 +03:00
indev 20467bdc1e Merge pull request #79 from Indev450/anigif-optimization
Optimize gif recording in opengl a bit
2023-11-30 20:12:50 +03:00
alufolie91 fc458128cf show file of where the music comes from + toggle
ty indev c:
2023-11-28 11:42:46 +01:00
Alug e57ad13004 align stuff proper + make it kart menu blue 2023-11-28 09:39:02 +01:00
alufolie91 88e8c0541b show some music info on bottom right when playing in music test
also allows the game to read "usage" from musicdefs
2023-11-28 07:34:03 +01:00
indev 2a3a63ca28 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-28 01:46:43 +03:00
indev c2ddac2c1e Allow using localskins for any kind of mobj from lua 2023-11-28 01:46:28 +03:00
alufolie91 9de9b72940 do the same for lighttable tex 2023-11-27 22:34:02 +01:00
alufolie91 4cb3b5bc0d fix hudcolor when returning from time attacking 2023-11-27 22:28:28 +01:00
alufolie91 dc190be6b3 Zzz...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2023-11-27 21:58:28 +01:00
alufolie91 0373b19269 hopefully fix older hardware crashing even if they dont use palshader
also guard the last InitPalette, we do not need to call it if we dont use palshader

also if either pglTexImage3D or ltcachetail->id is null, the game wont crash now, instead returns, and turns off the palshader so all should work hopefully
2023-11-27 21:46:18 +01:00
Alug 3610096c35 this always annoyed me
why was it always offcenter like that?
2023-11-27 19:05:17 +01:00
Alug 2b75d0b26b replace those with gl error messages instead 2023-11-27 18:35:38 +01:00
Alug a27dc33e25 1 extra row
hope this right lul
2023-11-27 15:58:13 +01:00
Alug 3718c5bd51 fix small gap on some resolutions 2023-11-27 15:45:44 +01:00
Alug a256e170ab fix interpolation speeding things up + make box wider 2023-11-27 15:37:22 +01:00
Alug 2009ed38f0 we dont have that stuff so remove it 2023-11-27 15:19:21 +01:00
indev 7599d9ddd4 Fix assigning null character out of string bounds 2023-11-27 17:06:38 +03:00
indev 0907c219af Change maximum string length for name in music test 2023-11-27 16:57:38 +03:00
indev 0ae1f2606f Merge branch 'musictest' of ssh://github.com/Indev450/SRB2Kart-Saturn into musictest 2023-11-27 16:49:54 +03:00
indev 2abb65403f Make music names in music test scroll 2023-11-27 16:49:48 +03:00
alufolie91 223e858d00 musictest should return you to music options menu 2023-11-27 14:25:26 +01:00
alufolie91 2769847c90 remove unused things + move stuff around
e
2023-11-27 14:13:15 +01:00
alufolie91 0fc3d9d4d6 do NOT change how sound freeslotting works
reasons
2023-11-27 14:03:54 +01:00
alufolie91 d6702be08b make it its own thing, add back normal sound test 2023-11-27 13:58:35 +01:00
alufolie91 d41c7bedd8 port musictest from srb2 + making it not crash
thing is super ugly, also replaces current sound test for now, which needs to be fixed
2023-11-27 13:23:53 +01:00
alufolie91 d0f9993385 add more stuff to experimental video menu + smol cleanup
might aswell add the other things
2023-11-27 06:09:02 +01:00
Alug caf05f5923 e 2023-11-27 05:48:02 +01:00
Alug cc996759be add stuff the experimental video stuff
idk description could be better but i suck at writing lmao

those three things were introduced back in v.5.3  internal (before release) which was the version which had some performance regression

those were looked into and from my testing saturn often performs better than vanilla

however those features still may tax computers from others, so i decided to make toggles for those things
2023-11-27 05:35:20 +01:00
Alug 51de2a4610 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-27 05:21:31 +01:00
Alug e15c9558fa toggle for slope midtexture pegging fix
also fixes a wrong ESLOPE ifdef
2023-11-27 05:21:26 +01:00
Alug 29edb49861 toggle for slope midtexture pegging fix 2023-11-27 05:20:33 +01:00
Alug 7ce3d0c733 add toggle for texture zfight fix 2023-11-27 04:40:13 +01:00
Alug fb8cdbb9cc only do it like that in pal rendering mode 2023-11-27 04:23:28 +01:00
Alug 882554a3fe splitwallfix toggle
idk maybe some still get worse performance from this
2023-11-27 04:10:39 +01:00
indev 40a8554cc9 Attempt to fix rare 'server player kick' bug 2023-11-26 23:52:07 +03:00
alufolie91 146a80e91c Dont mark this shit as modify doofus 2023-11-25 10:38:24 +01:00
hayaunderscore b533dbee55 Localskin support probably 2023-11-25 10:37:48 +01:00
hayaunderscore 3ede4eb1a6 Remove this dumb debug print 2023-11-25 10:37:43 +01:00
hayaunderscore 5813c2b3c3 Experimental SPRTINFO support
Based of leftover code from patch rotation
2023-11-25 10:37:35 +01:00
NepDisk 2b1dc82bfa Fix complilation due to menu code 2023-11-25 00:55:29 +03:00
NepDisk 0b59c156a0 Merge branch 'cleanedupcharpicker' into stacking-dev
Merge the new character select menu I created
2023-11-23 08:58:27 +01:00
NepDisk 03fb7fd145 Oops forgot to remove this 2023-11-23 08:58:04 +01:00
NepDisk f99e516e63 SkinSearch command. 2023-11-23 08:57:55 +01:00
Alug f62642f855 your hudcolor choice should overwrite everything else
also "fixes" the splitscreen issue thats been mentioned,
now whichever hudcolor you choose gets applied, regardless of splitscreen or if you sswitch viewpoints
2023-11-22 20:54:19 +01:00
NepDisk 3adad0ed18 Add Saturn peeps to credits :D 2023-11-22 09:10:26 +01:00
Alug 429976faf8 a 2023-11-22 08:27:16 +01:00
Alug 1d40c26fd9 make players snap when looking back and using sloperoll
always looked a bit weird tbh
2023-11-22 06:47:42 +01:00
indev 4c730ec84d Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-22 01:48:59 +03:00
indev 2d25fabe64 Fix few missing packet type names in d_net.c 2023-11-22 01:48:41 +03:00
Alug 095ec063fb spriteoffsets should be 0 + a little more oraganized 2023-11-21 22:22:03 +01:00
NepDisk ab8d3e2642 Change default offset so stat display doesn't go over mr 2023-11-21 19:41:59 +01:00
Alug cbd59a04f6 toggle for localskin menus
well wanna be able to toggle things
2023-11-21 17:34:07 +01:00
Alug e49e6b8998 toggle for playing music while paused 2023-11-21 17:02:10 +01:00
alufolie91 02cd4e753d make software horizonlines also extend fofs 2023-11-20 22:40:41 +01:00
indev d06f923066 Fix filesearch trying to open file symlinks as directory 2023-11-20 16:10:02 +03:00
Alug bb9f7c8196 also hide the other localskin menu in option menu when youre server 2023-11-19 08:46:34 +01:00
Alug bf2c786a02 make pause menu look more like vanilla now that some things get disabled
I HATE MENU CODE AAAAAAAAAAAAa
2023-11-19 08:02:13 +01:00
alufolie91 7d66da2b94 lol 2023-11-19 06:43:29 +01:00
hayaunderscore f346f075ee Fix localskin options not being available for server admins 2023-11-19 06:10:53 +01:00
Alug 38c612a752 add "find" command to search for for cvars
its better than "help", more organized and it shows any variable containing what you searched for

from https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2217
2023-11-19 02:27:42 +01:00
Alug d77ccd0dfc fixeur symlinks
i hope
2023-11-19 01:28:28 +01:00
Alug 7ba146b4ff Improve file search performance on Linux and FreeBSD
from: https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2198
2023-11-19 00:56:18 +01:00
Alug cf8ef69fed fix an overflow crash in terminal lul
could hold down the a key before and make the game crash

from https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2206
2023-11-19 00:51:27 +01:00
indev 2f5b894c47 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-18 19:41:06 +03:00
indev e248b85380 Apply translucenthud for the VIEWPOINT text 2023-11-18 19:40:58 +03:00
NepDisk 84cc8d10a7 Quick bug fix for pages 2023-11-18 06:18:07 +01:00
NepDisk 0b4e70faf3 perfstats for PreThinkFrame and PostThinkFrame plus small rewrite 2023-11-18 06:14:03 +01:00
alufolie91 78018e1f78 I_SetSongTrack(int) should be I_SetSongTrack(INT32)
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2213
2023-11-18 05:13:04 +01:00
alufolie91 7a2f925078 Make module music volume more accurate
from https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2215
2023-11-18 05:09:45 +01:00
Alug ec1123251f fix sliptide toggle for 3d models 2023-11-17 23:45:17 +01:00
Alug cc408cc859 fix not being able to close warning screen when a mod spams warnings
lmao
2023-11-17 23:28:53 +01:00
Alug 16f8299c4a fix admin menu stuff
uuuuhhh
2023-11-17 20:48:27 +01:00
alufolie91 10953dbb3a add toggle to hide player ip addresses in nodes or listplayers command
also add "listplayers" command, which is pretty much the same as "nodes" but with colors and it looks better

tho kept "nodes" command just in case its needed for smth
2023-11-17 20:29:07 +01:00
NepDisk 49aaa25255 Mouse Controls for saturn 2023-11-17 18:10:14 +01:00
indev ccbb894a6b Remove repeating code in VHS effect 2023-11-16 21:16:56 +03:00
indev 54542031a1 Fix the opengl VHS effect on linux 2023-11-16 20:20:49 +03:00
NepDisk ff04b83ec0 English (UK) 2023-11-16 18:06:35 +01:00
NepDisk b03faeff25 Do highresportaits for saturn specfically 2023-11-16 18:06:29 +01:00
alufolie91 d1becfcf0c this is better
like srb2 does it, but kk forgor
2023-11-16 17:19:13 +01:00
Alug 3c078c6676 uhh should be fixed_t or not? 2023-11-16 03:23:17 +01:00
alufolie91 4e6dc92033 fix "Resynching..." speeding up with interpolation
:p
2023-11-16 03:15:18 +01:00
Alug 8d607594ff add stuff to menu 2023-11-15 23:38:36 +01:00
Alug 71486a4982 opengl vhs effect
im in so much pain
2023-11-15 23:17:42 +01:00
Alug 9ae1f20735 actually only do it if its not centered 2023-11-15 21:24:39 +01:00
Alug 53febafd50 eeh do it later
idk looks better imo
2023-11-15 20:53:25 +01:00
alufolie91 7f7ea2c592 reset camera when joining from spec
camera look never got reset when you enter a game from spec, so if you looked up or down, you also did so ingame lol
2023-11-15 20:47:28 +01:00
Alug dc1dfe0d4d smh 2023-11-15 20:13:19 +01:00
alufolie91 48e3c14d30 hide screentex toggle in software
its an opengl only thing, so no need to toggle if in software mode
2023-11-15 20:09:09 +01:00
alufolie91 16b3687774 forgor 2023-11-15 19:58:13 +01:00
Alug cf101ccc5d add "experimental video options" menu
for a few things that might be interesting for some

also make some adjustments
2023-11-15 19:51:05 +01:00
Alug d04a6ad5ee Add more cvars to menu and lower minimum vote time 2023-11-15 19:45:22 +01:00
NepDisk 840c7ea154 Update speedometer code to refernce new values 2023-11-15 19:39:06 +01:00
NepDisk 268300913d fix for real this time 2023-11-15 19:39:01 +01:00
NepDisk 7a4ef35e7b forgot discord support ugh... 2023-11-15 19:38:33 +01:00
Alug 84140f3faa Revert "why did i remove this back then??"
i saw what this did again
fix for avoiding precip crash, cause precip doesent have that stuff

This reverts commit 2e4e0a8554538c841fb4c7be63449b32365d6bc0.
2023-11-15 10:12:07 +01:00
NepDisk 673a03e033 Stat display enable and disable luahook 2023-11-14 20:59:38 +01:00
Alug 32d4a38b9e just always reset palette regardless
the palshader palette however only gets reset when you enter palshader mode

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2023-11-14 20:06:11 +01:00
Alug 7cc4d1f601 simplify this stuff
idk why i didnt do it like this in the first place tbh

no need for 3 seperate onchanges, i can just do shit like this

all of them pretty much did the same anyways

now the shader and all two palshader toggles reset palette stuff when it detects that youre in palrender mode aaaA
2023-11-14 20:02:07 +01:00
Alug 25e60a9882 ugh toggling shaders also needs to reset palette shit sometimes 2023-11-14 19:35:37 +01:00
Alug 79582ce73d we use them tho its good to future proof just in case 2023-11-14 18:31:19 +01:00
NepDisk 3526a52827 Allow holepunching to be disabled via a new define plus part 2 to masterserver 2023-11-14 18:29:48 +01:00
NepDisk 4b8bc46358 Master server 'b gone. Makes disabling the define actually alone the compile to work 2023-11-14 18:29:34 +01:00
Alug ddd6488b55 Fix typos and reword some stuff 2023-11-14 18:27:20 +01:00
Alug dfccca4026 Add a toggle to cut precip in half
ye this pretty much cuts the weather thinker count in half

since weather spawns all mobjs regardless of distance setting
its  good for ppl who like weather effects but have weaker hardware
2023-11-14 06:08:38 +01:00
Alug d33c1e83de Revert "refactor weather switching"
This reverts commit 873a611b33b0a3ef62633c1e8327c86ab0617655.

eeh i dont trust it tbh
2023-11-14 02:32:56 +01:00
alufolie91 2ffc7293af screw it, revamp the whole thing
blurgh like this theres never a condition where paletteshader shit runs even if you have shaders turned off and stuff
2023-11-13 22:44:23 +01:00
Alug fde184b7a7 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-13 21:52:25 +01:00
Alug 7163194ce9 fixup paletteshader stuff
uaghgegheuaghuagheghg

now every dumb edge case should be covered
and the palette should never turn to garbage if you toggle stuff around
2023-11-13 21:52:18 +01:00
indev ec97111d26 Make K_GetHudColor use player skincolor instead of color cvar when possible. Also fix compilation warning 2023-11-13 21:38:13 +03:00
Alug 6d24d5a44a reset palshader lookup if you toggle the thing
otherwise it can sometimes screw up and show garbage colors when toggling

idk if this is the right way tho
2023-11-13 18:53:56 +01:00
NepDisk 3700dc3bae Fix P-meter speedo not scaling on mobjscaled map 2023-11-13 01:23:44 +01:00
indev 6114bdd9dc Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-13 01:36:01 +03:00
indev 2fe912eebf Fix compilation with NOTHREADS 2023-11-13 01:35:49 +03:00
Alug ccf6840cd5 forgor and fixuer typos :p 2023-11-12 18:21:16 +01:00
alufolie91 955c7f0cfb remove some tooltips for things we dont have 2023-11-12 17:56:59 +01:00
alufolie91 994fd6354f fix kk typo lol
fixes the X symbol with itembox offsets changed
2023-11-12 17:30:08 +01:00
indev 30602a8eb7 Fix crash related to localskins and stat display 2023-11-12 19:10:51 +03:00
alufolie91 2290c1955b oops we dont have that menu lol 2023-11-12 17:04:45 +01:00
hayaunderscore f167db0cc6 Fix weird stutter on grow and invinc music stutters 2023-11-12 17:00:44 +01:00
hayaunderscore 42e04ce981 haya you fucking dumbass
never use mo->player here again
2023-11-12 16:59:15 +01:00
Alug 41cf467f2a Revert "Revert "localskin rework incoming!!!!!""
This reverts commit 25b5e5f510.
2023-11-12 16:58:26 +01:00
alufolie91 2ca7c8178f Implement tooltips for rest of the menus (Aside from HUD and data options)
by @NepDisk ty much
2023-11-12 16:57:38 +01:00
alufolie91 c4d8de471e P-MeterSpeedometer
by @NepDisk thx much
2023-11-12 16:56:52 +01:00
Alug 2a49236914 Fix colourizedhudcolor not respecting your colourized hud choice
make the stuff also grey out in the menu if you disable stuff
2023-11-12 16:43:33 +01:00
Alug fcf0836e7b Fix shadows from sometimes crashing on mapload
this properly fixes the mapchange spam from crashing the game

P_RunShadows, like any other thinker function, should also be called in preticker not just ticker

potentioally also fixes other issues
2023-11-12 16:09:34 +01:00
Alug 284845aad6 Cleanup Splitwall and remove smth we dont need
Perhaps not removing the endpegmul setting to 0 in some cases caused many of those division by zero crashes aswell

since i reverted the stuff relating to this a while back
2023-11-12 02:08:36 +01:00
Alug 44b2937ea1 Avoid a devision by zero in Splitwall and make it static 2023-11-12 01:46:58 +01:00
alufolie91 00c20f7c8c revert this thing
just incase, dont wanna break high res support
2023-11-12 00:39:04 +01:00
alufolie91 e74a28a2c1 Fix old big room fix
no idea what i was thinking
but kart does use viewx and viewy for those originially, so just let me do a 64bit version of R_PointToAngleEx
2023-11-11 22:08:48 +01:00
alufolie91 91ed5c4871 why did i remove this back then?? 2023-11-11 21:38:12 +01:00
alufolie91 7ca88fb131 make it save lol 2023-11-11 21:29:44 +01:00
alufolie91 76047e75d5 Toggle for FOF wall cutoff when slopes
was testing things, so might aswell add this
2023-11-11 21:01:53 +01:00
Alug 25b5e5f510 Revert "localskin rework incoming!!!!!"
This reverts commit 6196185d62.
2023-11-11 17:39:17 +01:00
indev 4377a6d7fe Remove unnecessary Z_Calloc from HWR_AddPolyObjectSegs
Effect is most likely unnoticable but still having less calls to Z_Calloc and Z_Free would be better
2023-11-11 18:43:37 +03:00
indev 5cfe9a4c4e Optimize gif recording in opengl a bit 2023-11-11 18:27:24 +03:00
Alug b5f90ab5b9 Merge branch 'Saturn-Next' of https://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-10 22:37:48 +01:00
Alug badf395dad Remove WIndows shake thing
noone likes it
also theres been reports of this thing triggering false positives in anti viruses
2023-11-10 22:37:40 +01:00
indev 1e13abea19 Attempt to fix the rewrite bug 2023-11-10 18:59:58 +03:00
alufolie91 ca08c7b6e4 Merge remote-tracking branch 'origin/hayathings' into Saturn-Next 2023-11-10 16:24:35 +01:00
alufolie91 d427cd60b2 fix merge conflicts 2023-11-10 16:22:49 +01:00
hayaunderscore f29240f3e8 FUCKING TYPO 2023-11-10 16:16:24 +01:00
hayaunderscore 6196185d62 localskin rework incoming!!!!! 2023-11-10 16:16:07 +01:00
alufolie91 ba825cf688 Fix some issues 2023-11-10 16:16:02 +01:00
hayaunderscore cbbc356386 yeah yeah yeah 2023-11-10 16:15:43 +01:00
alufolie91 62cc95da95 Tooltips....
WIP, and only for the Saturn Options for now,,,,,,
2023-11-10 16:15:28 +01:00
indev 48ae18cede Merge pull request #77 from Indev450/stat-display-hud
Stat display hud
2023-11-10 18:11:23 +03:00
Alug cd804c5984 Fix FOFs with transferline flag and many linedefs randomly crashing
linenum could go out of bounds if you use more than 4 linedefs for such setup, hence making the game unable to retrieve textures and therefore crashing the games sometimes

Visually its not perfect, but you shouldnt do it anyways, atleast it wont crash everything now

ty much indev <3
2023-11-10 01:01:24 +01:00
indev c338453ce9 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-09 21:34:53 +03:00
indev 6d5d1a1339 Fix RA ghosts failing to load 2023-11-09 21:34:40 +03:00
alufolie91 953e1734b4 Merge remote-tracking branch 'origin/spriteclip' into Saturn-Next 2023-11-09 18:00:36 +01:00
NepDisk cc01c576a3 move zero down for saturn menu by 5 2023-11-09 19:53:13 +03:00
NepDisk 018bac2be6 Add menus and redo saturn menu offsets so it fits 2023-11-09 19:51:49 +03:00
indev c01bc39659 Add stat display 2023-11-09 11:20:31 +03:00
NepDisk 5d49fd9411 Add shortcuts for current/next map to map command 2023-11-08 23:31:08 +01:00
Alug 23775b6ec0 Fix the gravstretch setting sometimes not saving
I hate this so much but it works
I used the same values the game presented before so the behaviour (hopefully) shouldnt change and like this i atleast can call off "Off"
2023-11-08 23:22:00 +01:00
alufolie91 b8ada40a72 fix highres sprites 2023-11-08 18:55:21 +01:00
alufolie91 58c72ab345 make it actually do something
knew it didnt really work before
2023-11-08 18:46:41 +01:00
alufolie91 143dc55f90 Merge remote-tracking branch 'origin/Saturn-Next' into spriteclip 2023-11-08 18:46:00 +01:00
Alug 227664bd12 Zzzzz... 2023-11-08 17:25:05 +01:00
alufolie91 3ee2e47724 Fix uninitialized reads in PreparePolygon
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1392
2023-11-08 17:24:59 +01:00
Alug 4aa4e235a5 Hide localskin menu stuff when youre the host/offline play
now only shows if you are a player in a netgame
2023-11-08 17:20:21 +01:00
Alug 76521ec0dd make wide lap sticker go back to normal when race is finished 2023-11-08 15:16:51 +01:00
Alug dfae95c7a3 fix the flashpal issue for good 2023-11-08 09:43:13 +01:00
indev 516f9f4941 Merge branch 'Saturn-Next-EnumLib' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next-EnumLib 2023-11-08 02:12:11 +03:00
indev 7054b8658e Fix sprite freeslots behaving differently from vanilla (same as for MT_ and S_) 2023-11-08 02:01:06 +03:00
Alug 44a4275806 Revert "Cache and reuse removed mobjs when spawning mobjs"
This reverts commit e421c1345b.

accidentally merged this lol
2023-11-07 00:40:34 +01:00
alufolie91 a872756992 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next-EnumLib 2023-11-07 00:28:51 +01:00
alufolie91 7a31dffcdc Merge branch 'Saturn' into Saturn-Next
oh somehow this didnt make it into next
2023-11-07 00:23:35 +01:00
alufolie91 e421c1345b Cache and reuse removed mobjs when spawning mobjs
from https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2200
2023-11-06 19:51:16 +01:00
Alug 0f27f573f6 remove asm leftover 2023-11-06 15:52:16 +01:00
alufolie91 52590350fa Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next-EnumLib 2023-11-06 11:58:25 +01:00
NepDisk 67d2673dc0 Add menu option for showing all maps 2023-11-06 11:50:23 +01:00
NepDisk c36564df1e Add toggle for ping icon 2023-11-06 11:49:50 +01:00
NepDisk 4ed6066e97 Ping measurement menu option 2023-11-06 11:49:35 +01:00
NepDisk 4e7a5d1b89 Fix offset looking ping icon in compact
Alug: grrrrrr frame delay measurement users..
2023-11-06 11:48:09 +01:00
indev c70ef22141 Add option to masterserver_debug to not print verbose debug messages in console (errors are still printed) 2023-11-06 13:25:49 +03:00
indev d15f69dfcd Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-06 12:01:04 +03:00
indev 27734387c0 Fix compilation with NOHW and NOOPENMPT 2023-11-06 12:00:47 +03:00
Alug b05eb4d848 paletteshader fix for potatoes 2023-11-06 02:02:20 +01:00
Alug 5e079a3990 Revert "Improve file search performance on Linux and FreeBSD"
This reverts commit 5c54f7dc7a.

smth smth doesent support symlinks
2023-11-06 01:13:58 +01:00
Alug 39964e995d add slopecontrast
same as wall contrast but for slopes
gives slopes a bit more contrast instead of them having the same brightness as everything else
there to clog up the opengl menu even more :p
2023-11-06 01:13:36 +01:00
Alug 8d80118a72 fix ping command showing a random players ms ping instead of your ping
bruh
2023-11-05 22:17:46 +01:00
Alug 5a163be5e8 Fix crash in FixedDiv when passing -2147483648
lul
2023-11-05 21:31:47 +01:00
Alug 429d8620e1 Use nanosleep for I_SleepDuration on *nix
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2184
2023-11-05 21:12:03 +01:00
Alug 5c54f7dc7a Improve file search performance on Linux and FreeBSD
from: https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2198
2023-11-05 21:00:03 +01:00
Alug 153ae53f8c sigh 2023-11-05 18:29:45 +01:00
Alug 95e54e97e5 show gamemap in tab ranking screen instead of gametype
this time functional
2023-11-05 16:51:58 +01:00
Alug 949bbebf7b fix ping stuff with new fps counter shit
goddammit i never do anything when im tired again
2023-11-05 16:29:55 +01:00
Alug ef1eea5ba8 Revert "show mapname instead of gametype in tab ranking"
This reverts commit cb03260e43.
2023-11-05 01:31:34 +01:00
alufolie91 822a55a124 Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next-EnumLib 2023-11-05 01:21:32 +01:00
Gustaf Alhäll d3ea2eb287 Fix FreeBSD build errors 2023-11-05 01:14:11 +01:00
Alug 383b395c78 bruh 2023-11-05 01:11:56 +01:00
Alug cb03260e43 show mapname instead of gametype in tab ranking
who tf needs the gametype the mapname much more useful
2023-11-05 01:08:58 +01:00
Alug e8a92dd836 add a "compact" fps counter option
it just removes the "FPS" text and moves the ping display much further down

also dont show it during startup
2023-11-05 00:16:18 +01:00
alufolie91 a6296445da windows 10 and 11 support :trollge: 2023-11-04 23:35:01 +01:00
alufolie91 2658003a1a move this out of NONET compile stuff
was error on my part sry indev :c
2023-11-04 23:31:27 +01:00
hayaunderscore 54c6196412 Fun fact: visual scale already factors for scale
So no need for this!
2023-11-04 23:27:32 +01:00
Alug 4b3989f18c v4 <- when next branch uses old version name lmao 2023-11-04 23:13:53 +01:00
Alug 3b41873893 make the thing compile, remove drmingw stuff from 64bit builds
and properly link libbacktrace

rip in piece drmingw but we got goddamn 64bit crashlogs now c:
2023-11-04 23:09:39 +01:00
Alug a211badb73 Update README.md
bruh this formatting
2023-11-04 21:11:25 +01:00
Alug 262a07ea9a Update README.md
before i forgert that later lmao
2023-11-04 21:10:45 +01:00
Alug ef323c66c7 Update README.md
i most likely forgor smth
but the most important thing was libbacktrace dependency for building the gam,e
2023-11-04 21:07:22 +01:00
indev 74c8b05469 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-11-04 23:00:11 +03:00
alufolie91 8028c285ff Add libs and DLLs for libbacktrace 2023-11-04 21:02:35 +01:00
indev 966b273ecd More information in debug log 2023-11-04 23:00:05 +03:00
Alug bf2eecf9a4 Update README.md
i most likely forgor smth
but the most important thing was libbacktrace dependency for building the gam,e
2023-11-04 20:39:19 +01:00
indev 84d9665467 Bye bye unix-specific backtrace 2023-11-04 22:30:38 +03:00
indev df60b9ceee Try to get full traceback in all builds, or fall back to simple traceback if that failed 2023-11-04 22:00:17 +03:00
indev 37459d3d09 Simple backtrace in non-debug builds 2023-11-03 17:46:36 +03:00
indev 3e0cc1bb48 Use asctime instead of manually formatting time 2023-11-03 15:54:17 +03:00
indev ae5cf2116f Don't use unix-specific functions for libbacktrace crash report 2023-11-03 15:37:31 +03:00
indev 6c1426f1f3 Always include time.h 2023-11-03 15:18:55 +03:00
indev 067ebba4d4 Don't use libbacktrace on win32 2023-11-03 15:12:44 +03:00
indev dc16f8b4a6 Make libbacktrace crash reports append to file instead of overwriting. Add more info into libbacktrace crash reports 2023-11-03 15:04:38 +03:00
indev 9ed348c8a8 Use libbacktrace for crash logs (wip) 2023-11-03 14:11:56 +03:00
Alug 4c5df81dac fixuer localskin stuff
Fixes the Apply to all players and displaying player not working (thx haya c: )

Fixes the Vibrating? player animation speeding up when uncapped in localskinmenu

Make so that the char spin speed respects the setting from saturn options (and add pain support )
2023-11-03 01:22:24 +01:00
indev 0c5a1e95b0 Fix overwriting states too 2023-11-02 21:25:42 +03:00
Alug 3ccf44a0be fixuer localskin stuff
Fixes the Apply to all players and displaying player not working (thx haya c: )

Fixes the Vibrating? player animation speeding up when uncapped in localskinmenu

Make so that the char spin speed respects the setting from saturn options (and add pain support )
2023-11-02 15:02:26 +01:00
indev 6c7131ff80 Fix overwriting mobj slots working differently from vanilla 2023-11-02 03:19:10 +03:00
indev db30a53b23 Merge branch 'Saturn-Next-EnumLib' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next-EnumLib 2023-10-31 20:41:38 +03:00
indev 74ee1fcdd8 Fix few warnings related to lua_glib. Get rid of f32 setters/getters since floats aren't used in lua 2023-10-31 20:40:43 +03:00
Alug ee2bc85fe7 v4 2023-10-31 11:02:12 +01:00
alufolie91 9b3bfaabad Merge remote-tracking branch 'origin/Saturn-Next' into Saturn 2023-10-31 11:01:00 +01:00
alufolie91 3ea80bec60 Merge branch 'Saturn-Next' into Saturn-Next-EnumLib 2023-10-30 21:01:06 +01:00
alufolie91 3f8a227769 comment that out for now
we dont use it yet, so lets not make compiler cry about smth unused
2023-10-30 20:59:38 +01:00
indev 23dce9f5b6 Merge branch 'Saturn-Next-EnumLib' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next-EnumLib 2023-10-30 21:35:53 +03:00
indev 034961c6ed Fix hardcoded actions lookup not working 2023-10-30 21:24:38 +03:00
indev d96389db54 Fix looking up mobj type crashing game 2023-10-30 21:23:55 +03:00
indev 3d1e150b6f Merge pull request #53 from utkumaden/patch-enumlib-fast
[WIP] Patch enumlib to be a bit faster.
2023-10-30 15:06:20 +03:00
indev f59fbf94d3 Remove include for PC_DOS 2023-10-30 14:52:10 +03:00
indev ec897ed7e4 Merge branch 'Saturn-Next' into patch-enumlib-fast 2023-10-30 14:27:06 +03:00
indev 17629ad462 Fix lua state for LUA_EvalMath being recreated multiple times (maybe not the best solution). Also fix segfault in lua_enumlib_mobjtype_get 2023-10-30 14:23:03 +03:00
indev 7993df1be7 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-10-30 12:36:23 +03:00
indev f2b0b8359e Add description for custom lua features 2023-10-30 12:35:57 +03:00
alufolie91 7d7c053fc1 Revert "more sprite rotation anlges = smoother sprite rotation"
This reverts commit 0921eb57c4792fc5cb2b120de04d8905513ae75c.
2023-10-30 08:19:55 +01:00
alufolie91 25398af8f5 add toggle for dark itembox bg
some may dislike how it looks with the colour hud
2023-10-27 18:54:53 +02:00
alufolie91 c98971953c Merge remote-tracking branch 'ball/colorizeditembox' into Saturn-Next 2023-10-26 02:08:11 +02:00
alufolie91 d9739755ce Merge remote-tracking branch 'origin/command-history' into Saturn-Next 2023-10-26 02:07:43 +02:00
NepDisk 895bd2da15 Made this a menu option anyway lololololol 2023-10-25 19:57:46 -04:00
NepDisk 8950e31f4c Colorized Itembox 2023-10-25 19:26:34 -04:00
indev 601928f49f Only add command to history if it differs from previous one 2023-10-24 20:57:42 +03:00
alufolie91 773e243c88 ugh make that save lol 2023-10-23 15:34:38 +02:00
indev 311f3a6cf4 Merge branch 'Saturn-Next' of ssh://github.com/Indev450/SRB2Kart-Saturn into Saturn-Next 2023-10-22 13:00:05 +03:00
NepDisk fed1b23b8b Port Prevent dropped ticcmds due to interp timing jutter from srb2-next 2023-10-22 12:01:14 +02:00
indev 5c2d8f6901 Fix characters with SF_HIRES flag being displayed too big in grid skin select menu 2023-10-22 12:59:25 +03:00
alufolie91 68b88e40b5 smol change 2023-10-21 15:44:38 +02:00
alufolie91 6f3770a54a update the credits and menu
add ppl to credits, and just have less seperation between the ppl that contributed to saturn
move flashpal setting to opengl options
2023-10-21 12:57:55 +02:00
alufolie91 eaf2506b4f almost forgor
respect the menu caps choice
2023-10-21 12:24:12 +02:00
alufolie91 2cec4c8b52 add M_DrawGenericScrollMenu
will most likely need this since saturn menu esp is starting to fill up
2023-10-21 12:12:35 +02:00
alufolie91 7ebccc19db fixuer de typo 2023-10-21 12:06:43 +02:00
alufolie91 797d080df0 Join last server button in multiplayer menu (thx nep c:)
from:  https://github.com/NepDisk/srb2k-planeptune/commit/3f42ca357e16702a47a1197a738d92741b38950f

also now finally works with server browser
2023-10-21 11:42:19 +02:00
alufolie91 7c6b03145d uncap water effects
also caps software heatwave effect since it was sped up with interp

note : waterofs was left out, due to it producing stutters on water surfaces in softwaremode
2023-10-21 03:20:23 +02:00
alufolie91 7b136a62c4 revert this part
well with how some kart mapss are set up, this doesent work out
2023-10-21 03:05:30 +02:00
alufolie91 fec433372d clean up shader stuff a bit
Makes the game not "hard crash" when it fails to compile shaders
Fixes issues with shader leveltime
also fixes an issue where certain textures were blurred with shaders enables
2023-10-21 02:49:14 +02:00
alufolie91 41a827727d Merge remote-tracking branch 'origin/fix-bool-types-w-checkmultiplewads' into Saturn-Next 2023-10-20 22:19:35 +02:00
indev bfd0f0c7c2 Fix wrong boolean constants used in W_CheckMultipleWads. That was causing compilation error on linux, and maybe on other non windows platforms 2023-10-20 15:38:53 +03:00
alufolie91 21c9ae8f7e revert this again
despite what kk says, opengl sdl render hint is so much worse performancewise in software mode.
some of the feedback we´ve gotten on saturn also more or less confirms this
2023-10-20 08:09:07 +02:00
alufolie91 581b503edf Uncap palette lump palettes & allow flashpal palettes to display during pause 2023-10-20 07:45:00 +02:00
alufolie91 d380391d80 Clean up the backtrace code and make it use write() more safely. 2023-10-19 11:15:03 +02:00
alufolie91 ff41393edd Fix segfaults on some systems due to polyvertex being NULL
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2065
2023-10-19 10:46:30 +02:00
alufolie91 654784690e we dont have asm stuff 2023-10-19 10:12:32 +02:00
alufolie91 cd682e3961 Avoid branch prediction slowdowns in bla bla but better
i hope
2023-10-19 09:39:35 +02:00
alufolie91 cd4482dd97 Merge remote-tracking branch 'sdfadfsa/gitlab-ci' into Saturn-Next 2023-10-18 15:11:56 +02:00
hayaunderscore 6eb96a4992 clean up extra.kart and extra2.kart lump checking 2023-10-18 15:03:53 +02:00
Alam Ed Arias 3c3c59928d Makefile: support for Mingw64 toolchain 2023-10-18 00:02:17 -04:00
Alam Ed Arias 01911e4d37 Clear unused-but-set-variable warnings 2023-10-18 00:02:17 -04:00
Alam Ed Arias 37c65ca7e4 Makefile: PREFIX overwrite make's default CC and CXX 2023-10-17 23:14:09 -04:00
Alam Ed Arias cb4ffe6f60 no Dr. Mingw support for Win x64 build 2023-10-17 23:12:14 -04:00
Alam Ed Arias 98f8b49e45 Makefile: support toolchain envs 2023-10-17 22:36:17 -04:00
Alam Ed Arias bf6be522ea GitLib CI: SRB2 2.1 codebase use WFLAGS to control warning flags 2023-10-17 21:46:56 -04:00
Alam Ed Arias 2365ee9cb0 GitLab CI: SRB2 2.1 wants nasm 2023-10-17 21:46:56 -04:00
Alam Ed Arias 16c70e7b29 GitLab CI: Compile the SDL version of Win32 builds 2023-10-17 21:46:37 -04:00
Alam Ed Arias 46f0385566 d_netfile.c: Update libcurl support to 7.88 2023-10-17 21:45:47 -04:00
Alam Ed Arias 579c5ab052 Makefile: Support GCC version 11, 12 and 13 2023-10-17 21:45:34 -04:00
Alam Ed Arias 94e7430dd9 copy gitlib-ci config from SRB2's next 2023-10-17 20:57:14 -04:00
Alam Ed Arias 7fea4894a2 Add support for GCC 13.2 2023-10-17 20:55:26 -04:00
Alam Ed Arias a5b99199fc Clear implicit-const-int-float-conversion warnings 2023-10-17 20:05:48 -04:00
Alam Ed Arias 79e2596ce6 Clear missing-noreturn warnings 2023-10-17 19:57:56 -04:00
Alam Ed Arias 1b82918384 Clear misleading-indentation warnings 2023-10-17 19:56:27 -04:00
Alam Ed Arias 4e9e18df82 Clear unused-but-set-variable warnings 2023-10-17 19:54:07 -04:00
Alug cec92474d2 Add check for "extra.kart" files contents......
make lapcounter bigger when a map has 10 or more laps (needs updated extra.kart),
fixed menu not greying out user defined hud colour
2023-10-18 01:27:37 +02:00
indev 81c555efd9 Fix battle playing wrong ending music sometimes 2023-10-18 01:35:32 +03:00
Alug d8f3dca2fc more sprite rotation anlges = smoother sprite rotation 2023-10-17 22:58:14 +02:00
alufolie91 89576adbcf Merge remote-tracking branch 'origin/Saturn-Next' into Saturn-Next 2023-10-16 02:12:22 +02:00
Alug d9b8bd0b8c Add Colourized Hud Color to menu 2023-10-16 02:12:15 +02:00
Alug 525f1b317c Merge pull request #75 from Indev450/more-colorized-hud
More colorized hud
2023-10-16 02:11:16 +02:00
Alug ac119f9d42 Merge pull request #76 from Indev450/pspawnmapthing-null-check
Add null check into P_SpawnMapThing so game doesn't crash if it fails…
2023-10-16 02:11:10 +02:00
Alug a18af5b3e0 Add toggle for CECHO messages
Well you could turn em off with "cechoflags" before, but this is easier and it also saves
2023-10-16 02:10:12 +02:00
alufolie91 ae87cdc8d9 Show "OVERTIME" in karttimer when overtime occurs in battle
instead of it just showing "00´00´00"
2023-10-16 02:08:18 +02:00
indev f2f324c487 Add null check into P_SpawnMapThing so game doesn't crash if it fails to spawn mapthing for some reason 2023-10-13 01:30:46 +03:00
indev 8cd848e44d Default value for colorizedhudcolor is now called 'Skin Color' 2023-10-12 23:40:11 +03:00
indev d83842df55 Allow selecting hud color via colorizedhudcolor cvar. 'None' means use current player's skincolor 2023-10-12 21:35:18 +03:00
alufolie91 0a0567c311 Add a check if stplyr even exists
cause the game otherwise crashes in some situations
2023-10-12 11:32:48 +02:00
alufolie91 1c067d7eec pls 2023-10-12 00:32:12 +02:00
alufolie91 1b5c155dda Revert " Fix a series of buffer overflows in SOC loading"
This reverts commit 1af9e362e0.
2023-10-12 00:26:16 +02:00
alufolie91 8065761c38 Fix spelling "Colourized Hud" 2023-10-11 18:44:46 +02:00
alufolie91 118bb5b107 unfuck sound stuff
-Fix sound sometimes not unmuting when unfocusing and refocusing the game

- Fix the game not being able to turn sound on when starting the game with sound and music disabled

- Fix the sound toggles looking weird in the menu
2023-10-11 17:21:41 +02:00
alufolie91 d1db73342a lowercase kc_ uhgugugeusg 2023-10-11 12:58:16 +02:00
alufolie91 f3e8630049 fix color hud menu grey out thingie 2023-10-11 12:18:41 +02:00
alufolie91 17b1369085 uh also make it support the small minimap icons 2023-10-11 11:41:39 +02:00
alufolie91 497b7e983e give "libd_drawOnMinimap" support for hud offsets 2023-10-11 11:22:33 +02:00
alufolie91 e8e24be6e1 ah move it to saturn options instead
both menus are cramped, but eh, we already had the speedometer toggle there, so this should be also there for consistency
2023-10-11 02:00:25 +02:00
alufolie91 52e2c2bc17 Add colorized hud to menu, make default off
Its in HUD Options since it makes the most sense its in there.
Also off by default, as always
2023-10-11 01:43:36 +02:00
alufolie91 d5d3445fae HUD colorization
https://github.com/NepDisk/srb2k-nepanus/commit/6e45c9bb5ebf8a7335e05316c1e1f70cab1fb160
2023-10-11 01:24:16 +02:00
alufolie91 f22fcbc31c Merge remote-tracking branch 'origin/lua-localskin-fields' into Saturn-Next 2023-10-11 01:22:37 +02:00
alufolie91 275f2f7c28 Merge remote-tracking branch 'origin/miscfixes2' into Saturn-Next 2023-10-11 01:22:02 +02:00
alufolie91 b96663ffb8 Merge remote-tracking branch 'origin/Saturn' into Saturn-Next 2023-10-11 01:21:56 +02:00
indev 939aedd384 Add mobj.localskin and player.localskin fields 2023-10-09 13:43:06 +03:00
Alug b3509e46dd Revert "Avoid branch prediction slowdowns in R_PointOnSide and R_PointOnSegSide"
This reverts commit c5476ff8f9.
2023-10-09 07:39:52 +02:00
Alug 869ddb0b35 Revert "optimise mipmaps"
This reverts commit 7dae68561e.
2023-10-09 06:56:16 +02:00
Alug 466ab2883b remove this
uneeded and i think it crashes
2023-10-09 06:54:49 +02:00
Alug 544c471a9c Add toggle for showing all race maps in level select
"showallmaps yes/no"
2023-10-08 23:27:27 +02:00
alufolie91 b3c1111cd3 forgor 1 line 2023-10-08 03:36:30 +02:00
alufolie91 2fa79155de make the player afterimage sprites follow however the player sprite look
playerafter images now support things like saltyhop and gravstretching to make them feel more grounded or whatever
2023-10-08 03:34:56 +02:00
indev 8af91b8c9b Attempt to fix some replays segfaulting when trying unarchive lua tables from demo 2023-10-06 18:33:55 +02:00
Alug 7dae68561e optimise mipmaps
https://git.do.srb2.org/STJr/SRB2/-/commit/cc12496e9c3fce929546640bbe2c1b35056d7a86
2023-10-05 21:32:08 +02:00
Alug c5476ff8f9 Avoid branch prediction slowdowns in R_PointOnSide and R_PointOnSegSide
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2168/diffs

a bit experimental
2023-10-05 20:55:03 +02:00
alufolie91 2071684fec forgor this oops 2023-10-05 01:05:12 +02:00
alufolie91 50cde90736 add all gl commands even when in software mode
this makes the game not reset some things everytime you switch from opengl to software and back to opengl
2023-10-05 01:04:30 +02:00
alufolie91 b00538a123 lol 2023-10-05 00:38:07 +02:00
alufolie91 1f900c4c75 remove some double defines and move some stuffs 2023-10-04 22:33:14 +02:00
alufolie91 72890d6ed4 move those where they belong 2023-10-04 22:14:02 +02:00
alufolie91 1a13e70b37 rename to maptitle to not conflict with mods 2023-10-04 02:44:32 +02:00
alufolie91 21dcd757b5 toggable stagetitles
basically what it says, made a toggle for stagetitles.
2023-10-04 02:35:18 +02:00
alufolie91 817c4a4042 add some missing stuff to m_menu.c 2023-10-03 12:18:59 +02:00
Alug ea2281355a forgor to delet 2023-10-03 04:12:55 +02:00
Alug 643c7a851d lemme change the audio buffersize for less sound lag pls
"buffersize" command
2023-10-03 04:11:41 +02:00
Alug 3d56f3f212 ugh oops 2023-10-03 03:04:20 +02:00
Alug f086d9a698 nah dont wanna mess with software
leave it as is
2023-10-03 02:58:58 +02:00
alufolie91 e4cd3f8bb7 comment this out for now 2023-10-03 02:56:00 +02:00
alufolie91 4647fd80b9 Revert "fix some things resetting when switching to software from ogl and back"
i am a dumbass lmao


This reverts commit 6f998f922b.
2023-10-03 02:53:15 +02:00
alufolie91 2ce9803257 remove direct3d stuff aswell as minigl stuff 2023-10-03 02:38:09 +02:00
alufolie91 90623359c7 total destruction
removed wince, wii, psp, ps3, msdos and gp2x things aswell as removing sdl 1.2 things since that cant be used with kart anyways
2023-10-03 02:10:33 +02:00
alufolie91 8ecf4f26a7 death 2023-10-03 01:12:07 +02:00
alufolie91 b5c525a990 rip wii and psp 2023-10-03 01:02:45 +02:00
alufolie91 09fcff21ed red light of death, bye ps3 2023-10-03 00:35:02 +02:00
alufolie91 eb229e1844 get Xecuted
rip xbox
2023-10-03 00:06:21 +02:00
alufolie91 22bdf442d4 rip dreamcast sweet prince 2023-10-02 23:38:23 +02:00
alufolie91 f92a7582c6 oops 2023-10-02 23:05:59 +02:00
alufolie91 d158eae377 wtf online mp3 playlists, die! 2023-10-02 23:04:02 +02:00
alufolie91 67c67ec1b0 rip in pieces cd music
death
2023-10-02 23:02:23 +02:00
alufolie91 6f998f922b fix some things resetting when switching to software from ogl and back
also add a missing hwrender ifdef
2023-10-02 22:01:42 +02:00
Alug 859c0181a1 Merge pull request #74 from Indev450/lua-fix-drawpingnum
Fix v.drawPingNum flickering in any fps higher than 35
2023-10-02 15:32:00 +02:00
indev 6a8bfb0da2 This can be const too 2023-10-02 13:08:05 +03:00
indev 26fae628da Forgor to remove first V_DrawPingNum, also change colormap type to const to silence warning 2023-10-02 13:01:36 +03:00
indev 7ce18078f0 Fix v.drawPingNum flickering in any fps higher than 35 2023-10-02 12:31:36 +03:00
alufolie91 c9289dec5a fix opengl sprite shadows 2023-10-02 00:47:52 +02:00
lug420 2ba311705f redo gif recording
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/928?commit_id=ab7987d1cf34fd5d30ce82385bf1c81caf1cb2d3
2023-10-01 02:32:13 +02:00
alufolie91 5201ccd6d2 Optimize HWR_RenderBatches polygon sorting 2023-10-01 02:31:38 +02:00
alufolie91 74a6f76621 oops this doesent belong here 2023-10-01 02:20:17 +02:00
alufolie91 1702cc249d why even 2023-10-01 02:14:25 +02:00
alufolie91 0fbe87a481 change those to UINT32 2023-10-01 01:43:04 +02:00
alufolie91 ad3a5e9329 avoid a crash in intermission drawer
https://git.do.srb2.org/STJr/SRB2/-/commit/38c74cecc04b4cc06158b337b4ce71f45a11984d
2023-10-01 01:10:39 +02:00
alufolie91 2a3acc7286 Fix G_GhostTicker crashing trying to read netvars as ghost data 2023-09-30 22:16:45 +02:00
alufolie91 e7fc777e57 Lua: disallow bitwise not on anything but number values
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1262
2023-09-30 22:12:55 +02:00
alufolie91 5cd4b79ecf Fix sigsegv caused by bad target check in A_Custom3DRotate
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1430
2023-09-30 22:09:50 +02:00
alufolie91 1af9e362e0 Fix a series of buffer overflows in SOC loading
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1457
2023-09-30 22:06:17 +02:00
alufolie91 9c35e61f6c lower max precip dist again
3072 should be absolute max, it already tanks performance

also with precip dist on 4096 you literally hit the games vissprite limit and things start to disappear
2023-09-30 21:25:47 +02:00
alufolie91 e2a1147eea Fix PRIdS define for Windows MINGW64
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1367
2023-09-30 21:00:35 +02:00
alufolie91 503629024a comptime refactoring
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1776
2023-09-30 20:48:41 +02:00
alufolie91 1fa7eb24ac Compile with -rdynamic for UNIXCOMMON platforms
should fix backtrace logging only showing adresses
2023-09-30 20:14:55 +02:00
alufolie91 ac211aabe8 Print a backtrace when SRB2 crashes in a Unix-like environment.
good stuff

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/1288
2023-09-30 20:07:08 +02:00
alufolie91 e9e501bb10 Merge remote-tracking branch 'origin/weathershit' into Saturn 2023-09-30 11:16:34 +02:00
alufolie91 1bc674d73f Merge remote-tracking branch 'origin/removeasmstuff' into Saturn 2023-09-30 11:16:31 +02:00
Alug 10a724a048 fix software mode flashpals when gr_paletteshader is turned off 2023-09-29 22:43:20 +02:00
Alug 7a780bf898 make precip interpolation toggable
saves a few frames while looking basically the same
2023-09-29 21:07:58 +02:00
alufolie91 b9d6d510be Revert "completely remove precip interpolation"
This reverts commit c444d4180e.
2023-09-29 20:48:09 +02:00
alufolie91 5d98bde04c a 2023-09-29 20:24:12 +02:00
alufolie91 1059a7ca5e Revert "Revert "Clean up and simplify zone memory allocation" and "Some memory allocations have been properly aligned" Fixes #35"
This reverts commit 44c9b87557.
2023-09-29 16:15:48 +02:00
alufolie91 05173de41f forgor 2023-09-29 15:35:48 +02:00
alufolie91 ec1cd5f933 rip in pieces asm code
this thing makes software crash so goddamn often, its useless nowadays anyways, and SRB2 removed it some time ago aswell

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2074?commit_id=7634a960314d5a576656cc4300a74caf889f8d7f
2023-09-29 15:34:29 +02:00
alufolie91 074be933ad remove asm FixedDiv and FixedMul functions
DIE!
2023-09-29 15:15:13 +02:00
alufolie91 41229be341 Merge branch 'Saturn' into weathershit 2023-09-27 17:22:49 +02:00
Alug 1336848f1d Merge pull request #73 from Indev450/lua-remove-unneeded-interpolation
Remove unneeded interpolation from R_PlayerSliptideAngle
2023-09-27 16:03:08 +02:00
indev e10ed14a3c Remove unneeded interpolation from R_PlayerSliptideAngle (this function is only used from lua, and lua is always running at 35 fps anyway) 2023-09-27 12:36:10 +03:00
alufolie91 dc0e67515b compiler complains 2023-09-27 06:00:27 +02:00
alufolie91 6544851ba5 c90 shit 2023-09-27 05:45:29 +02:00
Alug 02fab76406 remove all that crap
nothing uses it, leftovers from cep port
2023-09-27 02:17:23 +02:00
Alug acb139a8c6 die 2023-09-27 02:02:03 +02:00
Alug 82fe3e5362 ughuguha 2023-09-27 02:00:40 +02:00
Alug 26b28f9b4d why are these here?? 2023-09-27 01:49:54 +02:00
alufolie91 689f5add60 smooooth console
uncap console opening/closing animation
2023-09-27 00:48:21 +02:00
alufolie91 c444d4180e completely remove precip interpolation
DIE!
2023-09-27 00:46:48 +02:00
alufolie91 c4312e3f2f smooooth console
uncap console opening/closing animation
2023-09-26 22:54:34 +02:00
alufolie91 50526d2728 remove parts of precip interpolation
it looks exactly the same, but improves performance on maps with weather a bit
2023-09-26 22:44:52 +02:00
alufolie91 04edcd03f2 refactor weather switching 2023-09-26 22:42:39 +02:00
hayaunderscore 09cb8779e4 Fix an issue where flats dont look correctly without retoggling gr_paletteshader 2023-09-26 21:21:47 +02:00
alufolie91 d86eec52ae precip doesent need that stuff interpolated 2023-09-26 21:18:41 +02:00
lug420 e6a1e58405 uaaagheue 2023-09-18 17:14:59 +02:00
lug420 ea10c9ac13 v3 2023-09-18 16:00:19 +02:00
indev e6d3f3f27c Merge pull request #72 from Indev450/localskins
Localskins
2023-09-18 16:52:11 +03:00
indev f713b7fb60 Merge pull request #71 from Indev450/paletteshader
Paletteshader
2023-09-18 16:51:58 +03:00
indev c35a542d60 Merge pull request #70 from Indev450/slopetexture
Slopetexture
2023-09-18 16:51:45 +03:00
indev e6c699faf4 Merge pull request #69 from Indev450/lua-more-rotation-fields
Add mo.rollsum and player.sliproll fields. Rendering and frame interp…
2023-09-18 16:51:34 +03:00
indev f626b4b031 Merge pull request #61 from Indev450/animatedvotescreens
Animatedvotescreens
2023-09-18 16:51:23 +03:00
indev aed81c0ff5 Merge pull request #60 from Indev450/sdldraganddrop-utf8-on-windows
Sdldraganddrop utf8 on windows
2023-09-18 16:51:07 +03:00
indev 1354f2f302 Merge pull request #59 from Indev450/softwarestuff
Softwarestuff
2023-09-18 16:50:49 +03:00
indev 8ea5d0f729 Merge pull request #58 from Indev450/no-discordrpc-when-cvar-is-off
No discordrpc when cvar is off
2023-09-18 16:50:29 +03:00
alufolie91 a4f5f3b7dc Merge remote-tracking branch 'origin/paletteshader' into Saturn-Next 2023-09-18 15:41:14 +02:00
lug420 ab93865255 make flashpals toggable
could be a bit distracting for some
2023-09-18 15:39:13 +02:00
hayaunderscore 1ecdd3dae6 fix compilation error 2023-09-18 14:49:56 +02:00
hayaunderscore ddcd6b0d31 Redo localskin command 2023-09-18 14:49:19 +02:00
alufolie91 5196f1c5b9 Merge remote-tracking branch 'origin/Saturn' into localskins 2023-09-18 14:47:56 +02:00
alufolie91 e4afbc93fe Merge remote-tracking branch 'origin/Saturn' into Saturn-Next 2023-09-17 02:08:50 +02:00
alufolie91 ec62d20a7c Merge remote-tracking branch 'origin/paletteshader' into Saturn-Next 2023-09-17 02:07:51 +02:00
Alug 9dd6ec718f Merge pull request #68 from hayaunderscore/paletteshader
`P_FlashPal` support in palette renderering
2023-09-17 01:52:12 +02:00
hayaunderscore 69237d6a3a Fix stuttering and gamma 2023-09-17 07:28:47 +08:00
hayaunderscore 426cbee752 Make flashpals work
I hate this
2023-09-17 07:28:34 +08:00
alufolie91 d8ed0681ab Merge remote-tracking branch 'origin/paletteshader' into Saturn-Next 2023-09-15 21:36:18 +02:00
lug420 c2f3486e6d Revert "(hopefully) make flashpals work with palette rendering"
This reverts commit e4a575cc5e.
2023-09-15 21:36:05 +02:00
alufolie91 784093603e Merge remote-tracking branch 'origin/paletteshader' into Saturn-Next 2023-09-15 20:56:49 +02:00
lug420 e4a575cc5e (hopefully) make flashpals work with palette rendering 2023-09-15 20:54:57 +02:00
lug420 f00c9d8c23 dont do this in dedi
unecessary if someone runs this thing in dedi mode
2023-09-15 20:54:25 +02:00
indev 9440a22e88 Merge pull request #67 from Indev450/paletteshader
Paletteshader
2023-09-14 21:55:25 +03:00
lug420 f70f7152ab let the thing do its thing
fixes switching of paletterenderer thing
2023-09-14 20:24:36 +02:00
lug420 8c7f35fa29 absolute hell
lighttable sorting was on even with the palette shader disabled, but, we dont need that shit for non palette renderer mode

hope this shit doesent break anything ever pls
2023-09-14 19:17:46 +02:00
lug420 fe74e69da6 dont need this 2023-09-14 18:42:35 +02:00
alufolie91 c170f53948 Merge remote-tracking branch 'origin/slopetexture' into paletteshader 2023-09-14 18:32:10 +02:00
alufolie91 13fd825bcf hackiest shit to make custom shaders not kill palette shader
this is so super dumb its unreal
but it works
2023-09-14 03:43:11 +02:00
indev 8ee4fc2fa1 Oops used upscaled image >< 2023-09-14 00:18:22 +03:00
indev 679a8387c9 Add logo (WIP) 2023-09-14 00:09:33 +03:00
alufolie91 00f3805721 Merge remote-tracking branch 'origin/lua-more-rotation-fields' into Saturn-Next 2023-09-13 21:47:09 +02:00
alufolie91 ab2194e053 Merge remote-tracking branch 'origin/slopetexture' into Saturn-Next 2023-09-13 21:44:26 +02:00
lug420 9044a46b31 fix fullscreen toggle and resolution changes 2023-09-13 21:32:35 +02:00
indev 53d76ea037 Merge pull request #66 from Indev450/no-discordrpc-when-cvar-is-off
No discordrpc when cvar is off (into saturn-next)
2023-09-13 21:23:02 +03:00
indev f3a28c83d8 Merge pull request #65 from Indev450/softwarestuff
Softwarestuff (into saturn-next)
2023-09-13 21:21:59 +03:00
indev b1e2986f65 Merge pull request #64 from Indev450/sdldraganddrop-utf8-on-windows
Sdldraganddrop utf8 on windows (into saturn-next)
2023-09-13 21:21:14 +03:00
indev 267b53a90e Merge pull request #63 from Indev450/animatedvotescreens
Animatedvotescreens (merge into saturn-next)
2023-09-13 21:20:12 +03:00
indev e1b41d2c58 Merge pull request #62 from Indev450/fix-lua-onchange-error-in-error-handling
Fix 'error in error handling' for cases when error happens in cvar.fu…
2023-09-13 21:16:54 +03:00
lug420 3204095afb revert "redo parts of the lighttable shader"
die
2023-09-13 16:09:58 +02:00
lug420 538de7d2d2 fix memfree command on 64bit 2023-09-13 04:42:35 +02:00
alufolie91 2cba586d9c im good at coding
absolute bruh thing, but it somehow works, fixes the midtextures, and doesent kill performance lmao
2023-09-13 03:54:12 +02:00
alufolie91 ad4d587a52 screw you
bleh, pegging midtextures to slopes now works correctly, but cutting them is broken again
atleast this fixes the performance issues
no idea tho why it screws up things so much
2023-09-13 02:58:20 +02:00
alufolie91 a929636a28 Revert "cleanup HWR_SplitWall"
This reverts commit 06a2508a9c.
2023-09-13 02:56:11 +02:00
alufolie91 06a2508a9c cleanup HWR_SplitWall
e
2023-09-13 01:52:25 +02:00
alufolie91 64b2e2ee37 Fix bugs with HWR_SplitWall and sloped midtextures but cleaner
performance still pretty bad, atleast this is cleaner than last time
2023-09-13 01:40:52 +02:00
alufolie91 b6ef6eb801 revert sloped midtexture fix for now
huge performance regression on some maps
ill look into it in the future again maybe
2023-09-12 21:03:58 +02:00
indev b4d48cc9ec Set palette uniform in InitPalette instead of DrawScreenFinalTexture 2023-09-12 21:55:35 +03:00
alufolie91 f83a937dc5 redo parts of the lighttable shader
this caused performance drops before even with the whole thing disabled
2023-09-12 18:56:51 +02:00
alufolie91 e2acb4c3fc only do this when were running the palette shader 2023-09-12 17:07:19 +02:00
alufolie91 5bf722a1fb only allow this thing when shaders are enabled aswell
yes i will do it like that
no i wont use gl_allowshaders
i want this thing to be able to affect the menus and hud, just like software :p
2023-09-12 01:50:46 +02:00
alufolie91 0751484439 fix some effects
idk lmao but this fixes a few effects to be "on par" with software renderer
aswell as menus and hud stuff
2023-09-12 00:38:50 +02:00
alufolie91 e5b16c7aa0 Merge remote-tracking branch 'origin/Saturn' into paletteshader 2023-09-11 20:45:20 +02:00
lug420 bac058d128 forgor some things 2023-09-11 20:07:03 +02:00
haya dd4a9ae890 i may be stupid 2023-09-11 20:01:27 +02:00
hayaunderscore f91687209b fix horizon lines on batching somewhat 2023-09-11 20:01:22 +02:00
lug420 ec4140a9d2 remove custom shader toggle + clear colormaps when toggle palette shader
the custom shader toggle often broke stuff when toggled while palette shader was active

also clearing colormaps when toggling palette shader is ugly midlevel but atleast it doesent visually break completely

def need to somehow reinitialze colormaps instead or smth
2023-09-11 20:00:09 +02:00
lug420 2553c9e878 cleanup a bit
remove debug prints and vars
clean stuff up a bit
2023-09-11 18:30:35 +02:00
lug420 f9f33aa53a add lighttabble shader
this was way too much headache
set up a basic condition atm, so lighttable generation turns off if the paletteshader is turned off
this will break visually if the shader is turned on midrace atm
will implement smth better
2023-09-11 18:13:59 +02:00
hayaunderscore 4455ebe58f Fix issue with upside-down salty hop 2023-09-11 16:03:18 +02:00
alufolie91 35cfdea9e7 allow opengl to also use widescreen backgrounds for votes
thanks kk for locking this to software mode only despite this working without issues in opengl aswell
2023-09-11 15:55:59 +02:00
indev 346433d248 Shutdown DiscordRPC when discordrp cvar is set to Off 2023-09-11 13:17:12 +03:00
indev 16a7e69292 Don't init discord rich presence untill discordrp is set to On
Haven't tested this since i'm on linux and the feature looks like it is windows only
2023-09-11 13:01:29 +03:00
Alug 441824fc70 Merge pull request #57 from hayaunderscore/paletteshader
Fix shader compile error and level palettes
2023-09-11 10:40:01 +02:00
hayaunderscore f46b77ab7b fix shader compile error, fix custom level palettes 2023-09-11 14:00:36 +08:00
alufolie91 561af0e601 smol adjustment 2023-09-11 02:14:22 +02:00
alufolie91 362c21505d smol fixup
fixes the weird black/white screen on game start
2023-09-11 01:04:43 +02:00
alufolie91 d3d40de996 unfuck this thing change lut size to full 64
holy fuck, goddamit, im so mad at this
2023-09-10 18:59:31 +02:00
alufolie91 3ce4653bb5 smol adjustment 2023-09-10 16:57:38 +02:00
alufolie91 a639c87a90 rework this thing, use parts of the new palette renderer
this atleast completely fixed the stutters and prob the memory leaks the thing had before

its still super messy and idk
2023-09-10 16:43:42 +02:00
alufolie91 3aac16432a adjust things more
try to mitigate performance loss and stutters
readjust the look a bit
cleanup stuff a bit
this thing still pretty much runs badly
2023-09-09 16:18:46 +02:00
lug420 1c9ea1eb2e fix a crash with rotsprites
+ clean up this absolute mess
2023-09-09 01:38:23 +02:00
indev a47aea4c9f Fix 'error in error handling' for cases when error happens in cvar.func right when cvar is registered 2023-09-08 18:29:05 +03:00
alufolie91 c31e7ff2b3 Optimize sprite rendering by ignoring completely occluded sprites
backport of the srb2 thing
judging by perfstats it often cuts the spritecount in half
take with a grain of salt since i barely tested it
software mode only btw

https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2131?commit_id=b8313ceda283ac0c8dd9ab6141e83a31f0bb9639
2023-09-08 12:44:13 +02:00
indev 9cd0e6c385 Why is this 'variable-sized' and can't be initialized like that??? 2023-09-08 12:00:10 +03:00
indev c23a0f08c4 Merge pull request #55 from Indev450/rotsnap
smoother slope rotation for players
2023-09-08 11:51:55 +03:00
indev 3ff865b1b6 Merge pull request #56 from Indev450/sdldraganddrop
Addfile per drag and drop
2023-09-08 11:51:31 +03:00
indev cdedf1349c Attempt to fix non-ansii filenames on windows 2023-09-08 11:47:19 +03:00
alufolie91 7beab3b582 fix the sprite renderstats again
aAAaaa
2023-09-08 10:42:31 +02:00
alufolie91 b1b592f88d readd the stuff blubuabb 2023-09-08 10:38:48 +02:00
lug420 8737a40a4d bleh 2023-09-07 23:55:26 +02:00
lug420 71ce5be570 me wondering why the hw sprite perfstats were broken
+ removing some stuff we dont need
2023-09-07 23:54:22 +02:00
indev b883d02abb Use P_AddWadFile directly instead of command so non-ansii file names also supported 2023-09-07 19:28:53 +03:00
alufolie91 09f79a6934 Addfile per drag and drop
https://git.do.srb2.org/SteelT/SRB2/-/commit/01cc2b91e189e4d268eddd38f3ba917133a07adc
2023-09-07 17:24:06 +02:00
lug420 9bdcfe9750 adjust some stuff
bleh looks alr, but def loose some color depth with it
2023-09-07 15:59:10 +02:00
lug420 b767180473 readd the lookup texture, adjust its size
it runs a bit better like this, but also is a bit darker
def needs adjustments
2023-09-07 14:38:10 +02:00
indev acb5d96788 Merge pull request #54 from Indev450/misc-fixes
Fix few typos
2023-09-06 19:58:45 +03:00
indev 228a932598 Fix few typos 2023-09-06 19:54:14 +03:00
lug420 b53cc6fd2b fuck it palette renderer "lite"
remove the goddamn lookup textures, this atleast runs okish and looks not that bad
2023-09-06 18:29:26 +02:00
lug420 01cd8f5a0f 4fps
this thing runs like crap 4fps
2023-09-06 18:02:04 +02:00
alufolie91 9732e74bf3 more work
https://git.do.srb2.org/Hannu_Hanhi/SRB2/-/commit/140dba15b86ad7e206c50c8336103bee89e6b032
2023-09-06 15:24:31 +02:00
alufolie91 2ed4a7b548 Palette Lookup Texture
https://git.do.srb2.org/Hannu_Hanhi/SRB2/-/commit/9562a95d0adb9384b5db26145ed03cb5d3e5a893
https://git.do.srb2.org/Hannu_Hanhi/SRB2/-/commit/d8a329b89dad75a57e076d88b8d5d1fdb5f959bc
2023-09-06 15:19:39 +02:00
alufolie91 52c11d1444 paletteshader
stuff from hannu
https://git.do.srb2.org/Hannu_Hanhi/SRB2/-/commit/2530e8b2938eb3ecb6f56b6cdc9916f387a72c6a

this thing tanks my framerate to hell
2023-09-06 15:12:18 +02:00
alufolie91 78d50e4c43 just a bit more
looks even better like this imo
2023-09-05 23:01:03 +02:00
indev 7f05d27f42 Allow lua to change vote background via hud.setVoteBackground 2023-09-05 12:47:49 +03:00
alufolie91 3675fdd361 smoother slope rotation for players
dont snap player directly to whatever theyre standing on
instead make the sprite rotate a bit smoother
see: https://git.do.srb2.org/haya_/Kart-Public/-/commit/8448d75b031fa86cdb854d13eda4712352d35a89
2023-09-05 09:13:12 +02:00
alufolie91 98dfe528d8 remove this 2023-09-04 16:37:11 +02:00
alufolie91 7da590df94 Fix sprite scale column iteration crash
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2130
2023-09-04 15:30:42 +02:00
alufolie91 90cc5a6cb0 Fix a possible crash in R_RenderMaskedSegRange
https://git.do.srb2.org/STJr/SRB2/-/commit/55b4458001b2ffe76774ff07a11b56ebf1f70de9
2023-09-04 15:30:21 +02:00
xyzzy 96552765c2 Include doomdef.h :') 2023-09-03 17:01:12 +03:00
xyzzy 8420b2414c Change into a look up based system instead of whatever the fuck yanderedev suggested. 2023-09-03 14:43:55 +03:00
xyzzy 49949309df Some fixes and feature additions to glib. 2023-09-02 22:17:18 +03:00
xyzzy 39312ebd4b Merge remote-tracking branch 'upstream/Saturn' into patch-enumlib-fast 2023-09-01 22:20:31 +03:00
alufolie91 ca9277366c anim screen stuff 2023-09-01 19:43:24 +02:00
indev e79bf24bcd Add lua memory usage in memfree command output 2023-09-01 18:34:06 +03:00
indev 2c1201ff34 Add mo.rollsum and player.sliproll fields. Rendering and frame interpolation code was used, so they are NOT synch safe! 2023-09-01 12:45:23 +03:00
alufolie91 c4ff1a3aca forgor to readd those 2023-09-01 10:12:06 +02:00
xyzzy 511d66c8fa Merge remote-tracking branch 'upstream/Saturn' into patch-enumlib-fast 2023-08-31 23:17:37 +03:00
xyzzy 3f9d64717d Create a Lua globals library. 2023-08-31 23:16:32 +03:00
alufolie91 5760f25c74 readd the namecheck to addlocalskin menu
until we find a better way to check for skins c:
2023-08-31 13:41:25 +02:00
indev 0a6f700c6f Addon browser can now be in 2 states - loading addons and loading localskins, which fixes its behavior when trying to load character addon as server admin 2023-08-31 13:59:30 +03:00
alufolie91 3147dfb012 2.1 2023-08-31 11:18:38 +02:00
Alug 5007a33bbf Merge pull request #49 from Indev450/fixspeedometer
fix the speedometer
2023-08-31 10:57:03 +02:00
Alug c65acfa90e Merge pull request #50 from Indev450/nospecialmusic
Nospecialmusic
2023-08-31 10:56:50 +02:00
Alug b167c19137 Merge pull request #51 from hayaunderscore/readme-refactor
make the readme look more consistent
2023-08-31 10:56:15 +02:00
alufolie91 d48b08856e Support for Animated Votingscreens
i hate the interpolation i hate it
no idea honestly if those play correctly atm but atleast they dont freak out with uncapped
https://gitlab.com/blondedradio/srb-2-k-cep/-/commit/776a547087cdef46b2bdbfc3ddc9d4d963bbea4b
2023-08-31 10:42:43 +02:00
alufolie91 9ba5c9a38b bruuuuuh 2023-08-31 03:35:42 +02:00
haya 1a9f30a328 ok github markdown 2023-08-31 07:06:17 +08:00
haya 97058bfcf6 try being consistent 2023-08-31 07:05:06 +08:00
alufolie91 bd41bbb304 fix the speedometer
things got swapped X)
also removed the extra number, kart adds a 3rd one if needed
2023-08-31 00:24:16 +02:00
alufolie91 f47cb885cc eeeeheheheeheheh ifdefs 2023-08-30 22:27:52 +02:00
alufolie91 1ab243d93a add shit to menu 2023-08-30 22:26:38 +02:00
alufolie91 15d59cbbd8 i dont want any special music
no to grow and star music!
2023-08-30 22:20:07 +02:00
Alug c88d2dadb0 Update README.md again 2023-08-30 21:15:07 +02:00
alufolie91 a4e96d2380 bruh 2023-08-30 19:20:35 +02:00
alufolie91 002c550263 more fixes
ugh
2023-08-30 19:17:51 +02:00
alufolie91 25b9bc4100 smol fix 2023-08-30 19:15:22 +02:00
alufolie91 7105606475 more menu shit
- Youll now get a preview of what skin is going to be used.
- Removed redundant code
https://git.do.srb2.org/haya_/Kart-Public/-/commit/a6728c26f76bfc94f7bc07aa076c8979c9bef5c9
2023-08-30 19:14:41 +02:00
alufolie91 71e4005226 add menu n shit
https://git.do.srb2.org/haya_/Kart-Public/-/commit/b85a55137cfef0a18b297c59e62018586323a2e9
2023-08-30 19:12:56 +02:00
alufolie91 76b66b41b6 Argh!
https://git.do.srb2.org/haya_/Kart-Public/-/commit/217f15452c1fda9ea3c0d00650d470e13e14e0f5
2023-08-30 18:58:26 +02:00
alufolie91 43e1331594 another localfile thingie
https://git.do.srb2.org/haya_/Kart-Public/-/commit/4a60babf75ce6362d32a1633b12a718d65bcd18c
2023-08-30 18:51:10 +02:00
alufolie91 23ba3d493b issues fixing 2023-08-30 18:50:00 +02:00
alufolie91 487cbc495a more changes
https://git.do.srb2.org/haya_/Kart-Public/-/commit/9e3919195d143956e31bf092f6822cab61d1ee81
2023-08-30 18:47:57 +02:00
alufolie91 faeb4d22ed Add a -force parameter to addskins, fix localskin not playing the right sounds
https://git.do.srb2.org/haya_/Kart-Public/-/commit/932e9b92c3551dc4910157ea8d3eea1145ccfc40
2023-08-30 18:43:55 +02:00
alufolie91 9dc2ad4f32 add localskinall command
https://git.do.srb2.org/haya_/Kart-Public/-/commit/958fe796eb070b6678cd45ea835a998d8dc6d2c9
2023-08-30 17:39:41 +02:00
alufolie91 ceae12baba fix an issue with desynchs
https://git.do.srb2.org/haya_/Kart-Public/-/commit/a47d965b82e45bcf600217899a2cd6951024093b
2023-08-30 17:34:28 +02:00
alufolie91 58c58e9542 fix shit even more
https://git.do.srb2.org/haya_/Kart-Public/-/commit/37d72b4680bbb1ecb68aaa817f2afc8b34deab96
2023-08-30 17:31:57 +02:00
alufolie91 46c7bf8b03 fix shit
https://git.do.srb2.org/haya_/Kart-Public/-/commit/e4ba8b9a753fe741f1e5a65490ae0d2d645baa97
2023-08-30 17:24:50 +02:00
alufolie91 c011d09e33 fix for localskins not properly saving when returning back into the titlescreen
https://git.do.srb2.org/haya_/Kart-Public/-/commit/e679dfe0aa059cca68bc67da5a45c12c26dfd9ac
2023-08-30 17:11:38 +02:00
alufolie91 65fadcf709 fix
https://git.do.srb2.org/haya_/Kart-Public/-/commit/b6b3dcb3f08b470d6075c2949b2dee364afb5c99
2023-08-30 17:09:40 +02:00
alufolie91 e2b06aa600 Ghost and signpost support
https://git.do.srb2.org/haya_/Kart-Public/-/commit/f07179589414b15605da14901f742342ab53de66
2023-08-30 17:08:50 +02:00
alufolie91 7ab0a808a9 Show which skin is the real one 2023-08-30 17:05:21 +02:00
alufolie91 bc7ce5c983 "immersion"
https://git.do.srb2.org/haya_/Kart-Public/-/commit/4547347e219158c1d11a6f373c9c94a7bd2ee789
2023-08-30 17:04:40 +02:00
alufolie91 6e55d88816 more shit
https://git.do.srb2.org/haya_/Kart-Public/-/commit/28fa3039c147d7b479b8d4ddfca50918c620aa2f
2023-08-30 17:02:05 +02:00
alufolie91 97f0ea1b0f initial support
https://git.do.srb2.org/haya_/Kart-Public/-/commit/a464df2165d62528af46d7ef0a6cbdbf29c3d07c
2023-08-30 16:59:23 +02:00
James R 684b016487 Merge branch 'fix-ban-txt-crash' into 'master'
Fix ban.txt crashing game

See merge request KartKrew/Kart-Public!329
2023-08-14 11:41:53 +00:00
James R 0b55e8df7b Rename HAVE_STRLCPY to SRB2_HAVE_STRLCPY, fix non-glibc compile
- Fix compile with msvcrt
- Fix compile with SDL 2.28.2
2023-08-14 04:40:00 -07:00
indev f9880e8413 Fix ban.txt crashing game 2023-08-05 14:50:12 +03:00
James R c499a8387e Fix glibc 2.38 compile
glibc 2.38 added strlcpy and strlcat.
2023-08-03 16:45:34 -07:00
1751 changed files with 206400 additions and 459972 deletions

No files matched your search

+1 -1
View File
@@ -43,7 +43,7 @@ jobs:
- v1-SRB2-APT
- run:
name: Install SDK
command: apt-get -qq -y --no-install-recommends install git build-essential nasm libpng-dev:i386 libsdl2-mixer-dev:i386 libgme-dev:i386 libcurl4-openssl-dev:i386 libopenmpt-dev:i386 gettext ccache wget gcc-multilib upx openssh-client
command: apt-get -qq -y --no-install-recommends install git build-essential libpng-dev:i386 libsdl2-mixer-dev:i386 libgme-dev:i386 libcurl4-openssl-dev:i386 libopenmpt-dev:i386 gettext ccache wget gcc-multilib upx openssh-client
- save_cache:
key: v1-SRB2-APT
paths:
+2
View File
@@ -16,3 +16,5 @@
#Appveyor
/appveyor.yml -crlf -whitespace
# Other
*.c text=auto
*.h text=auto
+436
View File
@@ -0,0 +1,436 @@
default:
image: debian:stable-slim
stages: # List of stages for jobs, and their order of execution
- build
variables:
GIT_STRATEGY: clone
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/$CI_PROJECT_PATH
.job_template: &job_build # This job runs in the build stage, which runs first.
stage: build
cache:
- key: ccache-$CI_PROJECT_PATH_SLUG-$CI_JOB_NAME_SLUG
fallback_keys:
- cache-$CI_PROJECT_PATH_SLUG-$CI_DEFAULT_BRANCH
- cache-$CI_PROJECT_PATH_SLUG-default
paths:
- ccache
- ccache_statslog
- key: apt-$CI_JOB_IMAGE
paths:
- apt-cache
unprotect: true
before_script:
- - |
# debconf
echo -e "\e[0Ksection_start:`date +%s`:debconf[collapsed=true]\r\e[0KSetup debconf's environment"
- export DEBIAN_FRONTEND="noninteractive"
- export DEBIAN_PRIORITY="low"
- export DEBCONF_NONINTERACTIVE_SEEN="true"
- |
# debconf
echo -e "\e[0Ksection_end:`date +%s`:debconf\r\e[0K"
- - |
# dpkg_aa
echo -e "\e[0Ksection_start:`date +%s`:dpkg_aa[collapsed=true]\r\e[0KAdding architectures to dpkg"
- dpkg --add-architecture i386
- dpkg --add-architecture amd64
- dpkg --add-architecture arm64
- |
# dpkg_aa
echo -e "\e[0Ksection_end:`date +%s`:dpkg_aa\r\e[0K"
- - |
# apt_conf
echo -e "\e[0Ksection_start:`date +%s`:apt_conf[collapsed=true]\r\e[0KSetting up APT conf"
- export APT_CACHE_DIR=`pwd`/apt-cache
- mkdir --parents --verbose $APT_CACHE_DIR/partial/
- touch /etc/apt/apt.conf.d/99build
- |
# apt.conf
echo Adding options to apt.conf':'
- |
# APT::Install-Recommends
echo APT::Install-Recommends "false"\; | tee --append /etc/apt/apt.conf.d/99build
- |
# quit
echo quiet "1"\; | tee --append /etc/apt/apt.conf.d/99build
- |
# APT::Get::Assume-Yes
echo APT::Get::Assume-Yes "true"\; | tee --append /etc/apt/apt.conf.d/99build
- |
# Dir::Cache::Archives
echo Dir::Cache::Archives "$APT_CACHE_DIR"\; | tee --append /etc/apt/apt.conf.d/99build
- |
# apt_conf
echo -e "\e[0Ksection_end:`date +%s`:apt_conf\r\e[0K"
- - |
# apt_update
echo -e "\e[0Ksection_start:`date +%s`:apt_update[collapsed=true]\r\e[0KUpdating APT listing"
- apt-get update
- |
# apt_update
echo -e "\e[0Ksection_end:`date +%s`:apt_update\r\e[0K"
- - |
# apt_pre
echo -e "\e[0Ksection_start:`date +%s`:apt_pre[collapsed=true]\r\e[0KInstalling pre packages"
- apt-get install apt-utils
- |
# apt_pre
echo -e "\e[0Ksection_end:`date +%s`:apt_pre\r\e[0K"
- - |
# apt_upgrade
echo -e "\e[0Ksection_start:`date +%s`:apt_upgrade[collapsed=true]\r\e[0KUpdating existing packages"
- apt-get upgrade
- |
# apt_update
echo -e "\e[0Ksection_end:`date +%s`:apt_upgrade\r\e[0K"
- - |
# apt_common
echo -e "\e[0Ksection_start:`date +%s`:apt_common[collapsed=true]\r\e[0KInstalling common packages"
- apt-get install make git ccache
- |
# apt_common
echo -e "\e[0Ksection_end:`date +%s`:apt_common\r\e[0K"
- - |
# ccache_config
echo -e "\e[0Ksection_start:`date +%s`:ccache_config[collapsed=true]\r\e[0KSetting up ccache config"
- mkdir --parents --verbose ~/.ccache/
- touch ~/.ccache/ccache.conf
- |
# cache.conf
echo Adding ccache configution option
- |
# base_dir
echo base_dir = $PWD | tee --append ~/.ccache/ccache.conf
- |
# cache_dir
echo cache_dir = $PWD/ccache | tee --append ~/.ccache/ccache.conf
- |
# compiler_check
echo compiler_check = content | tee --append ~/.ccache/ccache.conf
- |
# stats_log
echo stats_log = $PWD/ccache_statslog | tee --append ~/.ccache/ccache.conf
- |
# max_size
echo max_size = 50M | tee --append ~/.ccache/ccache.conf
- |
# ccache_config
echo -e "\e[0Ksection_end:`date +%s`:ccache_config\r\e[0K"
- - |
# cache_reset
echo -e "\e[0Ksection_start:`date +%s`:ccache_reset[collapsed=true]\r\e[0KResetting ccache statistics"
- ccache --zero-stats
- ccache --show-stats
- |
# ccache_reset
echo -e "\e[0Ksection_end:`date +%s`:ccache_reset\r\e[0K"
after_script:
- - |
# apt_clean
echo -e "\e[0Ksection_start:`date +%s`:apt_clean[collapsed=true]\r\e[0KCleaning of unneeded APT packages"
- apt-get autoclean
- |
# apt_clean
echo -e "\e[0Ksection_end:`date +%s`:apt_clean\r\e[0K"
- - |
# ccache_stats
echo -e "\e[0Ksection_start:`date +%s`:ccache_stats[collapsed=true]\r\e[0Kccache statistics:"
- ccache --show-stats --verbose
- ccache --show-log-stats --verbose
- |
# ccahe_stats
echo -e "\e[0Ksection_end:`date +%s`:ccache_stats\r\e[0K"
Debian testing GCC:
<<: *job_build
image: debian:testing-slim
allow_failure: true
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debian GCC testing"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-gcc"
variables:
CC: gcc
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# apt_development
echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
- apt-get install libsdl2-mixer-dev libpng-dev libcurl4-openssl-dev libgme-dev libopenmpt-dev
- |
# apt_development
echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Windows x86:
<<: *job_build
artifacts:
paths:
- "bin/"
- "src/comptime.h"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-Win32"
variables:
PREFIX: i686-w64-mingw32
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc-mingw-w64-i686-win32
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW=1 SDL=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW=1 SDL=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Debian stable:amd64:
<<: *job_build
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debian amd64"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-x86-64"
variables:
CC: x86_64-linux-gnu-gcc
OBJCOPY: x86_64-linux-gnu-objcopy
OBJDUMP: x86_64-linux-gnu-objdump
PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc-x86-64-linux-gnu || apt-get install gcc
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# apt_development
echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
- apt-get install libsdl2-mixer-dev:amd64 libpng-dev:amd64 libcurl4-openssl-dev:amd64 libgme-dev:amd64 libopenmpt-dev:amd64
- |
# apt_development
echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Debian stable:i386:
<<: *job_build
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debian i386"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-i686"
variables:
CC: i686-linux-gnu-gcc
OBJCOPY: i686-linux-gnu-objcopy
OBJDUMP: i686-linux-gnu-objdump
PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc-i686-linux-gnu || apt-get install gcc
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# apt_development
echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
- apt-get install libsdl2-mixer-dev:i386 libpng-dev:i386 libcurl4-openssl-dev:i386 libgme-dev:i386 libopenmpt-dev:i386
- |
# apt_development
echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Debian stable:arm64:
<<: *job_build
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debian arm64"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-aarch64"
variables:
CC: aarch64-linux-gnu-gcc
OBJCOPY: aarch64-linux-gnu-objcopy
OBJDUMP: aarch64-linux-gnu-objdump
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc-aarch64-linux-gnu || apt-get install gcc
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# apt_development
echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
- apt-get install libsdl2-mixer-dev:arm64 libpng-dev:arm64 libcurl4-openssl-dev:arm64 libgme-dev:arm64 libopenmpt-dev:arm64
- |
# apt_development
echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 NONX86=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Windows x64:
<<: *job_build
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Win64"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-Win64"
variables:
PREFIX: x86_64-w64-mingw32
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install gcc-mingw-w64-x86-64-win32
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW64=1 SDL=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW64=1 SDL=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Debian stable Clang:
<<: *job_build
allow_failure: true
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debian Clang"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-clang"
variables:
CC: clang
WFLAGS: -Wno-cast-align
script:
- - |
# apt_toolchain
echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
- apt-get install clang
- |
# apt_toolchain
echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
- - |
# apt_development
echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
- apt-get install libsdl2-mixer-dev libpng-dev libcurl4-openssl-dev libgme-dev libopenmpt-dev
- |
# apt_development
echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
- - |
# make
echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
- make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1
- |
# make
echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
Debian testing Clang:
extends: Debian stable Clang
image: debian:testing-slim
artifacts:
paths:
- "bin/"
- "src/comptime.h"
expose_as: "Debina Clang testing"
name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-clang"
variables:
CC: clang
WFLAGS: -Wno-cast-align -Wno-deprecated-non-prototype
+346
View File
@@ -0,0 +1,346 @@
#!/bin/bash
set -e # Enable auto-exit for debugging :))
# Make Linux AppImage program data
# https://docs.appimage.org/reference/appdir.html
# PWD: {repo_root}/build
# See deployer.sh for usage
# Terminal stuff
RESET="$(tput sgr0)" #"\e[0m" # Resets terminal colors
# Colors for various information types
FAILURE="$(tput setaf 1)" #"\e[91m"
SUCCESS="$(tput setaf 2)" #"\e[92m"
NOTICE="$(tput setaf 3)" #"\e[93m"
VERBOSE="$(tput setaf 4)" #"\e[94m"
verbosity=0 # By default don't print anything unless it's *ultra* important.
quiet=0 # Also don't print anything if they supplied the quiet argument
# URL from which to download appimagetool if there isn't one available in your $PATH
# at time of writing only aarch64, armhf, i686, and x86_64 versions are available via this method
# in those cases, and honestly even outside of those cases, it's better to just put a working one in your $PATH yourself..
url="https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$(uname -m).AppImage"
# A whitelist of libraries to include into SRB2's AppImage if SRB2 is dynamically linked.
# please don't add a newline at the end of this or i will cry :(
libraryWhitelist="
libbacktrace
libnsl
libSDL2
libSDL2_mixer
libgme
libopenmpt
libpng
libfluidsynth
libpulse
libmodplug
libvorbisfile
libopusfile
libFLAC
libmad
libmpg123
libvorbis
libpulsecommon
libsndfile
libsndio
libogg
libvorbisenc
libjson
libreadline
libwrap
libtinfo
libtirpc
libpng16"
# these kinda look like macros don't they
function print { (( "$quiet" == 0 )) && echo "$@" || :; } # echo if not quiet
function coloredText { printf "$1"; print "${@:2}"; printf "$RESET"; } # use print to inherit quiet
function success { coloredText "$SUCCESS" "$@"; } # use coloredText to inherit quiet
function important { coloredText "$NOTICE" "$@"; } # use coloredText to inherit quiet
function verboseOnly { (( "$verbosity" >= $1 )) && (coloredText "$VERBOSE" "${@:2}") || :; } # use coloredText to inherit quiet
# Parses an argument with a single dash
function parseSingleDashArg() {
while read -n 1 char; do
if [[ "$char" == '-' || "$char" == '' ]]; then
:
elif [[ "$char" == 'h' ]]; then
helppassed=1
elif [[ "$char" == 'q' ]]; then
quiet=1
elif [[ "$char" == 'v' ]]; then
verbosity="$((verbosity + 1))"
elif [[ "$char" == 'd' ]]; then
dry=1
elif [[ "$char" == 's' ]]; then
small=1
else
echo "$0: invalid option -- '$1'"
echo "Try '$0 --help' for more information."
return 1
fi
done <<<"$1"
}
# Simple help argument checker.
currentarg=1; # Which argument is --help...
# For $arg in the argument array...
for arg in "$@"; do
# Is it a help argument?
if [[ "$arg" == "--help" ]]; then
helppassed=1; # Help is passed, set $helppassed!
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}" # Remove argument from list
elif [[ "$arg" == "--quiet" ]]; then
quiet=1
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}"
elif [[ "$arg" == "--verbose" ]]; then
verbosity="$((verbosity + 1))" # Increase verbosity!
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}"
elif [[ "$arg" == "--dry" ]]; then
dry=1; # Show parameters instead of using them.
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}"
elif [[ "$arg" == "--small" ]]; then
small=1; # Don't copy assets to save on bandwidth.
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}"
elif [[ ! "$arg" == *'--'* && "$arg" == *'-'* ]]; then
parseSingleDashArg "$arg"
if [[ "$?" == 0 ]]; then
set -- "${@:1:$currentarg-1}" "${@:$currentarg+1}" # Remove argument from list
fi
elif [[ $arg == *'--'* ]]; then
print "$0: invalid option -- '$1'"
print "Try '$0 --help' for more information."
return 1
else
currentarg="$((currentarg+1))" # Increment current argument number otherwise...
fi
done
important "SRB2Kart AppImage Packager v1.0 modified for kart by NepDisk."
important "Orignal for SRB2 my mazmazz and Golden."
# Get root directory from the full path of this script.
__ROOT_DIR="$3"
if [[ -z "$3" ]]; then
# finds out where this script is and goes to that directory and goes up one for the root
scriptdir="$(dirname "${BASH_SOURCE[0]}")"
scriptbase="$(basename "${BASH_SOURCE[0]}")"
__ROOT_DIR="$(cd "$scriptdir" && pwd -P)"
fi
# If it starts with '.', put the current working directory behind it so things work.
if [[ "$__ROOT_DIR" == '.' || "$__ROOT_DIR" == '..' ]]; then
__ROOT_DIR="$PWD/$__ROOT_DIR"
fi
# Set up defaults
__PROGRAM_NAME="${PROGRAM_NAME:-"SRB2Kart Saturn"}"
__PROGRAM_DESCRIPTION="${PROGRAM_DESCRIPTION:-"Modded version of SRB2kart with more features."}"
__PROGRAM_FILENAME="${PROGRAM_FILENAME:-"lsdl2srb2kart"}"
__PROGRAM_ASSETS="${PROGRAM_ASSETS:-"$__ROOT_DIR/assets/installer"}"
__BUILD_DIR="${1:-"$__ROOT_DIR/bin"}"
__OUTPUT_FILENAME="${2:-"$__PROGRAM_FILENAME.AppImage"}"
__APPIMAGETOOL="${4:-"appimagetool"}"
if (! command -v "$__APPIMAGETOOL" &> /dev/null); then
__APPIMAGETOOL=
fi
# Stuff that prints and exits.
# Prints setup text using method given by arguments.
# Example: printSetup "print" # print "Setup for AppImage...
function printSetup {
$@ "Setup for AppImage in BUILD_DIR: '$__BUILD_DIR'..."
$@ "With the OUTPUT_FILENAME: '$__OUTPUT_FILENAME'"
$@ "And SRB2 Repository Root ROOT_DIR: '$__ROOT_DIR'"
$@ "Using APPIMAGETOOL: '$([ -z "$__APPIMAGETOOL" ] && echo '(download)' || echo $__APPIMAGETOOL)'"
$@ ""
$@ "This should be run from a Makefile or from the directory of the build. If it is not, then change to that directory or specify that directory as an argument."
$@ "If ROOT_DIR isn't SRB2's repository root, specify that as an argument too."
$@ "Make must have built the program before you run this script."
$@ ""
$@ "Make sure these Environment Variables are correct."
$@ "If not, then enter: export PROGRAM_VARIABLE=value"
$@ "PROGRAM_NAME: $__PROGRAM_NAME"
$@ "PROGRAM_DESCRIPTION: $__PROGRAM_DESCRIPTION"
$@ "PROGRAM_FILENAME: $__PROGRAM_FILENAME"
$@ "PROGRAM_ASSETS: $__PROGRAM_ASSETS"
}
if [[ "$helppassed" ]]; then
print "Usage: $(basename "$0") [OPTION]... [BUILD_DIR] [OUTPUT_NAME] [ROOT_DIR] [APPIMAGETOOL]"
print "Packages a SRB2 binary into an AppImage."
print "OPTIONs may be included anywhere within the arguments."
print ""
print "Arguments:"
print " -h, --help display this help and exit."
print " -q, --quiet don't display any text."
print " -v, --verbose make commands more verbose, will always print."
print " -s, --small don't copy SRB2 assets to save on bandwidth."
print " parameters regardless of --dry."
print " -d, --dry print parameters and exit."
print ""
if (( "$verbosity" > 0 )) || [[ "$dry" ]]; then
printSetup "print"
else
print "This should be run from a Makefile or from the directory of the build."
print "Make must have built the program before you run this script."
fi
exit;
fi
if (( "$verbosity" > 0 )) || [[ "$dry" ]]; then
printSetup "verboseOnly" "0"
verboseOnly 0 ""
if [[ "$dry" ]]; then
set -n # Enable debug mode and verbose for dry run.
fi
fi
# End stuff that prints and exits.
if (( "$verbosity" >= 4 )); then
set -v # Really verbose? Print *everything*!
fi
# Define AppDir structure
mkdir -p "$__BUILD_DIR/AppDir/usr/bin"
mkdir -p "$__BUILD_DIR/AppDir/lib"
mkdir -p "$__BUILD_DIR/AppDir/usr/share/applications"
mkdir -p "$__BUILD_DIR/AppDir/usr/share/icons/hicolor/256x256/apps"
# Copy program data
if [[ ! $small ]]; then
verboseOnly 1 "Packaging program assets..."
cp -r "$__PROGRAM_ASSETS"/* "$__BUILD_DIR/AppDir/usr/bin/"
cp -r "$__BUILD_DIR/$__PROGRAM_FILENAME" "$__BUILD_DIR/AppDir/usr/bin"
else
verboseOnly 1 "Skipping program asset packing, --small or -s passed..."
fi
verboseOnly 1 "Packaging SRB2..."
verboseOnly 1 "Assuming executable name $__PROGRAM_FILENAME"
cp -r "$__BUILD_DIR/$__PROGRAM_FILENAME" "$__BUILD_DIR/AppDir/usr/bin"
# Copy required dependencies, but only if the program is dynamically linked.
verboseOnly 1 "Testing if this build is dynamically linked..."
set +e # Disable auto-exit for ldd.
srb2Libraries="$(ldd "$__BUILD_DIR/$__PROGRAM_FILENAME")"
exitcode="$?"
set -e # Enable it again!
if (( $exitcode == 0 )); then
verboseOnly 1 "This build *is* dynamically linked! Packaging dependencies."
# read the dynamic libraries of srb2, trim off beginning whitespace, and get the third field seperated by spaces
# this gives us a newline-seperated list of libraries with their full paths.
srb2Libraries="$(echo "$srb2Libraries" | cut -f 2 | cut -d ' ' -f 3)"
# remove any extraneous newlines around the string
libraryWhitelist="$(echo $libraryWhitelist | head -c -1 | tr ' ' '\n')"
# replace e.g. 'abc' with '(/abc\b)', and replace newlines with '|'.
# this converts it into a grep regular expression to check for any whitelisted library names.
libraryWhitelist="$(printf "%s" "$libraryWhitelist" | sed 's|.*|(/\0\\b)|' | tr '\n' '|')"
# grab only the entries that match the regex
__LDD_LIST="$(printf "%s" "$srb2Libraries" | grep -E "$libraryWhitelist")"
# use echo to convert the newline-seperated list into an argument list
__LDD_LIST="$(echo $__LDD_LIST)"
# read into an array because i can't be bothered iterating the lines of a string today
# there's so many other things in this file that'd need to be adjusted to be POSIX-compliant anyway
IFS=' ' read -r -a paths <<< "$__LDD_LIST"
for path in "${paths[@]}"; do
if [ -f "$path" ]; then
verboseOnly 2 "Packaging dependency $(basename "$path")..."
cp "$path" $__BUILD_DIR/AppDir/lib/
else
verboseOnly 2 "Dependency $(basename "$path") not found"
fi
done
else
verboseOnly 1 "This SRB2 build is statically linked, skipping dependency packing."
fi
cd "$__BUILD_DIR/AppDir"
# Copy icons
verboseOnly 1 "Packaging resources..."
cp "$__ROOT_DIR/srb2.png" "./usr/share/icons/hicolor/256x256/apps/$__PROGRAM_FILENAME.png"
ln -sf "./usr/share/icons/hicolor/256x256/apps/$__PROGRAM_FILENAME.png" "./.DirIcon"
ln -sf "./usr/share/icons/hicolor/256x256/apps/$__PROGRAM_FILENAME.png" "./$__PROGRAM_FILENAME.png"
# Make desktop descriptor
cat > "./usr/share/applications/$__PROGRAM_FILENAME.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=$__PROGRAM_NAME
Comment=$__PROGRAM_DESCRIPTION
Icon=$__PROGRAM_FILENAME
Exec=AppRun %F
Categories=Game;
EOF
ln -sf "./usr/share/applications/$__PROGRAM_FILENAME.desktop" "./$__PROGRAM_FILENAME.desktop"
# Make entry point
echo -e '#!'"$(dirname "$SHELL")/sh" > ./AppRun
echo -e 'HERE="$(dirname "$(readlink -f "${0}")")"' >> ./AppRun
echo -e 'SRB2WADDIR=$HERE/usr/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HERE/lib exec $HERE/usr/bin/'"$__PROGRAM_FILENAME"' "$@"' >> ./AppRun
chmod +x ./AppRun
cd .. # now in $__BUILD_DIR
# Package AppImage
if [ -z "$__APPIMAGETOOL" ]; then
verboseOnly 1 "No valid appimagetool path given or detected, downloading appimagetool..."
# Print notice for internet connection.
important "If the command hangs here, check your internet connection, or download appimagetool and add it to your \$PATH and try compiling again."
(( "$verbosity" >= 3 )) && wget "$url" || wget -q "$url"
APPIMAGETOOL="./$(basename "$url")"
chmod a+x "$APPIMAGETOOL"
else
verboseOnly 1 "appimagetool path given or detected, no download required."
APPIMAGETOOL="$__APPIMAGETOOL"
fi
verboseOnly 1 "Packing AppImage $__OUTPUT_FILENAME"
if (( verbosity >= 3 )); then
"$APPIMAGETOOL" ./AppDir "$__OUTPUT_FILENAME"
elif (( verbosity >= 2 )); then
"$APPIMAGETOOL" ./AppDir "$__OUTPUT_FILENAME" >/dev/null
else
"$APPIMAGETOOL" ./AppDir "$__OUTPUT_FILENAME" >/dev/null 2>&1
fi
success "AppImage ready!"
verboseOnly 1 "Cleaning up files..."
rm -r ./AppDir
if [ -z "$__APPIMAGETOOL" ]; then
rm "$APPIMAGETOOL"
fi
cd "$__ROOT_DIR" # snap back to reality
+1 -1
View File
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.5)
# DO NOT CHANGE THIS SRB2 STRING! Some variable names depend on this string.
# Version change is fine.
project(SRB2
+1 -4
View File
@@ -109,13 +109,10 @@ FILE_PATTERNS = *.c \
*.mm \
*.dox
RECURSIVE = YES
EXCLUDE = ./src/djgppdos/internal.h \
./src/djgppdos/setup.c \
./src/sdl/IMG_xpm.c \
EXCLUDE = ./src/sdl/IMG_xpm.c \
./src/sdl/SRB2DC/scramble.c
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */src/hardware/*/* \
*/src/djgppdos/bcd.? \
*/src/sdl/SDL_main/* \
*/src/*/*_private.h \
*/src/sdl/*/*help.? \
+174
View File
@@ -0,0 +1,174 @@
# SRB2Kart Saturn: Custom lua features
## mobj.localskin and player.localskin fields
Allow reading and assigning localskins.
## mobj.rollsum field
**Not netsafe**. Returns total sprite rotation value, taking sliptideroll and sloperoll cvars value into account.
Mainly for use in visual-only addons like secondcolor.
## player.sliproll field
**Not netsafe**. Returns player's current sliptide roll angle, taking sliptideroll cvar value into account.
## hud.setVoteBackground(name)
Changes vote background texture prefix (game looks for PREFIX + "W" or "C" (depends on resolution) + FRAME\_NUMBER).
## hud.add(fn, "vote") and hud.add(fn, "intermission")
Hud hooks for vote screen and intermission screen. They only get drawer (`v`) as argument.
To check if those hooks are available, check if globals FEATURE\_VOTEHUD and FEATURE\_INTERMISSIONHUD
exist.
## x, y = hud.getOffsets(item)
Returns the values of the given HUD item's `xoffset`/`yoffset` cvars.
Available for any HUD item with offset cvars.
## patch = v.cachePatchRotated(name, rollangle)
Like v.cachePatch, it caches a new patch with the corresponding name. Unlike v.cachePatch, however,
a rollangle can be supplied to the function so that it returns a rotated patch instead.
## x, y, flags = v.getDrawInfo(item)
Returns the X, Y and flags where the given HUD item will be drawn for the current displayplayer.
Available for `item`, `gametypeinfo` and `minimap`.
## patch, colormap = v.getColorHudPatch(item)
Returns the patch and colormap to use for the given HUD item. Colorization is based on the user's settings.
Available for `item` and `itemmul`.
Extra arguments for some items:
### item
* `small`: true for small item box, false for big item box.
* `dark`: true to darken item box. Depends on `darkitembox`.
### itemmul
* `small`: true for small sticker, false for big sticker.
## hudcolor = v.getHudColor()
Returns the displayplayer's HUD color.
## colorize = v.useColorHud()
Returns true if colorization is enabled, false otherwise.
## v.interpolate(true)
Enables HUD interpolation. Each call to a drawing function will have its coordinates interpolated
by assigning an unique ID to every call.
For example, three successive calls to `v.draw` will each have their own ID and interpolation offsets.
Pass `true` to enable interpolation, `false` to disable.
Alternatively, pass a number to enable interpolation with the specified tag.
Tags allow HUD items drawn by the same call to a drawing function to be differentiated.
Valid tags range from 0-255.
For example, when iterating players, use a unique tag for each player to avoid artifacting:
```lua
for p in players.iterate do
-- enable interpolation, using player numbers as the tag
-- every draw will have different interp offsets per player
v.interpolate(#p)
-- doesn't matter for unconditional draws like this one...
v.draw(...)
-- but it does matter if there's a condition!
-- without tags, this patch would warp between players
-- whenever their `someVar` changes
if p.someVar then v.draw(...) end
end
-- don't want interpolation anymore? then disable it
v.interpolate(false)
```
NOTE: The default tag for `true` is 0.
## v.interpLatch(true)
Enables interpolation offset latching. The next call to a drawing function will have its lerp offsets
saved and reused for all following draw calls. Disable with `false` when done.
Interpolation cannot easily "snap" between two points; latching can help overcome this by manually
setting the lerp offsets.
```lua
v.interpolate(true)
-- X coordinate for the HUD item
-- every so often, this will wrap around to zero
local x = (leveltime*4) % 256
-- draw an interpolated patch, but... when X rolls back to zero,
-- the patch will slide all the way across the screen!
v.draw(x, 100, ...)
-- this is where interpLatch comes into play
-- enable latching, then draw an invisible patch,
-- moving at the same speed as the visible patch
-- the exact coordinates don't matter, it just has to move at the right speed
v.interpLatch(true)
v.draw(leveltime*4, 0, v.cachePatch("K_TRNULL"))
-- now we can draw the patch again, and when X becomes zero,
-- it'll snap right back without sliding across the screen
v.draw(x, 150, ...)
-- don't forget to turn off latching!
v.interpLatch(false)
```
When using a custom string drawer, enable this mode to avoid interpolation artifacting when the string changes.
## mobj.spritexscale, mobj.spriteyscale, mobj.spritexoffset, mobj.spriteyoffset, mobj.rollangle, mobj.sloperoll, mobj.rollmodel fields
Same fields as in SRB2 2.2
## S\_StopSoundByNum
Allows stopping specific sound globally. Because this function starts with S\_, like state, checking
if it exists is a bit more complicated:
```lua
if rawget(_G, "S_StopSoundByNum") ~= nil then
... -- Can use it
end
```
## addHook("ServerJoin", function())
ServerJoin hook called when client joins server (starting a listen server also calls it for host).
Generally it was made to make loading custom config files less hacky, but can be used for anything else too.
## player.viewrollangle field
Returns player's current view roll angle for the Screen Tilting feature, useful for HUD elements.
## G_SetPlayerGamepadIndicatorColor(player, skincolor)
Set a custom color for Supported Gamepads with RGB LED functionality.
To be used with Displayplayers.
Only takes Skincolors.
Best to be used in a Loop to ensure the color wont get overwritten by the game.
## G_PlayerDeviceRumble(player, low_strength, high_strength, -optional- duration)
Add Gamepad Rumble support for things.
To be used with Displayplayers.
Duration is in milliseconds and is optional to set, default value is 84ms.
## P_CheckSightFast(mo1, mo2)
Exactly same as P_CheckSight but uses cheaper algorithm, useful for things like nametags. Doesn't work exactly
like P_CheckSight so don't use it for anything gameplay-related.
# Other changes
## P_PlayRinglossSound(source, damager)
Add optional `damager` argument (should be `mobj_t`), which causes hurt sound also play for damager
if `karthitemdialog` option is enabled
## K_PlayHitEmSound(mobj, victim)
Add optional `victim` argument (should be a player's `mobj_t`), which causes "hit em" sound to be
delayed and played for victim too if `karthitemdialog` option is enabled
+8
View File
@@ -0,0 +1,8 @@
ifdef SILENT
MAKEFLAGS+=--no-print-directory
endif
all :
% ::
@$(MAKE) -C src $(MAKECMDGOALS)
+44 -18
View File
@@ -6,54 +6,77 @@
- Sprites player rotation on slopes; going on hills, levitate, going down, and so on alters your sprites (configurable)
- You can alter all the base kart HUD element offsets on the fly in the Saturn Options settings menu
- "addfilelocal" Command, for those who want to use things like their custom hud in netgames (Same as addfile but completely client sided)
- OpenMPT for Tracker module playback (Complete with filters) fixed looping issues while even sounding better than the old GME playback
- `addfilelocal` Command, for those who want to use things like their custom hud in netgames (Same as addfile but completely client sided)
- Palette rendering, make the OpenGL renderer (almost) look like software mode!
- OpenMPT for Tracker module playback instead of GME
- Fixes looping and sounds better
- Allows filter configuration
- Colourize your Kart HUD, to either your player color or whichever colour you like! (optional / requieres extra2.kart file)
- The minimal brightness with Shaders can be configured, now you can seeeee in dark areas (0-255 , uses Sector brightness values)
- Lua hooks for Intermission (ex: You can make hostmod votes still visible during intermission!)
- Lua hooks for Vote Screen (ex: You can make hostmod votes still visible during map vote screen!)
- Lua HUD hooks for Intermission (ex: You can make hostmod votes still visible during intermission!)
- Lua HUD hooks for Vote Screen (ex: You can make hostmod votes still visible during map vote screen!)
- Saltyhop! do a funny hop
- Smaller Speedometer (optional / requieres extra.kart file)
- Record Attack input display can now be used everywhere
- Smaller minimap icons and also show player names on the minimap (toggable)
- "showmusiccredits" command, shows you the current music track again
- "listskins" show a list of all skins currently loaded
- Visual Portals from Haya´s HEP Client
- Toggable lowercase menu´s also from Haya´s HEP client
- Support for animated votescreens!
- `showmusiccredit` command, shows you the current music track again
- `listskins` show a list of all skins currently loaded
- Visual Portals from Haya's HEP Client
- Horizonline effect in OpenGL (watch the endless bricks on SNES Bowsers Castle!)
- Localskins! use whatever skin you like!
- Toggable lowercase menu's also from Haya's HEP client
- Everything that Galaxy has
## Improvements / Bug fixes
- Replay size has been increased to 10MiB minimum, to make replay overflows very unlikely to happen (can be set to 100MiB max with "maxdemosize" command in console)
- Music changes now properly show the music credits (ex: Kart maps with easter eggs that alter the music) *The mapper still has to provide a MusicDEF for this to work.
- Replay size has been increased to 10MiB minimum, to make replay overflows very unlikely to happen
- can be set to 100MiB max with `maxdemosize` command in console
- Music changes now properly show the music credits (ex: Kart maps with easter eggs that alter the music)
- The mapper still has to provide a MusicDEF for this to work.
- Configurable chatlog length (yay can read those messages from 30 mins ago without opening log.txt)
- Configurable timeout for waiting to join a full server (in vanilla this is capped to 5 minutes before it boots you out)
- Characters now spin in skin selection menu (configurable)
- HTTP Addon download speed has been raised dramatically (configurable with "downloadspeed" command)
- HTTP Addon download speed has been raised dramatically
- configurable with `downloadspeed` command
- HWR Drawnodes have been refactored, this should fix a few rare crashes esp in regards to OpenGL Visportals
- The Position Number in the corner is alot smaller now (half the size!)
- Toggable Lap animation
- Main menu shows the current renderer being used
- MSAA and A2C Antialiasing support (Configurable in renderer.txt file)
- A simple button to rejoin your last visited server
- Ability to show ALL maps in the mapselect screen, this includes hidden or hellmaps "showallmaps yes/no"
- Ability to toggle the Stagetitlecard "maptitles on/off"
## Performance / Debugging
- Access for `mobj_t` and `player_t` fields from Lua has been completely rewritten, for much better performance with many Lua scripts
- Lua shows Tracebacks whenever an error occurs
- The Lua Perfstats page now has multiple pages and is more organized (ps_thinkframe_page X in console)
- People with lower end hardware can disable "screen textures" with "gr_screentextures" command, huge performance gain with minimal visual loss (Note intermission screen background is broken with this)
- Software mode has gotten "ffloorclip", which boosts performance on maps with many Floor over Floor roads
- People with lower end hardware can disable "screen textures" with "gr_screentextures" command, huge performance gain with minimal visual loss
- Intermission backgrounds, heat wave effects and etc are broken with this
- `ffloorclip`, exclusive to Software, which boosts performance on maps with many Floor over Floor sectors
## Technical fixes
- ZFigthing Textures in Opengl mode have been fixed in engine (well almost all of it)
- Fof's intersecting with slopes have less issues and now render correctly in Opengl
- FOFs intersecting with slopes have less issues and now render correctly in Opengl
- Midtextures on slopes in Opengl are fixed, many weird guardrails and fences, aswell as some of those sticking out textures from the ground on some maps should be gone
- The annoying depraction messages for "P_TeleportMove" and "P_AproxDistance" have been silenced
- The annoying depraction messages for `P_TeleportMove` and `P_AproxDistance` have been silenced
- Silenced the annoying "cant find next map..." messages as theyre super useless and annoying anyways
- Added a small cooldown on "map" command due to spamming causing a SIGSEGV
- Added a small cooldown on `map` command due to spamming causing a SIGSEGV
- Many bugfixes to the Software renderer, so its much less prone to crashing
- Many bugfixes to the OpenGL renderer (too many too list all of them here; check the changelogs for more information)
- Bugfixes to the soundsystem, mainly regarding Sound muting
- Refactored Zone Memory Allocations (helps a bit with large maps)
- Many many more crash fixes and other bugfixes to the basegame (too many too list all of them here; check the changelogs for more information)
- Crash Backtraces have been replaced by libbacktrace (except for 32bit Windows builds)
Crashlogs now contain alot more informations. and even more if your build has debug symbols
Also allows 64bit Windows builds to produce Crashlogs!
## MISC
- Bird's Camara Tilting feature is no longer turned on by default
- Bird's Camera Tilting feature is no longer turned on by default
- Bird's warning on the title screen has been removed
## Bugs
@@ -61,13 +84,16 @@
- A2C antialiasing makes transparent surfaces even more transparent
- You tell us! c:
## Note
Check the LUASTUFF file for more information on all the lua things Saturn has.
## Dependencies
- NASM (x86 builds only)
- SDL2 (Linux/OS X only)
- SDL2-Mixer (Linux/OS X only)
- libupnp (Linux/OS X only)
- libgme (Linux/OS X only)
- libopenmpt (Linux/OS X only)
- libbacktrace (Linux/OS X only)
## Compiling
-23
View File
@@ -1726,11 +1726,6 @@ HW3SOUND for 3D hardware sound support
<Option compilerVar="CC" />
</Unit>
<Unit filename="src/r_draw.h" />
<Unit filename="src/r_draw16.c">
<Option compilerVar="CC" />
<Option compile="0" />
<Option link="0" />
</Unit>
<Unit filename="src/r_draw8.c">
<Option compilerVar="CC" />
<Option compile="0" />
@@ -1996,24 +1991,6 @@ HW3SOUND for 3D hardware sound support
<Option compilerVar="CC" />
</Unit>
<Unit filename="src/v_video.h" />
<Unit filename="src/vid_copy.s">
<Option compilerVar="CC" />
<Option compiler="avrgcc" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="gnu_gcc_compiler_for_mingw32" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="gnu_gcc_compiler_for_mingw64" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="armelfgcc" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="tricoregcc" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="ppcgcc" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option compiler="gcc" use="1" buildCommand="$compiler $options -x assembler-with-cpp -c $file -o $object" />
<Option target="Debug Native/SDL" />
<Option target="Release Native/SDL" />
<Option target="Debug Linux/SDL" />
<Option target="Release Linux/SDL" />
<Option target="Debug Mingw/SDL" />
<Option target="Release Mingw/SDL" />
<Option target="Debug Mingw/DirectX" />
<Option target="Release Mingw/DirectX" />
</Unit>
<Unit filename="src/w_wad.c">
<Option compilerVar="CC" />
</Unit>
-3
View File
@@ -25,9 +25,6 @@
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(PlatformTarget)'=='x86'">
<ClCompile>
<PreprocessorDefinitions>USEASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
+1 -61
View File
@@ -5,7 +5,7 @@ Ver=3
IsCpp=0
Type=0
UnitCount=279
Folders=A_Asm,B_Bot,BLUA,D_Doom,F_Frame,G_Game,H_Hud,Hw_Hardware,Hw_Hardware/r_opengl,I_Interface,I_Interface/Dummy,I_Interface/SDL,I_Interface/Win32,LUA,M_Misc,P_Play,R_Rend,S_Sounds,W_Wad
Folders=B_Bot,BLUA,D_Doom,F_Frame,G_Game,H_Hud,Hw_Hardware,Hw_Hardware/r_opengl,I_Interface,I_Interface/Dummy,I_Interface/SDL,I_Interface/Win32,LUA,M_Misc,P_Play,R_Rend,S_Sounds,W_Wad
CommandLine=
CompilerSettings=00000000000100000111e1
PchHead=-1
@@ -773,16 +773,6 @@ Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit79]
FileName=src\r_draw16.c
Folder=R_Rend
Compile=0
CompileCpp=0
Link=0
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit80]
FileName=src\r_draw8.c
Folder=R_Rend
@@ -1473,36 +1463,6 @@ Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit149]
FileName=src\tmap.nas
Folder=A_Asm
Compile=0
CompileCpp=0
Link=0
Priority=1000
OverrideBuildCmd=1
BuildCmd=nasm.exe -g -o $@ -f win32 src/tmap.nas
[Unit150]
FileName=src\asm_defs.inc
Folder=A_Asm
Compile=0
CompileCpp=0
Link=0
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit151]
FileName=src\vid_copy.s
Folder=A_Asm
Compile=1
CompileCpp=0
Link=1
Priority=1000
OverrideBuildCmd=1
BuildCmd=$(CC) $(CFLAGS) -x assembler-with-cpp -c src/vid_copy.s -o $@
[Unit152]
FileName=src\y_inter.h
Folder=H_Hud
@@ -1543,26 +1503,6 @@ Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit156]
FileName=src\p5prof.h
Folder=A_Asm
Compile=1
CompileCpp=0
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit157]
FileName=src\tmap_mmx.nas
Folder=A_Asm
Compile=0
CompileCpp=0
Link=0
Priority=1000
OverrideBuildCmd=1
BuildCmd=nasm.exe -g -o $@ -f win32 src/tmap_mmx.nas
[Unit159]
FileName=src\lzf.h
Folder=W_Wad
-8
View File
@@ -11,8 +11,6 @@ environment:
# c:\msys64 x86_64 has gcc 8.2.0, so use c:\mingw-w64 7.3.0 instead
MINGW_SDK_64: C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64
CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare -Wno-error=suggest-attribute=noreturn
NASM_ZIP: nasm-2.12.01
NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip
UPX_ZIP: upx391w
UPX_URL: http://upx.sourceforge.net/download/upx391w.zip
CCACHE_EXE: ccache.exe
@@ -46,7 +44,6 @@ environment:
ASSET_CLEAN: 0
cache:
- nasm-2.12.01.zip
- upx391w.zip
- ccache.exe
- C:\Users\appveyor\.ccache
@@ -58,10 +55,6 @@ install:
- if [%X86_64%] == [1] ( set "MINGW_SDK=%MINGW_SDK_64%" )
- if [%X86_64%] == [1] ( set "CCACHE_CC=%CCACHE_CC_64%" )
- if not exist "%NASM_ZIP%.zip" appveyor DownloadFile "%NASM_URL%" -FileName "%NASM_ZIP%.zip"
- 7z x -y "%NASM_ZIP%.zip" -o%TMP% >null
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%NASM_ZIP%" "%MINGW_SDK%\bin" nasm.exe || exit 0
- if not exist "%UPX_ZIP%.zip" appveyor DownloadFile "%UPX_URL%" -FileName "%UPX_ZIP%.zip"
- 7z x -y "%UPX_ZIP%.zip" -o%TMP% >null
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%UPX_ZIP%" "%MINGW_SDK%\bin" upx.exe || exit 0
@@ -78,7 +71,6 @@ before_build:
- set "Path=%MINGW_SDK%\bin;%Path%"
- if [%X86_64%] == [1] ( x86_64-w64-mingw32-gcc --version ) else ( i686-w64-mingw32-gcc --version )
- mingw32-make --version
- if not [%X86_64%] == [1] ( nasm -v )
- if not [%NOUPX%] == [1] ( upx -V )
- ccache -V
- ccache -s
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
+1 -1
View File
@@ -1 +1 @@
/lsdlsrb2
/lsdl2srb2kart
-5
View File
@@ -1,5 +0,0 @@
/*.elf
/*.self
/*.pkg
/*.BIN
/pkg
-5
View File
@@ -1,5 +0,0 @@
/*.elf
/*.self
/*.pkg
/*.BIN
/pkg
-4
View File
@@ -1,4 +0,0 @@
/EBOOT.PBP
/PARAM.SFO
/SRB2PSP.PBP
/SRB2PSP.elf
-2
View File
@@ -1,2 +0,0 @@
/Release
/Debug
-2
View File
@@ -1,2 +0,0 @@
/Win32
/x64
-3
View File
@@ -1,3 +0,0 @@
/*.elf
/*.dol
/apps
-3
View File
@@ -1,3 +0,0 @@
/*.elf
/*.dol
/apps
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-2
View File
@@ -1,2 +0,0 @@
# DON'T REMOVE
# This keeps the folder from disappearing
-3
View File
@@ -1,3 +0,0 @@
*.arm9
*.elf*
*.nds
-3
View File
@@ -1,3 +0,0 @@
*.arm9
*.elf*
*.nds
@@ -1,46 +0,0 @@
#=============================================================================
# Copyright 2010 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# support for the yasm assembler
set(CMAKE_ASM_YASM_SOURCE_FILE_EXTENSIONS nasm yasm asm)
if(NOT CMAKE_ASM_YASM_OBJECT_FORMAT)
if(WIN32)
if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_YASM_OBJECT_FORMAT win64)
else()
set(CMAKE_ASM_YASM_OBJECT_FORMAT win32)
endif()
elseif(APPLE)
if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_YASM_OBJECT_FORMAT macho64)
else()
set(CMAKE_ASM_YASM_OBJECT_FORMAT macho)
endif()
else()
if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_YASM_OBJECT_FORMAT elf64)
else()
set(CMAKE_ASM_YASM_OBJECT_FORMAT elf)
endif()
endif()
endif()
set(CMAKE_ASM_YASM_COMPILE_OBJECT "<CMAKE_ASM_YASM_COMPILER> <FLAGS> -f ${CMAKE_ASM_YASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
# Load the generic ASMInformation file:
set(ASM_DIALECT "_YASM")
include(CMakeASMInformation)
set(ASM_DIALECT)
@@ -1,27 +0,0 @@
#=============================================================================
# Copyright 2010 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# Find the nasm assembler. yasm (http://www.tortall.net/projects/yasm/) is nasm compatible
set(CMAKE_ASM_YASM_COMPILER_LIST nasm yasm)
if(NOT CMAKE_ASM_YASM_COMPILER)
find_program(CMAKE_ASM_YASM_COMPILER yasm
"$ENV{ProgramFiles}/YASM")
endif()
# Load the generic DetermineASM compiler file with the DIALECT set properly:
set(ASM_DIALECT "_YASM")
include(CMakeDetermineASMCompiler)
set(ASM_DIALECT)
@@ -1,23 +0,0 @@
#=============================================================================
# Copyright 2010 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# This file is used by EnableLanguage in cmGlobalGenerator to
# determine that the selected ASM_NASM "compiler" works.
# For assembler this can only check whether the compiler has been found,
# because otherwise there would have to be a separate assembler source file
# for each assembler on every architecture.
set(ASM_DIALECT "_YASM")
include(CMakeTestASMCompiler)
set(ASM_DIALECT)
+32 -32
View File
@@ -1,32 +1,32 @@
@echo off
set BRA=Unknown
set REV=illegal
copy nul: /b +%1\comptime.c tmp.$$$ > nul
move tmp.$$$ %1\comptime.c > nul
if exist .git goto gitrev
if exist ..\.git goto gitrev
if exist .svn goto svnrev
goto filwri
:gitrev
set GIT=%2
if "%GIT%"=="" set GIT=git
for /f "usebackq" %%s in (`%GIT% rev-parse --abbrev-ref HEAD`) do @set BRA=%%s
for /f "usebackq" %%s in (`%GIT% rev-parse HEAD`) do @set REV=%%s
set REV=%REV:~0,8%
goto filwri
:svnrev
set BRA=Subversion
for /f "usebackq" %%s in (`svnversion .`) do @set REV=%%s
set REV=r%REV%
goto filwri
:filwri
echo // Do not edit! This file was autogenerated > %1\comptime.h
echo // by the %0 batch file >> %1\comptime.h
echo // >> %1\comptime.h
echo const char* compbranch = "%BRA%"; >> %1\comptime.h
echo const char* comprevision = "%REV%"; >> %1\comptime.h
@echo off
set BRA=Unknown
set REV=illegal
copy nul: /b +%1\comptime.c tmp.$$$ > nul
move tmp.$$$ %1\comptime.c > nul
if exist .git goto gitrev
if exist ..\.git goto gitrev
if exist .svn goto svnrev
goto filwri
:gitrev
set GIT=%2
if "%GIT%"=="" set GIT=git
for /f "usebackq" %%s in (`%GIT% rev-parse --abbrev-ref HEAD`) do @set BRA=%%s
for /f "usebackq" %%s in (`%GIT% rev-parse HEAD`) do @set REV=%%s
set REV=%REV:~0,8%
goto filwri
:svnrev
set BRA=Subversion
for /f "usebackq" %%s in (`svnversion .`) do @set REV=%%s
set REV=r%REV%
goto filwri
:filwri
echo // Do not edit! This file was autogenerated > %1\comptime.h
echo // by the %0 batch file >> %1\comptime.h
echo // >> %1\comptime.h
echo const char* compbranch = "%BRA%"; >> %1\comptime.h
echo const char* comprevision = "%REV%"; >> %1\comptime.h
+23 -32
View File
@@ -1,54 +1,45 @@
#!/bin/bash -e
#!/bin/sh
path="."
if [ x"$1" != x ]; then
path="$1"
fi
versiongit() {
gitbranch=`git rev-parse --abbrev-ref HEAD`
gitversion=`git rev-parse HEAD`
cat <<EOF > $path/comptime.h
version() {
cat <<EOF > "$path/comptime.h"
// Do not edit! This file was autogenerated
// by the $0 script with git
//
const char* compbranch = "$gitbranch";
const char* comprevision = "${gitversion:0:8}";
const char* compbranch = "$1";
const char* comprevision = "$2";
EOF
exit 0
}
versiongit() {
gitbranch="$(git rev-parse --abbrev-ref HEAD)"
gitversion="$(git show --pretty=format:'%h %s' -s HEAD | sed 's/"/\\"/g')"
version "$gitbranch" "$gitversion";
exit 0
}
versionsvn() {
svnrevision=`svnversion -n $1`
cat <<EOF > $path/comptime.h
// Do not edit! This file was autogenerated
// by the $0 script with subversion
//
const char* compbranch = "Subversion";
const char* comprevision = "r$svnrevision";
EOF
exit 0
svnrevision="$(svnversion -n "$1")"
version "Subversion" "r$svnrevision";
exit 0
}
versionfake() {
cat <<EOF > $path/comptime.h
// Do not edit! This file was autogenerated
// by the $0 script with an unknown or nonexist SCM
//
const char* compbranch = "Unknown";
const char* comprevision = "illegal";
EOF
version "Unknown" "illegal";
}
compversion() {
touch $path/comptime.c
versionfake
test -d $path/.svn && versionsvn
test -d $path/../.git && versiongit
exit 1
touch "$path/comptime.c"
versionfake
[ -d "$path/.svn" ] && versionsvn "$@"
[ -d "$path/../.git" ] && versiongit
exit 1
}
test -f $path/comptime.c && compversion
[ -f "$path/comptime.c" ] && compversion "$@"
exit 2
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-576
View File
@@ -1,576 +0,0 @@
; Defines general parameters of the game for which wadfiles are intended.
;
; Name textual name for internal use
; IWAD standard 8.3 base name and extension of main wadfile
; NewMap default name for new map -- dictates format for all maps
; Directory directory in which main wadfile (and game files) reside
; Run command to execute (from the directory) for running a map
[WadGame]
Name=Sonic Robo Blast 2
IWAD=srb2.srb
NewMap=MAP01
Directory=C:\Documents and Settings\Ben\My Documents\srb2
Run=fd\srb2win.exe -file $_Wadfile -warp $_Wadmap
; Defines parameters of the default sector motif created when no motif
; file can be located at startup.
[Default.Sector]
Above=GFZROCK
Main=GFZROCK
Below=GFZROCK
Ceiling=F_SKY1
Floor=FLOOR0_6
CeilingHeight=4096
FloorHeight=0
Lighting=255
; Defines parameters of the default door motif created when no motif
; file can be located at startup.
[Default.Door]
Base=FLAT1
Door=BIGDOOR2
Track=DOORTRAK
Type=1
; Defines parameters of the default stair motif created when no motif
; file can be located at startup.
[Default.Stair]
FloorRunner=GFZROCK
CeilingRunner=GFZROCK
Stairwell=GFZROCK
FloorInc=8
CeilingInc=0
LightingInc=0
; ID used to classify things
; Flags supplies some additional information:
; 0x0001 - indicate thing facing angle
; Red red value for drawing things of said class
; Green green value for drawing things of said class
; Blue blue value for drawing things of said class
; Name textual description of class
[Things.Classes]
0x001 0x0001 255 255 255 Starts
0x002 0x0000 192 0 224 Emeralds
0x003 0x0001 255 0 0 Enemies
0x004 0x0000 255 192 0 Nights Things
0x005 0x0000 0 192 192 Power-Up Monitors
0x006 0x0000 192 0 224 Misc.
0x007 0x0000 192 192 192 Scenery
0x008 0x0000 255 255 0 Mario
0x009 0x0000 255 192 224 Christmas
0x00b 0x0000 0 0 255 Rings
0x00c 0x0000 0 224 0 Springs and Such
; ID used to uniquely identify things in a map
; Class classification (defined above section)
; Size approximate thing size (in map units)
; Sprite name of the sprite to use for display purposes
; Name textual description of thing
[Things.Types]
0x001 1 32 suptd0 Player 01 Start
0x002 1 32 suptd0 Player 02 Start
0x003 1 32 suptd0 Player 03 Start
0x004 1 32 suptd0 Player 04 Start
0xfa1 1 32 suptd0 Player 05 Start
0xfa2 1 32 suptd0 Player 06 Start
0xfa3 1 32 suptd0 Player 07 Start
0xfa4 1 32 suptd0 Player 08 Start
0xfa5 1 32 suptd0 Player 09 Start
0xfa6 1 32 suptd0 Player 10 Start
0xfa7 1 32 suptd0 Player 11 Start
0xfa8 1 32 suptd0 Player 12 Start
0xfa9 1 32 suptd0 Player 13 Start
0xfaa 1 32 suptd0 Player 14 Start
0xfab 1 32 suptd0 Player 15 Start
0xfac 1 32 suptd0 Player 16 Start
0xfad 1 32 suptd0 Player 17 Start
0xfae 1 32 suptd0 Player 18 Start
0xfaf 1 32 suptd0 Player 19 Start
0xfb0 1 32 suptd0 Player 20 Start
0xfb1 1 32 suptd0 Player 21 Start
0xfb2 1 32 suptd0 Player 22 Start
0xfb3 1 32 suptd0 Player 23 Start
0xfb4 1 32 suptd0 Player 24 Start
0xfb5 1 32 suptd0 Player 25 Start
0xfb6 1 32 suptd0 Player 26 Start
0xfb7 1 32 suptd0 Player 27 Start
0xfb8 1 32 suptd0 Player 28 Start
0xfb9 1 32 suptd0 Player 29 Start
0xfba 1 32 suptd0 Player 30 Start
0xfbb 1 32 suptd0 Player 31 Start
0xfbc 1 32 suptd0 Player 32 Start
0x057 1 32 suptd0 CTF Team Start (Red)
0x059 1 32 suptd0 CTF Team Start (Blue)
0x00b 1 32 suptd0 Deathmatch Start
0x1a4 2 20 cemga0 Emerald 1 (Green)
0x1a5 2 20 cemoa0 Emerald 2 (Orange)
0x1a6 2 20 cempa0 Emerald 3 (Pink)
0x1a7 2 20 cemba0 Emerald 4 (Blue)
0x1a8 2 20 cemra0 Emerald 5 (Red)
0x1a9 2 20 cemla0 Emerald 6 (Light Blue)
0x1aa 2 20 cemga0 Emerald 7 (Grey)
0x1ab 2 20 cemka0 Emerald 8 (Master)
0x009 3 40 sposa1 Crawla (Red)
0xbbc 3 40 possa1 Crawla (Blue)
0x02a 3 40 tfogi0 Pop-up Turret
0xbbd 3 40 jetba1 Jetty-Syn Bomber
0x016 3 40 jetga1 Jetty-Syn Gunner
0x03a 3 40 fisha0 Stupid Dumb Unnamed Robofish (tm)
0x047 3 40 detna1 Deton
0x038 3 40 skima0 Skim
0x7d4 3 40 treta1 THZ Turret
0x010 3 80 eggma1 Egg Mobile (Boss 1)
0x7d8 3 80 eggna1 Egg Slimer (Boss 2)
0x015 3 40 ccoma1 Crawla Commander
0x008 3 40 tfogi0 Chaos Mode Enemy Spawn
0x138d 3 40 buzza0 Gold Buzz
0x138e 3 40 rbuza0 Red Buzz
0x034 4 20 dissa0 1024 Axis
0x035 4 20 dissa0 512 Axis
0x03b 4 20 dissa0 2048 Axis
0x03e 4 20 dissa0 1024 Axis (Inverted)
0x00f 4 20 dissa0 512 Axis (Inverted)
0x02d 4 20 dissa0 2048 Axis (Inverted)
0x03d 4 20 dissa0 Axis Transfer
0x02e 4 20 dissa0 Axis Transfer Closest
0x037 4 20 dissa0 Axis Transfer LastToFirst
0x03c 4 20 ndrna1 Ideya Drone
0x039 4 20 hoopa0 Hoop
0x02f 4 20 bon1a0 Circle of Rings
0x7d7 4 20 bon1a0 Circle of Rings (Big)
0x800 4 20 nwnga0 Circle of Wing Logos
0x7da 4 20 nwnga0 Circle of Wing Logos (Big)
0x7fe 4 20 nwnga0 Circle of Rings and Wings
0x7ff 4 20 nwnga0 Circle of Rings and Wings (Big)
0x025 4 20 nwnga0 Wing Logo
0x052 4 20 dissa0 Axis Transfer Condition
0x055 4 20 dissa0 Axis Transfer Condition 2
0xbbf 4 20 npraa0 Super Loop
0xbc0 4 20 nprba0 Drill Refill
0xbc1 4 20 nprca0 Helper
0x019 5 20 shtva0 Super Sneakers
0x023 5 20 whtva0 Whirlwind Shield
0x029 5 20 prupa0 Extra Life
0x030 5 20 yltva0 Attraction Shield
0x7d2 5 20 rdtva0 Inferno Shield
0x7e2 5 20 bktva0 Armageddon Shield
0x7e6 5 20 pinva0 Invincibility
0x7ec 5 20 bltva0 Liquid Shield
0x7db 5 20 srbxa0 Super Ring (10 Rings)
0x7dc 5 20 grbxa0 Silver Ring (25 Rings)
0x04e 5 20 mixua0 Teleporter
0x7d5 5 20 eggba0 Eggman
0xbb8 5 20 quesa0 Random
0x01f 6 20 rflga0 CTF Flag (Red)
0x022 6 20 bflga0 CTF Flag (Blue)
0x7dd 6 20 tokea0 Special Stage Token
0x056 6 20 signd0 End Level Sign
0x021 6 20 bubla0 Air Bubble Patch
0x040 6 20 emera0 Emerald Hunt Location 1
0xbba 6 20 emera0 Emerald Hunt Location 2
0xbb9 6 20 emera0 Emerald Hunt Location 3
0xbbe 6 20 stpta0 Star Post
0x1389 6 20 ppsha0 Push
0x138a 6 20 pplla0 Pull
0x138b 6 20 dissa0 Teleport Destination
0x138f 6 20 dissa0 Cut-Away View
0x043 6 20 dspka0 Ceiling Spike
0x044 6 20 uspka0 Floor Spike
0x017 6 20 spika0 Spikeball (Special Stage)
0x011 6 20 dissa0 Boss Flypoint
0x012 6 20 dissa0 Zoom Tube Waypoint
0x801 6 20 dissa0 Egg Capsule Center
0x033 6 20 lasra0 Laser
0x024 7 20 fwr1b0 GFZ Flower (Normal)
0x046 7 20 fwr2a0 GFZ Sunflower
0x049 7 20 fwr3a0 GFZ Budding Flower
0x04a 7 20 bus1a0 Berry Bush
0x04b 7 20 bus2a0 Bush
0x7f3 7 20 thzpa0 THZ Flower
0x00d 7 20 xms2a0 Palm Tree
0x051 7 20 garga1 Gargoyle
;wtraa0 through wtrha0 are empty sprites, formerly used for the below
0x7ea 7 20 dumba0 Ambient Water SFX 1A (Large)
0x7e8 7 20 dumba0 Ambient Water SFX 1B (Large)
0x7e7 7 20 dumba0 Ambient Water SFX 2A (Medium)
0x7fd 7 20 dumba0 Ambient Water SFX 2B (Medium)
0x053 7 20 dumba0 Ambient Water SFX 3A (Small)
0x7e3 7 20 dumba0 Ambient Water SFX 3B (Small)
0x7e9 7 20 dumba0 Ambient Water SFX 4A (Extra Large)
0x01b 7 20 dumba0 Ambient Water SFX 4B (Extra Large)
0x00e 7 20 dumba0 Random Ambience 1
0x02b 7 20 dumba0 Random Ambience 2
0x031 7 20 chana0 Hanging Chain
0x7d6 7 20 alrma0 THZ Alarm
0x7d1 7 20 fwr4a0 CEZ Flower
0x018 7 20 flama0 CEZ Torch
0x7d3 7 20 dissa0 Light Source (MAP92)
0x2710 8 20 gooma0 Overworld Goomba
0x2711 8 20 bgoma0 Underworld Goomba
0x2712 8 20 mus1a0 Bush (Short)
0x2713 8 20 mus2a0 Bush (Tall)
0x2714 8 20 toada0 Toad
0x2715 8 20 coina0 Coin
0x013 8 20 koopa0 King Bowser
0x00a 8 20 shlla0 Koopa Shell
0x00c 8 20 maxea0 Axe
0x032 8 20 ffwra0 Fire Flower
0x01d 8 20 pumaa0 Puma (Mario Fireball)
0x005 9 20 xms1a0 Pole
0x006 9 20 xms3a0 Snowman
0x00d 9 20 xms2a0 Candy Cane
0x054 11 20 bon1a0 5 Vertical Rings (Yellow Spring)
0x02c 11 20 bon1a0 5 Vertical Rings (Red Spring)
0x04c 11 20 bon1a0 5 Diagonal Rings (Yellow Spring)
0x04d 11 20 bon1a0 10 Diagonal Rings (Red Spring)
0x7de 11 20 bon1a0 Ring
0x045 11 20 homra0 Homing Ring
0xbbb 11 20 raila0 Rail Ring
0x01a 11 20 autra0 Automatic Ring
0x036 11 20 bomra0 Explosion Ring
0x050 11 20 infra0 Infinity Ring
0x138c 12 20 sprba0 Blue Spring
0x01c 12 20 sprya0 Yellow Spring (Up)
0x04f 12 20 sprra0 Red Spring (Up)
0x7df 12 20 yspra1 Yellow Spring (Diagonal Up)
0x026 12 20 rspra1 Red Spring (Diagonal Up)
0x014 12 20 ysuda1 Yellow Spring (Diagonal Down)
0x027 12 20 rsuda1 Red Spring (Diagonal Down)
0x041 12 20 sudya0 Yellow Spring (Down)
0x042 12 20 sudra0 Red Spring (Down)
0x01e 12 20 stemd0 THZ Gas Jet
0x020 12 20 fansa0 THZ Fan
; ID used to classify linedefs
; Name textual description of class
;
; Note: When converting a sector to a door, the linedef types
; available are those in class number two.
[LineDefs.Classes]
0x001 *Important
0x002 Floor Over Floor
0x003 Linedef Executor
0x004 Plane Movement
0x005 Lighting
0x006 Scroll Effects
0x007 Pushers
0x008 Miscellaneous
; ID
; class
; codes
; n does NOT require a tag number
; W walk-over activation
; S switch (triggered by player use)
; G gunfire (pistol, shotgun, chaingun) cross or hit line
; 1 the line may be activated once only
; R potentially repeatable activation
; & affected sectors locked out from further changes
; m monster actions can activate the line's effect
; speed
; (slow=1, medium = 2, fast = 3, turbo = 4)
; time
; texture changes
; description
[LineDefs.Types]
; Commonly used types
0x019 1 - - - - Floor Over Floor: Solid, Opaque, Shadowcasting
0x02d 1 - - - - Floor Over Floor: Water, Translucent
0x010 1 - - - - Colormap
0x001 2 - - - - Crumbling (No Respawn), Floating, Bobbing
0x002 4 - - - - Continuous Floor/Ceiling Mover
0x003 4 - - - - Continuous Floor Mover
0x004 4 - - - - Continuous Ceiling Mover
0x005 5 - - - - Ceiling Lighting
0x006 4 - - - - Continuous Two-Speed Floor/Ceiling Mover
0x007 4 - - - - Continuous Two-Speed Floor Mover
0x008 4 - - - - Continuous Two-Speed Ceiling Mover
0x009 3 - - - - Trigger Linedef Executor (Race Only, Once)
0x00a 3 - - - - Trigger Linedef Executor (CTF Red Team, Continuous)
0x00b 3 - - - - Trigger Linedef Executor (CTF Red Team, Each Time)
0x00c 3 - - - - Trigger Linedef Executor (CTF Blue Team, Continuous)
0x00d 3 - - - - Trigger Linedef Executor (CTF Blue Team, Each Time)
0x00f 3 - - - - Trigger Linedef Executor (No More Enemies, Once)
0x010 5 - - - - Colormap
0x012 8 - - - - Zoom Tube Parameters
0x013 3 - - - - Trigger Linedef Executor (Character Ability, Continuous)
0x014 3 - - - - Trigger Linedef Executor (Character Ability, Each Time)
0x015 3 - - - - Trigger Linedef Executor (Character Ability, Once)
0x018 4 - - - - Instant Ceiling Raise
0x019 2 - - - - Solid, Opaque, Shadowcasting
0x01a 4 - - - - Instant Floor Lower
0x021 2 - - - - Solid, Opaque, Non-Shadowcasting
0x022 2 - - - - Floating, Bobbing
0x023 2 - - - - Crumbling (No Respawn)
0x024 2 - - - - Crumbling (Respawn)
0x025 2 - - - - Crumbling (Respawn), Floating
0x026 2 - - - - Bobbing (Air)
0x027 2 - - - - Crumbling (Respawn), Floating, Bobbing
0x028 2 - - - - Crumbling (Respawn), Bobbing (Air)
0x029 2 - - - - Mario Block
0x02a 2 - - - - Crumbling (No Respawn), Floating
0x02b 4 - - - - Crusher 1 (Ceiling to Floor)
0x02c 2 - - - - Solid, Translucent
0x02d 2 - - - - Water, Translucent
0x02e 2 - - - - Fog Block
0x02f 2 - - - - Half Light Block
0x030 2 - - - - Water, Opaque
0x031 2 - - - - Light Block
0x032 4 - - - - Crusher 2 (Floor to Ceiling)
0x033 2 - - - - Solid, No Sides
0x034 2 - - - - Intangible, Translucent
0x035 2 - - - - Laser Block
0x036 2 - - - - Thwomp Block
0x037 2 - - - - Bustable Block
0x038 2 - - - - Quicksand Block
0x039 2 - - - - Solid, Invisible
0x03a 2 - - - - Intangible, Invisible
0x03b 2 - - - - Intangible from Bottom, Opaque
0x03c 5 - - - - Adjustable Pulsating Light
0x03d 5 - - - - Adjustable Flickering Light
0x03e 2 - - - - Intangible, Opaque
0x03f 8 - - - - Camera Scanner
0x040 8 - - - - Per-Sector Gravity
0x041 8 - - - - Speed Pad
0x042 8 - - - - Flat Alignment
0x043 2 - - - - Intangible, Sides Only
0x044 2 - - - - Adjustable Bobbing (Air)
0x045 2 - - - - Solid, Sides Only
0x046 8 - - - - Ideya Time Modifier
0x047 8 - - - - Custom Exit
0x048 2 - - - - Reverse Adjustable Bobbing (Air)
0x049 8 - - - - Disable Linedef
0x04a 2 - - - - Water, Translucent, No Sides
0x04b 2 - - - - Water, Opaque, No Sides
0x04c 2 - - - - Shatter Block
0x04d 2 - - - - Intangible from Bottom, Translucent, No Sides
0x04e 2 - - - - Spin Bust Block
0x04f 2 - - - - Crumbling (Respawn)
0x050 2 - - - - Crumbling (No Respawn)
0x051 2 - - - - Intangible from Bottom, Translucent
0x052 2 - - - - Intangible from Bottom, Crumbling (Respawn), Translucent
0x053 2 - - - - Intangible from Bottom, Crumbling (No Respawn), Translucent
0x054 2 - - - - Spin Bust Block, Translucent
0x055 6 - - - - Scroll Wall First Side Opposite Direction
0x056 2 - - - - Shatter Block, Translucent
0x057 2 - - - - Custom
0x058 4 - - - - Continuously Falling Sector
0x059 2 - - - - Rising, Solid, Opaque, Shadowcasting
0x05a 2 - - - - Rising, Solid, Opaque, Non-shadowcasting
0x05b 2 - - - - Rising, Solid, Translucent
0x05c 2 - - - - Rising, Intangible from Bottom, Opaque
0x05d 2 - - - - Rising, Intangible from Bottom, Translucent
0x05e 2 - - - - Rising, Solid, Invisible
0x05f 3 - - - - Trigger Linedef Executor (Ring Count, Continuous)
0x060 3 - - - - Trigger Linedef Executor (Continuous)
0x061 3 - - - - Trigger Linedef Executor (Each Time)
0x062 3 - - - - Trigger Linedef Executor (Once)
0x063 3 - - - - Trigger Linedef Executor (Ring Count, Once)
0x064 6 - - - - Scroll Wall First Side Left
0x065 3 - - - - Set Tagged Sector's Floor Height/Pic
0x066 3 - - - - Set Tagged Sector's Ceiling Height/Pic
0x067 3 - - - - Set Tagged Sector's Light Level
0x068 3 - - - - Teleport Player to Tagged Sector
0x069 3 - - - - Change Music
0x06a 3 - - - - Move Tagged Sector's Floor
0x06b 3 - - - - Move Tagged Sector's Ceiling
0x06c 3 - - - - Lower Floor by Line
0x06d 3 - - - - Raise Floor by Line
0x06e 3 - - - - Lower Ceiling by Line
0x06f 3 - - - - Raise Ceiling by Line
0x070 3 - - - - Change Tagged Sector's Tag
0x071 3 - - - - Run Script
0x072 3 - - - - Change Front Sector's Tag
0x073 3 - - - - Play SFX
0x074 3 - - - - Stop Plane Movement
0x075 3 - - - - Fade Light Level
0x076 3 - - - - Stop Lighting Effect
0x077 3 - - - - Start Adjustable Fire Flicker
0x078 3 - - - - Start Adjustable Glowing Light
0x079 3 - - - - Cut-Away View
0x07a 3 - - - - Stop Object
0x07b 3 - - - - Change Sky
0x07c 3 - - - - Change Weather
0x07d 3 - - - - Change Object State
0x07e 3 - - - - Stop Object
0x07f 3 - - - - Award Score
0x080 3 - - - - Start Platform Movement
0x081 3 - - - - Crush Ceiling Once
0x082 3 - - - - Crush Floor Once
0x083 3 - - - - Crush Floor And Ceiling Once
0x084 3 - - - - Enable/Disable 2D Mode
0x085 3 - - - - Enable/Disable Gravity Flip
0x086 3 - - - - Award Power-Up
0x087 3 - - - - Change Plane Scroller Direction
0x088 3 - - - - Shatter FOF
0x089 3 - - - - Disable Player Control
0x08a 3 - - - - Change Object Size
0x08b 3 - - - - Change Tagged Linedef Textures
0x08c 3 - - - - Start Metal Sonic Race
0x08d 3 - - - - Unlockable Trigger
0x08e 3 - - - - Change Object Type State
0x08f 3 - - - - Call Lua Function
0x090 3 - - - - Earthquake
0x096 3 - - - - Execute Linedef Executor (from tag)
0x097 3 - - - - Execute Linedef Executor (random range)
0x0c8 6 - - - - Disp Scroll Ceiling Texture and Carry Objects
0x0c9 6 - - - - Disp Carry Objects on Ceiling
0x0ca 6 - - - - Scroll Ceiling Texture and Carry Objects
0x0cb 6 - - - - Carry Objects on Ceiling
0x0cc 6 - - - - Acc Scroll Ceiling Texture and Carry Objects
0x0cd 6 - - - - Acc Carry Objects on Ceiling
0x0d5 5 - - - - Floor Lighting
0x0d6 6 - - - - Acc Scroll Ceiling Texture
0x0d7 6 - - - - Acc Scroll Floor Texture
0x0d8 6 - - - - Acc Carry Objects on Floor
0x0d9 6 - - - - Acc Scroll Floor Texture and Carry Objects
0x0da 6 - - - - Acc Scroll Wall According to Linedef
0x0df 8 - - - - Friction
0x0e0 7 - - - - Wind
0x0e1 7 - - - - Current
0x0e2 7 - - - - Boom Push/Pull Thing
0x0e3 7 - - - - Upwards Current
0x0e4 7 - - - - Downwards Current
0x0e5 7 - - - - Upwards Wind
0x0e6 7 - - - - Downwards Wind
0x0e8 4 - - - - Activate Floating Platform
0x0e9 4 - - - - Activate Floating Platform (Adjustable Speed)
0x0f2 8 - - - - Fake Floor
0x0f5 6 - - - - Disp Scroll Ceiling Texture
0x0f6 6 - - - - Disp Scroll Floor Texture
0x0f7 6 - - - - Disp Carry Objects on Floor
0x0f8 6 - - - - Disp Scroll Floor Texture and Carry Objects
0x0f9 6 - - - - Disp Scroll Wall According to Linedef
0x0fa 6 - - - - Scroll Ceiling Texture
0x0fb 6 - - - - Scroll Floor Texture
0x0fc 6 - - - - Carry Objects on Floor
0x0fd 6 - - - - Scroll Floor Texture and Carry Objects
0x0fe 6 - - - - Scroll Wall According to Linedef
0x0ff 6 - - - - Scroll Texture by Offsets
[Sectors.Types]
0x001 Blink (random)
0x002 Blink (1/2 second)
0x003 Blink (1 second)
0x004 Spikes
0x005 Death Pit (no camera modifications)
0x006 Space Countdown
0x007 Damage (Fire)
0x008 Light oscillates
0x009 Damage (Special Stage)
0x00a Instant Kill
0x00b Damage (Non-Elemental)
0x00c Blink (1 second synch)
0x00d Blink (1/2 second synch)
0x00e Bouncy Sector (FOF Control Only)
0x010 Death Pit (camera modifications)
0x011 Light flickers like fire
0x012 Damage (Electrical)
0x021 Special Stage Goal
0x100 Ice/Sludge
0x200 Wind/Current
0x207 Damage (Fire) and Current
0x29a Egg Trap Capsule
0x2b2 Button 1 (Open Door A/700 B/701)
0x2b3 Button 2 (Open Door A/702 B/703)
0x2b4 Button 3 (Open Door A/704 B/705)
0x2b5 Button 4 (Open Door A/706 B/707)
0x2b6 Button 5 (Open Door A/708 B/709)
0x2b7 Button 6 (Open Door A/710 B/711)
0x2b8 Button 7 (Open Door A/712 B/713)
0x2b9 Button 8 (Open Door A/714 B/715)
0x2ba Button 9 (Open Door A/716 B/717)
0x2bb Button 10 (Open Door A/718 B/719)
0x2bc Button 11 (Open Door A/720 B/721)
0x2bd Button 12 (Open Door A/722 B/723)
0x2be Button 13 (Open Door A/724 B/725)
0x2bf Button 14 (Open Door A/726 B/727)
0x2c0 Button 15 (Open Door A/728 B/729)
0x2c1 Button 16 (Open Door A/730 B/731)
0x2c2 Button 17 (Open Door A/732 B/733)
0x2c3 Button 18 (Open Door A/734 B/735)
0x2c4 Button 19 (Open Door A/736 B/737)
0x2c5 Button 20 (Open Door A/738 B/739)
0x2c6 Button 21 (THZ2 A/740 B/741 D/742)
0x2c7 Close Door Blazing (Tag 743)
0x300 Ice/Sludge and Wind/Current
0x3c7 Linedef Executor (Emerald Check)
0x3c8 Linedef Executor (NiGHTS Mare)
0x3c9 Super Sonic Transform
0x3ca Check 3DFloors for Linedef Executor
0x3cb Linedef Executor (Pushable Objects)
0x3cc Linedef Executor (No Floor Touch, All Players)
0x3cd Linedef Executor (Floor Touch, All Players)
0x3ce Linedef Executor (No Floor Touch)
0x3cf Linedef Executor (Floor Touch)
0x3d0 Speed Pad (No Spin)
0x3d1 Speed Pad (Spin)
0x3d2 Ring Drainer (Floor Touch)
0x3d3 Spinner
0x3d4 Ring Drainer (No Floor Touch)
0x3d5 Raise Ceiling to Highest (Tag 744)
0x3d6 Exit Sector
0x3d7 Damage (Water)
0x3d8 Damage (Water) and Current
0x3d9 Conveyor Belt
0x3da THZ2 Slime Raise (B/712 S/713 P/714 D/715 S/716)
0x3db No Tag Zone
0x3dc CTF - Red Team Base
0x3dd CTF - Blue Team Base
0x3de Special Stage (Floor=Time) (Ceiling=Rings)
0x3df Custom Gravity
0x3e0 Ramp Sector
0x3e1 Starpost Activator
0x3e2 Finish Line
0x3e4 Non-Ramp Sector
0x3e5 Fan Sector
0x3e6 Zoom Tube Start
0x3e7 Zoom Tube End
0x5dc Bustable Block Sprite ROIA
0x5dd Bustable Block Sprite ROIB
0x5de Bustable Block Sprite ROIC
0x5df Bustable Block Sprite ROID
0x5e0 Bustable Block Sprite ROIE
0x5e1 Bustable Block Sprite ROIF
0x5e2 Bustable Block Sprite ROIG
0x5e3 Bustable Block Sprite ROIH
0x5e4 Bustable Block Sprite ROII
0x5e5 Bustable Block Sprite ROIJ
0x5e6 Bustable Block Sprite ROIK
0x5e7 Bustable Block Sprite ROIL
0x5e8 Bustable Block Sprite ROIM
0x5e9 Bustable Block Sprite ROIN
0x5ea Bustable Block Sprite ROIO
0x5eb Bustable Block Sprite ROIP
-539
View File
@@ -1,539 +0,0 @@
# Yadex game definition file version 4
#
# srb2.ygd
# Yadex Game Definitions for Sonic Robo Blast 2
# See Yadex's doc/ygd.html for the specs.
#
# File made by Alam_GBC.
# Updated by Graue, 2006-06-19
# Yadex has only a few games like "doom2", etc. hardcoded into it.
# Rather than hack the code, since I don't expect to ever edit Doom 2,
# I went into /usr/local/share/games/yadex/1.7.0/ and renamed
# doom2.ygd to doom2_real.ygd, then installed this file as srb2.ygd,
# then made a hard link from doom2.ygd to srb2.ygd; that is:
# ln srb2.ygd /usr/local/share/games/yadex/1.7.0/doom2.ygd
# If you do that, change "iwad2" in yadex.cfg to point to your copy of
# srb2.srb.
# It's not the most beautiful thing to do, but it works. Also, Doom 2
# is the default game, so this way you don't have to do anything
# special when starting Yadex.
# I claim no copyright on this file. -- Graue <graue@oceanbase.org>
level_format doom
level_name map01
picture_format normal
sky_flat sky1
texture_format normal
texture_lumps normal
#
# Definition of linedef type groups
# Format is : ldtgroup <ldtgroup> <description>
#
ldtgroup e "Linedef Executor"
ldtgroup E "3D Floors"
ldtgroup A "Water"
ldtgroup t "Scroll Effects"
ldtgroup x "Misc."
ldtgroup L "Lighting"
ldtgroup l "Pushers"
ldtgroup P "Plane Movement"
#
# Definition of linedef types
# Format is : ldt <number> <ldtgroup> <shortdesc> <longdesc>
# <shortdesc> must not exceed 16 characters.
#
# Linedef Executor
ldt 00009 e "Trigger(Race1)" "Trigger (Race, Once) (1.09)"
ldt 00010 e "Trigger(RedCont)" "Trigger (CTF Red Team, Continuous) (1.09)"
ldt 00011 e "Trigger(RedEach)" "Trigger (CTF Red Team, Once per Floor Touch) (1.09)"
ldt 00012 e "Trigger(BluCont)" "Trigger (CTF Blue Team, Continuous) (1.09)"
ldt 00013 e "Trigger(BluEach)" "Trigger (CTF Blue Team, Once per Floor Touch) (1.09)"
ldt 00015 e "Trigger(NoEnemy)" "Trigger (Once when no more enemies) (1.09)"
ldt 00019 e "Trigger(ChrCont)" "Trigger (Character Ability, Continuous) (1.09)"
ldt 00020 e "Trigger(ChrEach)" "Trigger (Character Ability, Once per Floor Touch) (1.09)"
ldt 00021 e "Trigger(Chr1)" "Trigger (Character Ability, Once) (1.09)"
ldt 00095 e "Trigger(RngCont)" "Trigger (Ring Count, Continuous) (1.09)"
ldt 00096 e "Trigger (Cont)" "Trigger (Continuous)"
ldt 00097 e "Trigger (Each)" "Trigger (Once per Floor Touch)"
ldt 00098 e "Trigger (1)" "Trigger (Once)"
ldt 00099 e "Trigger (Rng1)" "Trigger (Ring Count, Once) (1.09)"
ldt 00101 e "Set Floor" "Set Tagged Sector's Floor Height/Flat"
ldt 00102 e "Set Ceiling" "Set Tagged Sector's Ceiling Height/Flat"
ldt 00103 e "Set Light Level" "Set Tagged Sector's Light Level"
ldt 00104 e "Teleport to" "Teleport to Tagged Sector"
ldt 00105 e "Music Change" "Music Change"
ldt 00106 e "Move Floor by FS" "Move Floor by Front Sector (Length=Speed)"
ldt 00107 e "Move Ceil. by FS" "Move Ceiling by Front Sector (Length=Speed)"
ldt 00108 e "Lower Flr by Ld" "Lower Floor by Line (dx=speed, dy=amount)"
ldt 00109 e "Raise Flr by Ld" "Raise Floor by Line (dx=speed, dy=amount)"
ldt 00110 e "Lower Ceil by Ld" "Lower Ceiling by Line (dx=speed, dy=amount)"
ldt 00111 e "Raise Ceil by Ld" "Raise Ceiling by Line (dx=speed, dy=amount)"
ldt 00112 e "Change Clg/T Tag" "Change Calling Sector's Tag (Change Tagged Sector's Tag in 1.09)"
ldt 00113 e "Run Script" "Run Script"
ldt 00114 e "Change FS Tag" "Change Front Sector's Tag"
ldt 00115 e "Play SFX" "Play SFX"
ldt 00116 e "Stop Plane Move" "Stop Plane Movement"
ldt 00117 e "Fade Light to FS" "Fade Light Level to Front Sector (Length=Speed)"
ldt 00118 e "Stop Light FX" "Stop Lighting Effect"
ldt 00119 e "Start Fire Flckr" "Start Adjustable Fire Flicker"
ldt 00120 e "Start Pulsate" "Start Adjustable Pulsating Light"
ldt 00121 e "Cut-Away View" "Cut-Away View"
ldt 00122 e "Stop Object" "Stop Object"
ldt 00123 e "Change Sky" "Change Sky (1.09)"
ldt 00124 e "Change Weather" "Change Weather (1.09)"
ldt 00125 e "Change Obj State" "Change Object State (1.09)"
ldt 00126 e "Award Score" "Award Score (1.09)"
ldt 00127 e "Start Platf Mvmt" "Start Platform Movement"
# 3D Floors/Blocks
ldt 00001 E "CrumBobFlt NoRet" "Crumbling Floating Bobbing FOF (Never Reappears)"
ldt 00025 E "FOFSoliOpaquShad" "FOF (Solid, Opaque, Shadows)"
ldt 00033 E "FOFSolOpaqNShado" "FOF (Solid, Opaque, No Shadows)"
ldt 00034 E "BobbingFOFWater" "Bobbing Platform (Water)"
ldt 00035 E "CrumblingFOFNRea" "Crumbling FOF (Never Reappears)"
ldt 00036 E "CrumblingFOFReap" "Crumbling FOF (Reappears)"
ldt 00037 E "CrumblingFOFRaps" "Crumbling Floating FOF (Reappears)"
ldt 00038 E "BobbingFOF(Air)" "Bobbing FOF (Air)"
ldt 00039 E "CrumBobbFOF(Rep)" "Crumbling Floating Bobbing FOF (Reappears)"
ldt 00040 E "CrumBobbFOF(Air)" "Crumbling Bobbing FOF (Air)"
ldt 00041 E "Mario Block" "Mario Block"
ldt 00042 E "CrumblingFOF(NR)" "Crumbling Floating FOF (Never Reappears)"
ldt 00044 E "FOFSolidTransluc" "FOF (Solid, Translucent)"
ldt 00046 E "Fog Block" "Fog Block"
ldt 00047 E "Light Block" "Light Block"
ldt 00049 E "2x Light Block" "Double Light Block"
ldt 00051 E "FOFSolid,NoSides" "FOF (Solid, No Sides)"
ldt 00052 E "FOFIntangTranslu" "FOF (Intangible, Translucent)"
ldt 00053 E "Laser Block" "Laser Block"
ldt 00054 E "Thwomp Block" "Thwomp Block"
ldt 00055 E "Bustable Block" "Bustable Block"
ldt 00056 E "Quicksand Block" "Quicksand Block"
ldt 00057 E "FOFSolidInv" "FOF (Solid, Invisible)"
ldt 00058 E "FOFIntangiInvisi" "FOF (Intangible, Invisible)"
ldt 00059 E "Platform" "Platform"
ldt 00062 E "FOFIntangibOpaqu" "FOF (Intangible, Opaque)"
ldt 00067 E "FOFIntaSidesOnly" "FOF (Intangible, Sides Only)"
#removed: ldt 00068 E "AdjBobbFOF(Air)" "Adjustable Bobbing FOF (Air)"
ldt 00069 E "FOFSoliSidesOnly" "FOF (Solid, Sides Only)"
#removed: ldt 00072 E "RevAdjBobFOFAir" "Reverse Adjustable Bobbing FOF (Air)"
ldt 00076 E "Shatter Block" "Shatter Block"
ldt 00077 E "Platf (Trnsl-NS)" "Platform (Translucent, No Sides)"
ldt 00078 E "Spin Bust Block" "Spin Bust Block"
ldt 00079 E "CrumblPlatf(Rep)" "Crumbling Platform (Reappears)"
ldt 00080 E "CrumblPlat(NRep)" "Crumbling Platform (Never Reappears)"
ldt 00081 E "Platform (Trnsl)" "Platform (Translucent)"
ldt 00082 E "CrmPlt(Trns,Rep)" "Crumbling Platform (Translucent, Reappears)"
ldt 00083 E "CrmPlt(Trs,NRep)" "Crumbling Platform (Translucent, Never Reappears)"
ldt 00084 E "SpinBust (Trnsl)" "Spin Bust Block (Translucent)"
ldt 00086 E "Shatter (Trnsl.)" "Shatter Block (Translucent)"
ldt 00087 E "Custom FOF" "Custom FOF (1.09)"
ldt 00089 E "Rising FOF Shado" "Rising FOF (Solid, Opaque, Shadows) (1.09)"
ldt 00090 E "Rising FOF NShad" "Rising FOF (Solid, Opaque, No Shadows) (1.09)"
ldt 00091 E "Rising FOF Trnsl" "Rising FOF (Translucent) (1.09)"
ldt 00092 E "Rising Plat Opaq" "Rising Platform (Opaque) (1.09)"
ldt 00093 E "Rising Plat Trsl" "Rising Platform (Translucent) (1.09)"
ldt 00094 E "Rising FOF SlInv" "Rising FOF (Solid, Invisible) (1.09)"
# Water
ldt 00045 A "Water (Transl.)" "Water (Translucent)"
ldt 00048 A "Water (Opaque)" "Water (Opaque)"
ldt 00074 A "Water (Trnsl-NS)" "Water (Translucent, No Sides)"
ldt 00075 A "Water (Opaq-NS)" "Water (Opaque, No Sides)"
# Scroll Effects
ldt 00085 t "Scr Wl Front Opp" "Scroll Wall First Side Opposite Direction"
ldt 00100 t "Scr Wl FrontLeft" "Scroll Wall First Side Left"
ldt 00202 t "Scr&Carry Ceil" "Scroll&Carry Things Sector Ceiling (FOF Conveyor)"
ldt 00203 t "Carry Ceiling" "Carry Things on Sector Ceiling (FOF Conveyor)"
ldt 00214 t "AccScr Ceiling" "Accel Scroll Sector's Ceiling"
ldt 00215 t "AccScr Floor" "Accel Scroll Sector's Floor"
ldt 00216 t "AccCarry Floor" "Accel Carry Things on Floor"
ldt 00217 t "AccScr&Carry Flr" "Accel Scroll Floor & Carry Things"
ldt 00218 t "AccScr Front" "Accel Scroll 1st Side Tagged Line"
ldt 00245 t "RemScr Ceiling" "Remote Scroll Sector's Ceiling"
ldt 00246 t "RemScr Floor" "Remote Scroll Sector's Floor"
ldt 00247 t "RemCarry Floor" "Remote Carry Things on Floor"
ldt 00248 t "RemScr&Carry Flr" "Remote Scroll Floor & Carry Things"
ldt 00249 t "RemScr Front" "Remote Scroll 1st Side Tagged Line"
ldt 00250 t "Scroll Ceiling" "Scroll Sector's Ceiling"
ldt 00251 t "Scroll Floor" "Scroll Sector's Floor"
ldt 00252 t "Carry on Floor" "Carry Things On Sector Floor"
ldt 00253 t "Scroll&Carry Flr" "Scroll&Carry Things Sector Floor"
ldt 00254 t "Scroll Front" "Scroll First Side of Tagged Line"
ldt 00255 t "Scroll by Offset" "Effect Scrolling From XY Offsets"
# Misc.
ldt 00018 x "Zoom Tube Params" "Zoom Tube Parameters (1.09)"
ldt 00063 x "Camera Scanner" "Camera Scanner"
ldt 00064 x "Sector Gravity" "Per-Sector Gravity"
ldt 00065 x "Speed Pad" "Speed Pad"
ldt 00066 x "Flat Alignment" "Flat Alignment"
ldt 00070 x "IdeyaTimeModify " "Ideya Time Modifier"
ldt 00071 x "Custom Exit" "Custom Exit"
ldt 00073 x "Disable Linedef" "Disable Linedef (main game only)"
ldt 00223 x "Friction" "Friction (Ice>100, Sludge<100)"
ldt 00242 x "Fake Floor" "Fake Floor"
# Lighting
ldt 00005 L "Ceiling Lighting" "Ceiling Lighting"
ldt 00016 L "Colormap" "Colormap"
ldt 00060 L "AdjPulsLight" "Adjustable Pulsating Light"
ldt 00061 L "AdjFlickLight" "Adjustable Flickering Light"
ldt 00213 L "Floor Lighting" "Floor Lighting"
# Plane Movement
ldt 00002 P "ContMover F/C" "Continuous Floor/Ceiling Mover"
ldt 00003 P "ContMover Floor" "Continuous Floor Mover"
ldt 00004 P "ContMover Ceilng" "Continuous Ceiling Mover"
ldt 00006 P "Cont2Mover F/C" "Continuous 2-Speed Floor/Ceiling Mover"
ldt 00007 P "Cont2Mover Floor" "Continuous 2-Speed Floor Mover"
ldt 00008 P "Cont2Mover Ceilg" "Continuous 2-Speed Ceiling Mover"
ldt 00024 P "InstCeilingRaise" "Instant Ceiling Raise"
ldt 00026 P "InstFloorLower" "Instant Floor Lower"
ldt 00043 P "Crusher 1 (C2F)" "Crusher 1 (Ceiling to Floor)"
ldt 00050 P "Crusher 2 (F2C)" "Crusher 2 (Floor to Ceiling)"
ldt 00088 P "Continuous Fall" "Continuously Falling Sector (1.09)"
ldt 00232 P "FloatingPlatform" "Floating Platform"
ldt 00233 P "FloatPFAdjuSpeed" "Floating Platform Adjustable Speed"
# Pushers
ldt 00224 l "Wind Force/Dir" "Wind Force/Direction"
ldt 00225 l "Water Force/Dir" "Water Current Force/Direction"
ldt 00226 l "Boom Push/Pull" "Boom Push/Pull Thing"
ldt 00227 l "Upwards Current" "Upwards Current"
ldt 00228 l "DownwardsCurrent" "Downwards Current"
ldt 00229 l "Upwards Wind" "Upwards Wind"
ldt 00230 l "Downwards Wind" "Downwards Wind"
#
# Definition of sector types
# Format is : st <number> <shortdesc> <longdesc>
# <shortdesc> must not exceed 14 characters.
#
st 00000 "X Normal" "X Normal"
st 00001 "Blink random" "Blink (random)"
st 00002 "Blink halfsec" "Blink (1/2 second)"
st 00003 "Blink oneasec" "Blink (1 second)"
st 00004 "Spikes of Doom" "Spikes"
st 00005 "DeathPit (ncm)" "Death Pit (no camera modifications)"
st 00006 "SpaceCountdown" "Space Countdown"
st 00007 "Fire Damage" "Damage (Fire)"
st 00008 "Lightoscilates" "Light oscillates"
st 00009 "SS Damage" "Damage (Special Stage)"
st 00010 "Instant Kill" "Instant Kill"
st 00011 "Normal Damage" "Damage (Non-elemental)"
st 00012 "Blinks oneasec" "Blink (1 second synch)"
st 00013 "Blinks hafasec" "Blink (1/2 second synch)"
st 00014 "FOF Bouncy Con" "Bouncy Sector (FOF Control Only)"
st 00016 "DeathPit (wcm)" "Death Pit (camera modifications)"
st 00017 "Lightslikefire" "Light flickers like fire"
st 00018 "Elec Damage" "Damage (Electrical)"
st 00256 "Ice/Sludge" "Ice/Sludge"
st 00512 "Wind/Current" "Wind/Current"
st 00680 "EggCapsule But" "Egg Capsule (Button)"
st 00681 "EggCapsule Top" "Egg Capsule (Top)"
st 00682 "EggCapsule Bot" "Egg Capsule (Bottom)"
st 00683 "EggCapsule Cen" "Egg Capsule (Center)"
st 00690 "Button 01" "Button 1 (Open Door A/700 B/701)"
st 00691 "Button 02" "Button 2 (Open Door A/702 B/703)"
st 00692 "Button 03" "Button 3 (Open Door A/704 B/705)"
st 00693 "Button 04" "Button 4 (Open Door A/706 B/707)"
st 00694 "Button 05" "Button 5 (Open Door A/708 B/709)"
st 00695 "Button 06" "Button 6 (Open Door A/710 B/711)"
st 00696 "Button 07" "Button 7 (Open Door A/712 B/713)"
st 00697 "Button 08" "Button 8 (Open Door A/714 B/715)"
st 00698 "Button 09" "Button 9 (Open Door A/716 B/717)"
st 00699 "Button 10" "Button 10 (Open Door A/718 B/719)"
st 00700 "Button 11" "Button 11 (Open Door A/720 B/721)"
st 00701 "Button 12" "Button 12 (Open Door A/722 B/723)"
st 00702 "Button 13" "Button 13 (Open Door A/724 B/725)"
st 00703 "Button 14" "Button 14 (Open Door A/726 B/727)"
st 00704 "Button 15" "Button 15 (Open Door A/728 B/729)"
st 00705 "Button 16" "Button 16 (Open Door A/730 B/731)"
st 00706 "Button 17" "Button 17 (Open Door A/732 B/733)"
st 00707 "Button 18" "Button 18 (Open Door A/734 B/735)"
st 00708 "Button 19" "Button 19 (Open Door A/736 B/737)"
st 00709 "Button 20" "Button 20 (Open Door A/738 B/739)"
st 00710 "Button 21" "Button 21 (THZ2 A/740 B/741 D/742)"
st 00768 "IceSluWindCurr" "Ice/Sludge and Wind/Current"
st 00974 "Linedefx (NFT)" "Linedef Executor (No Floor Touch)"
st 00975 "Linedefx (WFT)" "Linedef Executor (Floor Touch)"
st 00976 "Speed Pad (NS)" "Speed Pad (No Spin)"
st 00977 "Speed Pad (WS)" "Speed Pad (Spin)"
st 00978 "Ring Drainer" "Ring Drainer"
st 00979 "Spinner" "Spinner"
st 00980 "Ring Drain NFT" "Ring Drainer (No Floor Touch)" # 1.09?
st 00981 "RaiseCeilHghst" "Raise Ceiling to Highest (tag 744) (obsolete)"
st 00982 "Exit" "Exit Sector"
st 00983 "Water Damage" "Damage (Water)"
st 00984 "WaterDm&Curent" "Damage (Water) and Current"
st 00985 "ConveyorBelt" "Conveyor Belt"
st 00986 "Slime Raise" "THZ2 Slime Raise (B/712 W/713 P/714 D/715 S/716)"
st 00987 "No Tag Zone" "No Tag Zone"
st 00988 "CTF - Red" "CTF - Red Team Base"
st 00989 "CTF - Bule" "CTF - Blue Team Base"
st 00990 "SS Control" "Special Stage (Floor=Time) (Ceiling=Rings)"
st 00991 "Custom Gravity" "Custom Gravity"
st 00992 "Ramp" "Ramp Sector (Stairs)"
st 00993 "Starpost Actor" "Starpost Activator"
st 00994 "Hockey - Red" "Hockey - Red Team Goal (Finish Line in 1.09)"
st 00995 "Hockey - Blue" "Hockey - Blue Team Goal (not in 1.09)"
st 00996 "Non-Ramp" "Non-Ramp Sector"
st 00997 "Fan Sector" "Fan Sector"
st 00998 "Zoom Tube Strt" "Zoom Tube Start (1.09)"
st 00999 "Zoom Tube End" "Zoom Tube End (1.09)"
st 01500 "BustSprt ROIA" "Bustable Block Sprite ROIA (1.09)"
st 01501 "BustSprt ROIB" "Bustable Block Sprite ROIB (1.09)"
st 01502 "BustSprt ROIC" "Bustable Block Sprite ROIC (1.09)"
st 01503 "BustSprt ROID" "Bustable Block Sprite ROID (1.09)"
st 01504 "BustSprt ROIE" "Bustable Block Sprite ROIE (1.09)"
st 01505 "BustSprt ROIF" "Bustable Block Sprite ROIF (1.09)"
st 01506 "BustSprt ROIG" "Bustable Block Sprite ROIG (1.09)"
st 01507 "BustSprt ROIH" "Bustable Block Sprite ROIH (1.09)"
st 01508 "BustSprt ROII" "Bustable Block Sprite ROII (1.09)"
st 01509 "BustSprt ROIJ" "Bustable Block Sprite ROIJ (1.09)"
st 01510 "BustSprt ROIK" "Bustable Block Sprite ROIK (1.09)"
st 01511 "BustSprt ROIL" "Bustable Block Sprite ROIL (1.09)"
st 01512 "BustSprt ROIM" "Bustable Block Sprite ROIM (1.09)"
st 01513 "BustSprt ROIN" "Bustable Block Sprite ROIN (1.09)"
st 01514 "BustSprt ROIO" "Bustable Block Sprite ROIO (1.09)"
st 01515 "BustSprt ROIP" "Bustable Block Sprite ROIP (1.09)"
#
# Definition of thing groups
# Format is : thinggroup <thinggroup> <colour> <description>
#
thinggroup b rgb:f/f/f "Starts"
thinggroup e rgb:f/0/0 "Enemies"
thinggroup n rgb:f/b/0 "Nights Things"
thinggroup p rgb:0/b/b "Power-Up Monitors"
thinggroup o rgb:b/0/c "Misc."
thinggroup d rgb:b/b/b "Scenery"
thinggroup m rgb:f/f/0 "Mario"
thinggroup c rgb:f/b/c "Christmas"
thinggroup r rgb:0/0/f "Rings"
thinggroup s rgb:0/c/0 "Springs and Such"
#
# Definition of things
# Format is :
# thing <number> <thinggroup> <flags> <radius> <desc> [<sprite>]
# <desc> must not exceed 19 characters. <flags> s for see-thur
#
# FIXME: replace dissa0 and dumba0 with sprites that are really there
# FIXME: replace start images of ndrna1 with something better.
# ndrna1 is really the nights drone
#thig 00000 g s ## " " ?????#
thing 00001 b - 32 "Player 01 Start" ndrna1
thing 00002 b - 32 "Player 02 Start" ndrna1
thing 00003 b - 32 "Player 03 Start" ndrna1
thing 00004 b - 32 "Player 04 Start" ndrna1
thing 04001 b - 32 "Player 05 Start" ndrna1
thing 04002 b - 32 "Player 06 Start" ndrna1
thing 04003 b - 32 "Player 07 Start" ndrna1
thing 04004 b - 32 "Player 08 Start" ndrna1
thing 04005 b - 32 "Player 09 Start" ndrna1
thing 04006 b - 32 "Player 10 Start" ndrna1
thing 04007 b - 32 "Player 11 Start" ndrna1
thing 04008 b - 32 "Player 12 Start" ndrna1
thing 04009 b - 32 "Player 13 Start" ndrna1
thing 04010 b - 32 "Player 14 Start" ndrna1
thing 04011 b - 32 "Player 15 Start" ndrna1
thing 04012 b - 32 "Player 16 Start" ndrna1
thing 04013 b - 32 "Player 17 Start" ndrna1
thing 04014 b - 32 "Player 18 Start" ndrna1
thing 04015 b - 32 "Player 19 Start" ndrna1
thing 04016 b - 32 "Player 20 Start" ndrna1
thing 04017 b - 32 "Player 21 Start" ndrna1
thing 04018 b - 32 "Player 22 Start" ndrna1
thing 04019 b - 32 "Player 23 Start" ndrna1
thing 04020 b - 32 "Player 24 Start" ndrna1
thing 04021 b - 32 "Player 25 Start" ndrna1
thing 04022 b - 32 "Player 26 Start" ndrna1
thing 04023 b - 32 "Player 27 Start" ndrna1
thing 04024 b - 32 "Player 28 Start" ndrna1
thing 04025 b - 32 "Player 29 Start" ndrna1
thing 04026 b - 32 "Player 30 Start" ndrna1
thing 04027 b - 32 "Player 31 Start" ndrna1
thing 04028 b - 32 "Player 32 Start" ndrna1
thing 00087 b - 32 "CTF Red Team Start" ndrna1
thing 00089 b - 32 "CTF Blue Team Start" ndrna1
thing 00011 b - 32 "Deathmatch Start" ndrna1
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 00009 e - 40 "Crawla (Red)" sposa1
thing 03004 e - 40 "Crawla (Blue)" possa1
thing 03005 e - 40 "Jetty-Syn Bomber" jetba1
thing 00022 e - 40 "Jetty-Syn Gunner" jetga1
thing 00058 e - 40 "Robofish (tm)" fisha0
thing 00071 e - 40 "Deton" detna1
thing 00056 e - 40 "Skim" skima0
thing 05005 e - 40 "Buzz (Yellow)" buzza0
thing 05006 e - 40 "Buzz (Red)" rbuza0
thing 02004 e - 40 "THZ Turret" treta1
thing 00042 e - 40 "Popup Turret" turre1
thing 00016 e - 80 "Egg Mobile (Boss 1)" eggma1
thing 01008 e - 80 "Egg Slimer (Boss 2)" eggna1
thing 00021 e - 40 "Crawla Commander" ccoma1
thing 00008 e s 20 "ChaosModeEnemySpawn" tfogi0
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 00052 n s 20 "1024 Axis" dissa0
thing 00053 n s 20 "512 Axis" dissa0
thing 00059 n s 20 "2048 Axis" dissa0
thing 00062 n s 20 "1024 Axis(Inverted)" dissa0
thing 00015 n s 20 "512 Axis (Inverted)" dissa0
thing 00045 n s 20 "2048 Axis(Inverted)" dissa0
thing 00061 n s 20 "Axis Transfer" dissa0
thing 00046 n s 20 "Axis Transfer Closest" dissa0
thing 00055 n s 20 "Axis Transfer LastToFirst" dissa0
thing 00060 n - 20 "Ideya Drone" ndrna1
thing 00057 n - 20 "Hoop" hoopa0
thing 00047 n - 20 "Circle of Rings" bon1a0
thing 02007 n - 20 "Circle ofRings(Big)" bon1a0
thing 02048 n - 20 "Circle ofWing Logos" nwnga0
thing 02010 n - 20 "CircleofWingLogos-B" nwnga0
thing 02046 n - 20 "CircleofRings&Wings" nwnga0
thing 02047 n - 20 "CirleofRngs&Wings-B" nwnga0
thing 00037 n - 20 "Wing Logo" nwnga0
thing 00082 n s 20 "AxisTrnsferCodtion" dissa0
thing 00085 n s 20 "AxisTrnsferCodtion2" dissa0
thing 03007 n - 20 "Super Loop" npraa0
thing 03008 n - 20 "Drill Refill" nprba0
thing 03009 n - 20 "Helper" nprca0
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 00025 p - 20 "Super Sneakers" shtva0
thing 00035 p - 20 "Basic/WhirlShield" bltva0
thing 00041 p - 20 "Extra Life" prupa0
thing 00048 p - 20 "Attraction Shield" yltva0
thing 02002 p - 20 "Inferno Shield" rdtva0
thing 02018 p - 20 "Armageddon Shield" bktva0
thing 02022 p - 20 "Invincibility" pinva0
thing 02028 p - 20 "Liquid Shield" grtva0
thing 02011 p - 20 "SuperRing(10 Rings)" srbxa0
thing 02012 p - 20 "SilverRing(25Rings)" grbxa0
thing 00078 p - 20 "Teleporter" mixua0
thing 02005 p - 20 "Eggman" eggba0
thing 03000 p - 20 "Random" quesa0
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 00031 o - 20 "CTF Flag (Red)" rflga0
thing 00034 o - 20 "CTF Flag (Blue)" bflga0
thing 02013 o - 20 "Special Stage Token" tokea0
thing 00086 o - 20 "End Level Sign" signd0
thing 00033 o - 20 "Air Bubble Patch" bubla0
thing 00064 o - 20 "Emerald Hunt Place1" emera0
thing 03002 o - 20 "Emerald Hunt Place2" emera0
thing 03001 o - 20 "Emerald Hunt Place3" emera0
thing 03006 o - 20 "Star Post" stpta0
thing 05001 o s 20 "Push" ppsha0
thing 05002 o s 20 "Pull" pplla0
thing 05003 o s 20 "TeleportDestination" dissa0
thing 05007 o s 20 "Cut-Away View Thing" dissa0
thing 00067 o - 20 "Ceiling Spike" dspka0
thing 00068 o - 20 "Floor Spike" uspka0
thing 00023 o - 20 "Spikeball" spika0
thing 00017 o s 20 "Boss Flypoint" dissa0
thing 02049 o s 20 "Egg Capsule Center" dissa0
thing 00051 o - 20 "Laser" lasra0
thing 00018 o - 20 "ZoomTubeWaypoint109" dissa0
thing 00420 o - 20 "Emerald 1 (Green)" emmya0
thing 00421 o - 20 "Emerald 2 (Orange)" emmyb0
thing 00422 o - 20 "Emerald 3 (Pink)" emmyc0
thing 00423 o - 20 "Emerald 4 (Blue)" emmyd0
thing 00424 o - 20 "Emerald 5 (Red)" emmye0
thing 00425 o - 20 "Emerald 6 (LtBlue)" emmyf0
thing 00426 o - 20 "Emerald 7 (Gray)" emmyg0
# FIXME: add correct sprite for this emerald
thing 00427 o - 20 "Emerald 8 (Master)" dissa0
#thig 00000 g s ## " " ?????#
thing 00036 d - 20 "GFZ Flower (Normal)" fwr1b0
thing 00070 d - 20 "GFZ Sunflower" fwr2a0
thing 00073 d - 20 "GFZ Budding Flower" fwr3a0
thing 00074 d - 20 "Berry Bush" bus1a0
thing 00075 d - 20 "Bush" bus2a0
thing 02035 d - 20 "THZ Flower" thzpa0
thing 00081 d - 20 "Gargoyle" garga1
thing 02026 d s 20 "AmbientWaterSFX1A-L" dumba0
thing 02024 d s 20 "AmbientWaterSFX1B-L" dumba0
thing 02025 d s 20 "AmbientWaterSFX2A-M" dumba0
thing 02045 d s 20 "AmbientWaterSFX2B-M" dumba0
thing 00083 d s 20 "AmbientWaterSFX3A-S" dumba0
thing 02019 d s 20 "AmbientWaterSFX3B-S" dumba0
thing 02025 d s 20 "AmbientWaterSFX4A-E" dumba0
thing 00027 d s 20 "AmbientWaterSFX4B-E" dumba0
thing 00014 d s 20 "Random Ambience 1" dumba0
thing 00043 d s 20 "Random Ambience 2" dumba0
thing 00049 d - 20 "Hanging Chain" chana0
thing 02006 d - 20 "THZ Alarm" alrma0
thing 02001 d - 20 "CEZ Flower" fwr4a0
thing 00024 d - 20 "CEZ Torch" flama0
thing 02003 d s 20 "LightSource (MAP92)" dissa0
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 100000 m - 20 "Overworld Goomba" gooma0
thing 100001 m - 20 "Underworld Goomba" bgoma0
thing 100002 m - 20 "Bush (Short)" mus1a0
thing 100003 m - 20 "Bush (Tall)" mus2a0
thing 100004 m - 20 "Toad" toada0
thing 100005 m - 20 "Coin" coina0
thing 00019 m - 20 "King Bowser" koopa0
thing 00010 m - 20 "Koopa Shell" shlla0
thing 00012 m - 20 "Axe" maxea0
thing 00050 m - 20 "Fire Flower" ffwra0
thing 00029 m - 20 "Puma(MarioFireball)" pumaa0
#thig 00000 g s ## " " ?????#
#thig 00000 g s ## " " ?????#
thing 00005 c - 20 "Pole" xms1a0
thing 00006 c - 20 "Snowman" xms3a0
thing 00013 c - 20 "Candy Cane" xms2a0
thing 00084 r - 20 "5VerticalRings-YwSg" bon1a0
thing 00044 r - 20 "5VerticalRings-RdSg" bon1a0
thing 00076 r - 20 "5DiagonalRings-YwSg" bon1a0
thing 00077 r - 20 "10DiagonalRings-RSg" bon1a0
thing 02014 r - 20 "Ring" bon1a0
thing 00069 r - 20 "Homing Ring" homra0
thing 03003 r - 20 "Rail Ring" raila0
thing 00026 r - 20 "Automatic Ring" autra0
thing 00054 r - 20 "Explosion Ring" bomra0
thing 00080 r - 20 "Infinity Ring" infra0
thing 00028 s - 20 "Yellow Spring (Up)" sprya0
thing 00079 s - 20 "Red Spring (Up)" sprra0
thing 02015 s - 20 "Yellow Spring (DU)" yspra1
thing 00038 s - 20 "Red Spring (DU)" rspra1
thing 00020 s - 20 "Yellow Spring (DD)" ysuda1
thing 00039 s - 20 "Red Spring (DD)" rsuda1
thing 00065 s - 20 "Yellow Spring (Dn)" sudya0
thing 00066 s - 20 "Red Spring (Dn)" sudra0
thing 05004 s - 20 "Blue Spring" sprba0
thing 00030 s - 20 "THZ Gas Jet" stemd0
thing 00032 s - 20 "THZ Fan" fansa0
#thig 00000 g s ## " " ?????#
File diff suppressed because it is too large. Load diff
-58
View File
@@ -1,58 +0,0 @@
# wminput configuration for SRB2Wii by Alam Arias
# based on Callum Dickinson's version
#Wiimote.Up = KEY_RESERVED
#Wiimote.Down = KEY_RESERVED
#Wiimote.Left = KEY_RESERVED
#Wiimote.Right = KEY_RESERVED
Wiimote.A = BTN_THUMB
Wiimote.B = BTN_TRIGGER
Wiimote.Minus = BTN_THUMBL
Wiimote.Plus = BTN_THUMBR
Wiimote.Home = BTN_MODE
Wiimote.1 = BTN_1
Wiimote.2 = BTN_2
Wiimote.Dpad.X = -ABS_HAT0Y
Wiimote.Dpad.Y = -ABS_HAT0X
Nunchuk.C = BTN_C
Nunchuk.Z = BTN_Z
Nunchuk.Stick.X = ABS_THROTTLE
Nunchuk.Stick.Y = -ABS_RUDDER
#Classic.Up = KEY_RESERVED
#Classic.Down = KEY_RESERVED
#Classic.Left = KEY_RESERVED
#Classic.Right = KEY_RESERVED
Classic.Minus = BTN_SELECT
Classic.Plus = BTN_START
Classic.Home = BTN_MODE
Classic.A = BTN_A
Classic.B = BTN_B
Classic.X = BTN_X
Classic.Y = BTN_Y
Classic.ZL = BTN_TL2
Classic.ZR = BTN_TR2
Classic.L = BTN_TL
Classic.R = BTN_TR
Classic.Dpad.X = ABS_HAT1X
Classic.Dpad.Y = -ABS_HAT1Y
Classic.LStick.X = ABS_X
Classic.LStick.Y = -ABS_Y
Classic.RStick.X = ABS_RX
Classic.RStick.Y = -ABS_RY
Classic.LAnalog = ABS_GAS
Classic.RAnalog = ABS_BRAKE
# Nunchuk Stick buttons
Plugin.nunchuk_stick2btn.Up = BTN_BASE
Plugin.nunchuk_stick2btn.Down = BTN_BASE2
Plugin.nunchuk_stick2btn.Left = BTN_BASE3
Plugin.nunchuk_stick2btn.Right = BTN_BASE4
# Mouse Control
#Plugin.ir_ptr.X = REL_X
#Plugin.ir_ptr.Y = REL_Y
+4 -2
View File
@@ -23,10 +23,12 @@ and don't forget to build r_opengl.dll for srb2dd.
## srb2kart, 64-bit
* libs\dll-binaries\x86_64\exchndl.dll
* libs\dll-binaries\x86_64\libgme.dll
* libs\dll-binaries\x86_64\discord-rpc.dll
* libs\dll-binaries\x86_64\mgwhelp.dll (depend for exchndl.dll)
* libs\SDL2\x86_64-w64-mingw32\bin\SDL2.dll
* libs\SDL2_mixer\x86_64-w64-mingw32\bin\*.dll (get everything)
* libs\libopenmpt\x86_64\bin\mingw\libopenmpt.dll
Updated 2/17/2024 (v1.6 Saturn)
No i threw everthing into dll-binaries
theres no reason at all to have stuff spread across multiple directories
+16 -16
View File
@@ -1,16 +1,16 @@
Bugs are now managed in the SDL issue tracker, here:
https://github.com/libsdl-org/SDL/issues
You may report bugs there, and search to see if a given issue has already
been reported, discussed, and maybe even fixed.
You may also find help at the SDL forums/mailing list:
https://discourse.libsdl.org/
Bug reports are welcome here, but we really appreciate if you use the issue
tracker, as bugs discussed on the mailing list may be forgotten or missed.
Bugs are now managed in the SDL issue tracker, here:
https://github.com/libsdl-org/SDL/issues
You may report bugs there, and search to see if a given issue has already
been reported, discussed, and maybe even fixed.
You may also find help at the SDL forums/mailing list:
https://discourse.libsdl.org/
Bug reports are welcome here, but we really appreciate if you use the issue
tracker, as bugs discussed on the mailing list may be forgotten or missed.
+20 -20
View File
@@ -1,20 +1,20 @@
Simple DirectMedia Layer
Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Simple DirectMedia Layer
Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
+53 -53
View File
@@ -1,53 +1,53 @@
Simple DirectMedia Layer CREDITS
Thanks to everyone who made this possible, including:
* Cliff Matthews, for giving me a reason to start this project. :)
-- Executor rocks! *grin*
* Ryan Gordon for helping everybody out and keeping the dream alive. :)
* Gabriel Jacobo for his work on the Android port and generally helping out all around.
* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches.
* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code.
* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve.
* Alfred Reynolds for the game controller API and general (in)sanity
* Jørgen Tjernø for numerous magical Mac OS X fixes.
* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers.
* Julian Winter for the SDL 2.0 website.
* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides.
* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010.
* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010.
* Jim Grandpre for his work on multi-touch and gesture recognition during
the Google Summer of Code 2010.
* Edgar "bobbens" Simo for his force feedback API development during the
Google Summer of Code 2008.
* Aaron Wishnick for his work on audio resampling and pitch shifting during
the Google Summer of Code 2008.
* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the
Google Summer of Code 2008.
* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation.
* Everybody at Loki Software, Inc. for their great contributions!
And a big hand to everyone else who has contributed over the years.
THANKS! :)
-- Sam Lantinga <slouken@libsdl.org>
Simple DirectMedia Layer CREDITS
Thanks to everyone who made this possible, including:
* Cliff Matthews, for giving me a reason to start this project. :)
-- Executor rocks! *grin*
* Ryan Gordon for helping everybody out and keeping the dream alive. :)
* Gabriel Jacobo for his work on the Android port and generally helping out all around.
* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches.
* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code.
* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve.
* Alfred Reynolds for the game controller API and general (in)sanity
* Jørgen Tjernø for numerous magical Mac OS X fixes.
* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers.
* Julian Winter for the SDL 2.0 website.
* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides.
* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010.
* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010.
* Jim Grandpre for his work on multi-touch and gesture recognition during
the Google Summer of Code 2010.
* Edgar "bobbens" Simo for his force feedback API development during the
Google Summer of Code 2008.
* Aaron Wishnick for his work on audio resampling and pitch shifting during
the Google Summer of Code 2008.
* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the
Google Summer of Code 2008.
* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation.
* Everybody at Loki Software, Inc. for their great contributions!
And a big hand to everyone else who has contributed over the years.
THANKS! :)
-- Sam Lantinga <slouken@libsdl.org>
+18 -18
View File
@@ -1,18 +1,18 @@
The 32-bit files are in i686-w64-mingw32
The 64-bit files are in x86_64-w64-mingw32
To install SDL for native development:
make native
To install SDL for cross-compiling development:
make cross
Look at the example programs in ./test, and check out online documentation:
http://wiki.libsdl.org/
Join the SDL developer mailing list if you want to join the community:
http://www.libsdl.org/mailing-list.php
That's it!
Sam Lantinga <slouken@libsdl.org>
The 32-bit files are in i686-w64-mingw32
The 64-bit files are in x86_64-w64-mingw32
To install SDL for native development:
make native
To install SDL for cross-compiling development:
make cross
Look at the example programs in ./test, and check out online documentation:
http://wiki.libsdl.org/
Join the SDL developer mailing list if you want to join the community:
http://www.libsdl.org/mailing-list.php
That's it!
Sam Lantinga <slouken@libsdl.org>
-30
View File
@@ -1,30 +0,0 @@
#
# Makefile for installing the mingw32 version of the SDL library
CROSS_PATH := /usr/local
ARCHITECTURES := i686-w64-mingw32 x86_64-w64-mingw32
all install:
@echo "Type \"make native\" to install 32-bit to /usr"
@echo "Type \"make cross\" to install 32-bit and 64-bit to $(CROSS_PATH)"
native:
make install-package arch=i686-w64-mingw32 prefix=/usr
cross:
for arch in $(ARCHITECTURES); do \
make install-package arch=$$arch prefix=$(CROSS_PATH)/$$arch; \
done
install-package:
@if test -d $(arch) && test -d $(prefix); then \
(cd $(arch) && cp -rv bin include lib share $(prefix)/); \
sed "s|^prefix=.*|prefix=$(prefix)|" <$(arch)/bin/sdl2-config >$(prefix)/bin/sdl2-config; \
chmod 755 $(prefix)/bin/sdl2-config; \
sed "s|^libdir=.*|libdir=\'$(prefix)/lib\'|" <$(arch)/lib/libSDL2.la >$(prefix)/lib/libSDL2.la; \
sed "s|^libdir=.*|libdir=\'$(prefix)/lib\'|" <$(arch)/lib/libSDL2main.la >$(prefix)/lib/libSDL2main.la; \
sed "s|^prefix=.*|prefix=$(prefix)|" <$(arch)/lib/pkgconfig/sdl2.pc >$(prefix)/lib/pkgconfig/sdl2.pc; \
else \
echo "*** ERROR: $(arch) or $(prefix) does not exist!"; \
exit 1; \
fi
+13 -13
View File
@@ -1,13 +1,13 @@
Please distribute this file with the SDL runtime environment:
The Simple DirectMedia Layer (SDL for short) is a cross-platform library
designed to make it easy to write multi-media software, such as games
and emulators.
The Simple DirectMedia Layer library source code is available from:
https://www.libsdl.org/
This library is distributed under the terms of the zlib license:
http://www.zlib.net/zlib_license.html
Please distribute this file with the SDL runtime environment:
The Simple DirectMedia Layer (SDL for short) is a cross-platform library
designed to make it easy to write multi-media software, such as games
and emulators.
The Simple DirectMedia Layer library source code is available from:
https://www.libsdl.org/
This library is distributed under the terms of the zlib license:
http://www.zlib.net/zlib_license.html
+21 -21
View File
@@ -1,21 +1,21 @@
Simple DirectMedia Layer
(SDL)
Version 2.0
---
https://www.libsdl.org/
Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.
More extensive documentation is available in the docs directory, starting
with README.md
Enjoy!
Sam Lantinga (slouken@libsdl.org)
Simple DirectMedia Layer
(SDL)
Version 2.0
---
https://www.libsdl.org/
Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.
More extensive documentation is available in the docs directory, starting
with README.md
Enjoy!
Sam Lantinga (slouken@libsdl.org)
+15 -15
View File
@@ -1,15 +1,15 @@
# SDL Development Libaries
Download both the VC and MinGW packages and extract them here.
https://www.libsdl.org/download-2.0.php
## VC Package
* include
* lib
## MinGW Package
* i686-w64-mingw32
* x86_64-w64-mingw32
# SDL Development Libaries
Download both the VC and MinGW packages and extract them here.
https://www.libsdl.org/download-2.0.php
## VC Package
* include
* lib
## MinGW Package
* i686-w64-mingw32
* x86_64-w64-mingw32
+870 -745
View File
File diff suppressed because it is too large. Load diff
+97
View File
@@ -0,0 +1,97 @@
# Contributing to SDL
We appreciate your interest in contributing to SDL, this document will describe how to report bugs, contribute code or ideas or edit documentation.
**Table Of Contents**
- [Filing a GitHub issue](#filing-a-github-issue)
- [Reporting a bug](#reporting-a-bug)
- [Suggesting enhancements](#suggesting-enhancements)
- [Contributing code](#contributing-code)
- [Forking the project](#forking-the-project)
- [Following the style guide](#following-the-style-guide)
- [Running the tests](#running-the-tests)
- [Opening a pull request](#opening-a-pull-request)
- [Contributing to the documentation](#contributing-to-the-documentation)
- [Editing a function documentation](#editing-a-function-documentation)
- [Editing the wiki](#editing-the-wiki)
## Filing a GitHub issue
### Reporting a bug
If you think you have found a bug and would like to report it, here are the steps you should take:
- Before opening a new issue, ensure your bug has not already been reported on the [GitHub Issues page](https://github.com/libsdl-org/SDL/issues).
- On the issue tracker, click on [New Issue](https://github.com/libsdl-org/SDL/issues/new).
- Include details about your environment, such as your Operating System and SDL version.
- If possible, provide a small example that reproduces your bug.
### Suggesting enhancements
If you want to suggest changes for the project, here are the steps you should take:
- Check if the suggestion has already been made on:
- the [issue tracker](https://github.com/libsdl-org/SDL/issues);
- the [discourse forum](https://discourse.libsdl.org/);
- or if a [pull request](https://github.com/libsdl-org/SDL/pulls) already exists.
- On the issue tracker, click on [New Issue](https://github.com/libsdl-org/SDL/issues/new).
- Describe what change you would like to happen.
## Contributing code
This section will cover how the process of forking the project, making a change and opening a pull request.
### Forking the project
The first step consists in making a fork of the project, this is only necessary for the first contribution.
Head over to https://github.com/libsdl-org/SDL and click on the `Fork` button in the top right corner of your screen, you may leave the fields unchanged and click `Create Fork`.
You will be redirected to your fork of the repository, click the green `Code` button and copy the git clone link.
If you had already forked the repository, you may update it from the web page using the `Fetch upstream` button.
### Following the style guide
Code formatting is done using a custom `.clang-format` file, you can learn more about how to run it [here](https://clang.llvm.org/docs/ClangFormat.html).
Some legacy code may not be formatted, as such avoid formatting the whole file at once and only format around your changes.
For your commit message to be properly displayed on GitHub, it should contain:
- A short description of the commit of 50 characters or less on the first line.
- If necessary, add a blank line followed by a long description, each line should be 72 characters or less.
For example:
```
Fix crash in SDL_FooBar.
This addresses the issue #123456 by making sure Foo was successful
before calling Bar.
```
### Running the tests
Tests allow you to verify if your changes did not break any behaviour, here are the steps to follow:
- Before pushing, run the `testautomation` suite on your machine, there should be no more failing tests after your change than before.
- After pushing to your fork, Continuous Integration (GitHub Actions) will ensure compilation and tests still pass on other systems.
### Opening a pull request
- Head over to your fork's GitHub page.
- Click on the `Contribute` button and `Open Pull Request`.
- Fill out the pull request template.
- If any changes are requested, you can add new commits to your fork and they will be automatically added to the pull request.
## Contributing to the documentation
### Editing a function documentation
The wiki documentation for API functions is synchronised from the headers' doxygen comments. As such, all modifications to syntax; function parameters; return value; version; related functions should be done in the header directly.
### Editing the wiki
Other changes to the wiki should done directly from https://wiki.libsdl.org/
+483 -475
View File
@@ -1,475 +1,483 @@
Android
================================================================================
Matt Styles wrote a tutorial on building SDL for Android with Visual Studio:
http://trederia.blogspot.de/2017/03/building-sdl2-for-android-with-visual.html
The rest of this README covers the Android gradle style build process.
If you are using the older ant build process, it is no longer officially
supported, but you can use the "android-project-ant" directory as a template.
Requirements
================================================================================
Android SDK (version 26 or later)
https://developer.android.com/sdk/index.html
Android NDK r15c or later
https://developer.android.com/tools/sdk/ndk/index.html
Minimum API level supported by SDL: 16 (Android 4.1)
How the port works
================================================================================
- Android applications are Java-based, optionally with parts written in C
- As SDL apps are C-based, we use a small Java shim that uses JNI to talk to
the SDL library
- This means that your application C code must be placed inside an Android
Java project, along with some C support code that communicates with Java
- This eventually produces a standard Android .apk package
The Android Java code implements an "Activity" and can be found in:
android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
The Java code loads your game code, the SDL shared library, and
dispatches to native functions implemented in the SDL library:
src/core/android/SDL_android.c
Building an app
================================================================================
For simple projects you can use the script located at build-scripts/androidbuild.sh
There's two ways of using it:
androidbuild.sh com.yourcompany.yourapp < sources.list
androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c
sources.list should be a text file with a source file name in each line
Filenames should be specified relative to the current directory, for example if
you are in the build-scripts directory and want to create the testgles.c test, you'll
run:
./androidbuild.sh org.libsdl.testgles ../test/testgles.c
One limitation of this script is that all sources provided will be aggregated into
a single directory, thus all your source files should have a unique name.
Once the project is complete the script will tell you where the debug APK is located.
If you want to create a signed release APK, you can use the project created by this
utility to generate it.
Finally, a word of caution: re running androidbuild.sh wipes any changes you may have
done in the build directory for the app!
For more complex projects, follow these instructions:
1. Copy the android-project directory wherever you want to keep your projects
and rename it to the name of your project.
2. Move or symlink this SDL directory into the "<project>/app/jni" directory
3. Edit "<project>/app/jni/src/Android.mk" to include your source files
4a. If you want to use Android Studio, simply open your <project> directory and start building.
4b. If you want to build manually, run './gradlew installDebug' in the project directory. This compiles the .java, creates an .apk with the native code embedded, and installs it on any connected Android device
If you already have a project that uses CMake, the instructions change somewhat:
1. Do points 1 and 2 from the instruction above.
2. Edit "<project>/app/build.gradle" to comment out or remove sections containing ndk-build
and uncomment the cmake sections. Add arguments to the CMake invocation as needed.
3. Edit "<project>/app/jni/CMakeLists.txt" to include your project (it defaults to
adding the "src" subdirectory). Note that you'll have SDL2, SDL2main and SDL2-static
as targets in your project, so you should have "target_link_libraries(yourgame SDL2 SDL2main)"
in your CMakeLists.txt file. Also be aware that you should use add_library() instead of
add_executable() for the target containing your "main" function.
If you wish to use Android Studio, you can skip the last step.
4. Run './gradlew installDebug' or './gradlew installRelease' in the project directory. It will build and install your .apk on any
connected Android device
Here's an explanation of the files in the Android project, so you can customize them:
android-project/app
build.gradle - build info including the application version and SDK
src/main/AndroidManifest.xml - package manifest. Among others, it contains the class name of the main Activity and the package name of the application.
jni/ - directory holding native code
jni/Application.mk - Application JNI settings, including target platform and STL library
jni/Android.mk - Android makefile that can call recursively the Android.mk files in all subdirectories
jni/CMakeLists.txt - Top-level CMake project that adds SDL as a subproject
jni/SDL/ - (symlink to) directory holding the SDL library files
jni/SDL/Android.mk - Android makefile for creating the SDL shared library
jni/src/ - directory holding your C/C++ source
jni/src/Android.mk - Android makefile that you should customize to include your source code and any library references
jni/src/CMakeLists.txt - CMake file that you may customize to include your source code and any library references
src/main/assets/ - directory holding asset files for your application
src/main/res/ - directory holding resources for your application
src/main/res/mipmap-* - directories holding icons for different phone hardware
src/main/res/values/strings.xml - strings used in your application, including the application name
src/main/java/org/libsdl/app/SDLActivity.java - the Java class handling the initialization and binding to SDL. Be very careful changing this, as the SDL library relies on this implementation. You should instead subclass this for your application.
Customizing your application name
================================================================================
To customize your application name, edit AndroidManifest.xml and replace
"org.libsdl.app" with an identifier for your product package.
Then create a Java class extending SDLActivity and place it in a directory
under src matching your package, e.g.
src/com/gamemaker/game/MyGame.java
Here's an example of a minimal class file:
--- MyGame.java --------------------------
package com.gamemaker.game;
import org.libsdl.app.SDLActivity;
/**
* A sample wrapper class that just calls SDLActivity
*/
public class MyGame extends SDLActivity { }
------------------------------------------
Then replace "SDLActivity" in AndroidManifest.xml with the name of your
class, .e.g. "MyGame"
Customizing your application icon
================================================================================
Conceptually changing your icon is just replacing the "ic_launcher.png" files in
the drawable directories under the res directory. There are several directories
for different screen sizes.
Loading assets
================================================================================
Any files you put in the "app/src/main/assets" directory of your project
directory will get bundled into the application package and you can load
them using the standard functions in SDL_rwops.h.
There are also a few Android specific functions that allow you to get other
useful paths for saving and loading data:
* SDL_AndroidGetInternalStoragePath()
* SDL_AndroidGetExternalStorageState()
* SDL_AndroidGetExternalStoragePath()
See SDL_system.h for more details on these functions.
The asset packaging system will, by default, compress certain file extensions.
SDL includes two asset file access mechanisms, the preferred one is the so
called "File Descriptor" method, which is faster and doesn't involve the Dalvik
GC, but given this method does not work on compressed assets, there is also the
"Input Stream" method, which is automatically used as a fall back by SDL. You
may want to keep this fact in mind when building your APK, specially when large
files are involved.
For more information on which extensions get compressed by default and how to
disable this behaviour, see for example:
http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/
Pause / Resume behaviour
================================================================================
If SDL_HINT_ANDROID_BLOCK_ON_PAUSE hint is set (the default),
the event loop will block itself when the app is paused (ie, when the user
returns to the main Android dashboard). Blocking is better in terms of battery
use, and it allows your app to spring back to life instantaneously after resume
(versus polling for a resume message).
Upon resume, SDL will attempt to restore the GL context automatically.
In modern devices (Android 3.0 and up) this will most likely succeed and your
app can continue to operate as it was.
However, there's a chance (on older hardware, or on systems under heavy load),
where the GL context can not be restored. In that case you have to listen for
a specific message (SDL_RENDER_DEVICE_RESET) and restore your textures
manually or quit the app.
You should not use the SDL renderer API while the app going in background:
- SDL_APP_WILLENTERBACKGROUND:
after you read this message, GL context gets backed-up and you should not
use the SDL renderer API.
When this event is received, you have to set the render target to NULL, if you're using it.
(eg call SDL_SetRenderTarget(renderer, NULL))
- SDL_APP_DIDENTERFOREGROUND:
GL context is restored, and the SDL renderer API is available (unless you
receive SDL_RENDER_DEVICE_RESET).
Mouse / Touch events
================================================================================
In some case, SDL generates synthetic mouse (resp. touch) events for touch
(resp. mouse) devices.
To enable/disable this behavior, see SDL_hints.h:
- SDL_HINT_TOUCH_MOUSE_EVENTS
- SDL_HINT_MOUSE_TOUCH_EVENTS
Misc
================================================================================
For some device, it appears to works better setting explicitly GL attributes
before creating a window:
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
Threads and the Java VM
================================================================================
For a quick tour on how Linux native threads interoperate with the Java VM, take
a look here: https://developer.android.com/guide/practices/jni.html
If you want to use threads in your SDL app, it's strongly recommended that you
do so by creating them using SDL functions. This way, the required attach/detach
handling is managed by SDL automagically. If you have threads created by other
means and they make calls to SDL functions, make sure that you call
Android_JNI_SetupThread() before doing anything else otherwise SDL will attach
your thread automatically anyway (when you make an SDL call), but it'll never
detach it.
If you ever want to use JNI in a native thread (created by "SDL_CreateThread()"),
it won't be able to find your java class and method because of the java class loader
which is different for native threads, than for java threads (eg your "main()").
the work-around is to find class/method, in you "main()" thread, and to use them
in your native thread.
see:
https://developer.android.com/training/articles/perf-jni#faq:-why-didnt-findclass-find-my-class
Using STL
================================================================================
You can use STL in your project by creating an Application.mk file in the jni
folder and adding the following line:
APP_STL := c++_shared
For more information go here:
https://developer.android.com/ndk/guides/cpp-support
Using the emulator
================================================================================
There are some good tips and tricks for getting the most out of the
emulator here: https://developer.android.com/tools/devices/emulator.html
Especially useful is the info on setting up OpenGL ES 2.0 emulation.
Notice that this software emulator is incredibly slow and needs a lot of disk space.
Using a real device works better.
Troubleshooting
================================================================================
You can see if adb can see any devices with the following command:
adb devices
You can see the output of log messages on the default device with:
adb logcat
You can push files to the device with:
adb push local_file remote_path_and_file
You can push files to the SD Card at /sdcard, for example:
adb push moose.dat /sdcard/moose.dat
You can see the files on the SD card with a shell command:
adb shell ls /sdcard/
You can start a command shell on the default device with:
adb shell
You can remove the library files of your project (and not the SDL lib files) with:
ndk-build clean
You can do a build with the following command:
ndk-build
You can see the complete command line that ndk-build is using by passing V=1 on the command line:
ndk-build V=1
If your application crashes in native code, you can use ndk-stack to get a symbolic stack trace:
https://developer.android.com/ndk/guides/ndk-stack
If you want to go through the process manually, you can use addr2line to convert the
addresses in the stack trace to lines in your code.
For example, if your crash looks like this:
I/DEBUG ( 31): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 400085d0
I/DEBUG ( 31): r0 00000000 r1 00001000 r2 00000003 r3 400085d4
I/DEBUG ( 31): r4 400085d0 r5 40008000 r6 afd41504 r7 436c6a7c
I/DEBUG ( 31): r8 436c6b30 r9 435c6fb0 10 435c6f9c fp 4168d82c
I/DEBUG ( 31): ip 8346aff0 sp 436c6a60 lr afd1c8ff pc afd1c902 cpsr 60000030
I/DEBUG ( 31): #00 pc 0001c902 /system/lib/libc.so
I/DEBUG ( 31): #01 pc 0001ccf6 /system/lib/libc.so
I/DEBUG ( 31): #02 pc 000014bc /data/data/org.libsdl.app/lib/libmain.so
I/DEBUG ( 31): #03 pc 00001506 /data/data/org.libsdl.app/lib/libmain.so
You can see that there's a crash in the C library being called from the main code.
I run addr2line with the debug version of my code:
arm-eabi-addr2line -C -f -e obj/local/armeabi/libmain.so
and then paste in the number after "pc" in the call stack, from the line that I care about:
000014bc
I get output from addr2line showing that it's in the quit function, in testspriteminimal.c, on line 23.
You can add logging to your code to help show what's happening:
#include <android/log.h>
__android_log_print(ANDROID_LOG_INFO, "foo", "Something happened! x = %d", x);
If you need to build without optimization turned on, you can create a file called
"Application.mk" in the jni directory, with the following line in it:
APP_OPTIM := debug
Memory debugging
================================================================================
The best (and slowest) way to debug memory issues on Android is valgrind.
Valgrind has support for Android out of the box, just grab code using:
svn co svn://svn.valgrind.org/valgrind/trunk valgrind
... and follow the instructions in the file README.android to build it.
One thing I needed to do on Mac OS X was change the path to the toolchain,
and add ranlib to the environment variables:
export RANLIB=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-ranlib
Once valgrind is built, you can create a wrapper script to launch your
application with it, changing org.libsdl.app to your package identifier:
--- start_valgrind_app -------------------
#!/system/bin/sh
export TMPDIR=/data/data/org.libsdl.app
exec /data/local/Inst/bin/valgrind --log-file=/sdcard/valgrind.log --error-limit=no $*
------------------------------------------
Then push it to the device:
adb push start_valgrind_app /data/local
and make it executable:
adb shell chmod 755 /data/local/start_valgrind_app
and tell Android to use the script to launch your application:
adb shell setprop wrap.org.libsdl.app "logwrapper /data/local/start_valgrind_app"
If the setprop command says "could not set property", it's likely that
your package name is too long and you should make it shorter by changing
AndroidManifest.xml and the path to your class file in android-project/src
You can then launch your application normally and waaaaaaaiiittt for it.
You can monitor the startup process with the logcat command above, and
when it's done (or even while it's running) you can grab the valgrind
output file:
adb pull /sdcard/valgrind.log
When you're done instrumenting with valgrind, you can disable the wrapper:
adb shell setprop wrap.org.libsdl.app ""
Graphics debugging
================================================================================
If you are developing on a compatible Tegra-based tablet, NVidia provides
Tegra Graphics Debugger at their website. Because SDL2 dynamically loads EGL
and GLES libraries, you must follow their instructions for installing the
interposer library on a rooted device. The non-rooted instructions are not
compatible with applications that use SDL2 for video.
The Tegra Graphics Debugger is available from NVidia here:
https://developer.nvidia.com/tegra-graphics-debugger
Why is API level 16 the minimum required?
================================================================================
The latest NDK toolchain doesn't support targeting earlier than API level 16.
As of this writing, according to https://developer.android.com/about/dashboards/index.html
about 99% of the Android devices accessing Google Play support API level 16 or
higher (January 2018).
A note regarding the use of the "dirty rectangles" rendering technique
================================================================================
If your app uses a variation of the "dirty rectangles" rendering technique,
where you only update a portion of the screen on each frame, you may notice a
variety of visual glitches on Android, that are not present on other platforms.
This is caused by SDL's use of EGL as the support system to handle OpenGL ES/ES2
contexts, in particular the use of the eglSwapBuffers function. As stated in the
documentation for the function "The contents of ancillary buffers are always
undefined after calling eglSwapBuffers".
Setting the EGL_SWAP_BEHAVIOR attribute of the surface to EGL_BUFFER_PRESERVED
is not possible for SDL as it requires EGL 1.4, available only on the API level
17+, so the only workaround available on this platform is to redraw the entire
screen each frame.
Reference: http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html
Ending your application
================================================================================
Two legitimate ways:
- return from your main() function. Java side will automatically terminate the
Activity by calling Activity.finish().
- Android OS can decide to terminate your application by calling onDestroy()
(see Activity life cycle). Your application will receive a SDL_QUIT event you
can handle to save things and quit.
Don't call exit() as it stops the activity badly.
NB: "Back button" can be handled as a SDL_KEYDOWN/UP events, with Keycode
SDLK_AC_BACK, for any purpose.
Known issues
================================================================================
- The number of buttons reported for each joystick is hardcoded to be 36, which
is the current maximum number of buttons Android can report.
Android
================================================================================
Matt Styles wrote a tutorial on building SDL for Android with Visual Studio:
http://trederia.blogspot.de/2017/03/building-sdl2-for-android-with-visual.html
The rest of this README covers the Android gradle style build process.
If you are using the older ant build process, it is no longer officially
supported, but you can use the "android-project-ant" directory as a template.
Requirements
================================================================================
Android SDK (version 34 or later)
https://developer.android.com/sdk/index.html
Android NDK r15c or later
https://developer.android.com/tools/sdk/ndk/index.html
Minimum API level supported by SDL: 19 (Android 4.4)
How the port works
================================================================================
- Android applications are Java-based, optionally with parts written in C
- As SDL apps are C-based, we use a small Java shim that uses JNI to talk to
the SDL library
- This means that your application C code must be placed inside an Android
Java project, along with some C support code that communicates with Java
- This eventually produces a standard Android .apk package
The Android Java code implements an "Activity" and can be found in:
android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
The Java code loads your game code, the SDL shared library, and
dispatches to native functions implemented in the SDL library:
src/core/android/SDL_android.c
Building an app
================================================================================
For simple projects you can use the script located at build-scripts/androidbuild.sh
There's two ways of using it:
androidbuild.sh com.yourcompany.yourapp < sources.list
androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c
sources.list should be a text file with a source file name in each line
Filenames should be specified relative to the current directory, for example if
you are in the build-scripts directory and want to create the testgles.c test, you'll
run:
./androidbuild.sh org.libsdl.testgles ../test/testgles.c
One limitation of this script is that all sources provided will be aggregated into
a single directory, thus all your source files should have a unique name.
Once the project is complete the script will tell you where the debug APK is located.
If you want to create a signed release APK, you can use the project created by this
utility to generate it.
Finally, a word of caution: re running androidbuild.sh wipes any changes you may have
done in the build directory for the app!
For more complex projects, follow these instructions:
1. Get the source code for SDL and copy the 'android-project' directory located at SDL/android-project to a suitable location. Also make sure to rename it to your project name (In these examples: YOURPROJECT).
(The 'android-project' directory can basically be seen as a sort of starting point for the android-port of your project. It contains the glue code between the Android Java 'frontend' and the SDL code 'backend'. It also contains some standard behaviour, like how events should be handled, which you will be able to change.)
2. Move or [symlink](https://en.wikipedia.org/wiki/Symbolic_link) the SDL directory into the "YOURPROJECT/app/jni" directory
(This is needed as the source of SDL has to be compiled by the Android compiler)
3. Edit "YOURPROJECT/app/jni/src/Android.mk" to include your source files.
(They should be separated by spaces after the "LOCAL_SRC_FILES := " declaration)
4a. If you want to use Android Studio, simply open your 'YOURPROJECT' directory and start building.
4b. If you want to build manually, run './gradlew installDebug' in the project directory. This compiles the .java, creates an .apk with the native code embedded, and installs it on any connected Android device
If you already have a project that uses CMake, the instructions change somewhat:
1. Do points 1 and 2 from the instruction above.
2. Edit "YOURPROJECT/app/build.gradle" to comment out or remove sections containing ndk-build
and uncomment the cmake sections. Add arguments to the CMake invocation as needed.
3. Edit "YOURPROJECT/app/jni/CMakeLists.txt" to include your project (it defaults to
adding the "src" subdirectory). Note that you'll have SDL2, SDL2main and SDL2-static
as targets in your project, so you should have "target_link_libraries(yourgame SDL2 SDL2main)"
in your CMakeLists.txt file. Also be aware that you should use add_library() instead of
add_executable() for the target containing your "main" function.
If you wish to use Android Studio, you can skip the last step.
4. Run './gradlew installDebug' or './gradlew installRelease' in the project directory. It will build and install your .apk on any
connected Android device
Here's an explanation of the files in the Android project, so you can customize them:
android-project/app
build.gradle - build info including the application version and SDK
src/main/AndroidManifest.xml - package manifest. Among others, it contains the class name of the main Activity and the package name of the application.
jni/ - directory holding native code
jni/Application.mk - Application JNI settings, including target platform and STL library
jni/Android.mk - Android makefile that can call recursively the Android.mk files in all subdirectories
jni/CMakeLists.txt - Top-level CMake project that adds SDL as a subproject
jni/SDL/ - (symlink to) directory holding the SDL library files
jni/SDL/Android.mk - Android makefile for creating the SDL shared library
jni/src/ - directory holding your C/C++ source
jni/src/Android.mk - Android makefile that you should customize to include your source code and any library references
jni/src/CMakeLists.txt - CMake file that you may customize to include your source code and any library references
src/main/assets/ - directory holding asset files for your application
src/main/res/ - directory holding resources for your application
src/main/res/mipmap-* - directories holding icons for different phone hardware
src/main/res/values/strings.xml - strings used in your application, including the application name
src/main/java/org/libsdl/app/SDLActivity.java - the Java class handling the initialization and binding to SDL. Be very careful changing this, as the SDL library relies on this implementation. You should instead subclass this for your application.
Customizing your application name
================================================================================
To customize your application name, edit AndroidManifest.xml and replace
"org.libsdl.app" with an identifier for your product package.
Then create a Java class extending SDLActivity and place it in a directory
under src matching your package, e.g.
src/com/gamemaker/game/MyGame.java
Here's an example of a minimal class file:
--- MyGame.java --------------------------
package com.gamemaker.game;
import org.libsdl.app.SDLActivity;
/**
* A sample wrapper class that just calls SDLActivity
*/
public class MyGame extends SDLActivity { }
------------------------------------------
Then replace "SDLActivity" in AndroidManifest.xml with the name of your
class, .e.g. "MyGame"
Customizing your application icon
================================================================================
Conceptually changing your icon is just replacing the "ic_launcher.png" files in
the drawable directories under the res directory. There are several directories
for different screen sizes.
Loading assets
================================================================================
Any files you put in the "app/src/main/assets" directory of your project
directory will get bundled into the application package and you can load
them using the standard functions in SDL_rwops.h.
There are also a few Android specific functions that allow you to get other
useful paths for saving and loading data:
* SDL_AndroidGetInternalStoragePath()
* SDL_AndroidGetExternalStorageState()
* SDL_AndroidGetExternalStoragePath()
See SDL_system.h for more details on these functions.
The asset packaging system will, by default, compress certain file extensions.
SDL includes two asset file access mechanisms, the preferred one is the so
called "File Descriptor" method, which is faster and doesn't involve the Dalvik
GC, but given this method does not work on compressed assets, there is also the
"Input Stream" method, which is automatically used as a fall back by SDL. You
may want to keep this fact in mind when building your APK, specially when large
files are involved.
For more information on which extensions get compressed by default and how to
disable this behaviour, see for example:
http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/
Pause / Resume behaviour
================================================================================
If SDL_HINT_ANDROID_BLOCK_ON_PAUSE hint is set (the default),
the event loop will block itself when the app is paused (ie, when the user
returns to the main Android dashboard). Blocking is better in terms of battery
use, and it allows your app to spring back to life instantaneously after resume
(versus polling for a resume message).
Upon resume, SDL will attempt to restore the GL context automatically.
In modern devices (Android 3.0 and up) this will most likely succeed and your
app can continue to operate as it was.
However, there's a chance (on older hardware, or on systems under heavy load),
where the GL context can not be restored. In that case you have to listen for
a specific message (SDL_RENDER_DEVICE_RESET) and restore your textures
manually or quit the app.
You should not use the SDL renderer API while the app going in background:
- SDL_APP_WILLENTERBACKGROUND:
after you read this message, GL context gets backed-up and you should not
use the SDL renderer API.
When this event is received, you have to set the render target to NULL, if you're using it.
(eg call SDL_SetRenderTarget(renderer, NULL))
- SDL_APP_DIDENTERFOREGROUND:
GL context is restored, and the SDL renderer API is available (unless you
receive SDL_RENDER_DEVICE_RESET).
Mouse / Touch events
================================================================================
In some case, SDL generates synthetic mouse (resp. touch) events for touch
(resp. mouse) devices.
To enable/disable this behavior, see SDL_hints.h:
- SDL_HINT_TOUCH_MOUSE_EVENTS
- SDL_HINT_MOUSE_TOUCH_EVENTS
Misc
================================================================================
For some device, it appears to works better setting explicitly GL attributes
before creating a window:
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);
Threads and the Java VM
================================================================================
For a quick tour on how Linux native threads interoperate with the Java VM, take
a look here: https://developer.android.com/guide/practices/jni.html
If you want to use threads in your SDL app, it's strongly recommended that you
do so by creating them using SDL functions. This way, the required attach/detach
handling is managed by SDL automagically. If you have threads created by other
means and they make calls to SDL functions, make sure that you call
Android_JNI_SetupThread() before doing anything else otherwise SDL will attach
your thread automatically anyway (when you make an SDL call), but it'll never
detach it.
If you ever want to use JNI in a native thread (created by "SDL_CreateThread()"),
it won't be able to find your java class and method because of the java class loader
which is different for native threads, than for java threads (eg your "main()").
the work-around is to find class/method, in you "main()" thread, and to use them
in your native thread.
see:
https://developer.android.com/training/articles/perf-jni#faq:-why-didnt-findclass-find-my-class
Using STL
================================================================================
You can use STL in your project by creating an Application.mk file in the jni
folder and adding the following line:
APP_STL := c++_shared
For more information go here:
https://developer.android.com/ndk/guides/cpp-support
Using the emulator
================================================================================
There are some good tips and tricks for getting the most out of the
emulator here: https://developer.android.com/tools/devices/emulator.html
Especially useful is the info on setting up OpenGL ES 2.0 emulation.
Notice that this software emulator is incredibly slow and needs a lot of disk space.
Using a real device works better.
Troubleshooting
================================================================================
You can see if adb can see any devices with the following command:
adb devices
You can see the output of log messages on the default device with:
adb logcat
You can push files to the device with:
adb push local_file remote_path_and_file
You can push files to the SD Card at /sdcard, for example:
adb push moose.dat /sdcard/moose.dat
You can see the files on the SD card with a shell command:
adb shell ls /sdcard/
You can start a command shell on the default device with:
adb shell
You can remove the library files of your project (and not the SDL lib files) with:
ndk-build clean
You can do a build with the following command:
ndk-build
You can see the complete command line that ndk-build is using by passing V=1 on the command line:
ndk-build V=1
If your application crashes in native code, you can use ndk-stack to get a symbolic stack trace:
https://developer.android.com/ndk/guides/ndk-stack
If you want to go through the process manually, you can use addr2line to convert the
addresses in the stack trace to lines in your code.
For example, if your crash looks like this:
I/DEBUG ( 31): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 400085d0
I/DEBUG ( 31): r0 00000000 r1 00001000 r2 00000003 r3 400085d4
I/DEBUG ( 31): r4 400085d0 r5 40008000 r6 afd41504 r7 436c6a7c
I/DEBUG ( 31): r8 436c6b30 r9 435c6fb0 10 435c6f9c fp 4168d82c
I/DEBUG ( 31): ip 8346aff0 sp 436c6a60 lr afd1c8ff pc afd1c902 cpsr 60000030
I/DEBUG ( 31): #00 pc 0001c902 /system/lib/libc.so
I/DEBUG ( 31): #01 pc 0001ccf6 /system/lib/libc.so
I/DEBUG ( 31): #02 pc 000014bc /data/data/org.libsdl.app/lib/libmain.so
I/DEBUG ( 31): #03 pc 00001506 /data/data/org.libsdl.app/lib/libmain.so
You can see that there's a crash in the C library being called from the main code.
I run addr2line with the debug version of my code:
arm-eabi-addr2line -C -f -e obj/local/armeabi/libmain.so
and then paste in the number after "pc" in the call stack, from the line that I care about:
000014bc
I get output from addr2line showing that it's in the quit function, in testspriteminimal.c, on line 23.
You can add logging to your code to help show what's happening:
#include <android/log.h>
__android_log_print(ANDROID_LOG_INFO, "foo", "Something happened! x = %d", x);
If you need to build without optimization turned on, you can create a file called
"Application.mk" in the jni directory, with the following line in it:
APP_OPTIM := debug
Memory debugging
================================================================================
The best (and slowest) way to debug memory issues on Android is valgrind.
Valgrind has support for Android out of the box, just grab code using:
svn co svn://svn.valgrind.org/valgrind/trunk valgrind
... and follow the instructions in the file README.android to build it.
One thing I needed to do on Mac OS X was change the path to the toolchain,
and add ranlib to the environment variables:
export RANLIB=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-ranlib
Once valgrind is built, you can create a wrapper script to launch your
application with it, changing org.libsdl.app to your package identifier:
--- start_valgrind_app -------------------
#!/system/bin/sh
export TMPDIR=/data/data/org.libsdl.app
exec /data/local/Inst/bin/valgrind --log-file=/sdcard/valgrind.log --error-limit=no $*
------------------------------------------
Then push it to the device:
adb push start_valgrind_app /data/local
and make it executable:
adb shell chmod 755 /data/local/start_valgrind_app
and tell Android to use the script to launch your application:
adb shell setprop wrap.org.libsdl.app "logwrapper /data/local/start_valgrind_app"
If the setprop command says "could not set property", it's likely that
your package name is too long and you should make it shorter by changing
AndroidManifest.xml and the path to your class file in android-project/src
You can then launch your application normally and waaaaaaaiiittt for it.
You can monitor the startup process with the logcat command above, and
when it's done (or even while it's running) you can grab the valgrind
output file:
adb pull /sdcard/valgrind.log
When you're done instrumenting with valgrind, you can disable the wrapper:
adb shell setprop wrap.org.libsdl.app ""
Graphics debugging
================================================================================
If you are developing on a compatible Tegra-based tablet, NVidia provides
Tegra Graphics Debugger at their website. Because SDL2 dynamically loads EGL
and GLES libraries, you must follow their instructions for installing the
interposer library on a rooted device. The non-rooted instructions are not
compatible with applications that use SDL2 for video.
The Tegra Graphics Debugger is available from NVidia here:
https://developer.nvidia.com/tegra-graphics-debugger
Why is API level 19 the minimum required?
================================================================================
The latest NDK toolchain doesn't support targeting earlier than API level 19.
As of this writing, according to https://www.composables.com/tools/distribution-chart
about 99.7% of the Android devices accessing Google Play support API level 19 or
higher (August 2023).
A note regarding the use of the "dirty rectangles" rendering technique
================================================================================
If your app uses a variation of the "dirty rectangles" rendering technique,
where you only update a portion of the screen on each frame, you may notice a
variety of visual glitches on Android, that are not present on other platforms.
This is caused by SDL's use of EGL as the support system to handle OpenGL ES/ES2
contexts, in particular the use of the eglSwapBuffers function. As stated in the
documentation for the function "The contents of ancillary buffers are always
undefined after calling eglSwapBuffers".
Setting the EGL_SWAP_BEHAVIOR attribute of the surface to EGL_BUFFER_PRESERVED
is not possible for SDL as it requires EGL 1.4, available only on the API level
17+, so the only workaround available on this platform is to redraw the entire
screen each frame.
Reference: http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html
Ending your application
================================================================================
Two legitimate ways:
- return from your main() function. Java side will automatically terminate the
Activity by calling Activity.finish().
- Android OS can decide to terminate your application by calling onDestroy()
(see Activity life cycle). Your application will receive a SDL_QUIT event you
can handle to save things and quit.
Don't call exit() as it stops the activity badly.
NB: "Back button" can be handled as a SDL_KEYDOWN/UP events, with Keycode
SDLK_AC_BACK, for any purpose.
Known issues
================================================================================
- The number of buttons reported for each joystick is hardcoded to be 36, which
is the current maximum number of buttons Android can report.
+163 -84
View File
@@ -1,84 +1,163 @@
CMake
================================================================================
(www.cmake.org)
SDL's build system was traditionally based on autotools. Over time, this
approach has suffered from several issues across the different supported
platforms.
To solve these problems, a new build system based on CMake is under development.
It works in parallel to the legacy system, so users can experiment with it
without complication.
While still experimental, the build system should be usable on the following
platforms:
* FreeBSD
* Linux
* VS.NET 2010
* MinGW and Msys
* macOS, iOS, and tvOS, with support for XCode
================================================================================
Usage
================================================================================
Assuming the source for SDL is located at ~/sdl
cd ~
mkdir build
cd build
cmake ../sdl
This will build the static and dynamic versions of SDL in the ~/build directory.
================================================================================
Usage, iOS/tvOS
================================================================================
CMake 3.14+ natively includes support for iOS and tvOS. SDL binaries may be built
using Xcode or Make, possibly among other build-systems.
When using a recent version of CMake (3.14+), it should be possible to:
- build SDL for iOS, both static and dynamic
- build SDL test apps (as iOS/tvOS .app bundles)
- generate a working SDL_config.h for iOS (using SDL_config.h.cmake as a basis)
To use, set the following CMake variables when running CMake's configuration stage:
- `CMAKE_SYSTEM_NAME=<OS>` (either `iOS` or `tvOS`)
- `CMAKE_OSX_SYSROOT=<SDK>` (examples: `iphoneos`, `iphonesimulator`, `iphoneos12.4`, `/full/path/to/iPhoneOS.sdk`,
`appletvos`, `appletvsimulator`, `appletvos12.4`, `/full/path/to/AppleTVOS.sdk`, etc.)
- `CMAKE_OSX_ARCHITECTURES=<semicolon-separated list of CPU architectures>` (example: "arm64;armv7s;x86_64")
### Examples (for iOS/tvOS):
- for iOS-Simulator, using the latest, installed SDK:
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
- for iOS-Device, using the latest, installed SDK, 64-bit only
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES=arm64`
- for iOS-Device, using the latest, installed SDK, mixed 32/64 bit
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES="arm64;armv7s"`
- for iOS-Device, using a specific SDK revision (iOS 12.4, in this example):
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos12.4 -DCMAKE_OSX_ARCHITECTURES=arm64`
- for iOS-Simulator, using the latest, installed SDK, and building SDL test apps (as .app bundles):
`cmake ~/sdl -DSDL_TEST=1 -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
- for tvOS-Simulator, using the latest, installed SDK:
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
- for tvOS-Device, using the latest, installed SDK:
`cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=arm64`
# CMake
(www.cmake.org)
SDL's build system was traditionally based on autotools. Over time, this
approach has suffered from several issues across the different supported
platforms.
To solve these problems, a new build system based on CMake was introduced.
It is developed in parallel to the legacy autotools build system, so users
can experiment with it without complication.
The CMake build system is supported on the following platforms:
* FreeBSD
* Linux
* Microsoft Visual C
* MinGW and Msys
* macOS, iOS, and tvOS, with support for XCode
* Android
* Emscripten
* RiscOS
* Playstation Vita
## Building SDL
Assuming the source for SDL is located at `~/sdl`
```sh
cd ~
mkdir build
cd build
cmake ~/sdl
cmake --build .
```
This will build the static and dynamic versions of SDL in the `~/build` directory.
Installation can be done using:
```sh
cmake --install . # '--install' requires CMake 3.15, or newer
```
## Including SDL in your project
SDL can be included in your project in 2 major ways:
- using a system SDL library, provided by your (*nix) distribution or a package manager
- using a vendored SDL library: this is SDL copied or symlinked in a subfolder.
The following CMake script supports both, depending on the value of `MYGAME_VENDORED`.
```cmake
cmake_minimum_required(VERSION 3.5)
project(mygame)
# Create an option to switch between a system sdl library and a vendored sdl library
option(MYGAME_VENDORED "Use vendored libraries" OFF)
if(MYGAME_VENDORED)
add_subdirectory(vendored/sdl EXCLUDE_FROM_ALL)
else()
# 1. Look for a SDL2 package, 2. look for the SDL2 component and 3. fail if none can be found
find_package(SDL2 REQUIRED CONFIG REQUIRED COMPONENTS SDL2)
# 1. Look for a SDL2 package, 2. Look for the SDL2maincomponent and 3. DO NOT fail when SDL2main is not available
find_package(SDL2 REQUIRED CONFIG COMPONENTS SDL2main)
endif()
# Create your game executable target as usual
add_executable(mygame WIN32 mygame.c)
# SDL2::SDL2main may or may not be available. It is e.g. required by Windows GUI applications
if(TARGET SDL2::SDL2main)
# It has an implicit dependency on SDL2 functions, so it MUST be added before SDL2::SDL2 (or SDL2::SDL2-static)
target_link_libraries(mygame PRIVATE SDL2::SDL2main)
endif()
# Link to the actual SDL2 library. SDL2::SDL2 is the shared SDL library, SDL2::SDL2-static is the static SDL libarary.
target_link_libraries(mygame PRIVATE SDL2::SDL2)
```
### A system SDL library
For CMake to find SDL, it must be installed in [a default location CMake is looking for](https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure).
The following components are available, to be used as an argument of `find_package`.
| Component name | Description |
|----------------|--------------------------------------------------------------------------------------------|
| SDL2 | The SDL2 shared library, available through the `SDL2::SDL2` target [^SDL_TARGET_EXCEPTION] |
| SDL2-static | The SDL2 static library, available through the `SDL2::SDL2-static` target |
| SDL2main | The SDL2main static library, available through the `SDL2::SDL2main` target |
| SDL2test | The SDL2test static library, available through the `SDL2::SDL2test` target |
### Using a vendored SDL
This only requires a copy of SDL in a subdirectory.
## CMake configuration options for platforms
### iOS/tvOS
CMake 3.14+ natively includes support for iOS and tvOS. SDL binaries may be built
using Xcode or Make, possibly among other build-systems.
When using a recent version of CMake (3.14+), it should be possible to:
- build SDL for iOS, both static and dynamic
- build SDL test apps (as iOS/tvOS .app bundles)
- generate a working SDL_config.h for iOS (using SDL_config.h.cmake as a basis)
To use, set the following CMake variables when running CMake's configuration stage:
- `CMAKE_SYSTEM_NAME=<OS>` (either `iOS` or `tvOS`)
- `CMAKE_OSX_SYSROOT=<SDK>` (examples: `iphoneos`, `iphonesimulator`, `iphoneos12.4`, `/full/path/to/iPhoneOS.sdk`,
`appletvos`, `appletvsimulator`, `appletvos12.4`, `/full/path/to/AppleTVOS.sdk`, etc.)
- `CMAKE_OSX_ARCHITECTURES=<semicolon-separated list of CPU architectures>` (example: "arm64;armv7s;x86_64")
#### Examples
- for iOS-Simulator, using the latest, installed SDK:
```bash
cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64
```
- for iOS-Device, using the latest, installed SDK, 64-bit only
```bash
cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES=arm64
```
- for iOS-Device, using the latest, installed SDK, mixed 32/64 bit
```cmake
cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES="arm64;armv7s"
```
- for iOS-Device, using a specific SDK revision (iOS 12.4, in this example):
```cmake
cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos12.4 -DCMAKE_OSX_ARCHITECTURES=arm64
```
- for iOS-Simulator, using the latest, installed SDK, and building SDL test apps (as .app bundles):
```cmake
cmake ~/sdl -DSDL_TESTS=1 -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64
```
- for tvOS-Simulator, using the latest, installed SDK:
```cmake
cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=x86_64
```
- for tvOS-Device, using the latest, installed SDK:
```cmake
cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=arm64`
```
[^SDL_TARGET_EXCEPTION]: `SDL2::SDL2` can be an ALIAS to a static `SDL2::SDL2-static` target for multiple reasons.
+123 -123
View File
@@ -1,123 +1,123 @@
DirectFB
========
Supports:
- Hardware YUV overlays
- OpenGL - software only
- 2D/3D accelerations (depends on directfb driver)
- multiple displays
- windows
What you need:
* DirectFB 1.0.1, 1.2.x, 1.3.0
* Kernel-Framebuffer support: required: vesafb, radeonfb ....
* Mesa 7.0.x - optional for OpenGL
The `/etc/directfbrc` file should contain the following lines to make
your joystick work and avoid crashes:
```
disable-module=joystick
disable-module=cle266
disable-module=cyber5k
no-linux-input-grab
```
To disable to use x11 backend when DISPLAY variable is found use
```
export SDL_DIRECTFB_X11_CHECK=0
```
To disable the use of linux input devices, i.e. multimice/multikeyboard support,
use
```
export SDL_DIRECTFB_LINUX_INPUT=0
```
To use hardware accelerated YUV-overlays for YUV-textures, use:
```
export SDL_DIRECTFB_YUV_DIRECT=1
```
This is disabled by default. It will only support one
YUV texture, namely the first. Every other YUV texture will be
rendered in software.
In addition, you may use (directfb-1.2.x)
```
export SDL_DIRECTFB_YUV_UNDERLAY=1
```
to make the YUV texture an underlay. This will make the cursor to
be shown.
Simple Window Manager
=====================
The driver has support for a very, very basic window manager you may
want to use when running with `wm=default`. Use
```
export SDL_DIRECTFB_WM=1
```
to enable basic window borders. In order to have the window title rendered,
you need to have the following font installed:
```
/usr/share/fonts/truetype/freefont/FreeSans.ttf
```
OpenGL Support
==============
The following instructions will give you *software* OpenGL. However this
works at least on all directfb supported platforms.
As of this writing 20100802 you need to pull Mesa from git and do the following:
```
git clone git://anongit.freedesktop.org/git/mesa/mesa
cd mesa
git checkout 2c9fdaf7292423c157fc79b5ce43f0f199dd753a
```
Edit `configs/linux-directfb` so that the Directories-section looks like this:
```
# Directories
SRC_DIRS = mesa glu
GLU_DIRS = sgi
DRIVER_DIRS = directfb
PROGRAM_DIRS =
```
Then do the following:
```
make linux-directfb
make
echo Installing - please enter sudo pw.
sudo make install INSTALL_DIR=/usr/local/dfb_GL
cd src/mesa/drivers/directfb
make
sudo make install INSTALL_DIR=/usr/local/dfb_GL
```
To run the SDL - testprograms:
```
export SDL_VIDEODRIVER=directfb
export LD_LIBRARY_PATH=/usr/local/dfb_GL/lib
export LD_PRELOAD=/usr/local/dfb_GL/libGL.so.7
./testgl
```
DirectFB
========
Supports:
- Hardware YUV overlays
- OpenGL - software only
- 2D/3D accelerations (depends on directfb driver)
- multiple displays
- windows
What you need:
* DirectFB 1.0.1, 1.2.x, 1.3.0
* Kernel-Framebuffer support: required: vesafb, radeonfb ....
* Mesa 7.0.x - optional for OpenGL
The `/etc/directfbrc` file should contain the following lines to make
your joystick work and avoid crashes:
```
disable-module=joystick
disable-module=cle266
disable-module=cyber5k
no-linux-input-grab
```
To disable to use x11 backend when DISPLAY variable is found use
```
export SDL_DIRECTFB_X11_CHECK=0
```
To disable the use of linux input devices, i.e. multimice/multikeyboard support,
use
```
export SDL_DIRECTFB_LINUX_INPUT=0
```
To use hardware accelerated YUV-overlays for YUV-textures, use:
```
export SDL_DIRECTFB_YUV_DIRECT=1
```
This is disabled by default. It will only support one
YUV texture, namely the first. Every other YUV texture will be
rendered in software.
In addition, you may use (directfb-1.2.x)
```
export SDL_DIRECTFB_YUV_UNDERLAY=1
```
to make the YUV texture an underlay. This will make the cursor to
be shown.
Simple Window Manager
=====================
The driver has support for a very, very basic window manager you may
want to use when running with `wm=default`. Use
```
export SDL_DIRECTFB_WM=1
```
to enable basic window borders. In order to have the window title rendered,
you need to have the following font installed:
```
/usr/share/fonts/truetype/freefont/FreeSans.ttf
```
OpenGL Support
==============
The following instructions will give you *software* OpenGL. However this
works at least on all directfb supported platforms.
As of this writing 20100802 you need to pull Mesa from git and do the following:
```
git clone git://anongit.freedesktop.org/git/mesa/mesa
cd mesa
git checkout 2c9fdaf7292423c157fc79b5ce43f0f199dd753a
```
Edit `configs/linux-directfb` so that the Directories-section looks like this:
```
# Directories
SRC_DIRS = mesa glu
GLU_DIRS = sgi
DRIVER_DIRS = directfb
PROGRAM_DIRS =
```
Then do the following:
```
make linux-directfb
make
echo Installing - please enter sudo pw.
sudo make install INSTALL_DIR=/usr/local/dfb_GL
cd src/mesa/drivers/directfb
make
sudo make install INSTALL_DIR=/usr/local/dfb_GL
```
To run the SDL - testprograms:
```
export SDL_VIDEODRIVER=directfb
export LD_LIBRARY_PATH=/usr/local/dfb_GL/lib
export LD_PRELOAD=/usr/local/dfb_GL/libGL.so.7
./testgl
```
+138 -138
View File
@@ -1,138 +1,138 @@
# Dynamic API
Originally posted on Ryan's Google+ account.
Background:
- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2,
but developers are shipping their own SDL2 with individual Steam games.
These games might stop getting updates, but a newer SDL2 might be needed later.
Certainly we'll always be fixing bugs in SDL, even if a new video target isn't
ever needed, and these fixes won't make it to a game shipping its own SDL.
- Even if we replace the SDL2 in those games with a compatible one, that is to
say, edit a developer's Steam depot (yuck!), there are developers that are
statically linking SDL2 that we can't do this for. We can't even force the
dynamic loader to ignore their SDL2 in this case, of course.
- If you don't ship an SDL2 with the game in some form, people that disabled the
Steam Runtime, or just tried to run the game from the command line instead of
Steam might find themselves unable to run the game, due to a missing dependency.
- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target
generic Linux boxes that may or may not have SDL2 installed, you have to ship
the library or risk a total failure to launch. So now, you might have to have
a non-Steam build plus a Steam build (that is, one with and one without SDL2
included), which is inconvenient if you could have had one universal build
that works everywhere.
- We like the zlib license, but the biggest complaint from the open source
community about the license change is the static linking. The LGPL forced this
as a legal, not technical issue, but zlib doesn't care. Even those that aren't
concerned about the GNU freedoms found themselves solving the same problems:
swapping in a newer SDL to an older game often times can save the day.
Static linking stops this dead.
So here's what we did:
SDL now has, internally, a table of function pointers. So, this is what SDL_Init
now looks like:
```c
UInt32 SDL_Init(Uint32 flags)
{
return jump_table.SDL_Init(flags);
}
```
Except that is all done with a bunch of macro magic so we don't have to maintain
every one of these.
What is jump_table.SDL_init()? Eventually, that's a function pointer of the real
SDL_Init() that you've been calling all this time. But at startup, it looks more
like this:
```c
Uint32 SDL_Init_DEFAULT(Uint32 flags)
{
SDL_InitDynamicAPI();
return jump_table.SDL_Init(flags);
}
```
SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function
pointers, which means that this `_DEFAULT` function never gets called again.
First call to any SDL function sets the whole thing up.
So you might be asking, what was the value in that? Isn't this what the operating
system's dynamic loader was supposed to do for us? Yes, but now we've got this
level of indirection, we can do things like this:
```bash
export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0
./MyGameThatIsStaticallyLinkedToSDL2
```
And now, this game that is statically linked to SDL, can still be overridden
with a newer, or better, SDL. The statically linked one will only be used as
far as calling into the jump table in this case. But in cases where no override
is desired, the statically linked version will provide its own jump table,
and everyone is happy.
So now:
- Developers can statically link SDL, and users can still replace it.
(We'd still rather you ship a shared library, though!)
- Developers can ship an SDL with their game, Valve can override it for, say,
new features on SteamOS, or distros can override it for their own needs,
but it'll also just work in the default case.
- Developers can ship the same package to everyone (Humble Bundle, GOG, etc),
and it'll do the right thing.
- End users (and Valve) can update a game's SDL in almost any case,
to keep abandoned games running on newer platforms.
- Everyone develops with SDL exactly as they have been doing all along.
Same headers, same ABI. Just get the latest version to enable this magic.
A little more about SDL_InitDynamicAPI():
Internally, InitAPI does some locking to make sure everything waits until a
single thread initializes everything (although even SDL_CreateThread() goes
through here before spinning a thread, too), and then decides if it should use
an external SDL library. If not, it sets up the jump table using the current
SDL's function pointers (which might be statically linked into a program, or in
a shared library of its own). If so, it loads that library and looks for and
calls a single function:
```c
SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize);
```
That function takes a version number (more on that in a moment), the address of
the jump table, and the size, in bytes, of the table.
Now, we've got policy here: this table's layout never changes; new stuff gets
added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all
the needed functions if tablesize <= sizeof its own jump table. If tablesize is
bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but
if it's smaller, we know we can provide the entire API that the caller needs.
The version variable is a failsafe switch.
Right now it's always 1. This number changes when there are major API changes
(so we know if the tablesize might be smaller, or entries in it have changed).
Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not
inconceivable to have a small dispatch library that only supplies this one
function and loads different, otherwise-incompatible SDL libraries and has the
right one initialize the jump table based on the version. For something that
must generically catch lots of different versions of SDL over time, like the
Steam Client, this isn't a bad option.
Finally, I'm sure some people are reading this and thinking,
"I don't want that overhead in my project!"
To which I would point out that the extra function call through the jump table
probably wouldn't even show up in a profile, but lucky you: this can all be
disabled. You can build SDL without this if you absolutely must, but we would
encourage you not to do that. However, on heavily locked down platforms like
iOS, or maybe when debugging, it makes sense to disable it. The way this is
designed in SDL, you just have to change one #define, and the entire system
vaporizes out, and SDL functions exactly like it always did. Most of it is
macro magic, so the system is contained to one C file and a few headers.
However, this is on by default and you have to edit a header file to turn it
off. Our hopes is that if we make it easy to disable, but not too easy,
everyone will ultimately be able to get what they want, but we've gently
nudged everyone towards what we think is the best solution.
# Dynamic API
Originally posted on Ryan's Google+ account.
Background:
- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2,
but developers are shipping their own SDL2 with individual Steam games.
These games might stop getting updates, but a newer SDL2 might be needed later.
Certainly we'll always be fixing bugs in SDL, even if a new video target isn't
ever needed, and these fixes won't make it to a game shipping its own SDL.
- Even if we replace the SDL2 in those games with a compatible one, that is to
say, edit a developer's Steam depot (yuck!), there are developers that are
statically linking SDL2 that we can't do this for. We can't even force the
dynamic loader to ignore their SDL2 in this case, of course.
- If you don't ship an SDL2 with the game in some form, people that disabled the
Steam Runtime, or just tried to run the game from the command line instead of
Steam might find themselves unable to run the game, due to a missing dependency.
- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target
generic Linux boxes that may or may not have SDL2 installed, you have to ship
the library or risk a total failure to launch. So now, you might have to have
a non-Steam build plus a Steam build (that is, one with and one without SDL2
included), which is inconvenient if you could have had one universal build
that works everywhere.
- We like the zlib license, but the biggest complaint from the open source
community about the license change is the static linking. The LGPL forced this
as a legal, not technical issue, but zlib doesn't care. Even those that aren't
concerned about the GNU freedoms found themselves solving the same problems:
swapping in a newer SDL to an older game often times can save the day.
Static linking stops this dead.
So here's what we did:
SDL now has, internally, a table of function pointers. So, this is what SDL_Init
now looks like:
```c
UInt32 SDL_Init(Uint32 flags)
{
return jump_table.SDL_Init(flags);
}
```
Except that is all done with a bunch of macro magic so we don't have to maintain
every one of these.
What is jump_table.SDL_init()? Eventually, that's a function pointer of the real
SDL_Init() that you've been calling all this time. But at startup, it looks more
like this:
```c
Uint32 SDL_Init_DEFAULT(Uint32 flags)
{
SDL_InitDynamicAPI();
return jump_table.SDL_Init(flags);
}
```
SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function
pointers, which means that this `_DEFAULT` function never gets called again.
First call to any SDL function sets the whole thing up.
So you might be asking, what was the value in that? Isn't this what the operating
system's dynamic loader was supposed to do for us? Yes, but now we've got this
level of indirection, we can do things like this:
```bash
export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0
./MyGameThatIsStaticallyLinkedToSDL2
```
And now, this game that is statically linked to SDL, can still be overridden
with a newer, or better, SDL. The statically linked one will only be used as
far as calling into the jump table in this case. But in cases where no override
is desired, the statically linked version will provide its own jump table,
and everyone is happy.
So now:
- Developers can statically link SDL, and users can still replace it.
(We'd still rather you ship a shared library, though!)
- Developers can ship an SDL with their game, Valve can override it for, say,
new features on SteamOS, or distros can override it for their own needs,
but it'll also just work in the default case.
- Developers can ship the same package to everyone (Humble Bundle, GOG, etc),
and it'll do the right thing.
- End users (and Valve) can update a game's SDL in almost any case,
to keep abandoned games running on newer platforms.
- Everyone develops with SDL exactly as they have been doing all along.
Same headers, same ABI. Just get the latest version to enable this magic.
A little more about SDL_InitDynamicAPI():
Internally, InitAPI does some locking to make sure everything waits until a
single thread initializes everything (although even SDL_CreateThread() goes
through here before spinning a thread, too), and then decides if it should use
an external SDL library. If not, it sets up the jump table using the current
SDL's function pointers (which might be statically linked into a program, or in
a shared library of its own). If so, it loads that library and looks for and
calls a single function:
```c
SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize);
```
That function takes a version number (more on that in a moment), the address of
the jump table, and the size, in bytes, of the table.
Now, we've got policy here: this table's layout never changes; new stuff gets
added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all
the needed functions if tablesize <= sizeof its own jump table. If tablesize is
bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but
if it's smaller, we know we can provide the entire API that the caller needs.
The version variable is a failsafe switch.
Right now it's always 1. This number changes when there are major API changes
(so we know if the tablesize might be smaller, or entries in it have changed).
Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not
inconceivable to have a small dispatch library that only supplies this one
function and loads different, otherwise-incompatible SDL libraries and has the
right one initialize the jump table based on the version. For something that
must generically catch lots of different versions of SDL over time, like the
Steam Client, this isn't a bad option.
Finally, I'm sure some people are reading this and thinking,
"I don't want that overhead in my project!"
To which I would point out that the extra function call through the jump table
probably wouldn't even show up in a profile, but lucky you: this can all be
disabled. You can build SDL without this if you absolutely must, but we would
encourage you not to do that. However, on heavily locked down platforms like
iOS, or maybe when debugging, it makes sense to disable it. The way this is
designed in SDL, you just have to change one #define, and the entire system
vaporizes out, and SDL functions exactly like it always did. Most of it is
macro magic, so the system is contained to one C file and a few headers.
However, this is on by default and you have to edit a header file to turn it
off. Our hopes is that if we make it easy to disable, but not too easy,
everyone will ultimately be able to get what they want, but we've gently
nudged everyone towards what we think is the best solution.
+76 -35
View File
@@ -1,35 +1,76 @@
Emscripten
================================================================================
Build:
$ mkdir build
$ cd build
$ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2"
$ emmake make
Or with cmake:
$ mkdir build
$ cd build
$ emcmake cmake ..
$ emmake make
To build one of the tests:
$ cd test/
$ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html
Uses GLES2 renderer or software
Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere):
SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/):
$ EMCONFIGURE_JS=1 emconfigure ../configure
build as usual...
SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx):
$ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx
build as usual...
# Emscripten
(This documentation is not very robust; we will update and expand this later.)
## A quick note about audio
Modern web browsers will not permit web pages to produce sound before the
user has interacted with them; this is for several reasons, not the least
of which being that no one likes when a random browser tab suddenly starts
making noise and the user has to scramble to figure out which and silence
it.
To solve this, most browsers will refuse to let a web app use the audio
subsystem at all before the user has interacted with (clicked on) the page
in a meaningful way. SDL-based apps also have to deal with this problem; if
the user hasn't interacted with the page, SDL_OpenAudioDevice will fail.
There are two reasonable ways to deal with this: if you are writing some
sort of media player thing, where the user expects there to be a volume
control when you mouseover the canvas, just default that control to a muted
state; if the user clicks on the control to unmute it, on this first click,
open the audio device. This allows the media to play at start, the user can
reasonably opt-in to listening, and you never get access denied to the audio
device.
Many games do not have this sort of UI, and are more rigid about starting
audio along with everything else at the start of the process. For these, your
best bet is to write a little Javascript that puts up a "Click here to play!"
UI, and upon the user clicking, remove that UI and then call the Emscripten
app's main() function. As far as the application knows, the audio device was
available to be opened as soon as the program started, and since this magic
happens in a little Javascript, you don't have to change your C/C++ code at
all to make it happen.
Please see the discussion at https://github.com/libsdl-org/SDL/issues/6385
for some Javascript code to steal for this approach.
## Building SDL/emscripten
SDL currently requires at least Emscripten 3.1.35 to build. Newer versions
are likely to work, as well.
Build:
$ mkdir build
$ cd build
$ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2"
$ emmake make
Or with cmake:
$ mkdir build
$ cd build
$ emcmake cmake ..
$ emmake make
To build one of the tests:
$ cd test/
$ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html
Uses GLES2 renderer or software
Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere):
SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/):
$ EMCONFIGURE_JS=1 emconfigure ../configure
build as usual...
SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx):
$ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx
build as usual...
+155
View File
@@ -0,0 +1,155 @@
GDK
=====
This port allows SDL applications to run via Microsoft's Game Development Kit (GDK).
Windows (GDK) and Xbox One/Xbox Series (GDKX) are supported. Although most of the Xbox code is included in the public SDL source code, NDA access is required for a small number of source files. If you have access to GDKX, these required Xbox files are posted on the GDK forums [here](https://forums.xboxlive.com/questions/130003/).
Requirements
------------
* Microsoft Visual Studio 2022 (in theory, it should also work in 2017 or 2019, but this has not been tested)
* Microsoft GDK June 2022 or newer (public release [here](https://github.com/microsoft/GDK/releases/tag/June_2022))
* To publish a package or successfully authenticate a user, you will need to create an app id/configure services in Partner Center. However, for local testing purposes (without authenticating on Xbox Live), the identifiers used by the GDK test programs in the included solution will work.
Windows GDK Status
------
The Windows GDK port supports the full set of Win32 APIs, renderers, controllers, input devices, etc., as the normal Windows x64 build of SDL.
* Additionally, the GDK port adds the following:
* Compile-time platform detection for SDL programs. The `__GDK__` is `#define`d on every GDK platform, and the `__WINGDK__` is `#define`d on Windows GDK, specifically. (This distinction exists because other GDK platforms support a smaller subset of functionality. This allows you to mark code for "any" GDK separate from Windows GDK.)
* GDK-specific setup:
* Initializing/uninitializing the game runtime, and initializing Xbox Live services
* Creating a global task queue and setting it as the default for the process. When running any async operations, passing in `NULL` as the task queue will make the task get added to the global task queue.
* An implementation on `WinMain` that performs the above GDK setup (you should link against SDL2main.lib, as in Windows x64). If you are unable to do this, you can instead manually call `SDL_GDKRunApp` from your entry point, passing in your `SDL_main` function and `NULL` as the parameters.
* Global task queue callbacks are dispatched during `SDL_PumpEvents` (which is also called internally if using `SDL_PollEvent`).
* You can get the handle of the global task queue through `SDL_GDKGetTaskQueue`, if needed. When done with the queue, be sure to use `XTaskQueueCloseHandle` to decrement the reference count (otherwise it will cause a resource leak).
* What doesn't work:
* Compilation with anything other than through the included Visual C++ solution file
## VisualC-GDK Solution
The included `VisualC-GDK/SDL.sln` solution includes the following targets for the Gaming.Desktop.x64 configuration:
* SDL2 (DLL) - This is the typical SDL2.dll, but for Gaming.Desktop.x64.
* SDL2main (lib) - This contains a drop-in implementation of `WinMain` that is used as the entry point for GDK programs.
* tests/testgamecontroller - Standard SDL test program demonstrating controller functionality.
* tests/testgdk - GDK-specific test program that demonstrates using the global task queue to login a user into Xbox Live.
*NOTE*: As of the June 2022 GDK, you cannot test user logins without a valid Title ID and MSAAppId. You will need to manually change the identifiers in the `MicrosoftGame.config` to your valid IDs from Partner Center if you wish to test this.
* tests/testsprite2 - Standard SDL test program demonstrating sprite drawing functionality.
If you set one of the test programs as a startup project, you can run it directly from Visual Studio.
Windows GDK Setup, Detailed Steps
---------------------
These steps assume you already have a game using SDL that runs on Windows x64 along with a corresponding Visual Studio solution file for the x64 version. If you don't have this, it's easiest to use one of the test program vcxproj files in the `VisualC-GDK` directory as a starting point, though you will still need to do most of the steps below.
### 1. Add a Gaming.Desktop.x64 Configuration ###
In your game's existing Visual Studio Solution, go to Build > Configuration Manager. From the "Active solution platform" drop-down select "New...". From the drop-down list, select Gaming.Desktop.x64 and copy the settings from the x64 configuration.
### 2. Build SDL2 and SDL2main for GDK ###
Open `VisualC-GDK/SDL.sln` in Visual Studio, you need to build the SDL2 and SDL2main targets for the Gaming.Desktop.x64 platform (Release is recommended). You will need to copy/keep track of the `SDL2.dll`, `XCurl.dll` (which is output by Gaming.Desktop.x64), `SDL2.lib`, and `SDL2main.lib` output files for your game project.
*Alternatively*, you could setup your solution file to instead reference the SDL2/SDL2main project file targets from the SDL source, and add those projects as a dependency. This would mean that SDL2 and SDL2main would both be built when your game is built.
### 3. Configuring Project Settings ###
While the Gaming.Desktop.x64 configuration sets most of the required settings, there are some additional items to configure for your game project under the Gaming.Desktop.x64 Configuration:
* Under C/C++ > General > Additional Include Directories, make sure the `SDL/include` path is referenced
* Under Linker > General > Additional Library Directories, make sure to reference the path where the newly-built SDL2.lib and SDL2main.lib are
* Under Linker > Input > Additional Dependencies, you need the following:
* `SDL2.lib`
* `SDL2main.lib` (unless not using)
* `xgameruntime.lib`
* `../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib`
* Note that in general, the GDK libraries depend on the MSVC C/C++ runtime, so there is no way to remove this dependency from a GDK program that links against GDK.
### 4. Setting up SDL_main ###
Rather than using your own implementation of `WinMain`, it's recommended that you instead `#include "SDL_main.h"` and declare a standard main function. If you are unable to do this, you can instead manually call `SDL_GDKRunApp` from your entry point, passing in your `SDL_main` function and `NULL` as the parameters.
### 5. Required DLLs ###
The game will not launch in the debugger unless required DLLs are included in the directory that contains the game's .exe file. You need to make sure that the following files are copied into the directory:
* Your SDL2.dll
* "$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll"
* XCurl.dll
You can either copy these in a post-build step, or you can add the dlls into the project and set its Configuration Properties > General > Item type to "Copy file," which will also copy them into the output directory.
### 6. Setting up MicrosoftGame.config ###
You can copy `VisualC-GDK/tests/testgdk/MicrosoftGame.config` and use that as a starting point in your project. Minimally, you will want to change the Executable Name attribute, the DefaultDisplayName, and the Description.
This file must be copied into the same directory as the game's .exe file. As with the DLLs, you can either use a post-build step or the "Copy file" item type.
For basic testing, you do not need to change anything else in `MicrosoftGame.config`. However, if you want to test any Xbox Live services (such as logging in users) _or_ publish a package, you will need to setup a Game app on Partner Center.
Then, you need to set the following values to the values from Partner Center:
* Identity tag - Name and Publisher attributes
* TitleId
* MSAAppId
### 7. Adding Required Logos
Several logo PNG files are required to be able to launch the game, even from the debugger. You can use the sample logos provided in `VisualC-GDK/logos`. As with the other files, they must be copied into the same directory as the game's .exe file.
### 8. Copying any Data Files ###
When debugging GDK games, there is no way to specify a working directory. Therefore, any required game data must also be copied into the output directory, likely in a post-build step.
### 9. Build and Run from Visual Studio ###
At this point, you should be able to build and run your game from the Visual Studio Debugger. If you get any linker errors, make sure you double-check that you referenced all the required libs.
If you are testing Xbox Live functionality, it's likely you will need to change to the Sandbox for your title. To do this:
1. Run "Desktop VS 2022 Gaming Command Prompt" from the Start Menu
2. Switch the sandbox name with:
`XblPCSandbox SANDBOX.#`
3. (To switch back to the retail sandbox):
`XblPCSandbox RETAIL`
### 10. Packaging and Installing Locally
You can use one of the test program's `PackageLayout.xml` as a starting point. Minimally, you will need to change the exe to the correct name and also reference any required game data. As with the other data files, it's easiest if you have this copy to the output directory, although it's not a requirement as you can specify relative paths to files.
To create the package:
1. Run "Desktop VS 2022 Gaming Command Prompt" from the Start Menu
2. `cd` to the directory containing the `PackageLayout.xml` with the correct paths (if you use the local path as in the sample package layout, this would be from your .exe output directory)
3. `mkdir Package` to create an output directory
4. To package the file into the `Package` directory, use:
`makepkg pack /f PackageLayout.xml /lt /d . /nogameos /pc /pd Package`
5. To install the package, use:
`wdapp install PACKAGENAME.msixvc`
6. Once the package is installed, you can run it from the start menu.
7. As with when running from Visual Studio, if you need to test any Xbox Live functionality you must switch to the correct sandbox.
Troubleshooting
---------------
#### Xbox Live Login does not work
As of June 2022 GDK, you must have a valid Title Id and MSAAppId in order to test Xbox Live functionality such as user login. Make sure these are set correctly in the `MicrosoftGame.config`. This means that even testgdk will not let you login without setting these properties to valid values.
Furthermore, confirm that your PC is set to the correct sandbox.
#### "The current user has already installed an unpackaged version of this app. A packaged version cannot replace this." error when installing
Prior to June 2022 GDK, running from the Visual Studio debugger would still locally register the app (and it would appear on the start menu). To fix this, you have to uninstall it (it's simplest to right click on it from the start menu to uninstall it).
+71 -71
View File
@@ -1,71 +1,71 @@
Dollar Gestures
===========================================================================
SDL provides an implementation of the $1 gesture recognition system. This allows for recording, saving, loading, and performing single stroke gestures.
Gestures can be performed with any number of fingers (the centroid of the fingers must follow the path of the gesture), but the number of fingers must be constant (a finger cannot go down in the middle of a gesture). The path of a gesture is considered the path from the time when the final finger went down, to the first time any finger comes up.
Dollar gestures are assigned an Id based on a hash function. This is guaranteed to remain constant for a given gesture. There is a (small) chance that two different gestures will be assigned the same ID. In this case, simply re-recording one of the gestures should result in a different ID.
Recording:
----------
To begin recording on a touch device call:
SDL_RecordGesture(SDL_TouchID touchId), where touchId is the id of the touch device you wish to record on, or -1 to record on all connected devices.
Recording terminates as soon as a finger comes up. Recording is acknowledged by an SDL_DOLLARRECORD event.
A SDL_DOLLARRECORD event is a dgesture with the following fields:
* event.dgesture.touchId - the Id of the touch used to record the gesture.
* event.dgesture.gestureId - the unique id of the recorded gesture.
Performing:
-----------
As long as there is a dollar gesture assigned to a touch, every finger-up event will also cause an SDL_DOLLARGESTURE event with the following fields:
* event.dgesture.touchId - the Id of the touch which performed the gesture.
* event.dgesture.gestureId - the unique id of the closest gesture to the performed stroke.
* event.dgesture.error - the difference between the gesture template and the actual performed gesture. Lower error is a better match.
* event.dgesture.numFingers - the number of fingers used to draw the stroke.
Most programs will want to define an appropriate error threshold and check to be sure that the error of a gesture is not abnormally high (an indicator that no gesture was performed).
Saving:
-------
To save a template, call SDL_SaveDollarTemplate(gestureId, dst) where gestureId is the id of the gesture you want to save, and dst is an SDL_RWops pointer to the file where the gesture will be stored.
To save all currently loaded templates, call SDL_SaveAllDollarTemplates(dst) where dst is an SDL_RWops pointer to the file where the gesture will be stored.
Both functions return the number of gestures successfully saved.
Loading:
--------
To load templates from a file, call SDL_LoadDollarTemplates(touchId,src) where touchId is the id of the touch to load to (or -1 to load to all touch devices), and src is an SDL_RWops pointer to a gesture save file.
SDL_LoadDollarTemplates returns the number of templates successfully loaded.
===========================================================================
Multi Gestures
===========================================================================
SDL provides simple support for pinch/rotate/swipe gestures.
Every time a finger is moved an SDL_MULTIGESTURE event is sent with the following fields:
* event.mgesture.touchId - the Id of the touch on which the gesture was performed.
* event.mgesture.x - the normalized x coordinate of the gesture. (0..1)
* event.mgesture.y - the normalized y coordinate of the gesture. (0..1)
* event.mgesture.dTheta - the amount that the fingers rotated during this motion.
* event.mgesture.dDist - the amount that the fingers pinched during this motion.
* event.mgesture.numFingers - the number of fingers used in the gesture.
===========================================================================
Notes
===========================================================================
For a complete example see test/testgesture.c
Please direct questions/comments to:
jim.tla+sdl_touch@gmail.com
Dollar Gestures
===========================================================================
SDL provides an implementation of the $1 gesture recognition system. This allows for recording, saving, loading, and performing single stroke gestures.
Gestures can be performed with any number of fingers (the centroid of the fingers must follow the path of the gesture), but the number of fingers must be constant (a finger cannot go down in the middle of a gesture). The path of a gesture is considered the path from the time when the final finger went down, to the first time any finger comes up.
Dollar gestures are assigned an Id based on a hash function. This is guaranteed to remain constant for a given gesture. There is a (small) chance that two different gestures will be assigned the same ID. In this case, simply re-recording one of the gestures should result in a different ID.
Recording:
----------
To begin recording on a touch device call:
SDL_RecordGesture(SDL_TouchID touchId), where touchId is the id of the touch device you wish to record on, or -1 to record on all connected devices.
Recording terminates as soon as a finger comes up. Recording is acknowledged by an SDL_DOLLARRECORD event.
A SDL_DOLLARRECORD event is a dgesture with the following fields:
* event.dgesture.touchId - the Id of the touch used to record the gesture.
* event.dgesture.gestureId - the unique id of the recorded gesture.
Performing:
-----------
As long as there is a dollar gesture assigned to a touch, every finger-up event will also cause an SDL_DOLLARGESTURE event with the following fields:
* event.dgesture.touchId - the Id of the touch which performed the gesture.
* event.dgesture.gestureId - the unique id of the closest gesture to the performed stroke.
* event.dgesture.error - the difference between the gesture template and the actual performed gesture. Lower error is a better match.
* event.dgesture.numFingers - the number of fingers used to draw the stroke.
Most programs will want to define an appropriate error threshold and check to be sure that the error of a gesture is not abnormally high (an indicator that no gesture was performed).
Saving:
-------
To save a template, call SDL_SaveDollarTemplate(gestureId, dst) where gestureId is the id of the gesture you want to save, and dst is an SDL_RWops pointer to the file where the gesture will be stored.
To save all currently loaded templates, call SDL_SaveAllDollarTemplates(dst) where dst is an SDL_RWops pointer to the file where the gesture will be stored.
Both functions return the number of gestures successfully saved.
Loading:
--------
To load templates from a file, call SDL_LoadDollarTemplates(touchId,src) where touchId is the id of the touch to load to (or -1 to load to all touch devices), and src is an SDL_RWops pointer to a gesture save file.
SDL_LoadDollarTemplates returns the number of templates successfully loaded.
===========================================================================
Multi Gestures
===========================================================================
SDL provides simple support for pinch/rotate/swipe gestures.
Every time a finger is moved an SDL_MULTIGESTURE event is sent with the following fields:
* event.mgesture.touchId - the Id of the touch on which the gesture was performed.
* event.mgesture.x - the normalized x coordinate of the gesture. (0..1)
* event.mgesture.y - the normalized y coordinate of the gesture. (0..1)
* event.mgesture.dTheta - the amount that the fingers rotated during this motion.
* event.mgesture.dDist - the amount that the fingers pinched during this motion.
* event.mgesture.numFingers - the number of fingers used in the gesture.
===========================================================================
Notes
===========================================================================
For a complete example see test/testgesture.c
Please direct questions/comments to:
jim.tla+sdl_touch@gmail.com
+19 -19
View File
@@ -1,19 +1,19 @@
git
=========
The latest development version of SDL is available via git.
Git allows you to get up-to-the-minute fixes and enhancements;
as a developer works on a source tree, you can use "git" to mirror that
source tree instead of waiting for an official release. Please look
at the Git website ( https://git-scm.com/ ) for more
information on using git, where you can also download software for
macOS, Windows, and Unix systems.
git clone https://github.com/libsdl-org/SDL
If you are building SDL via configure, you will need to run autogen.sh
before running configure.
There is a web interface to the Git repository at:
http://github.com/libsdl-org/SDL/
git
=========
The latest development version of SDL is available via git.
Git allows you to get up-to-the-minute fixes and enhancements;
as a developer works on a source tree, you can use "git" to mirror that
source tree instead of waiting for an official release. Please look
at the Git website ( https://git-scm.com/ ) for more
information on using git, where you can also download software for
macOS, Windows, and Unix systems.
git clone https://github.com/libsdl-org/SDL
If you are building SDL via configure, you will need to run autogen.sh
before running configure.
There is a web interface to the Git repository at:
http://github.com/libsdl-org/SDL/
+4 -4
View File
@@ -1,4 +1,4 @@
We are no longer hosted in Mercurial. Please see README-git.md for details.
Thanks!
We are no longer hosted in Mercurial. Please see README-git.md for details.
Thanks!
+307 -275
View File
@@ -1,275 +1,307 @@
iOS
======
Building the Simple DirectMedia Layer for iOS 5.1+
==============================================================================
Requirements: Mac OS X 10.8 or later and the iOS 7+ SDK.
Instructions:
1. Open SDL.xcodeproj (located in Xcode/SDL) in Xcode.
2. Select your desired target, and hit build.
Using the Simple DirectMedia Layer for iOS
==============================================================================
1. Run Xcode and create a new project using the iOS Game template, selecting the Objective C language and Metal game technology.
2. In the main view, delete all files except for Assets and LaunchScreen
3. Right click the project in the main view, select "Add Files...", and add the SDL project, Xcode/SDL/SDL.xcodeproj
4. Select the project in the main view, go to the "Info" tab and under "Custom iOS Target Properties" remove the line "Main storyboard file base name"
5. Select the project in the main view, go to the "Build Settings" tab, select "All", and edit "Header Search Path" and drag over the SDL "Public Headers" folder from the left
6. Select the project in the main view, go to the "Build Phases" tab, select "Link Binary With Libraries", and add SDL2.framework from "Framework-iOS"
7. Select the project in the main view, go to the "General" tab, scroll down to "Frameworks, Libraries, and Embedded Content", and select "Embed & Sign" for the SDL library.
8. In the main view, expand SDL -> Library Source -> main -> uikit and drag SDL_uikit_main.c into your game files
9. Add the source files that you would normally have for an SDL program, making sure to have #include "SDL.h" at the top of the file containing your main() function.
10. Add any assets that your application needs.
11. Enjoy!
TODO: Add information regarding App Store requirements such as icons, etc.
Notes -- Retina / High-DPI and window sizes
==============================================================================
Window and display mode sizes in SDL are in "screen coordinates" (or "points",
in Apple's terminology) rather than in pixels. On iOS this means that a window
created on an iPhone 6 will have a size in screen coordinates of 375 x 667,
rather than a size in pixels of 750 x 1334. All iOS apps are expected to
size their content based on screen coordinates / points rather than pixels,
as this allows different iOS devices to have different pixel densities
(Retina versus non-Retina screens, etc.) without apps caring too much.
By default SDL will not use the full pixel density of the screen on
Retina/high-dpi capable devices. Use the SDL_WINDOW_ALLOW_HIGHDPI flag when
creating your window to enable high-dpi support.
When high-dpi support is enabled, SDL_GetWindowSize() and display mode sizes
will still be in "screen coordinates" rather than pixels, but the window will
have a much greater pixel density when the device supports it, and the
SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() functions (depending on
whether raw OpenGL or the SDL_Render API is used) can be queried to determine
the size in pixels of the drawable screen framebuffer.
Some OpenGL ES functions such as glViewport expect sizes in pixels rather than
sizes in screen coordinates. When doing 2D rendering with OpenGL ES, an
orthographic projection matrix using the size in screen coordinates
(SDL_GetWindowSize()) can be used in order to display content at the same scale
no matter whether a Retina device is used or not.
Notes -- Application events
==============================================================================
On iOS the application goes through a fixed life cycle and you will get
notifications of state changes via application events. When these events
are delivered you must handle them in an event callback because the OS may
not give you any processing time after the events are delivered.
e.g.
int HandleAppEvents(void *userdata, SDL_Event *event)
{
switch (event->type)
{
case SDL_APP_TERMINATING:
/* Terminate the app.
Shut everything down before returning from this function.
*/
return 0;
case SDL_APP_LOWMEMORY:
/* You will get this when your app is paused and iOS wants more memory.
Release as much memory as possible.
*/
return 0;
case SDL_APP_WILLENTERBACKGROUND:
/* Prepare your app to go into the background. Stop loops, etc.
This gets called when the user hits the home button, or gets a call.
*/
return 0;
case SDL_APP_DIDENTERBACKGROUND:
/* This will get called if the user accepted whatever sent your app to the background.
If the user got a phone call and canceled it, you'll instead get an SDL_APP_DIDENTERFOREGROUND event and restart your loops.
When you get this, you have 5 seconds to save all your state or the app will be terminated.
Your app is NOT active at this point.
*/
return 0;
case SDL_APP_WILLENTERFOREGROUND:
/* This call happens when your app is coming back to the foreground.
Restore all your state here.
*/
return 0;
case SDL_APP_DIDENTERFOREGROUND:
/* Restart your loops here.
Your app is interactive and getting CPU again.
*/
return 0;
default:
/* No special processing, add it to the event queue */
return 1;
}
}
int main(int argc, char *argv[])
{
SDL_SetEventFilter(HandleAppEvents, NULL);
... run your main loop
return 0;
}
Notes -- Accelerometer as Joystick
==============================================================================
SDL for iPhone supports polling the built in accelerometer as a joystick device. For an example on how to do this, see the accelerometer.c in the demos directory.
The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis() reports joystick values as signed integers. Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver. To convert SDL_JoystickGetAxis() reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
Notes -- OpenGL ES
==============================================================================
Your SDL application for iOS uses OpenGL ES for video by default.
OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute().
If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 0.
OpenGL ES on iOS doesn't use the traditional system-framebuffer setup provided in other operating systems. Special care must be taken because of this:
- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow() is called.
- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow() is called.
- If multisample antialiasing (MSAA) is used and glReadPixels is used on the screen, the drawable framebuffer must be resolved to the MSAA resolve framebuffer (via glBlitFramebuffer or glResolveMultisampleFramebufferAPPLE), and the MSAA resolve framebuffer must be bound to the GL_READ_FRAMEBUFFER binding point, before glReadPixels is called.
The above objects can be obtained via SDL_GetWindowWMInfo() (in SDL_syswm.h).
Notes -- Keyboard
==============================================================================
The SDL keyboard API has been extended to support on-screen keyboards:
void SDL_StartTextInput()
-- enables text events and reveals the onscreen keyboard.
void SDL_StopTextInput()
-- disables text events and hides the onscreen keyboard.
SDL_bool SDL_IsTextInputActive()
-- returns whether or not text events are enabled (and the onscreen keyboard is visible)
Notes -- Mouse
==============================================================================
iOS now supports Bluetooth mice on iPad, but by default will provide the mouse input as touch. In order for SDL to see the real mouse events, you should set the key UIApplicationSupportsIndirectInputEvents to true in your Info.plist
Notes -- Reading and Writing files
==============================================================================
Each application installed on iPhone resides in a sandbox which includes its own Application Home directory. Your application may not access files outside this directory.
Once your application is installed its directory tree looks like:
MySDLApp Home/
MySDLApp.app
Documents/
Library/
Preferences/
tmp/
When your SDL based iPhone application starts up, it sets the working directory to the main bundle (MySDLApp Home/MySDLApp.app), where your application resources are stored. You cannot write to this directory. Instead, I advise you to write document files to "../Documents/" and preferences to "../Library/Preferences".
More information on this subject is available here:
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
Notes -- iPhone SDL limitations
==============================================================================
Windows:
Full-size, single window applications only. You cannot create multi-window SDL applications for iPhone OS. The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow() the flag SDL_WINDOW_BORDERLESS).
Textures:
The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats.
Loading Shared Objects:
This is disabled by default since it seems to break the terms of the iOS SDK agreement for iOS versions prior to iOS 8. It can be re-enabled in SDL_config_iphoneos.h.
Notes -- CoreBluetooth.framework
==============================================================================
SDL_JOYSTICK_HIDAPI is disabled by default. It can give you access to a lot
more game controller devices, but it requires permission from the user before
your app will be able to talk to the Bluetooth hardware. "Made For iOS"
branded controllers do not need this as we don't have to speak to them
directly with raw bluetooth, so many apps can live without this.
You'll need to link with CoreBluetooth.framework and add something like this
to your Info.plist:
<key>NSBluetoothPeripheralUsageDescription</key>
<string>MyApp would like to remain connected to nearby bluetooth Game Controllers and Game Pads even when you're not using the app.</string>
Game Center
==============================================================================
Game Center integration might require that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
e.g.
extern "C"
void ShowFrame(void*)
{
... do event handling, frame logic and rendering ...
}
int main(int argc, char *argv[])
{
... initialize game ...
#if __IPHONEOS__
// Initialize the Game Center for scoring and matchmaking
InitGameCenter();
// Set up the game to run in the window animation callback on iOS
// so that Game Center and so forth works correctly.
SDL_iPhoneSetAnimationCallback(window, 1, ShowFrame, NULL);
#else
while ( running ) {
ShowFrame(0);
DelayFrame();
}
#endif
return 0;
}
Deploying to older versions of iOS
==============================================================================
SDL supports deploying to older versions of iOS than are supported by the latest version of Xcode, all the way back to iOS 6.1
In order to do that you need to download an older version of Xcode:
https://developer.apple.com/download/more/?name=Xcode
Open the package contents of the older Xcode and your newer version of Xcode and copy over the folders in Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Then open the file Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist and add the versions of iOS you want to deploy to the key Root/DefaultProperties/DEPLOYMENT_TARGET_SUGGESTED_VALUES
Open your project and set your deployment target to the desired version of iOS
Finally, remove GameController from the list of frameworks linked by your application and edit the build settings for "Other Linker Flags" and add -weak_framework GameController
iOS
======
Building the Simple DirectMedia Layer for iOS 9.0+
==============================================================================
Requirements: Mac OS X 10.9 or later and the iOS 9.0 or newer SDK.
Instructions:
1. Open SDL.xcodeproj (located in Xcode/SDL) in Xcode.
2. Select your desired target, and hit build.
Using the Simple DirectMedia Layer for iOS
==============================================================================
1. Run Xcode and create a new project using the iOS Game template, selecting the Objective C language and Metal game technology.
2. In the main view, delete all files except for Assets and LaunchScreen
3. Right click the project in the main view, select "Add Files...", and add the SDL project, Xcode/SDL/SDL.xcodeproj
4. Select the project in the main view, go to the "Info" tab and under "Custom iOS Target Properties" remove the line "Main storyboard file base name"
5. Select the project in the main view, go to the "Build Settings" tab, select "All", and edit "Header Search Path" and drag over the SDL "Public Headers" folder from the left
6. Select the project in the main view, go to the "Build Phases" tab, select "Link Binary With Libraries", and add SDL2.framework from "Framework-iOS"
7. Select the project in the main view, go to the "General" tab, scroll down to "Frameworks, Libraries, and Embedded Content", and select "Embed & Sign" for the SDL library.
8. In the main view, expand SDL -> Library Source -> main -> uikit and drag SDL_uikit_main.c into your game files
9. Add the source files that you would normally have for an SDL program, making sure to have #include "SDL.h" at the top of the file containing your main() function.
10. Add any assets that your application needs.
11. Enjoy!
TODO: Add information regarding App Store requirements such as icons, etc.
Notes -- Retina / High-DPI and window sizes
==============================================================================
Window and display mode sizes in SDL are in "screen coordinates" (or "points",
in Apple's terminology) rather than in pixels. On iOS this means that a window
created on an iPhone 6 will have a size in screen coordinates of 375 x 667,
rather than a size in pixels of 750 x 1334. All iOS apps are expected to
size their content based on screen coordinates / points rather than pixels,
as this allows different iOS devices to have different pixel densities
(Retina versus non-Retina screens, etc.) without apps caring too much.
By default SDL will not use the full pixel density of the screen on
Retina/high-dpi capable devices. Use the SDL_WINDOW_ALLOW_HIGHDPI flag when
creating your window to enable high-dpi support.
When high-dpi support is enabled, SDL_GetWindowSize() and display mode sizes
will still be in "screen coordinates" rather than pixels, but the window will
have a much greater pixel density when the device supports it, and the
SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() functions (depending on
whether raw OpenGL or the SDL_Render API is used) can be queried to determine
the size in pixels of the drawable screen framebuffer.
Some OpenGL ES functions such as glViewport expect sizes in pixels rather than
sizes in screen coordinates. When doing 2D rendering with OpenGL ES, an
orthographic projection matrix using the size in screen coordinates
(SDL_GetWindowSize()) can be used in order to display content at the same scale
no matter whether a Retina device is used or not.
Notes -- Application events
==============================================================================
On iOS the application goes through a fixed life cycle and you will get
notifications of state changes via application events. When these events
are delivered you must handle them in an event callback because the OS may
not give you any processing time after the events are delivered.
e.g.
int HandleAppEvents(void *userdata, SDL_Event *event)
{
switch (event->type)
{
case SDL_APP_TERMINATING:
/* Terminate the app.
Shut everything down before returning from this function.
*/
return 0;
case SDL_APP_LOWMEMORY:
/* You will get this when your app is paused and iOS wants more memory.
Release as much memory as possible.
*/
return 0;
case SDL_APP_WILLENTERBACKGROUND:
/* Prepare your app to go into the background. Stop loops, etc.
This gets called when the user hits the home button, or gets a call.
*/
return 0;
case SDL_APP_DIDENTERBACKGROUND:
/* This will get called if the user accepted whatever sent your app to the background.
If the user got a phone call and canceled it, you'll instead get an SDL_APP_DIDENTERFOREGROUND event and restart your loops.
When you get this, you have 5 seconds to save all your state or the app will be terminated.
Your app is NOT active at this point.
*/
return 0;
case SDL_APP_WILLENTERFOREGROUND:
/* This call happens when your app is coming back to the foreground.
Restore all your state here.
*/
return 0;
case SDL_APP_DIDENTERFOREGROUND:
/* Restart your loops here.
Your app is interactive and getting CPU again.
*/
return 0;
default:
/* No special processing, add it to the event queue */
return 1;
}
}
int main(int argc, char *argv[])
{
SDL_SetEventFilter(HandleAppEvents, NULL);
... run your main loop
return 0;
}
Notes -- Accelerometer as Joystick
==============================================================================
SDL for iPhone supports polling the built in accelerometer as a joystick device. For an example on how to do this, see the accelerometer.c in the demos directory.
The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis() reports joystick values as signed integers. Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver. To convert SDL_JoystickGetAxis() reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
Notes -- OpenGL ES
==============================================================================
Your SDL application for iOS uses OpenGL ES for video by default.
OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute().
If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 0.
OpenGL ES on iOS doesn't use the traditional system-framebuffer setup provided in other operating systems. Special care must be taken because of this:
- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow() is called.
- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow() is called.
- If multisample antialiasing (MSAA) is used and glReadPixels is used on the screen, the drawable framebuffer must be resolved to the MSAA resolve framebuffer (via glBlitFramebuffer or glResolveMultisampleFramebufferAPPLE), and the MSAA resolve framebuffer must be bound to the GL_READ_FRAMEBUFFER binding point, before glReadPixels is called.
The above objects can be obtained via SDL_GetWindowWMInfo() (in SDL_syswm.h).
Notes -- Keyboard
==============================================================================
The SDL keyboard API has been extended to support on-screen keyboards:
void SDL_StartTextInput()
-- enables text events and reveals the onscreen keyboard.
void SDL_StopTextInput()
-- disables text events and hides the onscreen keyboard.
SDL_bool SDL_IsTextInputActive()
-- returns whether or not text events are enabled (and the onscreen keyboard is visible)
Notes -- Mouse
==============================================================================
iOS now supports Bluetooth mice on iPad, but by default will provide the mouse input as touch. In order for SDL to see the real mouse events, you should set the key UIApplicationSupportsIndirectInputEvents to true in your Info.plist
Notes -- Reading and Writing files
==============================================================================
Each application installed on iPhone resides in a sandbox which includes its own Application Home directory. Your application may not access files outside this directory.
Once your application is installed its directory tree looks like:
MySDLApp Home/
MySDLApp.app
Documents/
Library/
Preferences/
tmp/
When your SDL based iPhone application starts up, it sets the working directory to the main bundle (MySDLApp Home/MySDLApp.app), where your application resources are stored. You cannot write to this directory. Instead, I advise you to write document files to "../Documents/" and preferences to "../Library/Preferences".
More information on this subject is available here:
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
Notes -- xcFramework
==============================================================================
The SDL.xcodeproj file now includes a target to build SDL2.xcframework. An xcframework is a new (Xcode 11) uber-framework which can handle any combination of processor type and target OS platform.
In the past, iOS devices were always an ARM variant processor, and the simulator was always i386 or x86_64, and thus libraries could be combined into a single framework for both simulator and device. With the introduction of the Apple Silicon ARM-based machines, regular frameworks would collide as CPU type was no longer sufficient to differentiate the platform. So Apple created the new xcframework library package.
The xcframework target builds into a Products directory alongside the SDL.xcodeproj file, as SDL2.xcframework. This can be brought in to any iOS project and will function properly for both simulator and device, no matter their CPUs. Note that Intel Macs cannot cross-compile for Apple Silicon Macs. If you need AS compatibility, perform this build on an Apple Silicon Mac.
This target requires Xcode 11 or later. The target will simply fail to build if attempted on older Xcodes.
In addition, on Apple platforms, main() cannot be in a dynamically loaded library. This means that iOS apps which used the statically-linked libSDL2.lib and now link with the xcframwork will need to define their own main() to call SDL_UIKitRunApp(), like this:
#ifndef SDL_MAIN_HANDLED
#ifdef main
#undef main
#endif
int
main(int argc, char *argv[])
{
return SDL_UIKitRunApp(argc, argv, SDL_main);
}
#endif /* !SDL_MAIN_HANDLED */
Using an xcFramework is similar to using a regular framework. However, issues have been seen with the build system not seeing the headers in the xcFramework. To remedy this, add the path to the xcFramework in your app's target ==> Build Settings ==> Framework Search Paths and mark it recursive (this is critical). Also critical is to remove "*.framework" from Build Settings ==> Sub-Directories to Exclude in Recursive Searches. Clean the build folder, and on your next build the build system should be able to see any of these in your code, as expected:
#include "SDL_main.h"
#include <SDL.h>
#include <SDL_main.h>
Notes -- iPhone SDL limitations
==============================================================================
Windows:
Full-size, single window applications only. You cannot create multi-window SDL applications for iPhone OS. The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow() the flag SDL_WINDOW_BORDERLESS).
Textures:
The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats.
Loading Shared Objects:
This is disabled by default since it seems to break the terms of the iOS SDK agreement for iOS versions prior to iOS 8. It can be re-enabled in SDL_config_iphoneos.h.
Notes -- CoreBluetooth.framework
==============================================================================
SDL_JOYSTICK_HIDAPI is disabled by default. It can give you access to a lot
more game controller devices, but it requires permission from the user before
your app will be able to talk to the Bluetooth hardware. "Made For iOS"
branded controllers do not need this as we don't have to speak to them
directly with raw bluetooth, so many apps can live without this.
You'll need to link with CoreBluetooth.framework and add something like this
to your Info.plist:
<key>NSBluetoothPeripheralUsageDescription</key>
<string>MyApp would like to remain connected to nearby bluetooth Game Controllers and Game Pads even when you're not using the app.</string>
Game Center
==============================================================================
Game Center integration might require that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
e.g.
extern "C"
void ShowFrame(void*)
{
... do event handling, frame logic and rendering ...
}
int main(int argc, char *argv[])
{
... initialize game ...
#if __IPHONEOS__
// Initialize the Game Center for scoring and matchmaking
InitGameCenter();
// Set up the game to run in the window animation callback on iOS
// so that Game Center and so forth works correctly.
SDL_iPhoneSetAnimationCallback(window, 1, ShowFrame, NULL);
#else
while ( running ) {
ShowFrame(0);
DelayFrame();
}
#endif
return 0;
}
Deploying to older versions of iOS
==============================================================================
SDL supports deploying to older versions of iOS than are supported by the latest version of Xcode, all the way back to iOS 8.0
In order to do that you need to download an older version of Xcode:
https://developer.apple.com/download/more/?name=Xcode
Open the package contents of the older Xcode and your newer version of Xcode and copy over the folders in Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Then open the file Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist and add the versions of iOS you want to deploy to the key Root/DefaultProperties/DEPLOYMENT_TARGET_SUGGESTED_VALUES
Open your project and set your deployment target to the desired version of iOS
Finally, remove GameController from the list of frameworks linked by your application and edit the build settings for "Other Linker Flags" and add -weak_framework GameController
+27 -27
View File
@@ -1,27 +1,27 @@
KMSDRM on *BSD
==================================================
KMSDRM is supported on FreeBSD and OpenBSD. DragonFlyBSD works but requires being a root user. NetBSD isn't supported yet because the application will crash when creating the KMSDRM screen.
WSCONS support has been brought back, but only as an input backend. It will not be brought back as a video backend to ease maintenance.
OpenBSD note: Note that the video backend assumes that the user has read/write permissions to the /dev/drm* devices.
SDL2 WSCONS input backend features
===================================================
1. It is keymap-aware; it will work properly with different keymaps.
2. It has mouse support.
3. Accent input is supported.
4. Compose keys are supported.
5. AltGr and Meta Shift keys work as intended.
Partially working or no input on OpenBSD/NetBSD.
==================================================
The WSCONS input backend needs read/write access to the /dev/wskbd* devices, without which it will not work properly. /dev/wsmouse must also be read/write accessible, otherwise mouse input will not work.
Partially working or no input on FreeBSD.
==================================================
The evdev devices are only accessible to the root user by default. Edit devfs rules to allow access to such devices. The /dev/kbd* devices are also only accessible to the root user by default. Edit devfs rules to allow access to such devices.
KMSDRM on *BSD
==================================================
KMSDRM is supported on FreeBSD and OpenBSD. DragonFlyBSD works but requires being a root user. NetBSD isn't supported yet because the application will crash when creating the KMSDRM screen.
WSCONS support has been brought back, but only as an input backend. It will not be brought back as a video backend to ease maintenance.
OpenBSD note: Note that the video backend assumes that the user has read/write permissions to the /dev/drm* devices.
SDL2 WSCONS input backend features
===================================================
1. It is keymap-aware; it will work properly with different keymaps.
2. It has mouse support.
3. Accent input is supported.
4. Compose keys are supported.
5. AltGr and Meta Shift keys work as intended.
Partially working or no input on OpenBSD/NetBSD.
==================================================
The WSCONS input backend needs read/write access to the /dev/wskbd* devices, without which it will not work properly. /dev/wsmouse must also be read/write accessible, otherwise mouse input will not work.
Partially working or no input on FreeBSD.
==================================================
The evdev devices are only accessible to the root user by default. Edit devfs rules to allow access to such devices. The /dev/kbd* devices are also only accessible to the root user by default. Edit devfs rules to allow access to such devices.
+96 -96
View File
@@ -1,96 +1,96 @@
Linux
================================================================================
By default SDL will only link against glibc, the rest of the features will be
enabled dynamically at runtime depending on the available features on the target
system. So, for example if you built SDL with Xinerama support and the target
system does not have the Xinerama libraries installed, it will be disabled
at runtime, and you won't get a missing library error, at least with the
default configuration parameters.
Build Dependencies
--------------------------------------------------------------------------------
Ubuntu 20.04, all available features enabled:
sudo apt-get install build-essential git make cmake autoconf automake \
libtool pkg-config libasound2-dev libpulse-dev libaudio-dev libjack-dev \
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev \
libxinerama-dev libxxf86vm-dev libxss-dev libgl1-mesa-dev libdbus-1-dev \
libudev-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev \
fcitx-libs-dev libsamplerate0-dev libsndio-dev libwayland-dev \
libxkbcommon-dev libdrm-dev libgbm-dev
Fedora 35, all available features enabled:
sudo yum install gcc git-core make cmake autoconf automake libtool \
alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel \
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel \
libXi-devel libXinerama-devel libXxf86vm-devel libXScrnSaver-devel \
dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel \
libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel \
wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel \
libusb-devel pipewire-jack-audio-connection-kit-devel libdecor-devel \
libsamplerate-devel
NOTES:
- This includes all the audio targets except arts and esd, because Ubuntu
(and/or Debian) pulled their packages, but in theory SDL still supports them.
The sndio audio target is also unavailable on Fedora.
- libsamplerate0-dev lets SDL optionally link to libresamplerate at runtime
for higher-quality audio resampling. SDL will work without it if the library
is missing, so it's safe to build in support even if the end user doesn't
have this library installed.
- DirectFB isn't included because the configure script (currently) fails to find
it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the
configure script to include DirectFB support. Send patches. :)
Joystick does not work
--------------------------------------------------------------------------------
If you compiled or are using a version of SDL with udev support (and you should!)
there's a few issues that may cause SDL to fail to detect your joystick. To
debug this, start by installing the evtest utility. On Ubuntu/Debian:
sudo apt-get install evtest
Then run:
sudo evtest
You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX"
Now run:
cat /dev/input/event/XX
If you get a permission error, you need to set a udev rule to change the mode of
your device (see below)
Also, try:
sudo udevadm info --query=all --name=input/eventXX
If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it,
you need to set up an udev rule to force this variable.
A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks
like:
SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
You can set up similar rules for your device by changing the values listed in
idProduct and idVendor. To obtain these values, try:
sudo udevadm info -a --name=input/eventXX | grep idVendor
sudo udevadm info -a --name=input/eventXX | grep idProduct
If multiple values come up for each of these, the one you want is the first one of each.
On other systems which ship with an older udev (such as CentOS), you may need
to set up a rule such as:
SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1"
Linux
================================================================================
By default SDL will only link against glibc, the rest of the features will be
enabled dynamically at runtime depending on the available features on the target
system. So, for example if you built SDL with XRandR support and the target
system does not have the XRandR libraries installed, it will be disabled
at runtime, and you won't get a missing library error, at least with the
default configuration parameters.
Build Dependencies
--------------------------------------------------------------------------------
Ubuntu 18.04, all available features enabled:
sudo apt-get install build-essential git make autoconf automake libtool \
pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev \
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev \
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev
Ubuntu 22.04+ can also add `libpipewire-0.3-dev libdecor-0-dev` to that command line.
Fedora 35, all available features enabled:
sudo yum install gcc git-core make cmake autoconf automake libtool \
alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel \
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel \
libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel \
systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel \
mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel \
libdrm-devel mesa-libgbm-devel libusb-devel libdecor-devel \
libsamplerate-devel pipewire-jack-audio-connection-kit-devel \
NOTES:
- This includes all the audio targets except arts and esd, because Ubuntu
(and/or Debian) pulled their packages, but in theory SDL still supports them.
The sndio audio target is also unavailable on Fedora.
- libsamplerate0-dev lets SDL optionally link to libresamplerate at runtime
for higher-quality audio resampling. SDL will work without it if the library
is missing, so it's safe to build in support even if the end user doesn't
have this library installed.
- DirectFB isn't included because the configure script (currently) fails to find
it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the
configure script to include DirectFB support. Send patches. :)
Joystick does not work
--------------------------------------------------------------------------------
If you compiled or are using a version of SDL with udev support (and you should!)
there's a few issues that may cause SDL to fail to detect your joystick. To
debug this, start by installing the evtest utility. On Ubuntu/Debian:
sudo apt-get install evtest
Then run:
sudo evtest
You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX"
Now run:
cat /dev/input/event/XX
If you get a permission error, you need to set a udev rule to change the mode of
your device (see below)
Also, try:
sudo udevadm info --query=all --name=input/eventXX
If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it,
you need to set up an udev rule to force this variable.
A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks
like:
SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
You can set up similar rules for your device by changing the values listed in
idProduct and idVendor. To obtain these values, try:
sudo udevadm info -a --name=input/eventXX | grep idVendor
sudo udevadm info -a --name=input/eventXX | grep idProduct
If multiple values come up for each of these, the one you want is the first one of each.
On other systems which ship with an older udev (such as CentOS), you may need
to set up a rule such as:
SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1"
+285 -286
View File
@@ -1,286 +1,285 @@
# Mac OS X (aka macOS).
These instructions are for people using Apple's Mac OS X (pronounced
"ten"), which in newer versions is just referred to as "macOS".
From the developer's point of view, macOS is a sort of hybrid Mac and
Unix system, and you have the option of using either traditional
command line tools or Apple's IDE Xcode.
# Command Line Build
To build SDL using the command line, use the standard configure and make
process:
```bash
mkdir build
cd build
../configure
make
sudo make install
```
CMake is also known to work, although it continues to be a work in progress:
```bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install
```
You can also build SDL as a Universal library (a single binary for both
64-bit Intel and ARM architectures), by using the build-scripts/clang-fat.sh
script.
```bash
mkdir build
cd build
CC=$PWD/../build-scripts/clang-fat.sh ../configure
make
sudo make install
```
This script builds SDL with 10.6 ABI compatibility on 64-bit Intel and 11.0
ABI compatibility on ARM64 architectures. For best compatibility you
should compile your application the same way.
Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK
(even if you target back to 10.6 systems). PowerPC support for Mac OS X has
been officially dropped as of SDL 2.0.2. 32-bit Intel, using an older Xcode
release, is still supported at the time of this writing, but current Xcode
releases no longer support it, and eventually neither will SDL.
To use the library once it's built, you essential have two possibilities:
use the traditional autoconf/automake/make method, or use Xcode.
# Caveats for using SDL with Mac OS X
If you register your own NSApplicationDelegate (using [NSApp setDelegate:]),
SDL will not register its own. This means that SDL will not terminate using
SDL_Quit if it receives a termination request, it will terminate like a
normal app, and it will not send a SDL_DROPFILE when you request to open a
file with the app. To solve these issues, put the following code in your
NSApplicationDelegate implementation:
```objc
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_QUIT;
SDL_PushEvent(&event);
}
return NSTerminateCancel;
}
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_DROPFILE;
event.drop.file = SDL_strdup([filename UTF8String]);
return (SDL_PushEvent(&event) > 0);
}
return NO;
}
```
# Using the Simple DirectMedia Layer with a traditional Makefile
An existing autoconf/automake build system for your SDL app has good chances
to work almost unchanged on macOS. However, to produce a "real" Mac binary
that you can distribute to users, you need to put the generated binary into a
so called "bundle", which is basically a fancy folder with a name like
"MyCoolGame.app".
To get this build automatically, add something like the following rule to
your Makefile.am:
```make
bundle_contents = APP_NAME.app/Contents
APP_NAME_bundle: EXE_NAME
mkdir -p $(bundle_contents)/MacOS
mkdir -p $(bundle_contents)/Resources
echo "APPL????" > $(bundle_contents)/PkgInfo
$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
```
You should replace `EXE_NAME` with the name of the executable. `APP_NAME` is
what will be visible to the user in the Finder. Usually it will be the same
as `EXE_NAME` but capitalized. E.g. if `EXE_NAME` is "testgame" then `APP_NAME`
usually is "TestGame". You might also want to use `@PACKAGE@` to use the
package name as specified in your configure.ac file.
If your project builds more than one application, you will have to do a bit
more. For each of your target applications, you need a separate rule.
If you want the created bundles to be installed, you may want to add this
rule to your Makefile.am:
```make
install-exec-hook: APP_NAME_bundle
rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
mkdir -p $(DESTDIR)$(prefix)/Applications/
cp -r $< /$(DESTDIR)$(prefix)Applications/
```
This rule takes the Bundle created by the rule from step 3 and installs them
into "$(DESTDIR)$(prefix)/Applications/".
Again, if you want to install multiple applications, you will have to augment
the make rule accordingly.
But beware! That is only part of the story! With the above, you end up with
a barebones .app bundle, which is double-clickable from the Finder. But
there are some more things you should do before shipping your product...
1. The bundle right now probably is dynamically linked against SDL. That
means that when you copy it to another computer, *it will not run*,
unless you also install SDL on that other computer. A good solution
for this dilemma is to static link against SDL. On OS X, you can
achieve that by linking against the libraries listed by
```bash
sdl-config --static-libs
```
instead of those listed by
```bash
sdl-config --libs
```
Depending on how exactly SDL is integrated into your build systems, the
way to achieve that varies, so I won't describe it here in detail
2. Add an 'Info.plist' to your application. That is a special XML file which
contains some meta-information about your application (like some copyright
information, the version of your app, the name of an optional icon file,
and other things). Part of that information is displayed by the Finder
when you click on the .app, or if you look at the "Get Info" window.
More information about Info.plist files can be found on Apple's homepage.
As a final remark, let me add that I use some of the techniques (and some
variations of them) in [Exult](https://github.com/exult/exult) and
[ScummVM](https://github.com/scummvm/scummvm); both are available in source on
the net, so feel free to take a peek at them for inspiration!
# Using the Simple DirectMedia Layer with Xcode
These instructions are for using Apple's Xcode IDE to build SDL applications.
## First steps
The first thing to do is to unpack the Xcode.tar.gz archive in the
top level SDL directory (where the Xcode.tar.gz archive resides).
Because Stuffit Expander will unpack the archive into a subdirectory,
you should unpack the archive manually from the command line:
```bash
cd [path_to_SDL_source]
tar zxf Xcode.tar.gz
```
This will create a new folder called Xcode, which you can browse
normally from the Finder.
## Building the Framework
The SDL Library is packaged as a framework bundle, an organized
relocatable folder hierarchy of executable code, interface headers,
and additional resources. For practical purposes, you can think of a
framework as a more user and system-friendly shared library, whose library
file behaves more or less like a standard UNIX shared library.
To build the framework, simply open the framework project and build it.
By default, the framework bundle "SDL.framework" is installed in
/Library/Frameworks. Therefore, the testers and project stationary expect
it to be located there. However, it will function the same in any of the
following locations:
* ~/Library/Frameworks
* /Local/Library/Frameworks
* /System/Library/Frameworks
## Build Options
There are two "Build Styles" (See the "Targets" tab) for SDL.
"Deployment" should be used if you aren't tweaking the SDL library.
"Development" should be used to debug SDL apps or the library itself.
## Building the Testers
Open the SDLTest project and build away!
## Using the Project Stationary
Copy the stationary to the indicated folders to access it from
the "New Project" and "Add target" menus. What could be easier?
## Setting up a new project by hand
Some of you won't want to use the Stationary so I'll give some tips:
(this is accurate as of Xcode 12.5.)
* Click "File" -> "New" -> "Project...
* Choose "macOS" and then "App" from the "Application" section.
* Fill out the options in the next window. User interface is "XIB" and
Language is "Objective-C".
* Remove "main.m" from your project
* Remove "MainMenu.xib" from your project
* Remove "AppDelegates.*" from your project
* Add "\$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
* Add "\$(HOME)/Library/Frameworks" to the frameworks search path
* Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
* Add your files
* Clean and build
## Building from command line
Use `xcode-build` in the same directory as your .pbxproj file
## Running your app
You can send command line args to your app by either invoking it from
the command line (in *.app/Contents/MacOS) or by entering them in the
Executables" panel of the target settings.
# Implementation Notes
Some things that may be of interest about how it all works...
## Working directory
In SDL 1.2, the working directory of your SDL app is by default set to its
parent, but this is no longer the case in SDL 2.0. SDL2 does change the
working directory, which means it'll be whatever the command line prompt
that launched the program was using, or if launched by double-clicking in
the finger, it will be "/", the _root of the filesystem_. Plan accordingly!
You can use SDL_GetBasePath() to find where the program is running from and
chdir() there directly.
## You have a Cocoa App!
Your SDL app is essentially a Cocoa application. When your app
starts up and the libraries finish loading, a Cocoa procedure is called,
which sets up the working directory and calls your main() method.
You are free to modify your Cocoa app with generally no consequence
to SDL. You cannot, however, easily change the SDL window itself.
Functionality may be added in the future to help this.
# Bug reports
Bugs are tracked at [the GitHub issue tracker](https://github.com/libsdl-org/SDL/issues/).
Please feel free to report bugs there!
# Mac OS X (aka macOS).
These instructions are for people using Apple's Mac OS X (pronounced
"ten"), which in newer versions is just referred to as "macOS".
From the developer's point of view, macOS is a sort of hybrid Mac and
Unix system, and you have the option of using either traditional
command line tools or Apple's IDE Xcode.
# Command Line Build
To build SDL using the command line, use the standard configure and make
process:
```bash
mkdir build
cd build
../configure
make
sudo make install
```
CMake is also known to work, although it continues to be a work in progress:
```bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install
```
You can also build SDL as a Universal library (a single binary for both
64-bit Intel and ARM architectures), by using the build-scripts/clang-fat.sh
script.
```bash
mkdir build
cd build
CC=$PWD/../build-scripts/clang-fat.sh ../configure
make
sudo make install
```
This script builds SDL with 10.9 ABI compatibility on 64-bit Intel and 11.0
ABI compatibility on ARM64 architectures. For best compatibility you
should compile your application the same way.
Please note that building SDL requires at least Xcode 6 and the 10.9 SDK.
PowerPC support for macOS has been officially dropped as of SDL 2.0.2.
32-bit Intel and macOS 10.8 runtime support has been officially dropped as
of SDL 2.24.0.
To use the library once it's built, you essential have two possibilities:
use the traditional autoconf/automake/make method, or use Xcode.
# Caveats for using SDL with Mac OS X
If you register your own NSApplicationDelegate (using [NSApp setDelegate:]),
SDL will not register its own. This means that SDL will not terminate using
SDL_Quit if it receives a termination request, it will terminate like a
normal app, and it will not send a SDL_DROPFILE when you request to open a
file with the app. To solve these issues, put the following code in your
NSApplicationDelegate implementation:
```objc
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_QUIT;
SDL_PushEvent(&event);
}
return NSTerminateCancel;
}
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_DROPFILE;
event.drop.file = SDL_strdup([filename UTF8String]);
return (SDL_PushEvent(&event) > 0);
}
return NO;
}
```
# Using the Simple DirectMedia Layer with a traditional Makefile
An existing autoconf/automake build system for your SDL app has good chances
to work almost unchanged on macOS. However, to produce a "real" Mac binary
that you can distribute to users, you need to put the generated binary into a
so called "bundle", which is basically a fancy folder with a name like
"MyCoolGame.app".
To get this build automatically, add something like the following rule to
your Makefile.am:
```make
bundle_contents = APP_NAME.app/Contents
APP_NAME_bundle: EXE_NAME
mkdir -p $(bundle_contents)/MacOS
mkdir -p $(bundle_contents)/Resources
echo "APPL????" > $(bundle_contents)/PkgInfo
$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
```
You should replace `EXE_NAME` with the name of the executable. `APP_NAME` is
what will be visible to the user in the Finder. Usually it will be the same
as `EXE_NAME` but capitalized. E.g. if `EXE_NAME` is "testgame" then `APP_NAME`
usually is "TestGame". You might also want to use `@PACKAGE@` to use the
package name as specified in your configure.ac file.
If your project builds more than one application, you will have to do a bit
more. For each of your target applications, you need a separate rule.
If you want the created bundles to be installed, you may want to add this
rule to your Makefile.am:
```make
install-exec-hook: APP_NAME_bundle
rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
mkdir -p $(DESTDIR)$(prefix)/Applications/
cp -r $< /$(DESTDIR)$(prefix)Applications/
```
This rule takes the Bundle created by the rule from step 3 and installs them
into "$(DESTDIR)$(prefix)/Applications/".
Again, if you want to install multiple applications, you will have to augment
the make rule accordingly.
But beware! That is only part of the story! With the above, you end up with
a barebones .app bundle, which is double-clickable from the Finder. But
there are some more things you should do before shipping your product...
1. The bundle right now probably is dynamically linked against SDL. That
means that when you copy it to another computer, *it will not run*,
unless you also install SDL on that other computer. A good solution
for this dilemma is to static link against SDL. On OS X, you can
achieve that by linking against the libraries listed by
```bash
sdl-config --static-libs
```
instead of those listed by
```bash
sdl-config --libs
```
Depending on how exactly SDL is integrated into your build systems, the
way to achieve that varies, so I won't describe it here in detail
2. Add an 'Info.plist' to your application. That is a special XML file which
contains some meta-information about your application (like some copyright
information, the version of your app, the name of an optional icon file,
and other things). Part of that information is displayed by the Finder
when you click on the .app, or if you look at the "Get Info" window.
More information about Info.plist files can be found on Apple's homepage.
As a final remark, let me add that I use some of the techniques (and some
variations of them) in [Exult](https://github.com/exult/exult) and
[ScummVM](https://github.com/scummvm/scummvm); both are available in source on
the net, so feel free to take a peek at them for inspiration!
# Using the Simple DirectMedia Layer with Xcode
These instructions are for using Apple's Xcode IDE to build SDL applications.
## First steps
The first thing to do is to unpack the Xcode.tar.gz archive in the
top level SDL directory (where the Xcode.tar.gz archive resides).
Because Stuffit Expander will unpack the archive into a subdirectory,
you should unpack the archive manually from the command line:
```bash
cd [path_to_SDL_source]
tar zxf Xcode.tar.gz
```
This will create a new folder called Xcode, which you can browse
normally from the Finder.
## Building the Framework
The SDL Library is packaged as a framework bundle, an organized
relocatable folder hierarchy of executable code, interface headers,
and additional resources. For practical purposes, you can think of a
framework as a more user and system-friendly shared library, whose library
file behaves more or less like a standard UNIX shared library.
To build the framework, simply open the framework project and build it.
By default, the framework bundle "SDL.framework" is installed in
/Library/Frameworks. Therefore, the testers and project stationary expect
it to be located there. However, it will function the same in any of the
following locations:
* ~/Library/Frameworks
* /Local/Library/Frameworks
* /System/Library/Frameworks
## Build Options
There are two "Build Styles" (See the "Targets" tab) for SDL.
"Deployment" should be used if you aren't tweaking the SDL library.
"Development" should be used to debug SDL apps or the library itself.
## Building the Testers
Open the SDLTest project and build away!
## Using the Project Stationary
Copy the stationary to the indicated folders to access it from
the "New Project" and "Add target" menus. What could be easier?
## Setting up a new project by hand
Some of you won't want to use the Stationary so I'll give some tips:
(this is accurate as of Xcode 12.5.)
* Click "File" -> "New" -> "Project...
* Choose "macOS" and then "App" from the "Application" section.
* Fill out the options in the next window. User interface is "XIB" and
Language is "Objective-C".
* Remove "main.m" from your project
* Remove "MainMenu.xib" from your project
* Remove "AppDelegates.*" from your project
* Add "\$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
* Add "\$(HOME)/Library/Frameworks" to the frameworks search path
* Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
* Add your files
* Clean and build
## Building from command line
Use `xcode-build` in the same directory as your .pbxproj file
## Running your app
You can send command line args to your app by either invoking it from
the command line (in *.app/Contents/MacOS) or by entering them in the
Executables" panel of the target settings.
# Implementation Notes
Some things that may be of interest about how it all works...
## Working directory
In SDL 1.2, the working directory of your SDL app is by default set to its
parent, but this is no longer the case in SDL 2.0. SDL2 does change the
working directory, which means it'll be whatever the command line prompt
that launched the program was using, or if launched by double-clicking in
the finger, it will be "/", the _root of the filesystem_. Plan accordingly!
You can use SDL_GetBasePath() to find where the program is running from and
chdir() there directly.
## You have a Cocoa App!
Your SDL app is essentially a Cocoa application. When your app
starts up and the libraries finish loading, a Cocoa procedure is called,
which sets up the working directory and calls your main() method.
You are free to modify your Cocoa app with generally no consequence
to SDL. You cannot, however, easily change the SDL window itself.
Functionality may be added in the future to help this.
# Bug reports
Bugs are tracked at [the GitHub issue tracker](https://github.com/libsdl-org/SDL/issues/).
Please feel free to report bugs there!
-240
View File
@@ -1,240 +0,0 @@
Mac OS X
==============================================================================
These instructions are for people using Apple's Mac OS X (pronounced
"ten").
From the developer's point of view, OS X is a sort of hybrid Mac and
Unix system, and you have the option of using either traditional
command line tools or Apple's IDE Xcode.
Command Line Build
==================
To build SDL using the command line, use the standard configure and make
process:
./configure
make
sudo make install
You can also build SDL as a Universal library (a single binary for both
32-bit and 64-bit Intel architectures), on Mac OS X 10.7 and newer, by using
the gcc-fat.sh script in build-scripts:
mkdir mybuild
cd mybuild
CC=$PWD/../build-scripts/gcc-fat.sh CXX=$PWD/../build-scripts/g++-fat.sh ../configure
make
sudo make install
This script builds SDL with 10.5 ABI compatibility on i386 and 10.6
ABI compatibility on x86_64 architectures. For best compatibility you
should compile your application the same way.
Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK
(even if you target back to 10.5 systems). PowerPC support for Mac OS X has
been officially dropped as of SDL 2.0.2.
To use the library once it's built, you essential have two possibilities:
use the traditional autoconf/automake/make method, or use Xcode.
==============================================================================
Caveats for using SDL with Mac OS X
==============================================================================
Some things you have to be aware of when using SDL on Mac OS X:
- If you register your own NSApplicationDelegate (using [NSApp setDelegate:]),
SDL will not register its own. This means that SDL will not terminate using
SDL_Quit if it receives a termination request, it will terminate like a
normal app, and it will not send a SDL_DROPFILE when you request to open a
file with the app. To solve these issues, put the following code in your
NSApplicationDelegate implementation:
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_QUIT;
SDL_PushEvent(&event);
}
return NSTerminateCancel;
}
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) {
SDL_Event event;
event.type = SDL_DROPFILE;
event.drop.file = SDL_strdup([filename UTF8String]);
return (SDL_PushEvent(&event) > 0);
}
return NO;
}
==============================================================================
Using the Simple DirectMedia Layer with a traditional Makefile
==============================================================================
An existing autoconf/automake build system for your SDL app has good chances
to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary
that you can distribute to users, you need to put the generated binary into a
so called "bundle", which basically is a fancy folder with a name like
"MyCoolGame.app".
To get this build automatically, add something like the following rule to
your Makefile.am:
bundle_contents = APP_NAME.app/Contents
APP_NAME_bundle: EXE_NAME
mkdir -p $(bundle_contents)/MacOS
mkdir -p $(bundle_contents)/Resources
echo "APPL????" > $(bundle_contents)/PkgInfo
$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
You should replace EXE_NAME with the name of the executable. APP_NAME is what
will be visible to the user in the Finder. Usually it will be the same
as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME
usually is "TestGame". You might also want to use `@PACKAGE@` to use the package
name as specified in your configure.in file.
If your project builds more than one application, you will have to do a bit
more. For each of your target applications, you need a separate rule.
If you want the created bundles to be installed, you may want to add this
rule to your Makefile.am:
install-exec-hook: APP_NAME_bundle
rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
mkdir -p $(DESTDIR)$(prefix)/Applications/
cp -r $< /$(DESTDIR)$(prefix)Applications/
This rule takes the Bundle created by the rule from step 3 and installs them
into "$(DESTDIR)$(prefix)/Applications/".
Again, if you want to install multiple applications, you will have to augment
the make rule accordingly.
But beware! That is only part of the story! With the above, you end up with
a bare bone .app bundle, which is double clickable from the Finder. But
there are some more things you should do before shipping your product...
1) The bundle right now probably is dynamically linked against SDL. That
means that when you copy it to another computer, *it will not run*,
unless you also install SDL on that other computer. A good solution
for this dilemma is to static link against SDL. On OS X, you can
achieve that by linking against the libraries listed by
sdl-config --static-libs
instead of those listed by
sdl-config --libs
Depending on how exactly SDL is integrated into your build systems, the
way to achieve that varies, so I won't describe it here in detail
2) Add an 'Info.plist' to your application. That is a special XML file which
contains some meta-information about your application (like some copyright
information, the version of your app, the name of an optional icon file,
and other things). Part of that information is displayed by the Finder
when you click on the .app, or if you look at the "Get Info" window.
More information about Info.plist files can be found on Apple's homepage.
As a final remark, let me add that I use some of the techniques (and some
variations of them) in Exult and ScummVM; both are available in source on
the net, so feel free to take a peek at them for inspiration!
==============================================================================
Using the Simple DirectMedia Layer with Xcode
==============================================================================
These instructions are for using Apple's Xcode IDE to build SDL applications.
- First steps
The first thing to do is to unpack the Xcode.tar.gz archive in the
top level SDL directory (where the Xcode.tar.gz archive resides).
Because Stuffit Expander will unpack the archive into a subdirectory,
you should unpack the archive manually from the command line:
cd [path_to_SDL_source]
tar zxf Xcode.tar.gz
This will create a new folder called Xcode, which you can browse
normally from the Finder.
- Building the Framework
The SDL Library is packaged as a framework bundle, an organized
relocatable folder hierarchy of executable code, interface headers,
and additional resources. For practical purposes, you can think of a
framework as a more user and system-friendly shared library, whose library
file behaves more or less like a standard UNIX shared library.
To build the framework, simply open the framework project and build it.
By default, the framework bundle "SDL.framework" is installed in
/Library/Frameworks. Therefore, the testers and project stationary expect
it to be located there. However, it will function the same in any of the
following locations:
~/Library/Frameworks
/Local/Library/Frameworks
/System/Library/Frameworks
- Build Options
There are two "Build Styles" (See the "Targets" tab) for SDL.
"Deployment" should be used if you aren't tweaking the SDL library.
"Development" should be used to debug SDL apps or the library itself.
- Building the Testers
Open the SDLTest project and build away!
- Using the Project Stationary
Copy the stationary to the indicated folders to access it from
the "New Project" and "Add target" menus. What could be easier?
- Setting up a new project by hand
Some of you won't want to use the Stationary so I'll give some tips:
* Create a new "Cocoa Application"
* Add src/main/macosx/SDLMain.m , .h and .nib to your project
* Remove "main.c" from your project
* Remove "MainMenu.nib" from your project
* Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
* Add "$(HOME)/Library/Frameworks" to the frameworks search path
* Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
* Set the "Main Nib File" under "Application Settings" to "SDLMain.nib"
* Add your files
* Clean and build
- Building from command line
Use pbxbuild in the same directory as your .pbproj file
- Running your app
You can send command line args to your app by either invoking it from
the command line (in *.app/Contents/MacOS) or by entering them in the
"Executables" panel of the target settings.
- Implementation Notes
Some things that may be of interest about how it all works...
* Working directory
As defined in the SDL_main.m file, the working directory of your SDL app
is by default set to its parent. You may wish to change this to better
suit your needs.
* You have a Cocoa App!
Your SDL app is essentially a Cocoa application. When your app
starts up and the libraries finish loading, a Cocoa procedure is called,
which sets up the working directory and calls your main() method.
You are free to modify your Cocoa app with generally no consequence
to SDL. You cannot, however, easily change the SDL window itself.
Functionality may be added in the future to help this.
Known bugs are listed in the file "BUGS.txt".
+28
View File
@@ -0,0 +1,28 @@
# Nintendo 3DS
SDL port for the Nintendo 3DS [Homebrew toolchain](https://devkitpro.org/) contributed by:
- [Pierre Wendling](https://github.com/FtZPetruska)
Credits to:
- The awesome people who ported SDL to other homebrew platforms.
- The Devkitpro team for making all the tools necessary to achieve this.
## Building
To build for the Nintendo 3DS, make sure you have devkitARM and cmake installed and run:
```bash
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE="$DEVKITPRO/cmake/3DS.cmake" -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
```
## Notes
- Currently only software rendering is supported.
- SDL2main should be used to ensure ROMFS is enabled.
- By default, the extra L2 cache and higher clock speeds of the New 2/3DS lineup are enabled. If you wish to turn it off, use `osSetSpeedupEnable(false)` in your main function.
- `SDL_GetBasePath` returns the romfs root instead of the executable's directory.
- The Nintendo 3DS uses a cooperative threading model on a single core, meaning a thread will never yield unless done manually through the `SDL_Delay` functions, or blocking waits (`SDL_LockMutex`, `SDL_SemWait`, `SDL_CondWait`, `SDL_WaitThread`). To avoid starving other threads, `SDL_SemTryWait` and `SDL_SemWaitTimeout` will yield if they fail to acquire the semaphore, see https://github.com/libsdl-org/SDL/pull/6776 for more information.
+103 -103
View File
@@ -1,103 +1,103 @@
Native Client
================================================================================
Requirements:
* Native Client SDK (https://developer.chrome.com/native-client),
(tested with Pepper version 33 or higher).
The SDL backend for Chrome's Native Client has been tested only with the PNaCl
toolchain, which generates binaries designed to run on ARM and x86_32/64
platforms. This does not mean it won't work with the other toolchains!
================================================================================
Building SDL for NaCl
================================================================================
Set up the right environment variables (see naclbuild.sh), then configure SDL with:
configure --host=pnacl --prefix some/install/destination
Then "make".
As an example of how to create a deployable app a Makefile project is provided
in test/nacl/Makefile, which includes some monkey patching of the common.mk file
provided by NaCl, without which linking properly to SDL won't work (the search
path can't be modified externally, so the linker won't find SDL's binaries unless
you dump them into the SDK path, which is inconvenient).
Also provided in test/nacl is the required support file, such as index.html,
manifest.json, etc.
SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure.
This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem),
hiding the asynchronous nature of the browser behind the scenes...which is not the
same as making it disappear!
================================================================================
Running tests
================================================================================
Due to the nature of NaCl programs, building and running SDL tests is not as
straightforward as one would hope. The script naclbuild.sh in build-scripts
automates the process and should serve as a guide for users of SDL trying to build
their own applications.
Basic usage:
./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35)
This will build testgles2.c by default.
If you want to build a different test, for example testrendercopyex.c:
SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35
Once the build finishes, you have to serve the contents with a web server (the
script will give you instructions on how to do that with Python).
================================================================================
RWops and nacl_io
================================================================================
SDL_RWops work transparently with nacl_io. Two functions control the mount points:
int mount(const char* source, const char* target,
const char* filesystemtype,
unsigned long mountflags, const void *data);
int umount(const char *target);
For convenience, SDL will by default mount an httpfs tree at / before calling
the app's main function. Such setting can be overridden by calling:
umount("/");
And then mounting a different filesystem at /
It's important to consider that the asynchronous nature of file operations on a
browser is hidden from the application, effectively providing the developer with
a set of blocking file operations just like you get in a regular desktop
environment, which eases the job of porting to Native Client, but also introduces
a set of challenges of its own, in particular when big file sizes and slow
connections are involved.
For more information on how nacl_io and mount points work, see:
https://developer.chrome.com/native-client/devguide/coding/nacl_io
https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h
To be able to save into the directory "/save/" (like backup of game) :
mount("", "/save", "html5fs", 0, "type=PERSISTENT");
And add to manifest.json :
"permissions": [
"unlimitedStorage"
]
================================================================================
TODO - Known Issues
================================================================================
* Testing of all systems with a real application (something other than SDL's tests)
* Key events don't seem to work properly
Native Client
================================================================================
Requirements:
* Native Client SDK (https://developer.chrome.com/native-client),
(tested with Pepper version 33 or higher).
The SDL backend for Chrome's Native Client has been tested only with the PNaCl
toolchain, which generates binaries designed to run on ARM and x86_32/64
platforms. This does not mean it won't work with the other toolchains!
================================================================================
Building SDL for NaCl
================================================================================
Set up the right environment variables (see naclbuild.sh), then configure SDL with:
configure --host=pnacl --prefix some/install/destination
Then "make".
As an example of how to create a deployable app a Makefile project is provided
in test/nacl/Makefile, which includes some monkey patching of the common.mk file
provided by NaCl, without which linking properly to SDL won't work (the search
path can't be modified externally, so the linker won't find SDL's binaries unless
you dump them into the SDK path, which is inconvenient).
Also provided in test/nacl is the required support file, such as index.html,
manifest.json, etc.
SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure.
This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem),
hiding the asynchronous nature of the browser behind the scenes...which is not the
same as making it disappear!
================================================================================
Running tests
================================================================================
Due to the nature of NaCl programs, building and running SDL tests is not as
straightforward as one would hope. The script naclbuild.sh in build-scripts
automates the process and should serve as a guide for users of SDL trying to build
their own applications.
Basic usage:
./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35)
This will build testgles2.c by default.
If you want to build a different test, for example testrendercopyex.c:
SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35
Once the build finishes, you have to serve the contents with a web server (the
script will give you instructions on how to do that with Python).
================================================================================
RWops and nacl_io
================================================================================
SDL_RWops work transparently with nacl_io. Two functions control the mount points:
int mount(const char* source, const char* target,
const char* filesystemtype,
unsigned long mountflags, const void *data);
int umount(const char *target);
For convenience, SDL will by default mount an httpfs tree at / before calling
the app's main function. Such setting can be overridden by calling:
umount("/");
And then mounting a different filesystem at /
It's important to consider that the asynchronous nature of file operations on a
browser is hidden from the application, effectively providing the developer with
a set of blocking file operations just like you get in a regular desktop
environment, which eases the job of porting to Native Client, but also introduces
a set of challenges of its own, in particular when big file sizes and slow
connections are involved.
For more information on how nacl_io and mount points work, see:
https://developer.chrome.com/native-client/devguide/coding/nacl_io
https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h
To be able to save into the directory "/save/" (like backup of game) :
mount("", "/save", "html5fs", 0, "type=PERSISTENT");
And add to manifest.json :
"permissions": [
"unlimitedStorage"
]
================================================================================
TODO - Known Issues
================================================================================
* Testing of all systems with a real application (something other than SDL's tests)
* Key events don't seem to work properly
+44
View File
@@ -0,0 +1,44 @@
Nokia N-Gage
============
SDL2 port for Symbian S60v1 and v2 with a main focus on the Nokia N-Gage
(Classic and QD) by [Michael Fitzmayer](https://github.com/mupfdev).
Compiling
---------
SDL is part of the [N-Gage SDK.](https://github.com/ngagesdk) project.
The library is included in the
[toolchain](https://github.com/ngagesdk/ngage-toolchain) as a
sub-module.
A complete example project based on SDL2 can be found in the GitHub
account of the SDK: [Wordle](https://github.com/ngagesdk/wordle).
Current level of implementation
-------------------------------
The video driver currently provides full screen video support with
keyboard input.
At the moment only the software renderer works.
Audio is not yet implemented.
Acknowledgements
----------------
Thanks to Hannu Viitala, Kimmo Kinnunen and Markus Mertama for the
valuable insight into Symbian programming. Without the SDL 1.2 port
which was specially developed for CDoom (Doom for the Nokia 9210), this
adaptation would not have been possible.
I would like to thank my friends
[Razvan](https://twitter.com/bewarerazvan) and [Dan
Whelan](https://danwhelan.ie/), for their continuous support. Without
you and the [N-Gage community](https://discord.gg/dbUzqJ26vs), I would
have lost my patience long ago.
Last but not least, I would like to thank the development team of
[EKA2L1](https://12z1.com/) (an experimental Symbian OS emulator). Your
patience and support in troubleshooting helped me a lot.
+92 -92
View File
@@ -1,92 +1,92 @@
Simple DirectMedia Layer 2 for OS/2 & eComStation
================================================================================
SDL port for OS/2, authored by Andrey Vasilkin <digi@os2.snc.ru>, 2016
OpenGL and audio capture not supported by this port.
Additional optional environment variables:
SDL_AUDIO_SHARE
Values: 0 or 1, default is 0
Initializes the device as shareable or exclusively acquired.
SDL_VIDEODRIVER
Values: DIVE or VMAN, default is DIVE
Use video subsystem: Direct interface video extensions (DIVE) or
Video Manager (VMAN).
You may significantly increase video output speed with OS4 kernel and patched
files vman.dll and dive.dll or with latest versions of ACPI support and video
driver Panorama.
Latest versions of OS/4 kernel:
http://gus.biysk.ru/os4/
(Info: https://www.os2world.com/wiki/index.php/Phoenix_OS/4)
Patched files vman.dll and dive.dll:
http://gus.biysk.ru/os4/test/pached_dll/PATCHED_DLL.RAR
Compiling:
----------
Open Watcom 1.9 or newer is tested. For the new Open Watcom V2 fork, see:
https://github.com/open-watcom/ and https://open-watcom.github.io
WATCOM environment variable must to be set to the Open Watcom install
directory. To compile, run: wmake -f Makefile.os2
Installing:
-----------
- eComStation:
If you have previously installed SDL2, make a Backup copy of SDL2.dll
located in D:\ecs\dll (where D: is disk on which installed eComStation).
Stop all programs running with SDL2. Copy SDL2.dll to D:\ecs\dll
- OS/2:
Copy SDL2.dll to any directory on your LIBPATH. If you have a previous
version installed, close all SDL2 applications before replacing the old
copy. Also make sure that any other older versions of DLLs are removed
from your system.
Joysticks in SDL2:
------------------
The joystick code in SDL2 is a direct forward-port from the SDL-1.2 version.
Here is the original documentation from SDL-1.2:
The Joystick detection only works for standard joysticks (2 buttons, 2 axes
and the like). Therefore, if you use a non-standard joystick, you should
specify its features in the SDL_OS2_JOYSTICK environment variable in a batch
file or CONFIG.SYS, so SDL applications can provide full capability to your
device. The syntax is:
SET SDL_OS2_JOYSTICK=[JOYSTICK_NAME] [AXES] [BUTTONS] [HATS] [BALLS]
So, it you have a Gravis GamePad with 4 axes, 2 buttons, 2 hats and 0 balls,
the line should be:
SET SDL_OS2_JOYSTICK=Gravis_GamePad 4 2 2 0
If you want to add spaces in your joystick name, just surround it with
quotes or double-quotes:
SET SDL_OS2_JOYSTICK='Gravis GamePad' 4 2 2 0
or
SET SDL_OS2_JOYSTICK="Gravis GamePad" 4 2 2 0
Note however that Balls and Hats are not supported under OS/2, and the
value will be ignored... but it is wise to define these correctly because
in the future those can be supported.
Also the number of buttons is limited to 2 when using two joysticks,
4 when using one joystick with 4 axes, 6 when using a joystick with 3 axes
and 8 when using a joystick with 2 axes. Notice however these are limitations
of the Joystick Port hardware, not OS/2.
Simple DirectMedia Layer 2 for OS/2 & eComStation
================================================================================
SDL port for OS/2, authored by Andrey Vasilkin <digi@os2.snc.ru>, 2016
OpenGL not supported by this port.
Additional optional environment variables:
SDL_AUDIO_SHARE
Values: 0 or 1, default is 0
Initializes the device as shareable or exclusively acquired.
SDL_VIDEODRIVER
Values: DIVE or VMAN, default is DIVE
Use video subsystem: Direct interface video extensions (DIVE) or
Video Manager (VMAN).
You may significantly increase video output speed with OS4 kernel and patched
files vman.dll and dive.dll or with latest versions of ACPI support and video
driver Panorama.
Latest versions of OS/4 kernel:
http://gus.biysk.ru/os4/
(Info: https://www.os2world.com/wiki/index.php/Phoenix_OS/4)
Patched files vman.dll and dive.dll:
http://gus.biysk.ru/os4/test/pached_dll/PATCHED_DLL.RAR
Compiling:
----------
Open Watcom 1.9 or newer is tested. For the new Open Watcom V2 fork, see:
https://github.com/open-watcom/ and https://open-watcom.github.io
WATCOM environment variable must to be set to the Open Watcom install
directory. To compile, run: wmake -f Makefile.os2
Installing:
-----------
- eComStation:
If you have previously installed SDL2, make a Backup copy of SDL2.dll
located in D:\ecs\dll (where D: is disk on which installed eComStation).
Stop all programs running with SDL2. Copy SDL2.dll to D:\ecs\dll
- OS/2:
Copy SDL2.dll to any directory on your LIBPATH. If you have a previous
version installed, close all SDL2 applications before replacing the old
copy. Also make sure that any other older versions of DLLs are removed
from your system.
Joysticks in SDL2:
------------------
The joystick code in SDL2 is a direct forward-port from the SDL-1.2 version.
Here is the original documentation from SDL-1.2:
The Joystick detection only works for standard joysticks (2 buttons, 2 axes
and the like). Therefore, if you use a non-standard joystick, you should
specify its features in the SDL_OS2_JOYSTICK environment variable in a batch
file or CONFIG.SYS, so SDL applications can provide full capability to your
device. The syntax is:
SET SDL_OS2_JOYSTICK=[JOYSTICK_NAME] [AXES] [BUTTONS] [HATS] [BALLS]
So, it you have a Gravis GamePad with 4 axes, 2 buttons, 2 hats and 0 balls,
the line should be:
SET SDL_OS2_JOYSTICK=Gravis_GamePad 4 2 2 0
If you want to add spaces in your joystick name, just surround it with
quotes or double-quotes:
SET SDL_OS2_JOYSTICK='Gravis GamePad' 4 2 2 0
or
SET SDL_OS2_JOYSTICK="Gravis GamePad" 4 2 2 0
Note however that Balls and Hats are not supported under OS/2, and the
value will be ignored... but it is wise to define these correctly because
in the future those can be supported.
Also the number of buttons is limited to 2 when using two joysticks,
4 when using one joystick with 4 axes, 6 when using a joystick with 3 axes
and 8 when using a joystick with 2 axes. Notice however these are limitations
of the Joystick Port hardware, not OS/2.
+17 -17
View File
@@ -1,17 +1,17 @@
Pandora
=====================================================================
( http://openpandora.org/ )
- A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES
support to work on the pandora under the framebuffer. This driver do not have
input support for now, so if you use it you will have to add your own control code.
The video driver name is "pandora" so if you have problem running it from
the framebuffer, try to set the following variable before starting your application :
"export SDL_VIDEODRIVER=pandora"
- OpenGL ES support was added to the x11 driver, so it's working like the normal
x11 driver one with OpenGLX support, with SDL input event's etc..
David Carré (Cpasjuste)
cpasjuste@gmail.com
Pandora
=====================================================================
( http://openpandora.org/ )
- A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES
support to work on the pandora under the framebuffer. This driver do not have
input support for now, so if you use it you will have to add your own control code.
The video driver name is "pandora" so if you have problem running it from
the framebuffer, try to set the following variable before starting your application :
"export SDL_VIDEODRIVER=pandora"
- OpenGL ES support was added to the x11 driver, so it's working like the normal
x11 driver one with OpenGLX support, with SDL input event's etc..
David Carré (Cpasjuste)
cpasjuste@gmail.com
+8 -8
View File
@@ -1,8 +1,8 @@
Platforms
=========
We maintain the list of supported platforms on our wiki now, and how to
build and install SDL for those platforms:
https://wiki.libsdl.org/Installation
Platforms
=========
We maintain the list of supported platforms on our wiki now, and how to
build and install SDL for those platforms:
https://wiki.libsdl.org/Installation
+68 -68
View File
@@ -1,68 +1,68 @@
Porting
=======
* Porting To A New Platform
The first thing you have to do when porting to a new platform, is look at
include/SDL_platform.h and create an entry there for your operating system.
The standard format is "__PLATFORM__", where PLATFORM is the name of the OS.
Ideally SDL_platform.h will be able to auto-detect the system it's building
on based on C preprocessor symbols.
There are two basic ways of building SDL at the moment:
1. The "UNIX" way: ./configure; make; make install
If you have a GNUish system, then you might try this. Edit configure.ac,
take a look at the large section labelled:
"Set up the configuration based on the host platform!"
Add a section for your platform, and then re-run autogen.sh and build!
2. Using an IDE:
If you're using an IDE or other non-configure build system, you'll probably
want to create a custom SDL_config.h for your platform. Edit SDL_config.h,
add a section for your platform, and create a custom SDL_config_{platform}.h,
based on SDL_config_minimal.h and SDL_config.h.in
Add the top level include directory to the header search path, and then add
the following sources to the project:
src/*.c
src/atomic/*.c
src/audio/*.c
src/cpuinfo/*.c
src/events/*.c
src/file/*.c
src/haptic/*.c
src/joystick/*.c
src/power/*.c
src/render/*.c
src/render/software/*.c
src/stdlib/*.c
src/thread/*.c
src/timer/*.c
src/video/*.c
src/audio/disk/*.c
src/audio/dummy/*.c
src/filesystem/dummy/*.c
src/video/dummy/*.c
src/haptic/dummy/*.c
src/joystick/dummy/*.c
src/main/dummy/*.c
src/thread/generic/*.c
src/timer/dummy/*.c
src/loadso/dummy/*.c
Once you have a working library without any drivers, you can go back to each
of the major subsystems and start implementing drivers for your platform.
If you have any questions, don't hesitate to ask on the SDL mailing list:
http://www.libsdl.org/mailing-list.php
Enjoy!
Sam Lantinga (slouken@libsdl.org)
Porting
=======
* Porting To A New Platform
The first thing you have to do when porting to a new platform, is look at
include/SDL_platform.h and create an entry there for your operating system.
The standard format is "__PLATFORM__", where PLATFORM is the name of the OS.
Ideally SDL_platform.h will be able to auto-detect the system it's building
on based on C preprocessor symbols.
There are two basic ways of building SDL at the moment:
1. The "UNIX" way: ./configure; make; make install
If you have a GNUish system, then you might try this. Edit configure.ac,
take a look at the large section labelled:
"Set up the configuration based on the host platform!"
Add a section for your platform, and then re-run autogen.sh and build!
2. Using an IDE:
If you're using an IDE or other non-configure build system, you'll probably
want to create a custom SDL_config.h for your platform. Edit SDL_config.h,
add a section for your platform, and create a custom SDL_config_{platform}.h,
based on SDL_config_minimal.h and SDL_config.h.in
Add the top level include directory to the header search path, and then add
the following sources to the project:
src/*.c
src/atomic/*.c
src/audio/*.c
src/cpuinfo/*.c
src/events/*.c
src/file/*.c
src/haptic/*.c
src/joystick/*.c
src/power/*.c
src/render/*.c
src/render/software/*.c
src/stdlib/*.c
src/thread/*.c
src/timer/*.c
src/video/*.c
src/audio/disk/*.c
src/audio/dummy/*.c
src/filesystem/dummy/*.c
src/video/dummy/*.c
src/haptic/dummy/*.c
src/joystick/dummy/*.c
src/main/dummy/*.c
src/thread/generic/*.c
src/timer/dummy/*.c
src/loadso/dummy/*.c
Once you have a working library without any drivers, you can go back to each
of the major subsystems and start implementing drivers for your platform.
If you have any questions, don't hesitate to ask on the SDL mailing list:
http://www.libsdl.org/mailing-list.php
Enjoy!
Sam Lantinga (slouken@libsdl.org)
+51
View File
@@ -0,0 +1,51 @@
PS2
======
SDL2 port for the Sony Playstation 2 contributed by:
- Francisco Javier Trujillo Mata
Credit to
- The guys that ported SDL to PSP & Vita because I'm taking them as reference.
- David G. F. for helping me with several issues and tests.
## Building
To build SDL2 library for the PS2, make sure you have the latest PS2Dev status and run:
```bash
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/ps2sdk/ps2dev.cmake
cmake --build build
cmake --install build
```
## Hints
The PS2 port has a special Hint for having a dynamic VSYNC. The Hint is `SDL_HINT_PS2_DYNAMIC_VSYNC`.
If you enabled the dynamic vsync having as well `SDL_RENDERER_PRESENTVSYNC` enabled, then if the app is not able to run at 60 FPS, automatically the `vsync` will be disabled having a better performance, instead of droping FPS to 30.
## Notes
If you trying to debug a SDL app through [ps2client](https://github.com/ps2dev/ps2client) you need to avoid the IOP reset, otherwise you will lose the conection with your computer.
So to avoid the reset of the IOP CPU, you need to call to the macro `SDL_PS2_SKIP_IOP_RESET();`.
It could be something similar as:
```c
.....
SDL_PS2_SKIP_IOP_RESET();
int main(int argc, char *argv[])
{
.....
```
For a release binary is recommendable to reset the IOP always.
Remember to do a clean compilation everytime you enable or disable the `SDL_PS2_SKIP_IOP_RESET` otherwise the change won't be reflected.
## Getting PS2 Dev
[Installing PS2 Dev](https://github.com/ps2dev/ps2dev)
## Running on PCSX2 Emulator
[PCSX2](https://github.com/PCSX2/pcsx2)
[More PCSX2 information](https://pcsx2.net/)
## To Do
- PS2 Screen Keyboard
- Dialogs
- Others
+36 -36
View File
@@ -1,36 +1,36 @@
PSP
======
SDL2 port for the Sony PSP contributed by:
- Captian Lex
- Francisco Javier Trujillo Mata
- Wouter Wijsman
Credit to
Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP
Geecko for his PSP GU lib "Glib2d"
## Building
To build SDL2 library for the PSP, make sure you have the latest PSPDev status and run:
```bash
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake
cmake --build build
cmake --install build
```
## Getting PSP Dev
[Installing PSP Dev](https://github.com/pspdev/pspdev)
## Running on PPSSPP Emulator
[PPSSPP](https://github.com/hrydgard/ppsspp)
[Build Instructions](https://github.com/hrydgard/ppsspp/wiki/Build-instructions)
## Compiling a HelloWorld
[PSP Hello World](https://psp-dev.org/doku.php?id=tutorial:hello_world)
## To Do
- PSP Screen Keyboard
- Dialogs
PSP
======
SDL2 port for the Sony PSP contributed by:
- Captian Lex
- Francisco Javier Trujillo Mata
- Wouter Wijsman
Credit to
Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP
Geecko for his PSP GU lib "Glib2d"
## Building
To build SDL2 library for the PSP, make sure you have the latest PSPDev status and run:
```bash
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake
cmake --build build
cmake --install build
```
## Getting PSP Dev
[Installing PSP Dev](https://github.com/pspdev/pspdev)
## Running on PPSSPP Emulator
[PPSSPP](https://github.com/hrydgard/ppsspp)
[Build Instructions](https://github.com/hrydgard/ppsspp/wiki/Build-instructions)
## Compiling a HelloWorld
[PSP Hello World](https://psp-dev.org/doku.php?id=tutorial:hello_world)
## To Do
- PSP Screen Keyboard
- Dialogs
+180 -180
View File
@@ -1,180 +1,180 @@
Raspberry Pi
============
Requirements:
Raspbian (other Linux distros may work as well).
Features
--------
* Works without X11
* Hardware accelerated OpenGL ES 2.x
* Sound via ALSA
* Input (mouse/keyboard/joystick) via EVDEV
* Hotplugging of input devices via UDEV
Raspbian Build Dependencies
---------------------------
sudo apt-get install libudev-dev libasound2-dev libdbus-1-dev
You also need the VideoCore binary stuff that ships in /opt/vc for EGL and
OpenGL ES 2.x, it usually comes pre-installed, but in any case:
sudo apt-get install libraspberrypi0 libraspberrypi-bin libraspberrypi-dev
NEON
----
If your Pi has NEON support, make sure you add -mfpu=neon to your CFLAGS so
that SDL will select some otherwise-disabled highly-optimized code. The
original Pi units don't have NEON, the Pi2 probably does, and the Pi3
definitely does.
Cross compiling from x86 Linux
------------------------------
To cross compile SDL for Raspbian from your desktop machine, you'll need a
Raspbian system root and the cross compilation tools. We'll assume these tools
will be placed in /opt/rpi-tools
sudo git clone --depth 1 https://github.com/raspberrypi/tools /opt/rpi-tools
You'll also need a Raspbian binary image.
Get it from: http://downloads.raspberrypi.org/raspbian_latest
After unzipping, you'll get file with a name like: "<date>-wheezy-raspbian.img"
Let's assume the sysroot will be built in /opt/rpi-sysroot.
export SYSROOT=/opt/rpi-sysroot
sudo kpartx -a -v <path_to_raspbian_image>.img
sudo mount -o loop /dev/mapper/loop0p2 /mnt
sudo cp -r /mnt $SYSROOT
sudo apt-get install qemu binfmt-support qemu-user-static
sudo cp /usr/bin/qemu-arm-static $SYSROOT/usr/bin
sudo mount --bind /dev $SYSROOT/dev
sudo mount --bind /proc $SYSROOT/proc
sudo mount --bind /sys $SYSROOT/sys
Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
sudo chroot $SYSROOT
apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev
exit
sudo umount $SYSROOT/dev
sudo umount $SYSROOT/proc
sudo umount $SYSROOT/sys
sudo umount /mnt
There's one more fix required, as the libdl.so symlink uses an absolute path
which doesn't quite work in our setup.
sudo rm -rf $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
The final step is compiling SDL itself.
export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux"
cd <SDL SOURCE>
mkdir -p build;cd build
LDFLAGS="-L$SYSROOT/opt/vc/lib" ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd
make
make install
To be able to deploy this to /usr/local in the Raspbian system you need to fix up a few paths:
perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
Apps don't work or poor video/audio performance
-----------------------------------------------
If you get sound problems, buffer underruns, etc, run "sudo rpi-update" to
update the RPi's firmware. Note that doing so will fix these problems, but it
will also render the CMA - Dynamic Memory Split functionality useless.
Also, by default the Raspbian distro configures the GPU RAM at 64MB, this is too
low in general, specially if a 1080p TV is hooked up.
See here how to configure this setting: http://elinux.org/RPiconfig
Using a fixed gpu_mem=128 is the best option (specially if you updated the
firmware, using CMA probably won't work, at least it's the current case).
No input
--------
Make sure you belong to the "input" group.
sudo usermod -aG input `whoami`
No HDMI Audio
-------------
If you notice that ALSA works but there's no audio over HDMI, try adding:
hdmi_drive=2
to your config.txt file and reboot.
Reference: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=5062
Text Input API support
----------------------
The Text Input API is supported, with translation of scan codes done via the
kernel symbol tables. For this to work, SDL needs access to a valid console.
If you notice there's no SDL_TEXTINPUT message being emitted, double check that
your app has read access to one of the following:
* /proc/self/fd/0
* /dev/tty
* /dev/tty[0...6]
* /dev/vc/0
* /dev/console
This is usually not a problem if you run from the physical terminal (as opposed
to running from a pseudo terminal, such as via SSH). If running from a PTS, a
quick workaround is to run your app as root or add yourself to the tty group,
then re-login to the system.
sudo usermod -aG tty `whoami`
The keyboard layout used by SDL is the same as the one the kernel uses.
To configure the layout on Raspbian:
sudo dpkg-reconfigure keyboard-configuration
To configure the locale, which controls which keys are interpreted as letters,
this determining the CAPS LOCK behavior:
sudo dpkg-reconfigure locales
OpenGL problems
---------------
If you have desktop OpenGL headers installed at build time in your RPi or cross
compilation environment, support for it will be built in. However, the chipset
does not actually have support for it, which causes issues in certain SDL apps
since the presence of OpenGL support supersedes the ES/ES2 variants.
The workaround is to disable OpenGL at configuration time:
./configure --disable-video-opengl
Or if the application uses the Render functions, you can use the SDL_RENDER_DRIVER
environment variable:
export SDL_RENDER_DRIVER=opengles2
Notes
-----
* When launching apps remotely (via SSH), SDL can prevent local keystrokes from
leaking into the console only if it has root privileges. Launching apps locally
does not suffer from this issue.
Raspberry Pi
============
Requirements:
Raspbian (other Linux distros may work as well).
Features
--------
* Works without X11
* Hardware accelerated OpenGL ES 2.x
* Sound via ALSA
* Input (mouse/keyboard/joystick) via EVDEV
* Hotplugging of input devices via UDEV
Raspbian Build Dependencies
---------------------------
sudo apt-get install libudev-dev libasound2-dev libdbus-1-dev
You also need the VideoCore binary stuff that ships in /opt/vc for EGL and
OpenGL ES 2.x, it usually comes pre-installed, but in any case:
sudo apt-get install libraspberrypi0 libraspberrypi-bin libraspberrypi-dev
NEON
----
If your Pi has NEON support, make sure you add -mfpu=neon to your CFLAGS so
that SDL will select some otherwise-disabled highly-optimized code. The
original Pi units don't have NEON, the Pi2 probably does, and the Pi3
definitely does.
Cross compiling from x86 Linux
------------------------------
To cross compile SDL for Raspbian from your desktop machine, you'll need a
Raspbian system root and the cross compilation tools. We'll assume these tools
will be placed in /opt/rpi-tools
sudo git clone --depth 1 https://github.com/raspberrypi/tools /opt/rpi-tools
You'll also need a Raspbian binary image.
Get it from: http://downloads.raspberrypi.org/raspbian_latest
After unzipping, you'll get file with a name like: "<date>-wheezy-raspbian.img"
Let's assume the sysroot will be built in /opt/rpi-sysroot.
export SYSROOT=/opt/rpi-sysroot
sudo kpartx -a -v <path_to_raspbian_image>.img
sudo mount -o loop /dev/mapper/loop0p2 /mnt
sudo cp -r /mnt $SYSROOT
sudo apt-get install qemu binfmt-support qemu-user-static
sudo cp /usr/bin/qemu-arm-static $SYSROOT/usr/bin
sudo mount --bind /dev $SYSROOT/dev
sudo mount --bind /proc $SYSROOT/proc
sudo mount --bind /sys $SYSROOT/sys
Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
sudo chroot $SYSROOT
apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxss-dev
exit
sudo umount $SYSROOT/dev
sudo umount $SYSROOT/proc
sudo umount $SYSROOT/sys
sudo umount /mnt
There's one more fix required, as the libdl.so symlink uses an absolute path
which doesn't quite work in our setup.
sudo rm -rf $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
The final step is compiling SDL itself.
export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux"
cd <SDL SOURCE>
mkdir -p build;cd build
LDFLAGS="-L$SYSROOT/opt/vc/lib" ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd
make
make install
To be able to deploy this to /usr/local in the Raspbian system you need to fix up a few paths:
perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
Apps don't work or poor video/audio performance
-----------------------------------------------
If you get sound problems, buffer underruns, etc, run "sudo rpi-update" to
update the RPi's firmware. Note that doing so will fix these problems, but it
will also render the CMA - Dynamic Memory Split functionality useless.
Also, by default the Raspbian distro configures the GPU RAM at 64MB, this is too
low in general, specially if a 1080p TV is hooked up.
See here how to configure this setting: http://elinux.org/RPiconfig
Using a fixed gpu_mem=128 is the best option (specially if you updated the
firmware, using CMA probably won't work, at least it's the current case).
No input
--------
Make sure you belong to the "input" group.
sudo usermod -aG input `whoami`
No HDMI Audio
-------------
If you notice that ALSA works but there's no audio over HDMI, try adding:
hdmi_drive=2
to your config.txt file and reboot.
Reference: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=5062
Text Input API support
----------------------
The Text Input API is supported, with translation of scan codes done via the
kernel symbol tables. For this to work, SDL needs access to a valid console.
If you notice there's no SDL_TEXTINPUT message being emitted, double check that
your app has read access to one of the following:
* /proc/self/fd/0
* /dev/tty
* /dev/tty[0...6]
* /dev/vc/0
* /dev/console
This is usually not a problem if you run from the physical terminal (as opposed
to running from a pseudo terminal, such as via SSH). If running from a PTS, a
quick workaround is to run your app as root or add yourself to the tty group,
then re-login to the system.
sudo usermod -aG tty `whoami`
The keyboard layout used by SDL is the same as the one the kernel uses.
To configure the layout on Raspbian:
sudo dpkg-reconfigure keyboard-configuration
To configure the locale, which controls which keys are interpreted as letters,
this determining the CAPS LOCK behavior:
sudo dpkg-reconfigure locales
OpenGL problems
---------------
If you have desktop OpenGL headers installed at build time in your RPi or cross
compilation environment, support for it will be built in. However, the chipset
does not actually have support for it, which causes issues in certain SDL apps
since the presence of OpenGL support supersedes the ES/ES2 variants.
The workaround is to disable OpenGL at configuration time:
./configure --disable-video-opengl
Or if the application uses the Render functions, you can use the SDL_RENDER_DRIVER
environment variable:
export SDL_RENDER_DRIVER=opengles2
Notes
-----
* When launching apps remotely (via SSH), SDL can prevent local keystrokes from
leaking into the console only if it has root privileges. Launching apps locally
does not suffer from this issue.
Loaded 100 of 1751 files, more files were not shown because too many files have changed in this diff. Show more