Making premade gamelist.xml with xtra media collections
-
@meleu said in Making premade gamelist.xml with xtra media collections:
@used2berx said in Making premade gamelist.xml with xtra media collections:
@meleu Hey man. Any chance you might be able to work some scripting magic on that FDS stuff now that the holidays are over and it's cold and crappy outside
The funny thing is that in my part of the world the weather is hot and good to go to the beach with my kids :D
When the kids are on vacations my free time decreases considerably. And I'm away from my "coding station". I will only be able to play with that script on February, I guess.
Maybe it's time to actually play some games a little, what do you think? ;)
Ha! Must be nice. It's been below zero every night for about the last 10 days where I live. It's absolutely miserable here.
LOL... no time to actually play any games. My brother gave me this Pi back in May to get it working for a few of his in-laws and I keep making excuses why he hasn't gotten it back yet. I told him that I've got to get NES perfect before he gets it back. They're on their own for a long time with all of the other systems though. :)
I've got plenty of work to do to keep me busy. Unfortunately, one of the things was trying to re-size all of my artwork, but that will have to wait until I can check it on the Pi. No biggie. Now that the Pi Zero testing is almost over I have to see if my 8 year old computer is up to the task of making HD videos for over 2000 games.
Enjoy the beach for me. ;)
-
@edmaul69 Okay... So I can't figure out how to make this work with a hotkey.
By default, it looks as though you can use the L/R buttons to eject/load and flip the disk, but I don't like how easy it would be to accidentally do that. I'd rather hotkey it so it would have to be intentional.
Here's my fds retroarch.cfg
input_remapping_directory = "/opt/retropie/configs/fds/" video_smooth = "true" video_fullscreen_x = "320" video_fullscreen_y = "240" input_disk_eject_toggle_btn = "12" input_disk_next_btn = "11" input_disk_prev_btn = "10" #include "/opt/retropie/configs/all/retroarch.cfg"
And my nes retroarch.cfg:
input_remapping_directory = "/opt/retropie/configs/nes/" video_smooth = "true" video_fullscreen_x = "320" video_fullscreen_y = "240" input_disk_eject_toggle_btn = "12" input_disk_next_btn = "11" input_disk_prev_btn = "10" #include "/opt/retropie/configs/all/retroarch.cfg"
All it does is say "nul" when I use any of the hotkeys.
I noticed these lines in the global retroarch.cfg:
input_disk_eject_toggle = "nul" input_disk_eject_toggle_btn = "nul" input_disk_eject_toggle_axis = "nul" input_disk_next = "nul" input_disk_next_btn = "nul" input_disk_next_axis = "nul" input_disk_prev = "nul" input_disk_prev_btn = "nul" input_disk_prev_axis = "nul"
Shouldn't I be overriding this?
Also, where is the commands to automatically make the L/R buttons eject/load and flip the disk in FDS? I can't seem to find that anywhere.
-
@used2berx so i put them in the controllers own config files so each different controllers have their own keys. These require pressing a hotkey to use them so i use them on the shoulder buttons myself. Also in fds the only time these buttons work is when you are told to flip a disk. No way to accidentally do it.
-
@edmaul69 That's pretty sweet. I'll have to try that out. How do they make it so it will only flip when it asks for a disk? Is it the same for PSX as well?
Any idea how I could change the controls in the system specific retroarch.cfg files though? This isn't the only thing that I'd like to change as far as controller configurations/hotkeys. To this day I haven't figured out any way of doing this except for directly with the control pad configuration file. This kind of sucks since most people would be using a different controller than me, especially my brother and his in-laws.
Thanks!
EDIT: This is what I want to do:
It doesn't work. I'm not the first person to say so apparently...
https://www.reddit.com/r/RetroPie/comments/58vy4l/change_save_hotkey_only_for_nes/
I'm bumping this up again as I refuse to believe nobody has figured this out...(especially with the sheer number of NES 2-button USB controllers being used out there).
From this Guithub page about remapping hotkeys:
https://github.com/retropie/retropie-setup/wiki/retroarch-configuration
It specifically says "Settings made here will only override settings in the global retroarch.cfg if placed above the #include line". So I changed the save/load states so they're select+left and select+right, and I put those two lines of code ABOVE the #include line like they say to do...reboot RetroPie and those hotkeys are STILL mapped to the old hotkeys (which is change save state slot, and not save/load save like I want them to be)....so they didn't overwrite the overall config like they say will happen. What am I doing wrong?
-
@used2berx i dont change hotkeys in retroarch. I do it all in the individual controller config files. And it is only fds that works only when told to flip disk. In psx if you press your hotkey (should be set to select) and the button set to eject it will eject the disk. I set the retroarch menu hotkey to the b button and put eject hotkey to x button
-
@edmaul69 Well... at least I know that the L/R defaults won't screw the game up by letting you eject the disk on accident. As long as that works, I probably won't even bother re-mapping it for now since I use a XBox 360 style controller.
I'm thinking more for my brother who is making one for his in-laws and he showed me the NES style USB pads he bought for it. No L/R buttons on that. Then again, I guess my solution wouldn't work for that case either since there wouldn't be any buttons that I programmed.
I guess for now I'll just have to ask him to borrow one of those controllers too so I can set it up properly for him.
In the mean time, if anybody reads this who knows about changing hotkeys on an emulator/console basis that works, I'd love to hear how it's done.
I don't know if the method on the RetroPie github is outdated or just broken, but the instructions on the following link do not work now.
-
@edmaul69 So.... I've got a problem here. Maybe two problems.
When I'm using nestopia, there is no indication on my screen at all when I eject/insert or flip a disk. It will work, but you're just randomly doing it until it says it's loading. Unfortunately because of this, I have no way of testing whether or not I'm able to eject the disk when it doesn't ask for it in Nestopia.
When I'm using Fceumm, I get the notification for the eject/insert actions and everything works as it should. The problem I'm facing here is that you are able to eject the disk at any point in time in fceumm.
What is your experience with this, edmaul69?
I'm going to post a topic asking about this, but I wanted to see what you had to say first since you're probably one of a handful of people who's even used the FDS on the Pi.
-
@used2berx ok. So it appears neither use hotkeys anymore. Nestopia is the better emulator based on disk flipping and not screwing anything up. Here is an explanation of how the 2 work.
So in fceumm it doesnt use hotkeys. L1 is side a/b. R1 is eject/insert. Ejecting can cause issues.
In nestopia all you do is hit L1 to load. However if it gets an “a b disk side error” at the loading screen or the flip disk screen, because you hit L1 at any point you need to press L1. It doesnt affect your game. It only gives you an error during the now loading screen and at the flip disk screen. So it does not affect the gameplay in any way.
So to fix your buddies controller for nestopia (you can do this in yours if you wanted too as its how mine is now setup) so if you open up your file /opt/retropie/configs/fds/retroarch.cfg add these two lines
input_player1_select_btn = input_player1_l_btn =
And put the number that is his select button number to this L1 and select button. Now he can switch disks with his select button.
-
@edmaul69 Unfortunately, the controller fix you put won't work man. And that's because of the wild inconsistancies of how both emulators handle FDS. It's not a matter of choice when it comes to which emulator to use, but a matter of compatibility. The very first game alphabetically on my list, a translated version of "19 Neunzehn", will only work in fceumm.
This is really bad news about how each emulator does their own thing handling FDS disks. Is there anybody we can talk to that could sync up the functions for both emulators?
-
Deleted. New post.
-
Deleted. New post.
-
@used2berx so to fix your problem would you be willing to convert your .fds roms to .nes to use like other nes roms? If so there is this tool to do that:
-
I can't remember exactly what you're first two questions were, but I think they were something like this.
-
The problem with mapping buttons is because both emulators treat stuff very differently, and because I'm including over 100 FDS roms and not all of them work in Nestopia, probably quite a few of them will need Fceumm to run and no matter whether I'm using the default buttons or I figure out a good way to re-map stuff it will behave differently based off of which emulator is selected. I, personally, will know the difference when I see the games loading up. My brother and his in-laws, especially the kids, won't have a clue what is going on. It's already complicated running FDS games as-is, but when the two emulators have different methods for doing so it becomes needlessly complex.
-
I do have a few FDS conversions in teh set, such as the SMB2 one. There aren't a whole lot of them out there though, especially none that I know of for the 34 currently included FDS translations.
so to fix your problem would you be willing to convert your .fds roms to .nes to use like other nes roms? If so there is this tool to do that:
http://www.romhacking.net/utilities/662/I would be if there are good instructions to do so. I'm not a rom hacker. I've opened some roms in HxD before and manipulated some headers for mirroring when directed to, but even with that tool I wouldn't have a clue how to convert games from FDS to NES. That would actually be awesome to do, but I suspect that it would be above my pay grade.
EDIT: At the end of the day, I think it would be a lot easier if somebody just got both emulators behaving the same way when it comes to flipping disks. I don't see any reason why somebody would change the coding for one to be so completely different than the other, especially when one of them won't play all of the games and you would need both for maximum compatibility.
-
-
This post is deleted! -
@used2berx i will try it out and see how hard it is to convert them.
-
@edmaul69 Yeah.... I did see the utility. The readme says this:
Save as NES
FDS Explorer can now convert FDS disks to .NES fileformat. However it's
quite restricted. FDSExplorer examines the current disk-side and check it if
may properly convert to a .NES file. The conditions are that the disc
must have a 32K PRG-file and a 8K CHR-file. If so, the file is exported
with a NES header.
Notice that FDS Explorer only exports the data to a .NES file. You manually
have to change the mapper-number and perhaps "hack" the ROM to make it
run on NES-emulators.
Ideas on how to enhance this feature in the future is very welcome.Just by reading that, I would probably be able to convert some of them, but not all of them. I know that a few of the games are a single side of a single disk, and others such as BodyConQuest are 2 disks with 2 sides.
Also, it kind of scares me that it's not completely automatic. When it says "you might have to change the mapper number and "hack" the rom", I'm totally going to fail at that.
I'm going to try this out on a few though and see what happens. I didn't realize that there were some basic instructions in the readme. If I can get a majority of them running this way it would be ideal, even if we can get somebody to re-code Nestopia and Fceumm to behave the same way.
-
@edmaul69 I don't know what you're seeing on your end, but it looks to me like 100% of the time so far the only games that it will convert are 64kb games like "All Night Nippon SMB" and Clu Clu Land (Think the black-box era of very early NES titles).
These seem to be the only games that have a 32k PRG rom. The others vary wildly in many cases but most seem to have a 16k PRG rom.
All in all, I'd say that about 90% of the games in the collection are 128kb and will not be able to be converted with this tool. :(
-
@edmaul69 I just talked with somebody who is very knowledgable with FDS hacking and they told me that this would be a major task and nobody would likely ever try to convert the FDS roms to NES since pretty much every NES emulator will play them. This issue is going to have to be corrected on the emulation side.
A consolidated version of the reply I recieved:
The way the FDS works, it has a BIOS for loading from disks, unlike the NES which doesn't need one. Some games will just load the entire game into RAM at the beginning. Others use both sides and have data for each level in different files, which are all transferred into RAM at the same point, overwriting each other. The files can be any size, and can be written to wherever you like in RAM.
This is very different from a ROM using bank switching. MMCs switch banks in certain specific amounts, and it happens instantly. Whereas a file could only be under a kilobyte, a bank has to be at least 4kb, usually more, and is a set size, so often you'll get wasted space.
Not to mention in all this that instructions in the games will point to different locations if you changed to a ROM. It could take a lot of reprogramming to make a larger FDS game work in ROM format, and require one of the more advanced mappers.
At which point you realize that every emulator can play them so you wonder what's the point.
-
@used2berx yo! I think I'll have some free time today. Can you take a look at our discussion here?
Cheers.
-
@meleu Hey buddy. Awesome!
Sorry... I was napping a bit after work, but I got up and saw you had replied. :)
The "gamelist-to-synopsis" feature will be pretty easy to implement.
Great! Man... if @mitu can reverse the direction of his
gamelist.xml
to spreadsheet and you can do this, that will make future synopsis work about 10 times easier for me in the future. Maybe even 100 times easier! No more having to edit individual text files, and I'll be able to finally sort by any tag for super easy editing of things like Genre.Platform: Nintendo Entertainment System and Platform: Famicom Disk System entries in the synopsis.txt files located in /Media/nes/Synopsis/ folder will treat these entries as if they were NES and not FDS games and look for roms and all media in the /nes/ folders instead. (This should not occur if the synopsis, media and roms are located in the /Media/fds/ directory though).
Can you confirm if you still want exactly what you're describing above?
Yes. This is what I want. All of my FDS roms are in the NES roms folders, in the following directories (and all of the media is just in the corrosponding
nes
media folders):/home/pi/RetroPie/roms/nes/(4) Famicom Disk System/(4_1) Translated FDS/
/home/pi/RetroPie/roms/nes/(4) Famicom Disk System/(4_2) Untranslated FDS/
/home/pi/RetroPie/roms/nes/(4) Famicom Disk System/(4_3) Update Hacks FDS/
The thing is, maybe somebody wants to use your script down the line that actually wants to separate the FDS system from the NES system. I just didn't want to "break" our script for them by simply not allowing this. So that's why I suggested that this only work for us when the FDS media/roms are in the
/nes/
folders, and for somebody who was running the script from the/fds/
folder, it would work normally.PLEASE let me know if that's still not clear. I'm doing my best to describe the situation, but I know that I tend to over-explain things and make them more complicated than they need to be. :)
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.