Or possibly addr2line -e file.elf < hotspots.log
(I think).
As an experiment I built the emulator using emscripten and uploaded it here:
https://felipemanga.github.io/PokittoEmu
No way to change the bin yet, but it’s good to see Chrome not crash all the time.
Right now it’s using multi-threaded asmjs. When browsers allow for multi-threaded webassembly it should get a bit faster.
Edit: For this to work in the current version of Chrome, you must open “chrome://settings” and enable:
- WebAssembly threads support.
- Experimental enabled SharedArrayBuffer support in JavaScript.
My JoeBert game is running properly in the latest build, which is nice.
It seems a little fast compared to hardware though.
That’s item #2 in the to-do list in the first post. I’ll get to it soon, I got distracted with the loader.
Sounds promising!
There are even nice UI specs and picture of the graphical loader
Very nice!
Whoa, I hadn’t seen that yet.
That is also using petscii graphics in the C64gfx font set for the UI elements
Huh did I see a operation fox by Jonne? Where’s that?
@FManga : I would like a special feature if possible. The emu is excellent for making gifs (which is very useful for me) but I need to edit out the beginning from every gif, which is time consuming. Could you make a shortcut key for turning on the gif recorder?
I probably understand this wrong, but F3 turns it on/off?
For cutting/scaling/etc. I use ffmpeg, it handles gifs as well. e.g.:
ffmpeg -i ./firmware.bin.1.gif -ss 0:02 -vf scale=220:-1:sws_dither=none,fps=20 -pix_fmt rgb8 out.gif
That’s right, you can start/stop recording with F3. You were using the command line flag?
yup… f3 … thx!
My request would be again pixel art scaling algorithms like with ProjectABE, but that’s probably better left for later now.
I had this in mind already, I should put it in the to-do list before I forget. We also need a way to take a PNG screenshot and shortcuts to pause/resume/restart emulation.
Any suggestions as to which algorithms would look good? Do you think you can do some tests?
I’ve been thinking about it, I’ll let you know if I get to it. Put on the TODO for now
For anybody building from source: I’ve added a new dependency to the emulator, SDL2_Image.
Here's an updated script for getting/building the dependencies.
#!/bin/sh
mkdir TEMPSDL2
cd TEMPSDL2
curl -o SDL2.zip 'https://www.libsdl.org/release/SDL2-2.0.8.zip'
unzip SDL2.zip
curl -o SDL2_net.zip 'https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.zip'
unzip SDL2_net.zip
curl -o SDL2_image.zip 'https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.3.zip'
unzip SDL2_image.zip
cd SDL2-2.0.8
mkdir build
cd build
../configure
make
sudo make install
cd ../..
cd SDL2_net-2.0.1
mkdir build
cd build
../configure
make
sudo make install
cd ../..
cd SDL2_image-2.0.3
mkdir build
cd build
../configure
make
sudo make install
cd ../../..
rm -rf TEMPSDL2
Or this, if you already had SDL2 and SDL_net from previous builds.
#!/bin/sh
mkdir TEMPSDL2
cd TEMPSDL2
curl -o SDL2_image.zip 'https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.3.zip'
unzip SDL2_image.zip
cd SDL2_image-2.0.3
mkdir build
cd build
../configure
make
sudo make install
cd ../../..
rm -rf TEMPSDL2
Or, if you’re on ubuntu: sudo apt install libsdl2-image-dev
Other changes in the “Bleeding edge” section of the first post.
Progress update:
- SD card code ported from ProjectABE
- Implemented ROM functions for writing to Flash
Now that that’s working, I can start my custom Loader.
I had to wait in a really long line today, so I used the time to get multi-threading to work on Windows and managed to release a new build.
List of new features:
- Limit emulator speed to more closely match hardware
- F7 to Pause/Resume and F5 to Restart emulation
- F2 - PNG screenshot. Or -s X command line flag, saves an image after X frames.
- Multithreaded-rendering that actually works. Even on Windows!
- Optimize code
- SPI + SD card emulation. Use with -I sdcard.img
- ROM API Loader functions support.
- printf prints to the console on Linux (and Mac?). Not ready on Windows, yet.
- support for mon reset in GDB (still in testing)