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

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

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #20 on: February 13, 2018, 09:20:17 am »
Super Off-Road uses uninitialized ram for rng. Snes9x Geiger = 55 55 55 55. Canoe = ??. Geiger ai didn't boost on me until end lap but varies some on how I play; bonus items though... thanks. Should check it, didn't give much thought but my 1st money bag is stationary.

I think Speedy came up today-ish. #2 writeup has needed 1-byte change also.



Found problem with Super Butouden 2. It's very precise timing glitch with H-DMA (BG4HOFS) and BG4VOFS scroll register. Thinking of safe way to satisfy both conditions.



Dragon Ball Z - Super Butouden (Rev 1) Canoe tester
http://s000.tinyupload.com/index.php?file_id=07057133862394665743

Tries to fit timing between slow (geiger, canoe) and normal (bsnes, hardware). If works, will make Rev 0 also and finish writeup.



Super Off Road tester
http://s000.tinyupload.com/index.php?file_id=26519558008170874217

Mixes uninitialized ram + in-game timers to create more volatile rng seeds. So even Snes9x (constant startup values) will be more unpredictable (other than 1st demo). If new algorithm works better than vanilla to average gamer, may put on rhdn site. And possible Canoe will still behave badly due to other problem.


And question about AvP flicker. Is it on/off type flashing or garble corruption? Few more images to examine?


Plus docs list is impressive actually. Seems like most games work without special patches. Or largely issue free.
« Last Edit: February 13, 2018, 09:24:36 pm by sluffy »

DarkAkuma

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #21 on: February 13, 2018, 08:17:20 pm »
Found problem with Super Butouden 2. It's very precise timing glitch with H-DMA (BG4HOFS) and BG4VOFS scroll register. Thinking of safe way to satisfy both conditions.



Dragon Ball Z - Super Butouden (Rev 1) Canoe tester
http://s000.tinyupload.com/index.php?file_id=07057133862394665743

Tries to fit timing between slow (geiger, canoe) and normal (bsnes, hardware). If works, will make Rev 0 also and finish writeup.

That seems to work! I tried 2 different levels, and backed away to force it to go split screen, and didn't see any flicker! =)
« Last Edit: February 13, 2018, 09:26:09 pm by DarkAkuma »

rhester72

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #22 on: February 13, 2018, 10:38:25 pm »
Super Off Road tester
http://s000.tinyupload.com/index.php?file_id=26519558008170874217

Mixes uninitialized ram + in-game timers to create more volatile rng seeds. So even Snes9x (constant startup values) will be more unpredictable (other than 1st demo). If new algorithm works better than vanilla to average gamer, may put on rhdn site. And possible Canoe will still behave badly due to other problem.

Looks good so far in limited testing.  Hard to say whether it's "less predictable", being a RNG used the way it is, but it compares favorably to Snes9x under Retroarch on the SNESCE, at least.

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #23 on: February 13, 2018, 10:50:15 pm »
Overscan disable testers
- Hunt for Red October (USA): 80A6 = 00
- Tom and Jerry (USA): 80A6 = 00

- Super Ninja Boy (USA):
Code: [Select]
$00/EFB8 A9 04       LDA #$04                A:00E0 X:FFFF Y:0000 D:0000 DB:00 S:01FF P:eNvMxdIzC
$00/EFBA 8D 33 21    STA $2133  [$00:2133]   A:0004 X:FFFF Y:0000 D:0000 DB:00 S:01FF P:envMxdIzC

a9 00 8d 33 21:
6fb8
c15e
23c16
ff39e
1669d
813e
c165
11a58
11a68
2027f
2059d

matt!

  • Full Member
  • ***
  • Posts: 130
  • JUS4QIX
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #24 on: February 14, 2018, 09:02:05 am »
Super Off Road: I agree, looks pretty good now compared to other emulators and also videos I've watched on YouTube that are recorded from a real SNES.

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #25 on: February 14, 2018, 09:10:42 am »
Would love Uniracers to get a look. If I personally have one top game I'd love to see working, it's that. :)

Here's what it does: https://www.youtube.com/watch?v=BnCxeXpmZwQ

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #26 on: February 14, 2018, 12:22:16 pm »
Thanks - video "matches" raw debugger sprite info, minus problem itself. Have patient about 75% diagnosed and designed a temporary cure (untested). More trying to concoct reason Canoe behaves this way but not other emus.

Then comes all the writeups for future emus.. bleh.

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #27 on: February 14, 2018, 01:23:38 pm »
Can't wait for the writeup (and test patch) for Uniracers. :)

I wonder, is Canoe really the only emulator to ever do it this way..

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #28 on: February 14, 2018, 02:41:03 pm »
Solved 98% of the 'why'. An article by byuu solves the last 2%, which isn't what I thought and would break on other games/demos/tests who do this. Because Uniracers only uses 4 sprites in exactly required 'OAM grid', trick works. Last sprite accessed is always same address. Devs used luck or twiddled this one through at sacrifice of more sprite graphics.

Although now patch difficulty has gone up due to unexpected path to solution. Think it's possible though; have to inspect for timing landmines. ^^

Old, old emus without Uniracers hack should produce Canoe phantom.



Uniracers trial:
12EF1 = E0
1304D = E0

Yes. Maybe that simple. Or not. Needs checker. ;)


Dragon Ball Z - Super Botuden 2 rev0
http://s000.tinyupload.com/index.php?file_id=06589030031339256661
« Last Edit: February 14, 2018, 05:14:06 pm by sluffy »

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #29 on: February 14, 2018, 05:42:06 pm »
Sorry to say, that Uniracers is the same with those changes :(

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #30 on: February 14, 2018, 05:52:32 pm »
Add this one for 1P: 12E29 = E0. Above was for 2P VS split.

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #31 on: February 14, 2018, 05:55:35 pm »
Yep, that works! There's still an odd moment where the CPU sprite appears on the edge of the screen on the opposite side that he left, but then it completely vanishes where before it would be drawn in the center.

Edit: Actually if you look carefully, you can see that the rival has been moved to the top right, almost off-screen. You only see him for a few frames as he performs stunts and comes into view, but that's where it's put him. :D

« Last Edit: February 14, 2018, 06:19:20 pm by Robin64 »

Zimgief

  • Jr. Member
  • **
  • Posts: 40
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #32 on: February 14, 2018, 08:27:37 pm »
So many epic wins!

I would have some requests/questions:
- a patch for the french version of Dragon Ball Super Butoden 2, titled Dragon Ball Z 2 La Légende saien (I patched the game and it was all glitchy on Snes9x, contrary to the patched japanese)
- is it something possible to allow hi-res mode on Seiken Densetsu 3 and Rudra no Hihou? I know that the Secret of Mana on the Snes mini is hacked in order to make hi-resolution work, but I am sure Robin64 would make a better job of explaining.

In any case, what you do is incredible, thank you so much!

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #33 on: February 14, 2018, 09:17:30 pm »
Took a lot of thinking and constant destroying values in emus to recreate symptom. Try 1P: 12E29 = FF. If fully disappears, then Canoe is treating 1xx xpos as 0xx xpos. Can be big-time sprite bug.

But if true, we're learning lots more about Canoe quirks. Note that most emus will not have 1P Canoe bug. 2P split bug probably yes (without hack) because it relies on bastard behavior.

And actually possible then to create patch which will satisfy both emus. For fun. Not needed.



Will check "Dragon Ball Z La Légende saien". Should be very similar to Japan.

Hi-Res = .. really need an explanation on presets and real-time patching? This is confusing enough right now.



Here's DBZ LLS French
http://s000.tinyupload.com/index.php?file_id=66353866645575054936
« Last Edit: February 14, 2018, 09:55:35 pm by sluffy »

DarkAkuma

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #34 on: February 14, 2018, 11:44:13 pm »
HiRes = no. There should be nothing that can be done with a patch that will enable high res mode. If a game can use it, its already coded to request for the the emulator to use it. Canoe ignores that request unless you use specific Preset IDs. And only 0x1016 is a ID that enable it, but also boots most games. I tested EVERY ID with Rudra no Hihou, and no other high res mode enabling ID will boot it.
Hi-Res = .. really need an explanation on presets and real-time patching? This is confusing enough right now.

Preset IDs just enable/force different features. Generally stuff like use of special chips, what layers are enabled, high res mode, etc. I guess its Nintendo ways of cutting performance costs. Only enable access to the features that are needed.

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #35 on: February 15, 2018, 04:06:08 am »
Took a lot of thinking and constant destroying values in emus to recreate symptom. Try 1P: 12E29 = FF. If fully disappears, then Canoe is treating 1xx xpos as 0xx xpos. Can be big-time sprite bug.

This works. :)

Edit: Another player has spotted a further issue.



"I noticed another very small bug on the second track. At that last bit when you're jumping you can shortly see your own unicycle flickers below you. Tried to capture it via rewind here. I'm actually in the air off-screen at this moment."
« Last Edit: February 15, 2018, 04:36:41 am by Robin64 »

Zimgief

  • Jr. Member
  • **
  • Posts: 40
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #36 on: February 15, 2018, 06:42:24 am »
Thanks for explanations about darkakuma, though I do not understand what type of hack have been done on Secret of Mana?

Thank you very much sluffy for the french DBZ2. I will try it later on the snes mini! (Just done it on a regular emulator, with a ntsc patch on top of it, and so far so good.)

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #37 on: February 15, 2018, 07:59:33 am »
Mwah. More Uniracers craziness. Does 2P VS split okay in Canoe? Requires more tricks than 1P. >_> Will look for possible 1P hack shortly.

Marvelous: Mouhitotsu no Takarajima (J) uses hires for dialogues. Docs says game mostly okay.


Quote
I guess its Nintendo ways of cutting performance costs. Only enable access to the features that are needed.

Right. Gotcha. Snes9x has these "hacks" too - disable sublayer for performance boost. And other wizardry.


Soul Blazer .......... we know sublayers work in other games. So likely H-DMA fails to adjust left/right window borders to draw circle. Why heck only that spot??


And may need to add separate section on! Security? Super Ghouls n Ghosts review says has chip lockout. (!?) And no$sns can't run Uniracers (Game Pak not found).

Robin64

  • Full Member
  • ***
  • Posts: 137
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #38 on: February 15, 2018, 09:05:29 am »
Don't worry too much about hi-res, it's not a rom hack thing. Canoe itself enables it with a Preset ID, nothing needs to be done to the games. Marvelous has an official Nintendo Preset ID (it came out on Virtual Console) so using that in Canoe enables the hi-res text there.

sluffy

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Canoe official snes emulator -- problems and fixes
« Reply #39 on: February 15, 2018, 03:42:40 pm »
Temporary Uniracers hack
012E29 = FF
012EF1 = FF
012D6A = FF
01304D = FF
013095 = FF
012FC9 = FF

If there's problem where cpu exits left and briefly draws on right side, cannot be avoided. Bug must be fixed in Canoe itself; limitation of how emulator draws sprites.

(with possible exception of shrinking sprite size down and making more of them, which would be tedious though)
« Last Edit: February 15, 2018, 03:56:42 pm by sluffy »