Trying to figure out Action53
Moderator: Moderators
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Trying to figure out Action53
I want to make a multicart eventually of all the NES ROMs I've made. They are all the same mapper -- Mapper 30, coming from NESMaker, but converted to Mapper 2 so they work with this:
https://github.com/pinobatch/action53
I downloaded all the junk, plugged in all the plug-ins, and ran the test program to see if it worked....but I couldn't even get that far. The main problem is that you have to use a command line to compile it.
I really don't understand why everyone on Github keeps writing their programs with this confusing mechanic; why are we still using command lines in 2022? Worse yet, they all assume complete and total knowledge of using command lines before you begin. I have no idea what's going on with these things.
So when I open CMD on Windows and navigate to the Action 53 folder, I copy-paste this:
tools/a53build.py example.cfg example.nes
...nothing happens. Specifically, it keeps telling me it needs a file called "a53menu.prg" and it's not there. Well, it really isn't there. Did they forget to put it in? What am I expected to do here?
https://github.com/pinobatch/action53
I downloaded all the junk, plugged in all the plug-ins, and ran the test program to see if it worked....but I couldn't even get that far. The main problem is that you have to use a command line to compile it.
I really don't understand why everyone on Github keeps writing their programs with this confusing mechanic; why are we still using command lines in 2022? Worse yet, they all assume complete and total knowledge of using command lines before you begin. I have no idea what's going on with these things.
So when I open CMD on Windows and navigate to the Action 53 folder, I copy-paste this:
tools/a53build.py example.cfg example.nes
...nothing happens. Specifically, it keeps telling me it needs a file called "a53menu.prg" and it's not there. Well, it really isn't there. Did they forget to put it in? What am I expected to do here?
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Trying to figure out Action53
If you want to do programming, you're going to have to learn about command lines. They are not obsolete, and they are not going away.blahblahblah wrote: ↑Sun May 01, 2022 6:11 pmI really don't understand why everyone on Github keeps writing their programs with this confusing mechanic; why are we still using command lines in 2022? Worse yet, they all assume complete and total knowledge of using command lines before you begin. I have no idea what's going on with these things.
I believe a53menu.prg is built first by running "make". Unfortunately, this is not a tool that's normally available on windows. I believe this action53 tool was written on and for linux.blahblahblah wrote: ↑Sun May 01, 2022 6:11 pm...nothing happens. Specifically, it keeps telling me it needs a file called "a53menu.prg" and it's not there. Well, it really isn't there. Did they forget to put it in? What am I expected to do here?
At this point, I'm not sure if the easier suggestion is to install a Linux VM, install MSYS2, install linux subsystem for windows, or to look for GNU Make for Windows, but unfortunately building linux stuff on Windows is not a simple turnkey operation, so I can't really give you a quick walkthrough at this point.
Maybe someone has an already built PRG that they can share.
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
So PRG doesn't have to be specific to each individual ROM? According to this page, GNU Make is "a program to calculate which files need to be rebuilt when other files change."rainwarrior wrote: ↑Sun May 01, 2022 9:46 pm Maybe someone has an already built PRG that they can share.
https://github.com/pinobatch/nrom-template
That's the page the Action53 page sends you to gather the required plug-ins. There is a complete set of plug-ins for Windows, but not much instruction as to how to use them.
I can't open up a makefile until I know what it is, or where it is. They don't even tell you what kind of command makes the file! Help?To make ca65 and ld65 available to Make, you'll need to add the folder containing ca65.exe and ld65.exe to Path or put them in a folder already on Path.
Then open the makefile in a text editor and change EMU to the path of whatever NES emulator you have installed.
If make prints nothing, not even "command not found" or "No targets specified and no makefile found", then you may have accidentally downloaded and installed Make with Guile. Download the version without Guile and try again.
To get make dist to build a zipfile, you'll need to install the Zip and UnZip command-line tools published by Info-ZIP. Be careful, as unz600xn.exe is a self-extracting archive that extracts multiple files to the current directory, like a tarbomb, so run it in a new folder and then copy zip.exe and unzip.exe to a folder on Path.
Last edited by blahblahblah on Sun May 01, 2022 10:59 pm, edited 1 time in total.
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Trying to figure out Action53
I don't know, but I was assuming that "make" will build a PRG file and then that python script injects the other stuff into it? Somebody who understands how this tool works could give you a better answer.blahblahblah wrote: ↑Sun May 01, 2022 10:58 pmSo PRG doesn't have to be specific to each individual ROM?
A makefile is a file named "makefile". You can find it in the root directory of the project.blahblahblah wrote:I can't open up a makefile until I know what it is, or where it is. They don't even tell you what kind of command makes the file! Help?
It's just a text file, you can open/edit it with a text editor. Inside is a program in the make language for building he project.
To run a makefile program, you normally just type "make" on the command line, assuming you have the make utility installed (and everything else you need). That automatically looks for the file called "makefile" and executes it.
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
Okay, I found it, and typed in Make, but it's doing this:rainwarrior wrote: ↑Sun May 01, 2022 11:27 pm
To run a makefile program, you normally just type "make" on the command line, assuming you have the make utility installed (and everything else you need). That automatically looks for the file called "makefile" and executes it.
I don't know what it means by Line 1. The first line of the makefile is:Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'make' is not defined
#!/usr/bin/make -f
That directory doesn't exist. But you'll notice it's commented out, so it shouldn't actually be doing anything.
Last edited by blahblahblah on Sun May 01, 2022 11:54 pm, edited 1 time in total.
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Trying to figure out Action53
I think you may have typed "make" into a python interpreter, and not into a command line.
I'm sorry that I'm not much help here but it's hard to tell what you have, what you already know, and how you're trying to go about it from this message board dialog. All I can say is that this task will probably be quite a bit more difficult than it seems like it should be, because it will require a bunch of baseline knowledge to proceed.
I'm sorry that I'm not much help here but it's hard to tell what you have, what you already know, and how you're trying to go about it from this message board dialog. All I can say is that this task will probably be quite a bit more difficult than it seems like it should be, because it will require a bunch of baseline knowledge to proceed.
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
Well, I'm getting closer. "Make" works now but got halfway through the process before it spit out an incomprehensible error.rainwarrior wrote: ↑Mon May 02, 2022 12:15 am I think you may have typed "make" into a python interpreter, and not into a command line.
Here's what Line 122 of makefile looks like, plus the surrounding code:py tools/vwfbuild.py tilesets/vwf7.png obj/nes/vwf7.s
ca65 -DDPCM_UNSAFE=1 obj/nes/vwf7.s -o obj/nes/vwf7.o
ca65 -DDPCM_UNSAFE=1 src/wait_loops.s -o obj/nes/wait_loops.o
ca65 -DDPCM_UNSAFE=1 src/vwf_draw.s -o obj/nes/vwf_draw.o
py tools/quadanalyze.py audio/selnow.wav obj/nes/selnow.qdp
Traceback (most recent call last):
File "C:\Users\HP ProDesk\Desktop\action53-master\tools\quadanalyze.py", line 191, in <module>
main()
File "C:\Users\HP ProDesk\Desktop\action53-master\tools\quadanalyze.py", line 184, in main
bitstream = quads_enc(wavedata)
File "C:\Users\HP ProDesk\Desktop\action53-master\tools\quadanalyze.py", line 140, in quads_enc
bitstream.fromstring(enc)
AttributeError: 'array.array' object has no attribute 'fromstring'
make: *** [makefile:122: obj/nes/selnow.qdp] Error 1
rm obj/nes/vwf7.s
To me it looks like it got hung up on the part with the digitized speech ("Make your selection now"). Am I wrong?# Files that depend on .incbin'd files
$(objdir)/cartmenu.o: $(objdir)/select_tiles.chr.donut
$(objdir)/quadpcm.o: $(objdir)/selnow.qdp
$(objdir)/selnow.qdp: tools/quadanalyze.py audio/selnow.wav
$(PY) $^ $@
obj/nes/selnow.qdp does not exist, but is it trying to make it?
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Trying to figure out Action53
This is where your error was. I believe the problem here is that quadanalyze.py was written for an earlier version of python and "fromstring" was removed in python 3.9. You might be able to fix it by changing "fromstring" to "frombytes"? After doing that just run make again.blahblahblah wrote: ↑Mon May 02, 2022 12:42 amFile "C:\Users\HP ProDesk\Desktop\action53-master\tools\quadanalyze.py", line 140, in quads_enc
bitstream.fromstring(enc)
AttributeError: 'array.array' object has no attribute 'fromstring'
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
Ok, that got me this far:rainwarrior wrote: ↑Mon May 02, 2022 1:26 amThis is where your error was. I believe the problem here is that quadanalyze.py was written for an earlier version of python and "fromstring" was removed in python 3.9. You might be able to fix it by changing "fromstring" to "frombytes"? After doing that just run make again.blahblahblah wrote: ↑Mon May 02, 2022 12:42 amFile "C:\Users\HP ProDesk\Desktop\action53-master\tools\quadanalyze.py", line 140, in quads_enc
bitstream.fromstring(enc)
AttributeError: 'array.array' object has no attribute 'fromstring'
Now it's looking for something called donut.exe that isn't in the folder. What is that and how do I get it?py tools/quadanalyze.py audio/selnow.wav obj/nes/selnow.qdp
ca65 -DDPCM_UNSAFE=1 src/quadpcm.s -o obj/nes/quadpcm.o
ca65 -DDPCM_UNSAFE=1 src/bcd.s -o obj/nes/bcd.o
ca65 -DDPCM_UNSAFE=1 src/paldetect.s -o obj/nes/paldetect.o
ca65 -DDPCM_UNSAFE=1 src/zapkernels.s -o obj/nes/zapkernels.o
ca65 -DDPCM_UNSAFE=1 src/a53mapper.s -o obj/nes/a53mapper.o
ca65 -DDPCM_UNSAFE=1 src/main.s -o obj/nes/main.o
ca65 -DDPCM_UNSAFE=1 src/title.s -o obj/nes/title.o
gcc -static -std=gnu99 -Wall -Wextra -DNDEBUG -Os -o tools/donut.exe tools/donut.c
make: gcc: No such file or directory
make: *** [makefile:63: tools/donut.exe] Error 127
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Trying to figure out Action53
The error is that it could not build donut.exe. The "No such file or directory" is "gcc", meaning the GNU C Compiler, which is one of the prerequisites.gcc -static -std=gnu99 -Wall -Wextra -DNDEBUG -Os -o tools/donut.exe tools/donut.c
make: gcc: No such file or directory
make: *** [makefile:63: tools/donut.exe] Error 127
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
That wasn't covered on the page. Looking into it, wow, they sure don't make this easy:rainwarrior wrote: ↑Mon May 02, 2022 2:10 pmThe error is that it could not build donut.exe. The "No such file or directory" is "gcc", meaning the GNU C Compiler, which is one of the prerequisites.gcc -static -std=gnu99 -Wall -Wextra -DNDEBUG -Os -o tools/donut.exe tools/donut.c
make: gcc: No such file or directory
make: *** [makefile:63: tools/donut.exe] Error 127
https://gcc.gnu.org/
What do I do? What specific thing do I download and how do I apply it?
-
- Posts: 1318
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
Re: Trying to figure out Action53
Hi blahblahblah.
Visit, read, and download using this page: https://www.gnu.org/prep/ftp.html
You want to obtain the latest version of GCC, that runs on whatever system you are using.
Visit, read, and download using this page: https://www.gnu.org/prep/ftp.html
You want to obtain the latest version of GCC, that runs on whatever system you are using.
Re: Trying to figure out Action53
If you're on Windows 10 or later, I would suggest uninstalling the tools you've used so far and switching to WSL. (I use Debian, but Ubuntu may be a better choice if you're totally lost.) This will add an "open Linux shell here" menu item when you hold shift and right-click on a folder.
Inside the Linux shell, you can install all of the tools you need by typing "sudo apt install [name]". For example, installing GCC is done by running "sudo apt install gcc". Repeat this process for the other tools you need if they're not already installed: cc65, make, python...
Inside the Linux shell, you can install all of the tools you need by typing "sudo apt install [name]". For example, installing GCC is done by running "sudo apt install gcc". Repeat this process for the other tools you need if they're not already installed: cc65, make, python...
-
- Posts: 1318
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
Re: Trying to figure out Action53
The latest version seems to be 11.3.0.
https://bigsearcher.com/mirrors/gcc/rel ... cc-11.3.0/
Download the tar.gz and unzip that… I used 7-Zip.
This was a long while ago, but I believe this is the way to go. I’m using Win10.
https://bigsearcher.com/mirrors/gcc/rel ... cc-11.3.0/
Download the tar.gz and unzip that… I used 7-Zip.
This was a long while ago, but I believe this is the way to go. I’m using Win10.
-
- Posts: 37
- Joined: Sun May 01, 2022 6:02 pm
Re: Trying to figure out Action53
Geez, there are over 200,000 scripts in this. Not an exaggeration. Where do I put them all so that Make can use them?unregistered wrote: ↑Mon May 02, 2022 3:42 pm The latest version seems to be 11.3.0.
https://bigsearcher.com/mirrors/gcc/rel ... cc-11.3.0/
Download the tar.gz and unzip that… I used 7-Zip.
This was a long while ago, but I believe this is the way to go. I’m using Win10.
Also, there's an extra folder that just has one file in it, called "PaxHeaders.23387," and in there is just one thing, called "gcc-11.3.0." What do I do with that?