Jump to content
IGNORED

Suggested fix for improving the 2600+ dumper


karri

Recommended Posts

Hi @Ben from Plaion and @Albert

 

Here is my suggestion for what to include in the dumper fix.

 

The dumper creates a 128 byte header for the game and sends it to the ProSystem emulator. Currently the dumper picks a few bits from the ProSystem.dat to guess what the header should look like.

 

Having a copy of this 128 byte header in the ROM would take out the guessing work. Simply let developers make a copy of the a78 header by adding the header at $FF00 in the game ROM. This is the logical place for it as the signature for NTSC carts is at $FF80. The cart would work correctly on a real Atari 7800 (NTSC) and thanks to the info in the ROM the dumper could send the correct settings to the emulator as well.

 

If the data in the dumped rom has the data: (version_byte+'ATARI7800') at $FF00 the dumper just copies the 128 bytes from there and sends it to the emulator followed by the dumped game.

 

If the (version_byte+'ATARI7800') is not there then the dumper goes back to guessing.

 

Oh, and thanks for making a really modular and elegant 2600+. The more I have played with it - the more I like it.

 

Edit: I just added a small example file with the header in the ROM.

 

The end of the file with the header, the signature and the vectors:

007f80 004   A   T   A   R   I   7   8   0   0  \0  \0  \0  \0  \0  \0
007f90  \0   E   x   a   m   p   l   e  \0  \0  \0  \0  \0  \0  \0  \0
007fa0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fb0  \0  \0  \0 200  \0  \0  \0 001 001  \0  \0  \0  \0  \0  \0  \0
007fc0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fd0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fe0  \0  \0  \0  \0   A   C   T   U   A   L       C   A   R   T    
007ff0   D   A   T   A       S   T   A   R   T   S       H   E   R   E
008000  \t 245 300 324 321  \b 031  \r 253 340 307   ! 326   I 375   [
008010 265   3 210   ' 367 211   ^   '   L 370   B   &   >   n 207 227
008020 257   W 314 346   5 266 220 303 344   |   d 355   V 016 300 017
008030 352 367 255 022   ~ 301 036 277   ? 367 360 257   N 247 313   0
008040   1   W   b 203 332  \a   P 371 257   |   \ 204   i 365 230 276
008050 311 354  \v 270 266   A   [ 373   !   + 250 016 006 276   O 374
008060 263 332 201   s   y   O   +  \f 344 211 177 275   4 017   +   C
008070 204 210 024 356 235   m 310 306 377 207   ` 200  \0 200   a 200

 

Example.a78

Link to comment
Share on other sites

11 hours ago, karri said:

Hi @Ben from Plaion and @Albert

 

Here is my suggestion for what to include in the dumper fix.

 

The dumper creates a 128 byte header for the game and sends it to the ProSystem emulator. Currently the dumper picks a few bits from the ProSystem.dat to guess what the header should look like.

 

Having a copy of this 128 byte header in the ROM would take out the guessing work. Simply let developers make a copy of the a78 header by adding the header at $FF00 in the game ROM. This is the logical place for it as the signature for NTSC carts is at $FF80. The cart would work correctly on a real Atari 7800 (NTSC) and thanks to the info in the ROM the dumper could send the correct settings to the emulator as well.

 

If the data in the dumped rom has the data: (version_byte+'ATARI7800') at $FF00 the dumper just copies the 128 bytes from there and sends it to the emulator followed by the dumped game.

 

If the (version_byte+'ATARI7800') is not there then the dumper goes back to guessing.

 

Oh, and thanks for making a really modular and elegant 2600+. The more I have played with it - the more I like it.

 

Edit: I just added a small example file with the header in the ROM.

 

The end of the file with the header, the signature and the vectors:

007f80 004   A   T   A   R   I   7   8   0   0  \0  \0  \0  \0  \0  \0
007f90  \0   E   x   a   m   p   l   e  \0  \0  \0  \0  \0  \0  \0  \0
007fa0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fb0  \0  \0  \0 200  \0  \0  \0 001 001  \0  \0  \0  \0  \0  \0  \0
007fc0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fd0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
007fe0  \0  \0  \0  \0   A   C   T   U   A   L       C   A   R   T    
007ff0   D   A   T   A       S   T   A   R   T   S       H   E   R   E
008000  \t 245 300 324 321  \b 031  \r 253 340 307   ! 326   I 375   [
008010 265   3 210   ' 367 211   ^   '   L 370   B   &   >   n 207 227
008020 257   W 314 346   5 266 220 303 344   |   d 355   V 016 300 017
008030 352 367 255 022   ~ 301 036 277   ? 367 360 257   N 247 313   0
008040   1   W   b 203 332  \a   P 371 257   |   \ 204   i 365 230 276
008050 311 354  \v 270 266   A   [ 373   !   + 250 016 006 276   O 374
008060 263 332 201   s   y   O   +  \f 344 211 177 275   4 017   +   C
008070 204 210 024 356 235   m 310 306 377 207   ` 200  \0 200   a 200

 

Example.a78 32.13 kB · 0 downloads

7800 emulation and dumper is being worked on at this moment. I'll post more when I have something concrete.

  • Like 2
  • Thanks 3
Link to comment
Share on other sites

  • 4 weeks later...

Some sound chips have write-only registers and may be mapped to the same addresses as fixed ROM. Detecting these chips is almost impossible.

 

I wonder if you could give some consideration to the idea of including a copy of the header in the game rom in a fixed place. That should not be hard to implement in the dumper and it would give developers a method to ensure that the game works on the 2600+ as intended.

 

The whole point of a 7800 header is to set the bits right for the emulator.

Link to comment
Share on other sites

45 minutes ago, karri said:

Some sound chips have write-only registers and may be mapped to the same addresses as fixed ROM. Detecting these chips is almost impossible.

 

I wonder if you could give some consideration to the idea of including a copy of the header in the game rom in a fixed place. That should not be hard to implement in the dumper and it would give developers a method to ensure that the game works on the 2600+ as intended.

 

The whole point of a 7800 header is to set the bits right for the emulator.

My understanding is that the guys working on the 7800 emulation and dumper update are the best. Albert hooked me up with them. 

 

But I've still yet to see it as a complete package, well 2 packages, one main board IMG and a dumper chip EXE. Development has finished and Firmware is being compiled at the moment with their work merging with what the factory have done on the 2600 side and general system stuff.

 

 

 

 

  • Like 6
  • Thanks 4
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...
  • Recently Browsing   0 members

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