Homebrew [NDS] Yet Another nds-bootstrap Forwarder: more than 40 forwarders are now possible

three-dee-ess

New Member
Newbie
Joined
May 3, 2022
Messages
2
Trophies
0
Age
20
Location
Southwest
XP
62
Country
United States
I didn't actually test this. The goal has been to simply be able to have more than 40 icons, and that was all I focused on.

It's entirely plausible that this is indeed a side effect. Theoretically, the only length of time that the 3DS-side has been played is less than 4 seconds, so Activity Log showing only one minute makes sense, regardless of how long you've played the actual game behind it.

I think this is just one of those things you're going to have to deal with as a consequence of having more than 40.
Yeah, makes sense. Thanks for the response!
 
v1.6.0

lifehackerhansol

i write working(?) code
OP
Member
Joined
Oct 2, 2021
Messages
353
Trophies
0
XP
724
Country
Canada
YANBF v1.6.0

https://github.com/YANBForwarder/YANBF/releases/tag/v1.6.0

What's new?

  • SD card dependency has been removed. (CLI only)
    • You can now apply a custom ROM path that is different from the input ROM using `-p <ROM path>`
      • This path must follow POSIX standards. This may be improved in the future.
  • Unique ID is no longer based on the title's gamecode.
    • Unique ID 0xFF400-0xFF7FF is allocated for YANBF.
    • A new `id.txt` file is created and is used as a counter for Unique IDs.
      • Should this file be lost, you may potentially start replacing older forwarders. Which isn't a huge loss, but annoying nonetheless.
Improvements
  • Some reworking of the code. Not visible to the end user, just made the thing more maintainable really.
  • libscrc has been replaced with a custom CRC16 function
    • GBATEK swiCRC16 pseudocode provided by nocash. Thanks nocash!
Bug fix
  • The GameTDB access will ping the EN endpoint if the album artwork is not found on the correct region.
    • Apparently this is intended behaviour. Weird but oh well, another ping isn't taxing.
Known issues
  • As is standard for YANBF releases, the GUI is always one step behind in functionality. So passing a custom ROM path will not work for now.
  • DSiWare is not supported, as GameTDB does not provide box art for them (of course they don't, they don't come in a box.)
Please update the SD forwarder pack as more AP patches have been released.
 

breadone

Member
Newcomer
Joined
Jan 24, 2022
Messages
6
Trophies
0
Age
23
XP
97
Country
New Zealand
I'm not sure if this is a known issue, but generator just will not generate the CIA. (on macOS) I run the command `./generator -p "/roms/nds/Pokémon SoulSilver Version.nds" Pokémon\ SoulSilver\ Version.nds`, and it gives me the error "ERROR: Could not load image file: can't fopen.", after it says "Creating banner..."

Im using v1.6 and macos 12.3 if that helps

edit: yep, tried on windows and it works just fine, just a bug on the macos version then?
 
Last edited by breadone,

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
I'm not sure if this is a known issue, but generator just will not generate the CIA. (on macOS) I run the command `./generator -p "/roms/nds/Pokémon SoulSilver Version.nds" Pokémon\ SoulSilver\ Version.nds`, and it gives me the error "ERROR: Could not load image file: can't fopen.", after it says "Creating banner..."

Im using v1.6 and macos 12.3 if that helps

edit: yep, tried on windows and it works just fine, just a bug on the macos version then?

I had no issues on my Mac (10.15), are you passing the actual nds file to the generator? Basically you have to specify two paths, the one for -p is relative to the microsd card structure and as last argument you need the actual file on your computer. For example:

Code:
./generator -p /nds/0389\ -\ Animal\ Crossing\ -\ Wild\ World\ \(E\)\(Legacy\).nds -b /Users/max/Downloads/ADM/ADM.png -s /Users/max/Downloads/ADM/ADM.wav /Users/max/Downloads/0389\ -\ Animal\ Crossing\ -\ Wild\ World\ \(E\)\(Legacy\).nds
 
Last edited by Yrouel,

breadone

Member
Newcomer
Joined
Jan 24, 2022
Messages
6
Trophies
0
Age
23
XP
97
Country
New Zealand
I had no issues on my Mac (10.15), are you passing the actual nds file to the generator? Basically you have to specify two paths, the one for -p is relative to the microsd card structure and as last argument you need the actual file on your computer. For example:

Code:
./generator -p /nds/0389\ -\ Animal\ Crossing\ -\ Wild\ World\ \(E\)\(Legacy\).nds -b /Users/max/Downloads/ADM/ADM.png -s /Users/max/Downloads/ADM/ADM.wav /Users/max/Downloads/0389\ -\ Animal\ Crossing\ -\ Wild\ World\ \(E\)\(Legacy\).nds
Yes, I’m sure I got all that right, I copied the rom into the generator folder (mostly for convenience), and used the custom rom path from 1.6.0
 

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
Yes, I’m sure I got all that right, I copied the rom into the generator folder (mostly for convenience), and used the custom rom path from 1.6.0
Try with an absolute path for the rom in your computer, maybe it's having a weird issue with the relative path. For convenience sake remember you can just drag and drop the file in the terminal to automatically get the full path.

EDIT: I tried this command and it worked, hopefully @lifehackerhansol has some more insight on this

Code:
./generator -p "/nds/4781 - Pokemon SoulSilver (U)(Xenophobia).nds" 4781\ -\ Pokemon\ SoulSilver\ \(U\)\(Xenophobia\).nds


Anyway I made a banner, let me know if you like the sound I chose or if you have something else in mind perhaps:

imageedit_2_7170683544.png
 

Attachments

  • SoulSilver.zip
    481.2 KB · Views: 8
Last edited by Yrouel,

breadone

Member
Newcomer
Joined
Jan 24, 2022
Messages
6
Trophies
0
Age
23
XP
97
Country
New Zealand
Try with an absolute path for the rom in your computer, maybe it's having a weird issue with the relative path. For convenience sake remember you can just drag and drop the file in the terminal to automatically get the full path.

Good shout, that fixed it! Don't really know why it didn't like the relative path since it didn't matter on windows, but great to have it working on mac

Also thats really really nice art, how'd you make it?
 
  • Like
Reactions: Yrouel

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
Also thats really really nice art, how'd you make it?

I didn't "make it" per se as I didn't "make" the sound.

I took an existing transparent logo (googled it) and rescaled it appropriately to 256x128 while the sound I cut it from the "Start adventure" music from the game soundtrack.

I had made a very simple tutorial to do the image manipulation with an online tool (LunaPic) and here's where I found the sound files: https://downloads.khinsider.com

The image is the easiest part especially because which one to use is pretty much objectively determined: the logo on the box of the game is THE logo for the game, there isn't much to interpret there. The sound however is not always "obvious" so it's much more arbitrary and mostly at least for me depends on what can be nicely fit in 3 seconds and "sound good" (still being related to the game of course)


By the way if you have other games in mind of if you want to contribute yourself new custom banners by all means, I also made a request/contribution thread: https://gbatemp.net/threads/yanbf-custom-banner-and-sound-requests.611460/
 
Last edited by Yrouel,

lifehackerhansol

i write working(?) code
OP
Member
Joined
Oct 2, 2021
Messages
353
Trophies
0
XP
724
Country
Canada
I'm not sure what's going on with paths. I force absolute paths on everything already.

By the looks of the logs... bannertool is breaking, because the absolute path of the resulting banner png file isn't where it supposed to be. Which is weird. There were two reports of this, both from macOS.

This makes me wonder if it is a Monterey problem. I'm on Big Sur and I feel no motivation to update.

@breadone are you using an M1 Mac, by chance?
 
Last edited by lifehackerhansol,
  • Like
Reactions: Yrouel

lifehackerhansol

i write working(?) code
OP
Member
Joined
Oct 2, 2021
Messages
353
Trophies
0
XP
724
Country
Canada
Try with an absolute path for the rom in your computer, maybe it's having a weird issue with the relative path. For convenience sake remember you can just drag and drop the file in the terminal to automatically get the full path.

EDIT: I tried this command and it worked, hopefully @lifehackerhansol has some more insight on this

Code:
./generator -p "/nds/4781 - Pokemon SoulSilver (U)(Xenophobia).nds" 4781\ -\ Pokemon\ SoulSilver\ \(U\)\(Xenophobia\).nds


Anyway I made a banner, let me know if you like the sound I chose or if you have something else in mind perhaps:

View attachment 309685
Regarding the SoulSilver sound:

With HeartGold I actually used the starting bit of Lyra's theme. I was thinking of using Ethan's for SoulSilver to match it up.

But this works too :D
 
  • Like
Reactions: Yrouel

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
Regarding the SoulSilver sound:

With HeartGold I actually used the starting bit of Lyra's theme. I was thinking of using Ethan's for SoulSilver to match it up.

But this works too :D

Feel free to change it as you see fit. As I said this is very arbitrary and I don't even play Pokemon games so I really don't know which sound might be more iconic and representative for these.
Basically I just picked what I thought was a nice easy to cut soundbite that fit in 3 seconds.

As a general rule I tend to prefer "generic" pieces of the game like intro, title music or "generic" sound effects like "acquired an item" or "victory" rather than specific pieces like "this character theme" or "this level sound" or "this weapon sound".
But this is literally just my "feeling" of what to pick which again is arbitrary most of the times
 
Last edited by Yrouel,

breadone

Member
Newcomer
Joined
Jan 24, 2022
Messages
6
Trophies
0
Age
23
XP
97
Country
New Zealand
I'm not sure what's going on with paths. I force absolute paths on everything already.

By the looks of the logs... bannertool is breaking, because the absolute path of the resulting banner png file isn't where it supposed to be. Which is weird. There were two reports of this, both from macOS.

This makes me wonder if it is a Monterey problem. I'm on Big Sur and I feel no motivation to update.

@breadone are you using an M1 Mac, by chance?
yup, i'm using an M1 macbook pro

if it's not a macOS-wide problem i'd assume it is something to do with Monterey, i haven't had anything else break like this compared to intel macs, in my experience anyway
 

Fey57

New Member
Newbie
Joined
May 16, 2022
Messages
4
Trophies
0
Age
20
Location
California
XP
12
Country
United States
I'm having an issue with both the command line and gui method, I've followed the instructions but I get this with any nds file I try.

Code:
Sun May 15 2022 23:37:13 GMT-0700 (Pacific Daylight Time): generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.

Sun May 15 2022 23:37:15 GMT-0700 (Pacific Daylight Time): generator.py:241: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.

Sun May 15 2022 23:37:15 GMT-0700 (Pacific Daylight Time): Custom path is not provided. Using path for input file.
/roms/nds/Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds
Getting gamecode...
Extracting and resizing icon...
Getting ROM titles...
Creating SMDH...
Checking API if a custom banner or sound is provided...
No banner provided. Checking GameTDB for standard boxart...
Resizing banner...
Creating banner...
ERROR: Could not load image file: can't fopen.
 

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
I'm having an issue with both the command line and gui method, I've followed the instructions but I get this with any nds file I try.

Code:
Sun May 15 2022 23:37:13 GMT-0700 (Pacific Daylight Time): generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.

Sun May 15 2022 23:37:15 GMT-0700 (Pacific Daylight Time): generator.py:241: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.

Sun May 15 2022 23:37:15 GMT-0700 (Pacific Daylight Time): Custom path is not provided. Using path for input file.
/roms/nds/Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds
Getting gamecode...
Extracting and resizing icon...
Getting ROM titles...
Creating SMDH...
Checking API if a custom banner or sound is provided...
No banner provided. Checking GameTDB for standard boxart...
Resizing banner...
Creating banner...
ERROR: Could not load image file: can't fopen.
The nightly here should fix the issue: https://nightly.link/YANBForwarder/YANBF/workflows/nightly/main

Also:

IRE.png
IRD.png
 

Attachments

  • IRE.zip
    317.2 KB · Views: 5
  • IRD.zip
    325.4 KB · Views: 4

Fey57

New Member
Newbie
Joined
May 16, 2022
Messages
4
Trophies
0
Age
20
Location
California
XP
12
Country
United States
The nightly here should fix the issue: ht tps://nightly.link/YANBForwarder/YANBF/workflows/nightly/main

Also:

View attachment 310182 View attachment 310184
new issue with the build linked

Code:
C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator>generator -p "F:\roms\nds\Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" -b "C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator\data\IRE\IRE.png" -s "C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator\data\IRE\IRE.wav" "C:\+Eliseo\+Emulation\+Nintendo\DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds
Getting gamecode...
Extracting and resizing icon...
generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
Getting ROM titles...
Creating SMDH...
Resizing banner...
generator.py:243: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
Creating banner...

ERROR: Failed to open file for CWAV conversion: No such file or directory
 

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
new issue with the build linked

Code:
C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator>generator -p "F:\roms\nds\Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" -b "C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator\data\IRE\IRE.png" -s "C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator\data\IRE\IRE.wav" "C:\+Eliseo\+Emulation\+Nintendo\DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds
Getting gamecode...
Extracting and resizing icon...
generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
Getting ROM titles...
Creating SMDH...
Resizing banner...
generator.py:243: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
Creating banner...

ERROR: Failed to open file for CWAV conversion: No such file or directory
Uh I see a + in the path so that might be an issue. Also the custom path after -p doesn't need the drive letter and also if I'm not mistaken it should use POSIX notation so -p /roms/nds/file.nds.

Anyway the assets have been just merged in the repository so it should now pick the custom banner/sound automatically, the command simplifies to:

Code:
generator -p "/roms/nds/Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" "C:\Eliseo\Emulation\Nintendo DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds"

(check the paths still)
 

Fey57

New Member
Newbie
Joined
May 16, 2022
Messages
4
Trophies
0
Age
20
Location
California
XP
12
Country
United States
Uh I see a + in the path so that might be an issue. Also the custom path after -p doesn't need the drive letter and also if I'm not mistaken it should use POSIX notation so -p /roms/nds/file.nds.

Anyway the assets have been just merged in the repository so it should now pick the custom banner/sound automatically, the command simplifies to:

Code:
generator -p "/roms/nds/Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" "C:\Eliseo\Emulation\Nintendo DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds"

(check the paths still)
still doesn't work with the new paths, removed the +'s from all the folders as well
Code:
C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator>generator -p "/roms/nds/Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" "C:\Eliseo\Emulation\Nintendo DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds"
Getting gamecode...
Extracting and resizing icon...
generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
Getting ROM titles...
Creating SMDH...
Checking API if a custom banner or sound is provided...
Creating banner...


ERROR: Failed to open file for CWAV conversion: No such file or directory
 

Yrouel

Well-Known Member
Newcomer
Joined
Apr 16, 2019
Messages
97
Trophies
0
Age
36
XP
286
Country
Italy
still doesn't work with the new paths, removed the +'s from all the folders as well
Code:
C:\Users\Eliseo\Downloads\3DS Homebrew\DS Forwarding\YANBF-Windows\generator>generator -p "/roms/nds/Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" "C:\Eliseo\Emulation\Nintendo DS\DS Games\Pokemon - Black Version 2 (USA, Europe) (NDSi Enhanced).nds"
Getting gamecode...
Extracting and resizing icon...
generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
Getting ROM titles...
Creating SMDH...
Checking API if a custom banner or sound is provided...
Creating banner...


ERROR: Failed to open file for CWAV conversion: No such file or directory
I have no idea what's going on I'm sorry. @lifehackerhansol will have to take a look at this.

In the meantime I made the forwarders myself (same path, same roms) check your DMs.

EDIT: I just tried the nightly on my PC (I daily drive a mac) with Windows 10 and it just worked. Perhaps try shortening the paths (on your computer not the one referred to the microsd)?

Code:
C:\Users\Max\Desktop\generator>generator.exe -p "\roms\nds\Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds" "C:\Users\Max\Desktop\pokemon\Pokemon - Black Version (USA, Europe) (NDSi Enhanced).nds"
Getting gamecode...
Extracting and resizing icon...
generator.py:63: DeprecationWarning: LINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
Getting ROM titles...
Creating SMDH...
Checking API if a custom banner or sound is provided...
Creating banner...
Creating romfs...
Generating UniqueID...
Running makerom...
CIA generated.
 
Last edited by Yrouel,

lifehackerhansol

i write working(?) code
OP
Member
Joined
Oct 2, 2021
Messages
353
Trophies
0
XP
724
Country
Canada
All of this looks correct. I'm not sure what is going on.

I'm going to add a crap ton of printing to the next nightly, we'll have to see.
 

lifehackerhansol

i write working(?) code
OP
Member
Joined
Oct 2, 2021
Messages
353
Trophies
0
XP
724
Country
Canada
@Fey57 @breadone I've added a bunch of logging that I think would be useful for figuring out what is going on: nightly.link/YANBForwarder/YANBF/workflows/nightly/main

CLI only as usual. Could you just copy everything on the terminal screen and post (assuming it fails, but even if it works it would be nice)?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    NeoGaming @ NeoGaming: i'm back