Skip to content

Interface2#550

Merged
ejaquay merged 2 commits intoVCCE:mainfrom
ejaquay:interface2
Feb 12, 2026
Merged

Interface2#550
ejaquay merged 2 commits intoVCCE:mainfrom
ejaquay:interface2

Conversation

@ejaquay
Copy link
Contributor

@ejaquay ejaquay commented Feb 12, 2026

Update cartridge interface document

  • Describes the Vcc to hardware pak dll interfaces
  • Outlines a proposed move of slot maintenance to Vcc main

Replace opaque context in PakInitialize exports with transparent SlotId.

  • A big step in proposed interface changes.
  • Eliminates slot table lookups and simplifies callback routing in MPI
  • Allows pak cart dll to know what slot it is in and advise users of issues
    with cart location.

Add cartridge menu system document.

  • Describes replacement of add_menu_item callbacks with a new export based architecure.

ejaquay added 2 commits February 12, 2026 07:48
void * ctx previously sent to cartridges is replaced with size_t slot_id 0-4

THIS CHANGES THE PAK INTERFACE, affects all cart DLL's

Still to do:
fix interface design document to reflect this change
Redesign creation of cart menus
@ejaquay
Copy link
Contributor Author

ejaquay commented Feb 12, 2026

This update stabilizes the cartridge ABI. The DLL interface is C based and transparent, no factory to expose hidden C++ signatures, and no opaque contexts to bury interface routing. It is extensible by adding new exports or position based callbacks without hiding details or breaking existing DLL's. One more change - replace the add_menu_item with something better and the interface should be stable into the future.

@ejaquay ejaquay merged commit baa4d19 into VCCE:main Feb 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant