| |
Mr SQL
Registered: Feb 2023 Posts: 136 |
Defender III now running on the C64!
Defender III is now running on the Commodore 64.
This is an Atari 2600 production written specifically for the Atari Flashback Portable console, it runs transparently inside the innovative Atari 2600 Emulator for the Commodore 64 with petscii graphics texture mapped to the Atari game graphics.
Download the game and the Trainer here from AtariAge:
https://forums.atariage.com/topic/262864-defender-iii-atari-fla..
Compare D3 to the Atari version, it's pixel perfect and cycle precise because the Atari binary is running unchanged on the C64's 6510 CPU. The Atari 2600 TIA, RIOT and system bus are emulated. The enhanced version of the C64 Atari 2600 emulator will be available soon. Compatibility with batari BASIC games is next! :) |
|
| |
Danzig
Registered: Jun 2002 Posts: 440 |
Quote: Defender III is now running on the Commodore 64.
This is an Atari 2600 production written specifically for the Atari Flashback Portable console, it runs transparently inside the innovative Atari 2600 Emulator for the Commodore 64 with petscii graphics texture mapped to the Atari game graphics.
Download the game and the Trainer here from AtariAge:
https://forums.atariage.com/topic/262864-defender-iii-atari-fla..
Compare D3 to the Atari version, it's pixel perfect and cycle precise because the Atari binary is running unchanged on the C64's 6510 CPU. The Atari 2600 TIA, RIOT and system bus are emulated. The enhanced version of the C64 Atari 2600 emulator will be available soon. Compatibility with batari BASIC games is next! :)
You all drank varnish! :-D |
| |
TheRyk
Registered: Mar 2009 Posts: 2219 |
You keep using these words
Quoting Mr SQL
- "transparently inside the innovative Atari 2600 Emulator for the Commodore 64"
- "petscii graphics"
- "pixel perfect and cycle precise"
But I still don't think they mean what you think they mean.
To me what you did ain't emulation but ports/conversions. If you code some kind of engine to run a _particular_ Atari code on C=64 6510, it is still porting not emulating (<- which would mean a _universal_ approach).
PETSCII... well at least you seem to have used the ROM font this time, but are the sprites generated by CharROM - I don't think so.
Pixel perfect and cycle precise - we would need to look at the Atari version to judge that, how about a video.
General feedback on gameplay: Even in official Defender II laser/missile does not move _after_ firing following ship movement on Y axis. So this should for sure not be the case in this - if I got it right: homebrewn fanmade - part III.
Maybe things get clearer when you release that
"enhanced version of the C64 Atari 2600 emulator" |
| |
Mr SQL
Registered: Feb 2023 Posts: 136 |
Quote: You keep using these words
Quoting Mr SQL
- "transparently inside the innovative Atari 2600 Emulator for the Commodore 64"
- "petscii graphics"
- "pixel perfect and cycle precise"
But I still don't think they mean what you think they mean.
To me what you did ain't emulation but ports/conversions. If you code some kind of engine to run a _particular_ Atari code on C=64 6510, it is still porting not emulating (<- which would mean a _universal_ approach).
PETSCII... well at least you seem to have used the ROM font this time, but are the sprites generated by CharROM - I don't think so.
Pixel perfect and cycle precise - we would need to look at the Atari version to judge that, how about a video.
General feedback on gameplay: Even in official Defender II laser/missile does not move _after_ firing following ship movement on Y axis. So this should for sure not be the case in this - if I got it right: homebrewn fanmade - part III.
Maybe things get clearer when you release that
"enhanced version of the C64 Atari 2600 emulator"
There's more information on the link describing the differences between Defender and Defender II:
All Defender games have different weapons - in Defender you had a colorful laser burst while Defender II sported more precise particle beam weapons. In Defender III, you've got an unlimited supply of remote control Drones, which control a bit differently than laser bursts or particle beams:
Until a Drone goes offscreen and out of range you'll have full control over it - you can even make the Drones do loop-de-loops and figure eights which comes in handy for clipping the high speed meteors. It can take awhile to get used to not being able to fire another shot after you miss a target because your Drone is still airborne - this Defender plays different :)
Give it a chance you might like it once you get used to this, it's actually pretty cool. The Trainer makes it easier to learn how to control the shots.
Regarding your questions about the emu it was inspired by a thread on AtariAge about creating an Atari emulator that could be combined with the ROM as an executable.
The only way to do that is by recompiling the source, which is what the C64 Atari emu does.
There are no changes, the Atari binary is only 7K and runs inside the 24k emulator which emulates (enough of) the TIA, RIOT and Atari system bus to allow the Atari game to run unchanged on the 6510, it wouldn't be possible if the CPU had to be emulated too but it's still requires a lot of optimization to run a 1 MHz emulator on a 1 MHz platform.
Since the same sourcecode is recompiled without changes, it meets the definition of an emulator. We're just used to seeing a stand alone emu loading ROM's, not bound to them but it was a great idea.
This same technique from the idea thread could be used with Stella or VICE to make standalone executables of games if someone wanted to try that.
Good idea, I will find some videos to post to compare.
The petscii tile mapping is optional and four block graphics with parallel lines could be selected as the petscii to perfectly match the Atari graphics but it's nice to see the texture, I'm glad you like this choice. If you stand back 10 feet there's a nice illusion where the petscii blends. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11359 |
Quote:Since the same sourcecode is recompiled without changes, it meets the definition of an emulator.
Not really. If anything, its a portable program/source. |
| |
Mr SQL
Registered: Feb 2023 Posts: 136 |
Quote: Quote:Since the same sourcecode is recompiled without changes, it meets the definition of an emulator.
Not really. If anything, its a portable program/source.
Who says the emulator can't be bound to the ROM?
Here's the idea thread from AtariAge:
https://forums.atariage.com/topic/329639-can-stella-output-a-st..
The upcoming release will increase compatibility with more ROM's, and again after that.
From a design perspective I prefer pixel perfect and cycle precise emulation of a smaller number of ROM's than lossy emulation of many; the latter tends to degrade into a simulation when the emulation is off.
It may be more clear it's emulation when I post the videos side by side.
Activision released an emulator only compatible with their ROM's at first then expanded it later to run more, this is the same concept except for binding the ROM and the emu together to form a stand-alone executable. |
| |
TheRyk
Registered: Mar 2009 Posts: 2219 |
Your definition of emulator seems to differ from ours.
Quoting Mr SQL... upcoming release will increase compatibility with more ROM's ...
To me it still seems you only increase the amount/archive of "ROMs" (once more not sure what you mean, I guess A2600 Cartridge ROMs) that can be executed with the help of whatever-you-coded on a C64, wheras in my book an "emulator" would mean you build something for C64 ready to execute ANY Atari 2600 code, e.g. I'd expect I can play "Landung in der Normandie" for Atari 2600 on a real C64 with the help of such an emulator. Is that really to be expected in the course of your project? If not, what you do stays porting imho :) |
| |
Mr SQL
Registered: Feb 2023 Posts: 136 |
Quote: Your definition of emulator seems to differ from ours.
Quoting Mr SQL... upcoming release will increase compatibility with more ROM's ...
To me it still seems you only increase the amount/archive of "ROMs" (once more not sure what you mean, I guess A2600 Cartridge ROMs) that can be executed with the help of whatever-you-coded on a C64, wheras in my book an "emulator" would mean you build something for C64 ready to execute ANY Atari 2600 code, e.g. I'd expect I can play "Landung in der Normandie" for Atari 2600 on a real C64 with the help of such an emulator. Is that really to be expected in the course of your project? If not, what you do stays porting imho :)
Who says all of the ROM's have to be supported?
By that definition, the Activision emulator that only plays Activision ROM's wouldn't be an emulator either because it can't play "ANY Atari 2600 code".
You would also disqualify the Atari Z26 and Stella emulators with that definition because I can write Atari 2600 code that runs on the real hardware but not there.
That also disqualifies the Atari2600+ console and the Retron77 console and the Atari Flashback Portable console with it's even more limited in the number of ROM's it can run.
I referred to both ROM's and 6K RAM images from the SuperCharger expansion board for the Atari 2600.
The architecture illustrates emulation and also the ability to run the ROM's and tape images pixel perfect and cycle precise in a Virtual Machine.
Here's the architecture allowing the ROM's and tape images that run so far:
SuperCharger emulation (not complete, can't do multiloads yet)
CBS RAM emulation (extra 256 bytes of RAM)
TIA emulation (not complete for all ROM's)
RIOT emulation
Atari System bus emulation (has an issue when locations are written to, this happens by mistake in ROM's but is handled on the real hardware and in larger emulators - problem is to write protect locations on the zero page)
Soft ANTIC emulation (100% complete, was my design).
You could argue the emulator is incomplete and under development, but it's still clearly emulation technology I from the architecture and from the results.
It doesn't run all Atari 2600 programs, but it does run some of the most advanced.
Emulating ported technology too:
Here's a display list demo that splits the screen up into three different scroll zones using soft ANTIC which ports Display List technology from the Atari 800 to the Atari 2600 and is not Atari 800 Display List emulation:
https://www.youtube.com/watch?v=ZSqBK0BpisU
https://www.youtube.com/watch?v=5uTeH5WQX-0
While soft ANTIC is a port of A8 Display list Technology on the Atari 2600, this port of soft ANTIC is precisely emulated on the C64 Atari 2600 emulator.
The Atari Flashback I is another good example, it contained a Nintendo chip and Atari games ported to that chip, they were not cycle perfect or pixel precise as they were re-writes while emulation runs the same code.
I think you know the difference between a port and emulation :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11359 |
Quote:I think you know the difference between a port and emulation :)
We do, indeed. |
| |
Mr SQL
Registered: Feb 2023 Posts: 136 |
Quoting TheRyk=
Pixel perfect and cycle precise - we would need to look at the Atari version to judge that, how about a video.
Just had a chance to post some instructional videos that show how to play Defender III using the guided drones for loop de loop maneuvers.
The game is more colorful on the Atari but you can see it's cycle precise and pixel perfect for both the game and the Trainer as it's running the same code.
Defender III:
https://youtu.be/5Zj9IEjiMy8
Defender III Trainer:
https://youtu.be/CXgCkZw7kEU
I'm playing these online with the Atari 2600 Game Modem cart just like in the 80's, updated for Today with wi-fi instead of 300 baud as the PlusCart. |
| |
TheRyk
Registered: Mar 2009 Posts: 2219 |
Of course I can't count cycles with my mere eyes watching your filmed-from-CRT videos, but thanks, the videos indeed help to illustrate your idea. |