Jump to content

alex_79's Photo

alex_79

Member Since 7 Sep 2006
OFFLINE Last Active Feb 13 2019 2:08 PM

#4084853 Mystery Cartridge

Posted by alex_79 on Fri Aug 3, 2018 2:38 PM

Apparently, you only have half of the device: those pins installed on the case just carry the signals from the atari cart port. A daughter board was obviously meant to be plugged on those pins and, as stated by others, it was most probably an eprom board. Having it in two pieces allows to easily build different boards (for different eproms, or different game sizes for example) without having to modify  another cartridge every time.




#4077888 Kool Aid Man doesn't work on Stella, why?

Posted by alex_79 on Tue Jul 24, 2018 2:02 AM

Maybe you're using a very old version of Stella?

 

Download the latest version here:

https://stella-emu.g.../downloads.html




#4077173 48 pixel timing diagram / formula

Posted by alex_79 on Mon Jul 23, 2018 1:13 AM

You might find useful stepping through the code of games using the 48 pixels routine in the Stella debugger. You'll see how the 2 GRPx registers for each player are updated and also the delays ("Queued Writes" in the bottom area of the TIA tab)
48pixel.png




#4077170 RetroN 77

Posted by alex_79 on Mon Jul 23, 2018 12:53 AM

When in 2600 mode, the 7800 disables Maria and the 4k internal ram and it maps TIA and RIOT to the same addresses (and mirrors) as in the 2600. But it doesn't disable the extra address lines. There's circuitry on the board to disable some of those, but that's used in case the 7800 bios is selected (else its addresses would overlap some of the cart ones).

 

When the cart is selected, all the addres lines are there, no matter if in 2600 or 7800 mode. A 2600-mode game on a 7800 board can have up to 32k of non banckswitched address space, plus the extra signals necessary to install a standard SRAM chip without any additional hardware.

 

A version of 2600 "Save Mary" was once available from Video61 that did exactly that: it used a 7800 board with standard EPROM, SRAM and nothing else (before the Harmony/Melody, basically the only option for 2600 games with extra ram was to scavenge old SARA chips from original carts).

 

I suppose the HALT line can be used too to allow a coprocessor on the cart to directly drive the TIA, but I don't know for sure.



 




#4076679 RetroN 77

Posted by alex_79 on Sun Jul 22, 2018 9:45 AM

I think phoenixdownita means a game that uses a 7800 cart board (with full edge connector), but that runs in 2600 mode. The HALT line will be available to the cartridge in that case.
 




#4075445 RetroN 77

Posted by alex_79 on Fri Jul 20, 2018 2:35 PM

If the dumper software tells the supercharger bios to load the game code to ram, why can't it be dumped from ram.

Because the Supercharger doesn't have any CPU in it. It's just rom (the bios), ram, the audio interface and some logic to hadle bankswitching and ram writes. The 2600 does the work to poll the audio interface, decode the data from the tape and store it to the SC ram.




#4075443 RetroN 77

Posted by alex_79 on Fri Jul 20, 2018 2:32 PM

To add to that, this is what the official "Stella Programmer's Guide" says:

The portion of the program that constructs this TV picture is refered to as the "Kernel", as it is the essence or kernal of the game.




#4075432 RetroN 77

Posted by alex_79 on Fri Jul 20, 2018 2:21 PM

Yes, the code that Spiceware posted is Atari 2600 programming (the kernel) and is what makes the 2600 the display processor or gpu to the arm cpu. The game logic (the main program) is in a different machine language not recognised by the 2600.

Considering the game logic as "main program" (especially in the case of the 2600) is a matter of opinion. I don't concur with that opinion.
 

In fact those instructions are processed by the arm and never have to leave the cartridge. [...] And that's what makes it a problem for the retron77. How would you get at the game program.

What makes it a problem is that the Retron is not an Atari console, but a computer running an emulator + a cart dumper.
A cart dumper doesn't replicate the function of the cartridge port on real hardware. A real console doesn't "dump" the games.

(BTW, The Melody boards are programmed through the connector by a dedicated programmer. I don't know if it can also read the data back from the board, but in that case it could be possible to design a cartridge dumper that will read those games too)
 

It should be possible to add support for the Supercharger, and other bankswitching schemes to the retron77. They're designed to have their game code pass through the cartridge pins.

You can't "dump" a supercharger game like you do with rom based cartridges (you will only get the bios in that way). You have to access it in real time to load the game from tape, or at least read the input from the audio interface (again, in real time) emulating the rest of the device.




#4075220 RetroN 77

Posted by alex_79 on Fri Jul 20, 2018 9:42 AM

A game like Pitfall II is essentially an Atari 2600 program since the main game program is executed inside the Atari 2600
[...]
In the case of the arm processor cartridge, the main game program is running on the cartridge.

Did you at least read Spiceware's reply? The code he posted is 6502 code executed by the cpu in the Atari. Some of the constants in that code are actually datastreams provided by the arm cpu on the cartridge (that means, the arm change those values on-the-fly).

Also what you mean with "main program"? In the case of the 2600 many would agree that the kernel (the code actually drawing the screen) is the main program, and that's because of the design of the TIA that needs to be fed with data in real time as the image is being drawn ("racing the beam").

The code posted by spiceware draws (a portion of) the screen and it's executed by the 6502 AND the ARM, working together in sync.

 

It's a foreign computer attached to the Atari 2600, using the 2600 as a display processor, a power source, and for controller inputs.

For the record, the arm has no access to the TIA (the display processor), nor to the I/O of the console. You're right that it takes power from the console, tought.


 

Not everyone cares but it's still good to know what cartridges use native Atari 2600, and what add-ons other cartridges have, whether it's ram, coprocessors, or cpu. Is this relevant to the Retron77? It might be, as some of these new cartridge technologies might make it near impossible for the Retron77 to dump the rom.

It's not that the Retron77 cannot play those games because they're not "native" Atari games, but because the Retron77 is not a "native" Atari hardware!

Those games run fine on real hardware. And on Stella (that is, unless you use a 5 years old version ;) ), since it is modeled after the real hardware. It's not a question of using "new" cartridge technology either. Some "old" cartridge technologies like a Supercharger or a Compumate don't run on the r77 and not because of the presence of a cpu on the cartridge (none of those has a CPU, btw). The reason is that the Retron doesn't really "play" cartridges, it just gives the illusion of doing so by dumping them and then feeding the rom to Stella. The "trick" works most of the times, but there are exceptions. It's a trick, after all.




#4074361 Retron77 Compatibility List

Posted by alex_79 on Thu Jul 19, 2018 10:53 AM

So this would be why the older text labels and some homebrews don't even get recognized by the system (screen doesn't even go black)?

Yes, I think it's likely the cause, altough I can't verify it myself as I haven't a retron 77 (but I might consider buying it if someone manage to make it run Stella 5.x)
 

I was guessing it was the missing tooth in the picture.

The missing pin is unrelated: some of the early games are 2kb in size and therefore they need one less address line than 4k or bigger ones. If you look at the pictures I posted above, the missing pin on your "slot machine" board is address line "A11".

The pin on the extreme right on the top of the board and the one at the extreme left on the bottom in the photo you posted, are typically connected together internally and (I believe) the r77 rely on that to detect the cart. Unfortunately there are a few exceptions (including the Harmony/Melody).
post-30305-0-75716300-1532006061.jpg
I checked with a multimeter some of my carts and found one that shows infinite resistance (that is, no connection) on those pins. It's a text label PAL "night driver". Curiously, I have another copy of that game, text label too, that has the pins connected. I don't want to damage the labels, so I havent looked at the boards.




#4074030 Retron77 Compatibility List

Posted by alex_79 on Wed Jul 18, 2018 11:58 PM

@SIO2

 

"A7" I was referreing to in my post is an I/O pin on the MCU on the retron 77 board (pin "7" of I/O port "A"), not A7 (address line 7) on the Atari cart. Sorry for the confusion.

The pins on the cart that are connected (and that I think the r77 uses to detect the cart) are GND (pin 12) and SGND (pin 24). You might try disconnecting those (by cutting the trace) and put the switch there.
atari_cart_board.JPG
The fact that the console detects an unpopulated board seems to indicate that my assumption is correct. As I've said, that's another source of incompatibility that should be taken care of with a software update
 




#4073509 Atari Jr. Rev D?

Posted by alex_79 on Wed Jul 18, 2018 11:24 AM

The board has not been modified. It is designed for both PAL and NTSC variants and that area is only populated in the PAL version.

Here's a picture of the same area on one of my PAL units (revision F1)
PAL_JR.jpg




#4071009 Retron77 Compatibility List

Posted by alex_79 on Sun Jul 15, 2018 10:13 AM

NTSC Space Shuttle exists in both FE and F8 version. PAL and SECAM known dumps are FE.




#4068793 HMOVE variations

Posted by alex_79 on Thu Jul 12, 2018 8:57 AM

Was there a test program used to generate this chart and if so does anyone know where to obtain it?

 
https://www.biglist....4/msg00198.html

 

Attached File  hmove.zip   4.46KB   47 downloads




#4045985 Auto-Detecting Controller at Startup

Posted by alex_79 on Sun Jun 10, 2018 1:30 PM

Keep in mind that a Sega Genesis/Megadrive pad will fail the test and will be detected as a paddle instead. There are pullup resistors connected to pins 5 and 9 inside the controller that cause the paddle caps to be recharged. Pin 9 (INPT1 or INPT3 depending on which port the controller is plugged in) can be grounded if button C is pressed (That's how that extra button can be read by some homebrews and hacks), while the pullup in pin 5 (INPT0/INPT2) is always connected so the related capacitor will always be recharged.

Those controllers are a common choice for people who prefer D-pads over a classic joystick, so you might want to consider a way to make them work with your game.

For example, you can add a way to force joystick mode by holding a button while powering the console (the RESET or SELECT switch, for example or a button/direction on the controller ). The Harmony menu forces joystick mode by holding the fire button on the controller itself ("B" on the genesis pad).

Or you could add code to revert to joystick mode if any of the UP/DOWN directions or the firebutton is pressed.