Woodcutter Yosaku Family Basic 2 Demo by Masando Vision _____________________ ROMhack version by Garrett Gilchrist (TygerbugGarrett) On Feb 12 2022, programmer "Masando Vision" published a video on Youtube, featuring a demo which attempts to remake SNK's 1979 arcade game Yosaku on the Nintendo Entertainment System / Famicom using Family Basic V2. Family Basic was only available in Japan, and allowed for minigames to be programmed in Basic, within limited RAM space and using default graphics. Family Basic V3 (1985) has more RAM but is still limited. https://www.youtube.com/watch?v=EU-MmxaVdJE The results resemble the familiar Yosaku game, although you do not actually lose life if hit by enemies, so you're basically on the honor system. The woodcutter must chop down both sides of two trees while avoiding snakes, charging boars, and the droppings of birds. He can jump with A and swing the ax with B. This is a standalone ROM prepared as an IPS patch of Hudson's Family BASIC 3 (1985) for the Nintendo Family Computer / Nintendo Entertainment System. _____________________ Masando's notes, auto-translated: Can you make woodcutter Yosaku with Family Basic? I couldn't put in all the elements, but it feels like it. Regarding the collision detection and damage processing, I may make it in Family Basic V3, which has enough space. PROGRESS: ・Implemented ono (laser) and hun (laser). However, there is no attack with Ax and hit judgment of Hun. ・You can now use the B button to swing the ax to cut trees. If you cut left and right 7 times, the tree will fall. ・If you knock down two trees, a hei hei ho will sound and the stage will be cleared. ・ Yosaku can now jump with the A button. ・ Added collision detection for Yosaku (Mario), wild boar (turtle), and viper (crab). However, even if it hits, it just makes a sound. TO DO: (If you want to do it, use V3) ・ Attack processing with ax ・ Numbness treatment with feces ・ Make branches (laser) rain when cutting trees ・ Score? ・ Remaining lives? ・ Run over processing when dead, ascension processing ・ Color change at 4 cut ends _________ The video shows the source code of this demo, and it has been re-transcribed from this by Garrett Gilchrist, first as a text file then as an NES ROM with new hacked graphics, replacing the generic Family Basic graphics. The boar previously appeared in his Thief and the Cobbler hack, while the snake and bird are inspired by "Wonder Rabbit" and "Captain Comic." The grassy backgrounds are based on Kemco's "The Bugs Bunny Birthday Blowout," while the trees are more custom-made. New background tiles replace Japanese text in the ROM. "Mario/Yosaku" now resembles the player from "Toukaidou Gojuusan Tsugi." The source code has not been tested with GBASIC but should work. It would be possible to revert to the original Family BASIC graphics, although you'd also have to revert the colors and background. A background nametable is provided for this purpose, to be added at 7BE0 in the ROM as usual. _________ Yosaku (与作) is an action arcade game developed by Shin Nihon Kikaku in 1979. One of the first SNK games, it is extremely rare today and a ROM has not been dumped to the internet. "Yosaku" (与作) is a 1978 song by Saburō Kitajima. It is an enka song about the labors of a woodcutter named Yosaku, which means something like gifted work or participation work. A brief quote from the song was licensed for the arcade game, and is retained here (hei hei ho). The player is a woodcutter who cuts down trees while being attacked by animals. To avoid the dangers, the player must hide behind trees or attack animals with the ax. The dangers are: a boar that charges by, snakes that rise from the ground, branches that fall from the trees and birds that fly above and launch projectiles. In 1981 a simpler, unauthorized conversion named Kikori no Yosaku (きこりの与作) was made by Epoch Co. for Cassete Vision. In 1991 a clone of the Cassette Vision version was released for Sharp's X68000 home computer. Both versions did not receive copyright permissions from SNK. More recently, a plug and play version has been released. Sancho's Forest for the Atari 2600 VCS (1983) is also based on Yosaku, incorporating elements of Activision's Pitfall! In 2000 a remake of Yosaku was included on The King of Fighters: Battle de Paradise for Neo Geo Pocket Color as a secret mini-game. The game was accessible by inserting the cartridge into a monochrome Neo Geo Pocket. __________________________ HACKING AND REPRODUCING THE FAMILY BASIC CODE: Masando's Family Basic V2 code is displayed onscreen in his video using the LIST function. In his Tetris demo, the code also played as audio when loading, but unfortunately that was not true here. I initially used OCR recognition on the displayed text, but results were poor. It is possible that I would have gotten better results from: https://ocr.gamingalexandria.org/ I mostly retyped the code by hand, compiling and testing it several times to remove errors. NinTaco has a lot of features to copy/paste, load/save and autotype Family BASIC code, but the results weren't working, possibly due to text format. NesTopia has an autotype feature (hitting F12) which worked a lot better but has no debug features. It has a tape record output, saved once I'd exited the program, as a TP file under "Saves." This is using the Family Basic SAVE"FILENAME" command in Nestopia. I then loaded this into VirtuaNES, renamed as a VTP file, using the Family Basic LOAD command. The Nestopia .tp file format is a headerless unsigned 8-bit PCM wave file with a 32000 Hz sampling rate. (The VirtuaNES format is identical.) You can do an "Import Raw Data" in Audacity (https://i.imgur.com/cHQGg.png) and save it as a wav file. VirtuaNES has a memory viewer but no output for it. However, a VirtuaNES save state can be converted to NES by a program called STTONES. "You need to have a Family Basic V3.0 ROM renamed to FAMIBE_V3.nes and STTONES in the same folder. Then run FAMIBE_V3 in VirtuaNES, load the code, run the code, and BREAK out of the code (using the End key). Then create a save state in VirtuaNES. It creates a FAMIBE_V3.st0 file that you can drop on STTONES." The FAMIBAS_V3.nes ROM I was using doesn't say it has a battery-backed WRAM segment (the part that stores the game). Therefore VirtuaNES doesn't have the 0x2000 extra bytes that STTONES wants: You need to set 0x6 from 01 to 03 first. Alternately, when you've got a Save State, open up your hex editor. There should be program data in the VirtuaNES Save State at about 0A14. Copy all of that data to about 2A14. Some FFs at the beginning will have to become 00s. Now I run STTONES and have a more or less working file, which I used for further hacking. Alternately we can use the Python remake STTONED.PY : Usage: sttoned.py path/to/save_state path/to/family_basic.nes https://gist.github.com/einstein95/f33906cd4ee0c6e1abae0b4141e08ea9 The background graphic was recreated in Shiru's NES Screen Tool, and pasted into the ROM at 7BE0. Note that color palettes were also changed elsewhere. I then decided to use original graphics instead. These were created in Photoshop and then copied into the ROM using YY-CHR. Shiru's NES Screen Tool was again used to redesign the background. The original background and graphics could be patched back in if you're a purist. New code was hacked in using a hex editor and/or the FCEUX emulator hex editor.