Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some mkldscript improvements #7

Merged
merged 4 commits into from
May 4, 2022

Conversation

Dragorn421
Copy link

Implementation of some of the things I suggested in my review in zeldaret#1204

Apart from the usage sentences, this changes the build/ldscript.txt from (excerpt)

	_buffersSegmentRomStartTemp = _RomSize;
	_buffersSegmentRomStart = _buffersSegmentRomStartTemp;
	..buffers : AT(_buffersSegmentRomStart)
	{
		_buffersSegmentStart = .;

		build/segments/buffers.o (.text)
		build/segments/buffers.o (.data)
		build/segments/buffers.o (.rodata)
		_buffersSegmentOvlStart = .;
		_buffersSegmentOvlEnd = .;
		_buffersSegmentOvlSize = ABSOLUTE(_buffersSegmentOvlEnd - _buffersSegmentOvlStart);
	}
	_buffersSegmentRomSize = ABSOLUTE(_buffersSegmentOvlEnd - _buffersSegmentTextStart);
	_RomSize += _buffersSegmentRomSize;
	_buffersSegmentRomEndTemp = _RomSize;
	_buffersSegmentRomEnd = _buffersSegmentRomEndTemp;
	..buffers.bss (NOLOAD) :
	{
		build/segments/buffers.o (.bss)
	}
		_buffersSegmentEnd = .;
		_buffersSegmentSize = ABSOLUTE(_buffersSegmentEnd - _buffersSegmentStart);


	_ovl_titleSegmentRomStartTemp = _RomSize;
	_ovl_titleSegmentRomStart = _ovl_titleSegmentRomStartTemp;
	..ovl_title 0x80800000 : AT(_ovl_titleSegmentRomStart)
	{
		_ovl_titleSegmentStart = .;

		build/segments/ovl_title.o (.text)
		build/segments/ovl_title.o (.data)
		build/segments/ovl_title.o (.rodata)
		_ovl_titleSegmentOvlStart = .;
		build/segments/ovl_title.reloc.o (.ovl)
		_ovl_titleSegmentOvlEnd = .;
		_ovl_titleSegmentOvlSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentOvlStart);
	}
	_ovl_titleSegmentRomSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentTextStart);
	_RomSize += _ovl_titleSegmentRomSize;
	_ovl_titleSegmentRomEndTemp = _RomSize;
	_ovl_titleSegmentRomEnd = _ovl_titleSegmentRomEndTemp;
	..ovl_title.bss (NOLOAD) :
	{
		build/segments/ovl_title.o (.bss)
	}
		_ovl_titleSegmentEnd = .;
		_ovl_titleSegmentSize = ABSOLUTE(_ovl_titleSegmentEnd - _ovl_titleSegmentStart);

to

	_buffersSegmentRomStartTemp = _RomSize;
	_buffersSegmentRomStart = _buffersSegmentRomStartTemp;
	_buffersSegmentStart = .;

	..buffers _buffersSegmentStart : AT(_buffersSegmentRomStart)
	{
		build/segments/buffers.o (.text)
		build/segments/buffers.o (.data)
		build/segments/buffers.o (.rodata)
	}

	_buffersSegmentRomSize = ABSOLUTE(_buffersSegmentRoDataEnd - _buffersSegmentTextStart);
	_RomSize += _buffersSegmentRomSize;
	_buffersSegmentRomEndTemp = _RomSize;
	_buffersSegmentRomEnd = _buffersSegmentRomEndTemp;

	..buffers.bss (NOLOAD) :
	{
		build/segments/buffers.o (.bss)
	}

	_buffersSegmentEnd = .;
	_buffersSegmentSize = ABSOLUTE(_buffersSegmentEnd - _buffersSegmentStart);


	_ovl_titleSegmentRomStartTemp = _RomSize;
	_ovl_titleSegmentRomStart = _ovl_titleSegmentRomStartTemp;
	_ovl_titleSegmentStart = 0x80800000;

	..ovl_title _ovl_titleSegmentStart : AT(_ovl_titleSegmentRomStart)
	{
		build/segments/ovl_title.o (.text)
		build/segments/ovl_title.o (.data)
		build/segments/ovl_title.o (.rodata)

		_ovl_titleSegmentOvlStart = .;
		build/segments/ovl_title.reloc.o (.ovl)
		_ovl_titleSegmentOvlEnd = .;
		_ovl_titleSegmentOvlSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentOvlStart);
	}

	_ovl_titleSegmentRomSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentTextStart);
	_RomSize += _ovl_titleSegmentRomSize;
	_ovl_titleSegmentRomEndTemp = _RomSize;
	_ovl_titleSegmentRomEnd = _ovl_titleSegmentRomEndTemp;

	..ovl_title.bss (NOLOAD) :
	{
		build/segments/ovl_title.o (.bss)
	}

	_ovl_titleSegmentEnd = .;
	_ovl_titleSegmentSize = ABSOLUTE(_ovl_titleSegmentEnd - _ovl_titleSegmentStart);

diff:

 	_buffersSegmentRomStartTemp = _RomSize;
 	_buffersSegmentRomStart = _buffersSegmentRomStartTemp;
-	..buffers : AT(_buffersSegmentRomStart)
-	{
-		_buffersSegmentStart = .;
+	_buffersSegmentStart = .;
 
+	..buffers _buffersSegmentStart : AT(_buffersSegmentRomStart)
+	{
 		build/segments/buffers.o (.text)
 		build/segments/buffers.o (.data)
 		build/segments/buffers.o (.rodata)
-		_buffersSegmentOvlStart = .;
-		_buffersSegmentOvlEnd = .;
-		_buffersSegmentOvlSize = ABSOLUTE(_buffersSegmentOvlEnd - _buffersSegmentOvlStart);
 	}
-	_buffersSegmentRomSize = ABSOLUTE(_buffersSegmentOvlEnd - _buffersSegmentTextStart);
+
+	_buffersSegmentRomSize = ABSOLUTE(_buffersSegmentRoDataEnd - _buffersSegmentTextStart);
 	_RomSize += _buffersSegmentRomSize;
 	_buffersSegmentRomEndTemp = _RomSize;
 	_buffersSegmentRomEnd = _buffersSegmentRomEndTemp;
+
 	..buffers.bss (NOLOAD) :
 	{
 		build/segments/buffers.o (.bss)
 	}
-		_buffersSegmentEnd = .;
-		_buffersSegmentSize = ABSOLUTE(_buffersSegmentEnd - _buffersSegmentStart);
+
+	_buffersSegmentEnd = .;
+	_buffersSegmentSize = ABSOLUTE(_buffersSegmentEnd - _buffersSegmentStart);
 
 
 	_ovl_titleSegmentRomStartTemp = _RomSize;
 	_ovl_titleSegmentRomStart = _ovl_titleSegmentRomStartTemp;
-	..ovl_title 0x80800000 : AT(_ovl_titleSegmentRomStart)
-	{
-		_ovl_titleSegmentStart = .;
+	_ovl_titleSegmentStart = 0x80800000;
 
+	..ovl_title _ovl_titleSegmentStart : AT(_ovl_titleSegmentRomStart)
+	{
 		build/segments/ovl_title.o (.text)
 		build/segments/ovl_title.o (.data)
 		build/segments/ovl_title.o (.rodata)
+
 		_ovl_titleSegmentOvlStart = .;
 		build/segments/ovl_title.reloc.o (.ovl)
 		_ovl_titleSegmentOvlEnd = .;
 		_ovl_titleSegmentOvlSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentOvlStart);
 	}
+
 	_ovl_titleSegmentRomSize = ABSOLUTE(_ovl_titleSegmentOvlEnd - _ovl_titleSegmentTextStart);
 	_RomSize += _ovl_titleSegmentRomSize;
 	_ovl_titleSegmentRomEndTemp = _RomSize;
 	_ovl_titleSegmentRomEnd = _ovl_titleSegmentRomEndTemp;
+
 	..ovl_title.bss (NOLOAD) :
 	{
 		build/segments/ovl_title.o (.bss)
 	}
-		_ovl_titleSegmentEnd = .;
-		_ovl_titleSegmentSize = ABSOLUTE(_ovl_titleSegmentEnd - _ovl_titleSegmentStart);
+
+	_ovl_titleSegmentEnd = .;
+	_ovl_titleSegmentSize = ABSOLUTE(_ovl_titleSegmentEnd - _ovl_titleSegmentStart);

@Thar0
Copy link
Owner

Thar0 commented May 4, 2022

Thanks! 🎉

@Thar0 Thar0 merged commit ad30674 into Thar0:segments May 4, 2022
@Dragorn421 Dragorn421 deleted the segments_mkldscript branch May 4, 2022 15:35
Thar0 pushed a commit that referenced this pull request Jul 30, 2022
* First attempt

* More

* rename

* more sound -> sfx / sound effect (#7)

* PR Suggestions

* PR Suggestions

* Small fix

Co-authored-by: Dragorn421 <[email protected]>
Co-authored-by: fig02 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants