I'm trying to do this same thing right now and have made some progress. I've made a github repo that holds a json file for installing my custom board (based on an ESP32S3). Everything seems to be working except that I can't upload to my board after building. If I just append my boards.txt data to the end of the esp32 boards.txt everything works fine. My repo may help you, but I'm also looking for help on why uploading might not be working. The message I get is "Request 'upload' failed."
I'm going to ask you to provide the full verbose output from an upload attempt.
This procedure is not intended to solve the problem. The purpose is to gather more information.
Please do this:
Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
The "Preferences" dialog will open.
Uncheck the box next to Show verbose output during: ☑ compile in the "Preferences" dialog.
Check the box next to Show verbose output during: ☐ upload.
Click the "OK" button.
The "Preferences" dialog will close.
Select Tools > bpad handheld gaming platform > bpad from the Arduino IDE menus.
Attempt an upload, as you did before.
Wait for the upload to fail.
You will see an "Upload error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
Open a forum reply here by clicking the "Reply" button.
Click the <CODE/> icon on the post composer toolbar.
This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
I actually got uploading working in LInux and pushed to the repo provided. However, my partner is on Windows and using the 1.8 IDE and its not working for him. This is his output:
java.lang.NullPointerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingProgrammer(SerialUploader.java:295)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:90)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
at processing.app.SketchController.upload(SketchController.java:732)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$UploadHandler.run(Editor.java:2061)
at java.lang.Thread.run(Thread.java:748)
I just gave it a try and it works fine for me on Arduino IDE 1.8.19.
I'm not really interested in troubleshooting this problem for the long obsolete IDE version 1.8.19. I recommend your partner update to the modern Arduino IDE 2.3.4. There is a good chance that will solve the problem. If not, you can post the verbose output produced by 2.3.4 and I'll take another look.
If they won't or can't update their IDE, maybe one of the other forum helpers will be willing to support the antiquated 1.8.