Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Author
Message
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 4th Sep 2022 15:39 Edited at: 14th Sep 2022 15:08

GEKKO C64 Emulator

This is my last project and it will be released in some days for Android.
I coded it from scratch, and i must admit, this is the hardest job i ever done till today. A great journey into Assembly, OPCodes, and my favourite home computer of all time.
AGK on Android seems to work better than some years ago, so here it is

Will follow soon iOS, MAC and Linux version.

ANDROID VERSION DOWNLOAD HERE


Updates and Todo List:
MOS 6510 99% Compatible (1% games crash on JAM OpCode)
C1541-II : D64 and T64 file format
Joysticks
External Keyboard
SID 6581 and 8580 with AudioBoost

Better UI
Chat
Upload D64 or T64
RPG Style (Unlock new things based on LVL)
100% Emulation also on JAM, NOP OpCodes

Some Screenshots


Arch-Ok
Developer
3
Years of Service
User Offline
Joined: 11th Jul 2019
Location:
Posted: 4th Sep 2022 18:29
Great work, as an x86 assembly programmer, I was planning to make snes and c64 emu too. I created 6510 flags, registers, indirect direct memory modes, some opcodes and then before diving into Timing and VIC, I looked for a screen surface which refreshes quickly but never achived that thus I dropped the project. I used memblock as a screen surface, sprite shaders but no luck the screen refresh was very slow. I do wonder how did you achieved that.
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 5th Sep 2022 09:12
Hi Arch-Ok, i use memblock to update the screen. In beginning i also got this problem. I use C++ Tier 2 on M1 Mac Mini. Android Studio become really good on that machines, and the emulators go at real speed.
If you need help or suggestions don't hesitate to ask, i will always happy to help other coders.
I will post a video to show the speed and how it works.
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 5th Sep 2022 15:50


This is a video test for Arch-Ok... Tablet mode on Mac M1 maybe the Android recorder give 2/3 frames of lag but usually it is stable on 50 as selected on AGK.
Arch-Ok
Developer
3
Years of Service
User Offline
Joined: 11th Jul 2019
Location:
Posted: 5th Sep 2022 16:24
@xGEKKOx as I thought -thinked bad english- you used Tier 2 for screen surface. I tried to create a plug-in but did not work *.so *.dylib files or somewhatever reasons lol. (hate c++) I feel your joy while coding your own MC6802! Your opcodes, your X register I was planning to give much more memory to c64 emu and online multiplaying. Hey dreamin is free but then I hit the memblock speed obstacle. I find this type of coding "game for coders"

Subsicribed to your youtube channel already.

Great work!
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 5th Sep 2022 17:02
Well yes... for the video refresh i use a second thread that modify the MemBlock directly from memory from another thread, and AppGameKit do the update as it do normally.
The next time i will introduce, maybe, a thread lock or some sort of semaphore.

As you you are an ASM coder, i have a strange bug on JAM/HLT Trap or NOP... the most common problem happen when i run Defender of The Crown, and the Map go bad.
Like a LOOP to wait the Joystick movement, but something goes wrong... i will upload a video.
Maybe you could help me to understand.
Thx.
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 5th Sep 2022 17:09


This is the bug, usually it paint all the CHAR and if i press Joy it return to the main screen, but it go again in bug on map.
Arch-Ok
Developer
3
Years of Service
User Offline
Joined: 11th Jul 2019
Location:
Posted: 5th Sep 2022 20:10
I can not even fix my asm codes if they were coded a while ago lol.


About NOP, I am sure you set it as 2 cycles per instruction and for the rasterizer the timings are exact, yet all I can see is, the screen is filled from wrong memory address which has a pattern in it (inc 1) when this happens;

xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 6th Sep 2022 10:31
Hmmm, investigating in CIA, as in OpCodes seems all ok...

Didn't understand the Internals.i3d
Arch-Ok
Developer
3
Years of Service
User Offline
Joined: 11th Jul 2019
Location:
Posted: 6th Sep 2022 15:43
Finding the bugs if there are any, would be fun for you, I'm sure about that.

It is x86 SIMD asm code using xmm registers (not AVX not ymm or zmm, it is old) single instruction multiple data editing. I guess, it was the part of my rasterizer which textures a polygon and shines it with normals. I don't even remember my asm codes lol.
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 14th Sep 2022 15:07
Added the link for the download in the first post!!!
Let me know how it works.
xGEKKOx
AGK Master
13
Years of Service
User Offline
Joined: 7th Dec 2008
Location: Italy
Posted: 18th Sep 2022 13:22
New games uploaded and updates arriving.
Arch-Ok
Developer
3
Years of Service
User Offline
Joined: 11th Jul 2019
Location:
Posted: 22nd Sep 2022 20:46
The controls are small I guess, I couldn't play the last ninja II, the sound freezes at the crack screen. My phone stopped working, redmi note 8 pro.

Login to post a reply

Server time is: 2022-10-03 22:41:56
Your offset time is: 2022-10-03 22:41:56