Alchemy
Loading...
Searching...
No Matches

ram_buffer.h

Go to the documentation of this file.
1#ifndef ALCHEMY_RAM_BUFFER_H
2#define ALCHEMY_RAM_BUFFER_H
3
4/// @file
5/// The work pointers in the gWorkSlot table, by name.
6
7#include "types.h"
8#include "version.h"
9
10#define Ram_MapCellBuffer FIXED_ADDRESS((u8 *), 0x02010000, gMapCellBuffer)
11#define Ram_DecodeBuffer FIXED_ADDRESS((u8 *), 0x0201c000, gDecodeBuffer)
12#define Ram_MapBlocks FIXED_ADDRESS((u8 *), 0x02020000, gMapBlocks)
13#define Ram_MapCollision FIXED_ADDRESS((u8 *), 0x0202c000, gMapCollision)
14#define Ram_BgTileBuffer FIXED_ADDRESS((u8 *), 0x02038000, gBgTileBuffer)
15
16#define Ram_ActorSpriteSlots \
17 FIXED_ADDRESS((u8 *), 0x02018000, gActorSpriteSlots)
18
19#define Ram_SoundMixer FIXED_ADDRESS((u8 *), 0x03007000, SoundDriver_Mixer)
20
21#define Ram_IwramHeapEnd \
22 FIXED_ADDRESS((u8 *), 0x03007800, gCartridgeResetMarker)
23
24#define Ram_FrameWaitStackTop \
25 FIXED_ADDRESS((u8 *), 0x03007a00, gFrameWaitStackTop)
26
27#if (LANGUAGE == LANGUAGE_GERMAN)
28#define Ram_BgScroll FIXED_ADDRESS((u8 *), 0x03001ae0, gBgScroll)
29#define Ram_VramBlockCache FIXED_ADDRESS((u8 *), 0x03001b20, gVramBlockCache)
30/* FAKEMATCH: Ram_WorkSlot stays gWorkSlot's linked address as a constant
31 * (build-checked): read through gWorkSlot, effect.c
32 * (BattleFx_HideBg1AndRestoreBackdrop, BattleFx_RunSpiderWeb) and intro.c
33 * (Title_UpdateIntroSprites, Title_LoadIntroBackgrounds) differ in tbs-ja and
34 * tbs-en. */
35#define Ram_WorkSlot FIXED_ADDRESS((void **), 0x03001e60, gWorkSlot)
36#else
37#define Ram_BgScroll FIXED_ADDRESS((u8 *), 0x03001ad0, gBgScroll)
38#define Ram_VramBlockCache FIXED_ADDRESS((u8 *), 0x03001b10, gVramBlockCache)
39/* FAKEMATCH: Ram_WorkSlot stays gWorkSlot's linked address as a constant
40 * (build-checked): read through gWorkSlot, effect.c
41 * (BattleFx_HideBg1AndRestoreBackdrop, BattleFx_RunSpiderWeb) and intro.c
42 * (Title_UpdateIntroSprites, Title_LoadIntroBackgrounds) differ in tbs-ja and
43 * tbs-en. */
44#define Ram_WorkSlot FIXED_ADDRESS((void **), 0x03001e50, gWorkSlot)
45#endif
46
47// Work pointers in the gWorkSlot table.
48#define Ram_MapWork ((void **)&gWorkSlot[8])
49#define Ram_CameraWork ((void **)&gWorkSlot[12])
50#define Ram_EventWork ((void **)&gWorkSlot[27])
51#define Ram_DisplayWork ((void **)&gWorkSlot[31])
52#define Ram_ActorEffectWork ((void **)&gWorkSlot[36])
53#define Ram_Disp ((void **)&gWorkSlot[42])
54#define Ram_EffectWork ((void **)&gWorkSlot[56])
55
56#define Ram_SceneMapStateOffset FIXED_OFFSET(0xc, gFieldBlendWork, gEventWork)
57
58#endif
The integer types, TRUE, UNUSED and the fixed-address macros.
The patch levels: our groups of the measured changes from the Japanese release.