Oricutron 1.0 (EDIT: Now 1.2)

Comments, problems, suggestions about Oric emulators (Euphoric, Mess, Amoric, etc...) it's the right place to ask. And don't hesitate to give your tips and tricks that help using these emulations in the best possible way on your favorite operating system.
User avatar
iss
Wing Commander
Posts: 1153
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by iss »

Sorry for the delay but I have to fix the build system after some recent commits. :(

I'll PM you download links with 32 & 64 bit / SDL1.x & SDL2.x, with debug-info for @Dbug to debug.
The build version is 1.2.1-20201222. By me all works in Win10:
Screenshot_20201222_004656.jpg
Probably the problem in your tests is with the visual keyboard which I fixed just after my last dev-builds (1.2.1-20200515).
It's fixed 100% for SDL2, with SDL1 it works but if you switch the visual keyboard run-time on/off the SDL surface is lost and the result is black image. Need some free time to investigate the issue.

User avatar
Dbug
Site Admin
Posts: 3506
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Dbug »

Still crashing with the Oricutron_win*-20201222 versions, the SDL1 runs fine, the SDL2 crashes, and for some reason I do not have all the symbols.

The crash happens in the thread "SDLAudioP1" on a memory allocation from the SDL_RunAudio callback:

Code: Select all

 	ntdll.dll!RtlpCreateSplitBlock()	Unknown
 	ntdll.dll!RtlpReAllocateHeap()	Unknown
 	ntdll.dll!RtlpReAllocateHeapInternal()	Unknown
 	ntdll.dll!RtlReAllocateHeap()	Unknown
 	ntdll.dll!RtlpAllocateUserBlockFromHeap()	Unknown
 	ntdll.dll!RtlpAllocateUserBlock()	Unknown
 	ntdll.dll!RtlpLowFragHeapAllocFromContext()	Unknown
 	ntdll.dll!RtlpAllocateHeapInternal()	Unknown
 	msvcrt.dll!malloc()	Unknown
 	oricutron-sdl2.exe!SDL_malloc_REAL(unsigned __int64 size) Line 5328	C++
 	[External Code]	
	oricutron-sdl2.exe!SDL_RunAudio(void * devicep) Line 697	C++
 	[External Code]	
 	oricutron-sdl2.exe!RunThreadViaBeginThreadEx(void * data) Line 105	C++
 	[External Code]	
The last place where I have source code is there:

Code: Select all

void *SDL_malloc(size_t size)
{
0000000000485170  push        r12  
0000000000485172  sub         rsp,20h  
    void *mem;

    if (!size) {
        size = 1;
    }

    mem = s_mem.malloc_func(size);
0000000000485176  mov         eax,1  
000000000048517B  test        rcx,rcx  
000000000048517E  cmove       rcx,rax  
0000000000485182  call        qword ptr [5407A0h]           <------ call to the actual ntdll allocation code
0000000000485188  mov         r12,rax  
    if (mem) {
000000000048518B  test        rax,rax  
000000000048518E  je          00000000004851A1  
        SDL_AtomicIncRef(&s_mem.num_allocations);
0000000000485190  mov         edx,1  
0000000000485195  lea         rcx,[5407C0h]  
000000000048519C  call        00000000004CE6D0  
    }
    return mem;
}
00000000004851A1  mov         rax,r12  
00000000004851A4  add         rsp,20h  
00000000004851A8  pop         r12  
00000000004851AA  ret  
From what I see, the code crashes pretty much before we even enter "main", but I don't have much debugging information on the Main Thread:

Code: Select all

 	[External Code]	
	oricutron-sdl2.exe!WinMainCRTStartup() Line 197	C++
 	[External Code]	
I was wondering, recently Ibisum setup automated builds for... was it for the 8bit unity? or something, anyway, would it make sense to have the same thing setup on Oricutron, so each commit immediately triggers the generation of all the common versions (windows, linux, mac, in 32 and x64 version, with and without symbols, ...) so any broken code can immediately be detected, and any new feature immediately tested?

User avatar
Chema
Game master
Posts: 2733
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Oricutron 1.0 (EDIT: Now 1.2)

Post by Chema »

Ahem... maybe you can also have a look at IJK emulation? You know it does not behave like a real Oric.. :)

Post Reply