| |
chatGPZ
Registered: Dec 2001 Posts: 11351 |
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.... |
| |
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.!) |
| |
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. |
| |
iAN CooG
Registered: May 2002 Posts: 3186 |
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. |
| |
iAN CooG
Registered: May 2002 Posts: 3186 |
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? |
| |
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... |
| |
Hein
Registered: Apr 2004 Posts: 942 |
So-Phisticated doesn't seem to work as supposed to in VICE. Works in CCS and Hoxs.. 'Sweet Dreams, Lamer' |
| |
assiduous Account closed
Registered: Jun 2007 Posts: 343 |
Hein, it's already on the list. ;) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11351 |
updated the thing again -> http://hitmen.c02.at/files/docs/c64/c64_emulator_bugs.txt |
| |
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. |
| |
iAN CooG
Registered: May 2002 Posts: 3186 |
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 |