Points of Required Attention™
Smaghetti, a new Super Mario Advance 4 editor, is currently in development! Check out the thread HERE!

Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,314,569
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 03-28-24 11:53 PM
Guest: Register | Login

0 users currently in ROM Hacking | 4 guests

Main - ROM Hacking - A quick question for my more experienced colleagues... New thread | New reply

Pages: 1 2

koala_knight
Posted on 06-01-07 11:46 PM Link | Quote | ID: 41014


Buzzy Beetle
Level: 44

Posts: 1/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
I started a Castlevania 1 hack long ago, and I was wondering if anyone ever figured out how to edit the level structure and path? Ideally I'd like to even add rooms if at all possible.

Dr. Hell
Posted on 06-02-07 12:24 AM Link | Quote | ID: 41033


Lakitu
Level: 52

Posts: 71/552
EXP: 1024149
Next: 59691

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5005 days
Last view: 4962 days
Haha... well optomon and I looked into this for Chorus of Mysteries, and we KIND of have a handle on it, but it is still probably the most frustrating thing ever. Even with the data to do it, it's still pretty damn difficult. I'll try to dig up what info I have, and if I can't find it I'll talk to optomon about it. I know he's got some notes somewhere.

koala_knight
Posted on 06-02-07 12:52 AM Link | Quote | ID: 41042


Buzzy Beetle
Level: 44

Posts: 2/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Cool! I'd really appreciate that. CoM looks really good so far. I give you props.

Dr. Hell
Posted on 06-02-07 12:54 AM Link | Quote | ID: 41046


Lakitu
Level: 52

Posts: 73/552
EXP: 1024149
Next: 59691

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5005 days
Last view: 4962 days
Thanks, it's all optomon though. All I can do is make it look pretty. He's the one doing all the real work. I'll talk to him next time he's online, and get pumped because CoM is going to be done really soon haha. You should put up some screens of anything you have done so far. I'd love to see what other people are doing with CV.

koala_knight
Posted on 06-02-07 05:06 PM Link | Quote | ID: 41374


Buzzy Beetle
Level: 44

Posts: 3/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
I'll see if I can find the files. Pretty much everything is gone now. However I did release an early version of my hack on Zophar under the name Inccubus way back in the day.

Dr. Hell
Posted on 06-02-07 11:32 PM Link | Quote | ID: 41451


Lakitu
Level: 52

Posts: 75/552
EXP: 1024149
Next: 59691

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5005 days
Last view: 4962 days
Oh! You're the one that hacked the Japanese version. Yeah, that hack was actually pretty decent, which is rare in CV hacking. There's only like a few good CV hacks in existance. Reguardless if you can or can't change the structure and path, you should finish this up, because it's pretty good.

koala_knight
Posted on 06-02-07 11:59 PM Link | Quote | ID: 41458


Buzzy Beetle
Level: 44

Posts: 4/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Actually, I used to have a later version with way better graphics and level design based partially on Vampire Killer for the MSX, but I lost it in a harddrive crash.

optomon
Posted on 06-04-07 09:26 AM Link | Quote | ID: 42169


Leever
Level: 33

Posts: 28/198
EXP: 219973
Next: 9206

Since: 03-05-07
From: Vancouver, WA

Last post: 2428 days
Last view: 2017 days
I've only been able to reorder the structure of the level layouts rather than create new rooms. And I haven't done this as dramatically as I wanted to because I failed to figure out how to move the interstage doors around much without deforming the game somehow.

0x 1FB33 : Pointer Table for room order for every stage. The first one is "00 80" pointing to 0x 10010. It is the room order for "stage 0" (when youre outside the castle at level 1). The first two bytes is a pointer that defines the bottom floor (F2 7F in this case, though I haven't looked into what it exactly defines). The next two bytes, regardless what they are will define the top floor.

0x 1FBC0 : Table of bytes that indicate how many rooms will be in each stage from left to right.. The left byte is the bottom floor, the right is the top floor. 19 of these for the game's 19 stages. The first one is "20" meaning 2 rooms, and the 0 means 1 room on the top floor, but the game designers obviously didn't need to do anything with that top floor nybble anyway. "23" for example would mean 3 rooms on the bottom floor, 4 rooms on the top floor. It will look like this:

XXXX
XXX


0x 1FBD3 : Another table that does a similar thing. Its another 19 byte table, and it defines how many rooms will be cut off starting from left to right for each stage. "FF" means it will be normal. "F1" means that the top floor will lose two rooms. Let's say you put "F1" ifor the same stage as you have a "23". It would look like this:

XX
XXX




Something like that. That's about as far as I bothered to get. Just play with these for a while I guess. Hope it helps.


As for making new rooms, I have a very vague idea how that could be done, but it would probably require some massive hexwork. Basically, wherever the room order pointers are pointing to (e.g. whatever F2 7F at 10010 points to) is where you have to make them.

koala_knight
Posted on 06-05-07 12:26 AM Link | Quote | ID: 42358


Buzzy Beetle
Level: 44

Posts: 5/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Thanks alot! =)
That is sure to help alot. If I can figure this out I'll let you know what I found.
BTW has anyone ever disassembled the code for Mario's actions in SMB/SMB3?

koala_knight
Posted on 06-06-07 05:23 AM Link | Quote | ID: 42846


Buzzy Beetle
Level: 44

Posts: 6/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Ok guys this is what I found so far... and it ain't much.

0x 1FB33 : when I screw with this pointer table I can change where the background data is read from. Take those first two bytes, 00 08.
If I change the first byte to say 02 ( the value of the second pair ), when I start the first stage it reads in the background data from the second stage's rooms.
If I change it to 01 or 03 it takes me to weird places.

0x 10010 : when i messed with the values over here ( starting with F2 7F ) I was able to shift the the background tiles up or down. When I tried F1 the tiles shifted down on the screen, and F3 had the opposite effect.

I think I'm gonna need more data, I think. If I had Dan's notes from when he made Stake, I think I could figure this out. ~wishful thinking...

optomon
Posted on 06-06-07 05:52 AM Link | Quote | ID: 42853


Leever
Level: 33

Posts: 29/198
EXP: 219973
Next: 9206

Since: 03-05-07
From: Vancouver, WA

Last post: 2428 days
Last view: 2017 days
In the F2 7F, if you add 30 to the pointer, the stage will will shift one room over. For example, change it to 22 80 and the stage will shift one room. Sorry for not bringing that up.

0x 1FB33, note at 1FB35 is the pointer 02 80 which is in fact the pointer for the second stages rooms. This points to 0x 10012, which is the pointer 82 80. note that 82 80 is 90 more than F2 7F, thrre rooms back. Remember, that each room is 30.

Do you see the pattern?

koala_knight
Posted on 06-06-07 06:05 AM Link | Quote | ID: 42858


Buzzy Beetle
Level: 44

Posts: 7/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
I see. Do you know where exactly the background tile data is? For that matter, where the enemy/candle, etc. are?

optomon
Posted on 06-06-07 06:25 AM (rev. 2 of 06-06-07 06:25 AM) Link | Quote | ID: 42867


Leever
Level: 33

Posts: 30/198
EXP: 219973
Next: 9206

Since: 03-05-07
From: Vancouver, WA

Last post: 2428 days
Last view: 2017 days
Yes and yes. Have you been using stake at all?

The background tile data should follow right after the pointers that define the room order. (eg, for level 1, after the 72 7F and subsequent pointers). But use stake to edit that.

Pointers for candles and enemies at 12DA0, one for each floor in a stage. The candle and enemy data begins after them, at the location the first pointer is pointing at. It will start with the first stage going left to right, going enemy-candle-enemy-candle pattern. Further ahead, there is information for what is actually stored in the candles and what enemies can be where, (eg more information).

Sorry if that sounds vague, it's just that you are asking for a lot. If you want me to tell you some more just IM me.

Dr. Hell
Posted on 06-06-07 06:36 AM Link | Quote | ID: 42874


Lakitu
Level: 52

Posts: 87/552
EXP: 1024149
Next: 59691

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5005 days
Last view: 4962 days
Stake is for chumps. I'll start liking stake again once there's a map screen editor, so I can stop doing it by hand, but seriously though, use it to edit the backgrounds, it makes it insanely easy, along with the candle/enemy placement. Make sure you have the newest version though.

optomon
Posted on 06-06-07 08:49 AM Link | Quote | ID: 42903


Leever
Level: 33

Posts: 32/198
EXP: 219973
Next: 9206

Since: 03-05-07
From: Vancouver, WA

Last post: 2428 days
Last view: 2017 days
Posted by Dr. Mario
Stake is for chumps.


Now now... no need to be bitter

koala_knight
Posted on 06-07-07 12:54 AM (rev. 2 of 06-07-07 01:19 AM) Link | Quote | ID: 43103


Buzzy Beetle
Level: 44

Posts: 8/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Hmmm... interesting. I'll keep sniffing around.

Optomon! Do you know of any hex editors that can compare two files and display the differences in each?

Dr.Mario! Is there anything I should know about editing the map? Actually I've never thought to try it before.

Dr. Hell
Posted on 06-07-07 01:22 AM (rev. 2 of 06-07-07 01:23 AM) Link | Quote | ID: 43131


Lakitu
Level: 52

Posts: 90/552
EXP: 1024149
Next: 59691

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5005 days
Last view: 4962 days
The map works like a level. You edit the 16x16 blocks of tiles and then arrange them the way you want. Here's the notes optomon drummed up for the TSA editing portion of it:
0x12D6A : Graphic layout begin for castle map.

The first byte should be a 55. It occurs every 16 bytes or so. The 16 bytes between each
"55" make a 4x4 16 tile square. The first of these 16 bytes are:

00 00 00 00 00 00 00 00 30 31 32 33 3B 34 34 34

aand then the second 55. The 55 chooses what palette is used for that 16x16 block.

Anyway, on the screen, the tiles will be arranged like this according to the bytes:

00 00 00 00
00 00 00 00
30 31 32 33
3B 34 34 34

This is the upper left corner of the map. 00 I believe is solid black, and 34 is solid
yellow. The other numbers are map creases and folds. The next 16 bytes are for the 4x4 just
below it.



Now, the positioning for the dot and the bat for each level. This is really easy.

0x1C7D7 : The positiong for the "dot" on the map for each level. The first byte is for the
"Y" position, the second is for the "X" position. The first two bytes are 00 00 for level 1.
This means of course, that it is in the top left corner, but there is no map screen for
level 1, so it doesn't really matter.

Level 1 : 00 00
Level 2 : 94 94
Level 3 : 76 4C
Level 4 : 70 2A
Level 5 : 7B 98
Level 6 : 4E 7C


0x1C7E3 : The position for the bat, it works the same way.

Level 1 : 00 00
Level 2 : 72 54
Level 3 : 62 A4
Level 4 : 82 9D
Level 5 : 52 84
Level 6 : 38 29


Next time he's on, him and I are going to look into arranging the 16x16 blocks correctly. Once we figure that out, one of us will put up some notes on doing that. I just know that the data is directly above the data I just gave you, I don't really know where it starts though.

koala_knight
Posted on 06-07-07 01:48 AM Link | Quote | ID: 43140


Buzzy Beetle
Level: 44

Posts: 9/384
EXP: 589876
Next: 21409

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4085 days
Interesting!
I'll work on that in the future. Thanks.
I'm still messing with the data optomon provided. Hopefully I can figure something out. =)

optomon
Posted on 06-07-07 09:13 AM Link | Quote | ID: 43249


Leever
Level: 33

Posts: 33/198
EXP: 219973
Next: 9206

Since: 03-05-07
From: Vancouver, WA

Last post: 2428 days
Last view: 2017 days
Posted by koala_knight

Optomon! Do you know of any hex editors that can compare two files and display the differences in each?


I've only used one hex editor since I started hacking, and that would be translhextion. It in fact has a "compare from current offset" option under the "offset" dropdown list. Make sure you have clicked the first nybble of the first byte when comparing it to another file. Very useful feature. When doing it, it will inform you which bytes are different.

NetSplit
Posted on 06-07-07 09:38 AM Link | Quote | ID: 43252


Level: 32

Posts: 15/178
EXP: 187605
Next: 18837

Since: 02-26-07

Last post: 2189 days
Last view: 2114 days
Hex Workshop has a pretty decent compare feature. I'm a fan of that hex editor, though I don't believe it has table support, and it's also prone to becoming unstable and eventually crashing while saving on my computer for some reason. Probably fixed in a newer version... Anyway, definitely a good hex editor.
Pages: 1 2


Main - ROM Hacking - A quick question for my more experienced colleagues... New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.029 seconds. (340KB of memory used)
MySQL - queries: 127, rows: 166/167, time: 0.018 seconds.