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: 2542
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: 259
  • 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: 2542
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: 2542
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
Reply to topic Goto page Previous  1, 2, 3, 4



Back to the top of this page

Back to SMS Power!