### Running libc_server Usage Example Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/libc_server/README.md Demonstrates the command-line usage for running libc_server. It shows how to specify arguments for libc_server, system configuration, and the target application. ```bash cd workdir ../libc_server -- ``` -------------------------------- ### Get SD Boot Instructions Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot/README.md After scanning the firmware, use this command to get specific instructions on how to flash the 'sdboot' component to your phone. ```bash ./fphelper flash.bin sdboot ``` -------------------------------- ### Variable Definition and Redefinition Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Demonstrates how to define and redefine variables, including capturing and reassigning all arguments. ```config $@0 = $@ $@ = $@ --rotate 3 ``` -------------------------------- ### Default Arguments for fpbin/fpmain.bin Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Specifies the initial arguments for the main FPDoom binary. These are the first non-empty lines in the config file. ```config --bright 50 --charge 2 ``` -------------------------------- ### Select Game for Building Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpbuild/README.md Specify the game to build by setting the GAME environment variable. Supported games include Duke Nukem 3D, Shadow Warrior, and Blood. ```bash GAME=duke3d ``` ```bash GAME=sw ``` ```bash GAME=blood ``` -------------------------------- ### Running FPDoom with spd_dump Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/README.md This command sequence is used to load and run FPDoom on a feature phone. Ensure the Doom resource file (e.g., doom1.wad) is in the working directory. ```bash $ ./spd_dump fdl nor_fdl1.bin 0x40004000 fdl fpdoom.bin ram $ cd workdir && ../libc_server -- --bright 50 --rotate 3 doom ``` -------------------------------- ### Compile Applications with SD Card Support Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot/README.md Ensure all applications intended to run from the SD card are compiled with the LIBC_SDIO=3 option. The default is LIBC_SDIO=0 for USB mode. ```makefile make LIBC_SDIO=3 ``` -------------------------------- ### Build Gnuboy Port Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/gnuboy/README.md Download sources and apply patches for the Gnuboy port. Follow standard build instructions afterward. ```bash make -f helper.make all patch ``` -------------------------------- ### Build sdboot Binary for Specific Chip Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot/README.md Compile the sdboot binary, specifying the chip type using the CHIP=N option. N can be 1 for SC6531E, 2 for SC6531DA, or 3 for SC6530. The chip-independent version (CHIP=0) is unfinished. ```makefile make CHIP=1 ``` -------------------------------- ### Scan Firmware for Boot Keys Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot/README.md Scan the dumped firmware to identify the phone's boot key and the keys required for booting from an SD card. This utility helps determine the correct key combinations. ```bash ./fphelper flash.bin scan ``` -------------------------------- ### Dump Phone Firmware Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot/README.md Use this command to dump the phone's firmware, specifying the flash memory size. The most common size is 4MB, but 16MB can be used if the size is unknown. ```bash ./spd_dump fdl nor_fdl1.bin 0x40004000 read_flash 0x80000003 0 16M flash.bin ``` -------------------------------- ### Doom Configuration Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines the configuration for the Doom game. ```config $doom = fpbin/fpdoom.bin $@ ``` -------------------------------- ### Backup MBR and Write Bootloader to SD Card Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/sdboot_t117/README.md This script backs up the original MBR, appends it to the bootloader, and writes the combined image to the SD card. Ensure the correct device path for your SD card reader is used. ```shell # the SD card reader device # for USB card readers, it is /dev/sdX # for internal laptop card readers, it might be /dev/mmcblkX dev=/dev/mmcblk0 # backup the original MBR sudo dd if=$dev bs=512 count=64 > mbr_orig.bin tmp=mbr_new.bin cp sdboot_t117.bin $tmp # copy the MBR partitions dd if=mbr_orig.bin of=$tmp seek=440 skip=440 bs=1 count=72 conv=notrunc # write the result to the SD card sudo dd if=$tmp of=$dev bs=512 ``` -------------------------------- ### Run FPDoom on UMS9117 Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/ums9117/README.md Execute FPDoom using the spreadtrum_flash tool with t117_fdl1.bin. Note the different FDL load addresses and the subsequent command to run libc_server within the workdir. ```bash ./spd_dump fdl t117_fdl1.bin 0x6200 fdl fpdoom.bin 0x801M ``` ```bash cd workdir && ../libc_server -- --bright 50 --rotate 3 doom ``` -------------------------------- ### Build Wolfenstein 3D Port Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/wolf3d/README.md Download sources and apply patches to build the Wolfenstein 3D port. Use the GAMEVER option to select the game version. ```bash $ make -f helper.make all patch ``` -------------------------------- ### Extract Pinmap and Keymap Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/ums9117/README.md Process the kernel dump using fphelper_t117 to extract pinmap.bin and keymap.bin. These files are required in the workdir. ```bash ./fphelper_t117 kernel.bin extract ``` -------------------------------- ### Menu Item Definition - Ports Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines menu items for various ports, specifying the name, path to the executable, and arguments. ```config |Doom 1| $doom --dir games/doom1 doom # -timedemo demo1 |Duke 3D| fpbin/fpduke3d.bin $@ --dir games/duke3d duke3d # -cachesize 1648 |Shadow Warrior| fpbin/fpsw.bin $@ --dir games/sw sw # -cachesize 1552 |Blood| fpbin/fpblood.bin $@ --dir games/blood blood # -cachesize 1648 |Wolfenstein 3D| fpbin/wolf3d.bin $@ --dir games/wolf3d wolf3d |Heretic| fpbin/chocolate-heretic.bin $@ --dir games/heretic heretic -iwad HERETIC1.WAD |Hexen| fpbin/chocolate-hexen.bin $@ --dir games/hexen hexen -iwad HEXEN.WAD |Retris| fpbin/retris.bin $@0 --dir games/retris retris ``` -------------------------------- ### Set Cache Size Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/chocolate-doom/README.md Use the -mb option to set the cache size in megabytes for Chocolate Doom. ```bash -mb N.NN ``` -------------------------------- ### NES Emulator Configuration Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines variables for NES emulator configurations, including different scaler and cropping options. ```config $nes_args = --dir games/nes infones $nes = fpbin/infones.bin $@ --scaler 49 $nes_args $nes2 = $nes --scanline_step 113 $nes_crop = fpbin/infones.bin $@ --scaler 149 $nes_args ``` -------------------------------- ### GameBoy Emulator Configuration Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines the configuration for the GameBoy emulator. ```config $gnuboy_args = --dir games/gameboy gnuboy $gnuboy = fpbin/gnuboy.bin $@ $gnuboy_args ``` -------------------------------- ### Specify Wad File Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/chocolate-doom/README.md Use the -iwad option to specify the wad file for Chocolate Doom. ```bash -iwad ``` -------------------------------- ### Snes9x Emulator Options Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/snes9x/README.md Command-line options for the Snes9x emulator. Use --crc to specify ROM CRC32 or --nocheck to skip ROM checksum verification. ```bash --crc 0x12345678 ``` ```bash --nocheck ``` -------------------------------- ### Dump Kernel Firmware Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/ums9117/README.md Use spd_dump to extract the kernel part of the firmware. Requires fdl1.bin and fdl2.bin from the firmware update file. ```bash ./spd_dump \ keep_charge 1 fdl fdl1.bin 0x6200 \ blk_size 0x1000 fdl fdl2.bin 0x801M \ read_flash 0x80000003 0 auto kernel.bin ``` -------------------------------- ### SNES Emulator Configurations Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines variables for SNES emulator configurations, including different scaler options and 16-bit support. ```config $snes_args = --dir games/snes snes9x --crc 0 --nocheck $snes_pal = fpbin/snes9x.bin $@ --scaler 49 $snes_args $snes = fpbin/snes9x.bin $@ --scaler 149 $snes_args $snes16_pal = fpbin/snes9x_16bit.bin $@ --scaler 49 $snes_args $snes16 = fpbin/snes9x_16bit.bin $@ --scaler 149 $snes_args ``` -------------------------------- ### Menu Item Definition - SNES Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines menu items for SNES games, using the pre-configured SNES emulator variables. ```config |SNES Example 1| $snes "Example 1.smc" |SNES Example 2| $snes16 "Example 2.smc" ``` -------------------------------- ### Menu Item Definition - NES Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines menu items for NES games, utilizing different NES emulator configurations. ```config |NES Example 1| $nes "Example 1.nes" |NES Example 2| $nes2 "Example 2.nes" |NES Example 3| $nes_crop "Example 3.nes" ``` -------------------------------- ### Menu Item Definition - GameBoy Source: https://github.com/ilyakurdyukov/fpdoom/blob/main/fpmenu/config.txt Defines menu items for GameBoy games, using the pre-configured GameBoy emulator variable. ```config |GB Example 1| $gnuboy "Example 1.gbc" ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.