Hamazing/source/framework/framework.asm
chrisly42 9c48c11cd1 Big "squashed" update to latest version of Framework.
- Bugfix: WaitForFrame was completely broken. Now also caters for race-condition that would have waited one extra frame.
- Bugfix: InitPart would overwrite innocent memory (reported by Gigabates and Losso)
- Bugfix: Palette LERP had wrong bias.
- Removed extra paths in include statement, use default include paths instead
- Added Raspberry Casket no-jitter background calc mode (FW_MUSIC_PLAYER_CHOICE = 6)
- Updated Raspberry Casket to V2.0 presto branch (WIP)
- Removed fw_FrameCounterLong, use fw_FrameCounter-2 for debug purposes
- Support for blue noise palette LERPing (like in Is Real). Provide your own blue noise table (4 KB), stuff it into fw_BlueNoiseTablePtr, set FW_PALETTE_LERP_SUPPORT to 2
- Music tick routine is now replaceable during runtime (fw_MusicTickRoutine)
- Support for softints and audio interrupts
- LMB exit can also be disabled dynamically when using FW_LMB_EXIT_SUPPORT = 2 and fw_DisableLMBExit != 0
- Added LSP Micro support and LSP Nano (custom format that uses note pitches instead of periods)
- Minor other things
2024-09-15 17:43:33 +02:00

109 lines
2.9 KiB
NASM

; PLaTOS 2.0 (22-May-23) by Chris 'platon42' Hodges (unless stated).
; link all parts together depending on the settings
include "framework.i"
IF FW_STANDALONE_FILE_MODE
include "os_startupcode.asm"
ELSE
include "trackmo_startupcode.asm"
ENDC
include "framework_misc.asm"
IF FW_MULTITASKING_SUPPORT
include "framework_tasks.asm"
ENDC
IF FW_BLITTERQUEUE_SUPPORT
include "framework_blitterqueue.asm"
ENDC
IF FW_DYNAMIC_MEMORY_SUPPORT
include "framework_memory.asm"
ENDC
IF FW_MUSIC_SUPPORT
include "framework_music.asm"
ENDC
IF FW_MULTIPART_SUPPORT
include "framework_multipart.asm"
ENDC
IF FW_SINETABLE_SUPPORT
include "framework_sinetable.asm"
ENDC
IF FW_SCRIPTING_SUPPORT
include "framework_scripting.asm"
ENDC
IF FW_PALETTE_LERP_SUPPORT
include "framework_palettelerp.asm"
ENDC
IFEQ FW_STANDALONE_FILE_MODE
include "framework_trackloader.asm"
include "framework_dos.asm"
ELSE
IF FW_HD_TRACKMO_MODE
include "framework_hdloader.asm"
include "framework_dos.asm"
ENDC
ENDC
IF FW_MUSIC_SUPPORT
IFNE FW_MUSIC_PLAYER_CHOICE==0
include "musicplayers/player_none.asm"
ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==1
include "musicplayers/player_lsp_vbl.asm"
ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==2
include "musicplayers/player_lsp_cia.asm"
ENDC
IFNE FW_MUSIC_PLAYER_CHOICE==3
fail "Sorry, P61 not ported to this framework (yet). Use LSP instead."
ENDC
IFNE (FW_MUSIC_PLAYER_CHOICE>=4)&&(FW_MUSIC_PLAYER_CHOICE<=6)
;include "musicplayers/player_pretracker_std.asm"
include "musicplayers/player_raspberry_casket.asm"
ENDC
ENDC
IF FW_LZ4_SUPPORT
fw_DecompressLZ4:
include "unpackers/lz4_normal.asm"
ENDC
IF FW_ZX0_SUPPORT
fw_DecompressZX0:
;include "unpackers/zx0.asm"
include "unpackers/zx0_faster.asm"
ENDC
IF FW_DOYNAX_SUPPORT
fw_DecompressDoynax:
include "unpackers/doynax.asm"
ENDC
include "framework_chip_section.asm"
IF FW_STANDALONE_FILE_MODE
; framework structure is allocated from RAM and pointer is placed here
; for IRQ routines to access it.
fw_BasePtr:
dc.l 0
ELSE
; framework structure is stored here with a minimal LVO table.
; Pointer to base is stored here for IRQ routines to access it.
fw_BasePtr:
dc.l 0
bra.w fw_InitPart ; make init part reachable from base framework
nop
fw_Base:
ds.b fw_SIZEOF
ENDC