Author Topic: UselessRS97 - Internal firmware for the RS97  (Read 9746 times)

gameblabla (OP)

  • **
  • Posts: 586
UselessRS97 - Internal firmware for the RS97
« on: July 11, 2018, 04:36:02 am »
WARNING: Don't use external binaries for this firmware unless it is specified that it will work with UselessRS97.
Older binaries for jutley's firmware will not work, this is intentional.
Just stick with what's inside UselessRS97 and its Service Pack.



UselessRS97 is an internal RS97 firmware for revision 2.1, 2.0 and 1.0 RS-97 consoles.
It aims at improving overall stability, weird crashes and be overall a pleasant experience.

If you meet the requirements then scroll down to Downloads or continue reading.

Features
- ScummVM updated to version 2.0 : All low res games are compatible.
- FFPlay, a video player.
- ECWolf, updated Wolfenstein engine with support for also Super Noah's Ark.
- PokeMini, Pokemon Mini emulator.
- New revised port of Handy based on Handy Libretro. Much more compatible
- New port of Picodrive 1.92 based on upstream.
- Improved port of SMS_SDL.
- Added 2 more games from the GCW0 world : Freeblocks & Falling time.
- New version of Dingux-Msx with improved compatibility.
- Fixed random crashes in GPSP, reGBA, Street of Rage Remake, Rockbot... and probably more.
- C-dogs now has sound support and runs at a decent speed.
- FCEUX no longer crashes on PAL games, runs much faster and no glitches over TV Out.
- Fixed missing music in numerous games : Ganbare, Last mission, Profa etc...
- Gngeo can now load Roms from anywhere other than its root directory.
- Fixed controls in Noiz2a. I also improved its speed and the game is now playable.
- Fixed flickering issue in DumbSNES and PocketSNES during gameplay.
- ROTT properly centered and latest version of Mame4All (via Service pack)

I must add that most of them cannot be merged to steward's (and by extension jutley's) due to longstanding issues.
TLDR; It's broken beyond repair.

The ugly, what had to be removed
SRB2. (Refuses to load. Still no fix found)
Wizznit : Press X to crash. (not gonna miss that game)
Gmu (might get fixed in a later firmware release,It was not high priority)
OpenJazz (it was broken and is still on both firmware. A fix will come later)
FreeDroid : Crashes
Midpath & Opentitus, way too tricky to compile...

And that's pretty much it.

Download

Last firmware version : v1.2 July 13th 2018
(Don't forget to also apply the Service pack after flashing !)

Internal firmware, Revision 2.1
https://mega.nz/#!i7hBlB5T!lzS0Nvy3qudXyylyEfEoYjVGCzXYlbF09Itt3CGZQXg

Internal firmware, Revision 2.0/1.0
https://mega.nz/#!W25hSRyJ!znOe367UOqHu9h36782QcniSnlhLQGaylcDwv8HFcVo

Service Pack 9.11 for firmware 1.2 (Does not have updated GMenu) : August 13th 2018
https://mega.nz/#!qvABzKIC!_uRIAiHpZhOcfK5zozANOr40i-mxjv6g0Q_OFVL5tXs

Updated GMenuNext (download it if that's your first time) :
https://mega.nz/#!HipXxQqb!I582SIAp4aVustL8fwLtSR8iYrsmsYubjQyPORAXWXc

Support for firmware 1.0 and 1.1 is dropped due to newer Gmenu2x and partition changes, please upgrade to the newer firmware

Apply the service pack even on the latest firmware because i could not add everything in time.

Development

Toolchain for developers (compiled against Debian unstable glibc 2.27) :
https://mega.nz/#!j2hVAYqa!yAaliiN6LSOsWmOAuZCw_4E8fxbPTzlm5ovf4qLe3Sg

Source code :
https://github.com/gameblabla/buildroot-rs97
https://github.com/gameblabla/handy-rs97
https://github.com/gameblabla/ecwolf
https://github.com/gameblabla/dumbsnes
https://github.com/gameblabla/rs97-fixesgames
https://github.com/gameblabla/sms_sdl

Guide
Installation
You need to be able to unmount your console and be able to flash the internal micro sd card.
On Windows, format your SD card first with this :
https://www.sdcard.org/downloads/formatter_4/
Then use Win32 Disk Imager to flash the firmware.

You can expand the FAT32 partition if you need more space, provided that you used the SD Card alliance formater before on the sd card (Windows only).

Then it's simply a matter (after flashing) of putting everything pack together and power it up.
You may have to press the reset button if it stays black. If it's still black, make sure the internal micro sd card is properly inserted.

Transfer ROMs
You have 2 options : Use the external SD card slot with the cartridge or use the auto mounting feature.
The external micro sd should be mounted at /mnt/ext_sd.

To use the auto mounting feature, reboot or power on your console while a USB cable is plugged to a computer.
A prompt will appear asking you if you want to mount the internal partition. Press A to accept and it should be mounted on your PC.

Additional software required
Chocolate Doom series (Heretic, Hexen, Strife): No shareware files provided. Put the wads file somewhere and point it to it.
DOSBox : Requires a special format for the games. For example, here's an example file "duke_nukem.dos" for Duke Nukem :
Code: [Select]
[autoexec]
mount C "/mnt/int_sd/roms/dos/"
C:
cd DUKE
dn1.exe
Make sure that the paths are correct.
ECWolf : No shareware files provided either. When trying to launch it from Gmenu2x, you need to point it to a game's directory such as Wolf3D, Super Noah's Ark or Spear of Destiny. All known versions should be compatible.
UAE4All : Requires a kickstart 1.3 Rom file called kick.com in /mnt/int_sd/emus/uae4all. Not provided by default.
GPSP : Requries a gba_bios.file bios file in /mnt/int_sd/emus/gpsp.
DCastaway : Provided with EmuTOS but might require Original TOS file in /mnt/int_sd/emus/dcastaway in a file called "rom".
Picodrive : Requires Sega CD bios files for Sega CD emulation. No Bios required for other machines.
PCSX4ALL : Some games might need a PSX Bios file. Put it in /mnt/int_sd/.pcsx4all/bios. Create the folders if they don't exist.
Bermuda : Make sure to put the full version (or the very rare demo files) in /mnt/int_sd/games/bermuda/data.
EDuke32 : Comes with shareware files. If you own full version, replace it over the shareware ones in /mnt/int_sd/games/eduke32
Quake : Comes with shareware files. If you own full version, replace it over the shareware ones in /mnt/int_sd/games/quake/id1
Reminiscence : Requires full version in /mnt/int_sd/games/reminiscence/data
Gngeo : Make sure you have the neogeo.zip bios file in the same directory as your games. GOG provides it with Neo GEO games.
ScummVM : Doesn't come provided with games. Use the internal browser to search your games, they'll get added to a list.
Temper : Requires syscard3.pce files for CD emulation. Put them in /mnt/int_sd/.temper/syscards.

Video

Part 1 : Games and some Emulators
<a href="https://www.youtube.com/watch?v=64Lwth6Ri9U" target="_blank">https://www.youtube.com/watch?v=64Lwth6Ri9U</a>

Part 2 : More emulators
<a href="https://www.youtube.com/watch?v=32WarYJbOWA" target="_blank">https://www.youtube.com/watch?v=32WarYJbOWA</a>

Changelog
August 13th 2018
Fixed regression with Zipped roms for SMS Plus GX. Now working.
Dingux-MSX was not properly updated, this is now fixed.
Also; updated reGBA to latest upstream version.

August 12th 2018
SMS Plus GX is much improved with greater compatibility, sound output and sync. Can run almost all the games properly.
DosBox used to be terrible but pingflood fixed plenty of things, including making it more conveniant.
FCEUX also has bilinear fullscreen and aspect fullscreen. Bilinear can slow down emulation though !
Dingux-2600 and Dingux-MSX got minor fixes.

August 3rd 2018
Fixes regression for reGBA, TV out now works again. (Unfortunately, it's now 2 FPS slower too, in addition to last update)
Fixed speed issue after loading/saving save state or just going back to the game in SMS_SDL.
Also fixed zip support for SMS_SDL.

August 1st 2018
Updated SMS_SDL with scaling options & menu, updated reGBA, looks better but is 2 FPS slower.

July 30th 2018
Adds fullscreen options back to PocketSNES and DumbSNES.

(Service Pack 7.3) July 29th 2018 rev2 Build
Another quick service pack update : PocketSNES, DumbSNES and Speccy both work now over TV Out.
PCSX4all adds support for R2 & L2 : those are mapped to Brightness & power button respectively.
Speccy didn't work, that is now fixed.

July 29th 2018 Build
Emergency update with newer PCSX4All version that fixes regressions.
reGBA failed to work if a border file was missing in /mnt/int_sd/.gpsp, that is now fixed.

July 28th 2018 Build
Fixes missing border picture in reGBA.

July 27th 2018 Build
Updated Oswan with new autoframeskip, reverted Mame4all to older version (with power button), fixed GMenuNext's default skin, added FFplay video player.

July 22th 2018 Build
Back to Gmenu2x lastest version, also fixed the Default skin.
FCEUX now runs much faster, fixed Dingux-2600 (thanks pingflood), updated Dingux-Msx, added SMS_SDL emulator.

CREDITS
Thanks pingflood for fixing and improving many emulators in addition to his advice and help.
He currently maintains GMenuNext, dingux-2600, dingux-msx and helped fixing PocketSNES/dumbsnes.
Thanks bob-fossil for ROTT port, improving Mame4ALL and fixing FBA-SDL.
Thanks Fontes for the artwork and some of the wallpapers that came with it, see his deviantart
https://www.deviantart.com/fontesmakua

And of course, i would like to thank the many emulator authors for their work, they are too numerous to be listed here !

FAQ

Q: Videos with FFPlay play too slowly or skip frames !
A : You need to reconvert your videos specifically for the RS-97. MP4 H.264 with Carbac disabled, resolution at 320x240 or lower with a crf of 32 will play best. Here are my recommended ffmpeg settings :
Code: [Select]
ffmpeg -i source_video.mp4 -tune fastdecode -maxrate 8M -r 24 -crf 32 -s 320x240 -aspect 320:240 -bf 0 output.mp4
Q: Some of my GBA games don't work on it !
A : GPSP and even reGBA are not known for being compatible with most games out there. Except most of them to work but not all of them. (especially the video carts for the GBA)
Known problematic games : NES classic games, Hamtaro, GBA movie carts.

Q: Metal Slug 2nd Mission crashes with Neo Pop at the title screen !
A : I plan on fixing it. In the meantime, you can avoid the crash by pressing A/B/START quickly.

Q: For some reasons, it can't read my external SD card !
A : Make sure to format it with the SD Card alliance formatter.
https://www.sdcard.org/downloads/formatter_4/
Then you can create your FAT32 partition.

On a closing note, hopefully someone can take a look at SRB2...
« Last Edit: August 14, 2018, 04:03:11 pm by gameblabla »

chris67

  • *
  • Posts: 15
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #1 on: July 11, 2018, 06:54:23 am »
Hello Gamablabla, wow, this is a major update ! Your post is much technical, as firmware porting is still an obscure subject for me. It seems you have done a real amount of work, many thanks for doing it. Not sure everyone will understand what you've done ! I have a few questions not directly related, but it is still about software development for RS97. First, is the SDL2 library supported ? I can only see source codes based on old SDL 1.2. Then, do you know if OpenGL is supported ? I had no success trying to compile with these two libraries. Thank you !

jutley

  • *** Moderator
  • Posts: 1527
    • Retrogamers97-90
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #2 on: July 11, 2018, 08:30:54 am »
Well done sauce hat's off to you great job looking forward to many updates :)

fosamax

  • *
  • Posts: 296
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #3 on: July 11, 2018, 09:02:59 am »
Hi Gameblabla, nice work on that one.

I hope there will be more improvement with the firmware, like adding ipu support, as well as scanline option if possible.

Regarding FBA, I guess you could look at porting NJEMU from PSP https://github.com/phoe-nix/NJEMU
There's support for CPS1, CPS2, NeoGeo and NeoGeoCD and the speed is really good on PSP as long as the game doesn't use rasters.

Those emus where the one that were used on the original dingoo A320.

I hope FBA could be readded at some point since there are some nice cave shooters for it.

Thanks for everyone involved in that project !

hiei

  • *
  • Posts: 95
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #4 on: July 11, 2018, 09:34:41 am »
Great! As soon as this cfw will support also 1.0 and 2.0 revs I will add it to the "Ultimate" RS-97 Guide :)

gameblabla (OP)

  • **
  • Posts: 586
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #5 on: July 11, 2018, 11:12:59 am »
Quote
First, is the SDL2 library supported ? I can only see source codes based on old SDL 1.2. Then, do you know if OpenGL is supported ? I had no success trying to compile with these two libraries. Thank you !
SDL2 has no software renderer and is impossible to be supported. The RS-97 has no 3D hardware and the 2D hardware is not supported, only a framebuffer is. SDL2 requires to be able to set up an EGL context and that requires hardware acceleration.
It is possible to compile it with DirectFB but you'll get a black screen no matter what.
OpenGL is also not supported. In theory, a Mesa3D software renderer is possible, however that is undesirable, will be ultra slow and thus useless. It will also severely increase the rootfs size for something that is ultimately useless.
Closest thing we have to 3D is TinyGL and unfortunately, it's pretty primitive. (take the one from my blockout source)

Quote
I hope there will be more improvement with the firmware, like adding ipu support, as well as scanline option if possible.
Steward is working IPU support, at least he was... I got no words from him since a week or so. I must note that i am unable to compile a working linux kernel due to missing LCD drivers.

Code: [Select]
Regarding FBA, I guess you could look at porting NJEMU from PSP https://github.com/phoe-nix/NJEMU
There's support for CPS1, CPS2, NeoGeo and NeoGeoCD and the speed is really good on PSP as long as the game doesn't use rasters.
Those emus where the one that were used on the original dingoo A320.
Would it be possible to have the port to the Dingoo ? I couldn't find it and porting the PSP work would be a huge amount of work. (not to mention its CPU is not directly compatible with mips32)
I found this old CPS2 emulator for the GP2X with the released source code : https://github.com/gameblabla/cps2emu
Unfortunately, even that won't properly work on the RS-97 due to issues with broken code being used for loading cache files...

This is going to be a lot painful.

Quote
Great! As soon as this cfw will support also 1.0 and 2.0 revs I will add it to the "Ultimate" RS-97 Guide :)
Sure, it's among my plans.

Thanks guys, i lost many nights trying to fix FBA SDL & GCW0, to no avail... If slaneesh could release his source code for the Dingoo port of FBA, that would also help because he never released it...
« Last Edit: July 11, 2018, 11:30:48 am by gameblabla »

fosamax

  • *
  • Posts: 296
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #6 on: July 11, 2018, 12:20:49 pm »
Would it be possible to have the port to the Dingoo ? I couldn't find it and porting the PSP work would be a huge amount of work. (not to mention its CPU is not directly compatible with mips32)
I found this old CPS2 emulator for the GP2X with the released source code : https://github.com/gameblabla/cps2emu
Unfortunately, even that won't properly work on the RS-97 due to issues with broken code being used for loading cache files...

This is going to be a lot painful.


Unfortunatly njemu port were released on original firmware for dingoo A320 by the dingoo manufacturer so no sources were ever released. Plus I guess it was compiled for ucos. The port was also a bit different from the original since cache files were embedded into a file (.mvs or .cp2) rather than being in a folder.

I thought PSP and RS-97 were closer on an hardware side in fact.

« Last Edit: July 11, 2018, 12:23:00 pm by fosamax »

gameblabla (OP)

  • **
  • Posts: 586
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #7 on: July 11, 2018, 01:41:28 pm »
Unfortunatly njemu port were released on original firmware for dingoo A320 by the dingoo manufacturer so no sources were ever released. Plus I guess it was compiled for ucos. The port was also a bit different from the original since cache files were embedded into a file (.mvs or .cp2) rather than being in a folder.

I thought PSP and RS-97 were closer on an hardware side in fact.
It turns out the CPS2Emu is actually based on an older version of NJEMU !
NJEMU has also no assembly lines of code, making it much more useful. However, it still uses too much PSP specific code so i used it as a reference to fix the cache code. Doing so led to CPS2 games now booting up and running just like it does on PC.
I'll work more on CPS2EMU and hopefully release it.
Sadly, it has currently no sound and i completely suck when it comes to this. Hopefully it's an easy fix... (i don't have sound with the SDL version either)
« Last Edit: July 11, 2018, 01:44:21 pm by gameblabla »

fosamax

  • *
  • Posts: 296
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #8 on: July 11, 2018, 01:49:53 pm »
I guess sound may rely on media engine for the psp which is obviously not available for the rs-97.

I'm pretty sure you will end up figuring it out

gameblabla (OP)

  • **
  • Posts: 586
Re: UselessRS97 - Internal firmware for RS97 revision 2.1
« Reply #9 on: July 12, 2018, 12:58:35 am »
I'm pretty sure you will end up figuring it out
And i did figure out the issue :' ) Turns out sound was not enabled by default... Stupid right ?

I have a released a new firmware version with a newer partition layout and the CPS2 Emulator.
I also have added a firmware image for revision 2.0/1.0. Be warned that it might not work, since i don't own that revision.

Other than that, no changes. if you don't care for the newer partition layout, then grab the update pack which adds the CPS2emulator to GMenu2x. Reboot after applying the changes.

I must add that the CPS2Emu has some issues : First bootup will take some time (it needs to create a cache file on the console), it copies the rom file a second time and not all games were tested yet. I got it to work with Eco Fighters, complete with sound support.
If possible, overclock it beyond 600 Mhz for better results and less frame-skipping.

Do let me know if anything crash or does not work as expect. Thank you and enjoy

EDIT: It was reported that Minitool can corrupt the FAT32 partition if you attempt to expand it. Make sure to double check the FAT32 partition and also check if gmenu2x (apps/gmenu2x) is not corrupted.
Expanding it with Gparted works fine.

EDIT2: I have added a video that showcases my stuff on my UselessRS97 firmware. take a look if you're not sure.
https://www.youtube.com/watch?v=64Lwth6Ri9U
« Last Edit: July 12, 2018, 06:04:14 pm by gameblabla »

gameblabla (OP)

  • **
  • Posts: 586
Re: UselessRS97 - Internal firmware for the RS97
« Reply #10 on: July 13, 2018, 09:52:23 pm »
Bump,
Alright guys, thanks for the initial feedback, hopefully this will be the last mandatory firmware release in a while !
I have released firmware 1.2 which fixes some issues with partitioning. It now uses 3.4GB of space and uses internal id 3, so it should be less prone to breaking. I have also added checks for the filesystem at boot.
This should hopefully be more stable.
The last firmware also adds Beebem (nice emulator) and adds CPS2EMU.

EDIT: I have added CPS2EMU back, turns out it was a romset issue; Make sure your CPS2 roms come from a MAME 0.138 romset.
EDIT2: I have posted a part 2 to my first video that shows more emulators running on my firmware. (CPS2EMU, DumbSNES, Beebem, Mame4All running CPS1 games etc...)
« Last Edit: July 14, 2018, 05:54:44 pm by gameblabla »

odjinan

  • *
  • Posts: 8
Re: UselessRS97 - Internal firmware for the RS97
« Reply #11 on: July 15, 2018, 07:55:48 am »
hi!

will try it soon, promising firmware!

2 small suggestion:

could you add this alternative gui?
https://boards.dingoonity.org/ingenic-jz4760-devices/help-wanted!-new-menu-written-in-python-for-k3p-(and-maybe-rs97)/
tagged as alpha, but seems working fine~

this tools too:
https://boards.dingoonity.org/ingenic-jz4760-devices/rs-97-here-is-my-(accurate)-battery-meter/


merci en tout cas pour le boulot ;)
« Last Edit: July 15, 2018, 07:58:20 am by odjinan »

gameblabla (OP)

  • **
  • Posts: 586
Re: UselessRS97 - Internal firmware for the RS97
« Reply #12 on: July 15, 2018, 09:12:55 am »
Hey,
Quote
could you add this alternative gui?
https://boards.dingoonity.org/ingenic-jz4760-devices/help-wanted!-new-menu-written-in-python-for-k3p-(and-maybe-rs97)/
tagged as alpha, but seems working fine~
No, it's written in python, thus it's going to be atrociously slow on the device and would add yet another dependency to python. (which i have removed from the firmware)
Plus, links aren't working properly yet and we need that feature for some games so it's not completely usable anyway.

I'll add the battery meter app though.

Thanks guys and report any issues with if you find any.

EDIT: Btw guy, i think we can mark TV-Out (on all custom firmwares) as broken... The issue is that most games/emus are using double lining due to the weird screen on the RS-97 for speed reasons. However this looks poorly over TV OUT and will introduce screen artifacts and all...
I'll talk to pingflood and see if it would be possible to control the TV Out resolution (like 320x240), which would make it much better than using it on the real RS-97.

Jack83

  • *
  • Posts: 91
Re: UselessRS97 - Internal firmware for the RS97
« Reply #13 on: July 15, 2018, 01:43:32 pm »
No, it's written in python, thus it's going to be atrociously slow on the device and would add yet another dependency to python. (which i have removed from the firmware)

I find this statement a little odd. PyMenu is running fine on the RS97 on the firmware based on stewards work. You don't need high end performance for a menu or possible other scripts with a small UI. Python 2.7 (which runs best on low end devices) and pygame adds only about 14mb of dependencies.

In the end, its your firmware and your choice


dinosaw_act

  • *
  • Posts: 29
Re: UselessRS97 - Internal firmware for the RS97
« Reply #14 on: July 15, 2018, 01:50:34 pm »
Perhaps I've done something stupid but I've installed firmwarev12_rev20 to my RS97 and it works but I don't seem to be able to save settings in MAME4ALL. Every time it starts up it asks for a rom directory. Gamebatte doesn't remember it's settings either.

On the old firmware there was a .mame4all folder created which held the settings files. Some games seem to create there dot folder okay, (.rott, .homingfever for example) but I'm not seeing a .mame4all folder in /mnt/int_sd.

EDIT: MAME4ALL is doing the following in gethomedir in src/odx/odx_frontend.cpp:
Code: [Select]
strcpy(dir, getenv("HOME"));
if (strlen(dir) == 0) {
getcwd(dir, 256);
}

EDIT2: Okay, I got this working by changing the code in MAME4ALL that gets the HOME location on the device. Switching over to the toolchain for the newer firmware broke it for some reason. This was working on the older custom firmware.
« Last Edit: July 15, 2018, 04:32:11 pm by dinosaw_act »

 

Post a new topic