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
Heian-794

Red Super Koopa
Level: 44

Posts: 770/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-01-05 04:19 AM Link | Quote
BGNG, wait, does it say how long the strings should be, or does the game print characters until it sees a 00?

Also, I was experimenting with filling all the space in the course names, and if you use a character that isn't supported, like a colon, it glitches and prints a bunch of junk.

Maybe the difference has something to do with the fact that different fonts are used for those two places -- the course names are in 2-color+transparent fonts, and the ones in the ranking screens have 6 colors + transparency; they have that gradation look. The characters in each of those fonts seem to be the same, though. And the 8x16 font doesn't seem to be used at all.

I'm starting to like that "beatnik cafe" style music. Maybe we could replace the music that plays after you finish a course with it. OTOH, it's got enough length to carry a whole 2-minute race without sounding too awful.

VBA sure does have a lot of tools. I'm looking at the under-course backgrounds, and they range from simple drawings (Ancient Mesa, Fire Field) to really huge and complicated maps hundreds of pixels wide (Bianca City, Tenth Zone East)!
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-01-05 04:23 AM Link | Quote
I s'pose you could go through and find out which characters are supported and which ones aren't? That info will be needed.




EDIT:
Oh, and um... Yes: The game reads bytes until 00 is encountered. Zero-termination is the norm for strings in programming.




EDIT 2:
Like you found out earlier, Heian-794, the course map sprite data starts at 36C70C. This isn't anything too spectacular. It's just a normal array of 64 tiles, aligned by rows of 8 tiles; from left to right, top to bottom.




(edited by BGNG on 07-31-05 07:27 PM)
(edited by BGNG on 07-31-05 08:41 PM)
firemaker

Level: 26

Posts: 132/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-01-05 03:19 PM Link | Quote
I will go through all the different characters though i suspect that mainly letters and japanese characters will only be accepted.
Heian-794

Red Super Koopa
Level: 44

Posts: 771/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-01-05 03:30 PM Link | Quote
Firemaker, the English ROM doesn't have any kana in the fonts, except for a few of the course sub-names and car names that didn't need to be deleted.

I'm guessing that only characters defined in the fonts at 3959AC and vicinity are allowed. This means capital letters, numerals, and a few basic punctuation marks.



Edit: Also, remember the tile sets you were looking at? I've prepared a few more of the "under-course" background tile sets, which can be seen in VBA by setting the Tile Viewer character position to 0x6008000. Perhaps we can find these graphics in the ROM laid out in terms of their positions on these tables:



This isn't all of them; just the ones from Pawn and Bishop, excluding Ancient Mesa. Ancient Mesa is the shortest of all, with only about 70 different tiles making up its small image.

I had been working on finding the horizon palettes and have in fact tracked down quite a few of them. I'll post these next.



(edited by Heian-794 on 08-01-05 06:46 AM)
firemaker

Level: 26

Posts: 133/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-01-05 03:53 PM Link | Quote
the game appears to take almost all punctutation marks. no colon ir semi colon though. heres a pic

EDIT

@ Heian-794

BGNG already showed us where the background data si (3c0000 3f0000) and i have also known where it was since i first started corrupting the rom. take a look at it shouldn't be too hard to extract.


(edited by firemaker on 08-01-05 07:00 AM)
Heian-794

Red Super Koopa
Level: 44

Posts: 772/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-01-05 04:16 PM Link | Quote
Firemaker, good work. I didn't know that we had the under-course backgrounds yet.

Anyway, back to the horizon palettes, here's Crater Land: Loop Circuit. This is right in the middle of the

3c0000 3f0000 - Backgrounds & Horizons (Image Data) 

in his post #166.

There are lots here, but this is the color palette for the horizon background for Crater Land: Loop Circuit. It starts at 3DF5D0:

3df5c0 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ff 83 0a 05 4c 01 8f 01 0f a9 f0 cc 17 cd 32 cd

3df5e0 53 d1 93 51 b4 51 b6 59 b9 65 ba 69 bb 6d bd 75 ff 83 0a 19 cb 01 0d 82 4f 82 93 31 17 cd 32 cd

3df600 73 75 b2 1d f0 cc d2 41 17 cd 00 00 00 00 34 ca ff 83 ff 11 3f e6 27 1c ec 15 ce 60 1c a7 df a3

3df620 ef 50 73 75 96 41 35 45 58 31 3d 37 4c 01 8f 01 ff 83 6c 44 cf 54 31 61 04 2e 94 71 c8 3d 6d d1

3df640 f7 7d 00 00 00 00 31 61 cf 54 f7 7d 94 71 00 00


Edit: I was hoping this would look a little better than it does, but here's an example of some background hacking + changing the course name:




(edited by Heian-794 on 08-01-05 11:05 AM)
firemaker

Level: 26

Posts: 135/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-01-05 09:30 PM Link | Quote
nice, I'm going to see what i can do about the tile pices for the track cause i want to know wheere they are. i was able to completely and utterly destroy every single track but i couldn't figure out why. all i had was a screen with a sip on it the usually HUD but no track just white, if you went off the track course thoug you would immediately die. weird anyway i will see what i can do about that.

EDIT
just to let you know the adress is betweeen 360000 & 361000, im gonna narrow it down


(edited by firemaker on 08-01-05 12:38 PM)
Heian-794

Red Super Koopa
Level: 44

Posts: 773/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-01-05 10:20 PM Link | Quote
Firemaker, does that mean you could go right through the barriers on the sides instead of slamming into them? So you either removed the walls, or made them so strong that they instantly destroy your car.

The original F-Zero would let you mess around with which areas were flat track and which weren't, but it seemed to handle jumps differently -- if you hit a jump ramp where the game wasn't expecting one (let's say you put a panel with a ramp on it in several different places instead of just one), the game would instantly freeze.

Just downloaded Sappy and am finally getting it to work. The music sure sounds bizarre as MIDI files. Unfortunately this doesn't work with the other F-Zero games -- would be nice to insert some of the music from other games. With the extra ROM space, there's no reason we couldn't have a different tune for each course!


Last edit for today: nothing special on the level-editing front, but I've designed some spiffy new fonts. One (for the rank) is plain black and white, and the other two (speed and time) are in an engraved/bas-relief style.




(edited by Heian-794 on 08-01-05 02:15 PM)
firemaker

Level: 26

Posts: 136/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-02-05 12:00 AM Link | Quote
Originally posted by Heian-794


Just downloaded Sappy and am finally getting it to work. The music sure sounds bizarre as MIDI files. Unfortunately this doesn't work with the other F-Zero games -- would be nice to insert some of the music from other games. With the extra ROM space, there's no reason we couldn't have a different tune for each course!


Sappy is pretty cool but i really don't like thhe fact it only works with sapphire games cause i know loads of games i would like to use it on but can't anyway im turning in for he day as well. i'll investigate this weird area tommorow & BTW you go straight trough the walls and die. its just like if you hit a jump and miss the track.
Heian-794

Red Super Koopa
Level: 44

Posts: 774/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-02-05 06:24 AM Link | Quote
OK, just had a revelation and I'm right humiliated here! I'd been going into the ROM with a hex editor to mess with the palettes, and yet VBA can edit this stuff right there in the Memory Viewer!

Progress should be somewhat easier now.
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-02-05 07:39 AM Link | Quote
Lookie what I found at 3BF424 :



It's not colorized, but there it is... Beacon Port ground tile data; just like in the memory dump Heian-794 posted.


(edited by BGNG on 08-01-05 10:40 PM)
Heian-794

Red Super Koopa
Level: 44

Posts: 775/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-02-05 08:41 AM Link | Quote
BGNG, I've found what looks like more under-course backgrounds stored in 8-bit GBA format, but the only tile editor I can see them in is TilEd 2002, which is impossible to use (it displays ROM positions in decimal, has all kinds of Fisher-Price-like icons, and yellow-on-orange text in important places. Great functions, but subpar UI.)

FWIW, Synobazz seems to be at 4047648 (0x3DC320). If only Tile Layer Pro offered 8bpp tiles...

Edit: And Bianca City or one of the other urban ones seems to be at 3976224 (0x3CAC20), with others nearby. Is there some way to grab the palette from VBA and apply it to TilEd so that we can actually see this stuff? Could be some big finds here...


(edited by Heian-794 on 08-01-05 11:46 PM)
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-02-05 09:14 AM Link | Quote
Another breakthrough. Check it out:





What's that, you ask? Bishop 1 with Beacon Port's map and "Crossroad Circuit"? Not hardly. That is, without a doubt, Knight 2.



Remember Track Pointer Table A, that data that I found at 2B4EF0, but Heian-794 pointed out it started at 2B4EF4? Well... That's not it, either. The address is just a smidgen later than that... I'm not sure exactly where it starts, but it's in that vicinity.

Part of those 32 "unknown" bytes are the pointers to the floor and horizon data! I scanned the ROM for 083BF424 and the only result was in the aforementioned data... right under Beacon Port. That's the spot, I thought to myself, but how did it work?

Well, using some advanced techniques for transposition (copying more data from one place to another than I did before), I forced the Bishop 1 data on top of Knight 2... Nearly all of it.

The only thing that I found really out-of-whack is the fact that the palette changes still took place. Remember the funky purple-and-green swirls in Beacon Port? Well... That effect now causes the river in Bianca City to constantly change color. Neat effect, but I wouldn't want to live in a city with a glowing river.

Hopefully the cause for this is in Track Pointer Table B (starts at 2C2F20) and I'll be able to put together a full list of course properties tomorrow.
Heian-794

Red Super Koopa
Level: 44

Posts: 776/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-02-05 04:15 PM Link | Quote
Originally posted by BGNG


Part of those 32 "unknown" bytes are the pointers to the floor and horizon data! I scanned the ROM for 083BF424 and the only result was in the aforementioned data... right under Beacon Port. That's the spot, I thought to myself, but how did it work?



BGNG, newbie-ish question, but why are the bytes in regular order this time and not in reverse "24 F4 3B 08" like they were in the palette and music pointers? I've been doing my searching and such putting the bytes in smallest-to-largest order.

Also, is it possible to make changes in the memory in VBA and have the game reflect those changes? I made a nifty brown track to go with my night background -- trying to replicate the scene from Chapter 4 in FZGX -- and when I went back to the emulator window, everything disappeared!

Edit Here are some of the locations of palettes for the sky horizons. Some appear twice, and I can't quite figure out the full story, but in some cases, the 16 bytes preceding the sky palette make up the colors used in the barrier circles (first 7 pairs of bytes) and then the color of the track's "shadow" in the last pair (usually black or brown) come immediately before the sky. This is for Pawn and Knight; location of first byte in the palette. The palette usually extends for 0x3F or 0x7F bytes:

[Edited because it's been superseded by the colored chart below]



(edited by Heian-794 on 08-02-05 12:44 PM)
(edited by Heian-794 on 08-05-05 12:16 AM)
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-02-05 10:04 PM Link | Quote
All values in the GBA games are little-endian; that is: The value 0x083BF424 will appear in the ROM in the byte order of 0x24, 0xF4, 0x3B, 0x08.

As a rule of thumb: Don't use emulators to make changes in a game. Most of what you can change is stuff in RAM and can't be reverse-imposed into the ROM in the same manner. Instead, find a range of bytes in RAM and look for the same bytes in ROM. If they're there, it's likely to be the same data. Change it in the ROM and it should change in the game accordingly.
Heian-794

Red Super Koopa
Level: 44

Posts: 777/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-02-05 10:57 PM Link | Quote
BGNG, thanks for the advice. I'd gotten used to FCEUXD and its magical ability to interact with ROMs quickly and efficiently!

One more comment on the palette data before I'm off to bed...

VBA loads 512 bytes of colors into memory, and they seem to be roughly arranged like this (remember that each color is 2 bytes). We sometimes see them in the same sequences in the ROM:

00-04 mysterious background colors
05-18 black, gray, white, then a sky blue gradation
40-7F all blue 0x7C00 except for grays at 5D and 5E
8C-AF track color; usually shades of gray but with orange (conveyor belt color?) interspersed
(* these and next two rows "move" while you drive)
C8-DF gradient for your exhaust flames
E0-EB single "header" color, then purples for the boost panels
EC-EF green for the pit area (changes to white when you drive on it)
F0-FF gradient for the barrier circles; darkens when you hit it
100-101 header color again 120-121, 140-141 often the same
102-15F colors used in sky
160-1FF colors used in background below course (not all colors always used)

Then over on the sprite side we have the colors for the cars. Maybe I'll try recoloring them next.
BGNG

Snifit
Level: 22

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

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 08-03-05 02:45 AM Link | Quote
Okay... Here's the re-revised specification:

2B4F10 - Course Info Table A (76 bytes each)
00 1F - Name
20 23 - Music
23 27 - Unknown
28 2B - Palette
2C 2F - Horizon Something 1
30 33 - Horizon Something 2
34 37 - Horizon Something 3
38 3B - Horizon Palette
3C 3F - Floor Something
40 43 - Floor Palette
44 47 - Unknown
48 4B - Floor Definition




I've also found that the pointer table for which maps show up in the Rankings screen is at 2BF8D0 and is a pointer to the area in ROM (starting at 36C70C) to load tiles from. The Championship pointer, however, is found at 00F3B0.



And of COURSE that's not all there is to it.

Even though the venue specification has changed, the designation for the palette changing still remains intact. Also, the lava down there doesn't move. It's supposed to.


I was JUST about ready to release a Silence patch when I noticed something... Somewhere in the ROM are specifications to shift the pixels in the course description images a certain amount on the Rankings screen. Without them, "OPEN CIRCUIT" appears too far to the right.




Heian-794:
The last several posts have been interleaved. It's like there are two hacking movements under the umbrella of a single thread: level editing and graphics hacking.

In order to better organize said movements in terms of readability and archiving (since these posts will remain long after we're done with them), I propose that a second thread be created and dedicated to graphics editing.

I'm not saying that I don't want to hear about your findings or I feel that they're inconsenquential to whatever it is that I'm doing, but I feel the projects are different enough to be separated.

If you choose to create a second thread for Maximum Velocity graphics, make its title reflect that. Perhaps say "F-Zero Maximum Velocity - Graphics"... If you do, I'll find someone to change the title of this thread to make it focus on level editing.
Heian-794

Red Super Koopa
Level: 44

Posts: 778/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-03-05 03:36 PM Link | Quote
BGNG, I actually considered making another topic to kick around "F-Zero MV Aesthetics", with ideas for planets and backgrounds and the like, but the problem is that on these boards, you can't post twice in a row. If you make some progress in level editing, someone has to follow it with more progress in the same thread/area in order for you to update; otherwise you're stuck editing your post again and again. I can't seem to improve on your progress in level editing, or I'd post on that too.

So we end up with one thread for the whole game, with each hacker making progress in a different area. I think we should keep the single thread for all things FZMV, but if we want to archive this stuff (on MFO, for example), things should of course be separated by subject.

Back to your latest findings --

2B4F10 - Course Info Table A (76 bytes each)
00 1F - Name
20 23 - Music
23 27 - Unknown
28 2B - Palette
2C 2F - Horizon Something 1
30 33 - Horizon Something 2
34 37 - Horizon Something 3
38 3B - Horizon Palette
3C 3F - Floor Something
40 43 - Floor Palette
44 47 - Unknown
48 4B - Floor Definition


Could the map sprite (36C70C and later as you've shown) be in here somewhere?

Also, there seems to be a huge disparity in the complexity of the floors -- Fire Field and Ancient Mesa are basic pictures of lava and ice, a few pixels wide, whereas Bianca City, Tenth Zone East, and the urban landscapes are very complex. If the Course Info Table contains a pointer to that, we would expect to see a pointer to a very long string of data.

I'm going to play around with those "Horizon Something" 1, 2, and 3 and see what happens. I'm guessing that the difference between "foreground horizon" stuff and "background horizon" stuff might be an issue.
firemaker

Level: 26

Posts: 138/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-03-05 07:48 PM Link | Quote
well ithink i have found out where the levels tiles are stored but it appears that they are compressed. if you take a look around the area 360b00 to 360c00 that the tiles are and near it is the actual tiles that make up the tracks.
Heian-794

Red Super Koopa
Level: 44

Posts: 780/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-03-05 08:15 PM Link | Quote
Firemaker, how many do there seem to be? Does it match the tiles you found in memory earlier? If we could figure out how these tiles are grouped to make track parts, and in turn how track parts make courses, we're all set.

Are you seeing these in a graphics editor at 4bpp?

BGNG, I'm looking at the first "Unknown" (24-27) in your list. I notice that all the regular courses have 08360B0C in that position, with the exception of the 2-player Silence, which has 08364B0C. What is being stored at 08360B4C? Is that something to do with Silence's special status as a 2-player, single-pak only track?

Here are the bytes located at those two spots, beginning a bit before. 360B0C is where the 00s begin, and 364B0C starts at 3f 3e 3d.... Looks like only the first 40 bytes are being referenced, or only those bytes are different:

360b00 70 34 1d 08 30 3c 1d 08 fc 43 1d 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
360b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
360b40 00 00 00 00 00 00 00 00 00 00 00 00 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
360b60 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 1c 1a 02 02 02 02
360b80 02 1c 1a 7f 02 02 02 02 02 1a 7f 7e 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
360ba0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 1a 1c 02 02 02 02 02 02 7f 1a 1c 02

364b00 50 50 51 52 51 50 50 51 50 51 52 51 3f 3e 3d 3c 3b 3c 3d 3e 3a 3b 3a 39 38 37 38 39 35 36 37 36
364b20 35 34 33 34 30 31 32 33 32 31 3f 30 3c 3d 3e 3f 3e 3d 3c 3b 39 3a 3b 3a 39 38 37 38 36 37 36 35
364b40 34 33 34 35 33 32 31 30 3f 30 31 32 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
364b60 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 1c 1a 02 02 02 02
364b80 02 1c 1a 7f 02 02 02 02 02 1a 7f 7e 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
364ba0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 1a 1c 02 02 02 02 02 02 7f 1a 1c 02

One more edit: BGNG, I thought it might be easier for people to figure out the meanings of the missing items in your Course Definition list if they were aligned in 76-byte rows. I left the first 0x19 bytes, which are perfectly clear (course name in ASCII) off, and created this:




(edited by Heian-794 on 08-03-05 11:30 AM)
(edited by Heian-794 on 08-03-05 12:17 PM)
(edited by Heian-794 on 08-03-05 12:37 PM)
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.022 seconds.