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 11, 2013 at 3:48 pm #6699MiDKnighTModerator
This will be the ROM expansion to end all ROM expansions which means the ROM will be
4MB1MB (apparently 500k is tops for the MMC1 mapper and 1MB is tops for pretty much all other mappers that are usable).To get to 1MB it seems to the best way may be to change the mapper to MMC3 then switch to mapper 245.
MMC3: http://wiki.nesdev.com/w/index.php/MMC3
Mapper 245: http://wiki.nesdev.com/w/index.php/INES_Mapper_245
First steps:
1. Back up the ROM.
2. Open your hex editor and expand the ROM to 1MB bytes. (ie…add 0's to the end until the last byte is 10000F).
4. Copy the system page, page 0F (0x3C010-0x4000F) to pages 1F (0x7C010-0x8000F) and 3F (0xFC010-0x10000F).
5. Rom Expansion and Engine Changes:
0x0 (new header):
4E45531A400053F00000000000000000
0x325E0 (switch last sprite page from 1E to 2E):
0818A02E
0x7C470:
EED9FFA90E20B7C4A9008DFEBF608515
A90F8546A515EAEAEAEAEAEAEA60A543
8543854485EDA90185EBA5ED20B7C4EA
EAEAEAEAEAEAEAEAEAA90085EB60A90C
D0DEA90DD0DAA90ED0D648EAEAF00720
60C4A90085EB6820907F608515E646C9
08B0016038E9084C6EC400A90CD006C5
0x7D140:
02900420BBC4EA
0x80000 (init and page switch code):
5AE400004804000008AC79EED8FF79EE
A03FB9208099907F8810F7A90E4CB7C4
00000000000000000000000000000000
85EDC91F9006A902484CA07FA90048EA
A5ED0AC93F9002E94048A9068D008068
8D018018690148A9078D0080688D0180
A9008D0080688D018060000000000000
0xFC470:
EED9FFA90E20B7C4A9008DFEBF608515
A90F8546A515EAEAEAEAEAEAEA60A543
8543854485EDA90185EBA5ED20B7C4EA
EAEAEAEAEAEAEAEAEAA90085EB60A90C
D0DEA90DD0DAA90ED0D648EAEAF00720
60C4A90085EB6820907F608515E646C9
08B0016038E9084C6EC400A90CD006C5
0xFD140:
02900420BBC4EA
0xFF000:
A9408D1740EAEA2000802068C4A9008D
0x100000 (new loading instructions):
5AE400004804000008AC79EED8FF79EE
New Text Banks:
1. Zero out page 0F (old system page, 0x3C010-0x4000F)
2. Put the new text bank there (including duel text):
0x3C010:
809DBCCDE3FF1A354F637588C5D5F104
21304D657EA1C4DC04214058687986A1
A78A8A8A8A8A8A8A8A8A8A8A8A8A8A8A
0x3C210:
83838383838384848484848484848485
85858585858585858686868686868686
86ABABABABABABABABABABABABABABAB
0x3C390:
15382D3490A266F0F2342DFBCE63F00A
38E0ECF0EB322D34F0DE3433ECF462FB
3534343B90A62EF0F42D3F3D342E2EFB
D0E9D0EF313B3033347AFDFFF4A0A9D0
B1F0E83EA01FD0B2F0F063FDFFCEB3D0
A9312D3065340AFBD026F0E8A02DF57B
0AFDFFF4A0A33130333B680A663E643D
333433FBF0EB90A63364343B63FDFFF5
0A37E0DE353B343390A63364343BFBD0
EB2F342D2D3E2D63FDFFF40A37E0DE35
3B343390A63364343BFBD0EB2F342D2D
3E2D63FDFF1F342DF0F43F2EB0A9AE28
FBD059D0E835303234FBF47A0AFDFFF4
A0A31A181B1B1413B0EBA0A63364343B
7AFDFFF5A0A2F4A089D0EB323E3C31F0
F2CEB0FDFF18EAF5FBF0ACF0E32F80E6
F01A34337AFDFFFBF4612EB0F03DFBD0
653B3E2E2F0AFB32F0EC353833343D32
34B0EBB0B763FDF0A568A096333E6431
2F90B33031383BF0EA68FBD0E83B3430
33EEB0FDFFF580A3653832F0E82D383E
642E7AFDFFF4FBF0512E90E8332D3066
FB2EEE2F2E7B0A0A1710171017107AFD
FFF5612EB0F03DFB3630D0EB2E3F3434
337AFDFFF462A096D060F0F03DA083D0
B4300A2D34303BFDF0BF2D383E2D7AFB
FFF5612EFBF0F03D0A2DF0AA687AFDFF
189083323B34303DFBD060313B3E3E33
A066D0EF313B3033347AFDFFFBF5A0A2
F4A06531F0F22F3B343390E8300A332D
30667AFDFFF5A0A2F48065313E2F37B0
E6343D0A663E643D3334337AFDFF103B
CE86643DF0F42DF0F03362FBF4FBD0A3
323B34302D3B68FDF0BC353E6436372F
EC103BCE86643DF0F42DF0F03362FBF5
FBD0A3323B34302D3B68FDF0BC353E64
36372FECF5AEAEFBF0E32F0A3F3B3068
0AFBD0523630F0F02E63FDFFF4FB1890
65F0E62F2F342DFBF0372E90E8333E62
FDF059B01AF0EB36FBD060302D3C3834
2E7AFDFFF462FB0EF0560EB0E1809AD0
E86638343B330A300A313B3033347AFD
FFD05CF0E1A074F0F43F3F343D2E0A66
F0E53DFDD0A9353032340AFBF57AFDFF
F462FBD0A9353E6436372FFBD059300A
3237383B337AFDFFF4FBD0A9353E6436
372FFBF06AEBFDFFF0BA8E7633F0B12E
FBF0E8A02DF57BFDFFF4FBD076F0A2A0
2DF0F07AFDFF180A3237F0AA343D3634
B0A63462FBF4A0E8300A3364343B63FD
FF313B3037FBFF000000000000000000
To tell duel code to use text bank 0A (instead of 03):
0x42A0:
19D0819D2062A011A9004CB0864CD082
0x4690:
2862EAA90AA6BDE0009002A90B4CB086
0x46C0:
20A0868514A90A
0x49D0:
A90C20608F20408DE03DD0034CA58D20
408BA47820A18A20C386A478C955B008
20CE8AA9104CB08620BC8AA90E4CB086
A5BBE5BAC90AB0034C608AC93A90034C
D08D20F08720CB86C955B0054C8F88EA
EAA90D20508FA678A478BDE46185BEAA
20AE88864A98AA857920B788854B2040
8DE03DD0034CA58D20408BA4BE20A18A
20C386A4BEC955B00A20F08720CE8AA9
104CB08620F08720BC8AA90E4CB08600
20C086C9AAB005A9124CB08620F38F20
408DA678A478BDE461AA20D088E03DD0
034CA58D864A98AA857920D088E03DD0
034CA58D864B20F08720408DA9134CB0
0x4B10:
20E08A200DD1000A20F08A6000000000
20E08A200DD1010A20F08A20A08E6000
20E08A200DD1020A20F08A20A08E6000
20E08A200DD1030A20F08A20F38F6000
20E08A200DD1040A20F08A20F38F6000
20E08A200DD1050A20F08A6000000000
20E08A200DD1060A20F08A6000000000
20E08A200DD1070A20F08A20C08E6000
20E08A200DD1080A20F08A6000000000
20E08A200DD1090A20F08A6000000000
20E08A200DD10A0A20F08A20A08E6000
20E08A200DD10B0A20F08A6000000000
20E08A200DD10C0A20F08A6000000000
20E08A200DD10D0A20F08A20A08E6000
20E08A200DD10E0A20F08A6000000000
20E08A200DD10F0A20F08A20A08E6000
20E08A200DD1100A20F08A6000000000
20E08A200DD1110A20F08A20A08E6000
20E08A200DD1120A20F08A6000000000
20E08A200DD1130A20F08A6000000000
20E08A200DD1140A20F08A6000000000
20E08A200DD1150A20F08A6000000000
20E08A200DD1160A20F08A20A08E6000
20E08A200DD1170A20F08A20A08E6000
20E08A200DD1180A20F08A6000000000
20E08A200DD1190A20F08A6000000000
20E08A200DD11A0A20F08A6000000000
20E08A200DD11B0A20F08A6000000000
20E08A200DD11C0A20F08A6000000000
20E08A200DD11D0A20F08A6000000000
20E08A200DD11E0A20F08A6000000000
20E08A200DD11F0A20F08A6000000000
0x4FD0:
20A08EA5AD65AE20D386C955B005A902
4CDE8FC9AAB005A9164CDE8FA9176060
January 11, 2013 at 4:45 pm #44988MiDKnighTModeratorRunning into some mapping problems having a ROM that large. Looking into it.
January 11, 2013 at 11:41 pm #44989sonic.penguinModeratorQuote:Running into some mapping problems having a ROM that large. Looking into it.NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!
"http://www.youtube.com/watch?v=WWaLxFIVX1s&autoplay=1" type="application/x-shockwave-flash" lt;object width="425" height="350"><param name="movie" value=width="425" height="350"></embed></object>
January 12, 2013 at 2:21 am #44990sonic.penguinModeratorIf this comes to fruition, one MAJOR thing you might want to consider adding is space for additional text in the rom, although you might need Niahaks input to get it recognized in the text editor.
I'm finding it very hard to keep the game not only moving and thumping with good townspeople text, but to keep the game driven with good battle openers and closers that drive the story since you must always directly go through those fights. The generic "Where's my enemy?" just doesn't cut it in terms of story.
January 12, 2013 at 1:58 pm #44991MiDKnighTModeratorQuote:NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!I had mapping problems when I tried to expand to 4MB. 1MB seems to work fine which is 2x larger than the current expanded ROM and 4x larger than the original game. 1MB seems to be the max size for an MMC1 ROM (Dragon Warrior 4 was MMC1 and 1MB).
About the text… Good idea. If we can move enough graphics to pages > 0F then we should have room for a 3rd text bank. Once I get it all worked out I can share my info with Niahak. Now using the 3rd text bank…that might be another challenge. It would probably be pretty easy to assign battle taunts in the 3rd bank but you'd have to manually point villager text to the 3rd bank via hex (eww).
January 12, 2013 at 2:05 pm #44992sonic.penguinModeratorwell leaving villager text the same as is already programmed and manually changing it via DOAEditor is fine. So if an additional bank was added primarly for battle taunts/closers (multiply times however many battles there are in game then x2 for a minimum amount, so like 100ish additional lines with room), that would at least be a start.
I figured 1MB would be the limit. These games just werent made for that much data. I think even the top SNES games were only around 7MB also. Things didn't go nuts in terms of data until PS where they were hundred of MB's and now games are like 20+ GB's
January 12, 2013 at 7:14 pm #44993MiDKnighTModeratorQuote:I figured 1MB would be the limit. These games just werent made for that much data.It is possible to go over 1MB but you'd have to change the ROM type from MMC1. A couple of major Final Fantasy modders changed the ROM type of Final Fantasy from MMC1 to MMC3 or MMC5 which is a huge effort. As of now it's beyond my skills and would take too long. You'd have to change pretty much every pointer and location reference in the ROM plus a bunch of other stuff. If we had like 10+ assembly programmers around here we could take it on but with just me it's probably not happening.
So 1MB is the most we can do for now unless someone with major ROM type conversion skills and a love for DOAE shows up.
January 22, 2013 at 1:43 pm #44994MiDKnighTModeratorWell it looks like 512k is the absolute max for an MMC1 mapper (which DoaE uses). And in my studies I have found that we didn't implement the 512k expansion correctly (probably why only FCEUX works). For a true 512k expansion we should be using SUROM (like Dragon Warrior 3 and 4) which is a fairly easy change but would require some room on the system page where any space is golden.
To get to 1MB it seems to the best way may be to change the mapper to MMC3 then switch to mapper 245.
MMC3: http://wiki.nesdev.com/w/index.php/MMC3
Mapper 245: http://wiki.nesdev.com/w/index.php/INES_Mapper_245
Which is a pretty major project. The only other option I can think of is finding a way to do with NES 2.0 –> http://wiki.nesdev.com/w/index.php/NES_2.0
But so far there is no evidence of any valid MMC1 ROM that is 1MB so a mapper change would be mandatory :(
If I'm going to go through all this trouble then why not 2MB? I'll dig around and see if there are any mapper options for that.
January 22, 2013 at 2:20 pm #44995sonic.penguinModeratorThe big question to be then, would be for it to be possible to "convert" our current roms or rom projects to mmc3 via a patch? Likely, there would be lots of debugging if things got fiddled around again…
on another note, I made a video as well for the flames of wu mod! While I wanted to make one for Rise of Ieyasu, I never got around to it, but your DoaE Modding Video inspired me!
January 22, 2013 at 3:04 pm #44996MiDKnighTModeratorQuote:The big question to be then, would be for it to be possible to "convert" our current roms or rom projects to mmc3 via a patch? Likely, there would be lots of debugging if things got fiddled around again…Yes… If I get a 1MB (or if I'm lucky 2MB) mapper working I'll make a new family of IPS patches (1.3). You'd have to save your lists and re-patch everything. Of course, if we did that we'd also need a DoaEditor update and hopefully add a new text bank as well. Don't hold your breath! And don't wait on it to release your Wu mod. Perhaps in the future you could do a 2.0 version of the Wu mod with the expansion.
Quote:on another note, I made a video as well for the flames of wu mod!Sweet! Not posted yet? Sneak preview?
January 22, 2013 at 3:48 pm #44997sonic.penguinModeratorcoming shortly, I'm trying a new song and its taking a bit to re-edit
January 23, 2013 at 3:51 am #44998MiDKnighTModeratorHoly crap I think I've got it! ROM is now working with mapper 245 at 1MB in size. More good news is that it will work on any emulator that supports mapper 245 which includes FCEUX and probably a handful of others.
Still need more testing but this means we would have MASSIVE amounts of space to work with for coding, a new text bank, etc…
January 23, 2013 at 1:17 pm #44999MiDKnighTModeratorTo test the expanded ROM, and to make more room for villagers talking, I'm going to move the duel text to the new text bank. That should free up a lot of room in the existing text bank :thumleft:
Putting the duel text is a new text bank is something I originally wanted to do but didn't have the space at the time.
January 23, 2013 at 10:56 pm #45000sonic.penguinModerator:crybaby: I'm so happy! Maybe this will fix the last duel line from being overwritten in DOAEditor now
January 23, 2013 at 11:22 pm #45001MiDKnighTModeratorQuote:Maybe this will fix the last duel line from being overwritten in DOAEditor nowYes because the duel text will be at the top of a text bank instead of the bottom.
Update: ROM expansion is working and I've mostly got the new text bank working but something is broken with the new text bank that is borking the game bad. Just have to trace it and chase it down.
-
AuthorPosts
- You must be logged in to reply to this topic.