Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - SMS Test Suite - work in progress homebrew

Reply to topic Goto page Previous  1, 2, 3, 4
Author Message
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Thu Nov 28, 2019 11:00 am
ichigobankai wrote
Maybe VRAM needs to be cleared.


well, not really so much important - but I'm wondering where those seemingly random numbers you see come from! Are you using a donor cart or some PCB you developed yourself? I'm reading I/O ports $00-$3F (upper part) and ports $C0-$FF (the lower part) after having disabled I/O chip (in this second part only) - so random data is unexpected to me, according to Charles MacDonald's doc "smstech.txt"

Also, they seems the same numbers on the first two images - or are they two pictures from the same system by mistake?
  View user's profile Send private message Visit poster's website
  • Joined: 04 Jul 2010
  • Posts: 269
  • Location: Angers, France
Reply with quote
Post Posted: Thu Nov 28, 2019 11:44 am
I'm not really a mistake guy with simple tasks (I hope ^^).
SMS1 and SMS2 with the same bios (AK) gave the same result on screen.

Its one my simple flash cart (not a everdrive or a complex from my "collection"). I can try latter with a simpler cart (no mapper on it).
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Thu Nov 28, 2019 5:23 pm
ichigobankai wrote
I'm not really a mistake guy with simple tasks (I hope ^^).


we're all human, I wouldn't blame you for anything :)

what puzzles me now is *IF* a cartridge might change the outcome of an I/O operation. I mean, is it possible?
  View user's profile Send private message Visit poster's website
  • Joined: 28 Sep 1999
  • Posts: 1149
Reply with quote
Post Posted: Sun Dec 01, 2019 5:29 pm
sverx wrote
what puzzles me now is *IF* a cartridge might change the outcome of an I/O operation. I mean, is it possible?


You're right, it can definitely happen. When you read an unused memory or I/O location there are no devices actively driving the data bus high or low so the lines 'float'; taking on a voltage level defined by how they are loaded in terms of resistive loading (pull up or pull down resistors),capacitive loading (connections to other chips), and other factors.

So cartridge that has say a ROM, RAM, and mapper chip vs a cartridge with a single ROM will load the data bus differently, and this can influence the values read back. If it actually does to some appreciable degree is another story.

For that reason reading an unused location is risky because the results can't be guaranteed. Certainly there will be some values/patterns that come up more often then not, and I suppose some kind of imprecise matching could take advantage of that. But looking for specific values or sequences of values is probably not reliable.

As an example I have eight pull-up resistors in my development cart, so every unused location returns $FF consistently. But it's specific to that cartridge only, and plugging in a different cartridge will change those results when reading an unused I/O port.
  View user's profile Send private message Visit poster's website
  • Joined: 28 Sep 1999
  • Posts: 1149
Reply with quote
Post Posted: Sun Dec 01, 2019 5:32 pm
sverx wrote
I'm now trying to identify the MegaDrive's VDP by testing the sprite zoom capabilities, instead.

I have no way to test this myself so I'm just leaving it here...


Hmm this is interesting. You could also test by switching into mode 5 and verifying there is 64K of VRAM instead of 16K perhaps?

Likewise you could prepare a sprite overflow or sprite collision in the TMS9918 mode and as they aren't supported on the Genesis I believe no overflow/collision would occur in the status flags.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Mon Dec 02, 2019 10:40 am
Charles MacDonald wrote
For that reason reading an unused location is risky because the results can't be guaranteed. Certainly there will be some values/patterns that come up more often then not, and I suppose some kind of imprecise matching could take advantage of that. But looking for specific values or sequences of values is probably not reliable.


So I am really wondering if there's a way to detect which I/O chip is in there. I had expected to read either $ff or $78 but if in both case the values are pretty random and depending on the cartridge more than on the I/O chip, I think I'm again in a cul-de-sac.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Mon Jan 27, 2020 10:58 pm
v0.29 just released, you can find it here.
Paddle control tests just added, for (Japanese) paddle controls.
You can plug paddle(s) in port 1 and/or port 2. (In case you need to start the ROM with normal pads connected you can do that and switch to paddle(s) when in the main menu and press PAUSE to restart the ROM).
If two paddles are connected at the same moment, the paddle tests will run automatically, but no other test will be available.

HUGE thanks to Kagesan for his invaluable help.

Feedback appreciated.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Nov 2014
  • Posts: 295
  • Location: Auckland - NZ
Reply with quote
Post Posted: Tue Jan 28, 2020 3:06 am
That sounds nice.. i will test this later on when i get a chance.
  View user's profile Send private message
  • Joined: 05 Nov 2014
  • Posts: 295
  • Location: Auckland - NZ
Reply with quote
Post Posted: Thu Jan 30, 2020 8:35 am
I had a quick play with the new version. The paddle test is good. The marker wobbles about a bit when the paddle isnt being moved, the knob doesnt show as yellow while its wobbling, so not sure what that means. It might just be my paddle tho.. the pot it very likely to be dirty.

I didnt see a way to exit the test apart from powering off and on again. The pause button could be a good way to exit.

Also, in the main menu the selector scrolls up or down or just randomly moves if the paddle controller is plugged in and not at either extreme. Maybe you could ignore direction inputs if TR is toggling to resolve that.

The system info detects the paddle, which is a nice feature too.

Have you looked at a sports pad test too? I have US and JP versions of the sports pad so could help test that if your interested.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Thu Jan 30, 2020 10:27 am
Thanks for testing! The marker wobbling means that even when you're not touching the knob, the position reads a bit differently. This is totally expected, as the ADC isn't always returning exactly the same value - let's call that simply noise. As I'm trying to cut the noise, you won't see the knob light up when you don't rotate that. So as long as the knob lights up only when you rotate it, I'd say the test is correct.

About not having a way of leaving the test: the test should terminate by itself if you don't do anything for approx. 3 seconds... and about the fact that the arrow selector scrolls up and down in the main menu, well, there was a bug that caused both problems. I just fixed it now - I also added the PAUSE key as a way to leave the test, in case faulty paddles keep on registering knob movements. This should be better.

So I'm attaching a fixed version here, please let me know if you spot any other problem.

Also, I am interested in adding sports pad tests, of course. Let's talk about that later.
SMSTestSuite_v0.29.sms.zip (21.09 KB)
SMS Test Suite ver. 0.29 (hopefully fixed)

  View user's profile Send private message Visit poster's website
  • Joined: 05 Nov 2014
  • Posts: 295
  • Location: Auckland - NZ
Reply with quote
Post Posted: Thu Jan 30, 2020 8:52 pm
Cool.. i can test the updated version for you later on.

Ill open my controller up and give the pot a clean and see if that sorts it out and it exits after a few seconds too. Given the age its rather likely to be all over the place and rather noisy as mentioned, so its probably showing a lot of movement thats not real.
  View user's profile Send private message
  • Joined: 05 Nov 2014
  • Posts: 295
  • Location: Auckland - NZ
Reply with quote
Post Posted: Sat Feb 01, 2020 6:06 am
sverx wrote
About not having a way of leaving the test: the test should terminate by itself if you don't do anything for approx. 3 seconds... and about the fact that the arrow selector scrolls up and down in the main menu, well, there was a bug that caused both problems. I just fixed it now - I also added the PAUSE key as a way to leave the test, in case faulty paddles keep on registering knob movements. This should be better.


Great work.. that works perfectly now. :) Even with a "noisy" controller it still exits properly after the 3 seconds.
  View user's profile Send private message
  • Joined: 05 Sep 2013
  • Posts: 2586
Reply with quote
Post Posted: Sun Feb 02, 2020 5:25 pm
nice! also, some noise is totally expected, I believe.
  View user's profile Send private message Visit poster's website
Reply to topic Goto page Previous  1, 2, 3, 4



Back to the top of this page

Back to SMS Power!