NES emulator for GBA
dwedit / pocketnes Goto Github PK
View Code? Open in Web Editor NEWNES emulator for GBA
NES emulator for GBA
I just installed devkitPro and gba-dev, and attempted to run make
. Tried on both f7e7cbb and 1ae2741.
% make
cache.c
In file included from /opt/devkitpro/libgba/include/gba.h:41,
from /Users/grayson/projects/ext/PocketNES/src/gba.h:7,
from /Users/grayson/projects/ext/PocketNES/src/includes.h:8,
from /Users/grayson/projects/ext/PocketNES/src/cache.c:1:
/opt/devkitpro/libgba/include/gba_systemcalls.h: In function 'BiosCheckSum':
/opt/devkitpro/libgba/include/gba_systemcalls.h:102:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'asm'
102 | register u32 result asm("r0");
| ^~~
/opt/devkitpro/libgba/include/gba_systemcalls.h:102:29: error: implicit declaration of function 'asm' [-Wimplicit-function-declaration]
/opt/devkitpro/libgba/include/gba_systemcalls.h:104:47: error: 'result' undeclared (first use in this function)
104 | __asm ("SWI 0x0d" : "=r"(result) :: "r1", "r2", "r3");
| ^~~~~~
/opt/devkitpro/libgba/include/gba_systemcalls.h:104:47: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [cache.o] Error 1
make: *** [build] Error 2
% gcc --version
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Not really an issue, heh.
An user requested that I update the pocketNes CPU core in NesDS, but before I go adding some 2013'ish version there. Is there any source that I can use as base, where I can more or less see supported games or known glitches?
git versioning is perfect for this kind of task, so users (beta testers) would keep a list of known working games, then I could update Nes cores just fine inmediately excluding any bugs that may arise pre-port or post-port
Thanks.
Step by step:
tested on PocketNES 2020-1-4
With an EZ-Flash IV flashcart, it's a common scenario to build an emulator+rom compilation for each individual ROM since the emulator can exit back to the flashcart menu and then the game load is nearly instant, rather than copying megabytes of data to PSRAM before execution. Also there will be plenty of room for save states in the SRAM without contention from other games, and the additional storage space isn't an issue with an SD card.
When a single rom is added to PocketNES like this, the emulator ignores the ROM flags and sprite/mem follow values from the ROM header. If you add more than one ROM it's fine. I discovered this while writing my own PocketNES builder script here:
https://github.com/patters-syno/gba-emu-compilation-builders
This behaviour can also be observed using PocketNES Menu Maker to build a single ROM compilation, so it's not caused by my own code. I have verified that the ROM header data in the compilation is consistent with the expected values, so it seems that the emulator isn't acting on this information for some reason. Perhaps it's dependent on the game list selection code, but it probably shouldn't be.
Not really an issue.
Rarely anyone is saving the backups of the source. SMSAdvance25Src.zip
The hexn, hex8 and number functions are also used by the crash checker. If CHEATFINDER and EDITFOLLOW are disabled, the build currently fails. Please see clbr/pocketnes@90594a0 for which parts need an additional "| CRASH" check (the inline change was specific to my toolchain, so you may not want to take that part).
If I disable ROMMENU, everything else staying the same, the resulting build blackscreens. It stays interactive however - L+R loads the menu. Trying to track down why it fails. At least it seems to load the ROM correctly, mapper_number was correct.
If you build the latest PocketNES into a compilation with a splash screen, the splash screen is displayed offset to the right by about 20% and wrapped.
On Salamander (J), the bottom part of the screen showing the various ship power-ups should be static but it scrolls horizontally with the playfield and rolls around the screen. Since the power-ups are pivotal to the game experience this renders this particular game unplayable, and it's a favourite of mine. Hopefully it's something simple to fix. I noticed that this issue is present going back to your 2013 fork. PocketNES 9.98 renders this correctly, but you have made so many other improvements since then that it would be a pity to use that old version.
Git master fails to build on Linux because file names are case sensitive, the dir is called src/Mappers but the Makefile refers to src/mappers. Please rename the dir to mappers?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.