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

Author Topic: Snes emulators (Canoe, Snes9x) -- game problems and fixes  (Read 140110 times)

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #340 on: March 06, 2018, 08:27:24 am »
Bosco82 with more cartridge header fixes. Wouldn't thought to check those. Thanks for picking up on this side.

Spent down time doing some emu tests with Cheat Engine. Handful games (8+) lockup because cpu runs too slow I guess for game (sync). Look into that. Spider-Man messes up menu because maybe dma runs too fast. Tripped Top Gear 2 PAL piracy screen by going fast. Didn't trip Smurfs trap, and played ~8 levels using super cheat.

Ballz 3D runs fine on dsp1. Where did that "concrete" fact come from that needs dsp1b? Pilotwings has pre-recorded flight data to playback on dsp1. Only useful if other game requires dsp1b math. What up with Battle Racers? lol

Spreadsheet. Could add names of tester to list until you hit 2-3 verification. Then green it. But reyvgm does have thick orange marker.

Little Magic ... more likely be transparency issue with Canoe. Would be faster if someone could find preset id that toggles this. Even if add dsp-1, sa-1, s-dd1 header because doesn't use chips anyway.

Going to throw GH fix into KDL3 boot. Just to see what it does.


===1
https://www.sendspace.com/file/6io2r6
KDL3 - wake2 timer. May have to use special preset ids. Unsure what it'll do.


===2
https://www.sendspace.com/file/r2uqj8
Spider-Man: Animated Series (USA). Fix vblank wait for menu.


===3
(removed waku waku -- needs work)

Little Magic. Another idea later.
« Last Edit: March 06, 2018, 11:59:06 am by sluffy »

rhester72

  • Jr. Member
  • **
  • Posts: 12
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #341 on: March 06, 2018, 10:26:47 am »
@pimpinelephant: One point of clarification - while canoe does indeed do in-memory patching for several titles (nearly all of the ones shipped with the SNESCE, perhaps others), those patches are _not_ tied to the preset ID.  It is looking for something else to identify the game to determine if it should apply RAM patches, but the preset definitely isn't it.

You can prove this for yourself by loading a ROM from the SNESCE that does in-memory patching, and assigning it the same preset ID, then dumping RAM from the running process - Nintendo's will be patched, yours won't (even though it's the same game and preset).

therourke

  • Jr. Member
  • **
  • Posts: 25
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #342 on: March 06, 2018, 12:28:38 pm »
Little Magic ... more likely be transparency issue with Canoe. Would be faster if someone could find preset id that toggles this. Even if add dsp-1, sa-1, s-dd1 header because doesn't use chips anyway.

Little Magic. Another idea later.
I tried the A210 preset ID - which enables transparency in Jurassic Park and Kirby - but this had no effect.
« Last Edit: March 06, 2018, 12:43:55 pm by therourke »

reyvgm

  • Hero Member
  • *****
  • Posts: 1138
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #343 on: March 06, 2018, 01:03:21 pm »

"Lock-On" works when applying "10BD" as Preset ID



But I thought Lock On worked just fine and it was the Japanese version (Super Air Diver) that didn't work?

Robin64

  • Full Member
  • ***
  • Posts: 136
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #344 on: March 06, 2018, 02:18:45 pm »
But I thought Lock On worked just fine and it was the Japanese version (Super Air Diver) that didn't work?

Super Air Diver also works with 0x10BD

Mugi

  • Full Member
  • ***
  • Posts: 190
  • Personal text
    • View Profile
    • Blacklabel-translations
Re: Canoe official snes emulator -- problems and fixes
« Reply #345 on: March 06, 2018, 03:05:17 pm »
this is slightly offtopic but could anyone send me a copy of the sfrom tool, the official link is dead Q_Q
In PSP we trust.

reyvgm

  • Hero Member
  • *****
  • Posts: 1138
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #346 on: March 06, 2018, 03:35:50 pm »
this is slightly offtopic but could anyone send me a copy of the sfrom tool, the official link is dead Q_Q

http://darkakuma.z-net.us/p/sfromtool.html

Bosco82

  • Full Member
  • ***
  • Posts: 214
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #347 on: March 06, 2018, 03:41:42 pm »
For use with Mystic Ark use the Preset ID for Breath Of Fire II which is 1068, the game won't C7 and will play the cutscene correctly.

pimpinelephant

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #348 on: March 06, 2018, 04:28:35 pm »
Ballz 3D runs fine on dsp1. Where did that "concrete" fact come from that needs dsp1b? Pilotwings has pre-recorded flight data to playback on dsp1. Only useful if other game requires dsp1b math. What up with Battle Racers? lol

I only tested out Ballz 3D with DSP-1 for maybe 10 or so minutes (one match) because the game was just so damn strange.
I'm not exactly sure if, maybe later or at certain points, the game requires DSP-1B to run properly.

@pimpinelephant: One point of clarification - while canoe does indeed do in-memory patching for several titles (nearly all of the ones shipped with the SNESCE, perhaps others), those patches are _not_ tied to the preset ID.  It is looking for something else to identify the game to determine if it should apply RAM patches, but the preset definitely isn't it.

You can prove this for yourself by loading a ROM from the SNESCE that does in-memory patching, and assigning it the same preset ID, then dumping RAM from the running process - Nintendo's will be patched, yours won't (even though it's the same game and preset).

Huh, very interesting! Yeah, I was being honest when I said I barely knew anything about Preset IDs. :laugh:

I wonder then, why does Pilotwings suffer from two separate bugs when used with either its offical ID or Super Mario Kart's ID respectively? Possibly a mem-patch specifically for Pilotwings, or is it simply just feature-on/off related? Or is it just Canoe being Canoe? :D

For use with Mystic Ark use the Preset ID for Breath Of Fire II which is 1068, the game won't C7 and will play the cutscene correctly.

Ooh! Will definitely go test this one out, but I already believe you.
Bosco82, coming in hot with all of these different fixes! Very nice find!

I'm assuming Breath of Fire II's ID enables the "feature" that properly displays that cutscene. What's so special about that cutscene?
« Last Edit: March 06, 2018, 04:38:33 pm by pimpinelephant »

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #349 on: March 06, 2018, 04:46:46 pm »
Funny. Wake up to read all this. :)


Way to go Bosco82! So C7 could mean missing feature? I would never be able to fix those if true. Or maybe it's something special on audio side.

And that clears me up for handling technical things which may not have preset ids to correct them. Or maybe many problem games have id hacks which haven't been discovered where to use. Crud. How many patches I made don't need crude hacks then??


Didn't notice anything unusual about that scene. But going to check right now again. It shares something with Breath of Fire II. Does that game boot with 0000 id?


===ed
Lots of C7 on the list. May not touch them then.

reyvgm

  • Hero Member
  • *****
  • Posts: 1138
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #350 on: March 06, 2018, 04:58:16 pm »
Funny. Wake up to read all this. :)


Way to go Bosco82! So C7 could mean missing feature? I would never be able to fix those if true. Or maybe it's something special on audio side.

And that clears me up for handling technical things which may not have preset ids to correct them. Or maybe many problem games have id hacks which haven't been discovered where to use. Crud. How many patches I made don't need crude hacks then??


Didn't notice anything unusual about that scene. But going to check right now again. It shares something with Breath of Fire II. Does that game boot with 0000 id?


===ed
Lots of C7 on the list. May not touch them then.

Demi confirms the ID prevents Mystic Ark from C7 when the cutscene starts, however, the cutscene is not displaying correctly since the background is missing (it looks black). So I guess a patch would still be needed.

As far as I know, Breath of Fire boots fine with 0000.

pimpinelephant

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #351 on: March 06, 2018, 05:23:37 pm »
Funny. Wake up to read all this. :)

Way to go Bosco82! So C7 could mean missing feature? I would never be able to fix those if true. Or maybe it's something special on audio side.

And that clears me up for handling technical things which may not have preset ids to correct them. Or maybe many problem games have id hacks which haven't been discovered where to use. Crud. How many patches I made don't need crude hacks then??

Didn't notice anything unusual about that scene. But going to check right now again. It shares something with Breath of Fire II. Does that game boot with 0000 id?

===ed
Lots of C7 on the list. May not touch them then.

Preset IDs are very finicky in that they might fix one issue but break something else, so the vast majority of games that never got released on the Virtual Console are just tested with ID 0000 (unless they require a special chip).
I'm not sure if another preset ID would have fixed any of the issues that you have already fixed, it's possible, but since your work has been perfectly fixing these issues with no side effects, I'm going to have to say not likely. :thumbsup:

And if I'm not mistaken, C7 could mean anything I believe. I think Robin64 mentioned this way earlier in the thread, but I believe C7 just simply means that Canoe can't run it, which could mean lots and lots of different things. I believe there's just a lot of overlap between C7 and Preset IDs due to the game asking for something, but since whatever feature is turned off, Canoe goes all HAL 9000 and says, "I'm sorry Dave, I'm afraid I can't do that." and returns a C7. I believe so anyways.

Robin64

  • Full Member
  • ***
  • Posts: 136
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #352 on: March 06, 2018, 05:38:53 pm »
As an example of how finnicky Preset IDs are, Link to the Past's official Preset ID is 0x101D. However, using Link to the Past Redux, a hack hosted on this website, you will get a C7 when using that PID. You need to set it to 0x0000 for the hack to run. So you have to wonder, how much is the hack changing that the original base ID no longer works? This isn't the only example of this, either, there are many hacks where the base ID no longer applies.

Bosco82

  • Full Member
  • ***
  • Posts: 214
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #353 on: March 06, 2018, 05:50:11 pm »
I found 2 other preset ID's that work with that part of Mystic Ark but they all show that small part of the cut scene exactly the same. It works with presets 1101 and 110C which are for FF3 and Chrono Trigger.

reyvgm

  • Hero Member
  • *****
  • Posts: 1138
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #354 on: March 06, 2018, 05:52:51 pm »
I found 2 other preset ID's that work with that part of Mystic Ark but they all show that small part of the cut scene exactly the same. It works with presets 1101 and 110C which are for FF3 and Chrono Trigger.

By "exactly the same" you mean with a black background?

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #355 on: March 06, 2018, 06:04:46 pm »
MA cutscene:
4bpp bg2 mountains
4bpp sprites (birds, golem)
8bpp bg1 backdrop
== Mode 3

Other than clip window math to make black bars, don't see anything else interesting.


Black bg1. Sounds exactly like Little Magic. But no clip windows there. But similar layering
4bpp sprites
2bpp bg2 windows
8bpp bg1 backdrop
== Mode 4


There goes that theory. Bust-a-Move has
4bpp sprites
8bpp bg1 backdrop
2bpp bg2 windows
== Mode 4

and looks (mostly) fine.


Other than bg1 vs bg2, have nothing now.



Zelda3 = 1MB game. Could use preset id and see if Nintendo memory patches rom (check 1MB vs copy 1MB). Easy test. Save to sram bad areas.

Bosco82

  • Full Member
  • ***
  • Posts: 214
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #356 on: March 06, 2018, 06:13:44 pm »
Yup that little area with the giant coming out has a black background.

DarkAkuma

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #357 on: March 06, 2018, 06:16:46 pm »
And if I'm not mistaken, C7 could mean anything I believe. I think Robin64 mentioned this way earlier in the thread, but I believe C7 just simply means that Canoe can't run it, which could mean lots and lots of different things. I believe there's just a lot of overlap between C7 and Preset IDs due to the game asking for something, but since whatever feature is turned off, Canoe goes all HAL 9000 and says, "I'm sorry Dave, I'm afraid I can't do that." and returns a C7. I believe so anyways.

C7 basically means that canoe tried to execute some of the games code and it returned an unexpected result/error. I know, a pretty generic answer. But I just felt I should chime in as "can't run it" is kind of wrong. I've done a LOT of testing, and boot time results come as mostly 4 things, full proper boot, C7, Black Screen (No Border), Black Screen (with Border). The 2 black screen results are more of the "can't run it" variety. C7's can happen in the middle of a game. For example, when developing the Star Ocean patch, id see certain pointers get set wrong and point outside of the scope of the memory addresses. When that pointer gets executed the game C7's.

And while I'm at it, I might as well mention that yea. DSP1 is an exception to the special chips needing a specific preset id. To understand why, you have to look at the development cycle of the original VC ROM releases. DSP1 was supported from the start. Meaning the earlier branch of canoes ancestors code was designed to emulate DSP1 from the ground up. SA1, SDD1 and Super FX all were added later. And each are supported differently. SA-1 requires a PID to execute code, SDD1 requires a PID to bypass SDD1 calls and instead requires the ROM to be hacked in a certain way, and Super FX seems to just require a previously unused header byte to be set to a non-zero value (generally 0x0C). In the broadest terms, a PID is just a tag to allow a game to be executed with whatever unique specific functions/hacks/combination of features the devs felt were needed to achieve optimal execution. It's canoe equivalent of ZSNES/SNES9X old game specific hacks.
« Last Edit: March 06, 2018, 06:29:12 pm by DarkAkuma »

matt!

  • Full Member
  • ***
  • Posts: 126
  • JUS4QIX
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #358 on: March 06, 2018, 06:17:56 pm »
I think C7 is just "crash" and that could result from a missing feature in Canoe.

Given that a preset changes the capability of Canoe them this means there are lots of possibilities.

And what DarkAkuma said  :woot!:

pimpinelephant

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #359 on: March 06, 2018, 06:33:14 pm »
C7 basically means that canoe tried to execute some of the games code and it returned an unexpected result/error. I know, a pretty generic answer. But I just felt I should chime in as "can't run it" is kind of wrong. I've done a LOT of testing, and boot time results come as mostly 4 things, full proper boot, C7, Black Screen (No Border), Black Screen (with Border). The 2 black screen results are more of the "can't run it" variety. C7's can happen in the middle of a game. For example, when developing the Star Ocean patch, id see certain pointers get set wrong and point outside of the scope of the memory addresses. When that pointer gets executed the game C7's.

And while I'm at it, I might as well mention that yea. DSP1 is an exception to the special chips needing a specific preset id. To understand why, you have to look at the development cycle of the original VC ROM releases. DSP1 was supported from the start. Meaning the earlier branch of canoes ancestors code was designed to emulate DSP1 from the ground up. SA1, SDD1 and Super FX all were added later. And each are supported differently. SA-1 requires a PID to execute code, SDD1 requires a PID to bypass SDD1 calls and instead requires the ROM to be hacked in a certain way, and Super FX seems to just require a previously unused header byte to be set to a non-zero value (generally 0x0C). In the broadest terms, a PID is just a tag to allow a game to be executed with whatever unique specific functions/hacks/combination of features the devs felt were needed to achieve optimal execution. It's canoe equivalent of ZSNES/SNES9X old game specific hacks.

Listen to this man over anything I say. I would probably say DarkAkuma has more knowledge on these matters than anybody else in the scene honestly.
Very interesting too! I definitely learned something new.