First post, by d_smagin
Hello, Qbix and other Dosbox developers.
I'm doing a port of Dosbox for GCW-Zero handheld, a successor for Dingoo a320. GCW-Zero is powered by Ingenic jz4770 SoC (mips32r2) and runs a variant of linux.
Current mipsel32 dynarec can't be used because it's intended for psp which has some differences in terms of OS conventions and memory handling. Here's attached a patch for risc_mipsel32.h which fixes it.
The most prominent changes are:
- added a replacement for seb/seh opcodes for mips32 revision 1 systems
- direct calls (jal) are replaced with indirect ones (jalr)
- fixed correct stackframe setting in gen_run_code() and gen_return_function()
- added proper cacheflush
- some small fixes
Here's the video of some games running on GCW-Zero:
http://www.youtube.com/watch?feature=player_d … SRU-umtv2nKgpeA
http://www.youtube.com/watch?list=UUFcLcU_iSR … ayer_detailpage
UPDATE2: screen keyboard http://www.youtube.com/watch?v=J6P7I9LgYIY&fe … ayer_detailpage
It would be fine if this patch was added to mainline Dosbox.
Thanks.
Dmitry Smagin
UPDATE:
Patch update in attachment. What's new:
- The new output=surface_dingux is introduced which handles some quirks of the system. This allows to separate GCW-Zero specific code from the rest.
- Some hi-res modes (640x400x8, 640x480x8) are downscaled to 320x240 screen of GCW-Zero, others are just blitted with clipping.
Actually, OpenDingux (GCW-Zero OS) doesn't have X Server, just the pure framebuffer (/dev/fb0) which is always fullscreen. Moreover, framebuffer driver doesn't handle resolutions bigger than 320x240 (though this may change in future). That's why dosbox output should be handled in a special way, hence the new surface_dingux. No other changes to .conf file except output=surface_dingux are needed.
Full source code is here: https://github.com/dmitrysmagin/dosbox-gcw0