Commit Graph

96 Commits

Author SHA1 Message Date
Rickey 221b6d77c0 Add option to enable a more readable deck, suggestion by @Turro75 (#495) (#511)
* Options menu revamp

* Implement readable card sprites

* redraw characters to fix the original style

* clang format

* remove usage of UNDEFINED (-1) for unsigned values

* typo

* change save fix for something cleaner

* remove dependency to game_variables.h from card.c

* Make the palette look less silly ^^'

* Address @ricfehr3's comments

* clang format

* quick rename

* clang format

---------

Co-authored-by: Geralt <84459734+MathisMartin31@users.noreply.github.com>
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: Turro75 <valerio.turrini@gmail.com>
2026-05-25 11:11:33 -07:00
Rickey cebdebbfd0 Revert "Add option to enable a more readable deck, suggestion by @Turro75 (#495)" (#510)
This reverts commit d3c0357856.
2026-05-25 11:01:13 -07:00
Geralt d3c0357856 Add option to enable a more readable deck, suggestion by @Turro75 (#495)
* Options menu revamp

* Implement readable card sprites

* redraw characters to fix the original style

* clang format

* remove usage of UNDEFINED (-1) for unsigned values

* typo

* change save fix for something cleaner

* remove dependency to game_variables.h from card.c

* Make the palette look less silly ^^'

* Address @ricfehr3's comments

* clang format

* quick rename

* clang format

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-05-25 11:00:37 -07:00
Geralt 69403f059f Allow to exit the options menu without saving changes made (#484)
* Allow exiting options menu without saving

* Change "Back" button text to "Cancel" to be more explicit

* clang format

* fix load_game

* use proper existing defines for options default values

* fix buttons' array sizes

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-05-19 18:10:49 -07:00
Geralt 8e5295814f commit (#459)
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-05-02 14:39:49 -07:00
Geralt e7f550ce22 [Feature] Implement options menu and reading/writing values from/to the SRAM (#449)
* background

* Implement Options button

* Update main menu artwork

* add options menu tiles

* prepare options menu handling

* incorporate main menu refactor

* toto

* add all menu interactions

* do not reset selection_x in main_menu

* options struct

* fix rebase from ricfehr3's repo

* Implement high contrast cards

* Save/Load options values to SRAM

* load options on game_init and validate data within the load_options function

* Get changes from ricfehr3's PR

* recover fix for glitched ace

* clang format

* clang format

* clang format

* Save 500B of image data by using only minimal set of tiles instead of keeping final window in source file

* clang format

* clang format

* Implement Options button

* Update main menu artwork

* progress, leaving it alone for now until discussion

* make game_vars an extern

* Move options vars into their own struct

* rollback previous commit

* Implement save validation. Version check to come

* implement data validity + version check for game saves

* clang format

* Save position in rng sequence for consistent run after load

* fix rebase issues

* fix rebase issue

* remove unused/duplicate define

* Oops, made a mistake when testing PR #424

* encode high contrast palette into an image, and load it at game_start

* document save.c/h and correct typos

* correct alignment

* game speed and high contrast buttons working

* small cleanup

* sliders also work again now

* clang format

* Moved balatro_version extern declaration to version.h file

* removed unsused variable

* make showing ROM version a toggle

* move ante, round and money to the GameVariables struct

* Rename SaveCheckInfo struct to SaveHeader for clarity

* Add SaveHeader struct explanation

* clang format

* Revert unnecessary tileset optimization

* SFX now follows the sound volume slider

* clang format

* Music now follows volume slider

* Changed volume slider increment from 5 to 20 to avoid having the music sound too rough under 20% volume

* refactor main_menu.c to use SelectionGrid and Button structs

* clang format

* make a "new" save button so we don't save during the state transition

* clang format

* Reduced state transition flicker by only changing affine background to a different one

* Fix loading game too late in game init sequence

* First batch of suggestions from @MeirGavish

* Remove unnecessary intermediary buffers for high contrast palette swapping

* comment row warp hack for button input

* Add some of Copilot's suggestions

* rename balatro_version into gbalatro_version for rebranding reasons + version display erase screen fix

* remove unnecessary NULL check on `on_selection_changed` method

* implement small game speed arrow buttons animation

* factorize some code

* remove unnecessary data validation in load_game(), since we already checked the header

* Implement @MeirGavish 's suggestion regarding splitting the huge `on_update` function

* clang format

* implement @ricfehr3 's suggestion about keeping last selected button instead of using an obscure `on_boot` boolean

* Apply @ricfehr3's suggestions

* fix clang-format flags

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-05-02 14:28:52 -07:00
Geralt d3df6a4d74 Rebrand to GBAlatro in main menu (art by @O-C1NNAM0N-O) (#445)
* Change main menu splash screen

* fix rebase

* remove disclaimer from main menu

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-04-26 15:49:33 -07:00
Geralt db27962623 Implement boss blind graphics (#352)
* Created sprite bank for all blinds

* progress city, it's a beatiful city that progress city!

* Sprite appears in blind selection screen

* Added all blind colors

* fix magic numbers + disable boss reroll

* Fix boss blind token not moving after a reroll

* fix always rolling the Needle due to choosing too early for the rng seed to be set

* No need for affine sprite for blind tokens, regular is enough

* address Copilot's review 1/2

* address Copilot's review 2/2

* correct Blind Tokens/Types

* Index palette colors into the files instead of code

* Fix blind sprites (flip bug not solved)

* Fix magic number, tile index and Mark colors

* load boss blind palette only when changing spritesheet

* Adressing clang format and ease of modification of the blinds' list

* Removed some magic numbers


---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-04-16 11:52:39 +03:00
Geralt 5cf9e2674d Implement arbitrary-sized joker spritesheets (#285)
* Convert static joker sprites indexes to maps for dynamic spritesheets size

* tmp commit

* reorder Joker spritesheets

* more reordering

* Joker maps, will test later

* More reorders and palette optimizations. Sprites now work

* Fix Joker gfx

* Format joker.c

* Fix rebase error

* Integrate Shoot the Moon art

* format

* format

* removing useless GBAL_UNUSED from photograph Joker effect func

* Tidy up joker.c variables formatting

* Fix magic number

* Add context for map in joker.c

Co-authored-by: Rickey <ric@rf3.xyz>

* Update source/joker.c

Co-authored-by: Rickey <ric@rf3.xyz>

* Apply suggestion from @ricfehr3

Co-authored-by: Rickey <ric@rf3.xyz>

* format

* reduce clutter in joker_effects.c file by defining a macro for forward static declarations of joker effect funcs

* refactored some maps in joker.c to make it more concise

* clang format

* adding back how to mark functions as unused when Jokers don't have a sprite yet

* format

* Remove comment about unused functions for Jokers without art

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: Rickey <ric@rf3.xyz>
2026-03-28 17:58:05 -07:00
MeirGavish b292d227f9 Fix round start top left blind panel animation background (#377)
* Refactored helper sides copying code in expand 3x3 code

* Implemented main_bg_se_copy_expand_3w_row()

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-31 08:13:54 +02:00
MeirGavish 97bf8b3efd Added sort by rank/suit buttons (#351)
* Added definitions for sorting buttons (cherry pick, does not compile)

* Re-applied changes lost in merge

* Added sort buttons functionality (cherry-pick, has issues)

* Fixed sort buttons issue

* Removed stray code from merge

* clang-format

* Removed code from merge error

* Removed unused function from merge error

* Removed "E" typo from "SUIT" button

* Changed all the 2x5 S's in the UI to be 1 pixel wider at 3x5

* Revert "Changed all the 2x5 S's in the UI to be 1 pixel wider at 3x5"

This reverts commit f70e0d5ab76dd851c564672c01ab60cd25c28b63.

* Changed the width of the "SUIT" button to be consistent with the "RANK" button
2026-01-24 10:06:51 +02:00
MeirGavish bb82ab69af Encoded palette indexing in background pngs (#350) 2026-01-15 17:09:04 -08:00
Geralt 687d77e18a Improve Face Cards sprite art (#284)
* Tweaks by @MeirGavish

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-12-06 16:33:23 +02:00
MeirGavish 43d837571e Truncate Scores (#269)
* Fixed score truncation erasure, and centering for chips, mult, score and "temp score

* Added centering for money

* Added tests for truncate_uint_to_suffixed_str()

* Fixed u32 bug with get_digits

* Fixed score flames for large numbers

* Small change to update documentation

* Added 1 pixel on to score rect on the left to make room for full character tile + reset_top_left_panel_bottom_row() refactor

* Replaced directional defines with enums

* Updated ante_lut comment

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-02 08:28:36 +02:00
Geralt 07cab81ba1 Fix Wrathful Joker missing pixel (#272)
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-12-01 09:34:30 +02:00
MeirGavish 2d7394f03e Fixed corners for Banner joker (#271) 2025-11-30 17:57:05 +02:00
Geralt 0953a430c4 Implement Seltzer and Joker Expiration effect (#252)
* Add Seltzer art

* Implement Joker expiration

* Add exception to copying Jokers + Seltzer message fix

* Move all scoring logic to joker_object_score away from check_and_score_joker_for_event

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-30 08:52:42 +02:00
MeirGavish f3f375cef1 Banner Joker art update by @GreenNinja2525 (#242) 2025-11-16 20:18:14 +02:00
MeirGavish 28043bd7ca Integrated Photograph joker art by @MathisMartin31 2025-11-12 14:11:16 +02:00
Geralt e7eaa82c9d Add flaming effect when exceeding score requirements (#210)
* Fix grit palette swapping

* Add suggestions from @MeirGavish

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-04 12:31:09 +02:00
Geralt df674a73a6 Iterate over Hanging Chad"s art by @MeirGavish (#209)
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-03 09:34:18 +02:00
MeirGavish 247d1339c0 Update Hanging Chad art (#207) 2025-11-03 08:42:10 +02:00
MeirGavish ada2650c50 New Run Button (#206)
* New Run Button

* Refactor - replaced cashout copies with main_bg_se_copy_expand_3x3_rect() - WIP (Palette still messed)
2025-11-03 07:34:46 +02:00
theturtlemafia 03273de829 Adds Shortcut and Four Fingers (#95)
* adds shortcut joker

* adds Four Fingers joker, and combination support for Four Fingers + Shortcut

---------

Co-authored-by: MeirGavish <meir.gavish@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-01 16:28:40 +02:00
Geralt eb815b7820 Refactor of scoring flow, Joker Callbacks and Card Retriggers (#160)
* Remove Baseball Card for now, will have to wait a future PR

* Removed cards held in hand joker scoring stage - should be in another PR

---------

Co-authored-by: MonteCrysto <mathis.martin31@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-01 15:50:52 +02:00
MeirGavish b472ce2bad Changed the order of suits to match the original Balatro (#189) 2025-10-30 11:18:36 +02:00
Rickey Fehr ef048791c1 Separate out graphics and add ability change boss 2025-10-13 23:36:27 -07:00
MeirGavish 9d1a51884f Added art for Jokers Bootstraps by @MathisMartin31 and @noctowlhoot and Pareidolia by @NoWhammies10 and @MeirGavish (jokers rearranged for palette optimization) 2025-10-09 23:42:07 +03:00
MeirGavish 4b35b2f7d8 Added art for jokers Blueprint and Brainstorm by @NoWhammies10 and @GreenNinja2525 2025-10-08 22:40:15 +03:00
MeirGavish ae40949008 Fixed Bull border corner transparency 2025-10-08 00:18:30 +03:00
MeirGavish a0f1ef7780 Added art for xmult hand jokers The Duo The Trio, The Family, The Order, and The Tribe by @MathisMartin31 2025-10-07 23:52:49 +03:00
MeirGavish c529c4be69 Added art for jokers Abstract Joker by @MathisMartin31 and Bull by @NoWhammies10 and @GreenNinja2525 2025-10-07 21:26:43 +03:00
MeirGavish 46936c1878 Added art for jokers Raised Fist by @MathisMartin31 and Reserved Parking by @NoWhammies10 2025-10-07 21:13:31 +03:00
cellos51 4b7a22baff made all palettes have their length set in grit 2025-08-28 19:03:48 -04:00
cellos51 8fafcd1cdf Reduced amount of menu buttons 2025-08-25 17:52:27 -04:00
cellos51 53e6156397 Merge branch 'main' of https://github.com/cellos51/balatro-gba into main_menu_and_splash_screen 2025-08-24 13:47:41 -04:00
MeirGavish 3d3d7198b8 Merge pull request #107 from cellos51/blue_joker_fixes_additional_proposed_changes
Additional change for Blue Joker
2025-08-22 19:58:09 +03:00
MeirGavish 1d070b9c3f Fixed Blue Joker shine 2025-08-22 19:47:56 +03:00
MeirGavish 2d50005e30 Added art for Scary Face and Smiley Face by @GreenNinja2525 and enabled them in code 2025-08-22 19:43:27 +03:00
MeirGavish 76f225168a Additional change for Blue Joker 2025-08-22 18:28:00 +03:00
Wheeler 9d213662b7 Fix Outline of Greedy Joker
His outline didn't match the other Sinful Jokers, so I fixed it.
2025-08-21 21:23:22 -04:00
Wheeler 0a47b19493 Update Blue Joker
I fixed Blue Joker, it now has the card shine, and more rounded neck thing.
2025-08-21 21:09:15 -04:00
MeirGavish 6d6bb39c97 Affine background now turns red on game over + other WIP changes for game over screen 2025-08-19 16:31:32 +03:00
MeirGavish 7bbaec261b Merge branch 'main' into game_over_screen 2025-08-19 13:33:20 +03:00
MeirGavish 9164fba996 Even Steven card corner fix 2025-08-17 14:51:04 +03:00
MeirGavish 1b9785bc1f Sly Joker card corner fix 2025-08-17 13:42:56 +03:00
MeirGavish 46141090a0 Added joker sprites by @GreenNinja2525 for Blue Joker, Even Steven, Odd Todd, Scholar and Business Card. Disabled jokers with no sprites. 2025-08-17 12:36:20 +03:00
MeirGavish 3e775f2ac6 Added game over menu tiles to background_gfx.png and removed dedicated background file 2025-08-16 12:27:31 +03:00
MeirGavish ff17883b6f Merge branch 'main' into game_over_screen 2025-08-16 12:00:32 +03:00
MeirGavish 3557e7d34d Fixed inconsistent joker 'A's and rounded card corners 2025-08-16 10:56:22 +03:00