Commit Graph

322 Commits

Author SHA1 Message Date
Gericom
ecaa817815 Disabled irq yielding again
Some checks failed
Build nightly / Build with Docker using devkitARM (push) Has been cancelled
2025-06-07 14:11:30 +02:00
Gericom
9025f3372c Process hblank irqs before arm7 irqs
Some checks failed
Build nightly / Build with Docker using devkitARM (push) Has been cancelled
2025-06-04 16:40:56 +02:00
Gericom
d6086d4539 Attempt to reenable and fix irq yielding 2025-05-30 17:50:12 +02:00
Gericom
2414cf9d80
Merge pull request #187 from VeaNika/feature/dynamic-LUT-color-profiles
Some checks failed
Build nightly / Build with Docker using devkitARM (push) Has been cancelled
Add support for runtime color/gamma correction and new color profiles. Drastically optimized color LUT generation.
2025-05-25 12:31:54 +00:00
VeaNika
40c8751ca8 Renamed GetColorProfile() to cprof_getColorProfile() 2025-05-25 05:53:07 -06:00
VeaNika
099ac233a9 Refactorized GammaLut generation into a reusable class 2025-05-25 05:48:41 -06:00
VeaNika
6da0c25de1 Ensure GammaLuts are computed at compile time, misc code fixes
- Removed unnecessary parentheses.
- Changed GammaLut values to u8.
- Fixed gbarunner9.ld indentation for consistency.
2025-05-24 19:15:29 -06:00
VeaNika
fddb735814 Added a global getter for color profiles using GbaColorCorrection enum 2025-05-24 19:07:22 -06:00
VeaNika
cbf795c3cb Merge remote-tracking branch 'origin/develop' into feature/dynamic-LUT-color-profiles 2025-05-20 14:30:00 -06:00
VeaNika
9b12240976 Reverted moving ColorLut buffer to ewram, moved GammaLut instead
- ColorLut remains in VRAM for now due to performance reasons,
future performance testing may justify moving ColorLut as well.
2025-05-20 13:18:59 -06:00
VeaNika
53df56a756 Moved Color profiles into a cpp file 2025-05-18 19:28:51 -06:00
VeaNika
e2c269aa3a Removed unnecessary fix32 casts 2025-05-18 18:48:30 -06:00
VeaNika
20bfe3498b Use std::clamp in ColorLut calculation again, fixed some code 2025-05-18 18:48:18 -06:00
VeaNika
ba0141c42b Moved gamma decode/encode functions into a Class and made them stateless
- Gamma value from settings is now passed in
`GbaDisplayConfigurationService::SetupColorCorrection`
2025-05-18 18:43:11 -06:00
Gericom
0f69840f75
Merge pull request #158 from RocketRobz/twl_iwram-change
Some checks failed
Build nightly / Build with Docker using devkitARM (push) Has been cancelled
Change `twl_iwram` for DSiWarehax compatibility
2025-05-18 16:39:42 +00:00
Gericom
0d11ce9d8d
Merge pull request #157 from Dartz150/feature/force-DS-clock-speed
Added option to force ARM9 67MHz Clock Speed in DSi mode
2025-05-18 16:07:25 +00:00
Dartz150
09622b9b4f Avoid setting non-existing SCFG registers in DS mode in setupArm9Clock 2025-05-18 10:00:04 -06:00
Dartz150
e421cb20ce Updated scfg_setArm9Clock function to improve stability 2025-05-18 07:22:43 -06:00
Dartz150
e2c9485e6a Fixed casing 2025-05-17 18:51:18 -06:00
Dartz150
340ee2b120 Improved consistency and readability of the code 2025-05-17 18:22:25 -06:00
Dartz150
66d6a3e313 Merge remote-tracking branch 'origin/develop' into feature/force-DS-clock-speed 2025-05-17 16:48:16 -06:00
Gericom
620bb5eceb
Merge pull request #189 from VeaNika/feature/new-run-settings-options
Some checks failed
Build nightly / Build with Docker using devkitARM (push) Has been cancelled
Add new run settings options
2025-05-11 09:29:11 +00:00
VeaNika
d1525cc2a3 Review: Improved code readability in setupJit() 2025-05-10 07:10:58 -06:00
VeaNika
3c5246534d Review: Renamed Rom Instruction cache related functions, enum and define
- Updated config files for Mario & Luigi Superstar Saga accordingly
2025-05-10 07:01:52 -06:00
VeaNika
0aafeddbdc Implemented 12 bit fixed point in gamma LUT calculations 2025-05-10 05:29:12 -06:00
VeaNika
1e57e8d025 Fixed a typo in color profiles 2025-05-10 05:24:53 -06:00
VeaNika
c98374aadf Revert back rgb8ToRgb5 function 2025-05-09 16:57:43 -06:00
VeaNika
ec65597c1a Adjusted Darken Screen value to zero to fix black crunching
- We don't need to increase linear gamma with the new color matrices
2025-05-09 16:37:37 -06:00
VeaNika
4f15b94297 Improved Gamma LUT calculation by adding back doubles
- Since gamma is being precomputed, we don't need to optimize this using floats
2025-05-09 16:35:02 -06:00
VeaNika
dc515bdc43 Fixed typo in the json settings serializer 2025-05-09 16:18:41 -06:00
VeaNika
3bf7816cc0 Added manual JIT patches for M&L:SSS, thanks to @Dartz150
- Main Ram Insctruction cache is disabled by default in these configs, solving the soft lock issue.
- Includes patch addresses for the EUR, USA, JAP and Kiosk Demo releases.
2025-05-05 02:22:27 -06:00
VeaNika
ecf0bbd13f Fixed typo 2025-05-04 23:01:44 -06:00
VeaNika
cc0f405412 Fixed some indentation errors 2025-05-04 22:44:57 -06:00
VeaNika
ae9a95c3cc Move color correction LUT buffer to EWRAM, freeing up 32KB of VRAM 2025-05-04 20:42:34 -06:00
VeaNika
589071460d Added configuration setting to enable or disable the JIT 2025-05-04 12:04:01 -06:00
VeaNika
61f87ab879 Disabled IWram DataCache setting by default 2025-05-04 11:41:37 -06:00
VeaNika
576fb761ce Small code fix for consisteny 2025-05-03 20:45:18 -06:00
VeaNika
73b3828c52 Added configuration settings for Main Ram ICache y Iwram DCache 2025-05-03 20:41:43 -06:00
VeaNika
f2f3736608 Fixed wrong PSP01G define in the Json Serializer 2025-05-01 00:16:42 -06:00
VeaNika
85b41b2496 Saved 8 bytes of space by splitting gamma encode and decode functions 2025-05-01 00:15:56 -06:00
VeaNika
f26a8d40e4 Simplified color profile names and setup 2025-04-27 23:21:39 -06:00
VeaNika
558e3cd8a8 Some code cleanup 2025-04-27 23:18:04 -06:00
VeaNika
1e7404b1c8 Created Json App gbaDisplayGamma setting for DISPLAY_GAMMA
- 5 precomputed DISPLAY_GAMMA curve steps for now
2025-04-27 03:58:23 -06:00
VeaNika
dc7234299a Inline helper functions in ColorLut calculation 2025-04-27 01:59:01 -06:00
VeaNika
60431f67fa Code cleanups
- Moved color profile definitions to Colorprofiles.h, ditched cpp
- Simplified access to profiles in header files
2025-04-27 01:54:50 -06:00
VeaNika
483c3c1f13 Integrated the new color profiles to the color correction setting 2025-04-26 16:00:49 -06:00
VeaNika
ed162e595f Implemented dynamic color correction LUT generation and runtime gamma profiles
- Removed hardcoded static color LUT
- Reworked ColorLut to calculate color correction LUT at runtime
- Added precompiled gamma tables (0.3f – 0.7f range, 5 steps)
- Introduced dynamic color profiles selectable at runtime
- Preparations for configurable Color Profiles and [DISPLAY_GAMMA] steps
2025-04-26 15:49:39 -06:00
VeaNika
ec47a3d04b Moved the ColorLut code into its own folder 2025-04-25 16:18:42 -06:00
Gericom
4683f8bb52
Merge pull request #184 from Dartz150/configs/gba-video-manual-jit-patches
Added manual JIT Patches for non-64MB GBA Video Titles
2025-04-19 11:01:55 +02:00
Dartz150
2c75efb77c Added manual JIT Patches for non-64MB GBA Video Titles
Fixes playback issues in the following titles, a few still require specific fixes,
please refer to the compatibility list for details.

MGUE - Game Boy Advance Video - All Grown Up! - Volume 1 (USA)
MCNF - Game Boy Advance Video - Cartoon Network Collection - Edition Platinum (France)
MCPF - Game Boy Advance Video - Cartoon Network Collection - Edition Premium (France)
MCSF - Game Boy Advance Video - Cartoon Network Collection - Edition Speciale (France)
MCME - Game Boy Advance Video - Cartoon Network Collection - Limited Edition (USA)
MCNE - Game Boy Advance Video - Cartoon Network Collection - Platinum Edition (USA, Europe)
MCPE - Game Boy Advance Video - Cartoon Network Collection - Premium Edition (USA, Europe)
MCSE - Game Boy Advance Video - Cartoon Network Collection - Special Edition (USA, Europe)
MCTE - Game Boy Advance Video - Cartoon Network Collection - Volume 1 (USA, Europe)
MC2E - Game Boy Advance Video - Cartoon Network Collection - Volume 2 (USA, Europe)
MKDE - Game Boy Advance Video - Codename - Kids Next Door - Volume 1 (USA, Europe)
MDCE - Game Boy Advance Video - Disney Channel Collection - Volume 1 (USA)
MDRE - Game Boy Advance Video - Dora the Explorer - Volume 1 (USA)
MDBE - Game Boy Advance Video - Dragon Ball GT - Volume 1 (USA)
MN3E - Game Boy Advance Video - Nicktoons - Volume 3 (USA)
MNCE - Game Boy Advance Video - Nicktoons Collection - Volume 1 (USA)
MPAE - Game Boy Advance Video - Pokemon - Volume 1 (USA)
MPBE - Game Boy Advance Video - Pokemon - Volume 2 (USA)
MPCE - Game Boy Advance Video - Pokemon - Volume 3 (USA)
MSAE - Game Boy Advance Video - Shark Tale (USA) (Rev 5) [Added to test Bank Switching later]
MSHE - Game Boy Advance Video - Sonic X - Volume 1 (USA)
MSSE - Game Boy Advance Video - SpongeBob SquarePants - Volume 1 (USA) (Rev 1)
MS2E - Game Boy Advance Video - SpongeBob SquarePants - Volume 2 (USA) (Rev 1)
MS3E - Game Boy Advance Video - SpongeBob SquarePants - Volume 3 (USA)
MSBE - Game Boy Advance Video - Strawberry Shortcake - Volume 1 (USA)
MSRE - Game Boy Advance Video - Super Robot Monkey Team - Hyper Force Go! - Volume 1 (USA)
MTMF - Game Boy Advance Video - Teenage Mutant Ninja Turtles - Le Demenagement (France)
MTME - Game Boy Advance Video - Teenage Mutant Ninja Turtles - Things Change (USA, Europe)
MJME - Game Boy Advance Video - The Adventures of Jimmy Neutron Boy Genius - Volume 1 (USA)
MFOE - Game Boy Advance Video - The Fairly OddParents! - Volume 1 (USA)
MF2E - Game Boy Advance Video - The Fairly OddParents! - Volume 2 (USA) (Rev 1)
MFPE - Game Boy Advance Video - The Proud Family - Volume 1 (USA)
MYGF - Game Boy Advance Video - Yu-Gi-Oh! - Yugi vs. Joey (France)
MYGE - Game Boy Advance Video - Yu-Gi-Oh! - Yugi vs. Joey (USA, Europe)
2025-04-19 02:52:27 -06:00