News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: How do you handle crashes and bugfixing?  (Read 503 times)

tygerbug

  • Jr. Member
  • **
  • Posts: 60
    • View Profile
How do you handle crashes and bugfixing?
« on: October 03, 2020, 10:55:15 am »
I've released a hack of Monster Party and continued to tweak it.
http://www.romhacking.net/hacks/5423/

I am running into some bugs. These were not present in the restored prototype hack.

The game crashes very early on in Round 3. It crashes when entering the room for the first boss of Round 7 [Royce the bug]. Also, on a minor note, the cycling water palette lacks a darker blue color in Round 5, instead duplicating light blue twice.

What should I do about the crashes?

(I may have to start again and port in my changes.)


UPDATE:

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


Proveaux has helped fix issues in rounds 3 and 7. Hopefully it works now.
« Last Edit: October 07, 2020, 11:21:14 am by tygerbug »

Cyneprepou4uk

  • Hero Member
  • *****
  • Posts: 593
  • I am the baldest romhacker
    • View Profile
Re: How do you handle crashes and bugfixing?
« Reply #1 on: October 03, 2020, 02:38:30 pm »
Fceux has "break on bad opcodes" checkmark in debugger, and a trace logger tool. Also you can find a backup version before and after the crash, and check the changes between them, maybe revert a couple to test.

FAST6191

  • Hero Member
  • *****
  • Posts: 3050
    • View Profile
Re: How do you handle crashes and bugfixing?
« Reply #2 on: October 03, 2020, 04:35:59 pm »
Debugging is always fun.

You have two main approaches

1) You go through the code as it all happens to see what a) actually happens in the crash and b) what caused it to do that. This will see you want to understand assembly code for the system and presumably the changes made to the game well enough to make an informed decision. Before you get to that stage you can do a quick sanity check for things like pointers to make sure they are doing what they need to do, any insertion tools used are generating valid output and not putting nonsense out.

2) If it is a crash that happened as a result of your change you figure out what aspect of the change caused it. If you have nice version control then great, if not then copy changes back in (hopefully you know what each part does) until you encounter it again. Now you have what caused it (you hope anyway -- sometimes a crash can be the result of a great number of other factors but let's not go there first as basics do want to be observed).