Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - How do you create your own level editor?
  
User name:
Password:
Reply:
 

UserPost
Alexa
Posts: 592/625
Originally posted by blackhole89
Someone set up us the bump.

Normally, 10 days wouldn't be that bad, but seeing as this topic is rather pointless (aka asking how to make a level editor before you even know to hack and/or code), this is still going to be closed.
I suppose now would be a good time to tell you that my first ROM hacking project -- before I even knew how to really ROM hack, mostly using editors and such -- was designing and programming CMED, the Crystal Mines editor.

Just because someone doesn't know how to hack yet means nothing -- he's willing to learn, and if anything the 'scene' will only benefit from having information on this topic.

And really, who cares? There are tons of other bumped threads you can go close that truly are pointless.
insectduel
Posts: 181/203
If I make a level editor that M.K.S. I need a source code so I could remodify the SMB1 level editor that Supports SMAS, and SMB2J. I barely know the hex offsets for every one of them. I edit levels on M.K.S. SMB1 Editor for at least a year. But YY's SMB1 editor detects bugs that wasn't on M.K.S. SMB1 Editor (Thats if anyone is stupid enough to enter the binary 3 byte enemy instead of sending the area levels onto another room or add objects from YY's editor.)

If Hukka can make SMB3WS with a source code, I can make a SMB Ultimate level editor.
Waluigi_Fan
Posts: 5/5
How do I find the unused sprite/block? I have the tool necessary to program that particular thing but how do I find it?
Bio
Posts: 442/458
you can put these with a regular editor:
1:find a unused sprite or block
2:program the sprite or block with ASM
3:insert them in your level with the editor

you don't need to make a editor to do ASM hack(there already hex editor for that and there universal)
Waluigi_Fan
Posts: 4/5
I want to make a level editor as well.
What all do I have to do to make these level editors for myself and other users?
A Super Mario Bros. level editor that is also compatible with Super Mario Bros. 2 (Japan).
An accurate Super Mario Bros. 2 level editor (That can also put Dark Mind in the game.)
And.....
A Super Mario Bros. 3 level editor that allows you to put a Poison Mushroom in the game. (Whether in a brick block, wooden block, ? Block, Hidden Block, etc.) Master Hand and Crazy Hand. (Also for Super Mario Bros. 2)
And Dark Mind himself.
HyperLamer
Posts: 7663/8210
Or just keep it open, seek to the given address, and only read what you're using into memory. Saves resources and lets other programs edit other parts of the file at the same time without it being undone when you save in your program.
Originally posted by Lenophis
Originally posted by HyperHacker
Pros of VB6:
  • Good built-in interface editor
  • Powerful debugger

Cons:
  • Very limited in power and speed
  • Expensive
  • Can't easily be made Mac or Linux-compatible
  • Requires big runtime files for older versions of Windows (and tweaked versions of XP)


Fixed Although I'd be curious to know how the debugger is more capable than the "language" itself....

I'm sure you could make VB6 runtimes for Linux. Just nobody would bother.
And have you tried the debugger? Stepping through the code line by line with breakpoints and a console where you can execute any given piece of code at any point during execution. Doesn't get much more powerful than that.
creaothceann
Posts: 41/50
Originally posted by Mega-Dog
I open the whole ROM into memory

You don't even need to copy the file into memory... see memory-mapped files.
Mega-Dog
Posts: 129/139
Originally posted by TapamN
Mega-Dog:
My Sonic 1 level editor, also writen in VB6, does, at worst, .55 seconds on my 667 mhz P3 when drawing 4096 tiles (64*64 8*8 tiles / Total: 512*512 pixels). My budget 1.3 ghz Celeron M laptop does the same thing in .0078 seconds. I've yet to optimize. My level editor doesn't even read level data from RAM, and it reads it byte by byte from disk. (Of course, disk cache helps.) How are you drawing the screen? I use BitBlt and StretchBlt (for mirroring and flipping).

...

I think that's mostly it... Oh, modulus is your friend when making an editor.


I open the whole ROM into memory then blt it all off Btimaps renderd in memory. On an old Pentium 2 here it does the whole screen in under 1 second also.
Lenophis
Posts: 800/830
Originally posted by HyperHacker
Pros of VB6:
  • Good built-in interface editor
  • Powerful debugger

Cons:
  • Very limited in power and speed
  • Expensive
  • Can't easily be made Mac or Linux-compatible
  • Requires big runtime files for older versions of Windows (and tweaked versions of XP)


Fixed Although I'd be curious to know how the debugger is more capable than the "language" itself....

Originally posted by Xkeeper
Why does everyone seem to think ASM knowledge is required to hack games lately?

I'll take a guess....

I believe that "hex editing" and "assembly hacking" have somehow become one in the same.... Don't ask me how that happened, but I'll take a stab it most likely had to do with this place. That is speculation on my part though, so if I am wrong, just dismiss the rambling.
TapamN
Posts: 1/1
Writing a level editor? Hm.

I'm working on a level editor for Sonic 1, writen in VB6. I'm cheating because it only works on Sonic 1 when it's uncompressed, disassembled, and split into seperate files. The ugly things like compression and space restrictions are handled when it's compiled.

When writing your own level editor, first, figure out formats and compression. (I only had to figure out formats.) Find any existing docs and start coding the editor to display the most basic parts. You should start with graphics because, well, you need something to see how the editor is loading data.

It's a good idea to read pallete and graphics from the ROM for two main reasons: A more accurate preview (incase some smart aleck thinks it's a good idea to edit the pictures and colors) and it makes for easier design and coding. How? If you load the tiles the same way the game does, you can use the same numbers to reference the graphics.

I can't think of a better what to expain it, so let me give you an example.

In Sonic 1, there are mappings made out of a 2*2 block of tiles. The data for the mappings use numbers that line up with how they are loaded into RAM. Tile 24 in the ROM uses tile 24 in RAM. If you load the graphics from the ROM properly, it's all lined up for you. If you read the graphics out of a BMP, you need to line it up ahead of time or have the program compensate.

Once you have graphics, you can start on the actual level data. Start out with just figuring out how to read the data and display it with the graphics you loaded. If the documentation you have is wrong, well... you can see how it's wrong. The docs I used were out of date and had incorrect explanations for tile flipping. This was easy to figure out because... the graphics were flipped wrong when I displayed them.

If it helps, this is the order I did stuff on my editor.

1. Research
2. Load and display palletes
3. Load and display graphics with pallete
4. Load and display basic tile mappings with graphics
5. Load and display compound tile mappings with basic tile mappings
6. Load and display level with compound tile mappings
7. Edit level

Mega-Dog:
My Sonic 1 level editor, also writen in VB6, does, at worst, .55 seconds on my 667 mhz P3 when drawing 4096 tiles (64*64 8*8 tiles / Total: 512*512 pixels). My budget 1.3 ghz Celeron M laptop does the same thing in .0078 seconds. I've yet to optimize. My level editor doesn't even read level data from RAM, and it reads it byte by byte from disk. (Of course, disk cache helps.) How are you drawing the screen? I use BitBlt and StretchBlt (for mirroring and flipping).

...

I think that's mostly it... Oh, modulus is your friend when making an editor.
insectduel
Posts: 134/203
Making a level editor takes 178 intellengence to do it. I would make a SNES only level editor for SMB3 to edit backgrounds and stuff. But I would be too damn dumb to know everything.
Mega-Dog
Posts: 122/139
Originally posted by Xkeeper
Why does everyone seem to think ASM knowledge is required to hack games lately?


From what I have herd with ASM it is easier to trace data and such...it is hard enough for me since I don't know ASM!!
dan
Posts: 754/782
Originally posted by Xkeeper
Why does everyone seem to think ASM knowledge is required to hack games lately?


Indeed, I never needed to know any ASM for most of my first few editors. However, knowing some ASM makes it much easier to find data (or even knowing how FCEUXD works)
Xkeeper
Posts: 3574/-863
Why does everyone seem to think ASM knowledge is required to hack games lately?
Kyoufu Kawa
Posts: 2346/2481
Originally posted by Mega-Dog

No, but after you build your first one it kinda peices more together a little faster. I think that is why my latest is going fast since it is my 5 editor...(I think).
Amen! You'd be surprised how easy the first Miza builds were made, stealing most techniques from EliteMap!
Mega-Dog
Posts: 116/139
Originally posted by dan
Originally posted by lpjunior999
Making a level editor won't make things easier FOR YOU.


If you are making a level editor for the purposes of making a hack, then yes it will. Using a graphical editor is way easier than using a hex editor.


I Agree twards this. I would perfer to look at the Hex Editor and see the sprites...but all I see are 0-F's right now....and 0's and 1's...
dan
Posts: 753/782
Originally posted by lpjunior999
Making a level editor won't make things easier FOR YOU.


If you are making a level editor for the purposes of making a hack, then yes it will. Using a graphical editor is way easier than using a hex editor.
lpjunior999
Posts: 4/7
To put it simply:

Making a level editor won't make things easier FOR YOU. It'll help others using it. You'd basically be making a program that would allow you to make changes using a visual interface to certain parts of the rom. The trick is, in order to tell the program what to change, you'll have to know exactly where and what all the data is.

Editors aren't things people crank out. It's no less complicated than writing any other program for your PC. Basically, you're looking to make changing this game less complicated, but to make a level editor, you'd have to learn ASM or hex to read the game, and then a programming code to make your editor. In your quest to make it easier, you're making it harder. In all, it'd be easiest to learn the code the game is written in and change it directly.
Sokarhacd
Posts: 1730/1757
yeah, for vb under 1 second is probably the fastest you can get it down to, without using a C/C++ dll...but when you think about it, under 1 sec, no one is gonna complain.
Mega-Dog
Posts: 115/139
Yes...I have noticed in VB that speeds are not all that fast, but I do have editor screen rendering down to under 1 second in VB so I think I am at the max speed for rendering, I belive.
This is a long thread. Click here to view it.
Acmlm's Board - I2 Archive - Rom Hacking - How do you create your own level editor?


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.013 seconds.