[Release] Vex3DS - Vectrex Emulator

Discussion in '3DS - Homebrew Development and Emulators' started by nop90, Mar 27, 2016.

  1. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    Another emulator port I made for fun. This time it's the emulator of an old console using vectorial graphics - Vectrex.

    The original code is from vecx by Valavan Manohararajah.

    The source code is on my Github.

    Attached there is also a zip file with a set of overlays resized for the 3ds.

    A romset to be used with these overlays can be downloaded here. Roms can have .bin or .vec extension.

    Changelog

    Ver. 0.4 (14 April 2016)
    • Optimized emulator code for speed
    • Added GUI (grabbed from Handy3DS)
    • Added sound
    Ver. 0.3 (31 March 2016)
    • Fixed exiting to HB Launcher
    • Implemented some tweak on the emulator code
    • Fixed flickering
    • Fixed framerate count (was overstimated)
    • Added support for .bin roms
    • Used a darker overlay for default ROM
    Ver. 0.2 (27 March 2016)
    • Added ROM selection
    • Added overlay
    • Added view mode selection (SELECT Key)
    Ver. 0.1 POC (26 March 2016)
    • First release (here)
    Installation

    WARNING: folder structure changed starting from v0.3. If you update from v0.2 move your roms in the /Vectrex/Roms subfolder

    In the the zip file there is a Vex3DS folder with the program in 3dsx format. This folder have to be placed in the 3DS folder. There is also a Vectrex folder to be placed in the root of the SD. This folder has 3 subfolder:
    • Roms: where you can put roms and overlays
    • Bios: where the emulator seraches bios.dat (the BIOS file free for non commercial use) and bios.png files (included in the zip)
    • Skin: the folder contains the default image for the menu top screen
    Starting the program you can select a ROM and make it run with the A key or you can run the default ROM in the bios with B.

    While running a ROM you can change the screen view with the Select key. In the rotated view, the direction keys are rotated too.

    While playing a ROM, the Start key open the menu.

    Speed is almost 50FPS on most games using frameskip 4. The sound in crappy but will improve in next releases.

    Known Bugs

    - Selecting the default bios rom with X key doesn't work

    To Do List

    - Get better sound
    - Reach full speed (50 FPS) with less frameskip
    - Add N3DS CPU boost

    Screenshots

    Vex1.png Vex2.png

    Vex3.png Vex4.png
     

    Attached Files:

    Last edited by nop90, Apr 14, 2016
  2. GalladeGuy

    GalladeGuy Freeze Kirby :3

    Member
    2,588
    2,652
    Oct 28, 2015
    United States
    Nice!
     
  3. JustAKirby

    JustAKirby GBAtemp Fan

    Member
    388
    236
    Oct 7, 2015
    United States
    Wouldn't you like to know?
    This is pretty cool
     
  4. SLiV3R

    SLiV3R 3DS Friend Code: 0473-9069-2206

    Member
    2,211
    1,044
    Jan 9, 2006
    Fantastic! I'll try it out tonight :)
     
  5. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    Added some screenshots in the OP.
     
    SLiV3R likes this.
  6. DjoeN

    DjoeN Captain Haddock!

    Member
    5,194
    1,498
    Oct 21, 2005
    Belgium
    Somewhere in this potatoland!
    Perfect :) have to try it later today :)
     
  7. koz

    koz Advanced Member

    Newcomer
    84
    25
    Jul 7, 2015
    Looking forward to this ... What a surprise.

    I remember playing this in the department store in 1983 whilst mum went shopping elsewhere. Never did own one.

    Maybe make an overlay feature having a small frontal offset as a front 3D layer giving a slight amount of parallax.
     
    Subtle Demise likes this.
  8. ArugulaZ

    ArugulaZ GBAtemp Advanced Fan

    Member
    510
    120
    Sep 17, 2009
    United States
    Great idea! I'll wait 'till the bugs are swatted, though. Will this ever work at full speed on an old 3DS, or is that unrealistic?
     
  9. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    Bug is already fixed. For fullspeed I have to work on emulator code. Don't know yet if it is possible but I'll try.

    Now the priority is to eliminate flickering, but for this too i have to changethe emulator internals.
     
    SLiV3R likes this.
  10. Naked_Snake

    Naked_Snake Constant Miscreant

    Member
    1,146
    292
    Oct 6, 2013
    Hyrule Field
    Where is a good site to download the overlay PNG files for the roms?
     
  11. DjoeN

    DjoeN Captain Haddock!

    Member
    5,194
    1,498
    Oct 21, 2005
    Belgium
    Somewhere in this potatoland!
    O3DS gets 42fps in Mine Storm
    Select rotates you to the different screens (full screen spread over top and bottom, rotated, etc...)

    I don't know if it's possible to get a sharper image, for now full screen spread over top/bottom is best to read
     
    Last edited by DjoeN, Mar 28, 2016
  12. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    Don't know if i can post it here.

    The roms and overlays are free for non commercial use according to wikipedia.

    I asked the opinion of a moderator but did not received an answer yet.
    In the released version roms have to be with .vec extension, but there are romset with bin extension. In the next release both the two will be listed.

    I would like to post the complete romset with overlays adapted for the 3ds.

    If a moderator give me an answer, I could post it later today.
     
    SG6000 and SLiV3R like this.
  13. SG6000

    SG6000 GBAtemp Regular

    Member
    250
    101
    Nov 2, 2015
    Man, this is so good.

    Thank you!!
     
    SLiV3R likes this.
  14. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    I tweaked some parameters, cleaned the code of part not usefull with double bufferng and optimized the rendering part. Now I have a better framerete ranging from 40 to 51 FPS for most games.

    I want to try to use callback functions instead of a chain of select ... case in the opcode parsing. Maybe I can obtain some more improvement. If it's not enough I can implement some frameskipping at low level in the emulator code.

    Meanwhile, what about the released version?
     
    SLiV3R and angelhp like this.
  15. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    Just added in the OP a zip file with a set of overlays resized for the 3ds.

    A romset to be used with these overlays can be downloaded here. Roms have .bin extension: rename in .vec or wait a couple of days for the next release.
     
    Last edited by nop90, Mar 28, 2016
    SLiV3R, Naked_Snake, angelhp and 2 others like this.
  16. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    V0.3 with some updates loaded in the OP.

    I'm getting very little results with speed improvement. I got some but the FPS in v0.2 was overstimade for a doble call to the rendering function in the original code.

    Now I'm trying to implement some low level frameskipping, but I'm having rendering problems.
     
    Vappy, SLiV3R, angelhp and 1 other person like this.
  17. hippy dave

    hippy dave Butts Butts Megabutts

    Member
    2,592
    1,805
    Apr 30, 2012
    A random new emulator out of the blue is always great to see, thanks!
     
  18. DjoeN

    DjoeN Captain Haddock!

    Member
    5,194
    1,498
    Oct 21, 2005
    Belgium
    Somewhere in this potatoland!
    Thanks for the update; will try when i'm back home.
     
  19. SLiV3R

    SLiV3R 3DS Friend Code: 0473-9069-2206

    Member
    2,211
    1,044
    Jan 9, 2006
    Thanks for working with this emulator! It seems like it is getting closer to near perfect, or at least fully playable! :)
     
  20. nop90
    OP

    nop90 GBAtemp Maniac

    Member
    1,430
    2,136
    Jan 11, 2014
    Italy
    Rome
    A little update: reached full speed on o3ds with some code optimization and with frameskip 1. Now I have to implement a speed limiter to have constant 50 FPS than I'll activate sound.

    But before next release I have to implement also abasic GUI.
     
    Last edited by nop90, Apr 12, 2016