"The Question" ported to 32X

Ask anything your want about the 32X Mushroom programming.

Moderator: BigEvilCorporation

haroldoop
Very interested
Posts: 160
Joined: Sun Apr 29, 2007 10:04 pm
Location: Belo Horizonte, MG, Brazil

"The Question" ported to 32X

Post by haroldoop » Sun Oct 22, 2017 11:21 pm

Hello, again,

I have just ported the Ren'py sample script named "The Question" to BlocklyVN32X.

ROM version 0.1.0: https://github.com/haroldo-ok/the-quest ... .0.1.0.32x
Project source: https://github.com/haroldo-ok/the-question-vn32x

It has some input lag problems, but seems to be running fine otherwise.

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Mon Oct 23, 2017 4:24 pm

How did you test this? It doesn't work in Fusion or on real hardware for me.

haroldoop
Very interested
Posts: 160
Joined: Sun Apr 29, 2007 10:04 pm
Location: Belo Horizonte, MG, Brazil

Re: "The Question" ported to 32X

Post by haroldoop » Mon Oct 23, 2017 6:26 pm

Chilly Willy wrote:
Mon Oct 23, 2017 4:24 pm
How did you test this? It doesn't work in Fusion or on real hardware for me.
I had tested it on Fusion, primarily. It *does* have an invalid checksum, though. :P

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Mon Oct 23, 2017 8:07 pm

It's a 32X game - set the checksum to 0 and forget about it. Checksumming data on carts was pretty stupid in any case. Not sure why they bothered.

haroldoop
Very interested
Posts: 160
Joined: Sun Apr 29, 2007 10:04 pm
Location: Belo Horizonte, MG, Brazil

Re: "The Question" ported to 32X

Post by haroldoop » Mon Oct 23, 2017 9:55 pm

I decided to test the ROM on a few emulators, to see how it behaves:
  • Fusion 3.5: Complains about the checksum, but runs okay;
  • Fusion 3.3: Complains about the checksum, then gives a black screen;
  • Gens KMod 01: Runs okay;
  • Gens KMod 05: Runs okay (strange, this one used to fail... :P);
  • Gens Plus! 0.0.3.38: Runs okay;
  • Gens/GS r7: Runs okay.
I wonder why would it fail on real HW? All of the memory alignment problems had been solved, and the screen swap routine always waits until the bus is free.

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Mon Oct 23, 2017 11:14 pm

Fusion 3.64 DOES run it, but you have to turn off Fast Timing. So my guess is there is some kind of timing/sync bug that is keeping it from working on real hardware.

And yes, the time it waits between inputs is a bit silly. It's certainly much longer than it should be. :D

Actually, trying it a bit more, it's not a wait between inputs, it's the debounce. If you press and HOLD the button, it recognizes it right away. It's just tapping the button that doesn't work well. It ACTS like a wait, but it's actually not registering the button press immediately if just tapped.

haroldoop
Very interested
Posts: 160
Joined: Sun Apr 29, 2007 10:04 pm
Location: Belo Horizonte, MG, Brazil

Re: "The Question" ported to 32X

Post by haroldoop » Tue Oct 24, 2017 3:16 pm

Chilly Willy wrote:
Mon Oct 23, 2017 11:14 pm
And yes, the time it waits between inputs is a bit silly. It's certainly much longer than it should be. :D

Actually, trying it a bit more, it's not a wait between inputs, it's the debounce. If you press and HOLD the button, it recognizes it right away. It's just tapping the button that doesn't work well. It ACTS like a wait, but it's actually not registering the button press immediately if just tapped.
Taking a quick peek at the source, it seems to be due to the fact that the program is waiting for the images to render before reading the joypad; when the render takes too long, the input becomes less responsive. I guess I will have to either optimize the image rendering, or do the rendering less often. It would also be possible to use the secondary CPU, but that would be like using a rocket launcher on a fly. :P

haroldoop
Very interested
Posts: 160
Joined: Sun Apr 29, 2007 10:04 pm
Location: Belo Horizonte, MG, Brazil

Re: "The Question" ported to 32X

Post by haroldoop » Fri Oct 27, 2017 12:14 am

Okay, the input lag problem has been considerably reduced by preparing the frames in advance.

ROM version 0.1.1: https://github.com/haroldo-ok/the-quest ... -0.1.1.32x

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Fri Oct 27, 2017 9:43 pm

Hmm - since updating my nvidia driver, FUSION no longer runs. It also doesn't run on real hardware - you get a green screen with a $ in the upper left corner.

EDIT: Forgot to restart after installing new nvidia driver. Weird that it doesn't REQUIRE a restart like a new kernel, but doesn't work on everything until you actually DO restart. Anywho, FUSION is working again. Much better on the input response.

Natsumi
Very interested
Posts: 82
Joined: Mon Oct 05, 2015 3:00 pm
Location: 0x0
Contact:

Re: "The Question" ported to 32X

Post by Natsumi » Tue Oct 31, 2017 5:54 pm

Well it works fine with Mega Everdrive X7 and US model 1 with US 32X on top so either its a minor issue or Mega Everdrive is magic

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Wed Nov 01, 2017 10:56 pm

That's a good point. I'm using the NeoMyth. If I can find my MED, I'll try it on that and see if it's the flash cart or the 32X that's the issue. Also, I'm using it on a Model 2 Genesis + Model 2 CD + Launch 32X. It's possible the CD might be an issue here as well.

Muzzy
Interested
Posts: 23
Joined: Mon Jun 19, 2017 5:06 pm

Re: "The Question" ported to 32X

Post by Muzzy » Sun Nov 05, 2017 1:55 pm

I'm using Mega Everdrive X7 and it's work even with CD addon.
ImageImageImage

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Sun Nov 05, 2017 5:50 pm

Dug out my MED (older model, not a new X series), and it works fine. So the issue is why it fails on the NeoMyth. This is literally the ONLY thing that works on MED and fails on NeoMyth, and that will drive me crazy until I figure it out. :D

On the NeoMyth, you get a green screen and a '$' in the top left... that must mean something. I should grab the code and look at the init routines.

EDIT: Figured out how to make it work - the rom needs to be padded. I padded the file from 297.1 KB to 512KB and it works on the NeoMyth. I guess I really should make another update to the NeoMyth menu that automatically pads "weird" size files.

EDIT2: The current NeoMyth menu mirrors rom data to make certain games work that expect mirroring. This mirroring of the data is probably what's making the original file fail - maybe the engine sees the extra data as game data that's corrupted or something. Not sure how I should distinguish games that need mirroring vs ones that need padding...

Sik
Very interested
Posts: 939
Joined: Thu Apr 10, 2008 3:03 pm
Contact:

Re: "The Question" ported to 32X

Post by Sik » Sun Nov 05, 2017 7:12 pm

Chilly Willy wrote:
Sun Nov 05, 2017 5:50 pm
EDIT2: The current NeoMyth menu mirrors rom data to make certain games work that expect mirroring. This mirroring of the data is probably what's making the original file fail - maybe the engine sees the extra data as game data that's corrupted or something. Not sure how I should distinguish games that need mirroring vs ones that need padding...
So far the patterns I've spotted on ROMs that were released on actual cartridges:
  • x
  • x + ½x
  • x + ¼x
Where x is any power of two.

The amount of possible combinations for up to 4MB cartridge are pretty limited, so you can probably just try all possible combinations against the filesize to decide of a ROM needs mirroring (and what kind of mirroring), if there isn't a match then assume the ROM doesn't rely on mirroring and proceed to pad instead.

That won't account for SMD files but honestly, just check the extension for those if you really want =P (I haven't seen a SMD ROM in ages though)
Sik is pronounced as "seek", not as "sick".

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: "The Question" ported to 32X

Post by Chilly Willy » Sun Nov 05, 2017 8:09 pm

Okay, you can tell it's been awhile since I worked on the NeoMyth menu. I already solved this problem. When hovering over the game in the menu, press A to pull up the options, then move down one option to ROM Aliasing. Change it from HW to OFF (press C to change the setting) and you're good to go - press B to run.

Post Reply