Author Topic: TurboExpress : Rocgnizing in Software  (Read 1215 times)

ccovell

  • Hero Member
  • *****
  • Posts: 2245
Re: TurboExpress : Rocgnizing in Software
« Reply #15 on: December 11, 2010, 03:51:01 AM »
Quote
a pet crusade of mine
Sorry to have stepped on your pet peeve chris.

My original numbers (and please note the 'I think' comment) came from "rec.games.video.* Frequently Asked Questions (part 3 of 3) ". That may not excuse them for being wrong. It's an old document.
In the same document, Section F, is the quote I referred to:
"As for TurboExpress compatibility, I think it can handle the 320x256 mode used
in Y's and others, but I've never tested 512x256...  Interesting!"

Now, personally, I'm a programmer. I tend to think on powers of 2. But on a practical note, it doesn't matter to me whether the horizontal resolution max is 512 or 565. I'm gonna #define it, and forget about it. Same thing for vertical resolution. Once I look it up and #define it, I'm going to promptly forget all about it, unless I need to change it.

AND, for those of you who are interested in programming and such....
I started tearing bomber man apart, and though I haven't found the link option, I did find a rather nifty trick.
Apparently, the game uses two satb tables...

It's no problem; I linked to that post so people could get a sense of history (of the topic).  The Turbo/PCE's VDC/VCE can define its horizontal resolution in increments of 8 pixels and its vertical resolution in individual scanlines, so there is no fixed, standard, or choice of only a few resolutions.  Originally, some old docs said there were like only 2 possible resolutions for the Turbo.  EGM even printed that the Turbo could do 262x240 but the Supergrafx only 256x192... craziness!

I know you like to #define a single maximum, but (keeping within the specs that don't crash the VCE,) the maximum resolutions it outputs can't be measured definitively using our conventional TV/RGB monitors.  Well, the results of my own personal tests are in that post, and so I set those results as theoretical maxima whenever I do programming; other people's mileage may vary.

The guy who did the arcade card docs... I'm guessing that was Dave Shadoff.  Yes, he's a real Turbo guru around these parts, and I guess that post was a very early one... back before Charles Macdonald tested the VCE's vertical limits, I guess?  One game that could have been a testbench for the 512x24x resolution on the Turbo Express is TV Sports Basketball (it has a 512 res mode).

As far as TE link ports go, I have no ideas about that, but if games can detect a TE, it's definitely through that port (and not by polling video hardware.)

Finally, that nifty trick of alternating sprite tables is indeed nifty, but nothing unique to Bomberman by any means.  Games have been flickering sprite tables/entries since the early Famicom (Coleco, even Atari 2600) days.  It's popularly(?) called OAM cycling, and is the only viable way to get plenty of objects in a horizontal line if the video hardware limits simultaneous horizontal sprite counts.

Arkhan

  • Hero Member
  • *****
  • Posts: 14142
  • Fuck Elmer.
    • Incessant Negativity Software
Re: TurboExpress : Rocgnizing in Software
« Reply #16 on: December 11, 2010, 04:51:40 AM »
Arkhan: I don't think just any bomberman will work - it either needs to be the original, or bomberman 93. I'm not positive, but the thread here indicated that those two versions definitely have the link option.

Yeah, I have the link one.  Im planning to go grab it in like an hour here after I finish eating and swearing at idiots on FF14. :D
[Fri 19:34]<nectarsis> been wanting to try that one for awhile now Ope
[Fri 19:33]<Opethian> l;ol huge dong

I'm a max level Forum Warrior.  I'm immortal.
If you're not ready to defend your claims, don't post em.

BlueBMW

  • Hero Member
  • *****
  • Posts: 4346
Re: TurboExpress : Rocgnizing in Software
« Reply #17 on: December 11, 2010, 03:44:17 PM »
BlueBMW : Thanks for the offer, but I wouldn't trust someone I met on the internet to return 'borrowed' hardware. But, if you get a chance, put bomberman in your express, and see if you can find the Link game.
Then put it in a regular duo/tg16 and see if it's still there. If we can find out what makes the link game option show up, I have a starting point for finding out how an Express is detected. It would also be nice to have independent verification of the procedure.

I tried Bomberman in my express and duo.  In both instances I can access the link play option from the main menu.  I didn't notice any difference between the two systems though.  If you try and initiate the connection on the Duo it does nothing.  Maybe try tracking down what command is executed when the run button is pressed from the link screen.
[Sun 23:29] <Tatsujin> we have hard off, book off, house off, sports off, baby off, clothes off, jerk off, piss off etc

spenoza

  • Hero Member
  • *****
  • Posts: 2751
Re: TurboExpress : Rocgnizing in Software
« Reply #18 on: December 11, 2010, 06:28:56 PM »
Games may not be able to differentiate between the Express and console proper at all. If they have a link mode they probably tell the hardware indiscriminately to send a serial handshake and wait for a return. I wonder if the expansion port has pins for the link functionality. Either way, I don't think it's necessary at all for a game to know whether the hardware is an Express or not. If you try link and nothing happens you don't play that mode. If you try the link and everything handshakes OK then you can play.
<a href="http://www.pcedaisakusen.net/2/34/103/show-collection.htm" class="bbc_link" target="_blank">My meager PC Engine Collection so far.</a><br><a href="https://www.pcenginefx.com/forums/" class="bbc_link" target="_blank">PC Engine Software Bible</a><br><a href="http://www.racketboy.com/forum/" c

TheOldMan

  • Hero Member
  • *****
  • Posts: 958
Re: TurboExpress : Rocgnizing in Software
« Reply #19 on: December 12, 2010, 07:59:01 AM »
Quote
I tried Bomberman in my express and duo. 
I plead alzheimers. Or stress. Whichever fits better :-)

After I started trying to figure out how the link stuff was done, I decided maybe I should check to see what it did. And lo and behold, the option WAS on the main menu. I could have sworn it didn't show up until you
put the game in an express..... Goes to show you how often I play bomberman. Or how bad my memory
really is. Take your pick :-)

I'm going to keep going on this, though. Even if there isn't a way to tell the express from a regular duo, I'd
still like to know how the link works. And I always hated games where you went to an option (like linked play),
and it hung until it got a handshake. There's got to be a better way.

(Yes, I can probably use the timer irq to time out the link connection. I just feel thats poor design... )

shubibiman

  • Hero Member
  • *****
  • Posts: 1832
Re: TurboExpress : Rocgnizing in Software
« Reply #20 on: December 13, 2010, 12:12:39 AM »
The option always shows but when you try to start a game in Express mdoe, it will ask you to link another Express (or GT). So the Express/GT mode has to be recognized via the link plug.
Self proclamed Aldynes World Champion

spenoza

  • Hero Member
  • *****
  • Posts: 2751
Re: TurboExpress : Rocgnizing in Software
« Reply #21 on: December 13, 2010, 09:32:12 AM »
I'm going to keep going on this, though. Even if there isn't a way to tell the express from a regular duo, I'd
still like to know how the link works. And I always hated games where you went to an option (like linked play),
and it hung until it got a handshake. There's got to be a better way.

At least the PCE had a pad-initiated reset, so if you went into link mode on a console unit you didn't have to get up and pop over to the TV to start over. Still, I bet the console expansion port can be hacked for a homemade link cable.
<a href="http://www.pcedaisakusen.net/2/34/103/show-collection.htm" class="bbc_link" target="_blank">My meager PC Engine Collection so far.</a><br><a href="https://www.pcenginefx.com/forums/" class="bbc_link" target="_blank">PC Engine Software Bible</a><br><a href="http://www.racketboy.com/forum/" c

spenoza

  • Hero Member
  • *****
  • Posts: 2751
Re: TurboExpress : Rocgnizing in Software
« Reply #22 on: December 13, 2010, 09:33:27 AM »
The option always shows but when you try to start a game in Express mdoe, it will ask you to link another Express (or GT). So the Express/GT mode has to be recognized via the link plug.

Have we determined yet if there is any game that actually displays a link-mode menu option ONLY on the handheld and not on the console? I still think there is no good way to detect and that the games  therefore do no such thing.
<a href="http://www.pcedaisakusen.net/2/34/103/show-collection.htm" class="bbc_link" target="_blank">My meager PC Engine Collection so far.</a><br><a href="https://www.pcenginefx.com/forums/" class="bbc_link" target="_blank">PC Engine Software Bible</a><br><a href="http://www.racketboy.com/forum/" c

Necromancer

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 21371
Re: TurboExpress : Rocgnizing in Software
« Reply #23 on: December 16, 2010, 08:11:26 AM »
For shits and giggles, I test drove all the other linkable games on my Duo and 'Express:

Bomberman '93 - acts the same as Bomberman
Columns - link option is grayed out (non-selectable) on both, so I guess it must need another 'Express attached
Falcon - after selecting Head-To-Head, the Duo says "2 TurboExpress Only. Check Cable, Other Machine" and the 'Express says "Waiting For Other Player"
Spin Pair - acts similar to Bomberman
U.S. Collection: 98% complete    157/161 titles

Arkhan

  • Hero Member
  • *****
  • Posts: 14142
  • Fuck Elmer.
    • Incessant Negativity Software
Re: TurboExpress : Rocgnizing in Software
« Reply #24 on: December 16, 2010, 08:17:48 AM »
Time to start raping the contents of Columns and Falcon.
[Fri 19:34]<nectarsis> been wanting to try that one for awhile now Ope
[Fri 19:33]<Opethian> l;ol huge dong

I'm a max level Forum Warrior.  I'm immortal.
If you're not ready to defend your claims, don't post em.

TheOldMan

  • Hero Member
  • *****
  • Posts: 958
Re: TurboExpress : Rocgnizing in Software
« Reply #25 on: December 16, 2010, 09:54:00 AM »
Quote
Time to start raping the contents of Columns and Falcon.

Just to bring everyone up to speed... After disassembling BomberMan (the original, NOT 93), it appears that
the link cable -is- read like a multi-tap; in the init section for the pads, it polls all 5 to see which ones are active, then checks the last 4 pads against pad 0, looking for differences. I haven't traced it all the way through (I keep getting distracted by other neat tricks in the code), but it appears that the link cable is actually wired up as a 2 port multi-tap. Maybe I'll get out the security bits, and see if there's an extra chip on the board that matches the one in the multi-tap. Maybe.

Quote
Columns - link option is grayed out (non-selectable) on both, so I guess it must need another 'Express attached

This gives me hope. If columns can at least recognize that the link isn't active, then that would be all I would need. Instead of graying out the menu item, I can just ignore it; that way you could only select a link game if the link itself was active to start with. I have a few other tests I'd like to do first, but after I trace down the pad handling in BomberMan, I think Columns and Falcon are gonna be the ones to decipher :-)
--------------------------------------------------------------------------------------------
And, in case anyone is wondering.... Wouldn't it be nice to have Multi-player Insanity on a HuCard (well, okay, flash card) and have it -know- you were using two linked expresses? I'm already thinking about how to add multi-player to it; I don't think linked expresses would be that much different......

ccovell

  • Hero Member
  • *****
  • Posts: 2245
Re: TurboExpress : Rocgnizing in Software
« Reply #26 on: December 16, 2010, 10:50:32 AM »
After disassembling BomberMan (the original, NOT 93), it appears that the link cable -is- read like a multi-tap; in the init section for the pads, it polls all 5 to see which ones are active, then checks the last 4 pads against pad 0, looking for differences.

This just sounds like straightforward multitap code to me... checking to see if a multitap (and several pads) are indeed connected, or if it's a single pad with no multitap.  If you hack the game to bypass that check you found, I'd wager it'll start a 5-player game where your P1 pad controls everybody.  It's not necessarily link cable code at all.

And remember a link cable is not just a multitap (one-way pad communication).  Two TurboExpress gamers aren't playing Bomberman on a single screen.  One TE sends its player's position/movements to the second TE along the cable, and the 2nd TE sends its own back to the first.  It's a 2-way communication route.
« Last Edit: December 16, 2010, 10:53:06 AM by ccovell »

TheOldMan

  • Hero Member
  • *****
  • Posts: 958
Re: TurboExpress : Rocgnizing in Software
« Reply #27 on: December 16, 2010, 09:15:46 PM »
Quote
This just sounds like straightforward multitap code to me.

Entirely possible that it is. But it appears to count the attached controllers, and elsewhere that controller count gets checked. For a 2.....But, I could be wrong.

Quote
And remember a link cable is not just a multitap (one-way pad communication)

That's the same mistake I made at first.

To read a pad, you write the port number and button set you want to the controller. IF there's only 1 pad connected, the pad will ignore the port information. The multitap, however, selects the port and passes the request on to the correct pad; hence it must have 2-way communication capabilities.
 (I'm not 100% sure of that, though. I can think of a few ways to do the same thing that don't require that capability. But, as was pointed out to me earlier, the Devlo box does 2-way communication over the controller port. So I think it's safe to assume controllers and the multitap are 2-way, not 1-way)

Quote
One TE sends its player's position/movements to the second TE along the cable

Are you sure?

It seems equally likely to me that the link cable could just be acting as a convenient bridge between the two machines, just electrically connecting the multitap chips. So, when you want to read player 2's pad (on the other machine), the link cable just transfers the signals. And the multitap chip in the second machine responds (like a regular controller) with the status of port 1. (Since port 2 isn't active on the second machine).

No, I'm not positive about this, or any of the other link stuff. But it seems to me that that -is- a viable way to do the connection; it's also a cheap way of doing it. Nothing extra required: just add in the multitap chip, swap a few signals, and it works. At least in theory......
Though I do still think the signals have to be converted to and from a serial format somewhere along the line. There doesn't appear to be any other way to send 4 (or possibly 8 ) bits of information across 3 lines without it. But a simple shift-register would work, as one possibility....

TheOldMan

  • Hero Member
  • *****
  • Posts: 958
Re: TurboExpress : Rocgnizing in Software
« Reply #28 on: December 17, 2010, 01:09:23 AM »
Apologies to all. I finally tracked through the bomberman code, and hit a few very strange routines....
Does anyone know they layout of page $f7 (I assume its hardware, possibly express specific.) It's definitely
not in the normal addressing range.....
Starting to look like we -may- have a way to recognize an express.....