Merge pull request #134 from chordtoll/main

Start working on sound driver memory functions
This commit is contained in:
AnonymousRandomPerson 2025-05-30 22:05:22 -04:00 committed by GitHub
commit 35f696e1d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 10470 additions and 10419 deletions

View File

@ -1,4 +1,220 @@
#pragma once
.public ARM9_UNKNOWN_FUNCTION_TABLE__NA_20A3CF4
.public ARM9_UNKNOWN_TABLE__NA_20A3CC8
.public ARM9_UNKNOWN_TABLE__NA_20A3CE4
.public ARM9_UNKNOWN_TABLE__NA_20A68BC
.public AURA_BOW_STAT_BOOST
.public AllocateTemp1024ByteBufferFromPool
.public BulkItemToItem
.public CanEvolve
.public CloseCollectionMenu
.public ClosePortraitBox
.public Copy16BitsFrom
.public CopyBitsFrom
.public CopyBitsTo
.public CopyMovesetFrom
.public CopyMovesetTo
.public CopyNStringFromId
.public CreateCollectionMenu
.public CreatePortraitBox
.public DEF_SCARF_STAT_BOOST
.public DEMO_TEAMS
.public DRIVER_WORK
.public DUNGEON_SWAP_ID_TABLE
.public Debug_GetDebugFlag
.public Debug_Print0
.public DelayWteFree
.public DeleteWanTableEntryVeneer
.public DexNumbersEqual
.public DirectoryFileMngr_ExtractAllDirectoryFiles
.public DirectoryFileMngr_OpenDirectoryFile
.public DrawTextInWindow
.public DseBgm_StopAll
.public DseBgm_SysSetupNoteList
.public DseDriver_StartMainThread
.public DseDriver_StartTickTimer
.public DseMem_Clear
.public DseMem_Quit
.public DseSe_StopAll
.public DseSe_SysReset
.public DseSequence_PauseList
.public DseSwd_SysInit
.public DseSwd_SysQuit
.public DseVoice_ResetAll
.public DseVoice_ResetHW
.public DungeonGoesUp
.public ENTITIES
.public EVENTS
.public EnableAllLearnableIqSkills
.public EnqueueRender3dTiling
.public ExplorersOfSkyMain
.public FemaleToMaleForm
.public FindItemInInventory
.public GetAbility
.public GetAbilityDescStringId
.public GetActiveRosterIndex
.public GetActiveTeamMember
.public GetAdventureLogDungeonFloor
.public GetBaseForm
.public GetBaseFormBurmyWormadamShellosGastrodonCherrim
.public GetBodySize
.public GetCategoryString
.public GetDungeonMode
.public GetEvoParameters
.public GetExclusiveItem
.public GetExecuteSpecialEpisodeType
.public GetFirstMatchingMemberIdx
.public GetHero
.public GetHeroMemberIdx
.public GetHpBoostFromExclusiveItems
.public GetIqGroup
.public GetIqSkillStringId
.public GetLanguageType
.public GetLearnableIqSkills
.public GetLvlUpEntry
.public GetMainCharacter1
.public GetMainCharacter1MemberIdx
.public GetMainCharacter2
.public GetMainCharacter2MemberIdx
.public GetMainCharacter3
.public GetMainCharacter3MemberIdx
.public GetMainTeamNameWithCheck
.public GetMaxItemsAllowed
.public GetMaxMembersAllowed
.public GetMaxReachedFloor
.public GetMaxRescueAttempts
.public GetMonsterGenderVeneer
.public GetNameRaw
.public GetNameString
.public GetNbFloors
.public GetPartner
.public GetPartnerMemberIdx
.public GetPartyMembers
.public GetPerformanceFlagWithChecks
.public GetRank
.public GetScenarioBalance
.public GetSecondFormIfValid
.public GetSpecialEpisodeType
.public GetStringFromFileVeneer
.public GetTeamMember
.public GetType
.public GetTypeStringId
.public GlobalProgressAlloc
.public HandleSir0TranslationVeneer
.public HasMonsterBeenAttackedInDungeons
.public IQ_GROUP_SKILLS
.public IQ_SKILLS
.public ITEM_DELIVERY_TABLE
.public InitAnimationControlWithSet__0201C0B0
.public InitKaomadoStream
.public InitPreprocessorArgs
.public InitScriptVariableValues
.public InitSpecialEpisodeHero
.public InitWanTable
.public IqSkillFlagTest
.public IsAuraBow
.public IsCollectionMenuActive
.public IsForbiddenFloor
.public IsInvalidForMission
.public IsItemAvailableInDungeonGroup
.public IsItemInBag
.public IsItemInTimeDarkness
.public IsItemInTreasureBoxes
.public IsItemValidVeneer
.public IsMonsterOnTeam
.public IsMonsterValid
.public IsMovesetValid
.public IsMovesetValidInTimeDarkness
.public IsSpecialEpisodeOpen
.public IsStorableItem
.public IsThrownItem
.public IsValidTargetItem
.public JOB_MENU_ITEMS_1
.public JOB_MENU_ITEMS_10
.public JOB_MENU_ITEMS_11
.public JOB_MENU_ITEMS_12
.public JOB_MENU_ITEMS_13
.public JOB_MENU_ITEMS_2
.public JOB_MENU_ITEMS_3
.public JOB_MENU_ITEMS_4
.public JOB_MENU_ITEMS_5
.public JOB_MENU_ITEMS_6
.public JOB_MENU_ITEMS_7
.public JOB_MENU_ITEMS_8
.public JOB_MENU_ITEMS_9
.public JOB_WINDOW_PARAMS_1
.public JOB_WINDOW_PARAMS_2
.public JoinedAtRangeCheck2
.public KeyWaitInit
.public LoadFileFromRom
.public LoadOverlay
.public LoadScriptVariableValue
.public LoadTblTalk
.public LoadWanTableEntry
.public LoadWazaP
.public LoadWteFromRom
.public MAP_MARKER_PLACEMENTS
.public MISSION_BANNED_MONSTERS
.public MISSION_BANNED_STORY_MONSTERS
.public MISSION_DELIVER_LIST_PTR
.public MISSION_DUNGEON_UNLOCK_TABLE
.public MISSION_MENU_STRING_IDS_1
.public MISSION_MENU_STRING_IDS_2
.public MISSION_RANK_POINTS
.public MISSION_STRING_IDS
.public MUNCH_BELT_STAT_BOOST
.public MainGame
.public MemAlloc
.public MemFree
.public MemZero
.public MemcpySimple
.public MemsetSimple
.public MissionToWonderMailPassword
.public MultiplyByFixedPoint
.public NO_SEND_ITEM_TABLE
.public NoteLoadBase
.public NoteSaveBase
.public OverlayIsLoaded
.public POWER_BAND_STAT_BOOST
.public PlaySeVolumeWrapper
.public PreprocessString
.public PreprocessStringFromId
.public RANK_STRING_PTR_TABLE
.public REMOTE_STRING_PTR_TABLE
.public Rand16Bit
.public RandInt
.public RandIntSafe
.public RandRangeSafe
.public ReadSaveHeader
.public RemoveFirstUnequippedItemOfType
.public RetrieveFromItemList2
.public SPECIAL_BAND_STAT_BOOST
.public STATUS_NAME_STRING_IDS
.public SaveScriptVariableValue
.public SetAdventureLogStructLocation
.public SetAnimationForAnimationControl
.public SetBothScreensWindowsColor
.public SetCollectionMenuField0x1B2
.public SetPokemonJoined
.public SetQuestionMarks
.public SetScenarioScriptVar
.public SetSpecialEpisodeType
.public SetSpriteIdForAnimationControl
.public ShowPortraitInPortraitBox
.public StrcpyName
.public StringFromId
.public StrncmpSimple
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPadSafe
.public TACTIC_NAME_STRING_IDS
.public TEAM_MEMBER_TABLE_PTR
.public UnloadFile
.public UnloadOverlay
.public UpdateWindow
.public WAN_TABLE
.public ZINC_BAND_STAT_BOOST
.public ZinitScriptVariable
.public _020A1870
.public _020A18FC
.public _020A1904
@ -126,11 +342,7 @@
.public _020B0B6C
.public _020B0B70
.public _020B0B74
.public _020B0B7C
.public _020B0D50
.public _020B1290
.public _020B1310
.public _020B1394
.public _022B57BC
.public _022B57C0
.public _022B580C
@ -142,200 +354,11 @@
.public _022B7334
.public _022B7340
.public _022B734C
.public _022B7370
.public _022B7380
.public _022B7388
.public _022B7988
.public _022B7990
.public _022B7994
.public _022B7998
.public _022B799C
.public _022B7A30
.public _022B7A3E
.public _022B7A6C
.public _022B8330
.public _022B9044
.public _022B910C
.public _022B9120
.public _022B9130
.public _022B9208
.public _022B9234
.public _022B9300
.public _022B9484
.public _022B94BC
.public _022B9584
.public _fdiv
.public _ffltu
.public _fls
.public _fmul
.public _s32_div_f
.public _u32_div_f
.public AllocateTemp1024ByteBufferFromPool
.public ARM9_UNKNOWN_FUNCTION_TABLE__NA_20A3CF4
.public ARM9_UNKNOWN_TABLE__NA_20A3CC8
.public ARM9_UNKNOWN_TABLE__NA_20A3CE4
.public ARM9_UNKNOWN_TABLE__NA_20A68BC
.public ArrayFill32Fast
.public AURA_BOW_STAT_BOOST
.public BulkItemToItem
.public CanEvolve
.public CloseCollectionMenu
.public ClosePortraitBox
.public Copy16BitsFrom
.public CopyBitsFrom
.public CopyBitsTo
.public CopyMovesetFrom
.public CopyMovesetTo
.public CopyNStringFromId
.public CreateCollectionMenu
.public CreatePortraitBox
.public Debug_GetDebugFlag
.public Debug_Print0
.public DEF_SCARF_STAT_BOOST
.public DelayWteFree
.public DeleteWanTableEntryVeneer
.public DEMO_TEAMS
.public DexNumbersEqual
.public DirectoryFileMngr_ExtractAllDirectoryFiles
.public DirectoryFileMngr_OpenDirectoryFile
.public DrawTextInWindow
.public DRIVER_WORK
.public DUNGEON_SWAP_ID_TABLE
.public DungeonGoesUp
.public EnableAllLearnableIqSkills
.public EnqueueRender3dTiling
.public ENTITIES
.public EVENTS
.public ExplorersOfSkyMain
.public FemaleToMaleForm
.public FileInit
.public FindItemInInventory
.public GetAbility
.public GetAbilityDescStringId
.public GetActiveRosterIndex
.public GetActiveTeamMember
.public GetAdventureLogDungeonFloor
.public GetBaseForm
.public GetBaseFormBurmyWormadamShellosGastrodonCherrim
.public GetBodySize
.public GetCategoryString
.public GetDungeonMode
.public GetEvoParameters
.public GetExclusiveItem
.public GetExecuteSpecialEpisodeType
.public GetFirstMatchingMemberIdx
.public GetHero
.public GetHeroMemberIdx
.public GetHpBoostFromExclusiveItems
.public GetIqGroup
.public GetIqSkillStringId
.public GetLanguageType
.public GetLearnableIqSkills
.public GetLvlUpEntry
.public GetMainCharacter1
.public GetMainCharacter1MemberIdx
.public GetMainCharacter2
.public GetMainCharacter2MemberIdx
.public GetMainCharacter3
.public GetMainCharacter3MemberIdx
.public GetMainTeamNameWithCheck
.public GetMaxItemsAllowed
.public GetMaxMembersAllowed
.public GetMaxReachedFloor
.public GetMaxRescueAttempts
.public GetMonsterGenderVeneer
.public GetNameRaw
.public GetNameString
.public GetNbFloors
.public GetPartner
.public GetPartnerMemberIdx
.public GetPartyMembers
.public GetPerformanceFlagWithChecks
.public GetRank
.public GetScenarioBalance
.public GetSecondFormIfValid
.public GetSpecialEpisodeType
.public GetStringFromFileVeneer
.public GetTeamMember
.public GetTimer0Control
.public GetType
.public GetTypeStringId
.public GlobalProgressAlloc
.public HandleSir0TranslationVeneer
.public HasMonsterBeenAttackedInDungeons
.public InitAnimationControlWithSet__0201C0B0
.public InitKaomadoStream
.public InitPreprocessorArgs
.public InitScriptVariableValues
.public InitSpecialEpisodeHero
.public InitWanTable
.public IQ_GROUP_SKILLS
.public IQ_SKILLS
.public IqSkillFlagTest
.public IsAuraBow
.public IsCollectionMenuActive
.public IsForbiddenFloor
.public IsInvalidForMission
.public IsItemAvailableInDungeonGroup
.public IsItemInBag
.public IsItemInTimeDarkness
.public IsItemInTreasureBoxes
.public IsItemValidVeneer
.public IsMonsterOnTeam
.public IsMonsterValid
.public IsMovesetValid
.public IsMovesetValidInTimeDarkness
.public IsSpecialEpisodeOpen
.public IsStorableItem
.public IsThrownItem
.public IsValidTargetItem
.public ITEM_DELIVERY_TABLE
.public JOB_MENU_ITEMS_1
.public JOB_MENU_ITEMS_10
.public JOB_MENU_ITEMS_11
.public JOB_MENU_ITEMS_12
.public JOB_MENU_ITEMS_13
.public JOB_MENU_ITEMS_2
.public JOB_MENU_ITEMS_3
.public JOB_MENU_ITEMS_4
.public JOB_MENU_ITEMS_5
.public JOB_MENU_ITEMS_6
.public JOB_MENU_ITEMS_7
.public JOB_MENU_ITEMS_8
.public JOB_MENU_ITEMS_9
.public JOB_WINDOW_PARAMS_1
.public JOB_WINDOW_PARAMS_2
.public JoinedAtRangeCheck2
.public KeyWaitInit
.public LoadFileFromRom
.public LoadOverlay
.public LoadScriptVariableValue
.public LoadTblTalk
.public LoadWanTableEntry
.public LoadWazaP
.public LoadWteFromRom
.public MainGame
.public MAP_MARKER_PLACEMENTS
.public MemAlloc
.public MemcpySimple
.public MemFree
.public memset
.public MemsetSimple
.public MemZero
.public MISSION_BANNED_MONSTERS
.public MISSION_BANNED_STORY_MONSTERS
.public MISSION_DELIVER_LIST_PTR
.public MISSION_DUNGEON_UNLOCK_TABLE
.public MISSION_MENU_STRING_IDS_1
.public MISSION_MENU_STRING_IDS_2
.public MISSION_RANK_POINTS
.public MISSION_STRING_IDS
.public MissionToWonderMailPassword
.public MultiplyByFixedPoint
.public MUNCH_BELT_STAT_BOOST
.public NO_SEND_ITEM_TABLE
.public NoteLoadBase
.public NoteSaveBase
.public ov00_022BE0C8
.public ov01_02337B3C
.public ov01_02337B68
@ -356,57 +379,9 @@
.public ov10_022C24DC
.public ov11_022E82CC
.public ov11_022E96E4
.public OverlayIsLoaded
.public PlaySeVolumeWrapper
.public POWER_BAND_STAT_BOOST
.public PreprocessString
.public PreprocessStringFromId
.public Rand16Bit
.public RandInt
.public RandIntSafe
.public RandRangeSafe
.public RANK_STRING_PTR_TABLE
.public ReadSaveHeader
.public REMOTE_STRING_PTR_TABLE
.public RemoveFirstUnequippedItemOfType
.public RetrieveFromItemList2
.public SaveScriptVariableValue
.public SetAdventureLogStructLocation
.public SetAnimationForAnimationControl
.public SetBothScreensWindowsColor
.public SetCollectionMenuField0x1B2
.public SetPokemonJoined
.public SetQuestionMarks
.public SetScenarioScriptVar
.public SetSpecialEpisodeType
.public SetSpriteIdForAnimationControl
.public ShowPortraitInPortraitBox
.public SMD_EVENTS_FUN_TABLE
.public SoundEnvelope_ForceVolume
.public SoundEnvelope_Release
.public SoundEnvelope_Reset
.public SoundEnvelope_SetParameters
.public SoundEnvelope_Stop
.public SoundEnvelope_Stop2
.public SoundEnvelope_Tick
.public SoundEnvelopeParameters_CheckValidity
.public SoundEnvelopeParameters_Reset
.public SoundLfoBank_Reset
.public SoundLfoBank_Set
.public SoundLfoBank_SetConstEnvelopes
.public SoundLfoBank_Tick
.public SPECIAL_BAND_STAT_BOOST
.public StartThread
.public STATUS_NAME_STRING_IDS
.public strcat
.public strcpy
.public StrcpyName
.public StringFromId
.public strncat
.public StrncmpSimple
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPadSafe
.public sub_020018D0
.public sub_02001980
.public sub_02001AB0
@ -556,45 +531,23 @@
.public sub_02056E04
.public sub_020584F8
.public sub_02058C30
.public sub_0206DC78
.public sub_0206F6FC
.public sub_0206F774
.public sub_0206F9A4
.public sub_02070124
.public sub_02070148
.public sub_02070158
.public sub_02070188
.public sub_020701B0
.public sub_02070EA0
.public sub_02070F4C
.public sub_020729A4
.public sub_02075600
.public sub_020756E8
.public sub_02079800
.public sub_02079888
.public sub_02079940
.public sub_02079B14
.public sub_0207A2DC
.public sub_0207A300
.public sub_0207A7EC
.public sub_0207A8F4
.public sub_0207AD54
.public sub_0207AEF4
.public sub_0207AFF0
.public sub_0207C8B8
.public sub_0207C8E0
.public sub_0207C944
.public sub_0207C984
.public sub_0207CA04
.public sub_0207CA24
.public sub_0207CA4C
.public sub_0207CA6C
.public sub_0207CAB8
.public sub_0207CAE0
.public sub_0207CB54
.public sub_0207CD44
.public sub_0207CF14
.public sub_0207D470
.public sub_0207F6C4
.public sub_0207F70C
.public sub_0207F748
.public sub_0207F808
.public sub_0207F828
.public TACTIC_NAME_STRING_IDS
.public TEAM_MEMBER_TABLE_PTR
.public UnloadFile
.public UnloadOverlay
.public UpdateTrackVolumeEnvelopes
.public UpdateWindow
.public vsprintf
.public WAN_TABLE
.public ZINC_BAND_STAT_BOOST
.public ZinitScriptVariable

View File

@ -0,0 +1,84 @@
#pragma once
.public ArrayFill32Fast
.public DRIVER_WORK
.public DseMem_AllocateUser
.public DseUtil_ByteSwap32
.public DseUtil_GetRandomNumber
.public Dse_SetError
.public Dse_SetError2
.public FileInit
.public GetTimer0Control
.public SMD_EVENTS_FUN_TABLE
.public SoundEnvelopeParameters_CheckValidity
.public SoundEnvelopeParameters_Reset
.public SoundEnvelope_ForceVolume
.public SoundEnvelope_Release
.public SoundEnvelope_Reset
.public SoundEnvelope_SetParameters
.public SoundEnvelope_Stop
.public SoundEnvelope_Stop2
.public SoundEnvelope_Tick
.public SoundLfoBank_Reset
.public SoundLfoBank_Set
.public SoundLfoBank_SetConstEnvelopes
.public SoundLfoBank_Tick
.public StartThread
.public UpdateTrackVolumeEnvelopes
.public _020B0B7C
.public _020B0D50
.public _020B1310
.public _020B1394
.public _022B7370
.public _022B7380
.public _022B7388
.public _022B7988
.public _022B7990
.public _022B7994
.public _022B7998
.public _022B799C
.public _022B7A30
.public _022B7A3E
.public _022B7A6C
.public _022B8330
.public _022B9044
.public _022B910C
.public _022B9120
.public _022B9130
.public _022B9208
.public _022B9234
.public _022B9300
.public _022B9484
.public _022B94BC
.public _022B9584
.public _fdiv
.public _ffltu
.public _fls
.public _fmul
.public _s32_div_f
.public _u32_div_f
.public sub_0206C688
.public sub_02079800
.public sub_02079888
.public sub_02079940
.public sub_02079B14
.public sub_0207A2DC
.public sub_0207A300
.public sub_0207C8B8
.public sub_0207C8E0
.public sub_0207C944
.public sub_0207C984
.public sub_0207CA04
.public sub_0207CA24
.public sub_0207CA4C
.public sub_0207CA6C
.public sub_0207CAB8
.public sub_0207CAE0
.public sub_0207CB54
.public sub_0207CD44
.public sub_0207CF14
.public sub_0207D470
.public sub_0207F6C4
.public sub_0207F70C
.public sub_0207F748
.public sub_0207F808
.public sub_0207F828

File diff suppressed because it is too large Load Diff

10126
asm/main_0206C9BC.s Normal file

File diff suppressed because it is too large Load Diff

8
include/main_0206C98C.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef PMDSKY_MAIN_0206C98C_H
#define PMDSKY_MAIN_0206C98C_H
void DseMem_Quit(void);
void* DseMem_AllocateUser(u32 size, u32 alignment);
void* DseMem_Allocate(u32 size, u32 alignment, u32 label);
#endif //PMDSKY_MAIN_0206C98C_H

View File

@ -45,8 +45,14 @@ struct sound_envelope
struct driver_work {
u8 fill0[0x27];
s16 usec_per_sound_driver_tick;
u8 fill1[0x6c8];
void* heap_start;
void* heap_end;
void* heap_size;
};
extern struct driver_work DRIVER_WORK;
void SoundEnvelope_Reset(struct sound_envelope *envelope);
void SoundEnvelopeParameters_Reset(struct sound_envelope_parameters *parameters);
void SoundEnvelopeParameters_CheckValidity(struct sound_envelope_parameters *parameters);

View File

@ -2,7 +2,6 @@
extern u16 MUSIC_DURATION_LOOKUP_TABLE_1[128];
extern u32 MUSIC_DURATION_LOOKUP_TABLE_2[128];
extern struct driver_work DRIVER_WORK;
void SoundEnvelope_Reset(struct sound_envelope *envelope)
{

View File

@ -53,6 +53,8 @@ Static main
Object asm/main_02054C24.o
Object src/pokemon.o
Object asm/main_02058F24.o
Object src/main_0206C98C.o
Object asm/main_0206C9BC.o
Object lib/DSE/src/dc_envelope.o
Object lib/DSE/src/dc_lfo.o
Object lib/DSE/asm/dc_lfo_1.o

16
src/main_0206C98C.c Normal file
View File

@ -0,0 +1,16 @@
#include "main_0206C98C.h"
#include "dc_envelope.h"
void DseMem_Quit(void)
{
DRIVER_WORK.heap_start=0;
DRIVER_WORK.heap_end=0;
DRIVER_WORK.heap_size=0;
}
void* DseMem_AllocateUser(u32 size, u32 alignment)
{
DseMem_Allocate(size,alignment,0x72657375);
}
void* DseMem_Allocate(u32 size, u32 alignment, u32 label);