RT (Room Transfer) program

Page 2 of 5 Previous  1, 2, 3, 4, 5  Next

Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Thu 8 Aug 2013 - 17:13

I thought so. No matter which value is there, the game ignores it. But there is one case that could be a problem. The doors normally lead to the room above, left, right or bottom if there is no header data for it. But when extending the data, the header data is there and so the door leads to the specific room given. But since this extending is done by using MathOnNapkins HM version, one need to correct these rooms anyway, so we shouldn't care about this.

This tool modifies the rom this way, that it will be unusual with HM, so it is there to merge roms together after editing. But i think this will be the most important tool alongside HM, cause when HM lacks of room space, you can simply use another rom and edit new rooms there with lots of chests, objects and sprites and finally merge it to one rom. Of course, only if it works as i excpect.


XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Thu 8 Aug 2013 - 17:27

Do you have an idea about this 4 pointers for the object data of rooms?

*Primary pointers at:
1. 8746, 01 80 1F --> F8001
2. 874C, 00 80 1F --> F8000
3. 883F, 01 80 1F --> F8001
4. 8845, 00 80 1F --> F8000 (all corespond to F8000)

Why are there 4 pointers?

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Fri 9 Aug 2013 - 4:03

Ok. This is the next thing i'll do.
By the way, you're right, this pointers don't matter. I forgot there is no need to move the pointer table since there is space for all 320 :-D

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 11 Aug 2013 - 5:00

Ok, updated this one. It does the same, i only optimized the code and added in interesting feature it thought you could like, makes hex-editing very easy :-), try it and look at the new headers.

https://www.dropbox.com/s/gn68y40ndk26hif/RT.zip

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 11 Aug 2013 - 18:02

Glad to see that you like it :-)
Yes, i will keep this strategy. There is a functions to prevent bank breaks and step to a new line. All is calculated in-place. The next i wanna do is to write the object data (layers). My plan is to write the layer data of a room completely and than calculate the pointer for the next room, so the distance between this pointers depends on length of the layer data. But the every room will always start on a new line in the hexeditor and with the info text above.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 11 Aug 2013 - 18:45

Yeah :-D this makes it really easy to find necessary data.
About the pointers: This is not that hard it sounds like. I only go to the beginning of an hex line and convert this adress in the file to a snes adress and this is the needed pointer. And i always take care of a bank breach, thats all. These pointers are a really good thing if one can control them :-D

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Tue 13 Aug 2013 - 6:46

Ok, Objects done (i call this "Layers" in the code).
Now for the first time ever :-D it's possible to copy one of the rooms 0-295 to one of the rooms 296-319. Tested it and works.
Search string for hex editor: "Layer Room xxx"

https://www.dropbox.com/s/gn68y40ndk26hif/RT.zip

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Tue 13 Aug 2013 - 8:15

You need to write it this way:

RT.exe 1.smc 2.smc 1-310

And if you want more rooms to be copied, type:

RT.exe 1.smc 2.smc 1-310-2-311
(this copies room 1 to 310 and room 2 to 311)

And notice that the new rom is named as "_2.smc" to not overwrite the original rom.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Tue 13 Aug 2013 - 8:37

Did you try copy another room into 260 or did you let this room untouched? Did you try to walk in 260? In my test this room appeared without problems.
You can send me your rom if you want, so i could better understand what the problem is.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Tue 13 Aug 2013 - 8:51

Ah ok. But in theory, when using identical roms the tool should make a complete copy but with moved data sections (headers and layers). Should work normally, but never tested this.

Next is sprite section :-)

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 18 Aug 2013 - 9:46

Moving sprites is nearly done, i think it will be finished today. Puzz, in your dungeon data document you speak about the 768 bytes long pointer table for sprites. 768/2 = 384 --> 320 rooms "some additional data". I am pretty sure there is no additional data, it's simply space for 384 pointers for room sprites, cause the last 88 rooms (decimal) have the 0xEC9D pointer and 384-88 = 296 --> number of rooms available.
I thought about moving all pointer tables to the end to extend them. In theory the engine should work with more than 320 rooms. But the question is, how necessary is this?

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 18 Aug 2013 - 10:45

Really strange.

By moving all pointer tables it shouldn't be a problem to use more than 320 rooms but i think this is more than enough, so not really necessary.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Sun 18 Aug 2013 - 11:23

Oh i've never heard this before, sounds logical, shame on me that i didn't thought about that :-D.

Yeh, a while ago when i coded the RHE i talked to Math and he said the same to me. He's recoding some parts of the engine so nearly everything is possible.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Mon 19 Aug 2013 - 9:01

Updated.

-Fixed a small mistake when reading room layers, should now work 100% correct.

-Moving sprites: Here is a problem. The JSL is correct, the new loader code is correct and all adresses seems to be correct. Rom runs, but no sprites there. No idea whats going wrong here. Puzz, could take a look at that? I move the sprite pointer table without the pointers above 320 and thought, this were the problem. But adding them doesn't solved the problem and setting them to zero in the original rom doesn't effect other sprites so i guess this isn't the problem. The new loader code is at the and of the sprites.

-Usage improvements: using the program without a room list copies ALL rooms from source to destination rom. Using the program without destination rom and without room list makes a copy of the given rom with moved room data.

-Parallel Worlds rom: Doesn't work properly but will be hopefully fixed in the future.


https://www.dropbox.com/s/gn68y40ndk26hif/RT.zip

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

RT (Room Transfer) program - Page 2 Empty Re: RT (Room Transfer) program

Post by XaserLE on Mon 19 Aug 2013 - 9:34

Damn. Can you send me the rom(s) you tested with? I only have this problems with PW, but with my other roms (original and gates of darkness) it works properly.

XaserLE

RT (Room Transfer) program - Page 2 Image111

Since : 2013-01-22

Back to top Go down

The author of this message was banned from the forum - See the message

The author of this message was banned from the forum - See the message

Page 2 of 5 Previous  1, 2, 3, 4, 5  Next

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum