Jump to content
IGNORED

Some fun with atari800


eru

Recommended Posts

Just wanted to share some fun I had with the atari800 emulator in the last few weeks.

 

The idea is that we have per-game programmatic extensions in the emulator, that can e.g. make the games faster or look differently. But there's no limit, we could e.g. easily add additional levels to games, change logic, etc.

 

You can see the results in this video (in Polish, but with English subtitles).

 

More info in my repo on github, also all the code is there. I will try to polish it a bit and consider merging into the official atari800 repository.

 

Curious what folks think... :)

 

P.S. Cross-linking the polish AtariArea discussion

Edited by eru
  • Like 13
  • Thanks 2
Link to comment
Share on other sites

 

 

On 6/8/2021 at 4:39 PM, eru said:

The idea is that we have per-game programmatic extensions in the emulator, that can e.g. make the games faster or look differently. But there's no limit, we could e.g. easily add additional levels to games, change logic, etc.

Great work! Especially River Raid... Yoomp made alot of sense, since presumably you could patch the source if wanted, but once you got into River Raid, etc, it was clear you'd signed up for extra work!

 

 

Link to comment
Share on other sites

Looks really cool and all, but I'd like to see better support for controllers.  Going into the settings offers very few options, and assigning buttons via AntiMicroX is cumbersome (when available) and no real one-size-fits-all (assigning "Enter" to a button is disastrous in some games (Defender), and when attempting to use outside a "normal" desktop (ie Batocera), menu and controller access is just flat out broken.    As a Linux user it's my Atari emulator of choice and I absolutely love it, but fighting with gamepads and joysticks gets old.

Link to comment
Share on other sites

This is pretty damn cool. But now how about doing something similar on real Atari's using VBXE and Rapidus? hardware to do the same with games on real Atari's? Would that be possible? I bet VBXE's would start selling lot hot-cakes and get a lot more developer and user support in the long run. I'm already waiting in line for it!

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

1 hour ago, Gunstar said:

This is pretty damn cool. But now how about doing something similar on real Atari's using VBXE and Rapidus? hardware to do the same with games on real Atari's? Would that be possible? I bet VBXE's would start selling lot hot-cakes and get a lot more developer and user support in the long run. I'm already waiting in line for it!

http://www.atari.org.pl/forum/viewtopic.php?pid=281245#p281245

  • Thanks 1
Link to comment
Share on other sites

21 hours ago, Gunstar said:

This is pretty damn cool. But now how about doing something similar on real Atari's using VBXE and Rapidus? hardware to do the same with games on real Atari's? Would that be possible? I bet VBXE's would start selling lot hot-cakes and get a lot more developer and user support in the long run. I'm already waiting in line for it!

From my side, the intention was never do port this to anything physical, it was just playing. But I bet some things that one could do on the emulator could _also_ be done with e.g. VBXE or some accelerator...

 

Link to comment
Share on other sites

It's a cool idea and well executed in your examples, congratulations! Very nice.

 

I've wondered in the past if we could use some of the old emulated games on many platforms as the "engine" for simulation in the background, and then just display completely differently, to more modern standards. A good example of this commercially in progress is the Diablo II remake; they are using the binary code from the old game for simulation, so much so that when playing you can switch between the old display and the new. Another I can think of is KeeperFX, which made the original Dungeon Keeper into a DLL so he call into it for game logic, but then did his own thing for display.

There are a bunch of games I would play this way - M.U.L.E., Seven Cities of Gold, Star Raiders of course. When EA tried to update Seven Cities they changed the way it played, and it was just not the same at all. But if you had that little 8bit engine doing the game logic, and then hires graphics output, that would be a great improvement.

Link to comment
Share on other sites

That's exactly a part of the idea. It's possible to partially change the visuals (see Yoomp! in the video) or even completely (see River Raid). Same for sounds.

 

The problem is, one usually needs to do quite some reverse engineering. Except for Yoomp! (where I, obviously, had sources), all these games took some time.

Just accelerating things is relatively easy, as it's easy to find where the time is going, see the note about it.

But actually e.g. extracting where do elements go on the screen, is not easy, and for River Raid it took me a few good hours, and it's definitely not complete (e.g. tank missiles or helicopters shooting I still didn't do). But it can be done.

 

MULE is a great idea, and probably wouldn't be terribly hard to do. Maybe when I find some time...

 

But first, I think the best investment would be to make the extensions easily scriptable. Probably I'll stick to Lua for now (even though I hate the language), but eventually I see JavaScript a possibly better option. Lua embedding is already partially done.

  • Like 1
Link to comment
Share on other sites

If anyone is interested, I added a signficantly richer Lua support. Now extensions 4 out of 6 games I previously played with have been fully ported to Lua: Yoomp!, Zybex, Alternate Reality and Behind Jaggi Lines.

 

River Raid and Mercenary are still in C, as they are the longest and hardest.

 

But what's out there can probably already do quite a bit. Example for Yoomp! here: https://github.com/MarcinZukowski/atari800/blob/better-yoomp/data/ext/yoomp/init.lua

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

While I'm "all for" making ad hoc changes to games, I feel that putting game-specific customizations into the emulator itself is a misguided idea.  At the very least, put any such features into a(n optional) plugin, or plugins.  Maybe implement a scripting facility that interacts with the emulation at run-time, at something like the Monitor level: "when this address is accessed, intercept the access and do this other thing instead."  (The pinball-machine emulators I've seen, for instance, implement much of their per-game logic using an embedded Visual Basic engine.  It's not exactly analogous to what I'm suggesting here, but it suggests the beginnings of a facility.  The Monitor needs some more features anyway. ;-) )

Otherwise, atari800 -- really, any emulator of any platform -- should remain pure and pristine, delivering only an exact duplication of physical-hardware behavior.  I'm concerned that we seem to have run out of basic functionality to implement, and are now starting to "jump the shark" (look it up) by considering unnecessary and ill-considered bells and whistles.  I'd hate to see atari800 go that way, just when I'm almost ready to start contributing, myself.  (Oh, and be warned: if-and-when I do get into working with source code, and I see anything resembling game-specific hacks Done Wrong, I will take them out. ;-) )

 

  • Confused 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...
  • Recently Browsing   0 members

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