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? | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Mega-Dog

Level: 20

Posts: 122/139
EXP: 40051
For next: 2388

Since: 03-15-04
From: Minnesota

Since last post: 8 days
Last activity: 4 days
Posted on 10-06-05 05:19 AM Link | Quote
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!!
insectduel

Red Cheep-cheep
Level: 19

Posts: 134/203
EXP: 30702
For next: 5075

Since: 07-12-05
From: ilex forest

Since last post: 17 hours
Last activity: 17 hours
Posted on 10-08-05 12:56 AM Link | Quote
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.
TapamN
Newcomer
Level: 1

Posts: 1/1
EXP: 4
For next: 7

Since: 10-13-05

Since last post: 20 days
Last activity: 6 days
Posted on 10-13-05 10:32 AM Link | Quote
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.
Lenophis

Super Koopa
Level: 44

Posts: 800/830
EXP: 584360
For next: 26925

Since: 03-15-04
From: Duluth, MN

Since last post: 4 hours
Last activity: 3 hours
Posted on 10-13-05 10:53 AM Link | Quote
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.


(edited by Lenophis on 10-13-05 01:54 AM)
Mega-Dog

Level: 20

Posts: 129/139
EXP: 40051
For next: 2388

Since: 03-15-04
From: Minnesota

Since last post: 8 days
Last activity: 4 days
Posted on 10-13-05 02:36 PM Link | Quote
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.
creaothceann

Red Paragoomba
Level: 11

Posts: 41/50
EXP: 5903
For next: 82

Since: 01-27-05

Since last post: 21 hours
Last activity: 21 hours
Posted on 10-13-05 03:07 PM Link | Quote
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.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7663/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-13-05 06:04 PM Link | Quote
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.
Waluigi_Fan
Newcomer
Level: 2

Posts: 4/5
EXP: 35
For next: 11

Since: 10-23-05

Since last post: 7 days
Last activity: 1 day
Posted on 10-26-05 03:17 AM Link | Quote
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.
Bio

Buster Beetle
Level: 27

Posts: 442/458
EXP: 107144
For next: 9015

Since: 07-06-05
From: a laboratory somewhere... Waiting to be completed

Since last post: 8 hours
Last activity: 5 hours
Posted on 10-26-05 03:23 AM Link | Quote
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)


(edited by Bio on 10-25-05 06:24 PM)
Waluigi_Fan
Newcomer
Level: 2

Posts: 5/5
EXP: 35
For next: 11

Since: 10-23-05

Since last post: 7 days
Last activity: 1 day
Posted on 10-26-05 04:00 AM Link | Quote
How do I find the unused sprite/block? I have the tool necessary to program that particular thing but how do I find it?
insectduel

Red Cheep-cheep
Level: 19

Posts: 181/203
EXP: 30702
For next: 5075

Since: 07-12-05
From: ilex forest

Since last post: 17 hours
Last activity: 17 hours
Posted on 10-28-05 09:44 PM Link | Quote
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.
Alexa
Not Xkeeper!
Level: 27

Posts: 592/625
EXP: 114183
For next: 1976

Since: 09-10-05

Since last post: 1 day
Last activity: 2 days
Posted on 10-28-05 11:16 PM Link | Quote
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.
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
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.020 seconds.