VOGONS

Common searches


reboot requested, quitting now

Topic actions

Reply 20 of 24, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Well, it's not the only way, its just the usual way. If you aren't hitting a "BPINT 18" breakpoint in the debugger, there are a few other things to try:

1) If you're using dynamic core, switch to normal core, because breakpoints don't always work on recompiled code.

2) Set a breakpoint on the memory address that INT 18 points to, i.e. where the DOSBox handler is located in emulated BIOS ROM. Execution might have jumped off to there because of some bug, and you might find a clue on how it got there on the stack. Another possibility is the game uses a hardcoded address for BIOS routines, but that's bad programming, and rarely seen.

3) Search the program for a string of bytes that matches DOSBox's opcodes for the INT 18 callback; you can see what they are by looking at the INT 18 handler in BIOS. It's possible the game is executing that opcode sequence within the program due to some bug.

Reply 22 of 24, by Og

User metadata
Rank Member
Rank
Member
ripsaw8080 wrote:

If you're using dynamic core, switch to normal core, because breakpoints don't always work on recompiled code.

Yeah, I know that. No worries, I'm using the normal core.

ripsaw8080 wrote:

2) Set a breakpoint on the memory address that INT 18 points to, i.e. where the DOSBox handler is located in emulated BIOS ROM. Execution might have jumped off to there because of some bug, and you might find a clue on how it got there on the stack.

ripsaw8080 wrote:

3) Search the program for a string of bytes that matches DOSBox's opcodes for the INT 18 callback; you can see what they are by looking at the INT 18 handler in BIOS. It's possible the game is executing that opcode sequence within the program due to some bug.

Ummm, I really don't have a clue what you're talking about... Sorry if I gave the impression I understand how the PC works in terms of BIOS and interrupt calls... I know some assembly but not much else.
However, I'm always willing to learn something new, so how do I do it? I tried the debugger command "INTHAND 18" and the code overview jumped to F100:02E0 but I couldn't make anything of it... I also tried looking at the source of dosbox 0.72 (for some reason sf.net is down for me so I can't download the source for 0.73) I tried looking at \src\ints\bios.cpp thinking maybe that's where the emulated BIOS INT calls are kept but I couldn't make much of that either 😢
If you can point me to some reading material like a guide or documentation that will help me understand more about handlers I'll try to read as best I can.

ripsaw8080 wrote:

Another possibility is the game uses a hardcoded address for BIOS routines, but that's bad programming, and rarely seen.

I would definitely consider that, this game just feels like bad programming, I can't really explain why though...

h-a-l-9000 wrote:

Int19h and reaching F000:FFF0 will cause the reboot message, too.

OK, just tried both ("bpint 19 *" and "bp f000:fff0" as well as "bp f000:ffef" ) with the same result.

h-a-l-9000 wrote:

Maybe this should be split up into its own thread.

I dunno... 😖 I thought we were discussing the "reboot requested, quitting now." error...
You mean like splitting it to a thread about this specific game (Hugo) and moving it to the Games/Apps forum?

Reply 24 of 24, by Og

User metadata
Rank Member
Rank
Member
Qbix wrote:

inthand 18
and then a breakpoint there

OK, I've done "bp f100:02e0" but I still get the error message, no break.
BTW, I also attached a log for the debug.

Attachments

  • Filename
    dbdebug001.PNG
    File size
    43.58 KiB
    Downloads
    116 downloads
    File comment
    "inthand 18" result
    File license
    Fair use/fair dealing exception
  • Filename
    debug_log01.txt
    File size
    1.93 KiB
    Downloads
    159 downloads
    File comment
    Debug Log
    File license
    Fair use/fair dealing exception