Forum Replies Created
-
AuthorPosts
-
sselphParticipant
Console games are much easier since I have a DB of hash values mapped to names from no-intro. I’ve also only ever worked with console roms. For MAME I’ll have to hunt down a list, ask for help creating one, or find a DB that already has them mapped by hash. After I get zip support added and add support for at least one extra data source I’ll take a look at adding more systems.
sselphParticipantThanks for the windows test. I used the golang functions to join paths but it is os dependent and windows uses \. I shouldn’t do that for the gamelist.xml portions since the gamelist.xml will always be read on linux. I saw some issues with retropie displaying the data for roms inside folders but I’m on an older version so that might be working.
I didn’t intend for the images to require sub folders but it might be a good thing. I added support to create the single images directory to make things easier but I’ll clean up the code so you don’t have to create a bunch of extra folders either by having it create them for you or by flattening the structure.
I also researched more about megadrive roms. The documentation I saw had .md as a Multi Game Doctor file but other documentation has this as .mgd. And looking at the emulator in emulationstation they don’t support the Multi Game Doctor format only raw binary and the smd format so I will assume .md is actually the raw binary like .bin and .gen. I also fixed the smd block size and it appears to be working.
The next things I’ll work on are fixing the issues that ceuse has found then add .zip support.
sselphParticipant[quote=82031]Do you know why the <releasedate> node looks odd in the gamelist.xml but displays ok in Emulation Station?
<releasedate>19921220T000000</releasedate>
[/quote]
This is the way EmulationStation chose to encode a datetime. https://github.com/Aloshi/EmulationStation/blob/unstable/GAMELISTS.mdYYYYMMDDTHHMMSS since no releases have an exact time the second half is T000000 so YYYYMMDDT000000
[quote=82033]The only issue I am having is with unzipped .md roms. It seems to flag an error because of the file extension. Is there any workaround for this?
[/quote]
What error are you seeing exactly? is it just not matching hashes for any MD files or is it throwing some other error? I suspect there are issues in the way I’m converting these back to bin files for hashing. I just found an issue with my smd code. I’ll write some code to convert the bin file I have to a md and smd and see if the emulator plays it then I’ll know that the code is working.sselphParticipantI’ll look into adding more sources. I have to be careful since the way I’m matching is by taking the hash of the rom data(minus headers, etc) and matching that to a thegamesdb gameID. I do this with a csv file I manually create. I don’t want to be manually creating a second set of IDs since the process is time consuming.
archive.vg has api calls to accept hashes of the rom files. This might work well. If I can figure out how to get an API key, I’ll see about adding it.
There is also https://github.com/OpenVGDB/OpenVGDB/releases which is mapping the rom hash to a name, image link, and a description. The image CDN appears to be down so if that comes back up I can look into adding it as well.
sselphParticipantSure I’ll take a look this weekend. It should be possible to recursively crawl the subdirectories and generate a single gamelists.xml.
sselphParticipantI added the .gen support to mimic .bin. Hopefully that works.
sselphParticipantIf you -skip_check you can bypass that error and when it is processing the rom you’ll see either a hash not found, or the XML syntax error. If you see the syntax error it means it found the hash but couldn’t download the data.
sselphParticipantthegamesdb.net is currently down which might be the cause.
sselphParticipantAh I must have an older version or something. You could try renaming a few of them to .bin, .smd, or .md to see if the script can hash them to a known hash. I might just need to add an alias for that format to one of the other formats. I would assume it should be similar to bin since .bin is a very generic extension for a binary file so someone probably created .gen to try and make them easier to sort.
sselphParticipantReleased a new version of the script to add the players, the check if thegamesdb is up, and Megadrive support.
A note on the MD support.
There seems to be 4 accepted extensions(bin, md, smd, zip). BIN is trivial and should work without issue. MD and SMD are interleaved bin files and I have to deinterleave them before computing the hash. Since I don’t have any of these files, I had to work on documentation I found and files I made that hopefully conformed to the format. Let me know if it doesn’t work. Also the SMD format seems to support spliting files, I didn’t add any support for that. For ZIP I wasn’t sure how they are handled and need to do some hands on testing. Does ES treat it as a single file and the emulator just chooses the largest or first valid file from the zip or is it treated as a directory ie. (file.zip/rom.bin, file.zip/rom2.bin)sselphParticipantVery nice video and thanks for pointing out the bug about players. I didn’t notice it in the gamexml spec. I’ll get that added to the output. If you have any other feedback on issues, improvements, or platforms to add let me know.
sselphParticipantSeems like thegamedb.net is back up now.
sselphParticipantSeems like thegamedb.net is having issues and my script doesn’t present a nice error for that. Should hopefully work if you try again in a few minutes.
sselphParticipantThose resistors look fine. The wire would work and seems like it would be easy to connect to the raspberry pi without solder. In the diagram the resistor seems to be placed between ground on the raspberry pi and the other board(think it is the NES).
sselphParticipantUsing ohms law: http://www.ohmslawcalculator.com/ohms_law_calculator.php
The voltage is 5V an the resistor is 2200 Ohm so current flow is 5 / 2200 or 2mA and power is 25 / 2200 or .011W. The Wattage is less than .25W so 1/4 is fine but if you want a .5W it shouldn’t hurt.For the wire almost any wire would work if it were long enough so if you have some wire sitting around it should work. When choosing the gauge of wire to use the factors are the current it needs to carry and the length you need to carry it. Since the current flow is very low and the distance very short you can use whatever you have.
sselphParticipantI haven’t tested any of this on raspbian but it might work. You can add something like this to your /etc/fstab just make sure the folder you specify(/media/public) exists. Then run sudo mount /media/public. If that works then you can point the path to /media/public/blah
//192.168.0.5/public/ /media/public cifs guest,file_mode=0777,dir_mode=0777,iocharset=utf8,sec=ntlm 0 0
If you want to use an account other than guest you can do something like:
//192.168.0.5/public/ /media/public cifs credentials=/home/pi/.smbcredentials,file_mode=0777,dir_mode=0777,iocharset=utf8,sec=ntlm 0 0
where the .smbcredentials file looks like:
username=user
password=passsselphParticipantremoved post
sselphParticipantFor the resistor, 1/4W 5% should be sufficient. As for the wire you can do a search for hook-up wire. The pictures look like it might be 24 gauge but the current flow in the wire will be very low so almost anything will do.
sselphParticipantIt has been a while since I set mine up but the UI won’t show emulators it can’t find games for. So you were correct to add roms. Make sure the roms are extracted from zip files and the extensions are recognized for that emulator(.smc, .sfc, .fig, .swc)
sselphParticipantThe script is looking at the file extensions and doesn’t know what to do with zip files. From what I understood emulationstation couldn’t find roms inside zip files so I didn’t set up code to look inside them. If that has changed I can make a few modifications. For now if you unzip them it should see the .gba files.
You can issue something like the following to unzip all your files.
for f in *.zip; do unzip $f; donesselphParticipantSorry I can’t give you detailed instructions since its been a while. From what I remember you set the switch on the back to the X then follow the instructions as if it were an xbox controller using xboxdrv.
sselphParticipantI got similar issues when I tried compiling from the raspberry pi. The build command needed ‘GOARM=5 go build <blah>’ but seems the version of go in raspbian is older(1.0.2 instead of 1.1+ I’m using 1.2) and couple things don’t seem to work.
I pushed a version that fixes one of the issues but the library that resizes images doesn’t work so you’ll have to use -thumb_only so resizing isn’t needed. Use go get -u github.com/sselph/scraper to update the package.
I also cross compiled a version for the raspberry pi using 1.2 here. Or if you like you can do that yourself from an ubuntu machine by installing golang-go-linux-arm and doing ‘GOARM=6 GOOS=linux GOARCH=arm go build github.com/sselph/scraper’
https://github.com/sselph/scraper/releases/download/v0.1-beta/scraper_rpi.zipsselphParticipantI wrote the script in go so you’ll have to install that to compile it. Many distributions have packages so should be as easy as something like:
sudo apt-get install golang
You’ll probably need to set a GOPATH environment variable:
http://golang.org/doc/code.html#GOPATHBut to make things easy I compiled versions for most platforms at:
https://github.com/sselph/scraper/releasesI recommend running this on a machine other than the pi but I compiled one for it anyway.
(-thumb_only flag can speed it up for testing since it is not having to download/process large images.)
sselphParticipantIt is possible to extend the script. I’d have to write code to extract the rom information if the format has headers and other information then use a list of hashes to manually build the mapping from hash to ID. If there is a platform you would like me to try I could take a look.
sselphParticipantOdd pretty sure I added a link it’s on github.com/sselph/scraper
-
AuthorPosts