Page 1 of 1

Anyone want to learn how to convert games to fastrom?

Posted: Tue Sep 24, 2024 4:06 am
by kandowontu
Could be a fun thread, lmk if anyone has any interest!

Re: Anyone want to learn how to convert games to fastrom?

Posted: Tue Sep 24, 2024 8:24 am
by BenjaminCM
Maybe me after I learn SRAM with Billy. X)

Re: Anyone want to learn how to convert games to fastrom?

Posted: Tue Sep 24, 2024 4:44 pm
by Mattrizzle
Why not do it rather than ask? If the info's out there, it might inspire someone else to make a FastROM hack. Are you planning on this being something more interactive for the participants in this thread than just a fully-written tutorial? If so, I might not be ready to jump in just yet but it does interest me.

One game I've been curious about giving the FastROM treatment to is Super Bomberman 2. If I recall correctly (it's been over a decade since I've messed with it) it might already be using FastROM due to the game executing in banks $80+, but the game often slows down immensely in the Normal Game mode when there are more than just a couple of enemies in a level. This first becomes apparent in the second area of the first stage. It could be due to bad programming though, as the game changed CPU flags (via the SEP and REP instructions) way more than any other one I've dealt with to date.

Super Bomberman 2 is a unique installment in the series, as it has larger, scrolling stages in its Normal Game/Story Mode, something its predecessor and three sequels lack. This and the aforementioned slowdown may be why 2 is the only one of the 5 Super games where the mode cannot be played in 2P co-op.

Re: Anyone want to learn how to convert games to fastrom?

Posted: Tue Sep 24, 2024 5:10 pm
by kandowontu
Mattrizzle wrote: Tue Sep 24, 2024 4:44 pm Why not do it rather than ask? If the info's out there, it might inspire someone else to make a FastROM hack. Are you planning on this being something more interactive for the participants in this thread than just a fully-written tutorial? If so, I might not be ready to jump in just yet but it does interest me.

One game I've been curious about giving the FastROM treatment to is Super Bomberman 2. If I recall correctly (it's been over a decade since I've messed with it) it might already be using FastROM due to the game executing in banks $80+, but the game often slows down immensely in the Normal Game mode when there are more than just a couple of enemies in a level. This first becomes apparent in the second area of the first stage. It could be due bad programming though, as the game changed CPU flags (via the SEP and REP instructions) way more than any other one I've dealt with to date.

Super Bomberman 2 is a unique installment in the series, as it has larger, scrolling stages in its Normal Game/Story Mode, something its predecessor and three sequels lack. This and the aforementioned slowdown may be why 2 is the only one of the 5 Super games where the mode cannot be played in 2P co-op.
Yes, I do want this to be interactive :)

Super Bomberman 2 is already fastrom from the factory :D

Re: Anyone want to learn how to convert games to fastrom?

Posted: Sat Sep 28, 2024 10:08 pm
by Duke
A video or stream series about it would be really cool

Re: Anyone want to learn how to convert games to fastrom?

Posted: Mon Sep 30, 2024 10:03 am
by bogaa
Duke wrote: Sat Sep 28, 2024 10:08 pm

A video or stream series about it would be really cool

Kando did stream some of the conversions but he did not highlight his video so they are gone.
https://www.twitch.tv/kandowontu/videos

He showed many cool tricks to make it more efficient to play through the games like using cheats and fast forward. I loved his streams so inspiring and somewhat entertaining.. not like the unwatchable crap I produce. :lol:
He did the game from start to finish in a view hours. Put a bow on it and released it in the same stream.

Once you have a usable disassembly made in diztiguish with a play-through the main issue will be that you need a little programming/assembly knowledge to keep register $420D enabled.
A written guide with tips,trick and pitfalls would be cool too. You can also address where to get the coding knowledge required there a bit better.

I think when someone would like to do it he could just do it with the info out there.. but proof me wrong!
I find it very awesome to just find a folder full of disassembly on his github you could just take and improve upon in case you like to document a game a bit. Since playing through a game always toke me very long and I did run into all the pitfalls along it. Like let BSNES crash and lose my usage.bin file.. Though that one is not that important for fastRom conversion anyway..

May be I should be the slow-ROM guy how converts that Super Bomberman 2 to slow-rom to see how laggy it could be. But then I have so many other projects that I am interested in.


Re: Anyone want to learn how to convert games to fastrom?

Posted: Tue Oct 08, 2024 2:57 am
by slidelljohn
kandowontu wrote: Tue Sep 24, 2024 4:06 am

Could be a fun thread, lmk if anyone has any interest!

I can already do the all of fastrom stuff but I'm still interested in seeing you post stuff about it. If you plant them seeds they will eventually grow.

Here is a little something for fastrom straight from the snes dev book. Caution #14 and #15:
Image
Image


Re: Anyone want to learn how to convert games to fastrom?

Posted: Wed Oct 09, 2024 11:41 pm
by bogaa

I always loved your insightful and informative posts slidelljohn. A lot of the time I did learn stuff when people could just outline the work in simple therms. Then I would pickup what I need form there. Sure there is a lot to be added..

Here is how I would go about it.

  • Make a disassembly so you can move code to a new location. Diztinguish does not just automate the process but it can produces good results.
  • When using Diztinguish you can then assemble the game with ASAR. On a LowROM you change the "ORG $008000" to "ORG $808000" to encode addresses to the higher bank numbers!
  • Set a breakpoint on $420D so you find the routine to hijack and write new code.
    Image
  • Then set a range of breakpoints for the lower banks where it should not execute anymore to be fastROM and address the fixes.
    Image
  • You can change the header bit but as far as I know that does not infuanc the speed anywhere
    Image

Here are some example projects made by VitorVilela. He made asm patches that just address the changes and can be applied to the original ROM.
With the method mentioned above it is a bit of a hot take since you have full game assembly projects..
https://github.com/VitorVilela7/fastrom

Also like to mention that the fastROM projects does not need to be perfect in order to run fast. If you just execute most of it in PPU at 3.58 MHz instead of 2.68 MHz it makes a difference.
Might also be a bad example since I do not know if a indirect ROM read does influence the speed at all.. having it execute on higher bank is most important.


Re: Anyone want to learn how to convert games to fastrom?

Posted: Thu Oct 10, 2024 5:05 pm
by bogaa
Duke wrote: Sat Sep 28, 2024 10:08 pm

A video or stream series about it would be really cool

I never realized kando had a youtube till I watched his famidash trailer..

Here is a video of him doing one.. I swear his stream was so much entertaining and inspiering :D
But a video is a video so have at it if you like:
https://youtu.be/0pZI2FVB0XE?si=cjFWHfkI6CFGeJr8


Re: Anyone want to learn how to convert games to fastrom?

Posted: Mon Oct 14, 2024 4:09 am
by slidelljohn

@bogaa
Thanks, I'm glad you like reading some of my posts! :D
Diztinguish and ASAR is definitely the best tools to use. The snes development book is also something I recommend having.