Ok you have to do a few things to make this work. I make no garuntee this will work.
In config/flash.ini you need to add the modeline for 320x240:
#------------------------------------------------------------------------------------------------------
#
# HDMI custom mode
# You can use this setting to set a custom video mode
# modeline "horpixels,verpixels,pixel_clock,hor_freq,ver_freq,hdisp,hsyncstart,hsyncend,htotal,vdisp,
# vsyncstart,vsyncend,vtotal,hsync_polarity,vsync_polarity,progress_mode"
#
# Example for 1920x1080p@60hz
# modeline='1920,1080,148500,67500,60,1920,2008,2052,2200,1080,1084,1088,1125,1,1,1'
#
#------------------------------------------------------------------------------------------------------
modeline='320,240,6000,15000,60,320,328,360,400,240,243,247,253,0,1,1'
vout='320x240p60hz'
Then you have to use a modified setres.sh file.
cp /usr/bin/setres.sh /emuelec/bin
nano /emuelec/bin/setres.sh
Modify the following in the file:
[[ $MODE != "auto" ]] && switch_resolution $MODE
comment the line out, so it becomes:
# [[ $MODE != "auto" ]] && switch_resolution $MODE
You might also need to override the safeguards here:
# If the display file mode is NOT present, or the video mode supplied is set to
# auto then just exit.
if [[ ! -f "$FILE_MODE" ]] || [[ $MODE == "auto" ]]; then
exit 0
fi
by commenting them out like so:
# If the display file mode is NOT present, or the video mode supplied is set to
# auto then just exit.
# if [[ ! -f "$FILE_MODE" ]] || [[ $MODE == "auto" ]]; then
# exit 0
# fi
Then you need to add the es_emu resolution in emuelec.conf so ES displays better.
In /emuelec/configs/emuelec.conf:
nano /emuelec/configs/emuelec.conf
Add a new lines to the end:
ee_es.framebuffer.320x240p60hz=1024 768
ee_es.framebuffer_border.320x240p60hz=0 0 319 239
ee_emu.framebuffer.320x240p60hz=320 240
ee_emu.framebuffer_border.320x240p60hz=0 0 319 239
video timings extracted from:
https://tomverbeure.github.io/video_timings_calculator
edit: modeline updated