| |||
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 |
Stifu |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 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 |
| ||
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 |
| ||
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 |
| ||
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:
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 |
| ||
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. ____________________ |
Main - ROM Hacking Related Releases - Epic Edit - Super Mario Kart track editor | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 132, rows: 162/163, time: 0.058 seconds. |