Finding breakpoint for "Course Overview" cutscene
#1
Trying to find a good insertion point for an event that doesn't really have any numbers associated with it, and isn't really triggered by anything other than normal game function - the opening "course overview" cutscene that plays at the beginning of each race.  The eventual idea is that I want to prevent the player from being able to skip this cutscene.  I'm guessing I can either nop out the function that skips it, or maybe find a way of preventing input while the scene is active.

The trouble is I'm unsure how to find the insertion point for something like this.  It's not an item, it doesn't really have to do with regular gameplay.  I tried putting a breakpoint on my controller to see if I could maybe figure out how the instruction is being executed when you skip the cutscene, but nothing I tried seemed to provide anything that made sense.  How would I go about finding the right insertion point?

Any tips greatly appreciated, thank you!
Reply
#2
Sometimes dynamic analysis (how the "How to Make Cheat Codes" tutorial is designed to teach) isn't the best approach. Instead Static Analysis is better. To get better at Static Analysis, you need to understand (for Assembly) function calls, and stack frames. Secondly, you need to learn C++ to understand the game at a "higher" level than Assembly.

Others have done such analysis, and have made what is called a symbol map (a list of all the game's function calls). What you can do for now is look at this symbol map (its incomplete ofc) and see if anything titled meets your criteria.

https://docs.google.com/spreadsheets/d/1...1562158736

For what you want, it may be as simple as finding a function and "blr'ing" it.
Reply
#3
(03-18-2024, 05:18 PM)Vega Wrote: To get better at Static Analysis, you need to understand (for Assembly) function calls, and stack frames. Secondly, you need to learn C++ to understand the game at a "higher" level than Assembly.

I'll be completely honest, this is for a competition, and there's no shot I'm going to be able to learn C++ at a level that I can understand the game's code before we host our competition.  The reason we're trying to do this is we plan on having a live band play the music, and we don't want anyone skipping that cutscene as it would throw off the band. 

If you or anyone else on this forum would be willing to take this on as a commission, I'd be willing to pay to have this code made.  When finished I'd want the code released to the public that way others can use it if they need, of course.  Apologies if that sort of thing is against the site rules, if it is I won't bring it up again.
Reply
#4
It's not against the rules at all. I personally am not interested.

We have a discord server btw - https://discord.gg/vKwjqrCBCp

You could ask there. To be honest, I don't think anyone will bite (even with monetary gain). Most Devs in the MKWii community are "worn out" for lack of a better term. We mostly work on our own personal projects, sort of like personal proof-of-works.
Reply
#5
For those coming across this thread in the future, I went on the Discord and Stebler was kind enough to write the code for me! Here's the code, ported to all regions:

PAL 045333f0 60000000
NTSC-U 0452e8a8 60000000
NTSC-J 04532d70 60000000
NTSC-K 04521448 60000000

This community is truly fantastic, thanks to all of you for your help.
Reply
#6
A neat code exercise for you would be to debug Stebler's code and see if you can write up something to do the opposite (auto-skip cutscene without having to press button).
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)