Language…
17 users online:  BeeKaay, ben15420, DanMario24YT, Fullcannon, Golden Yoshi, Gorry, Green, Heitor Porfirio, JPhanto, Metal-Yoshi94, Michel2023, NewPointless, OrangeBronzeDaisy, playagmes169, Ray Hamilton, Skystarmania,  yoshi3706 - Guests: 275 - Bots: 509
Users: 64,795 (2,369 active)
Latest user: mathew

Has anyone ever tried to hack F-Zero (SNES) with ASM or similar?

Didn't know some of this can be easily doable, that's very nice.

Originally posted by CatadorDeLatas
I'm actually working on a new F-Zero track editor (THE BIG REVEAL!).

The New F-Zero editor sounds awesome! even if still there isn't someobody that knows more about C++ stuff, that sounds progressive, congrats for your effort!

Originally posted by CatadorDeLatas
(pick Golden Fox and accelerate while strafing, pay close attention, you'll know what I'm talking about).

Yes, I noticed that, it also happens when you land with Down button and strafe, your vehicle will have the jumping sprite and it will appear the strafing pipes positions (Depending which direction you're strafing).

Originally posted by CatadorDeLatas
The only problem I see is that some characters don't actually exist in the game (for instance, 'J', 'Q' and 'Z'). Would it be possible to add these characters into the game? Maybe.. VRAM space is very thight...

I actually have the full abc plus some custom signs, I'm working on it from time to time, specially whenever I make videos and I need an specific sign (You can notice in some of my videos I have custom letters).



This is actually a "personal" work, but I'll share it with you guys (Don't ask why, I just had the idea to release it some other time, but take this leaked unfinished image).


In other news, I'm making a custom palette ROM hack, When I finish it, I will release the palette ID's for everyone to edit.



I wanted to test the HDMI interface (I think the transparency effect is called HDMI?) to a darker color, and thanks to your RAM map, I've managed to change the HDMI gradient of the course!



It doesn't seems bad, althrough the colors seem to be too bright, but you get what I mean.

The color gradient has the same ID as the other dark courses (7E009CA3).

You can see the bottom of the horizon doesn't combine with the other colors due to the HDMI gradient hides the bottom of the horizon (As mentioned before, the colors are too bright, but the thing here is the overlap of the HDMI gradient over the horizon colors), so you will need to modify these last palettes in a way that will combine with the other colors, as well as most of the colors to be darker or brighter, althrough I think Forest (BS F-Zero 2 Satellaview) courses are bright but with the dark gradient (I often I have dreams that someday we will get a dump from Forest and Metal Fort, but I don't expect anything, but that's another thing).

If:

HDMI color gradient is bright: set bottom horizon colors darker.
HDMI color gradient is dark: set bottom horizon colors brighter.
(I hope it's understandable what I'm trying to say)

Even through I want to make this, I'm not sure if patching the ROM with the cheat code will work, since I don't know how to make patches, and I don't know if the HDMI gradient will set only in the course I want, or it will be in every course.


Althrough I'm thinking about releasing the ID palettes, these may be different in every ROM due to the tiles set in Mode 7 may put extra colors if a course has diverse tiles (For instance, Jump plates, Mines, Dirt, Ice, etc), thus setting diferent ID for the palettes, I'm still not sure if this happens, because I put an address in a different ROM and it led me to another colors, the ROM may have every color for every tile even if some of these aren't used in the course, but that will need some research to conclude if that is the case.
Also, I don't know if headless and non-headless ROMs has the same ID for the palettes (Which is the correct term? I've seen headless and also headerless, maybe the two? whatever).

I also noticed if you change a color that doesn't actually displays in-game, it can lead to weird Mode 7 glitches depending on the degree you're facing.

Originally posted by CatadorDeLatas
(the track floor background in some venues actually use this palette cycle trick to emulate a "tile animation" effect, it's very clever if you think about it).

While editing palettes I noticed that there are more colors that it should be in-game, so every "sprite" of the animated tiles are actually "different" tiles with either the same or different palettes (Maybe?).

By the way, I'm using SNESPal to change the colors, it's pretty easy once you're used to work with it.

Originally posted by CatadorDeLatas
As for the second bug you've showed, this looks like something caused by the cheats, maybe? Do you happen to know what cheat you were using, this could help me find what exactly happened.

These 3 cheats were activated.
7E000986
7E001163
7E001601

I tested it recently, and it happens to be slowdowns and sometimes the horizon glitches.

This is the normal horizon:



2-3 frames after, this happened (the 1-2 frames after the first screenshot were a slowdown):


Check out my YouTube channel in your meantime, I have some F-Zero stuff there

Fuzee tutorial (F-Zero hack editor) made by me!
Originally posted by Alejandro
The New F-Zero editor sounds awesome! even if still there isn't someobody that knows more about C++ stuff, that sounds progressive, congrats for your effort!


Thanks! I'm writing the editor in C#. I have general knowledge on programming, but I don't quite have a grasp on object oriented programming, so at the moment the code is looking extremely ugly, everything is crammed into a single class (to any of you reading this, sorry if you program in C# and my sentence just hurt you). Hopefully by the next year I'll have a better understanding of OOP so I can improve on this.

On a side note, this is how the editor itself looks like:

(Ignore the "F-Zero Mode7 Tileset Viewer", this is the name because the project started with me wondering if I could generate a bitmap of a track's Mode7 tileset).

Yes, it will work with all versions of F-Zero (F-Zero JP/US/EU, BS F-Zero Knight/Queen/King/Ace, BS F-Zero 2), though I'm still deciding if I should support F-Zero EU (PAL).. Playing F-Zero in 50fps is just painful.

This is still very early and you can see some stuff heavily inspired by Fuzee: The AI path and the special road/wall tiles ("push" R, "push" L, "main road" M, "byway road" B, "byway wall" B)
That 16x16 tile arrangement on the top-right is just a test really.

Editing is still not a thing yet, so it's more of a visualization tool at the moment

Originally posted by Alejandro
I actually have the full abc plus some custom signs, I'm working on it from time to time, specially whenever I make videos and I need an specific sign (You can notice in some of my videos I have custom letters).


Oh, that looks so nice! If I ever get to be able to add more letters to the 16x8 alphabet, I'll try using these!

Originally posted by Alejandro
If:

HDMI color gradient is bright: set bottom horizon colors darker.
HDMI color gradient is dark: set bottom horizon colors brighter.
(I hope it's understandable what I'm trying to say)


I think I get what you say, this should be easy with editing just a few bytes.
Also, the effect used is called "HDMA" (for Horizontal DMA, Direct Memory Access). The best way I can explain this effect is that it changes a property in the SNES PPU (Picture Processing Unit) at each scanline you specify to certain values. In the case of the "fog" gradient, it just changes the "color data for color math".
HDMA is also used for other stuff, like the Mode7 perspective effect. Without it, the game would look like a top-down racer with a rotating map (exactly like in the Master ending credits)

Originally posted by Alejandro
Althrough I'm thinking about releasing the ID palettes, these may be different in every ROM due to the tiles set in Mode 7 may put extra colors if a course has diverse tiles (For instance, Jump plates, Mines, Dirt, Ice, etc), thus setting diferent ID for the palettes, I'm still not sure if this happens, because I put an address in a different ROM and it led me to another colors, the ROM may have every color for every tile even if some of these aren't used in the course, but that will need some research to conclude if that is the case.
Also, I don't know if headless and non-headless ROMs has the same ID for the palettes (Which is the correct term? I've seen headless and also headerless, maybe the two? whatever).


I don't quite get what you want to say. Some colors in the palette are shared across several tiles (e.g dashplate/pitarea/landmine).
Also, the correct term is headerless (or unheadered) and headered.

For headered ROMs, the palette location (address) will be (unheadered palette location + 512 bytes)

Originally posted by Alejandro
I also noticed if you change a color that doesn't actually displays in-game, it can lead to weird Mode 7 glitches depending on the degree you're facing.


It may be because you weren't actually modifying color data, but actually other data (maybe even code!). SNESPal just interprets every 2bytes as colors, regardless of what it actually means inside the ROM

Originally posted by Alejandro
While editing palettes I noticed that there are more colors that it should be in-game, so every "sprite" of the animated tiles are actually "different" tiles with either the same or different palettes (Maybe?).


The tileset graphics are never changed (unless a new track region is loaded), what changes is the palette the tile uses. I won't be able to explain this in a great way, but think have a look at this explanation image:


Originally posted by Alejandro
These 3 cheats were activated.
7E000986
7E001163
7E001601


Ah, that explains it. These are memory addresses used for temporary stuff. They don't have a "specific" purpose, they'll mostly show unpredictable results.
I'm reverse-engineering and hacking F-Zero (SNES)!

My YouTube channel, with various hacking tests
Originally posted by CatadorDeLatas
Yes, it will work with all versions of F-Zero (F-Zero JP/US/EU, BS F-Zero Knight/Queen/King/Ace, BS F-Zero 2), though I'm still deciding if I should support F-Zero EU (PAL).. Playing F-Zero in 50fps is just painful.

Just awesome! I can't believe this will be a thing.
If is not hard to implement F-Zeros into the editor, give F-Zero PAL a try, maybe there is people that actually like it (With a warning explaining that F-Zero PAL is slower than the other F-Zeros).
The fact that you actually managed to put F-Zero 2 into the editor is awesome! I really like this for some reason (Maybe because F-Zero 2 is underrated).

Originally posted by CatadorDeLatas
Also, the effect used is called "HDMA" (for Horizontal DMA, Direct Memory Access). The best way I can explain this effect is that it changes a property in the SNES PPU (Picture Processing Unit) at each scanline you specify to certain values. In the case of the "fog" gradient, it just changes the "color data for color math".
HDMA is also used for other stuff, like the Mode7 perspective effect. Without it, the game would look like a top-down racer with a rotating map (exactly like in the Master ending credits)

Oops, my bad, thanks for the clarification and info!

Originally posted by CatadorDeLatas
I don't quite get what you want to say. Some colors in the palette are shared across several tiles (e.g dashplate/pitarea/landmine).

Okay, I will try to explain it more carefully.

First of all, the Pit area, Magnet barriers (Port Town) Road magnets (White Land I, or 235A in Fuzee) and Dash plates share palettes, But there are items that don't share palettes with any other tile, items like Ice, Dirt, some color of Mines, and Jump plates.

Some levels don't have certain items nor don't have their palettes, For instance Death Wind I and II don't have Jump plates.

I believe that if you set one, these palettes will appear in-between the palette list for Death Wind (As the Jump plate is not originally in that region, also it doesn't share colors with any other item).


What I don't exactly know is:

The palettes for every item (Jump plate, Dash plate, Mine, Dirt, Ice) is actually registered in an order in every region, even if there is no item on that region in-game...

Or

The item palettes just appears only if there is one or more items in a region that doesn't has them normally (Like setting Mines in Big Blue)...

If is the latter, I believe the game will set these extra colors (Mine, Dirt, Ice, Jump plate) in the region's palette list, making a slightly larger palette list, thus obtaining different color values for the adresses as the list will set more, or less colors, being different values for the adresses in different hacks, as they may have or not have certain items and palettes in certain regions.

I hope that helps.

Originally posted by CatadorDeLatas
The tileset graphics are never changed (unless a new track region is loaded), what changes is the palette the tile uses. I won't be able to explain this in a great way, but think have a look at this explanation image:

Got it, I also didn't seem to explain myself correctly, but the idea of how it works is understandable.


Talking about palettes, I've recently changing Death Wind's palettes (In a Fuzee F-Zero ROM), as you know, the checksum gets bad as you change the colors:



But if setting specific values it can make a good checksum:



This seems to be precise, I think people like to have their ROM checksum fine, so there is a way to make it without tools that fixes checksum (Even though I don't know exactly what a bad checksum means, I also like to have a good checksum).
Check out my YouTube channel in your meantime, I have some F-Zero stuff there

Fuzee tutorial (F-Zero hack editor) made by me!
Originally posted by Alejandro
What I don't exactly know is:

The palettes for every item (Jump plate, Dash plate, Mine, Dirt, Ice) is actually registered in an order in every region, even if there is no item on that region in-game...

Or

The item palettes just appears only if there is one or more items in a region that doesn't has them normally (Like setting Mines in Big Blue)...


All of the palettes for every item are registered in the same order for every region. Specficially, 112 colors dependant on region (and variation, in case of Mute City).

Also, as a kind of a correction, the blue part of the jump plate is actually shared with the ice palette. This explains why jump plates in Fire Field look a bit different.

Originally posted by Alejandro
This seems to be precise, I think people like to have their ROM checksum fine, so there is a way to make it without tools that fixes checksum (Even though I don't know exactly what a bad checksum means, I also like to have a good checksum).


I believe there are already some tools out there that can correct a SNES ROM checksum. The checksum doesn't affect anything in gameplay, it's just a way to know if a ROM has been modified.
I'm reverse-engineering and hacking F-Zero (SNES)!

My YouTube channel, with various hacking tests
Hey sorry I've been away for so long! I still check this thread monthly. Good to see more people interested in F-Zero hacking.

Catador you're doing some awesome, insane, amazing stuff! Keep up the great work. Can't wait to see your editor one day. Fuzee can be a headache sometimes, but I don't have to tell you that.

Originally posted by CatadorDeLatas

- AI cars that are marked as "invisible" and "exploding" will not have collision enabled for other AI cars anymore;

What does this mean?

Originally posted by CatadorDeLatas

Here's the download to the new version patch. (Download from Google Drive)

(The patch has a name is now, "New F-Zero Mechanics", let me know if you can suggest a better name.)

Again, I wasn't able to make it Fuzee-compatible because Fuzee won't work properly with expanded ROMs. I'll still need to figure out a way to modify Fuzee to make it accept expanded ROMs, but the main problem is that I'm not familiar with C coding.


I'd like to try out the new Climax mechanics, but I can't get the patch to work... I've expanded the rom to 4 MB and all kinds of sizes, but nothing works. All I get is this screen:

I'll post back more in depth soon.
Just wanted to post that the guy who made the online multiplayer SNES F-Zero (F-Zero VS) has re-uploaded the source code (after 9 years!): http://fzerovs.blogspot.com/2009/06/f-zero-vs-source-code.html

FZVS is basically a server-based multiplayer version of SNES F-Zero which uses a modified version of snes9x to allow people to connect together.
Hello Catador! Big fan of your work on F-Zero, I am the creator of the video you commented on a few months back on Reddit:

https://www.youtube.com/watch?v=AViPja1qtak

Turns out, this video is not a hoax at all, in fact many of the software modifications for this mod were based on your RAM map!

Two days ago I officially announced my project, the Ultra Net Network Adapter for SNES. Here is a link to the twitch stream:

https://twitch.tv/ultranetsnes

I really have to thank you for all your hard work mapping out the functions and memory locations in F-Zero, my work would have been much harder without it. Hope to hear from you soon buddy.

-Grego Lewandowski
Now THAT'S certainly interesting, I've watched part of the stream and I'm looking forward to seeing more of this!

Just a question, did you actually reverse-engineer the compression method on the car select screen?
Or did you use some space on the expanded ROM to insert the (non-compressed) edited car select screen tilemap(s)?
It seems like you actually modified

Coincidentally enough, I took my time yesterday to understand (and successfully decompress then recompress) the tilemaps for this screen (and automatically the tilemaps for the Records Menu, since it uses the same compression scheme.)
I'm reverse-engineering and hacking F-Zero (SNES)!

My YouTube channel, with various hacking tests
Given the rapid pace of this project I cut corners in my mod, so trying to decompress/recompress any tile data was out of the question. I used memory editors to modify the tile data, dump it, and reinsert it in a separate bank of rom to be loaded immediately after the menus load. You are a very smart guy, I'm surprised you didn't realize I used raw data in your Reddit post ;D Congratulations on decompressing those screens, you are constantly breaking new ground in F-Zero modding. I would definitely like to talk to you more about F-Zero hacking and where I think we could work together. Please contact me via email ([email protected]) so we may talk in private.
Hey Catador, please check your email I have a lot to talk to you about.
Catador and I have released our first mod together, F-Zero Final!

http://www.romhacking.net/forum/index.php?topic=26750.msg362147#msg362147

https://github.com/originalgrego/FZeroFinal

It adds the content from BS F-Zero Grand Prix 2 to F-Zero making ace league available. It also prepares F-Zero to load custom leagues and tracks from the level editor Catador and I are working on.

The league selection menu and practice mode have been updated to support the new league/tracks.

We are working on a v0.2 which will add the additional hover cars from GP2, so keep an eye out for that in the coming weeks.
Hello folks! Lemme introduce myself, I'm the owner of the F-Zero Online community/discord. We've started this thing like 2 years ago with Catador and those folks as a means of collecting people that are interested in hacking any sort of F-Zero (current most popular is F-Zero SNES). For a side thing we do is organize Online Matches, Tournaments etc. via FZVS or the other netplay availabilities of the other F-Zero Titles. You can find alot of folks to play online against!

Eventually we've reached alot of new members and alot of awesome new projects! With the latest addition of grego (this dude is amazing) in our Dev team, we've reached places we only dreamed of (F-Zero Final etc.).

Popular rom hacks right now like ACE Mod and Classic Mod have evolved from F-Zero Online. So be sure to be part of our Community! #w{=)}

Join our discord: https://discord.gg/DeJ3VQN
I don't think I've seen any F-ZERO hacks out there, or if there are any, they don't seem to be very well known. The reasoning I can think of would be F-ZERO uses a MODE-7 Cartridge Chip, and the worlds you race in are just images rendered in some form of mode 7. And to make the game render something different from what it was programmed to render might be a pain in the butt. So people probably don't hack the game as much compared to other games. However if it has a hacking tool there probably IS a community out there for the stuff.
Do NOT take my responses for any sort of fact, I am as one would say a NOOB. I am by no means a "L33T Hax0r" and yes that WAS a reference to the hammerbros from partners in time.
Version 0.2 of F-Zero Final is coming soon, we've made a trailer for you to enjoy:

https://www.youtube.com/watch?v=UzmOP23_F6A

Please join us at the Ultra Net twitch channel September 15, 2018 for the full debut of F-Zero Final and F-Zero Final VS!

https://www.twitch.tv/ultranetsnes
The original F-Zero has a problem that must be fixed.

Golden Fox can't 1st place at death wind on master difficult, just 3rd.

I hope this project can fix it.

Que orgulho ver um brasileiro hacker.
Sorry to necro an old post, but I am curious about hacking F-Zero to "Change booster to work like in F-Zero X", as mentioned in the original post. Especially after getting into F-Zero 99 on the Nintendo Switch.

I'm guessing the original poster CatadorDeLatas has given up on his quest. I have very little assembly or hacking experience, but fancied a go at maybe trying this myself. What is the best way to start simple assembly code changes? I assume you should use a "Super NES ROM Disassembler" and then modify and recompile the code with the changes?
Hi. I'm also interesting about that.