mirror of
				https://github.com/coop-deluxe/sm64coopdx.git
				synced 2025-10-30 08:01:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _SEGMENTS_H
 | 
						|
#define _SEGMENTS_H
 | 
						|
 | 
						|
#ifdef BETTERCAMERA
 | 
						|
#define USE_EXT_RAM
 | 
						|
#endif
 | 
						|
 | 
						|
/*
 | 
						|
 * Memory addresses for segments. Ideally, this header file would not be
 | 
						|
 * needed, and the addresses would be defined in sm64.ld and linker-inserted
 | 
						|
 * into C code. However, there are some cases where that would not match, where
 | 
						|
 * addresses are loaded using lui/ori rather than lui/addiu.
 | 
						|
 * To avoid duplication, this file is included from sm64.ld. We make sure not
 | 
						|
 * to cast the addresses to pointers in this file, since that would be invalid
 | 
						|
 * linker script syntax.
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef USE_EXT_RAM /* Default: Runs out of memory quickly when importing custom assets. */
 | 
						|
 | 
						|
#define SEG_POOL_START   0x8005C000
 | 
						|
#define SEG_POOL_END     SEG_BUFFERS
 | 
						|
 | 
						|
#define SEG_GODDARD      0x8016F000
 | 
						|
 | 
						|
#define SEG_BUFFERS      0x801C1000
 | 
						|
 | 
						|
#ifdef VERSION_EU
 | 
						|
#define SEG_MAIN         0x80241800 // TODO: Investigate why it's different?
 | 
						|
#elif defined(VERSION_SH)
 | 
						|
#define SEG_MAIN         0x80249000
 | 
						|
#else
 | 
						|
#define SEG_MAIN         0x80246000
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef VERSION_EU
 | 
						|
#define SEG_ENGINE       0x8036FF00
 | 
						|
#else
 | 
						|
#define SEG_ENGINE       0x80378800
 | 
						|
#endif
 | 
						|
 | 
						|
#define SEG_FRAMEBUFFERS 0x8038F800
 | 
						|
 | 
						|
#else /* Use Expansion Pak space for pool. */
 | 
						|
 | 
						|
/*
 | 
						|
 * Workaround for running out of pool space due to
 | 
						|
 * importing large custom content.
 | 
						|
 */
 | 
						|
 | 
						|
#define SEG_BUFFERS      0x8005C000 // 0x0085000 in size
 | 
						|
#ifdef BETTERCAMERA
 | 
						|
#define SEG_MAIN         0x800F1000 // 0x1328000 in size
 | 
						|
#define SEG_ENGINE       0x80223800 // 0x0017000 in size
 | 
						|
#define SEG_FRAMEBUFFERS 0x8023A800 // 0x0070800 in size
 | 
						|
#define SEG_POOL_START   0x802AB000 // 0x0165000 in size
 | 
						|
#else
 | 
						|
#define SEG_MAIN         0x800E1000 // 0x1328000 in size
 | 
						|
#define SEG_ENGINE       0x80213800 // 0x0017000 in size
 | 
						|
#define SEG_FRAMEBUFFERS 0x8022A800 // 0x0070800 in size
 | 
						|
#define SEG_POOL_START   0x8029B000 // 0x0165000 in size
 | 
						|
#endif
 | 
						|
#define SEG_POOL_END     0x80800000
 | 
						|
#define SEG_POOL_END_4MB 0x80400000 // For the error message screen enhancement.
 | 
						|
#define SEG_GODDARD      SEG_POOL_START + 0x113000
 | 
						|
#endif
 | 
						|
 | 
						|
#endif // _SEGMENTS_H
 |