| |||
Views: 88,316,889 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 03-29-24 08:40 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 1 guest | 1 bot |
Main - ROM Hacking - Making level editor programs? | New thread | New reply |
CKY-9K |
| ||
Pokey Level: 57 Posts: 56/693 EXP: 1427202 Next: 58726 Since: 06-27-07 From: cKy Last post: 182 days Last view: 90 days |
Someday I'd like to make a StarTropics level editor.
But the thing I want to know is how. What utilities do I need? How do I program it to edit the ROM like that? Blah blah. ____________________ |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 87/155 EXP: 152257 Next: 13612 Since: 03-14-07 Last post: 6017 days Last view: 5966 days |
Basically, editors just do what you would do, except they are capable of performing all of the tasks in one package.
In B.O.B., I had to do a few things to get a graphical representation of the level. 1) I had a list of pointers referencing where in the ROM file I needed to get data from. 2) I had to decompress the level and its panel definitions. 3) I had to decode the tile graphics and palette data. So if I were to edit all of those things, I'd need to re-encode the tile and palette data, re-compress the level and panel data, insert them into the ROM, then change the pointers accordingly. A level editor for the game would take care of all those things. __________ So basically, this is what it boils down to: * You need to know enough about a game's level format that you would be able to change it to make your own levels. Some games will allow you to edit levels in a hex editor; some will require more effort. But if you have the knowledge of what to do, you can start on a level editor. * You'll need to program routines to take care of any processes that go into extracting data then inserting it into the ROM. Compression codecs, graphics manipulation, and of course level data itself are all common bits of information that level editors use. * Level editors aren't very useful without some kind of user interface. It's up to you how to best allow the user to manage the level data once your program can take care of it. |
Squash Monster |
| |||
Buster Beetle Level: 48 Posts: 229/469 EXP: 802648 Next: 20895 Since: 02-22-07 From: New York Last post: 5669 days Last view: 5668 days |
|
CKY-9K |
| ||
Pokey Level: 57 Posts: 57/693 EXP: 1427202 Next: 58726 Since: 06-27-07 From: cKy Last post: 182 days Last view: 90 days |
I'm good with game maker so... I donno. I could probably somewhat manage it. ____________________ |
Smallhacker |
| ||
Panser Swedish weirdo times eleven Level: 42 Posts: 143/339 EXP: 493369 Next: 27993 Since: 02-19-07 From: Stockholm, Sweden Last post: 5157 days Last view: 5156 days |
Posted by CKY-2K For some reason, I really doubt that that will help. ____________________ |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 88/155 EXP: 152257 Next: 13612 Since: 03-14-07 Last post: 6017 days Last view: 5966 days |
What Smallhacker really means is that you'd be better off using a language designed to be able to work with file data to this extent. Game Maker is a very specialized language and it will likely not allow you to do what you need to do if you want to make a level editor. |
CKY-9K |
| ||
Pokey Level: 57 Posts: 58/693 EXP: 1427202 Next: 58726 Since: 06-27-07 From: cKy Last post: 182 days Last view: 90 days |
I would be guessing C++ and stuff would be simliar. ____________________ |
Squash Monster |
| |||
Buster Beetle Level: 48 Posts: 230/469 EXP: 802648 Next: 20895 Since: 02-22-07 From: New York Last post: 5669 days Last view: 5668 days |
|
CKY-9K |
| ||
Pokey Level: 57 Posts: 60/693 EXP: 1427202 Next: 58726 Since: 06-27-07 From: cKy Last post: 182 days Last view: 90 days |
How about Visual Basic? ____________________ |
Squash Monster |
| |||
Buster Beetle Level: 48 Posts: 231/469 EXP: 802648 Next: 20895 Since: 02-22-07 From: New York Last post: 5669 days Last view: 5668 days |
|
CKY-9K |
| ||
Pokey Level: 57 Posts: 61/693 EXP: 1427202 Next: 58726 Since: 06-27-07 From: cKy Last post: 182 days Last view: 90 days |
I did VB last year in school. ____________________ |
Squash Monster |
| |||
Buster Beetle Level: 48 Posts: 232/469 EXP: 802648 Next: 20895 Since: 02-22-07 From: New York Last post: 5669 days Last view: 5668 days |
|
Stifu |
| ||
Cobrat Level: 56 Posts: 171/666 EXP: 1358245 Next: 39931 Since: 02-22-07 Last post: 657 days Last view: 279 days |
That may not help, but... I'd say that what you really need in the first place, is data/offsets of the concerned game. Obviously, you first need to be able to do manually everything you want the editor to do (like in a hex editor)... The editor is just an automatization of those processes.
Then, on the programming part, it's about learning how to handle and play with bytes... |
1337_Ac3 |
| ||
Paragoomba Level: 21 Posts: 61/72 EXP: 47933 Next: 2010 Since: 05-22-07 From: swedun Last post: 6094 days Last view: 6071 days |
Posted by Squash Monster Wrong. There's VB.net express (just like there's C++.net,C#.net and J#.net express) and it's free. But if you're going to use an express edition you should go with C++.net. I'm not sure what the limitations are, nothing big tho, one of them is that you are bound to the .net framework... ____________________ |
interdpth |
| ||
Buzzy Beetle Level: 44 Posts: 84/383 EXP: 592337 Next: 18948 Since: 02-22-07 Last post: 4071 days Last view: 4044 days |
If you have a copy of VB
here's a simple test to grab a byte from the rom make a form with a text box and a command button we'll assume the textbox is name text1 double click the command button to get to it's command1_click() event code is dim thisbyte as byte open rompath for binary as #1'Open File for input/output Get #1, offset+1,thisbyte 'Always add a one to your offset it's just how VB does 'it also gets the value close #1'close the file for output/input text1.text = hex(thisbyte)'the text for the textbox now because the number you pulled from the ROM ____________________ lawl blog http://interdpths.blogspot.com/ |
GuyPerfect |
| |||
Paratroopa Level: 30 Posts: 89/155 EXP: 152257 Next: 13612 Since: 03-14-07 Last post: 6017 days Last view: 5966 days |
Reading individual bytes from hard disk is very slow. It'd be better to load the whole ROM into memory and read bytes from there.
Once you do things that way, you can pick out individual bytes from the ROM, even using a base index of 0. ROMData(0) is the first byte of the ROM. You can also use hexadecimal offsets with the &H prefix. For example: ROMData(&HF3B48) |
Kawa |
| ||
CHIKKN NI A BAAZZKIT!!! 80's Cheerilee is best pony Level: 138 Posts: 393/5344 EXP: 30875617 Next: 787364 Since: 02-20-07 From: The Netherlands Last post: 4470 days Last view: 2605 days |
Individual bytes might be slow, but I prefer this method myself: Private Type tItem...and then you just do something like Get #1, ItemOffset + (I * SizeOfOneItem) + 1, myItem .____________________ Wife make lunch - Shampoo Opera - give it a spin Spare some of your free time? <GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered Kawa rocks — byuu |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 90/155 EXP: 152257 Next: 13612 Since: 03-14-07 Last post: 6017 days Last view: 5966 days |
That won't work for instances where data is stored big-endian. It's always better to manipulate data manually when it comes to ROM hacking, and having all data in memory is the fastest way to get things done. |
Kawa |
| ||
CHIKKN NI A BAAZZKIT!!! 80's Cheerilee is best pony Level: 138 Posts: 394/5344 EXP: 30875617 Next: 787364 Since: 02-20-07 From: The Netherlands Last post: 4470 days Last view: 2605 days |
Posted by GuyPerfectNot a problem for me. So far, all editors I made were Windows only and for little-endian systems like the GBA. Maybe later. ____________________ Wife make lunch - Shampoo Opera - give it a spin Spare some of your free time? <GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered Kawa rocks — byuu |
Main - ROM Hacking - Making level editor programs? | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 117, rows: 156/156, time: 0.018 seconds. |