Hi everyone / Aluu tamaasa!

SumisuBushido

New member
Hi everyone! My name is SumisuBushido, a former YouTuber turned game developer. For the past year or so, I've been working on a video game called "Ilisimasassarsiortoq Junnuk" a.k.a "Eventyreren Junnuk" or "Junnuk the Adventurer". However, this video game will be like no other, as it goes through several "game-styles", such as side-scrolling, RPG, isometric, or in some cases, shoot-em-up or punch-out (used primarily for some boss fights).

Yet, the main aspect of this game is that it's gonna be in the floppy disk format (Famicom Disk System), since my game's soundtrack is composed with the FDS FM soundchip (which you can check out here); and yes, I am fully aware that NESmaker doesn't usually support the FDS format by default. However, I've heard that if you can dig into the project code deep enough, I could be able to change the format because technically, NESmaker can do anything that the NES/Famicom can do; and with that statement, I should be able to either figure out a way to put the FDS soundchip onto a cartridge format, or change the game to FDS format.

Anyways, moving past that, I'm also an artist, level and graphics designer, game plot planner, chiptune musician, and a couple other things too.
If any of you wanna message me or talk to me, my Discord tag is SumisuBushido#9853

Other than that, takuss' to y'all!

~~~

Aluu tamaasa! SumisuBushido-mik ateqarpunga; aamma unaasimavunga YouTuber, kina ersertaatinngorpoq videumi pinnguaat. Sulimmersornikuuvunga, ineriartornermi videumi pinnguaatinut; "Ilisimasassarsiortoq Junnuk"-mik ateqarpoq. Kisianni, videumi pinnguaat tamanna asseqanngitsorujussuuvoq; taanna "spilletilstandit" arlalitsigut pisummat, tamakkua tappupput: "sidescrollende", "RPG", "isometriskiusoq", imaluunniit ilaatigut, "qummut aallaakkit" imaluunniit "silatimoorna".
Kisianni diskettimit ilutsimiissaaq, "FDS FM"-mit lydchipimik pinnguaatiga lydspor sananeqarmat (maani tusarnaarsinnaavat). Aap, sianivunga pissusissamisoortumik NESmaker-ip ikiorsiivippiaqanngilaq ilusermut diskettimit. Kisianni, tusaanikuuvunga assaasinnaassaguit naammattunik itisuumik suliniutimut paasiuminaallisaatimi, ilusip allanngortissinnaasariaqarpara; NES-ip/Famicom-ip suliarisinnaammagu suna NESmaker-ip suliarisinnaavaa. Aamma taannarineqarmat taanna naammassisinnaasariaqarpara ivertinnermit lydchip "FDS FM" ilusermut kassettimut akornut; imaluunniit iluseq pinnguaat allanngortissinnaasariaqarpara FDS-mut.
Saniatigut, eqqumiitsuliortuuvunga, tunuliaqusiortoq videumi pinnguaat, kigartuisartoq, pilersaarusiortoq oqaluttuat videumi pinnguaatimut, nipilersortartoq chiptune, aamma allaqarpungalu ukkatit.
Uannik oqalugiarusukkuit, SumisuBushido#9853 Discord-tag pigaara.

Takuss' Ilissinnut!
 

dale_coop

Moderator
Staff member
Welcome @SumisuBushido

Happy to have you here with us.
Wow, sounds like a huge project.
Before you go that road... I'd suggest you to start making small demo projects following the tutorial videos from the official webpage https://www.thenew8bitheroes.com/learn
You'll learn all the basis of the tool, how to setup your projects, use the different modules... and the limitations.

And the more you will work on that, the more you'll learn about the code.
 

SumisuBushido

New member
Thanks a lot! Plus, I'd honestly do small demos anyways (for technical purposes). The only reason why I even brought up the FDS in the first place is because of my game's soundtrack (which you should check out btw).
 

TakuikaNinja

Active member
Hi! That is a lovely FDS soundtrack you got there.
The biggest difference between FDS & NES development has to do with the format itself. FDS expects the disk to contain binary files (not to be confused with the source assembly files). With asm6 (NESmaker's assembler of choice) you will have to compile each binary file, then merge them into the final disk format. NESmaker by default relies on bankswitching sections of code, which the FDS cannot do outside of loading new data from disk. The program also makes a lot of assumptions which are not appropriate for the FDS. For example, the mapper NESmaker uses has 512KiB of bankswitched PRG-ROM, whereas the FDS can only load 64KB of data from each side of the disk into RAM. NESmaker's codebase is pretty bloated, too. You will probably have a better experience creating your own development environment from scratch. Please understand that we will be unable to help you if you choose to turn NESmaker into FDSmaker.
That rambling aside, welcome! I hope you enjoy creating stuff with NESmaker.

Note 1: The FDS BIOS does a few checks to validate the disk. Notably, it checks for a special "KYODAKU" file and will refuse to load the disk if it is either not found or the contents don't match what is expected. This is a a measure against unlicensed software. There are two ways to deal with this; include the required file (Nintendo does not seem to care much about it anymore, much like their other retro systems), or do some sneaky things with the disk contents to make the FDS jump execution to your code before it can do the file check. Either way, you will have to figure it out on your own using online resources.
Note 2: The .fds file format commonly used for storing FDS disk contents lack the gaps (i.e. space between files) & CRC data found on real disks. The FDS RAM adapter checks the CRCs and reports an error if they are invalid. Unless you have the hardware and want to calculate/include these in the disk yourself, forget trying to write your software onto real disks. Use something like an FDS stick if you want to test on real hardware.
 

SumisuBushido

New member
Welp TakuikaNinja, you are right after all. The cartridge is much more superior in technical and storage terms, yet the real challenge for me is just putting the FDS soundchip onto a Famicom cartridge (just like with the VRC6/7, N163, 5B, MMC5, etc.). Again, as I've stated before, I am completely aware that NESmaker doesn't usually support expansion soundchips by default. However, I've heard that if you can dig into the project code deep enough, I could be able to change the format because technically, NESmaker can do anything that the NES/Famicom can do; and with that statement, I should be able to either figure out a way to put the FDS soundchip onto a cartridge format. Here's where I found that comment from one of the official NESmaker devs:
View: https://www.youtube.com/watch?v=Qt3Gd9pTcbE
(scroll down to Triss's comment specifically).

The only reason why I even talk about the FDS FM soundchip is because I really do not want to have to completely rewrite my game's soundtrack that I spent forever working on just in order for it to be compatible with the International NES (not just Famicom).
 

TakuikaNinja

Active member
Welp TakuikaNinja, you are right after all. The cartridge is much more superior in technical and storage terms, yet the real challenge for me is just putting the FDS soundchip onto a Famicom cartridge (just like with the VRC6/7, N163, 5B, MMC5, etc.). Again, as I've stated before, I am completely aware that NESmaker doesn't usually support expansion soundchips by default. However, I've heard that if you can dig into the project code deep enough, I could be able to change the format because technically, NESmaker can do anything that the NES/Famicom can do; and with that statement, I should be able to either figure out a way to put the FDS soundchip onto a cartridge format. Here's where I found that comment from one of the official NESmaker devs:
View: https://www.youtube.com/watch?v=Qt3Gd9pTcbE
(scroll down to Triss's comment specifically).
FDS is a completely different hardware architecture; you can't just "put the soundchip on the cartridge". The wavetable audio generation is embedded in the 2C33 chip - a general purpose ASIC which handles the FDS's RAM adapter. They are no longer being manufactured. You'd also inevitably have to nag some emulator devs if you want digital versions to work with the setup you're suggesting.
Note that using any other expansion soundchips would require a complete mapper overhaul. I've already talked about the obstacles incurred by that in another thread. To summarise that post, heavily modifying the codebase like this takes away the usefulness of NESmaker itself. (Hence my mentioning of creating your own environment)
Regarding the soundtrack: Expansion soundchips are not supported by GGSound (NESmaker's sound driver of choice) nor any other "FTM conversion" sound driver. If you're desparate to keep the wavetable, port the mapper to N163 and try replacing the sound driver with an MML-based one. (Assuming you know how to write MML) Otherwise, you'll have to rework it around the vanilla 2A03.
I apologise if this sounds condescending, but I'm trying to speak from what I've learnt about NES development. I've seen many naive NESmaker users attempt to do some ridiculous things with the software and end up going nowhere.
 

SumisuBushido

New member
TakuikaNinja, after reading what you've said (and outside posts as well) regarding all this, I've come to the point where I should switch to the MMC5 mapper and soundchip.

I know that the Nintendo MMC5 was the "only" expansion soundchip that could be used internationally; and since it's composed of 2 extra pulse wave channels + an 8-bit PCM channel, it sound like a good tradeoff. For my game (which doesn't have a defined genre tbh), the 8-bit PCM of the MMC5 will be used for like the names of a move that the player would perform (sorta like in the Street Fighter series), and possibly one sound in the entire soundtrack. All of the other SFXs and songs will use DPCM to save a lil bit of memory.

Now regarding the mapper, I know that the mapper in an NESmaker project file can be changed (and I do know that it will take quite a bit of work to do). I would assume that by changing everything in the mapper to MMC5, it would also unlock the expansion audio that came with the chip (since allegedly, NESmaker can do "anything" that the NES/Famicom can do). Yet, as you've said, expansion soundchips aren't supported by GGSound (NESmaker's sound driver of choice) nor any other "FTM conversion" sound driver by default.

Look, I honestly don't mind dropping the FDS wavetable for the MMC5 mapper n' soundchip (since the MMC5's honestly better off for me in the long run anyways). I'm just asking if I'm gonna be able to utilize the expansion audio for the MMC5 (since the MMC5 was used in some international NES games (maybe not the audio)).



I really do apologize for sounding extremely dumb like a complete idiot, and I really hope I'm not pissing you off (because I really don't intend to piss off anyone). I'm just a complete newb to coding and internal stuff like this; and my only other experience with the NES was modifying graphics, a tiny bit of behavior mechanics, level design, and text in other existing NES games (plus that was like half a decade ago).

I know I shouldn't be focusing myself on more advanced stuff like this right away. It's just that I wanna be able to make a simple mapper change to the MMC5 (since that's the only expansion soundchip that Nintendo allowed overseas) and be able to use it of its full potential.

I hope that you can understand some of the stuff that I'm trying to explain; and if you have any questions, comments, replies, or anything regarding anything what I've said, feel free to reply here or in DMs.
Other than that, I'm gonna shut up about this here and start following the NESmaker tootorals. Have a nice day btw :)
 

TakuikaNinja

Active member
I'm not pissed off at all. I guess it's pretty hard to express nuanced tones via text. Everyone has to start somewhere, so don't worry too much about the way you sound.
It seems like MMC5 could be configured to work in a similar way to UNROM512 (mapper 30, the one NESmaker targets), except for the fact that CHR-ROM would have to be used instead of CHR-RAM. The PCM channel on the MMC5 isn't that different from the one on the 2A03 - it's just 8-bit instead of 7-bit. I would recommend sticking with DPCM for all of the samples just to make life easier. The expansion audio is nice, but it was only used sparingly in commercial games. International players didn't really miss out much.
Just to be clear - it's absolutely possible to have expansion audio on international consoles through mods. However, you should consider those who don't wish to, or can't, modify their console. If you don't care, forget that bit and go ham.
As I've already implied, changing the mapper is beyond the scope of NESmaker and therefore we can't offer much help or advice. You should get used to how NESmaker works before delving into that. On that note, enjoy the software!
 
Top Bottom