Commit Graph

750 Commits

Author SHA1 Message Date
MeirGavish
1ae2d041f7 Fixed typos from copilot review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-09 09:56:59 +03:00
MeirGavish
1dee4e537a Added GBAL_CUST_MSG_RETURN_IF_NULL + doc updates and clang-format 2026-09-09 09:44:10 +03:00
MeirGavish
6022dda230 Updated documentation 2026-09-04 19:10:24 +03:00
MeirGavish
8c57f57f1a Removed prefix from macro names 2026-09-04 18:47:40 +03:00
MeirGavish
298e46e273 Added RET_NONE define, removed void macros and replaced all usages with ret versions 2026-09-04 18:22:57 +03:00
MeirGavish
6014191f23 Fixed build errors from rebase 2026-09-04 18:22:57 +03:00
MeirGavish
2d8fc0fde2 Used __VA_OPT__(,) to avoid trailing commas.
Fixed error in previous commit
2026-09-04 18:22:57 +03:00
MeirGavish
992e2d7fbb Used empty macro argument to avoid code duplication 2026-09-04 18:22:56 +03:00
MeirGavish
84074d561c Removed unrelated includes from joker tiles/palettes block 2026-09-04 18:22:56 +03:00
MeirGavish
73f3ef76c8 Fixed assert documentation 2026-09-04 18:22:56 +03:00
MeirGavish
7d9c0203d0 Added documentation + clang-format 2026-09-04 18:22:56 +03:00
MeirGavish
9b316747e7 Removed item RETURN_IF_UNEXPECTED_TYPE macros 2026-09-04 18:22:55 +03:00
MeirGavish
57104454b1 Extracted cust_msg macros and removed unnecessary RETURN_IF_EQUALS/UNEQUALS macros 2026-09-04 18:22:55 +03:00
MeirGavish
91104a6898 Added generic assert - WIP 2026-09-04 18:22:55 +03:00
MeirGavish
eb4146aa2b [Refactor] Moved joker_object_score() to round.c (#580)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Deploy Nightly / Run Build ROM Workflow (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
* [Refactor] Moved joker_object_score() to round.c

* Used macro for argument NULL-check

* Replaced `set_and_shift_text()` with single call to `tte_printf()`

* Removed unnecessary comment
2026-09-04 14:21:46 +03:00
MeirGavish
439dc4cada [Refactor] Added explicit matching of substate enums to functions (#618)
* Added explicit matching of substate enums to functions

* Reverted adding s_ prefix in blind_select.c to avoid unrelated changes and conflicts in the PR
2026-09-04 14:17:46 +03:00
桌子潔
188ab2c8e6 refactor: remove game prefix from extracted functions (#611)
* refactor: remove game prefix from extracted functions

* fix: align state info table callbacks
2026-09-04 14:01:10 +03:00
MeirGavish
b2ff5c0062 Replaced missed call to obj_hide with sprite_object_hide (#614)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Deploy Nightly / Run Build ROM Workflow (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
2026-08-15 15:29:05 +03:00
MeirGavish
a40e2eaef3 Add guidelines to refer to issues to CONTRIBUTING.md (#610)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Deploy Nightly / Run Build ROM Workflow (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
* Add guidelines to check and open issues to CONTRIBUTING.md

* A few rephrases

Co-authored-by: MeirGavish <meir.gavish@gmail.com>

* Another small rephrase
2026-08-12 16:59:48 +03:00
Geralt
0eb7042468 [Bug] Implement independent RNG sequences to avoid interferences (#599)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Deploy Nightly / Run Build ROM Workflow (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
* Implement our own Xorshift32 RNG algo to manage independent number sequences

* Fix issues with seed 0

* adress @MeirGavish's review

* Apply suggestions from @MeirGavish's code review

Co-authored-by: MeirGavish <meir.gavish@gmail.com>

* adress the rest of @MeirGavish's review

* adress @MeirGavish's review

* Fix last issues

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
Co-authored-by: MonteCrysto <monte.crysto31@gmail.com>
v0.2.2
2026-08-05 12:37:06 +03:00
MeirGavish
451f4bd073 Add mode field to Sprite (#563)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Added sprite_hide and sprite_object_hide functions

* Changed calls to obj_unhide to sprite_unhide

* Fix embarrasing errors

* clang-format...?

* Imported renames from #557

* Removed last uses of obj_hide in round

* Added documentation

* Changed Sprite.idx from int to s16

* Added proper NULL-check macro usage in sprite.c
2026-08-02 13:29:20 +03:00
MeirGavish
6ff55992e7 Removed call to obj_aff_copy() from sprite_draw() (#597)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
2026-07-23 20:09:34 -07:00
Geralt
cf5a697556 [Enhancement] Make Jokers' description animation more responsive (#569)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Deploy Nightly / Run Build ROM Workflow (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
* Make descirpion animation more responsive

* revert debug

* clang format

* remove unnecessary stdlib.h

* Apply suggestions from @MeirGavish

Co-authored-by: MeirGavish <meir.gavish@gmail.com>

* clang format

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2026-07-20 21:53:56 +03:00
Geralt
4686d70049 Document blind.h/c with Doxygen (#566)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Document blind.h with Doxygen

* Document blind.c with Doxygen

* fix mistakes

* Make unbeaten blinds list initialization automatic

* clang format

* fix doc format

* typos

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

* Clearer function brief

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

* make the brief... more brief

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

* address latest review

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: Rickey <ric@rf3.xyz>
2026-07-18 14:15:39 -07:00
MeirGavish
7a5a4a1276 Updated all static variables to have the s_ prefix and constants to upper case (#591)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Updated all static variables to have the s_ prefix and constants to upper case

* Renamed missed sneaky functions in round.c (+ clang-format...)

* Renamed a few more missed constants

* Updated rng_update() documentation

* Apply suggestions from Copilot's code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Added missed suggestion

* Updated rng_update() comment

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-16 20:21:18 +03:00
Geralt
6e7d8a8399 Document hand analysis functions in hand.h (#572)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* doxygen

* clang format

* Update round.cFix call to `find_straight_in_played_cards`

* Update straight/flush functions docs in hand.h

* typo

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-07-10 17:46:05 -07:00
MeirGavish
d24b0b5619 Refactor shop code to use generic Item (#536)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Turned SpriteObject into a member of JokerObject and CardObject and expiremented with casting

* Extracted shop code to use generic `SpriteObject`

* Extracted shop joker generation to a function

* Renamed object -> item

* Added setters and getters for `SpriteObject` members and updated all accesses to use them with casting (AI used for tedious work and reviewed - model Raptor mini)

* Added sprite_object_set_vx() because sprite_object_set_vy() exists and reordered the function order to have x,y parameters first, then targets

* Added Item object to act as a purchasable interface for the shop - AI used (model Raptor mini)

* Added -fms-extensions and switched to anonymous inheritance

* Fixed anonymous inheritance for joker and added direct access for that too

* fix build error from previous commit + clang-format

* Fixed build errors + clang-format for real this time (I hope...)

* clang-format one last time, I don't understand it anymore

* clang-format is annoying

* Added uses of CHECK_NULL_ARG macros

* Merged item_defs.h into item.h and fixed build error from previous commit

* clang-format...?

* Changed sprite_object_new() into sprite_object_init() and made it accept a parameter instead of returning one to make it less awkward

* Updated sprite_object_init() documentation

* Updated sprite_object_destroy documentation

* More clang-format

* Renamed add_to_inventory to acquire and updated documentation

* Added function documentations

* Update documentation + swap order of consumable and playing card types

* Added documentation for new files (+ small addition to button.h)

* clang-format

* Used typedef

* A bit more documentation

* Changed sho pcode to use generic Item instead of SpriteObject

* clang-format + fixed NULL-check error

* Revert weird clang-format...?

* clang-format for real

* Fixed errors from rebase on log_function_name

* Fixed build errors from rebase on main

* Added some more documentation about first member struct inheritance

* typo fix

* typo fix for real

* Removed SpriteObject field getters/setters (AI used - model Raptor mini)

* Renamed item_acquire -> item_on_acquired

* Added item_can_acquire()

* clang-format

* Fixed some sprite issues but not all...

* Fixed some more issues

* Cleanup JokerObject some more JokerObjects in the shop

* Added `item_destroy()`

* Added item_set_available_to_shop, CHECK_ITEM_TYPE macros + small documentation updates

* Another small JokerObject->Item replacement

* Removed item_set_available_to_shop and replaced with item_roll_new() and item_dispose(), also changed "available_to_shop" semantics to "rollable"

* Re-applied changes from game.c to round.c after rebase on main

* Added partial implementations of item functions for playing cards

* Line endings fix...

* Macro renames, function documentations

* Updated documentations

* Apply fixes from Copilot review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix card_object_get_buy_price type checking

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Avoid double pointer cast on dispose

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from @ricfehr3's code review

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

* Remove redundant comments

* Moved error checking before joker_get_random_rarity

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

* Fixed build error from rebase

* clang-format

* Added doxygen documentation for Item explaining inheritance

* Removed unnecessary comment

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Rickey <ric@rf3.xyz>
2026-07-09 09:13:51 +03:00
Geralt
369c680cb7 [Enhancement] Game Over screen rework (#548)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* WIP

* getting somewhere

* clean up everything real good

* doc

* clang format

* Fix round.c after merge

* Remove extra deck_pop declaration

* Remove unnecessary comment

* address MeirGavish's review

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-07-08 03:48:31 +03:00
MeirGavish
da16e6a486 [Refactor] Moved reset_top_left_panel_bottom_row() to common_ui.c/.h (#581)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
2026-07-06 06:26:18 +03:00
MeirGavish
9a4aaca399 Fixed #575 incorrect joker sell value displayed after displaying description (#576)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
2026-07-02 13:26:00 +03:00
MeirGavish
4d26f13c26 Add logging macros that include the function name (#557)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Added function name logging to mgba_logger

* Addendum to no-op defines

* Fixed compile errors

* Added "()" to function name in log to make it clearer it's a function

* Corrected documentation

* clang-format...?

* Removed MGBA_LOG_LEVEL_MASK magic number

* Added CHECK_NULL_ARG macros

* clang-format...?

* clang-format for real

* Added documentation for CHECK_NULL_ARG_VOID and CHECK_NULL_ARG_RET

* Fixed typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fixed macro safety by wrappinh with do-while

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fixed format string cut risk in mgba_func_printf

* clang-format

* clang-format some more

* clang-format for real

* Fixed DEBUG -> INFO in comment

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

* Moved NULL-check macros to util.h and renamed them

* Small additions - macro rename + clang-format

* Truncate the string instead of the function name

* Cleaned up code from previous commit

* clang-format

* Added mgba_logger_available check to mgba_func_printf

* Updated documentation for latest change

* Changed CHECK_NULL_ARG functions to generic RETURN_ON_ERROR_VAL functions.

* clang-format

* Changed back to specifically check NULL

* clang-format

* Changed "=" into "==" in the error message

* clang-format

* Fixed forgotten "=="

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Rickey <ric@rf3.xyz>
2026-06-28 06:54:47 +03:00
Geralt
45eac259a5 [Refactor] Separate Round logic into its own file (#570)
* Everything works, need to clean up

* cleanup

* fix rebase issue

* clang format

* docs

* clang format

* clang format

* address part of review

* Protect against edge case when discarding at end of hand

* Protect undiscard against popping a discarded card that doesn't exist

* Protect against out of bounds access to the `played` cards stack

* fix condition in `select_four_of_a_kind_cards_in_played_hand`

* change `get_played_top() + 1` to `get_played_size()`

* move `can_play/discard_hand` functions to round.c

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-27 16:57:37 -07:00
Geralt
f722b9eef4 better flames (#571)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-22 16:11:38 +03:00
Wheeler
5b5facca8c Logo Tweak, Deck Color Fix and Joker Border Consistency (QOL) (#547)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Touchups (QOL Changes)

- Tweaked Logo to look slightly different (moved the "G" and "!" closer to other letters and connected them like in the actual logo from the full game)
- Changed the face down decks to have their colors changed. The red used before was darker than the one on the shop and round screens. I color matched them from the full game.
- I changed the borders of some Jokers to be white, like how they are in the full game. (Minor tweaks were made to them)

*I tested them and it seems to not break anything sprite-wise*

* Undo Joker Art Changes + Fix Logo

- Added changes to Joker Borders
- (Blue Joker has gray border to match the others, the only Joker with a different border is Blackboard)
- Reverted "!" Point (It's two pixels closer to the other letters unlike the original)
2026-06-20 11:56:03 -07:00
Geralt
c706a387a9 Implement a global SpriteObject update loop (#553)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Implement `sprite_object_update_all`

* clang format

* Change update order

* tmp

* make it crash

* Fix bad address crash

* Address @MeirGavish's comments

* Tweaked card draw position further

* Tweaked card draw position further, again

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
v0.2.1
2026-06-17 19:26:53 -07:00
MeirGavish
d2cdc7af1b Fixed argument on calls to obj_unhide (#562)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
2026-06-16 18:23:00 -07:00
Geralt
751a547059 Implement new sprite_object_position function (#559)
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-16 20:33:31 +03:00
Rickey
bf08d4eb78 Refine controls section in README.md (#552)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
* Refine controls section in README.md

Updated control descriptions for clarity and consistency.

* Update control instructions in README.md

* Update README.md

Co-authored-by: MeirGavish <meir.gavish@gmail.com>

---------

Co-authored-by: MeirGavish <meir.gavish@gmail.com>
v0.2.0
2026-06-13 01:17:56 -07:00
Rickey
36b01e0c95 Remove automatic releases on tags (#554)
Some checks are pending
Build and Deploy Doxygen Docs / docs (push) Waiting to run
v0.2.0-rc
2026-06-12 21:38:43 -07:00
Geralt
6170efca99 Fix missing Deck size/max text after showing Joker description in the Shop
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-12 20:05:57 -07:00
Rickey
8111b6e046 Cleanup sprite_position usage (#539)
Some checks are pending
Build and Deploy Doxygen Docs / docs (push) Waiting to run
* Cleanup sprite_position usage

* Add IWRAM_CODE attr for inline sprite function

* removed extra sprite_position call
2026-06-11 18:01:41 -07:00
Elliot Tester
35c7a29cc5 Scripts Take Rom as Arg (#512)
Some checks are pending
Build and Deploy Doxygen Docs / docs (push) Waiting to run
* initial

* suggestions for get_memory_map.sh

* CONTRIBUTING.md suggestions

* save_build.sh suggestions

* rerun

* env variable

* add to env

* print usage and remove redundant qoutes
2026-06-10 21:23:47 -07:00
Rickey
4cbdd6c004 Temporarily remove "new run" and "resume" buttons (#546)
* Temporarily remove "new run" and "resume" buttons

* clang format

* Add apology
2026-06-10 21:09:12 -07:00
MeirGavish
2ea3e7b19c Removed dubious sprite_object cast from long ago (#538)
Some checks are pending
Build and Deploy Doxygen Docs / docs (push) Waiting to run
2026-06-09 19:38:47 -07:00
Rickey Fehr
2665f5bff5 Revert "Temporarily remove "new run" and "resume" buttons"
This reverts commit 55073b5b1d.
2026-06-09 19:30:58 -07:00
Rickey Fehr
55073b5b1d Temporarily remove "new run" and "resume" buttons 2026-06-09 19:26:01 -07:00
Geralt
022535c1e7 swap bleuprint and brainstorm's descriptions (#545)
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-09 19:08:11 -07:00
Geralt
e26558e1a5 [Feature] Implement Joker descriptions in the Shop when holding B (#530)
Some checks are pending
Build and Deploy Doxygen Docs / docs (push) Waiting to run
* WIP

* WIP

* WIP

* WIP

* Tags are bugged but it's looking good

* Centering is bugged, almost there

* WIP

* Fixed centeriiiing, yaaaay

* good progress

* add proper '\n' support

* WIP descriptions

* All descriptions are there ^^

* missing 9-patch for pretty display

* WIP

* fix rebase issues

* Fix minor Run Setup screen issues

* Almost done, only one fix to go

* Aaaalmooost doooneeeee

* make desc frame size adaptative

* add rarity color and text

* final cleanup

* clang format

* clang format

* clang format

* clang format

* clang format

* Fix Joker update loop index

* Fix const and Bull description

* Fix unwanted button SFX

* fix tte colors

* Add misprint description

* Fix justified line length computation

* Add safeguards to tag parsing loop

* clang format

* Fix Ante bugged display at boss blind end

* Tweak suit colors

* Final fixes

* Simplified the way we print descriptions

* simplify further

* get rid of weird macro

* Fix Onwed joker price when holding A after showing its description

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2026-06-08 18:16:37 -07:00
Rickey
917354f057 Clarify Linux installation instructions (#531)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
Added note about Ubuntu version requirements for installation.
2026-06-05 21:29:35 -07:00
MeirGavish
47e0e3ae0e Fixed issue #528 - incorrect joker sell value display (#529)
Some checks failed
Build and Deploy Doxygen Docs / docs (push) Has been cancelled
2026-06-02 18:34:32 -07:00