GP2X Wiz News
Exophase is working on a MMU hack for Wiz devices and there are already the first mesureable speed improvements.
Here is the initial posting:
I wrote an mmuhack that follows the old fashioned technique that Squidge first introduced. In other words, something that modifies sys_newuname rather than a kernel module (since I can’t write those w/o source). However, it is different from Squidge’s in a couple ways. First, it scans /proc/kallsyms (or /proc/ksyms if it can’t load that) to get the address of sys_newuname, so it shouldn’t be as prone to breaking between kernel versions. Second, it flushes icache/dcache between uname patches – this is vital or it won’t work for coherency issues (it is self modifying code afterall). Third, it does some sanity checks to make sure the process is working as expected along the way.
I tried to flush icache/dcache in the usual GP2X way (with syscall 0x9F0002) but it didn’t work. Maybe you have to do icache/dcache separately now instead of it merging the two, I don’t know, I didn’t investigate. Instead I just wrote some functions to flush all of icache/dcache in software by loading in new things. If anyone can point out an alternative that’d be good. I tried making the dcache flush load the icache flush routine instead of from a BSS section area but that failed to work – it might be that text section things are not data cacheable.
Anyway, here are the files:
http://exophase.devzero.co.uk/wiz_mmuhack.c
http://exophase.devzero.co.uk/asm_util.S
I’m getting as much as 2ms per frame improvement or more (hard to tell exactly, timing is really inconsistent for some reason) so it’s definitely worth it, even if your program just writes to the whole framebuffer once per frame (Temper potentially does multiple, for BG and sprites).
Edit: Still doesn’t work all the time, not at all sure why. Just keep trying it until it does, I guess :/ (tell me if anyone has any ideas)
http://www.gp32x.com/board/index.php?showtopic=46629
Pickle ported VICE to the Wiz. VICE is a program that runs on a Unix, MS-DOS, Win32, OS/2, Acorn RISC OS, BeOS, QNX 4.x, QNX 6.x, Amiga, GP2X, Wiz, SkyOS or Mac OS X machine and executes programs intended for the old 8-bit computers.
Quote:
I did a replacement/removal of the gp2x specific code to wiz code. Main changes were replacement of minimal lib functions with libcastor equivalents.
Clock setting works at 10 Mhz increments
I added some volume control but low volume doesnt work well just like the gp2x
http://www.gp32x.com/board/index.php?showtopic=46715
Franxis ported the latest GP2x MAME (v1.6) over to the Wiz. MAME stands for “multiple arcade machine emulator”.
Release notes:
MAME4ALL has been ported to the GP2X WIZ console to be released on march:
This is an early beta version based on MAME4ALL 1.6:
– Download and install MAME4ALL for the GP2X.
– Remove old files in the ‘frontend’ folder.
– Overwrite the executables with the WIZ ones.
– It is faster than the GP2X port.
– It contains some specific features, such as horizontal scaling with linear filtering in 16 bit color mode.
Thanks to http://www.gp32x.com for the news.
http://www.talfi.net/gp32_franxis/
In Epic FreeFall you have to fall down to prevent yourself from getting crushed at the top of the screen. Different obstacles bar your way, so you have to be quick in order to find a safe route down before it is too late. This game is all about getting the highest score. There is no end to the level, try to survive as long as possible. Also included is a two-player mode where two people can compete on the same console.
Thanks to http://www.gp32x.com for the news.
http://neotron-games.blogspot.com/
One day when Smallball woke up he discovered that Nasties had stolen all of his friends happyspirits! Without the HPs all of Smallballs friends was as braindead as zombies! Gather all of the HPs before the Nasties gets you too! But beware, you are in changeland where natural laws change constantly!
Release notes:
Thanks for all the good ideas! I know this game isn’t very optimized, but the reason for that is mostly because it was made just for fun in between some bigger projects. Thus I never tried to optimize the code much at all.
Ruckage, your first method shouldn’t be too hard to implement. I might try that, I think I know how to make it only draw tiles at the correct positions. As for the second idea, I was thinking about doing something like that once, but I decided it would be a bit too complicated for such a small game.
It’s true there are some really cool tricks to make it all run fast. I have learned a bit more of them since I made this game, but it certainly could run better. Btw, I’m really impressed with the games you have made, Ruckage. I hadn’t thought about that they were made in Fenix. It would be interesting to hear how you made that waving background. Is the game copying each line of pixels and then pasting it again a few pixels away and repeating that all over the screen? Because I did something like that once, to create a “melting” effect.
Peter R, you mean I should put the processes to sleep until they are activated? That might work. It would be less to draw, but still as much to check collision against. But as you say, in combination with the other ideas it might work.
As for now, I have made a version which uses pre-drawn tiles instead of alpha.
If it is not running fast enough now though, I might try some of the other methods.
I have another game almost done for the GP2X/Wiz which I’d rather release first and Ill also want to try porting Epic Rocks to the Wiz. It should run better, since I already did some optimization on it.
http://www.gp32x.com/board/index.php?showtopic=46420
One day when Smallball woke up he discovered that Nasties had stolen all of his friends happyspirits! Without the HPs all of Smallballs friends was as braindead as zombies! Gather all of the HPs before the Nasties gets you too! But beware, you are in changeland where natural laws change constantly!
Release notes:
Since the Fenix-runtime works well on the Wiz, I decided to port some of my games to it. For my older games, the GP2X-versions should work fine on the Wiz as well.
However, some of my newer games had a few features which I excluded from the GP2X-versions due to lack of speed. But since the Wiz is a lot faster, these games might work fine even with those features included.
I decided to start with Smallball in Changeland. This version has all the background-effects the PC version has and looks a lot better than the GP2X version. If it runs fast enough, that is. Since I don’t have a Wiz yet, I cannot test it. But if anyone here would like to test the game and see how well/fast it runs, that would be great!
http://www.gp32x.com/board/index.php?showtopic=46420
Franxis ported the latest GP2x MAME (v1.6) over to the Wiz. MAME stansd for “multiple arcade machine emulator”.
Release notes:
Instructions:
– Download and install MAME4ALL for the Gp2x.
– Remove old files in the ‘frontend’ folder.
– Overwrite the Gp2x executables with the Wiz ones.
– Try it.
It is based in the last version of MAME4ALL for the Gp2x (1.6). It has almost everything working…
Limitations:
– Only 22 khz sound seems to work correctly.
– If the emulator doesn’t reach 100% of speed, the sound is choppy (i haven’t been able to run the sound thread and synchronization code, the sound is updated in the MAME thread). Performance hit.
– Several code is also not optimal, to be improved.
– For now the performance is almost the same as the gp2x one, to be improved.
This version is preliminary and experimental!. A lot of aspects have to be improved and optimized yet!. Please no Wiz Vs Pandora benchmarks!. Please DO NOT POST THIS ARCHIVE it in the news!
http://www.gp32x.com/board/index.php?showtopic=46378
Boomshine2x is a relaxing game where the aim is to cause a chain reaction of explosions to complete each level.
Features:
– 12 Levels
– Randomly Generated GFX Of Different Colours On Each Run
– Seven Different Game Modes
– Highscores
– Sound Effects And Music From The Original Game
http://archive.gp2xwiz.de/cgi-bin/cfiles.cgi?0,0,0,0,27,19
Picodrive by Notaz is a Genesis/MegaDrive and SegaCD emulator for Wiz.
http://archive.gp2xwiz.de/cgi-bin/cfiles.cgi?0,0,0,0,71,17