Rockbox Technical Forums

Rockbox Development => Feature Ideas => Topic started by: __builtin on October 18, 2014, 09:22:16 PM

Title: [TESTERS NEEDED] Another World
Post by: __builtin on October 18, 2014, 09:22:16 PM
A port of the game Another World to Rockbox is underway!

Read more about the original game here: https://en.wikipedia.org/wiki/Another_World_%28video_game%29

Please give any feedback or ideas/suggestions here. ;D
Title: Re: Another World (Out of This World): Coming Soon!
Post by: __builtin on October 26, 2014, 03:39:55 PM
It works!
It currently has no scaling (so any screen that's smaller than 320x200 will have the screen contents clipped), barely working input, and is EXTREMELY COMPLEX to get working, but it works! 8)

"All" that's left to do is:
 - Add scaling
 - Add greylib support
 - Add sound
 - Fix input
Title: Re: Another World (Out of This World): Coming Soon!
Post by: [Saint] on October 26, 2014, 03:46:27 PM
Great work, this doubles our exposure!

People will need to carry around two Rockboxed devices to play this.

One to run the game, and another to display renders of the game resources like the map and codex. :)


[Saint]
Title: Re: Another World (Out of This World): Coming Soon!
Post by: __builtin on October 26, 2014, 04:04:03 PM
Great work, this doubles our exposure!

People will need to carry around two Rockboxed devices to play this.

One to run the game, and another to display renders of the game resources like the map and codex. :)


[Saint]

I don't understand. :)
Title: Re: Another World (Out of This World): Coming Soon!
Post by: [Saint] on October 26, 2014, 05:14:19 PM
I'll have to assume you've never actually played this game, then.
Odd.

Long story short, its practically impossible without the code wheel (though I know at least one person who has committed it to memory - that person is insane), the game map isn't required but can be handy. These are both resources that were included in the original game box (as in actual, tangible, physical objects not in digital form).


[Saint]
Title: Re: Another World (Out of This World): Coming Soon!
Post by: __builtin on October 26, 2014, 05:36:04 PM
I'll have to assume you've never actually played this game, then.
Odd.

Long story short, its practically impossible without the code wheel (though I know at least one person who has committed it to memory - that person is insane), the game map isn't required but can be handy. These are both resources that were included in the original game box (as in actual, tangible, physical objects not in digital form).


[Saint]

There is a scanned version of the code wheel online: http://www.oldgames.sk/en/game/another-world/download/5281/
Also, it is possible to bypass the protection screen completely (but it won't work on the Rockbox port for some weird reason).

As for the game map, who needs that? :P
Title: Re: Another World (Out of This World): Coming Soon!
Post by: BenBrown on October 28, 2014, 08:28:45 PM
 :) Don't be silly, someone already implemented op_condJmp in the vm.c to bypass the need for the code wheel.

I shouldn't drink and post :P
Title: Re: Another World (Out of This World): Coming Soon!
Post by: __builtin on October 30, 2014, 01:31:34 PM
Screenshot says all... 8)
Title: Re: Another World (Out of This World)
Post by: BenBrown on October 31, 2014, 04:08:53 AM
Ah dude, sweet  8) you rock!
But I can't get that far on the fuze+. It plays the intro and then goes to a black screen.
And my rightmost part of the screen is cut off, I messed with some screen rotation stuff last night, but didn't knock out anything solid.
I did convert it over to keymaps though, after reading the irc logs today.  Losing PLA is no big deal anyway, besides you can't play without some button combinations.
I purged all the PLA changes from 1026 that got clobbered in there to.
Title: Re: Another World (Out of This World)
Post by: __builtin on November 01, 2014, 09:20:36 PM
OK, that last patch set added some (useless) postprocessing effects, and a pause menu.
With that, here's my current bug list:

 - Input is weird after using the pause menu
 - The filters are weird and rather useless
 - "Reset Game" crashes
 - The game doesn't run on real hardware yet

Pretty big bug, the last one, but it'll get fixed ;).

Some screenshots of the motion blur filter (not working 100% yet) combined with the antialias filter are attached.
Title: Re: Another World (Out of This World)
Post by: __builtin on November 01, 2014, 09:28:52 PM
Here's two more "normal" ones:
Title: Re: Another World (Out of This World)
Post by: __builtin on November 09, 2014, 12:18:40 PM
OK, the game now runs on hardware! ;D
Currently, only color targets with keymaps (currently all iPods, Fuze(+), e200, and Clip Zip) are supported. More keymaps will be added later.
Support for grayscale and monochrome targets is in the works!

TESTERS ARE NEEDED!

(If you want to test, but your target does not have keymaps, just leave a reply in this thread.)

See it in action here: https://www.youtube.com/watch?v=yRP5PSAOK2I
Title: Re: [TESTERS NEEDED] Another World
Post by: natanelho on November 10, 2014, 01:58:53 PM
i can test it :-) i have clip zip but idk how to run it... teach me and i will test it
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on November 10, 2014, 05:26:51 PM
i can test it :-) i have clip zip but idk how to run it... teach me and i will test it

1. Set up a development environment: http://www.rockbox.org/wiki/DevelopmentGuide
2. Download the code off Gerrit: http://gerrit.rockbox.org/r/1012
    - Run:
Code: [Select]
git fetch git://git.rockbox.org/rockbox refs/changes/12/1012/67 && git cherry-pick FETCH_HEAD3. Build and install
4. Obtain data files and place them under /.rockbox/xworld/
5. Enjoy! 8)
Title: Re: [TESTERS NEEDED] Another World
Post by: BenBrown on November 15, 2014, 04:09:24 AM
I started on more keymaps, but then borked my OS.  I then went distro hopping, but ultimately went back to ubuntu, but I lost some work. Okay, since its been hard to be on irc at the same time, here's my test results.

Target Fuze+:
Scaling "fast"    + Rotation "CW" + Fastmode "off" = ~11 fps  Feels a bit slow
Scaling "fast"    + Rotation "CW" + Fastmode "on" = ~100 fps Way too fast
Scaling "good" + Rotation "CW" + Fastmode "off" = ~11 fps   These settings are my preferred way to play, nice visuals, but feels a bit to slow
Scaling "good" + Rotation "CW" + Fastmode "on" = ~50 fps Way to fast

Target Sansa E200:
Scaling "fast"    + Rotation "CW" + Fastmode "off" = ~8 fps Feels very slow
Scaling "fast"    + Rotation "CW" + Fastmode "on" = ~25 fps These settings are my preferred way to play. Feels a bit to fast though
Scaling "good" + Rotation "CW" + Fastmode "off" = ~3
Scaling "good" + Rotation "CW" + Fastmode "on" = ~5

Bugs:
All Targets:
CCW is borked, looks like the wrong stride, can be seen on the sim.
Starting the plugin and choosing "quit" without starting a game and then starting the plugin again and choosing resume game causes a panic, this can be fixed by setting a bit to tells us if a game has been played first before saving, if not don't save

Suggestions:
1) I really hate the "quit" with the hidden extra save first then quit functionality, and even if it was changed to say "save and quit" I would much prefer just a "save" and "load" option with a "quit" that only quits.  Even with only one slot.  My beef being, when I'm past a difficult area, I'm forced to "quit" in order to save, and start up the plugin again and go set my settings again then resume my game.  Also when I want to load a save and I have to "quit without save" so I don't over write the old one and start it again to load my save then its back to settings so I can set my preferred options again before playing.  It's all very unnecessary and frustrating, I don't really see the appeal of it the way it is now.  If it's ok with you, I'd like to rework it.
2) It would be nice to save our settings from "sys" and restore it when the game loads.
3) We need to set the lcd timeout to "off" so the screen stays awake, it is a cinematic experience after all, and then set it back when we exit.
4) Even on a fast player, the game play feels sluggish if the fast mode is not on, and then most times that's to fast, maybe we can adjust the "normal" speed to say 10% faster. About 15-20 fps seems more suited to a natural game play feel.  I know players can do it, the "fast" mode is just to fast, if only it had a "medium speed" setting :)
5) The other video processing "motion blur" and "anti aliasing" could perhaps be enabled if you put them in the audio buffer to.

Well, that's all I got for now.
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on November 15, 2014, 11:09:57 AM
Bugs:
All Targets:
CCW is borked, looks like the wrong stride, can be seen on the sim.

This should be fixed in the latest patch set. ;)

Starting the plugin and choosing "quit" without starting a game and then starting the plugin again and choosing resume game causes a panic, this can be fixed by setting a bit to tells us if a game has been played first before saving, if not don't save

Hmm... what patch set?

1) I really hate the "quit" with the hidden extra save first then quit functionality, and even if it was changed to say "save and quit" I would much prefer just a "save" and "load" option with a "quit" that only quits.  Even with only one slot.  My beef being, when I'm past a difficult area, I'm forced to "quit" in order to save, and start up the plugin again and go set my settings again then resume my game.  Also when I want to load a save and I have to "quit without save" so I don't over write the old one and start it again to load my save then its back to settings so I can set my preferred options again before playing.  It's all very unnecessary and frustrating, I don't really see the appeal of it the way it is now.  If it's ok with you, I'd like to rework it.

I agree with your reasoning here. However, I think there should also be a "Save and Quit" option, so people don't accidentally quit and lose their game.

3) We need to set the lcd timeout to "off" so the screen stays awake, it is a cinematic experience after all, and then set it back when we exit.

This is really quite trivial, but I haven't gotten around to it yet.
DONE!

4) Even on a fast player, the game play feels sluggish if the fast mode is not on, and then most times that's to fast, maybe we can adjust the "normal" speed to say 10% faster. About 15-20 fps seems more suited to a natural game play feel.  I know players can do it, the "fast" mode is just to fast, if only it had a "medium speed" setting :)

I suppose this is possible. Perhaps dividing the delay between frames in half?
Title: Re: [TESTERS NEEDED] Another World
Post by: BenBrown on November 18, 2014, 02:54:36 AM
I have finished the keymaps for all targets with HAVE_LCD_COLOR except the ones not defined in the uisimulator, there's a few not in there.

Bugs:
mrobe500, is really messed up at least in the sim, someone needs to test it on real hardware.  It looks like the wrong stride again, but this time it happens across all orientations.

Is it possible to just run it at full speed, and limit it to 20fps on all targets?
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on November 18, 2014, 05:02:45 PM
??? Weird. Really weird. Do other 640x480 devices have the same issue?
According to wodz, it's the LCD stride. Other devices have a horizontal stride (that is, the pixels are stored row-by-row in memory) while the mrobe500 stores them column-by-column (a vertical stride).
This complicates matters a bit because the internal format used by XWorld uses a horizontal stride.
However, the CPU on the mrobe500 is insanely powerful (875 MHz) and the plugin buffer is twice the normal size, so any overhead incurred converting between the two should be negligible.
Title: Re: [TESTERS NEEDED] Another World
Post by: BenBrown on November 22, 2014, 04:44:19 AM
 :D
I'd just like to call attention to Franklin Wei's tremendous work on this plugin, he works at a break neck pace.   Its hard to keep up with sometimes for a person like me, who prefers to work at a much slower pace because he's learning.  I'm a rockbox'er not because I'm a great programmer, but because I want to be one day.

 >:(
But if Franklin doesn't stop clobbering Gerrit and if he doesn't start with the latest code, in the most recent task, every day before he starts working, and if he doesn't learn to wrangle git into keeping his local branches _some what_ resembling a source control managed repository of changes.  Then I give up!

 ;D
But seriously dude thanks for all the hard work  It's almost "ready" but get the branch looked at it's clobbered  ;)
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on November 22, 2014, 11:10:40 AM
But if Franklin doesn't stop clobbering Gerrit and if he doesn't start with the latest code, in the most recent task, every day before he starts working, and if he doesn't learn to wrangle git into keeping his local branches _some what_ resembling a source control managed repository of changes.  Then I give up!

Hehe... yeah. Gerrit shouldn't let you push unless you pull first.

;D
But seriously dude thanks for all the hard work  It's almost "ready" but get the branch looked at it's clobbered  ;)

Nah... it needs sound! ;D

So what'd I clobber? Is it fixed?
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on November 29, 2014, 12:20:37 PM
Ok, it looks like grayscale/monochrome support won't be happening: http://www.rockbox.org/irc/log-20141127#00:00:43

However, with the addition of sound, the game is now largely feature-complete, as well as being mostly bug-free! :D

IMHO, the only thing left before it's committable is support for vertical stride LCDs, though it could certainly use some more performance.
Title: Re: [TESTERS NEEDED] Another World
Post by: saanaito on December 06, 2014, 02:44:33 PM
Unfortunately, the game is virtually unplayable on small-screen targets. I'm stuck at the code wheel screen on my Clip Zip and c250; with scaling, the text is unreadable; without scaling, the needed text is off the screen.

So it's probably best to simply not enable the plugin for such targets (unless their screen resolution is very close to the minimum).

Fast scaling:
(https://dl.dropboxusercontent.com/u/1905158/Screenshots/2014-12-06%2014.20.50.jpg) (https://dl.dropboxusercontent.com/u/1905158/Screenshots/2014-12-06%2014.21.07.jpg)

Good scaling:
(https://dl.dropboxusercontent.com/u/1905158/Screenshots/2014-12-06%2014.45.23.jpg) (https://dl.dropboxusercontent.com/u/1905158/Screenshots/2014-12-06%2014.46.42.jpg)
Title: Re: [TESTERS NEEDED] Another World
Post by: BenBrown on December 06, 2014, 03:44:54 PM
I had an idea, what if when scaling is off on small screen targets, we set the framebuffer to start at the corner of the x y position where the code lives on screen.  So it will be real BIG and visible.
Title: Re: [TESTERS NEEDED] Another World
Post by: __builtin on December 09, 2014, 05:28:36 PM
Apparently the strings embedded in the interpreter were copyrighted, so a workaround was devised. BenBrown provided an alternate set of strings (:D) which ship with the plugin by default, but it's possible to load the "official" strings from /.rockbox/xworld/xworld.strings

EDIT:

I had an idea, what if when scaling is off on small screen targets, we set the framebuffer to start at the corner of the x y position where the code lives on screen.  So it will be real BIG and visible.

I'm working on that right now. It works only with rotation disabled for now, I'll commit when I figure out how to zoom with rotation.