eru Posted June 8, 2021 Share Posted June 8, 2021 (edited) 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 June 8, 2021 by eru 13 2 Quote Link to comment Share on other sites More sharing options...
zbyti Posted June 8, 2021 Share Posted June 8, 2021 @TIX maybe it's something for you? Quote Link to comment Share on other sites More sharing options...
+Stephen Posted June 8, 2021 Share Posted June 8, 2021 That's awesome! Quote Link to comment Share on other sites More sharing options...
Mazzspeed Posted June 8, 2021 Share Posted June 8, 2021 Definitely an interesting method of thinking outside the square, good job. Quote Link to comment Share on other sites More sharing options...
Yautja Posted June 9, 2021 Share Posted June 9, 2021 Mind blowing! Please, Marcin, integrate it to the emulator. BTW, it would make more people to appreciate atari800 -which is also used in Android devices. Quote Link to comment Share on other sites More sharing options...
Mclaneinc Posted June 9, 2021 Share Posted June 9, 2021 River Raid semi 3D, excellent... To quote others, awesome... Superb work there.. Quote Link to comment Share on other sites More sharing options...
+DjayBee Posted June 9, 2021 Share Posted June 9, 2021 Just: WOW! Quote Link to comment Share on other sites More sharing options...
800_Rocks Posted June 9, 2021 Share Posted June 9, 2021 Yes wow! Very nice, very creative. Quote Link to comment Share on other sites More sharing options...
eru Posted June 9, 2021 Author Share Posted June 9, 2021 (edited) Someone suggested also changing sounds - here's a little example with some random sounds replacing the "fire" sound in RiverRaid: Edited June 9, 2021 by eru 8 Quote Link to comment Share on other sites More sharing options...
eru Posted June 10, 2021 Author Share Posted June 10, 2021 Playing a bit more. This is fun 7 Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted June 10, 2021 Share Posted June 10, 2021 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! Quote Link to comment Share on other sites More sharing options...
suspicious_milk Posted June 10, 2021 Share Posted June 10, 2021 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. Quote Link to comment Share on other sites More sharing options...
Gunstar Posted June 10, 2021 Share Posted June 10, 2021 (edited) 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 June 10, 2021 by Gunstar 1 Quote Link to comment Share on other sites More sharing options...
Yautja Posted June 10, 2021 Share Posted June 10, 2021 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 1 Quote Link to comment Share on other sites More sharing options...
Gunstar Posted June 10, 2021 Share Posted June 10, 2021 17 minutes ago, Yautja said: http://www.atari.org.pl/forum/viewtopic.php?pid=281245#p281245 Thanks, I'll read that with Goggle translate later... Quote Link to comment Share on other sites More sharing options...
Dan Ciprus Posted June 11, 2021 Share Posted June 11, 2021 Wow ! Really impressive work ? Thank you ! Quote Link to comment Share on other sites More sharing options...
eru Posted June 11, 2021 Author Share Posted June 11, 2021 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... Quote Link to comment Share on other sites More sharing options...
+gnusto Posted June 11, 2021 Share Posted June 11, 2021 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. Quote Link to comment Share on other sites More sharing options...
eru Posted June 11, 2021 Author Share Posted June 11, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
+Philsan Posted June 12, 2021 Share Posted June 12, 2021 Nice to see you back to work on Atari Marcin! Quote Link to comment Share on other sites More sharing options...
eru Posted June 13, 2021 Author Share Posted June 13, 2021 I'm working on this in spare moments. For now, I added a bit more Lua support, so far I managed to port the Behind Jaggi Lines extension 100% to Lua. If someone's interested, it's here: https://github.com/MarcinZukowski/atari800/blob/better-yoomp/data/ext/bjl/init.lua Work in progress, as they say... 3 1 Quote Link to comment Share on other sites More sharing options...
+x=usr(1536) Posted June 13, 2021 Share Posted June 13, 2021 Very cool! I especially like what you've done with River Raid - it reminds me a bit of Atari's Sky Raider: And as someone who uses Atari800MacX, I'm very much looking forward to seeing what happens with this ? 2 Quote Link to comment Share on other sites More sharing options...
eru Posted June 16, 2021 Author Share Posted June 16, 2021 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 2 Quote Link to comment Share on other sites More sharing options...
eru Posted June 17, 2021 Author Share Posted June 17, 2021 ... and I also added some basic documentation for Lua scripting here: https://github.com/MarcinZukowski/atari800/blob/better-yoomp/data/ext/README.md#lua-scripting I think I'll pause for now, and see if there's any interest in pushing this further from others... Any ideas are welcome 2 Quote Link to comment Share on other sites More sharing options...
ChrisChiesa Posted July 9, 2021 Share Posted July 9, 2021 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. ) 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.