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,313,342
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 03-28-24 02:56 PM
Guest: Register | Login

0 users currently in ROM Hacking Related Releases | 3 guests

Main - ROM Hacking Related Releases - Epic Edit - Super Mario Kart track editor New thread | New reply

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Stifu
Posted on 12-20-08 08:56 PM (rev. 2 of 11-10-18 09:27 PM) Link | Quote | ID: 97232


Cobrat
Level: 56

Posts: 263/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
Here's the first public release of Epic Edit. It's far from complete and doesn't let you resave tracks into the ROM yet.
But since development was slow, I thought I'd release something now. You can still modify, export and import tracks (.mkt format, same as Track Designer).

It requires the .NET framework (or Mono, if you're on Linux or Mac). It's open source, too.

Screenshot

Download

Raccoon Sam
Posted on 12-21-08 10:02 PM Link | Quote | ID: 97293


Cobrat
Level: 56

Posts: 564/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
It failed to work under mono. Here's the error.
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at EpicEdit.MainForm.PnlTrackDisplayMouseMove (System.Object sender, System.Windows.Forms.MouseEventArgs e) [0x00000]
at System.Windows.Forms.Control.OnMouseMove (System.Windows.Forms.MouseEventArgs e) [0x00000]
at System.Windows.Forms.Control.WmMouseMove (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000]
at System.Windows.Forms.XplatUICarbon.DispatchMessage (System.Windows.Forms.MSG& msg) [0x00000]
at System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG& msg) [0x00000]
at System.Windows.Forms.Application.RunLoop (Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x00000]
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00000]
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00000]
at EpicEdit.MainForm.Main (System.String[] args) [0x00000]



____________________


Trax
Posted on 12-22-08 05:00 AM Link | Quote | ID: 97316


Yellow Stalfos
Level: 71

Posts: 687/1145
EXP: 3028669
Next: 138445

Since: 07-06-07
From: Québec

Last post: 3598 days
Last view: 2850 days
Looks pretty neat...
I took a quick glance at the code, it doesn't look too complicated...

Any explanation on the track format?
Is it layed out on a tile per tile basis?

smkdan
Posted on 12-22-08 09:34 AM (rev. 2 of 12-22-08 09:38 AM) Link | Quote | ID: 97324


Ninji
Level: 36

Posts: 179/238
EXP: 287976
Next: 20134

Since: 05-26-07

Last post: 4034 days
Last view: 3983 days
looks like displaying stuff is in order, scrolling is a bit slow though. caching tiles would pretty much eliminate that.

i have to suggest that having importable / exportable 'track pieces', which consist of X by Y chunks of tiles intended to be used to make track building that much easier. making a track in mariocircuit complete with rumble strips is hell.

edit: trax: tracks are just 128x128 tile arrays, 1:1 with what is put onto the mode7 map and what is used for driver interaction.

Stifu
Posted on 12-24-08 10:16 AM (rev. 2 of 12-24-08 10:33 AM) Link | Quote | ID: 97481


Cobrat
Level: 56

Posts: 264/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
Raccoon Sam: this is on Mac OS, right? I could only test Epic Edit with Mono on Linux, and it works fine, but I've been told it doesn't work on Mac... It's apparently a Mac-specific Mono bug related to Windows.Forms (mouse events, to be more precise). We'll report it and I'll let you know when it works.

Trax: I've worked hard to keep the code that clear and simple.
I guess Dan answered your question.

Dan: well, I have many ideas to improve performances (like caching, as you said), but right now, it works fast enough on my old computer (2.4 GHz Celeron, but it's slower than a 1.8 GHz Pentium), so I wanted to move on and work on features instead... especially since progress is slow. I'm keeping this in mind for later, though. Right now, I'm working on multiple tile selection (hold right click, and draw a rectangle to select a tile group). I guess that's more or less similar to being able to import/export track pieces, although they aren't saved as files, but it's more simple to implement and use, I think.

Stifu
Posted on 01-03-09 06:20 PM (rev. 3 of 11-10-18 09:31 PM) Link | Quote | ID: 98146


Cobrat
Level: 56

Posts: 265/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
I just released a new version, available at the same address.
Among the improvements, a cache system (improves speed) and multiple tile selection. See history.txt for more details.

Stifu
Posted on 01-15-09 09:31 AM Link | Quote | ID: 98727


Cobrat
Level: 56

Posts: 266/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
Raccoon Sam: Mono 2.2 is now out, could you please check whether it makes any difference? I guess not, but you never know.

Raccoon Sam
Posted on 01-15-09 02:57 PM Link | Quote | ID: 98733


Cobrat
Level: 56

Posts: 578/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
Still fails, but I do get a different error.
System.NullReferenceException: Object reference not set to an instance of an object
at EpicEdit.MainForm.RepaintTrackDisplay () [0x00000]
at EpicEdit.MainForm.PnlTrackDisplayMouseMove (System.Object sender, System.Windows.Forms.MouseEventArgs e) [0x00000]
at System.Windows.Forms.Control.OnMouseMove (System.Windows.Forms.MouseEventArgs e) [0x00000]
at System.Windows.Forms.Control.WmMouseMove (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000]
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000]


____________________


Stifu
Posted on 01-15-09 03:15 PM Link | Quote | ID: 98736


Cobrat
Level: 56

Posts: 267/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
Thanks!
I think I get it now... It sounds like the mouse position returns null on Mac. Will investigate.

Raccoon Sam
Posted on 01-15-09 05:10 PM Link | Quote | ID: 98747


Cobrat
Level: 56

Posts: 579/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
Hey, that's great!
I really appreciate the effort you put towards cross-platform compatibility.
Thank you!

____________________


Stifu
Posted on 01-15-09 05:39 PM Link | Quote | ID: 98750


Cobrat
Level: 56

Posts: 268/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
No problem.
I just value making my stuff work for as many people as possible, and not being too Windows-dependent. That's why I'm quite interested in Mono (although I can't test the Mac port, which is why I'm struggling to make a reduced testcase for this bug). I think I'd have gone for Java to make Epic Edit if I didn't know about Mono's existence.
I really started using Mono since the 2.0 release (last October), and have filed 13 bugs since then, 8 of which have been fixed, so they're quite reactive... They just need bugs to be filed, and they're good to go. For the record, most developers who use Mono go for GTK# rather than Windows.Forms, that's why the latter is usually much less tested, and therefore buggier. At least, that's my understanding of it.

On a side note, a Mac and Mono enthusiast helped me a bit by creating a Mac package for Epic Edit. Basically, it lets you launch an app file, as if it was a native program, so you don't need to bother with command lines or whatever... I'm just waiting for the above Mono bug to be fixed before I release this Mac package.

koala_knight
Posted on 01-15-09 06:33 PM Link | Quote | ID: 98752


Buzzy Beetle
Level: 44

Posts: 250/384
EXP: 589859
Next: 21426

Since: 06-01-07
From: Miami

Last post: 4097 days
Last view: 4084 days
Hey there Stifu!

I've gotta say, great job with this editor! It's looking amazing.

I'm thinking of starting a side project with this.

BTW, you might remember me from way back in the day at the CVDungeon forums. I was going by the name Inccubus back then.

Stifu
Posted on 01-15-09 06:48 PM Link | Quote | ID: 98756


Cobrat
Level: 56

Posts: 269/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
Oh yeah, that rings a bell. It's a small world.
Glad you like it, and don't hesitate to make suggestions.

Quick Epic Edit news: since Preview 2, I've implemented "clipping" (= partial repaint system) which greatly improves hovering speed (in Preview 2, it keeps on repainting the whole panel as you move your cursor over a track), making it more or less on par with how fast hovering was in Preview 1. Except partial repaints were implemented the wrong (dirty) way in Preview 1, simply because I didn't know about clipping... I'm learning all kinds of handy stuff as the development goes.
Meanwhile, Midwife has started work on the recompression...

PS: for the record, since Preview 2, a nasty Linux (possibly Mac too?) Mono bug has popped up due to the caching system. It makes it so laying tiles is *extremely* slow (as it updates the cached image).

CaptainEagle
Posted on 01-18-09 06:03 PM Link | Quote | ID: 98980


Red Paragoomba
Level: 18

Posts: 30/50
EXP: 26425
Next: 3472

Since: 12-11-08
From: None of your buisness

Last post: 5525 days
Last view: 5520 days
Okay First: This is great, i've always wondered what mario kart would be like with a track editor, and now i HAVE it. Its also quite possibly the easiest editor ever.

Thanks.

____________________

Stifu
Posted on 01-20-09 01:06 PM Link | Quote | ID: 99122


Cobrat
Level: 56

Posts: 273/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
CaptainEagle: thanks. Yeah, making it easy has been one of my top priorities... I've only tried Track Designer (old SMK editor) a little bit, and it suffers from a fair load of usability issues. You need 3 clicks to switch between tracks, then the track loading is a tad slow, and you can't work on more than one track at the same time (you need to save a track before you leave it, because only one is loaded at a given time). Also, it doesn't have zoom, which isn't too convenient to work with 8x8 tiles.
And MAKE (Japanese SMK editor) is even worse in that regard, it's a real usability disaster. It is basically all about hidden keyboard shortcuts.
That said, it has many features, while Epic Edit has usability but lacks features right now.

Racoon Sam: I'm pretty sure I've figured out the Mac Mono problem. I'll file a Mono bug as soon as I've got confirmation from the Mac user helping me out with this issue.
Did you ever try loading a ROM without hovering the center panel? This should work.

Raccoon Sam
Posted on 01-20-09 06:04 PM Link | Quote | ID: 99135


Cobrat
Level: 56

Posts: 582/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
Posted by Stifu
Racoon Sam: I'm pretty sure I've figured out the Mac Mono problem. I'll file a Mono bug as soon as I've got confirmation from the Mac user helping me out with this issue.
Did you ever try loading a ROM without hovering the center panel? This should work.

Yeah, now I can open a ROM.. but uh, all ROMs I try fail to load. I attempted a modified SMK (U) ROM, the original SMK (U) ROM, and a headerless SMK (U) ROM, all are "not the Super Mario Kart ROM"

____________________


Stifu
Posted on 01-20-09 06:19 PM Link | Quote | ID: 99136


Cobrat
Level: 56

Posts: 274/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
We have another Mac-specific Mono bug, then. :\
The editor should handle (J), (U), and (E) ROMs, headered or not. Only ROMs modified with MAKE are known not to work, at the moment.

Sucks I can't debug Mac stuff myself. I guess I could send you a modified version of Epic Edit that'd output data that'd let me figure out what's wrong during the ROM loading.

Raccoon Sam
Posted on 01-20-09 06:45 PM Link | Quote | ID: 99137


Cobrat
Level: 56

Posts: 583/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
Hmm.. I guess that'd work, too.
What detects the ROM authenticity anyway? Common bytes in the very beginning or what.

____________________


Stifu
Posted on 01-20-09 07:41 PM (rev. 2 of 01-20-09 07:42 PM) Link | Quote | ID: 99140


Cobrat
Level: 56

Posts: 275/666
EXP: 1358165
Next: 40011

Since: 02-22-07

Last post: 657 days
Last view: 278 days
It simply checks for 3 certain bytes. This is from data smkdan gave me.

This is the function:


public bool IsSuperMarioKart(int romHeader) // Checks whether the file loaded is Super Mario Kart
{
byte cartType = this._romBuffer[0xFFD6 + romHeader]; // Cartridge type. SMK has 05 here, if this byte in any SNES ROM is not 05 then it is not a battery backed DSP-1 game
byte cartRamSize = this._romBuffer[0xFFD8 + romHeader]; // Cart RAM size. SMK has 01 here, to say that there's 2KB of oncart RAM
byte cartRomType = this._romBuffer[0xFFD5 + romHeader]; // SMK has 31 here, to indicate a HiROM FastROM game

if(cartType != 0x05 || cartRamSize != 0x01 || cartRomType != 0x31)
{
return false;
}

return true;
}


In other words, one or more of these fail on Mac.
Just in case, you could manually check that your ROMs have the expected byte values, but I guess we already know they do.

If you're okay with it, we'll look into this together later.
It's unfair how smkdan doesn't care about Mono and didn't check his program (the gimmick! editor) with it, but it still works fine, while I made efforts regarding Mono compatibility and my program fails on Mac.

Raccoon Sam
Posted on 01-20-09 08:20 PM Link | Quote | ID: 99147


Cobrat
Level: 56

Posts: 584/672
EXP: 1376857
Next: 21319

Since: 02-19-07
From: Hi

Last post: 3439 days
Last view: 2670 days
That'd be superb! I'm willing to be of any kind of assistance, if it will help the mac development.
Probably the easiest way is to add a 'load anyway' button, but then again it wouldn't be the best choice and would probably give unwanted results.

____________________

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32


Main - ROM Hacking Related Releases - Epic Edit - Super Mario Kart track editor New thread | New reply

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

Page rendered in 0.073 seconds. (327KB of memory used)
MySQL - queries: 132, rows: 162/163, time: 0.058 seconds.