Jump to content
IGNORED

Turbo / Atari 2600


xybot67
 Share

Recommended Posts

6 hours ago, Supergun said:

I haven’t burned an eprom yet with the Thomas bin file, but I guess I will try that next. Not sure if it will matter at this point though.

IMO makes no sense, the differences are not relevant.

6 hours ago, Supergun said:

Is there any reason this rom file would work on Harmony but not on a stand alone cartridge?

The initialization might be wrong or there is a wrong immediate read. But the code looks fine (BTW: switching between scenes reinitializes TIA and RAM) and even with Developer mode, which should reveal such problems, Stella has no problem with the ROM. Are you sure your board is not causing the problem?

  • Like 1
Link to comment
Share on other sites

@Supergun: Try this one:

Turbo_RH_swapped_banks.bin

 

 

I have this schematic in my docs archive, which I think was drawn by Kevin Horton, and according to the description was traced from a "Time Pilot" cart.

Coleco_F8_schem.thumb.png.122db0b7f5ba4c74fb61685266c66f9d.png

If your board uses this circuit, it will bankswitch to the upper half of the 8k eprom when accessing address "fff8", and to the lower half of it when accessing "fff9", which is the opposite of what's conventionally assumed for a 8k binary file using the "F8" bankswitching scheme. The attached binary is just the one posted by @Rom Hunter with the two 4k halves swapped, and it should solve your issue if this is the reason.

 

 

Edited by alex_79
  • Like 1
Link to comment
Share on other sites

On 11/17/2022 at 2:18 PM, alex_79 said:

@Supergun: Try this one:

Turbo_RH_swapped_banks.bin 8 kB · 2 downloads

 

 

I have this schematic in my docs archive, which I think was drawn by Kevin Horton, and according to the description was traced from a "Time Pilot" cart.

Coleco_F8_schem.thumb.png.122db0b7f5ba4c74fb61685266c66f9d.png

If your board uses this circuit, it will bankswitch to the upper half of the 8k eprom when accessing address "fff8", and to the lower half of it when accessing "fff9", which is the opposite of what's conventionally assumed for a 8k binary file using the "F8" bankswitching scheme. The attached binary is just the one posted by @Rom Hunter with the two 4k halves swapped, and it should solve your issue if this is the reason.

 

 

So does this mean the original ROM was altered?

Or did you alter the ROM into the original version?

8)

Link to comment
Share on other sites

2 hours ago, Rom Hunter said:

So does this mean the original ROM was altered?

Or did you alter the ROM into the original version?

8)

None of the above...

 

I didn't alter or hack the rom. What I posted is not a 2600 rom anymore, it's the data that needs to be burned into an eprom so that when installed in the board using the circuit shown above will result in a physical copy of the rom you posted.

In fact, if you dump such a cartridge with a cart dumper (that is, from the connector, not reading the eprom directly), you obtain the original rom, not the one with the data swapped!

 


The 2600 community established a standard way to arrange the data in the rom file for each bankswitching scheme. That standard doesn't necessary correspond to the dump of a physical rom chip inside the cartridge itself. In fact, the "roms" we use do not contain any information about the specific hardware in the cartridge. Many times the cartridge is dumped from the connector without opening it, so we don't have that info at all. The cartridge might have the data split into multiple rom chips, and/or arranged differently. It depends on the hardware of each specific cart.

 

(here, another example of a cartridge design, where the dump from the eprom isn't a valid 2600 rom and doesn't match the one you'd get from the connector).
 
So, if the proto board used a circuit like the one above, the file I posted is what was actually on the eprom, but the one you posted is the corresponding 2600 rom to preserve.

 

Edited by alex_79
  • Thanks 1
Link to comment
Share on other sites

Yes, this is very much true and makes perfect sense.

 

Look at Atari 8kb proto cart boards versus for example Pixels Past 8kb cart boards. With the Atari boards you have 2 separate high and low 4kb EPROMs and with PP you get 1 joined 8kb eprom.

 

Now imagine if you were to unplug the 2 EPROMs on the Atari board and swap their positions. Firstly, the game might not work properly if at all. Secondly, if you were to dump the data you would now get a different checksum.

 

So this theory makes perfect sense and could be the reason why I still can’t get any of the Turbo bins working on my board. (the two 4kb halves of the rom are flipped)

 

I have not had a chance to test out Alex’s rom yet, but I really do think it’s the answer and it will work.

Link to comment
Share on other sites

On 11/17/2022 at 8:18 AM, alex_79 said:

@Supergun: Try this one:

Turbo_RH_swapped_banks.bin 8 kB · 4 downloads

 

 

I have this schematic in my docs archive, which I think was drawn by Kevin Horton, and according to the description was traced from a "Time Pilot" cart.

Coleco_F8_schem.thumb.png.122db0b7f5ba4c74fb61685266c66f9d.png

If your board uses this circuit, it will bankswitch to the upper half of the 8k eprom when accessing address "fff8", and to the lower half of it when accessing "fff9", which is the opposite of what's conventionally assumed for a 8k binary file using the "F8" bankswitching scheme. The attached binary is just the one posted by @Rom Hunter with the two 4k halves swapped, and it should solve your issue if this is the reason.

 

 


OK. I finally had time today to burn this eprom and try it out. So the good news is that you were right, and flipping the LO and HI did indeed make the rom run properly on real hardware. (in that it gets passed the title screen and allows you to start a game and play it. Thank you.

 

The bad news is that I STILL need to burn yet another eprom because this one is still not the same as the original that Tempest reviewed. (when you pass the 18th car, it glitches and goes crazy)

 

So what I need to do is flip the HI and LO on the OTHER bin. And that should finally do it. I will update again with the results soon.

 

On 11/19/2022 at 3:04 AM, Thomas Jentzsch said:

I am pretty sure bank swapping happened with other dumps in the past too. I don't think much attention was payed here, the dumps just had to work in z26/Stella etc.

 

Indeed you are correct. This almost certainly has occurred an unknown number of times in the past. And this is a MAJOR oversight with our rom repositories which could take YEARS to correct. (assuming of course that anyone ever cares to correct it)

 

 

Edited by Supergun
Link to comment
Share on other sites

On 11/21/2022 at 11:33 PM, Supergun said:

The bad news is that I STILL need to burn yet another eprom because this one is still not the same as the original that Tempest reviewed. (when you pass the 18th car, it glitches and goes crazy)

I don't think that would help. The rom posted in 2015 has a bug and it won't work anywhere, no matter how you swap the banks or what board you use. The one that Thomas posted will work just like Rom Hunter's one. The bytes that differ between the two are irrelevant, as they don't change in any way the flow of the program.

 

It's likely an hardware issue with the board itself, IMO. By your description It seems to always start in one bank, which is the one with the starting light animation, then it switches correctly to the other one (straight road) to start the game, but it fails to switch back to the previous bank (curve road) when it needs to. A faulty logic gate in one of the ICs, or a cold/broken solder joint might cause this.

 

 

On 11/21/2022 at 11:33 PM, Supergun said:

And this is a MAJOR oversight with our rom repositories which could take YEARS to correct. (assuming of course that anyone ever cares to correct it)

I disagree here. It's extremely rare that the actual hardware inside the cartridge is documented, and therefore i believe it's best to just use a standardized format for each bankswitch scheme that does not depend on the specific hardware implementation.

Also, contrary to what happens with eproms, you can't find an intrinsic order of the banks in case of custom chips that contain both the rom and the bankswitching logic, even if you decap the chip (which is a destructive process) to document it. You can just know what data the 2600 will see on the bus depending on what bank is selected. The order in which you put that data in a file is up to you, and if the bankswitch is already known, you'd better just use the same format already established. The same apply if you dump the cartridge from the connector (which is how most games, including prototypes are preserved). What's inside the cartridge is a black box and you cannot know what is used to store the data and how is arranged.

 

In any case, with the "standard" rom, and the documentation (e.g. the schematic) of the actual board you want to use, you can always determine if and how the data needs to be rearranged for that particular situation.

Which also means that if you know the specific board used by a prototype, you can always and uniquely determine exactly what was on the original eprom. No information is lost in preserving the rom using the "standard"  format instead of the content of the eprom itself. No major (nor minor) oversight happened. And nothing needs to be corrected.

 

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...