Home › Forums › Destiny of an Emperor › Über ROM Expansion
- This topic has 38 replies, 3 voices, and was last updated 11 years, 2 months ago by MiDKnighT.
-
AuthorPosts
-
January 23, 2013 at 11:33 pm #45002sonic.penguinModerator
Does this mean we get our dedicated "taunt" text bank? There are 48 battles right? So at least 96 lines for openers and closers. Some battles I feel could use a whole paragraph but meh, whatever you can figure out would be nice.
Im assuming portrait banks would move to the new area as well once you get it working.
Looking forward to some new tactics and gameplay additions :)
January 24, 2013 at 1:17 am #45003MiDKnighTModeratorQuote:Does this mean we get our dedicated "taunt" text bank? There are 48 battles right? So at least 96 lines for openers and closers. Some battles I feel could use a whole paragraph but meh, whatever you can figure out would be nice.Yes. Duel text takes up 32 lines and the rest will be free. An entire page of 2 text banks 255 lines each. More than enough for every battle in the game. With that kind of space you could have a couple of bad guys tell you their life story before battle.
Quote:Im assuming portrait banks would move to the new area as well once you get it working.No need to move portraits. I was going to keep that part as is. But I will move the last sprite page from 1E to one of the new pages since lud and I were using 1E for enhancements.
The reason we don't have to move graphics is because with a new and valid ROM format we should be able to access the memory on all the new ROM pages unlike before.
January 24, 2013 at 4:58 pm #45004MiDKnighTModeratorSolved my text bank issue. New text bank 0A now works. Now will test bank 0B.
January 24, 2013 at 5:08 pm #45005MiDKnighTModeratorNew text bank 0B is working! I will pass the details on to Niahak.
January 24, 2013 at 10:41 pm #45006sonic.penguinModeratorBoo! So you're gonna torchure me by not releasing it yet!? Boo!
January 24, 2013 at 10:42 pm #45007MiDKnighTModeratorQuote:Boo! So you're gonna torchure me by not releasing it yet!? Boo!It's all there in the first post but you won't be able to use DoaEditor on your ROM if you do it because DoaEditor will chop it until it can handle a 1MB ROM.
January 24, 2013 at 10:45 pm #45008sonic.penguinModeratorAh, I see your logic! Can't wait…. I've chopped so much villager text out that I have had some villagers saying the same things as others just so I can regain some text space!
January 25, 2013 at 2:29 am #45009NiahakModeratorHey MiDKnighT,
I've followed your directions (unless I made a typo somewhere in here) and I tried to expand a stock DOAE ROM, but it doesn't seem to work in FCEUDX. Can you take a look?
http://www.niahak.org/images/DOAE/DoaE_exp_test.zip
Here's the raw code I'm using in expansion. I've tried it with and without the earlier tweaks (additional portraits + sprites). I think it should be pretty readable – InjectIntoLocation is a shortcut that converts a hex string to bytes, then puts them into the location given.
entireRom is the original ROM, expandedRom is the new one of total size 0x100010 (same as the file you sent me).
Code:Array.Copy(entireRom, 0, expandedRom, 0, entireRom.Length);Array.Copy(entireRom, 0x3c010, expandedRom, 0x7c010, 0x4000);
Array.Copy(entireRom, 0x3c010, expandedRom, 0xfc010, 0x4000);string header = "4E45531A400053F00000000000000000";
InjectIntoLocation(header, expandedRom, 0);
InjectIntoLocation("0818A02E", expandedRom, 0x325E0);string byteString1 = "EED9FFA90E20B7C4A9008DFEBF608515A90F8546A515EAEAEAEAEAEAEA60A5438543854485E" +
"DA90185EBA5ED20B7C4EAEAEAEAEAEAEAEAEAEAA90085EB60A90CD0DEA90DD0DAA90ED0D648EAEAF0072060C4A90" +
"085EB6820907F608515E646C908B0016038E9084C6EC400A90CD006C5";
InjectIntoLocation(byteString1, expandedRom, 0x7C470);string byteString2 = "02900420BBC4EA";
InjectIntoLocation(byteString2, expandedRom, 0x7D140);string pageSwitchCode = "5AE400004804000008AC79EED8FF79EEA03FB9208099907F8810F7A90E20B7C4" +
"6000000000000000000000000000000085EDC91F9006A902484CA07FA90048EAA5ED0AC93F9002E94048" +
"A9068D0080688D018018690148A9078D0080688D0180A9008D0080688D018060000000000000";
InjectIntoLocation(pageSwitchCode, expandedRom, 0x80000);string byteString3 = "EED9FFA90E20B7C4A9008DFEBF608515A90F8546A515EAEAEAEAEAEAEA60A543" +
"8543854485EDA90185EBA5ED20B7C4EAEAEAEAEAEAEAEAEAEAA90085EB60A90CD0DEA90DD0DAA90ED" +
"0D648EAEAF0072060C4A90085EB6820907F608515E646C908B0016038E9084C6EC400A90CD006C5";
InjectIntoLocation(byteString3, expandedRom, 0xFC470);string byteString4 = "02900420BBC4EA";
InjectIntoLocation(byteString4, expandedRom, 0xFD140);string byteString5 = "A9408D1740200080EAEA2068C4A9008D";
InjectIntoLocation(byteString5, expandedRom, 0xFF000);string newLoadingInstructions = "5AE400004804000008AC79EED8FF79EE";
InjectIntoLocation(newLoadingInstructions, expandedRom, 0x100000);byte[] ZeroBytes = new byte[0x4000];
Array.Copy(ZeroBytes, 0, expandedRom, 0x3c010, 0x4000);
string textBankPart1 = "809DBCCDE3FF1A354F637588C5D5F10421304D657EA1C4DC04214058687986A1" +
"A78A8A8A8A8A8A8A8A8A8A8A8A8A8A8A";
InjectIntoLocation(textBankPart1, expandedRom, 0x3C010);string textBankPart2 = "8383838383838484848484848484848585858585858585858686868686868686" +
"86ABABABABABABABABABABABABABABAB";
InjectIntoLocation(textBankPart2, expandedRom, 0x3C210);string textBankContents = "15382D3490A266F0F2342DFBCE63F00A38E0ECF0EB322D34F0DE3433ECF462FB" +
"3534343B90A62EF0F42D3F3D342E2EFBD0E9D0EF313B3033347AFDFFF4A0A9D0B1F0E83EA01FD0B2F0F063FDFFCEB3D0" +
"A9312D3065340AFBD026F0E8A02DF57B0AFDFFF4A0A33130333B680A663E643D333433FBF0EB90A63364343B63FDFFF5" +
"0A37E0DE353B343390A63364343BFBD0EB2F342D2D3E2D63FDFFF40A37E0DE353B343390A63364343BFBD0EB2F342D2D" +
"3E2D63FDFF1F342DF0F43F2EB0A9AE28FBD059D0E835303234FBF47A0AFDFFF4A0A31A181B1B1413B0EBA0A63364343B" +
"7AFDFFF5A0A2F4A089D0EB323E3C31F0F2CEB0FDFF18EAF5FBF0ACF0E32F80E6F01A34337AFDFFFBF4612EB0F03DFBD0" +
"653B3E2E2F0AFB32F0EC353833343D3234B0EBB0B763FDF0A568A096333E64312F90B33031383BF0EA68FBD0E83B3430" +
"33EEB0FDFFF580A3653832F0E82D383E642E7AFDFFF4FBF0512E90E8332D3066FB2EEE2F2E7B0A0A1710171017107AFD" +
"FFF5612EB0F03DFB3630D0EB2E3F3434337AFDFFF462A096D060F0F03DA083D0B4300A2D34303BFDF0BF2D383E2D7AFB" +
"FFF5612EFBF0F03D0A2DF0AA687AFDFF189083323B34303DFBD060313B3E3E33A066D0EF313B3033347AFDFFFBF5A0A2" +
"F4A06531F0F22F3B343390E8300A332D30667AFDFFF5A0A2F48065313E2F37B0E6343D0A663E643D3334337AFDFF103B" +
"CE86643DF0F42DF0F03362FBF4FBD0A3323B34302D3B68FDF0BC353E6436372FEC103BCE86643DF0F42DF0F03362FBF5" +
"FBD0A3323B34302D3B68FDF0BC353E6436372FECF5AEAEFBF0E32F0A3F3B30680AFBD0523630F0F02E63FDFFF4FB1890" +
"65F0E62F2F342DFBF0372E90E8333E62FDF059B01AF0EB36FBD060302D3C38342E7AFDFFF462FB0EF0560EB0E1809AD0" +
"E86638343B330A300A313B3033347AFDFFD05CF0E1A074F0F43F3F343D2E0A66F0E53DFDD0A9353032340AFBF57AFDFF" +
"F462FBD0A9353E6436372FFBD059300A3237383B337AFDFFF4FBD0A9353E6436372FFBF06AEBFDFFF0BA8E7633F0B12E" +
"FBF0E8A02DF57BFDFFF4FBD076F0A2A02DF0F07AFDFF180A3237F0AA343D3634B0A63462FBF4A0E8300A3364343B63FD" +
"FF313B3037FBFF000000000000000000";InjectIntoLocation(textBankContents, expandedRom, 0x3C390);
string duelCodePart1 = "19D0819D2062A011A9004CB0864CD082";
InjectIntoLocation(duelCodePart1, expandedRom, 0x42A0);string duelCodePart2 = "20A0868514A90A";
InjectIntoLocation(duelCodePart2, expandedRom, 0x46C0);string duelCodePart3 = "20E08A200DD1000A20F08A600000000020E08A200DD1010A20F08A20A08E6000" +
"20E08A200DD1020A20F08A20A08E600020E08A200DD1030A20F08A20F38F600020E08A200DD1040A20F08A20F38F6000" +
"20E08A200DD1050A20F08A600000000020E08A200DD1060A20F08A600000000020E08A200DD1070A20F08A20C08E6000" +
"20E08A200DD1080A20F08A600000000020E08A200DD1090A20F08A600000000020E08A200DD10A0A20F08A20A08E6000" +
"20E08A200DD10B0A20F08A600000000020E08A200DD10C0A20F08A600000000020E08A200DD10D0A20F08A20A08E6000" +
"20E08A200DD10E0A20F08A600000000020E08A200DD10F0A20F08A20A08E600020E08A200DD1100A20F08A6000000000" +
"20E08A200DD1110A20F08A20A08E600020E08A200DD1120A20F08A600000000020E08A200DD1130A20F08A6000000000" +
"20E08A200DD1140A20F08A600000000020E08A200DD1150A20F08A600000000020E08A200DD1160A20F08A20A08E6000" +
"20E08A200DD1170A20F08A20A08E600020E08A200DD1180A20F08A600000000020E08A200DD1190A20F08A6000000000" +
"20E08A200DD11A0A20F08A600000000020E08A200DD11B0A20F08A600000000020E08A200DD11C0A20F08A6000000000" +
"20E08A200DD11D0A20F08A600000000020E08A200DD11E0A20F08A600000000020E08A200DD11F0A20F08A6000000000";
InjectIntoLocation(duelCodePart3, expandedRom, 0x4B10);Thanks!
January 25, 2013 at 3:36 am #45010MiDKnighTModeratorMy bad, I had a stack issue. For some reason my modded ROM got past it but a clean one didn't. Correction:
0x80000:
5AE400004804000008AC79EED8FF79EE
A03FB9208099907F8810F7A90E4CB7C4
00000000000000000000000000000000
85EDC91F9006A902484CA07FA90048EA
A5ED0AC93F9002E94048A9068D008068
8D018018690148A9078D0080688D0180
A9008D0080688D018060000000000000
0xFF000:
A9408D1740EAEA2000802068C4A9008D
EDIT: This will work but it's not ideal. Checking for a better way.
EDIT2: OK added one more tweek above. This should completely fix it. I updated the first post with the correct data.
January 25, 2013 at 3:55 am #45011MiDKnighTModeratorAlso, regarding the portrait and sprite code, it should be exactly like it was for the 500k expansion with just this change/addition:
0x325E0 (switch last sprite page from 1E to 2E):
0818A02E
January 27, 2013 at 7:15 pm #45012sonic.penguinModeratorWhat was the address for the original game sprites? I forgot what it was since I haven't worked on sprites in a bit. I want to overwrite some of the games originals :P
Currently, I dont have any issues w/ the expansion
January 27, 2013 at 8:08 pm #45013MiDKnighTModeratorIt's in the guide:
Page 00 – Starting Address: 0x10
0x00000-0x0008F: Header
0x00090-0x0408F: Sprites
Page 01 – Starting Address: 0x4010
0x04010-0x05A0F: Japanese Text Graphics (A.I., etc.. enhancements)
0x05A10-0x0808F: Sprites
January 27, 2013 at 8:09 pm #45014sonic.penguinModeratorOkay, I wasn't sure if that was it or not. Also, dueling is totally messed up now when the text is used.
January 27, 2013 at 8:52 pm #45015sonic.penguinModeratorOkay, so what is messing up is the officer response once they have been challenged to a duel. It responds "N oosaid" and then freezes.
January 27, 2013 at 10:25 pm #45016MiDKnighTModeratorIt's using the new text bank with the standard responses. Maybe I didn't copy something right. Will check.
-
AuthorPosts
- You must be logged in to reply to this topic.