profile
viewpoint
Amjad Alsharafi Amjad50 Kuala Lumpur, Malaysia Pogramming and Security enthusiast

Amjad50/plastic 4

NES emulator in rust

alisumait/tryte 0

Using face & fashion detection API for clothes recommendation

Amjad50/airspace-jekyll 0

A port of the Airspace theme by ThemeFisher to Jekyll.

push eventAmjad50/plastic

Amjad Alsharafi

commit sha bd5a170769b2a36c81581da2a3985e853f2d18f1

README: added license badge not needed, but just for looks

view details

push time in 12 hours

startedyeyintminthuhtut/Awesome-Red-Teaming

started time in 12 hours

startedyeyintminthuhtut/Awesome-Red-Teaming

started time in 12 hours

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 465c783e8ae672ebee5d10bd010114144072b1a3

PPU: some bug fixes to pass tests - color overflowing `0x3F` fix

view details

Amjad Alsharafi

commit sha 29ef6d3277e75ff57509113960aa0ad383788bed

PPU: added sprite_overflow tests

view details

push time in 21 hours

push eventAmjad50/plastic

Amjad Alsharafi

commit sha ea3ac6ba23785c29c4a4f2cbdc81be81b87c04bc

APU: added IRQ and frame_interrupt_flag support

view details

Amjad Alsharafi

commit sha a78c09f98420db3f771c98e07c36b83de525c66e

APU: some bug fixes for APU length counter specs

view details

push time in a day

push eventAmjad50/plastic

Amjad Alsharafi

commit sha d5bca109932ff6ef2ccad91e19087e9325f9bc8f

README: updated UI and control information

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 03c28075d184b1fcc4bd33b5567d4f3f7b01d8ec

README: updated UI and control information

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 745798531e50f1b5c258545bbacc464b32062619

README: updated UI and control information

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha baf4b2bba13f4e7b7c65b60174e36af7d46f5d29

Codecov & GithubActions: fixed renaming ui packages in build configs

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 36e3b2cd8725bf34506367fca22eb92b3c485c14

NES_UI: changed packages names and title for GUI UIs to Plastic

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 5cc5222592c5421b6c4efd5e1cae380d6ae70b58

NES_TUI: used crossterm backend to support windows - was using termion, which is Unix only

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 40d9caf06aaf802186ff13e8da6a205cdac9c4e1

Codecov: added ui modules to be excluded

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 232b4bfc0ca8ba44a0a55ff81ec32b17ee27a826

GithubActions: added libudev for `gilrs` library

view details

push time in 2 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 04ee133e3500be1d5b3a9e4d3d8b169d626622ef

NES_TUI: added gamepad controlling with `Gilrs` - now controlling with TUI is amazing - note: `gilrs` gets the events of gamepad from unix drivers directly, which means it can catch events even if the terminal is not focused, this is not ideal and need to be fixed, but for now, have fun

view details

push time in 2 days

startedAce4896/typetest

started time in 2 days

startedvishanand/BuckEmu-SMS

started time in 6 days

PR opened fdehau/tui-rs

feat: added type Block in canvas markers

this allows for clearer colors than using Dot, especially when decreasing the size of the terminal font in order to increase the resolution of the canvas

+17 -10

0 comment

2 changed files

pr created time in 7 days

push eventAmjad50/tui-rs

Amjad Alsharafi

commit sha 594e31d91b3e4f8b07a64f921f5f387056fb88f7

feat: added type Block in canvas markers this allows for clearer colors than using Dot, especially when decreasing the size of the terminal font in order to increase the resolution of the canvas

view details

push time in 7 days

fork Amjad50/tui-rs

Build terminal user interfaces and dashboards using Rust

fork in 7 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha c2c99a96685e8a6e647d5e631ee407398816ce83

GithubActions: updated apt-get packages to install (gtk dependencies)

view details

push time in 7 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 1fc7d332b8102b7731432e4a9dfd8fae6e90e74c

Cargo.toml: forgot to commit "nes_gtk" in the workspace

view details

Amjad Alsharafi

commit sha 7b5dc79d8fd2835df894ae1d79f083696a9b1fcc

NES_TUI: added a TUI for this emulator - this is just for fun, the graphics are working (and sounds bcz they are in the background), but input are not working - I think input is slow from the terminal, but the most annoying problem is that sometimes, the buttons get pressed and released, because the loop that is reading the input from the terminal sometimes does not read a key even though it is still held by the user

view details

push time in 7 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 988a6a0a9bffcce767eaeb2521e386963486626c

GithubActions: added UI packages to exclude them from tarpaulin not sure why, but they do not compile in tarpaulin

view details

push time in 8 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 46f1d6c5369eb811aaa6eb824dada7a2dc6a0a8e

NES_UI: package as a base for UI(plan to use more than one ui) - renamed 'nes_test' to 'nes_sfml'

view details

Amjad Alsharafi

commit sha 781c2595ccc049eb4d7bf29b5faa632b81772da8

NES_GTK: added a new UI provider (GTK) - the reason for choosing GTK even though the UI is a bit slow (even though I set it to 120 FPS update) is to be able to use menues and buttons easily, which would enable to use a debugger or some other neat stuff

view details

push time in 8 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 6d75e47456e72fdc2b53e529d2a92bb582a44e8a

Mapper: bug fix mapper1 power-up state 4th bit

view details

Amjad Alsharafi

commit sha 55e718c81f680331ac14b34bcb994108db725b14

NES_test: separated UI and emulation into two threads - this might be better for performance, but more changes are needed

view details

Amjad Alsharafi

commit sha 7ec336cb21adc1b64720cc0a74f6ba3d0959d4a4

Display: added a handler closure to handle `Color` conversion to raw - this is because later I'll be adding GTK, which has different positions for the Color bits

view details

push time in 9 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha ad8d71a35eb53bb495b5e8a15f017efb4803cdea

Cargo.lock: adding nes_tester for cpu6502 as a dependency - forgot to add it in the main commit c05b13a86460c9f8320576d7a0595afb95087cc6

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 609682c7d45f82a6a668cd7a73e2530f594a8ab0

Mapper: implemented mapper7

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 003430a9de514b23b1df84385cae95eb26132f39

Mapper: implemented mapper9

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 73ee67011a223f2fefa0b189a7a4ebdb5eb1a43e

Mapper: implemented mapper9

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 5913c85d0e98da193b5648b3f78b26e7b05e93e0

Nes_test: resizable window

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha f7d23e9819b785f68df6b7499cd6230b1cdffb1f

README: added unofficial instructions description to the cpu

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 2a40083de51d87a75107ab19f22df133c6edf07a

nes_tester: added the APU in the tester - for future tests that include the APU

view details

Amjad Alsharafi

commit sha c05b13a86460c9f8320576d7a0595afb95087cc6

CPU: added unofficial instructions and timing tests - the timing test actually needs the APU, thats why it was added to `nes_tester` on the previous commit

view details

Amjad Alsharafi

commit sha 57402ff000065ba27e26da66363e8c658e48ec45

PPU: marked `ppu_vbl_nmi_test_07_nmi_on_timing` as failing

view details

push time in 14 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 6bff7830de88a1ede54f8ca6060d71ab9199a240

CPU: bug fix not wrapping around on `indirectX`, `indirectY` addressing

view details

Amjad Alsharafi

commit sha aa68cc5711877d008e253571b91f7ef0c271aeee

CPU: fixed timing of ASL and refactored STA timing calculation

view details

Amjad Alsharafi

commit sha 96e7a538e9ad3f31654a96308cb464927f8dbdd8

CPU: better handling of invalid opcode errors - no need for strings

view details

Amjad Alsharafi

commit sha 4ba4a371880fd0462de1296666407281fcad1db2

CPU: refactored `Instruction::from_byte` to use giant switch - switch is good since the compiler is using jump table, and because there are some bytes that do not have value, but later when we implement unofficial instructions it will be filled, then maybe we can convert it to an array

view details

Amjad Alsharafi

commit sha 963afc05b8cf314ac8ff01dbd94b1bf53da4d450

CPU: implemented all unofficial instructions (not timing accurate) - fully working CPU with all instructions (tests will be committed later) - all byte values map to a **valid** instruction

view details

Amjad Alsharafi

commit sha 4eee4b87cdaab4182f8a13d193d0b63bcd76d9b1

Cartridge: better handling for `is_chr_ram` flag

view details

Amjad Alsharafi

commit sha fd9c36ef42d3390b5fa4838015692229ae2a0ff3

CPU: fixed timing for unofficial instructions

view details

Amjad Alsharafi

commit sha faf2608b5f5178591512a6afe5834a1d23d92012

CPU: used array to store all instructions opcodes and addressing modes - even though that the switch is often optimized and can convert to an array, I feel this is better

view details

push time in 15 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha e0f7c297f7f41b08c5fa7cc5470d8f4322892dda

README: better readme documentation

view details

push time in 15 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 489daa5d74b6213c534383cb2199fae4cf5d2840

APU: `APUChannelPlayer` removed warnings

view details

push time in 16 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 60ddd40e30a7b5540833030e16bdc324ab27b45b

Cartridge: some refactoring, renamed `unused` variables

view details

Amjad Alsharafi

commit sha b054ec9a8ae287385fc2d7a58759e7c809440348

Mapper: bug fix, mapper1 power-up state - this is due that Metriod was not working, this fixed it

view details

push time in 16 days

startedalphadatagamma/Streamlit-Resume-App

started time in 16 days

startednushackers/notes-to-cs-freshmen-from-the-future

started time in 16 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 7fe23617451f3662ce3887772dd308d16854c3d3

Mapper: `contain_sram` flag in INES header does not mean PRG RAM - I think it means that there is battery or a way to save the ram to tell the emulators that the file should be saved separately and retrieved later on the next run of the game

view details

Amjad Alsharafi

commit sha 4beb759baa5978a1d63c745a5fa7bc082faacba4

Cartridge: save and load SRAM data file - when the game runs if it has `contain_sram` flag it will try to load save file from `$filename.nes.sav` - when exiting the game, if it has `contain_sram` flag it will try to save the SRAM data into `$filename.nes.sav`

view details

push time in 16 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha c41a1c355808b5aa1f5967bfe258be9593e3c6dd

APU: added the Triangle channel

view details

push time in 17 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 12a74a7097a2d7d5d543da2d287416e5ccb3d7a5

Mapper: added default implementation for `Mapper` methods - because they are just copied across multiple Mappers letter by letter

view details

push time in 18 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 6b7ee8825abb9ec84cb726901a9fd3b4371870e1

Cartridge: added support for SRAM in the mapper itself - as some mappers have some control over the SRAM (PPU RAM) functionality

view details

Amjad Alsharafi

commit sha b772901750bbed4e3446e70faf32add15e05c489

Mapper: used enum `MappingResult` for `map_read/write` - also fixed that some games does not provide `contain_sram` flag in INES, but require PRG ram to be present, maybe its a different thing??

view details

push time in 18 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha f42af806ad8dac3c204f82abd3a797ba5741bcea

nes_tester: created a package for unit testing (headless)

view details

Amjad Alsharafi

commit sha 82ca74560fe6a63c07edd16aa9118b095a8a8ca5

Mapper: added MMC3 tests for IRQ functionality not all pass though... - there is one of them still not passing, but the general functionality is working ok

view details

push time in 19 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 3a11b8718ab11de4a2ff124b023c3ff7991b8377

Mapper: fixes of the specific details on how Mapper004 works - Mapper004 use `Address12` from the `PPU`, and in hardware that is connected all the time, and it will react to it on the rising edge (changes from low(0) to high(1)) - Before, I was getting the address data only from the reads to the Mapper, but that is not correct and it should be notified for any change that occurs to the `PPU`'s `Address12`, but now I'm not notifying the Mapper for every change, but doing the necessary to pass the tests, which will be pushed later

view details

push time in 19 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha fffda06f8198b84c345eef6e7349c8f24ca72ab9

Moved color_test rom and other roms and not included it in git

view details

Amjad Alsharafi

commit sha dac4b30b0806bd803ed8c5c77a5d4cf3862c745d

PPU: documentation and refactoring

view details

push time in 20 days

startedByron/git-oxide

started time in 20 days

startedDhghomon/easy_rust

started time in 21 days

startedtoshi-search/Toshi

started time in 21 days

startedfrancisrstokes/super-expressive

started time in 21 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 631ee7ed73dc5f6c903583658ff5a313e0a69496

PPU: fix bug of overflowing subtract when sprite is filled with FF

view details

push time in 21 days

startedstong/risc-uproc

started time in 21 days

startedLordNoteworthy/cpu-internals

started time in 21 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 5c5612810dc6fe272e8d5c07046d05ee1a032501

CPU: fix the new parameter in the cpu for the tests

view details

push time in 21 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha cd7970e87e89b3f9571336da269452b858b780cd

APU: fix bug square not muted if period is set explicitly out of range - also added reset for square pulse on 4003/4007 writes

view details

Amjad Alsharafi

commit sha 0cca5f6b12258c6d8c60b416a01220ec899d6b1e

Mapper: implemented IRQ for Mappers and Mapper004 - added the structure of IRQ mechanism from the cartridge, and implemented it for Mapper004 - Note that there is a bug here, its a delay, the IRQ for exmaple in Super Mario Bros 3, on the first screen should occur on scanline 191, but here it occurs in 193

view details

push time in 21 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 12f24acc706e4a4f417465ea3b8f1b3cade0b8f4

Cartridge: small change to add spaces in the INES2.0 warn message

view details

Amjad Alsharafi

commit sha 3aa1eb207e3e23d7e9cd82061f3a810258b216d6

CPU: bug fix if the PPU requested DMA at address $20xx it would crash - that is because if the CPU borrows the PPU then tries to read $2000 which is an address from the PPU mapped registers, it would try to borrow the PPU while it is already borrowed, which is forbidden

view details

push time in 22 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 4d4d660e78bfd760c3b686f025c6c1227abf1285

APU: implemented frame reset side-effect on $4017 write

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 13f45f8872887851372f74ef1bfd3a358768ebe7

APU: implemented frame reset side-effect on $4017 write

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 6983c9dbddc9515d6d050666dc0e778a70e93958

README: updated using GithubActions instead of Cirrus for building

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 830d61670939f4cd645f18c4855b87bf86b31129

Codecov: ignored `Display` and `Debug` for coverage - also some changes for tarpaulin and codecov to only execute relevant codes

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha d14310846ff3754df71e573f563b78c8ed717a80

Codecov: ignored `Display` and `Debug` for coverage - also some changes for tarpaulin and codecov to only execute relevant codes

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha cf2be743cce0eb159c69fe8ca5ccb4c228b50e50

Codecov: ignored `Display` and `Debug` for coverage - also some changes for tarpaulin and codecov to only execute relevant codes

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 813ac768dc9ca23d124f513823d124715f439eee

GithubActions: used tarpaulin for testing, used (install) plugin

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 7ef8d8cedb9c358b4d488d6c04e0bb59908cd11e

GithubActions: added `--verbose` for tarpaulin bcz of problems in build

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha b97b34ff66ed07a55dd44bb37dc950f44ef6f6fd

GithubActions: added `--verbose` for tarpaulin bcz of problems in build

view details

push time in 23 days

startedrust-unofficial/patterns

started time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha b73ae1880951b76cef2919e367756741e575028e

GithubActions: added `--verbose` for tarpaulin bcz of problems in build

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 85eebb4f4e3e552e9610da5f44f01c30e6da0c20

GithubActions: added `--verbose` for tarpaulin bcz of problems in build

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 980b0e819c3be6ec359ea408a114177d2c15c905

GithubActions: added `--verbose` for tarpaulin bcz of problems in build

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha d4284fa93252257dd64620f0c189070f132078ae

GithubActions: added workflow for rust in place for cirrus Maybe its better, just want to try

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha 8fce91d6f15b33265ff408ed318c799ed8b12382

updated apt command since there is no sudo

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha 0f521a009f8002986c0b5270bd401a959111d2ee

updated apt command since there is no sudo

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha a013d79957eb32e33a8c2d9165db8a71a7d15ce3

added apt package install support and rust backtrace

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha 96ffd3b69d0659caeaf79b9d05f0beb1ede95951

added rust tarpaulin for coverage generation

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha 9fab83036edf86e74660f8dc50f7156dbac201af

Added rust workflow from github

view details

push time in 23 days

push eventAmjad50/test_github_actions_rust

Amjad Alsharafi

commit sha 91a0c457b7b57f4d5cb935b3e6990ca8a317e571

Added hello world with some tests

view details

push time in 23 days

create barnchAmjad50/test_github_actions_rust

branch : master

created branch time in 23 days

created repositoryAmjad50/test_github_actions_rust

created time in 23 days

startedmvdnes/rboy

started time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha ca5b5e449b895b50920a195cd1882868b41d8377

Codecov: updated the ignore files

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 97cd5dbd6423e2e259855762c3b223b896778f15

Codecov: added badge and config

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 64082e9bc76935dd3ee6510dcde46e14e0beb2e5

Cirrus: add codecov support for code coverage

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 0de122a502c65686e6cf07b99d6723ef620bf1ed

Cirrus: add codecov support for code coverage

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 009d3885a271b7fedc8206ea8dacb59a71a14a38

Cirrus: add codecov support for code coverage

view details

push time in 23 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 398368e39870b65ab18b7790b1406cca2701a53b

APU: added halt flag input to Length counter

view details

Amjad Alsharafi

commit sha f81a75d5c1ee6518e80723088884bb86c1bd4b9c

APU: implemented envelope, which allow to change volume - now sounds are more natural, and very close to the original (just still some small modifications)

view details

push time in 24 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 0ca36f10174829647469f8980b7e3fc282e7151a

LICENCE: MIT

view details

push time in 24 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 60395cb19515befab34a07ef1d879c82775c8326

APU: implemented length counter for square 1/2 - length counter is the one responsible for silencing the channel and not the channel itself

view details

Amjad Alsharafi

commit sha 3af8d3d1f29eb3089043b0606b4889e69888af66

APU: implement sweeping

view details

push time in 24 days

startedmkilgore/protura

started time in 24 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha b887b66a30ea756b9114b72eebe32fc6c9c20ed5

APU: implemented length counter for square 1/2 - length counter is the one responsible for silencing the channel and not the channel itself

view details

Amjad Alsharafi

commit sha 3e482a655e6428d954ee88d600c07ef8b7c284f9

APU: implement sweeping

view details

push time in 24 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha 126fa9f0aa5f27c7c7595fdcd4a89c28b9e7804a

README: small description

view details

push time in 25 days

push eventAmjad50/plastic

Amjad Alsharafi

commit sha fd747041963174a36048cfc6691ccba67b57dfbb

README: small description

view details

push time in 25 days

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha cc2d5f65b9945978ef6f383f323eeffbb60de5ea

PPU: implemented left clipping (8 pixels) - passed the test for that as well

view details

Amjad Alsharafi

commit sha bc4d54699f60f00dce86768075b3ad14e554255e

PPU: fix sprite hit on x=255, it should always miss - this is I think has something to do with hardware, but its very strange

view details

Amjad Alsharafi

commit sha dd8f3e18a51be9f0d0c58e403f905d52e2af7fa1

PPU: for some reason `sprite_hit_test_11_edge_timing` passed - not sure when it started working, but good XD

view details

push time in 25 days

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha d427edacaf295c29e7125e29ba3a634f1b9c48eb

PPU: fix VRAM mirroring implementation - the problem was that when mirroring vertically, then switching to horizontally, the banks should switch positions accordingly - this was achieved in this commit, by having the `vram_data` array be like a container to 4 blocks (mostly 2 are used) - For example, when mirroring horizontally, 0x2000 and 0x2400, should match for block 1, 0x2800 and 0x2C00, should match for block 2 and so on - the edge case is using `FourScreen` mirroring, which is the only mode for now that uses more than 2 blocks

view details

push time in 25 days

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha 98a245928c289177f7f76fa0e529be57379c8090

CPU(Instruction): some tiny improvements in code and performance

view details

Amjad Alsharafi

commit sha 64014b4a32f53a6ee11060ffdc67aab82ec2cc65

NES_test: removed noisy debugging printing for unhandled address - also removed warning of repeating clause in `match` in `CPUBus`

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha 1239d50c6ebf125a7f1c91e1dbbc08e060ef939c

Cartridge: specify the remaining file size, when `TooLargeFile` occur

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha bd746ba20e9959619e0b1590d50804e17139b5a1

NES_test: added `battery_ram` for games that use it - for now, we do not check, and all games are provided with `battery_ram`, even if they don't ask, also, `battery_ram` is not saved to a file after the game is closed, but just to get the game to run

view details

Amjad Alsharafi

commit sha 75fee1ed1abc992f018f27968d51eadf684b68eb

NES_test: run emulation in main thread and sync using GUI - since NTSC runs around 60 FPS and there are 29780.5 cpu cycles in every frame, we can sync the two of them using `SFML` `window.display`, which sleeps to an amount of time to match the requested FPS, which is set to `60`.

view details

Amjad Alsharafi

commit sha 941994f3f29ecf648ce3f800fdad73304acad433

NES_test: added support for PS4 controllers using `SFML::joystick` - this has some constants to indicate which buttons are pressed, like `0` for `X`, but not sure if these match XBOX constants, need to test :)

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha f14e7f999ae216df94cec5c2c4da30f3916e431d

APU/Cartridge: fix some warnings about `case` of identifiers - also removed unnecessary check for boundaries in u16, like 0x0000 <= x and x <= 0xFFFF, which are always true

view details

Amjad Alsharafi

commit sha 28d3efe6a1fb78f12dfc93cd7d0fb13a46f5c6ad

Mappers: partially (almost full) implemented mapper 004

view details

Amjad Alsharafi

commit sha bd34dc2565c105351601de3778b1732d1cbae338

Cartridge: added warning message for INES2.0 games

view details

Amjad Alsharafi

commit sha 27ab9f93c8a9280497efa372790fd2640f809ff1

Cartridge: added support for switchable mirroring - properly handled the mirroring flags in INES header

view details

Amjad Alsharafi

commit sha f669946af4042d05d371f8e0ddba5febb5c63fd5

Cargo: committed `apu2a03` into `Cargo.toml` and updated `Cargo.lock`

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha bcbac4d6a157541e1c5edecbf14d2f2023cb12b6

APU: some rust errors due to ambiguity in module name

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha 9aaf6fd7e50bc705ba898f8a304e101e2dbca9c3

Cirrus: added install for alsa for rodio library (used in APU)

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha aa8a8cdc6a2e35f521dd29401ef92239b0b686ee

Cirrus: added install for alsa for rodio library (used in APU)

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha fc44c2e8d3c1671b41253d1011abf7744fd2e605

Cirrus: added install for alsa for rodio library (used in APU)

view details

push time in a month

push eventAmjad50/NES-emulator

Amjad Alsharafi

commit sha 59f5ede6928c63984f00369f2cb31ef64f7285c9

Cirrus: added install for alsa for rodio library (used in APU)

view details

push time in a month

more