Extend profiles from 280 to 312 bytes with legacy compatibility. Keep tower relics run-local and share the profile bankroll.
68 lines
3.6 KiB
Markdown
68 lines
3.6 KiB
Markdown
# Native Clover 5x3
|
|
|
|
The runtime is MASM x86 only. `native_clover.inc` owns input, five timed reel
|
|
strips, clipping, final-board evaluation, settlement, paid-combo selection and
|
|
rendering. The original assembly `EvaluateSlotCombos` is reused directly; the
|
|
console `GameSlot`, its sleeps, console output and payout functions are never
|
|
called by this mode.
|
|
|
|
## Rules
|
|
|
|
Fifteen final symbols are sampled once when the stake is debited. Symbol values:
|
|
clover 3, lemon 2, cherries 2, bell 3, diamond 5, chest 5, seven 7.
|
|
Each paid pattern contributes its factor times its symbol value. Contributions
|
|
are added; a pattern entirely covered by earlier paid patterns is not paid
|
|
again. Original order: jackpot, eye, sky/earth, up/down arrows, rows 5, rows 4,
|
|
verticals, diagonals, rows 3. The jackpot is additive, matching the original
|
|
game, not a replacement for the remaining matches.
|
|
|
|
Displayed multipliers and credited payouts include any returned stake. The
|
|
separate net field is actual credit minus the frozen stake. A bank-cap-clipped
|
|
payout displays only the money actually credited. The bank cap is 1,000,000,000.
|
|
777 uses the same gross/net convention, with neutral feedback for a stake
|
|
refund, not victory feedback. Its unchanged strip/table has theoretical gross
|
|
RTP 90.025% under independent uniform stop selection; this is not a guarantee
|
|
for the actual pseudo-random generator or any individual session.
|
|
|
|
## Interaction
|
|
|
|
Space/Enter spins, W/S or Up/Down change the idle stake, P opens/closes the pay
|
|
table, Left/Right select an actually paid combo. All controls have clickable
|
|
equivalents. Escape first closes the pay table; during a paid spin it queues
|
|
leaving until settlement/save completes, otherwise it returns to the hall.
|
|
No pause menu or console fallback is opened.
|
|
|
|
The result grid highlights the selected paid mask, with its type, multiplier,
|
|
index/count, aggregate multiplier, gross payout and net separately. Only the
|
|
middle line of the separate 777 machine pays; its payout panel says the stake
|
|
is included.
|
|
|
|
## Assets
|
|
|
|
Generated with the built-in image generator, then copied to
|
|
`assets/sprites/clover/cabinet-v1.png` and `symbols-v1.png`. The cabinet is opaque
|
|
640x480, symbols seven alpha-tested 56x56 frames. `pack_clover_assets.py` is an
|
|
offline packer, not a non-assembly game implementation.
|
|
|
|
Cabinet prompt: wide front-facing Clover machine in a richly furnished retro
|
|
casino, emerald enamel/worn brass/crimson trim, crisp textured Doom-era pixel
|
|
art; one large blank near-black rectangular reel bay, no baked symbols,
|
|
dividers, letters or people, straight-on framing.
|
|
Symbol prompt: transparent equal-cell 4x2 pixel-painted atlas, clover/lemon/
|
|
cherries/bell on top, diamond/chest/red seven below, final cell empty; isolated,
|
|
centered, consistent apparent size and readable silhouettes, no grid/background.
|
|
|
|
## Verification And Scope
|
|
|
|
Independent offline fixture oracle covers 553 boards, including all seven
|
|
jackpots and each pattern. Native tests cover 500 paid spins at four update
|
|
rates, frozen RNG/stake, exact final tape rows, monotonic stopping, queued exit,
|
|
idempotent payout, bank cap, missing funds and six framebuffer captures.
|
|
`check_clover.py --parity` checks assets, real framebuffer clipping, all fifteen
|
|
complete cells, selected paid-mask changes and tested/shipping assembly code.
|
|
|
|
Native talisman modifiers were subsequently integrated; see
|
|
`ARTIFACTS_AND_TOWER.md`. Legacy console achievement/dance side effects
|
|
are not ported by this change. NPC challenges count native slot rounds and
|
|
classify only positive net results as wins. No claim of completing every legacy
|
|
Clover feature or its balance is made.
|