pinky
An NES emulator written in Rust
File Explorer
Download Latest Version (.zip)- bits.rs
- indexing.rs
- lib.rs
- memory.rs
- misc.rs
- wrapping.rs
- Cargo.toml
- 6502_functional_test.asm
- bcd_verify.asm
- TTL6502.asm
- 6502_functional_test.bin
- bcd_verify.bin
- TTL6502.bin
- generate_decoder.rb
- lib.rs
- mos6502_opcodes.dat
- virtual_mos6502.rs
- virtual_mos6502_decoder.rs
- lib.rs
- Cargo.toml
- FBX-Final.pal
- dma.rs
- filter.rs
- float_native.rs
- float_softfloat.rs
- generate_ppu.rb
- generic_mapper.rs
- lib.rs
- mapper_axrom.rs
- mapper_mmc1.rs
- mapper_unrom512.rs
- mapper_uxrom.rs
- mappers.rs
- memory_map.rs
- orphan.rs
- rom.rs
- rp2c02.rs
- rp2c02_scheduler.rs
- rp2c02_scheduling.dat
- testsuite.rs
- virtual_apu.rs
- virtual_nes.rs
- Cargo.toml
- apu_shell.inc
- ascii.chr
- build_rom.s
- console.s
- crc.s
- delay.s
- devcart.bin
- macros.inc
- neshw.inc
- ppu.s
- print.s
- shell.inc
- shell.s
- shell_misc.s
- sync_apu.s
- sync_dmc.s
- test_main_chans.s
- testing.s
- text_out.s
- 1-len_ctr.s
- 2-len_table.s
- 3-irq_flag.s
- 4-jitter.s
- 5-len_timing.s
- 6-irq_flag_timing.s
- 7-dmc_basics.s
- 8-dmc_rates.s
- nes.cfg
- 1-len_ctr.nes
- 2-len_table.nes
- 3-irq_flag.nes
- 4-jitter.nes
- 5-len_timing.nes
- 6-irq_flag_timing.nes
- 7-dmc_basics.nes
- 8-dmc_rates.nes
- readme.txt
- 01.len_ctr.asm
- 02.len_table.asm
- 03.irq_flag.asm
- 04.clock_jitter.asm
- 05.len_timing_mode0.asm
- 06.len_timing_mode1.asm
- 07.irq_flag_timing.asm
- 08.irq_timing.asm
- 09.reset_timing.asm
- 10.len_halt_timing.asm
- 11.len_reload_timing.asm
- apu_util.asm
- prefix_apu.asm
- 01.len_ctr.nes
- 02.len_table.nes
- 03.irq_flag.nes
- 04.clock_jitter.nes
- 05.len_timing_mode0.nes
- 06.len_timing_mode1.nes
- 07.irq_flag_timing.nes
- 08.irq_timing.nes
- 09.reset_timing.nes
- 10.len_halt_timing.nes
- 11.len_reload_timing.nes
- readme.txt
- tests.txt
- palette_ram.asm
- power_up_palette.asm
- prefix_ppu.asm
- sprite_ram.asm
- vbl_clear_time.asm
- vram_access.asm
- palette_ram.nes
- power_up_palette.nes
- readme.txt
- sprite_ram.nes
- vbl_clear_time.nes
- vram_access.nes
- 1.Branch_Basics.a
- 2.Backward_Branch.a
- 3.Forward_Branch.a
- console.a
- debug.a
- delays.a
- ppu_util.a
- prefix.a
- runtime_rom.a
- runtime_rom_common.a
- validation.a
- 1.Branch_Basics.nes
- 2.Backward_Branch.nes
- 3.Forward_Branch.nes
- readme.txt
- cli_latency.a
- console.a
- debug.a
- delays.a
- ppu_util.a
- runtime_rom.a
- runtime_rom_common.a
- validation.a
- cli_latency.nes
- readme.txt
- console.a
- cpu_timing_test.asm
- debug.a
- delays.a
- ppu_util.a
- runtime_rom.a
- runtime_rom_common.a
- cpu_timing_test.nes
- readme.txt
- ascii.chr
- common.inc
- console.s
- crc.s
- delay.s
- macros.inc
- nes.inc
- print.s
- serial.s
- shell.inc
- sync_dmc.s
- testing.s
- dma_2007_read.s
- dma_2007_write.s
- dma_4016_read.s
- double_2007_read.s
- nes.cfg
- read_write_2007.s
- dma_2007_read.nes
- dma_2007_write.nes
- dma_4016_read.nes
- double_2007_read.nes
- read_write_2007.nes
- readme.txt
- index.txt
- bcd.s
- beepcode.s
- boardletter.s
- drivers.s
- loadchr.s
- main.s
- mapper_detect.s
- mmc3drivers.s
- mmcdrivers.s
- morse.h
- nes.h
- pads.s
- ppuclear.s
- ram.h
- wram.s
- wrongbanks.s
- font8x5.png
- cvt8x5.py
- make_roms.py
- pilbmp2nes.py
- CHANGES.txt
- hdbm-master.nes
- makefile
- nes.ini
- README.txt
- zip.in
- 32k.sav
- 8k.sav
- M0_P32K_C8K_V.nes
- M10_P128K_C64K_S8K.nes
- M10_P128K_C64K_W8K.nes
- M118_P128K_C64K.nes
- M180_P128K_H.nes
- M1_P128K.nes
- M1_P128K_C128K.nes
- M1_P128K_C128K_S8K.nes
- M1_P128K_C128K_W8K.nes
- M1_P128K_C32K.nes
- M1_P128K_C32K_S8K.nes
- M1_P128K_C32K_W8K.nes
- M1_P512K_S32K.nes
- M1_P512K_S8K.nes
- M28_P512K.nes
- M2_P128K_V.nes
- M34_P128K_H.nes
- M3_P32K_C32K_H.nes
- M4_P128K.nes
- M4_P256K_C256K.nes
- M66_P64K_C16K_V.nes
- M69_P128K_C64K_S8K.nes
- M69_P128K_C64K_W8K.nes
- M78.3_P128K_C64K.nes
- M7_P128K.nes
- M9_P128K_C64K.nes
- ascii.chr
- bootloader.bin
- build_rom.s
- console.s
- crc.s
- delay.s
- macros.inc
- neshw.inc
- ppu.s
- print.s
- shell.inc
- shell.s
- shell_misc.s
- testing.s
- text_out.s
- 01-abs_x_wrap.s
- 02-branch_wrap.s
- 03-dummy_reads.s
- 04-dummy_reads_apu.s
- nes.cfg
- readme.txt
- 01-abs_x_wrap.nes
- 02-branch_wrap.nes
- 03-dummy_reads.nes
- 04-dummy_reads_apu.nes
- readme.txt
- ascii.chr
- bootloader.bin
- build_rom.s
- console.s
- crc.s
- crc_fast.s
- delay.s
- instr_test.inc
- instr_test_end.s
- macros.inc
- neshw.inc
- ppu.s
- print.s
- shell.inc
- shell.s
- shell_misc.s
- testing.s
- text_out.s
- 01-basics.s
- 02-implied.s
- 03-immediate.s
- 04-zero_page.s
- 05-zp_xy.s
- 06-absolute.s
- 07-abs_xy.s
- 08-ind_x.s
- 09-ind_y.s
- 10-branches.s
- 11-stack.s
- 12-jmp_jsr.s
- 13-rts.s
- 14-rti.s
- 15-brk.s
- 16-special.s
- nes.cfg
- readme.txt
- 01-basics.nes
- 02-implied.nes
- 03-immediate.nes
- 04-zero_page.nes
- 05-zp_xy.nes
- 06-absolute.nes
- 07-abs_xy.nes
- 08-ind_x.nes
- 09-ind_y.nes
- 10-branches.nes
- 11-stack.nes
- 12-jmp_jsr.nes
- 13-rts.nes
- 14-rti.nes
- 15-brk.nes
- 16-special.nes
- readme.txt
- 1.Clocking.asm
- 2.Details.asm
- 3.A12_clocking.asm
- 4.Scanline_timing.asm
- 5.MMC3_rev_A.asm
- 6.MMC3_rev_B.asm
- console.asm
- debug.asm
- delays.asm
- ppu_sync.asm
- ppu_util.asm
- prefix_cpu.asm
- prefix_mmc3.asm
- prefix_mmc3_validation.asm
- prefix_swap.asm
- runtime_swapcart.asm
- validation.asm
- 1.Clocking.nes
- 2.Details.nes
- 3.A12_clocking.nes
- 4.Scanline_timing.nes
- 5.MMC3_rev_A.nes
- 6.MMC3_rev_B.nes
- readme.txt
- ascii.chr
- build_rom.s
- console.s
- crc.s
- delay.s
- devcart.bin
- macros.inc
- neshw.inc
- ppu.s
- print.s
- shell.inc
- shell.s
- testing.s
- text_out.s
- nes.cfg
- oam_read.s
- readme.txt
- oam_read.nes
- readme.txt
- ascii.chr
- bin2dec_mini16.s
- bootloader.bin
- build_rom.s
- code_timer.s
- console.s
- crc.s
- delay.s
- dma_timing.inc
- dmc_timer.s
- macros.inc
- neshw.inc
- ppu.s
- print.s
- shell.inc
- shell.s
- shell_misc.s
- sync_dmc.s
- testing.s
- text_out.s
- nes.cfg
- sprdma_and_dmc_dma.s
- readme.txt
- sprdma_and_dmc_dma.nes
- console.a
- debug.a
- delays.a
- ppu_sync.a
- ppu_util.a
- prefix_ppu.a
- runtime_rom.a
- runtime_rom_common.a
- validation.a
- 01.basics.asm
- 02.alignment.asm
- 03.corners.asm
- 04.flip.asm
- 05.left_clip.asm
- 06.right_edge.asm
- 07.screen_bottom.asm
- 08.double_height.asm
- 09.timing_basics.asm
- 10.timing_order.asm
- 11.edge_timing.asm
- prefix_sprite_hit.a
- 01.basics.nes
- 02.alignment.nes
- 03.corners.nes
- 04.flip.nes
- 05.left_clip.nes
- 06.right_edge.nes
- 07.screen_bottom.nes
- 08.double_height.nes
- 09.timing_basics.nes
- 10.timing_order.nes
- 11.edge_timing.nes
- readme.txt
- sprite_hit_timing.asm
- sprite_hit_timing.nes
- 1.Basics.a
- 2.Details.a
- 3.Timing.a
- 4.Obscure.a
- 5.Emulator.a
- console.a
- debug.a
- delays.a
- ppu_sync.a
- ppu_util.a
- prefix.a
- prefix_ppu.a
- runtime_rom.a
- runtime_rom_common.a
- validation.a
- 1.Basics.nes
- 2.Details.nes
- 3.Timing.nes
- 4.Obscure.nes
- 5.Emulator.nes
- readme.txt
- chr.bin
- console.a
- debug.a
- delays.a
- ppu_sync.a
- ppu_util.a
- prefix_ppu.a
- runtime_rom.a
- runtime_rom_common.a
- validation.a
- 1.frame_basics.a
- 2.vbl_timing.a
- 3.even_odd_frames.a
- 4.vbl_clear_timing.a
- 5.nmi_suppression.a
- 6.nmi_disable.a
- 7.nmi_timing.a
- 1.frame_basics.nes
- 2.vbl_timing.nes
- 3.even_odd_frames.nes
- 4.vbl_clear_timing.nes
- 5.nmi_suppression.nes
- 6.nmi_disable.nes
- 7.nmi_timing.nes
- readme.txt
- generate.rb
- harness.rs
- lib.rs
- tests.rs
- 1-len_ctr.json
- 2-len_table.json
- 3-irq_flag.json
- 4-jitter.json
- 5-len_timing.json
- 6-irq_flag_timing.json
- 7-dmc_basics.json
- 8-dmc_rates.json
- 01.len_ctr.json
- 02.len_table.json
- 03.irq_flag.json
- 04.clock_jitter.json
- 05.len_timing_mode0.json
- 06.len_timing_mode1.json
- 07.irq_flag_timing.json
- palette_ram.json
- vbl_clear_time.json
- vram_access.json
- 1.Branch_Basics.json
- 2.Backward_Branch.json
- 3.Forward_Branch.json
- read_write_2007.json
- M1_P128K_C128K_W8K.json
- 01-abs_x_wrap.json
- 02-branch_wrap.json
- 03-dummy_reads.json
- oam_read.json
- 01.basics.json
- 02.alignment.json
- 03.corners.json
- 04.flip.json
- 05.left_clip.json
- 06.right_edge.json
- 07.screen_bottom.json
- 08.double_height.json
- 09.timing_basics.json
- 10.timing_order.json
- 11.edge_timing.json
- sprite_hit_timing.json
- 1.frame_basics.json
- 2.vbl_timing.json
- 3.even_odd_frames.json
- 4.vbl_clear_timing.json
- 5.nmi_suppression.json
- 6.nmi_disable.json
- 7.nmi_timing.json
- Cargo.toml
- frame_limiter.rs
- main.rs
- renderer.rs
- user_interface.rs
- Cargo.toml
- lib.rs
- Cargo.toml
- main.rs
- normalize.css
- alter_ego.nes
- cheril_the_goddess.nes
- dushlan.nes
- index.json
- lawn_mower.nes
- mad_wizard.nes
- micro_knight_4_v1_02.nes
- nebs_n_debs_2_15_2017.nes
- owlia.nes
- streemerz_v02.nes
- super_painter_1_0.nes
- tiger_jenny.nes
- yun.nes
- index.html
- Cargo.toml
- README.md
- Web.toml
- common.js
- generate_current_address_during_background_rendering.js
- generate_current_address_during_sprite_rendering.js
- generate_current_address_during_sprite_rendering_without_sprites.js
- generate_current_address_when_not_rendering.js
- generate_vram_access_after_scrolling.js
- generate_vram_access_during_background_rendering.js
- generate_vram_access_during_sprite_rendering.js
- generate_vram_access_during_sprite_rendering_double_height.js
- generate_vram_access_during_sprite_rendering_out_of_range.js
- generate_vram_access_during_sprite_rendering_without_sprites.js
- phantom2c02
- mod.rs
- test_current_address_during_background_rendering.rs
- test_current_address_during_sprite_rendering.rs
- test_current_address_during_sprite_rendering_without_sprites.rs
- test_current_address_when_not_rendering.rs
- test_vram_access_after_scrolling.rs
- test_vram_access_during_background_rendering.rs
- test_vram_access_during_sprite_rendering.rs
- test_vram_access_during_sprite_rendering_double_height.rs
- test_vram_access_during_sprite_rendering_without_sprites.rs
- test_vram_access_sprite_rendering_out_of_range.rs
- lib.rs
- build.rs
- Cargo.toml
- .gitignore
- .gitmodules
- .travis.yml
- Cargo.toml
- LICENSE-APACHE.txt
- LICENSE-MIT.txt
- README.md
# Installation Guide
1. Get the code
git clone https://github.com/koute/pinky
Downloads the entire project code from GitHub to your computer.
cd pinky
Moves into the project folder you just downloaded.
2. Rust
Medium RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cargo build
Compiles the Rust project.
If cargo build finishes without errors, it worked. The executable is created under target/.
Pulled directly from this repo's README.
3. Make
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
β οΈ This is a large repository, so this method may point to an internal sub-package rather than the actual core product. Check the full README as well.
cd nes-testsuite/roms/holy_diver_batman/source
This project's files live in a subfolder, so move into it first.
make
Compiles the code based on the generated build configuration to produce an executable.
If it finishes without errors, it worked. Try running the generated executable directly.
// repository documentation
Was this content helpful?
(0 ratings)
