Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Thank You for your continued support and contributions!

+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Feature Ideas
| | |-+  Atari 2600 emulator - back again
« previous next »
  • Print
Pages: [1]

Author Topic: Atari 2600 emulator - back again  (Read 671 times)

Offline ulmutul

  • Developer
  • Member
  • *
  • Posts: 20
Atari 2600 emulator - back again
« on: October 11, 2019, 09:06:51 AM »
It's been quite some time since foolsh revived the original flyspray patch (see http://forums.rockbox.org/index.php/topic,43635.0.html).
However the patch was rather buggy, and after picking up on it I rewrote so many parts that I think it's better to submit a completely new gerrit patch:

http://gerrit.rockbox.org/r/#/c/2245/

There's still a lot of work left, but testers are always welcome! :) Feel free to experiment and report bugs or leave feedback.
You have to compile the patch yourself , so you may want to read the following wiki pages:
https://www.rockbox.org/wiki/DevelopmentGuide
https://www.rockbox.org/wiki/LinuxSimpleGuideToCompiling
https://www.rockbox.org/wiki/UsingGit

Usage:
  • rom files must have the ending ".a26"
  • if your rom uses bank switching, you have to manually select the correct switching scheme. You can use a secondary file extension instead, e.g. "frogger2.E0.a26" (use Parker Brothers E0 scheme)
  • PAL/NTSC/SECAM must be selected manually (defaults to NTSC)

Things to do:
  • there's no sound yet. Sound has to be written more or less from scratch
  • test and improve keymaps. Feel free to suggest improvements. Some targets have too few buttons to support both the Select and the Reset button. If the target has a hold switch, it can be used to enter the menu.
  • improve LCD functions; If something looks wrong (e.g. reversed colours on greyscale targets) try out Screen options > Screen size > Generic display function in the menu (Slow!). Some targets only support the slow generic function.
  • optimize! It's much too slow yet!
  • optimize even more! My goal is to make the emulator run in real time on PP5020 targets (that means that the speed must be more than doubled!  8))
  • add support for paddle (currently only one joystick is supported)

Known bugs:
  • graphical glitches in the middle of the playfield
  • the "sprite retrigger" trick causes half sprite leftovers on the screen (e.g. "galaxian" rom)
  • the emulator doesn't support "hmove blanking". Sometimes nice (the ugly "comb effect" on the screen disappears), but sometimes deliberately hidden things show up (try out "seaquest" for example)

Have fun!

* dump 191011-124616.png (2.04 kB, 320x240 - viewed 96 times.)

* dump 191011-134344.png (1.52 kB, 320x240 - viewed 94 times.)

* dump 191011-134457.png (2.14 kB, 320x240 - viewed 92 times.)

* dump 191011-134613.png (1.88 kB, 320x240 - viewed 96 times.)
Logged

Offline __builtin

  • Developer
  • Member
  • *
  • Posts: 385
  • iPod 6G, c200v1 (RIP), e200v1 (RIP)
    • FWEI.TK
Re: Atari 2600 emulator - back again
« Reply #1 on: October 11, 2019, 09:57:33 AM »
Awesome work, ulmutul! I'll take a crack at sound sometime.
Logged
No support questions by PM, please.

Offline ulmutul

  • Developer
  • Member
  • *
  • Posts: 20
Re: Atari 2600 emulator - back again
« Reply #2 on: November 21, 2019, 05:03:43 PM »
I made some progress! After I got stuck at a dead end with optimization of my previous code, I once more rewrote the rendering stuff.
This change made the emulation much faster.

Some numbers (emulation frame time):
  • Patch Set 3 (previous version)
    • Frogger: 37.8ms
    • Enduro: 54.8ms
  • Patch Set 4 (current version)
    • Frogger: 25.9ms
    • Enduro: 35.2ms
Note: the frame time is measured without the final write to the target LCD, because this part is very hardware dependant.
This final task takes more than 23ms on my test target (YH925), but can be shortened by skipping frames and by moving the function to a  coprocessor task.

The goal is a emulation frame time of less than 20ms (corresponding to a frame rate of >50Hz) - this seems within reach now, at least for already fast games like Frogger.
Logged

  • Print
Pages: [1]
« previous next »
+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Feature Ideas
| | |-+  Atari 2600 emulator - back again
 

  • SMF 2.0.17 | SMF © 2019, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.171 seconds with 20 queries.