Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > CSDb Discussions > C64 Emulator Bugs
2007-06-24 03:16
chatGPZ

Registered: Dec 2001
Posts: 11386
C64 Emulator Bugs

after stumbling about a bunch of VICE bugs myself in the last couple of days i have decided to compile a list with issues current emulators have. the goals for this are

- make people aware that emulators are by far not perfect (yet?)
- make it easier for emulator authors to improve the emulators, by showing problematic programs and possibly provide simple testcases
- allow c64 coders to implement emulator detection if desired

so well, check this: http://hitmen.c02.at/files/docs/c64/c64_emulator_bugs.txt

help welcomed :)
 
... 240 posts hidden. Click here to view all posts....
 
2007-07-19 17:40
enthusi

Registered: May 2004
Posts: 677
I think randomness is an issue but probably only exploited 'at will' and not randomly :)

Here's a small code that should detect all emus so far I think. However it is VERY simple to circumvent detection here - nontheless:
	tmp = $02
	adr = $31

	ldy #$00
	sty tmp
	ldx #$60
loop
	lda (adr),y
	eor tmp
	sta tmp
	inc adr
	bne loop
	inc adr+1
	dex
	bne loop
	
	lda tmp 
	beq emu
	rts
emu	
	inc $d020
end bvc end


Edit: dont mind $31. Just some arbitrary memory range to EOR over. So $00 or $00,$FF -filled memory pattern would expose an emu (or memory configured AR i.e.!)
2007-07-19 18:26
assiduous
Account closed

Registered: Jun 2007
Posts: 343
The result of this routine is far from predictable - on the average it detects the emulator once in 8 attempts.
2007-07-19 19:58
iAN CooG

Registered: May 2002
Posts: 3196
Quote:

*** [vice] unidentified problems
- Brutal Blue/Orbs Brutal Blue
"Had some problems with the loader. I remember this working on an older version of Vice though."

A: Doesn't work on the real thing, which indicates there was a problem with an older version of VICE.


I just tested it, works in every emu only if you use exos v3, would be nice if someone can test it on the real thing with that kernal rom.
2007-07-19 20:00
iAN CooG

Registered: May 2002
Posts: 3196
Quote:

- [vice] Relax #03 Relax #03

"Switch off true drive emulation in order to have it working in Vice."


Relax #3 often crashes, but randomly works.
I don't understand why it should work, and actually it should NEVER work IMHO.
The irq init is completely f**ked up, and prone to lock-ups or crashes.
081E  00        BRK        ;here some stuff is missing:
081F  00        BRK        ;SEI? DCOD/D012 setup?
0820  A9 08     LDA #$08   ;
0822  8D 86 02  STA $0286  ;
0825  20 60 0E  JSR $0E60  ;Only does LDA #$93 JSR $FFD2 RTS
0828  A2 00     LDX #$00   ;
082A  8E 14 03  STX $0314  ;WHY THE F**K ONE WANTS TO DO IT THIS WAY?
082D  8E FF 38  STX $38FF  ;(setting only the lower byte while irq are active
0830  8E FB 09  STX $09FB  ; is plain stupid, is like seeking for crashes)
0833  8E 1A D0  STX $D01A  ;Set to 0 and will be never set to 1 (=no irq?)

Even in Hoxs64 1.0.4.24 sometimes locks up.
Works on Vice without TDE active, or simply loading the .prg alone.
I think this is a side effect of inaccurate emulation when TDE is off.
Here's a quick fix, there is enough room for a (almost) correct init.
0805  78        SEI
0806  A9 7F     LDA #$7F
0808  8D 0D DC  STA $DC0D
080B  AD 0D DC  LDA $DC0D
080E  A9 37     LDA #$37
0810  8D 12 D0  STA $D012
0813  A9 1B     LDA #$1B
0815  8D 11 D0  STA $D011
0818  A9 01     LDA #$01
081A  8D 19 D0  STA $D019
081D  8D 1A D0  STA $D01A

0825  20 44 E5  JSR $E544

0833  2C 1A D0  BIT $D01A

Should I upload a Relax_03_fixed.d64 with a notefile stating what has been fixed?
2007-07-19 20:00
enthusi

Registered: May 2004
Posts: 677
assid: Well I only "know" vice. I guess a $00-check would serve as well and then be 100%. Just wanted to point out the general issue of randomness. Im not sure if its any good to init an emulated system with "random" values...
2007-07-19 21:12
Hein

Registered: Apr 2004
Posts: 954
So-Phisticated doesn't seem to work as supposed to in VICE. Works in CCS and Hoxs.. 'Sweet Dreams, Lamer'
2007-07-19 21:19
assiduous
Account closed

Registered: Jun 2007
Posts: 343
Hein, it's already on the list. ;)
2007-07-20 04:17
chatGPZ

Registered: Dec 2001
Posts: 11386
updated the thing again -> http://hitmen.c02.at/files/docs/c64/c64_emulator_bugs.txt
2007-07-20 07:53
assiduous
Account closed

Registered: Jun 2007
Posts: 343
Thanks for the update. It would be clearer though if you had added "Works properly in Hoxs64 v1.0.4.24+" to Aurora 90%, Demo IV and Locomotion, because right now there are statements like "This part doesn't work at all in Hoxs64" accompanying these entries while they aren't valid anymore.

Remove Skate Crazy/Shining8 as it's already on the list in the "EMULATOR ISSUES THAT HAVE BEEN FIXED" section.

Rick Dangerous entry should be updated with the info regarding Kernal revisions.
2007-07-20 11:53
iAN CooG

Registered: May 2002
Posts: 3196
Quote:

- Brutal Blue/Orbs Brutal Blue

"Had some problems with the loader. I remember this working on an older version of Vice though."

"A: Doesn't work on the real thing, which indicates there was a problem with an older version of VICE."

"I just tested it, works in every emu only if you use exos v3, would be nice if someone can test it on
the real thing with that kernal rom."

Definately bugged, the author must have coded and tested this under exos only(?)
This is the proof, it always fail to load the "Z.*" turboloader at $cd00
C248  A9 01     LDA #$01
C24A  A8        TAY
C24B  A2 08     LDX #$08
C24D  20 BA FF  JSR $FFBA
C250  A9 03     LDA #$03
C252  A2 80     LDX #$80
C254  A0 C2     LDY #$C2
C256  20 BD FF  JSR $FFBD
C259  20 D5 FF  JSR $FFD5  << a=3 here, so does NOT load but verify
C25C  A9 41     LDA #$41      apparently exos always loads, which is weird
C25E  8D FD 9F  STA $9FFD
C261  A9 2E     LDA #$2E
C263  8D FE 9F  STA $9FFE
C266  A9 2A     LDA #$2A
C268  8D FF 9F  STA $9FFF
C26B  4C 00 CD  JMP $CD00  << and here executes "random" code

lda #$00 before the jsr $ffd5 is enough (and mandatory)
Patched d64 will be available on my site this evening ;P


Quote:

- [vice] Defcom/Jazzcat Defcom

"Another one for the collection of weirdness. This one crash on Vice,
but works fine in CCS."

Almost the same issue as in Comic Art #9/Mayhem, decruncher relies on memory
contents and most probably filesize ($ae/$af contents after loading).
Patch the main file adding 16 zeroes at end and it always works.
Actually both this and Comic Art 9 will run unpatched if you reset after the
crash and reload them.

@groepaz: This entry is 2 times in the v0.5 buglist.
Previous - 1 | ... | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ... | 25 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
katon/Lepsi De
LKP/CFN
Mike
Lazycow
Alakran_64
TheRyk/MYD!
mutetus/Ald ^ Ons
megasoftargentina
Mibri/ATL^MSL^PRX
Guests online: 124
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.094 sec.