Language…
7 users online: cozyduck, Dark Mario Bros, Firstnamebutt, Golden Yoshi, Isikoro, qantuum,  Ringo - Guests: 242 - Bots: 373
Users: 64,795 (2,377 active)
Latest user: mathew

Skip Bonus Game Hack

Hello,

In casually playing through YI I got so annoyed at the bonus games that I made a patch to skip them. This is my first hack!

https://github.com/xaviershay/sneshax/blob/master/yi-skipbonus.asm

Initially I tried to find where in RAM triggered the bonus game, which would be a much neater way to do this. I couldn't figure that out though, so instead I just patched the start of the bonus game to immediately enter the map game mode.

I'm on OSX and can't figure out how to make an IPS from my patched ROM. I tried used uips (via ipsXP on wine because the native OSX downloads are all too old) but the IPS it generated didn't seem to do anything.

Code
> md5 yi-hacked.smc
MD5 = de3fc28197fe26932b81b1c5cc31b69c
> wine ~/.wine/drive_c/Program\ Files/ipsXP/uips.exe c test.ips yi-hacked.smc yi.smc
Creation test.ips...
081E46 000006
Fini
> md5 yi.smc
MD5 = 3e840beb108fbd2af884b6cd73d0d8e8
> wine ~/.wine/drive_c/Program\ Files/ipsXP/uips.exe a test.ips yi.smc
Application test.ips...
regulier  081E46 0006
Fini
> md5 yi.smc
MD5 = 3e840beb108fbd2af884b6cd73d0d8e8


Note the final MD5 sum hasn't changed :( Anyone know what I'm doing wrong, or have a better way of doing this?

EDIT: I just wrote my own IPS creator, turns out it's a simple format. Seems to work with Ruby IPS.

Thanks,
Xavier
Heh, guess I'm not the only one who really isn't a fan of the bonus games... :)

This looks like it will surely be useful for when I finally get started on my YI hack. Thanks!

(I haven't tested it out yet though so I'm only assuming at this point that it works the way it should, and the code looks about right as well. I'll take a closer look at it later.)
Twitter
The handomest people in the world are ones who follow my Twitch
I'd been playing with the sound off ... testing again now I notice the bonus game music plays for half a second before this kicks in. I mean, that's fine if you're just playing casual (totes saved me on two games tonight) but it's kind of gross. Will have to have another look, I think the music has been located in the ROM so can probably breakpoint it.
I think I remember reading some really really old thread on Acmlm or something about how somebody wanted to mess with YI's SPC data or something, and just by changing some byte they were able to get some song to stop playing entirely. Not sure how that works though. Maybe you could look into that?
Twitter
The handomest people in the world are ones who follow my Twitch
Hooray I found the right branch (finding the disassembly helped...), so now the music is skipped properly. Much simpler too.

I also documented the bonus game selection routine: https://github.com/TheGreekBrit/YoshiDis/pull/1

It's kind of interesting - at any point you can only get one of a pair of bonus games. I haven't figured out exactly what sets this pair ($0218) but I'm guessing something to do with progress - the first level of the game always gives Flip Cards or Scratch and Match AFAICT.

Also, you can't get roulette if you only have a single life! You'll get Match Cards instead.
Hey I noticed your pull request. Thanks! I'll take a look through it and merge it in later.
Pull request looks good, merged it in.

I might as well throw this here:

Quote
What's your policy on renaming the labels and adding constants for RAM locations? Would be much easier to read if !RAM_Lives = $0379 was defined.

You're more than welcome to fork our disassembly and add in the labels yourself. I'm not personally a fan of them, but that's just me.

Warning: Opinions expressed by Lexie or others in this post do not necessarily reflect the views, opinions, or position of Lexie himself on the matter(s) being discussed therein.


Yoshi's Island Disassembly C3 Thread
SPASM - LevelASM for Yoshi's Island!
Yoshi's Island Disassembly Data Dump Wiki
Originally posted by Lexie
You're more than welcome to fork our disassembly and add in the labels yourself. I'm not personally a fan of them, but that's just me.


hrm interesting, maybe the hex addresses start sticking if you look at them long enough :P
Originally posted by xaviershay
Originally posted by Lexie
You're more than welcome to fork our disassembly and add in the labels yourself. I'm not personally a fan of them, but that's just me.


hrm interesting, maybe the hex addresses start sticking if you look at them long enough :P

Haha yep! Disassembly took about 10 months to finish, so I got rather used to it.

Again, you're welcome to fork it. Raiden and I have been pretty busy with our jobs lately, so we haven't touched the dis much recently.

Warning: Opinions expressed by Lexie or others in this post do not necessarily reflect the views, opinions, or position of Lexie himself on the matter(s) being discussed therein.


Yoshi's Island Disassembly C3 Thread
SPASM - LevelASM for Yoshi's Island!
Yoshi's Island Disassembly Data Dump Wiki
Just pushed up new version to github, with an IPS as well.

I sped up the yoshi exit, so now the flower select lands as soon as you hit it; no matter what is selected you don't get a bonus game; and as soon as baby mario lands on the new yoshi that yoshi exits screen immediately.

That's probably as quick as I'm going to get it without literally skipping the game sequence or putting it into turbo mode, either of which would disrupt the game flow.