What is needed is something that works for KS1.3 with 68000 and better so it works on stock A500.
That's unrealistic for most modern stacks. Miami needs more than 512k with a GUI. Genesis looks like it can do with closer to 256k. The 68000 does not have as good of code density as the 68020+. A useful TCP/IP program is needed on top of that like a browser. Miami will run with 2.x if you choose an older more basic GUI. Genesis probably needs 3.x for Reaction or MUI. A 68000 with <1MB and KS1.3 is barbaric. Please upgrade if you want to run anything besides games.
* Genesis - bugs, but 30% faster than MiamiTCP, requires MUI
Genesis works with Reaction or MUI. The AmigaOS 3.9 version uses Reaction as default. Although AmigaOS 3.9 requires a 68020+, it looks like Genesis is compiled for the 68000 and can use the 68000 AmiTCP kernel. There is a lot of compiler fluff in the main Genesis program. I have a working modified version for the 68020+ that saves about 15k in program size and I haven't even optimized in the 68020+ integer multiplication and division yet. It would probably be possible to save 40k as the optimization is poor. What bugs do you know about? There are 2 bugs directly attributed to Genesis here:
http://lilliput.amiga-projects.net/Abugs.htmBug ID=2 turned out to be a Genesis icon format not completely supported by AmigaOS 3.9. The easy fix is loading the Genesis icons into Icon Edit and converting them to normal glow icons. Bug ID=4 looks like the normal behavior of Genesis as intended. Neither are bugs in the programs of Genesis. I did find some very suspicious code in a function starting at $148b0. It looks like this:
lab_148b0:
link a5,#0
move.l d2,-(sp)
move.l (8,a5),d2
jsr lab_232
move.l d2,-(sp)
jsr lab_23a
nop
dc.w 0,$4e55 ;this would be an ori.b #$55,d0 but it's obviously not
dc.w 0 ;this would also be the start of a ori.b with the next function used as the data
lab_148cc:
link a5,#0
move.l d2,-(sp)
...
This function would likely result in a crash (illegal instruction, illegal address or similar) or at least trashed memory as it falls into the next function with the wrong offset. It's strange how such code could be produced by a compiler. I created a fix in my modified Genesis program although I haven't figured out what causes this function to be executed yet. It is called (jsr) from 4 places in the program. Any other known bugs?