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 - F-zero Maximum Velocity & GP legend | |
Pages: 1 2 3 4 5 6 7 8 9 10Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
BGNG

Snifit
Level: 22

Posts: 249/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-21-05 10:29 PM Link | Quote
You already have the panels in the ROM at 1D43FC. Using the tile and palette information, you'll be able to get pixel images of the panels fairly easily. But they won't do you much good unless you have a use for them. I recommend at LEAST making a compressor before trying to do anything with the panels.
Heian-794

Red Super Koopa
Level: 44

Posts: 874/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-21-05 11:49 PM Link | Quote
Firemaker, I've extracted, and then taken screenshots of, every last one of the panels, and you can view them here:

Panel screenshots, ZIPped

I printed these pages out and used them to plan out the sample course, which I'm going to try to implement.

This course is only 32x16 panels, instead of the "real" 64x64 size. Consequently I'm hoping to be able to put this in the game without having to compress it.

Here are some screenshots of the course I designed, using only existing panels and no custom-designed ones. I can only describe the entry of these panels into the editor as "painstaking" since I'm entering them directly into the code and then running the program. (BGNG, I'd like to have little text boxes where the user can change panels on the fly instead of having to re-run the program; is this possible?)

So. Screenshots here (your screen needs to be four thumbnails wide):





(Forgive the image-intensiveness!)

I now see that I botched the connection between two of the panels on the top row; got to fix that. Also, the starting line is on the left and is a bit hard to see.

I only attempted one "exotic" thing and that was to put ramps on the side of the course and have the player jump off them to get to the finish line.

Now I have to measure the X and Y coordinates of these panels so that the computer cars can drive also, and so that the starting line is where it belongs. BGNG, are those in "8x8 panel" units, or tiles?

BGNG

Snifit
Level: 22

Posts: 250/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-22-05 03:13 AM Link | Quote
If I remember correctly, the path coordinates clamp to 0 to 3FF, which is 1024 coordinate units.That means that one unit accounts for two tiles, or 16 pixels on the map. 0,0 specifies the top-left corner; the pixel in that spot.

And you can use a text box fairly easily. Just stick one on the Form (Text1) and say something like "Variable = Val("&H" & Text1.Text)" to convert the user-typed-in value from Text1 (as hexadecimal) into a number the program can use.
Heian-794

Red Super Koopa
Level: 44

Posts: 875/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-22-05 12:29 PM Link | Quote
BGNG, let me see if I understand you right. In the course above, the starting line would be at (12, 44) in decimal, or (0C, 2C) in hex?

This means that each actual panel is 4 units, and each 8 panels, as seen in the editor, represent 0x20 units. Handy. My course above is thus 0x80 units wide and 0x60 units tall.

So I could then put (staying in hex) another point at (0C, 16) for the first turn, then:

28, 16
36, 06
4A, 06 (just north of the rough)
4D, 08
54, 0C (avoiding the twist circle)
58, 18
60, 18 (navigating through the narrow part)
64, 14
68, 0C
78, 0C
78, 44 (OK not to have intermediate points on the backstretch?)
74, 44 (heading into the dash plate)
2D, 46 (hitting the last dash plate)
10, 48 (middle of the lower path)
0C, 44 (jumping off)
0C, 3C (landing point)


...for a full circuit of the track!

If this looks good, let me know so I can put it in the game along with this test track!



BGNG

Snifit
Level: 22

Posts: 251/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-22-05 08:34 PM Link | Quote
Looks like I did my math kinda backwards... The whole width of the track will be 3FF... So 1024 / 64 panels wide is 16 units per panel. And 16 / 8 tiles wide is 2 units per tile, not one unit per two tiles. So 0,0 is the top-left corner, 1,1 is in the middle of the first tile (4 pixels in each direction) and 2,2 is at the bottom of the first tile.

The numbers are stored as 16-bit, unsigned integers, so you'll have to stick a 00 to go with each of your values.

After the path points are plotted, you'll have to connect them together with the path definition, which immediately follows the points. These are pairs of bytes determining the point to use for the next point of the current path (since there are two paths in every course; they'll often coincide). I'm not sure how to change the number of points to use in the path definition, though.
Heian-794

Red Super Koopa
Level: 44

Posts: 877/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-22-05 08:46 PM Link | Quote
BGNG, OK, so I can basically just multiply those numbers by 4 to get the real numbers. Each panel is then 0x10 units on a side, and my map of 32 x 24 tiles is then 0x200 x 0x180 units.

Being able to arrange paths to 4-pixel accuracy is great -- we can have the computer cars sneaking in the gaps between damaged track and barriers; going right between twist circles, etc., etc.

Can I fill in the excess points by simply repeating the last point over and over?

This test course only needs to have one path, since there are no splits, and no pit areas that aren't in the middle of the course.

I'm starting to wonder if, if producing a full-22-course hack, it might not be better to draw the courses at the tile level and then make up our own panels based on those. While there may be over 3000 panels available, it can be difficult and frustrating to find ones that line up as you want them to.
firemaker

Level: 26

Posts: 221/247
EXP: 94178
For next: 8097

Since: 03-23-04
From: UK berkshire

Since last post: 17 days
Last activity: 11 days
Posted on 08-22-05 10:08 PM Link | Quote
Heian-794 In answer to your problem Why don't you do what Climax does. Have bigger panels made out of small panels, then afterwards you can edit those big panels. That would really help those who don't want to spend ages making each course.
Heian-794

Red Super Koopa
Level: 44

Posts: 881/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-23-05 08:37 AM Link | Quote
Firemaker, the panel size is fixed at 64 tiles, 8x8. Each panel is 1/64 of the course width.

In Climax, a panel represents 1/16 of the course width, or 4x4 MV panels, or 1024 tiles.

So we would have to somehow tell the game to only draw 16 panels, and, when making the panels from the tiles, to read the next 1024 bytes instead of 64, and to read them in lines of 32 instead of lines of 8.

I'm not sure how possible this is, but even if it were possible, we would then have to design some really good "super-panels". And the problem of not having enough panels to make a good course (256 is too few) would be back in our faces again. Maybea collection of 767 16x16 panels (four times as large as real panels; 0xBFD / 4 = 0x2FF = 767) would be a good compromise, but the work involved wouldn't be worth it.

The smaller 8x8 panels are fine; I just think that we might need to add more"properly-aligned" panels, i. e. ones that begin and end right on the edge of a barrier circle. Those are much more useful than the ones that end with barrier bits cut off at arbitrary points, because then you're constrained as to which panel you can put next to it. With a handy collection of these on screen in a kind of toolbox, we wouldn't have to go searching for a panel that fits.

The game seems to allow for 0xFFFF different panels, even though there are only 0xBFD of them. The panels begin at 1D43FC, and since each panel is 64 tiles wide, we should be able to point to panel definitions that are (0xFFFF x 0x40) bytes away in the ROM, meaning that we could maybe put some custom panels in the free space at the end. A few dozen neatly-made curves, corners, and slants would be a huge help in making courses, and we don't want to have to overwrite "real" panels, since that would mess up existing courses and thus basically commit us to editing the entire 22-course lineup.

Another option would be to take some of the redundant panels -- there are a lot -- and put our original panels there, "fixing" the game's courses so that they don't make use of the redundant panels. Then the free space would be available for new courses only.

I'm going to try to get those text boxes in the editor so that it's a little more useful. Starting on Thursday I'm going to be away from my computer for a week (going to Europe) and it would be nice to have some tangible progress for everybody.
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: 6505/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 08-23-05 10:57 AM Link | Quote
You don't need to reprogram the game to have these 'metapanels'. You select from a set of 32x32 panels, each made up of several 8x8 panels. You place it on the track, and the editor automatically places the appropriate 8x8 panels. Suppose you had a big panel made of panels 00 - 0F; when you placed it on the course the editor would just place panels 00, 01, 02 and 03, then below that panels 04, 05 and so forth.
Heian-794

Red Super Koopa
Level: 44

Posts: 883/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-23-05 03:01 PM Link | Quote
HyperHacker, that's a good plan. What if the "metapanels" aren't square? Any idea how to implement it in Visual Basic?

For example, there are many places where there are groups of "bound" panels that are designed to be used together, yet parts of them can also be used independently.

In this shot, using only panels up to 0x40, the red rectangles surround the "metapanels" used in the actual game, but the green rectangles surround parts of those which, thanks to the barriers being in just the right places, could easily be used by themselves.

Image Hosted by ImageShack.us

If you look carefully, you'll see that the game designers implemented the panels roughly in the order that they were needed -- the basic "blank course" panel became necessary at 0x000F, and they then used two of them, before going on to 0x0010.

If we could pre-define those big blocks, letting the user fill in anything desired in the empty areas (0x000F for instance), course editing would be a lot easier!



firemaker

Level: 26

Posts: 223/247
EXP: 94178
For next: 8097

Since: 03-23-04
From: UK berkshire

Since last post: 17 days
Last activity: 11 days
Posted on 08-23-05 03:55 PM Link | Quote
Originally posted by HyperHacker
You don't need to reprogram the game to have these 'metapanels'. You select from a set of 32x32 panels, each made up of several 8x8 panels. You place it on the track, and the editor automatically places the appropriate 8x8 panels. Suppose you had a big panel made of panels 00 - 0F; when you placed it on the course the editor would just place panels 00, 01, 02 and 03, then below that panels 04, 05 and so forth.


At least somebody got what I meant. tthat make good use for those who couldn't be bothered to look through 3000 tile pieces.
Heian-794

Red Super Koopa
Level: 44

Posts: 886/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-23-05 04:14 PM Link | Quote
Firemaker, I misunderstood you. I thought you meant that you wanted the game (not the editor) to have bigger panels, and if we did that, our editor would be no better than the mediocrity that is Climax.

So we could define quite a number of metapanels of various sizes and then get the editor to display a mixture of those plus whatever regular 8x8 panels we want to add in. That would be ideal.
firemaker

Level: 26

Posts: 225/247
EXP: 94178
For next: 8097

Since: 03-23-04
From: UK berkshire

Since last post: 17 days
Last activity: 11 days
Posted on 08-23-05 04:21 PM Link | Quote
Yes it would. A level editor on 3 levels. A metapanel stage, normal panels and tiles. It would work very well indeed. Those who wanted just to create a simple course could just use the metapanels while tose who wanted to creeate a stage panel by panel and use their own panels would use just a panel stage.
BGNG

Snifit
Level: 22

Posts: 252/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-23-05 07:21 PM Link | Quote
I wouldn't recommend redefining any of the panels on a tile-based level. If all the panels are left as they are, then that will allow for courses to easilly be implemented from other sources. If the panels are redesigned, then some courses will be biffed and fail to display correctly.

But as far as "metapanels" are concerned, those can just be defined in little "metapanel library files" and imported into the editor at run-time. That way, any number of "metapanels" can be supported and the selection can be upgraded whenever new data is available.
Heian-794

Red Super Koopa
Level: 44

Posts: 889/896
EXP: 611014
For next: 271

Since: 06-01-04
From: Kyoto, Japan

Since last post: 21 days
Last activity: 10 days
Posted on 08-23-05 08:46 PM Link | Quote
There's something I could do while I'm away and don't have access to my computer (off to Europe for ten days on Thursday): I'll take the printouts with me and start listing blocks of metapanels.

Redefining tiles might still be useful for people who want to go beyond basic level editing and release finished, edited-in-all-sorts-of-ways hacks. For example, many people here have used Lunar Magic to edit Super Mario World levels, and then followed this up by editing graphics, sounds, other data, and even assembly code. So our level editor should ideally work with the original game, but should still allow for people who want to edit the game further. Maybe recommend that people make new tiles in the free space.
Pages: 1 2 3 4 5 6 7 8 9 10Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - F-zero Maximum Velocity & GP legend | |


ABII


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



Page rendered in 0.039 seconds.