Hello! I should have made this topic like 3 months ago, but better late than never. Razz

I've written a port for the game Another World (or Out of This World) by Éric Chahi. This program is more or less an interpreter for the VM designed for the game.

I'm unsure of the legality of including the game files with the interpreter, so for now you'll have to acquire you're own copy of the MS-DOS version of the game and than convert them to appvars. More on that is explained here:

https://github.com/Zaalan3/AnotherWorldCE

COMING SOONER OR LATER:
Less buggy visuals
Savestate features( Savestates have been implemented! )
A proper release version here on Cemetech and on Github



Cool will this run any Msdos game or just another world. Regardless this is awesome.
That smooth animation Shock (I am used to the SNES version)
Awesome!
This is amazing, I had always wondered if something like this would be possible.
Invalid_Jake wrote:
Cool will this run any Msdos game or just another world. Regardless this is awesome.


Just Another World. A general MS-DOS emulator isn't something I would touch with a 10-foot pole.

DJ Omnimaga wrote:
That smooth animation Shock (I am used to the SNES version)


Yeah, the SNES was unfortunately not a good platform for a game like this in general. Lots of polygon drawing and bitmaps, basically nothing tile-based for hardware acceleration. Not to mention a lot of memory access and 16-bit math, and the overhead of decoding instructions.
Fantastic. I used to play this on the Amiga, great game!

A couple of years ago I briefly toyed with the idea of whether or not it would be feasible to write a SCUMM interpreter for the CE for games such as Monkey Island. Maybe one of these days I'll get around to looking into it further
Hey y'all! Been a while, and I've finally gotten around to a super important feature. Savestates! Very Happy



Press F5(graph) to save a state and F4(trace) to load it back up. Important to note that savestates don't carry across levels(The continue system would make that pointless anyway).

It's important to note that this feature relies on the user having plenty of RAM free for usage(I'd recommend at least 64KB free) since the compression isn't all there yet and 125KB of extra space to store VRAM uncompressed isn't exactly a luxury we've got on hand Razz If anyone's got any good ways to compress image data on the fly let me know. Right now it's using a basic RLE+Literal scheme that works fine on most levels, but can occasionally cause problems(especially on the second level)
How did you fit such detailed and extensive animations on the CE? O_O This is unlike anything I’ve ever seen on the calculator. Incredible work!
Michael2_3B wrote:
How did you fit such detailed and extensive animations on the CE? O_O This is unlike anything I’ve ever seen on the calculator. Incredible work!


This game's animations are actually really interesting. All graphics are stored as single colored polygons, which typically take up a lot less space than a traditional sprite would. The main character for example is only like 10 polygons per frame, which is something like 40 bytes. All the character animation (the MC, the aliens, the beast) fits in a single 25KB appvar.

I'm pretty sure the original creator, Eric Chahi, used rotoscoping for character animation (check out the original Prince of Persia if you want another game that does the same!). Beyond that, he's just a great artist Razz
This is legitimately insane. Amazing work!
I was just reading the point about RAM usage. I was wondering why you need to store VRAM in the save state? Is it because of the way rendering works or something, like static backgrounds vs dynamic objects per frame?
tr1p1ea wrote:
I was just reading the point about RAM usage. I was wondering why you need to store VRAM in the save state? Is it because of the way rendering works or something, like static backgrounds vs dynamic objects per frame?


Kinda sorta. The main reason that a copy of VRAM is necessary is mostly because the other method(which I call the Display List method) can get pretty messy. It would require a refactor of the way all draw calls work and a way of tracking dependencies (and self dependencies uggh) between the 4 buffers in VRAM the game uses.Two buffers are for static backgrounds and two for double buffering, but which buffers are being used for what at any given time isn't readily apparent(aside from which buffer is the currently displaying one, which I intend to optimize for at a later date).

TL;DR This kind of stuff could get really complex really quickly in terms of implementation since the VM the game is implemented in has a lot of control over what actually gets drawn, so I went with the simpler method of compressing VRAM for now. Might return to the Display List method at a later date if I can ensure it won't cause more visual gobbledygook then what's already here.
This is amazing, shame that there's no sound on calculators. Razz
I converted and built everything and sent it to my calc but the colors are wrong.
https://photos.app.goo.gl/wdMpzEUf7yNjLdc28
Invalid_Jake wrote:
I converted and built everything and sent it to my calc but the colors are wrong.
https://photos.app.goo.gl/wdMpzEUf7yNjLdc28


I recommend getting the latest version and rebuilding Razz I forgot to push an update to convert.py that fixes some conversion issues.

Let me know if the problem persists, or alternatively open an issue on the github page.
Zaalane wrote:
Invalid_Jake wrote:
I converted and built everything and sent it to my calc but the colors are wrong.
https://photos.app.goo.gl/wdMpzEUf7yNjLdc28


I recommend getting the latest version and rebuilding Razz I forgot to push an update to convert.py that fixes some conversion issues.

Let me know if the problem persists, or alternatively open an issue on the GitHub page.

Thanks that worked IDK why it didn't before I had the latest version I downloaded it yesterday afternoon. Thank you so much though I spent 4 hours Surprised trying to figure out what was messing up. Very Happy
Edit my screen still flickers after I exit the program.
Invalid_Jake wrote:
Zaalane wrote:
Invalid_Jake wrote:
I converted and built everything and sent it to my calc but the colors are wrong.
https://photos.app.goo.gl/wdMpzEUf7yNjLdc28


I recommend getting the latest version and rebuilding Razz I forgot to push an update to convert.py that fixes some conversion issues.

Let me know if the problem persists, or alternatively open an issue on the GitHub page.

Thanks that worked IDK why it didn't before I had the latest version I downloaded it yesterday afternoon. Thank you so much though I spent 4 hours Surprised trying to figure out what was messing up. Very Happy
Edit my screen still flickers after I exit the program.


I'm not quite sure what could be causing that. Maybe make sure you have the latest CE Libraries installed? Again, I recommend creating a github issue and showing how the error occurs. It's much easier for me to track since I get notifications, and it will help anyone else facing similar problems going forward.
Zaalane wrote:
Invalid_Jake wrote:
Zaalane wrote:
Invalid_Jake wrote:
I converted and built everything and sent it to my calc but the colors are wrong.
https://photos.app.goo.gl/wdMpzEUf7yNjLdc28


I recommend getting the latest version and rebuilding Razz I forgot to push an update to convert.py that fixes some conversion issues.

Let me know if the problem persists, or alternatively open an issue on the GitHub page.

Thanks that worked IDK why it didn't before I had the latest version I downloaded it yesterday afternoon. Thank you so much though I spent 4 hours Surprised trying to figure out what was messing up. Very Happy
Edit my screen still flickers after I exit the program.


I'm not quite sure what could be causing that. Maybe make sure you have the latest CE Libraries installed? Again, I recommend creating a github issue and showing how the error occurs. It's much easier for me to track since I get notifications, and it will help anyone else facing similar problems going forward.

Like I said it seems to be fixed now but sure I'll create an issue.
The polygon hack is actually really smart, how would I implement that in an ICE program or something? Would it be faster to make some asm routines to draw polygons?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement